Pārlūkot izejas kodu

Move shiboken gem to extras, modify build system to use pyside find functionality.

Signed-off-by: sphrose <[email protected]>
sphrose 2 gadi atpakaļ
vecāks
revīzija
3a9d8c6388

+ 13 - 0
Gems/AzQtComponentsForPython/CMakeLists.txt

@@ -0,0 +1,13 @@
+#
+# Copyright (c) Contributors to the Open 3D Engine Project.
+# For complete copyright and license terms please see the LICENSE at the root of this distribution.
+#
+# SPDX-License-Identifier: Apache-2.0 OR MIT
+#
+#
+
+set(gem_path ${CMAKE_CURRENT_LIST_DIR})
+set(gem_json ${gem_path}/gem.json)
+o3de_restricted_path(${gem_json} gem_restricted_path gem_parent_relative_path)
+
+add_subdirectory(Code)

+ 47 - 0
Gems/AzQtComponentsForPython/Code/CMakeLists.txt

@@ -0,0 +1,47 @@
+#
+# Copyright (c) Contributors to the Open 3D Engine Project.
+# For complete copyright and license terms please see the LICENSE at the root of this distribution.
+#
+# SPDX-License-Identifier: Apache-2.0 OR MIT
+#
+#
+
+o3de_pal_dir(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME} "${gem_restricted_path}" "${gem_path}" "${gem_parent_relative_path}")
+
+include(${pal_dir}/PAL_${PAL_PLATFORM_NAME_LOWERCASE}.cmake)
+
+if (PAL_TRAIT_AZQTCOMPONENTSFORPYTHON_SUPPORTED)   
+    find_package(Qt5 5.12 REQUIRED COMPONENTS Core Gui Widgets)
+    
+    # Find the qt package location.
+    ly_get_package_association("Qt" QT_PACKAGE_NAME)
+    ly_package_get_target_folder(${QT_PACKAGE_NAME} QT_DOWNLOAD_LOCATION)
+    set(QT_MODULE_DIR ${QT_DOWNLOAD_LOCATION}/${QT_PACKAGE_NAME}/qt)
+                     
+    # The library we're creating bindings for.
+    set(AZQTCOMPONENTS_LIBRARY "AzQtComponents")
+        
+    #Define the shared library for which we will create bindings.
+    set_property(TARGET ${AZQTCOMPONENTS_LIBRARY} PROPERTY PREFIX "")
+    
+    add_shiboken_project(
+        NAME AzQtComponentsForPython
+        NAMESPACE Gem
+        WRAPPED_HEADER ${CMAKE_CURRENT_LIST_DIR}/bindings_azqtcomponents.h
+        TYPESYSTEM_FILE ${CMAKE_CURRENT_LIST_DIR}/bindings_azqtcomponents.xml
+        GENERATED_FILES ${CMAKE_CURRENT_LIST_DIR}/generated_files.cmake
+        LICENSE_HEADER ${CMAKE_CURRENT_LIST_DIR}/license_header.txt
+        DEPENDENCIES 
+            ${AZQTCOMPONENTS_LIBRARY}
+            Gem::EditorPythonBindings.Static
+        INCLUDE_DIRS 
+            ${LY_ROOT_FOLDER}/Code/Framework/AzCore 
+            ${LY_ROOT_FOLDER}/Code/Framework/AzQtComponents
+            ${LY_ROOT_FOLDER}/Code/Framework/AzCore/Platform/${PAL_PLATFORM_NAME} 
+            ${QT_MODULE_DIR}/include
+            ${QT_MODULE_DIR}/include/QtWidgets
+            ${QT_MODULE_DIR}/include/QtCore
+            ${QT_MODULE_DIR}/include/QtGui
+    )
+    
+endif()

+ 9 - 0
Gems/AzQtComponentsForPython/Code/Platform/Android/PAL_android.cmake

@@ -0,0 +1,9 @@
+#
+# Copyright (c) Contributors to the Open 3D Engine Project.
+# For complete copyright and license terms please see the LICENSE at the root of this distribution.
+#
+# SPDX-License-Identifier: Apache-2.0 OR MIT
+#
+#
+
+set(PAL_TRAIT_AZQTCOMPONENTSFORPYTHON_SUPPORTED FALSE)

+ 10 - 0
Gems/AzQtComponentsForPython/Code/Platform/Linux/PAL_linux.cmake

@@ -0,0 +1,10 @@
+#
+# Copyright (c) Contributors to the Open 3D Engine Project.
+# For complete copyright and license terms please see the LICENSE at the root of this distribution.
+#
+# SPDX-License-Identifier: Apache-2.0 OR MIT
+#
+#
+
+set(PAL_TRAIT_AZQTCOMPONENTSFORPYTHON_SUPPORTED TRUE)
+

+ 9 - 0
Gems/AzQtComponentsForPython/Code/Platform/Mac/PAL_mac.cmake

@@ -0,0 +1,9 @@
+#
+# Copyright (c) Contributors to the Open 3D Engine Project.
+# For complete copyright and license terms please see the LICENSE at the root of this distribution.
+#
+# SPDX-License-Identifier: Apache-2.0 OR MIT
+#
+#
+
+set(PAL_TRAIT_AZQTCOMPONENTSFORPYTHON_SUPPORTED FALSE)

+ 9 - 0
Gems/AzQtComponentsForPython/Code/Platform/Windows/PAL_windows.cmake

@@ -0,0 +1,9 @@
+#
+# Copyright (c) Contributors to the Open 3D Engine Project.
+# For complete copyright and license terms please see the LICENSE at the root of this distribution.
+#
+# SPDX-License-Identifier: Apache-2.0 OR MIT
+#
+#
+
+set(PAL_TRAIT_AZQTCOMPONENTSFORPYTHON_SUPPORTED TRUE)

+ 9 - 0
Gems/AzQtComponentsForPython/Code/Platform/iOS/PAL_ios.cmake

@@ -0,0 +1,9 @@
+#
+# Copyright (c) Contributors to the Open 3D Engine Project.
+# For complete copyright and license terms please see the LICENSE at the root of this distribution.
+#
+# SPDX-License-Identifier: Apache-2.0 OR MIT
+#
+#
+
+set(PAL_TRAIT_AZQTCOMPONENTSFORPYTHON_SUPPORTED FALSE)

+ 80 - 0
Gems/AzQtComponentsForPython/Code/bindings_azqtcomponents.h

@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) Contributors to the Open 3D Engine Project.
+ * For complete copyright and license terms please see the LICENSE at the root of this distribution.
+ *
+ * SPDX-License-Identifier: Apache-2.0 OR MIT
+ *
+ */
+ 
+#pragma once
+
+#include <AzQtComponents/Components/ButtonDivider.h>
+#include <AzQtComponents/Components/ButtonStripe.h>
+#include <AzQtComponents/Components/ConfigHelpers.h>
+#include <AzQtComponents/Components/DockBar.h>
+#include <AzQtComponents/Components/DockBarButton.h>
+#include <AzQtComponents/Components/DockMainWindow.h>
+#include <AzQtComponents/Components/DockTabBar.h>
+#include <AzQtComponents/Components/DockTabWidget.h>
+#include <AzQtComponents/Components/ExtendedLabel.h>    
+#include <AzQtComponents/Components/FancyDocking.h>
+#include <AzQtComponents/Components/FancyDockingDropZoneWidget.h>
+#include <AzQtComponents/Components/FancyDockingGhostWidget.h>
+#include <AzQtComponents/Components/FlowLayout.h>
+#include <AzQtComponents/Components/FilteredSearchWidget.h>
+#include <AzQtComponents/Components/GlobalEventFilter.h>
+#include <AzQtComponents/Components/HelpButton.h>
+#include <AzQtComponents/Components/InteractiveWindowGeometryChanger.h>
+#include <AzQtComponents/Components/SearchLineEdit.h>
+#include <AzQtComponents/Components/Style.h>
+#include <AzQtComponents/Components/StyledBusyLabel.h>
+#include <AzQtComponents/Components/StyledDetailsTableModel.h>
+#include <AzQtComponents/Components/StyledDetailsTableView.h>
+#include <AzQtComponents/Components/StyledDialog.h>
+#include <AzQtComponents/Components/StyledDockWidget.h>
+#include <AzQtComponents/Components/StyledLineEdit.h>
+#include <AzQtComponents/Components/StyledSpinBox.h>
+#include <AzQtComponents/Components/StyleManager.h>
+#include <AzQtComponents/Components/StyleSheetCache.h>
+#include <AzQtComponents/Components/StylesheetPreprocessor.h>
+#include <AzQtComponents/Components/TagSelector.h>
+#include <AzQtComponents/Components/Titlebar.h>
+#include <AzQtComponents/Components/TitleBarOverdrawHandler.h>
+#include <AzQtComponents/Components/ToolBarArea.h>
+#include <AzQtComponents/Components/ToolButtonComboBox.h>
+#include <AzQtComponents/Components/ToolButtonLineEdit.h>
+#include <AzQtComponents/Components/ToolButtonWithWidget.h>
+#include <AzQtComponents/Components/VectorEdit.h>
+#include <AzQtComponents/Components/WindowDecorationWrapper.h>
+#include <AzQtComponents/Components/Widgets/AssetFolderThumbnailView.h>
+#include <AzQtComponents/Components/Widgets/BreadCrumbs.h>
+#include <AzQtComponents/Components/Widgets/BrowseEdit.h>
+#include <AzQtComponents/Components/Widgets/Card.h>
+#include <AzQtComponents/Components/Widgets/CardHeader.h>
+#include <AzQtComponents/Components/Widgets/CardNotification.h>
+#include <AzQtComponents/Components/Widgets/CheckBox.h>
+#include <AzQtComponents/Components/Widgets/ComboBox.h>
+#include <AzQtComponents/Components/Widgets/DialogButtonBox.h>
+#include <AzQtComponents/Components/Widgets/DragAndDrop.h>
+#include <AzQtComponents/Components/Widgets/ElidingLabel.h>
+#include <AzQtComponents/Components/Widgets/Eyedropper.h>
+#include <AzQtComponents/Components/Widgets/FileDialog.h>
+#include <AzQtComponents/Components/Widgets/LineEdit.h>
+#include <AzQtComponents/Components/Widgets/Menu.h>
+#include <AzQtComponents/Components/Widgets/MessageBox.h>
+#include <AzQtComponents/Components/Widgets/ProgressBar.h>
+#include <AzQtComponents/Components/Widgets/PushButton.h>
+#include <AzQtComponents/Components/Widgets/RadioButton.h>
+#include <AzQtComponents/Components/Widgets/ScrollBar.h>
+#include <AzQtComponents/Components/Widgets/SegmentBar.h>
+#include <AzQtComponents/Components/Widgets/SegmentControl.h>
+#include <AzQtComponents/Components/Widgets/Slider.h>
+#include <AzQtComponents/Components/Widgets/SliderCombo.h>
+#include <AzQtComponents/Components/Widgets/SpinBox.h>
+#include <AzQtComponents/Components/Widgets/StatusBar.h>
+#include <AzQtComponents/Components/Widgets/TabWidget.h>
+#include <AzQtComponents/Components/Widgets/TabWidgetActionToolBar.h>
+#include <AzQtComponents/Components/Widgets/Text.h>
+#include <AzQtComponents/Components/Widgets/ToolBar.h>
+#include <AzQtComponents/Components/Widgets/ToolButton.h>
+#include <AzQtComponents/Components/Widgets/VectorInput.h>

+ 295 - 0
Gems/AzQtComponentsForPython/Code/bindings_azqtcomponents.xml

@@ -0,0 +1,295 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<typesystem package="azqtpyside">
+    <load-typesystem name="typesystem_widgets.xml" generate="no"/>
+    <load-typesystem name="typesystem_core.xml" generate="no"/>
+    <load-typesystem name="typesystem_gui.xml" generate="no"/>
+    
+    <primitive-type name="uint32_t" target-lang-api-name="PyLong"/>
+    
+    <!-- Declaring this prevents addition of broken code by Shiboken.-->
+    <object-type name="QTabWidget" generate="no"/>
+    <object-type name="QSlider" generate="no"/>
+    
+    <object-type name="FlowLayout">
+        <inject-code class="native" position="beginning" file="glue/qtwidgets.cpp" snippet="qlayout-help-functions"/>
+    </object-type>
+     
+     <!-- Remove drawFrame class to prevent broken wrapping in BrowseEdit-->
+    <rejection class="QFrame" function-name="drawFrame"/>
+  
+    <namespace-type name="AzQtComponents" generate="yes">                
+        <!--Components-->
+        <object-type name="ButtonDivider"/>
+        <object-type name="ButtonStripe"/>
+        
+        <namespace-type name="ConfigHelpers" generate="yes">
+            <object-type name="GroupGuard"/>
+            
+            <rejection class="*" function-name="read"/>
+        </namespace-type>
+        
+        <object-type name="DockBar">
+            <enum-type name="DefaultValues"/>
+        </object-type>
+        <object-type name="DockBarButton">
+            <object-type name="Config"/>
+            <enum-type name="WindowDecorationButton"/>
+        </object-type>
+        <object-type name="DockMainWindow"/>
+        <object-type name="DockTabBar"/>
+        <object-type name="DockTabWidget"/>
+        <object-type name="ExtendedLabel"/>   
+
+        <object-type name="FancyDocking">
+            <object-type name="WidgetGrab"/>
+        </object-type>
+        <object-type name="FancyDockingDropZoneWidget"/>
+        <object-type name="FancyDockingGhostWidget"/>
+                
+        <object-type name="FilterCriteriaButton">
+            <enum-type name="ExtraButtonType"/>
+        </object-type>
+        <object-type name="SearchTypeFilter"/>
+        <object-type name="SearchTypeSelector"/>
+        <object-type name="FilteredSearchWidget">
+            <object-type name="Config"/>
+        </object-type>
+        
+        <object-type name="GlobalEventFilter"/>
+        <object-type name="HelpButton"/>
+        <object-type name="InteractiveWindowGeometryChanger"/>
+        <object-type name="SearchLineEdit"/>
+        <object-type name="Style">
+            <enum-type name="BorderStyle"/>
+        </object-type>
+        <object-type name="StyledBusyLabel"/>
+        <object-type name="StyledDetailsTableModel">
+            <enum-type name="StyledTableRoles"/>
+            <enum-type name="ColumnStyle"/>
+            <enum-type name="StatusType"/>
+        </object-type>
+        <object-type name="StyledDetailsTableView"/>
+        <object-type name="StyledDialog"/>
+        <object-type name="StyledDockWidget"/>
+        <object-type name="StyledLineEdit">
+            <enum-type name="Flavor"/>
+        </object-type>
+        
+        <object-type name="StyledDoubleSpinBox"/>
+        <object-type name="StyledSpinBox"/>
+        
+        <object-type name="StyleManager">
+            <inject-code class="native" position="beginning">
+                #include &lt;AzCore/IO/Path/Path.h&gt;
+            </inject-code>
+            
+            <add-function signature="initializePath(QString)">
+                <inject-code>
+                    AZStd::string pathString(%1.toUtf8());
+                    AZ::IO::PathView pathView(pathString);
+                    
+                    QApplication* application = static_cast&lt;QApplication*&gt;(QApplication::instance());
+                    cppSelf->initialize(application, pathView);
+                </inject-code>
+            </add-function>
+        </object-type>
+        
+        <object-type name="StyleSheetCache"/>
+        <object-type name="StylesheetPreprocessor"/>
+        <object-type name="TagSelector"/>
+        <object-type name="TitleBar">
+            <object-type name="Config">
+                <object-type name="TitleBar"/>
+                <object-type name="Icon"/>
+                <object-type name="Title"/>
+                <object-type name="Buttons"/>
+            </object-type>
+            <enum-type name="TitleBarDrawMode"/>
+        </object-type>
+        <object-type name="TitleBarOverdrawHandler"/>
+        
+        <object-type name="ToolBarArea"/>
+        <object-type name="ToolButtonComboBox"/>
+        <object-type name="ToolButtonLineEdit"/>
+        <object-type name="ToolButtonWithWidget"/>
+        <object-type name="VectorEdit"/>
+        <object-type name="WindowDecorationWrapper"/>
+
+        <!--Widgets-->   
+        <object-type name="AssetFolderThumbnailView">
+            <object-type name="Config">
+                <object-type name="Thumbnail"/>
+                <object-type name="ExpandButton"/>
+                <object-type name="ChildFrame"/>
+            </object-type>
+            <enum-type name="ThumbnailSize"/>
+        </object-type>
+        
+        <enum-type name="NavigationButton"/>
+        <object-type name="BreadCrumbs">
+            <object-type name="Config"/>
+        </object-type>
+        
+        <object-type name="BrowseEdit"/>
+
+        <object-type name="Card">
+            <object-type name="Config"/>
+        </object-type>
+        
+        <object-type name="CardHeader">
+            <enum-type name="ContextMenuIcon"/>
+            <value-type name="s_iconSize"/>
+        </object-type>
+        
+        <object-type name="CardNotification"/>
+        <object-type name="CheckBox">
+            <object-type name="Config"/>
+        </object-type>
+                
+        <object-type name="ComboBoxValidator"/>
+        <object-type name="ComboBox">
+            <object-type name="Config"/>
+        </object-type>
+        <object-type name="DialogButtonBox"/>
+        <object-type name="DragAndDrop">
+            <object-type name="DropIndicator"/>
+            <object-type name="DragIndicator"/>
+            <object-type name="Config"/>
+        </object-type>
+        <object-type name="ElidingLabel"/>
+        <object-type name="Eyedropper">
+            <object-type name="Config"/>
+        </object-type>
+        <object-type name="FileDialog">     
+            <modify-function signature="GetSaveFileName(QWidget*,const QString&amp;,const QString&amp;,const QString&amp;,QString*,QFlags&lt;QFileDialog::Option&gt;)" allow-thread="yes">
+                <inject-documentation format="target" mode="append">
+                    This method is works in the same way as the cpp version, with the exception that the selected filter
+                    is returned in a tuple with the selected filename (filename, filter), rather than being stored in the 
+                    filter argument."
+                </inject-documentation>
+                <modify-argument index="return">
+                    <replace-type modified-type="(fileName, selectedFilter)"/>
+                </modify-argument>
+                <modify-argument index="5">
+                    <replace-type modified-type="QString"/>
+                    <replace-default-expression with="QString()"/>
+                </modify-argument>
+                <inject-code class="target" position="end">
+                    //Comment left in to prevent Shiboken including invalid code.
+                    //%RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(%1, %2, %3, %4, &amp;%5, %6);
+                
+                    %RETURN_TYPE retval_ = %CPPSELF.GetSaveFileName_(%1, %2, %3, %4, &amp;%5, %6);
+                    %PYARG_0 = PyTuple_New(2);
+                    PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[%RETURN_TYPE](retval_));
+                    PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[%ARG5_TYPE](%5));
+
+                </inject-code>
+            </modify-function>
+        </object-type>
+        
+        <rejection class="*" function-name="getBorderColor"/>
+        <rejection class="*" function-name="getBackgroundColor"/>
+        <rejection class="*" function-name="getLineWidth"/>
+        
+        <object-type name="LineEdit">
+            <object-type name="Config"/>
+        </object-type>
+                
+        <object-type name="Menu">
+            <object-type name="Margins"/>
+            <object-type name="Config"/>
+        </object-type>
+        
+        <object-type name="AzMessageBox"/>
+        
+        <namespace-type name="Internal" generate="yes"/>
+        <object-type name="OverlayWidgetButton"/>
+        
+        <object-type name="ProgressBar">
+            <object-type name="Config"/>
+        </object-type>
+        
+
+        <object-type name="PushButton">
+            <object-type name="Gradient"/>
+            <object-type name="ColorSet"/>
+            <object-type name="Border"/>
+            <object-type name="Frame"/>
+            <object-type name="SmallIcon"/>
+            <object-type name="IconButton"/>
+            <object-type name="DropdownButton"/>
+            <object-type name="Config"/>
+        </object-type>
+        
+        <object-type name="RadioButton">
+            <object-type name="Config"/>
+        </object-type>
+        <object-type name="ScrollBar">
+            <enum-type name="ScrollBarMode"/>
+            <object-type name="Config"/>
+        </object-type>
+        <object-type name="SegmentBar"/>
+        <object-type name="SegmentControl">
+            <enum-type name="TabPosition"/>
+        </object-type>
+        
+        <object-type name="Slider">
+            <object-type name="Border"/>
+            <object-type name="GradientSliderConfig"/>
+            <object-type name="SliderConfig">
+                <object-type name="HandleConfig"/>
+                <object-type name="GrooveConfig"/>
+            </object-type>
+            <object-type name="Config"/>
+        </object-type>
+        <object-type name="SliderInt"/>
+        <object-type name="SliderDouble"/>
+        
+        <object-type name="SliderCombo"/>
+        <object-type name="SliderDoubleCombo"/>
+        
+        <object-type name="SpinBox">
+            <object-type name="Config"/>
+        </object-type>
+        
+        <object-type name="StatusBar">
+            <object-type name="Config"/>
+        </object-type>
+        
+        <object-type name="TableViewModel">
+            <enum-type name="TableViewModelRole"/>
+        </object-type>
+        <object-type name="TableViewItemDelegate"/>
+         
+        <object-type name="TabWidget">
+            <object-type name="Config"/>
+        </object-type>
+        <object-type name="TabWidgetActionToolBarContainer"/>
+        <object-type name="TabBar"/>
+        
+        <object-type name="TabWidgetActionToolBar"/>
+        
+        <object-type name="Text">
+            <object-type name="Config"/>
+        </object-type>
+        
+        <object-type name="ToolBar">
+            <object-type name="ToolBarConfig"/>
+            <object-type name="Config"/>
+            <enum-type name="ToolBarIconSize"/>
+        </object-type>
+        
+        <object-type name="ToolButton">
+            <object-type name="Config"/>
+        </object-type>
+        
+        <object-type name="VectorEditElement">
+            <enum-type name="Flavor"/>
+        </object-type>
+        <object-type name="VectorElement">
+            <enum-type name="Coordinate"/>
+        </object-type>
+        <object-type name="VectorInput"/>
+    </namespace-type> <!--AzQtComponents-->
+</typesystem>

+ 177 - 0
Gems/AzQtComponentsForPython/Code/generated_files.cmake

@@ -0,0 +1,177 @@
+#
+# Copyright (c) Contributors to the Open 3D Engine Project.
+# For complete copyright and license terms please see the LICENSE at the root of this distribution.
+#
+# SPDX-License-Identifier: Apache-2.0 OR MIT
+#
+#
+
+set(GENERATED_FILES
+    azqtpyside_module_wrapper.cpp
+    azqtcomponents_wrapper.cpp
+                                                      
+    azqtcomponents_buttondivider_wrapper.cpp
+    azqtcomponents_buttonstripe_wrapper.cpp
+    azqtcomponents_confighelpers_wrapper.cpp
+    azqtcomponents_confighelpers_groupguard_wrapper.cpp
+    azqtcomponents_dockbar_wrapper.cpp
+    azqtcomponents_dockbarbutton_wrapper.cpp
+    azqtcomponents_dockbarbutton_config_wrapper.cpp
+    azqtcomponents_dockmainwindow_wrapper.cpp
+    azqtcomponents_docktabbar_wrapper.cpp
+    azqtcomponents_docktabwidget_wrapper.cpp
+    azqtcomponents_extendedlabel_wrapper.cpp    
+    azqtcomponents_fancydocking_widgetgrab_wrapper.cpp
+    azqtcomponents_fancydocking_wrapper.cpp
+    azqtcomponents_fancydockingdropzonewidget_wrapper.cpp
+    azqtcomponents_fancydockingghostwidget_wrapper.cpp 
+    
+    azqtcomponents_filtercriteriabutton_wrapper.cpp
+    azqtcomponents_searchtypefilter_wrapper.cpp
+    azqtcomponents_searchtypeselector_wrapper.cpp
+    azqtcomponents_filteredsearchwidget_wrapper.cpp
+    azqtcomponents_filteredsearchwidget_config_wrapper.cpp
+
+    
+    flowlayout_wrapper.cpp
+    azqtcomponents_globaleventfilter_wrapper.cpp
+    azqtcomponents_helpbutton_wrapper.cpp
+    azqtcomponents_interactivewindowgeometrychanger_wrapper.cpp
+    azqtcomponents_searchlineedit_wrapper.cpp  
+    azqtcomponents_style_wrapper.cpp
+    azqtcomponents_styledbusylabel_wrapper.cpp
+    azqtcomponents_styleddetailstablemodel_wrapper.cpp
+    azqtcomponents_styleddetailstableview_wrapper.cpp
+    azqtcomponents_styleddialog_wrapper.cpp
+    azqtcomponents_styleddockwidget_wrapper.cpp
+    azqtcomponents_styledlineedit_wrapper.cpp
+    azqtcomponents_styleddoublespinbox_wrapper.cpp
+    azqtcomponents_styledspinbox_wrapper.cpp  
+    azqtcomponents_stylemanager_wrapper.cpp
+    azqtcomponents_stylesheetcache_wrapper.cpp
+    azqtcomponents_stylesheetpreprocessor_wrapper.cpp
+    azqtcomponents_tagselector_wrapper.cpp
+    
+    azqtcomponents_titlebar_wrapper.cpp
+    azqtcomponents_titlebar_config_wrapper.cpp
+    azqtcomponents_titlebar_config_titlebar_wrapper.cpp
+    azqtcomponents_titlebar_config_icon_wrapper.cpp
+    azqtcomponents_titlebar_config_title_wrapper.cpp
+    azqtcomponents_titlebar_config_buttons_wrapper.cpp
+    
+    azqtcomponents_titlebaroverdrawhandler_wrapper.cpp
+#    azqtcomponents_toastnotification_wrapper.cpp
+#    azqtcomponents_toastconfiguration_wrapper.cpp  
+    azqtcomponents_toolbararea_wrapper.cpp
+    azqtcomponents_toolbuttoncombobox_wrapper.cpp
+    azqtcomponents_toolbuttonlineedit_wrapper.cpp
+    azqtcomponents_toolbuttonwithwidget_wrapper.cpp
+    azqtcomponents_vectoredit_wrapper.cpp
+    azqtcomponents_windowdecorationwrapper_wrapper.cpp   
+    
+ #   azqtcomponents_assetfolderlistview_wrapper.cpp
+    azqtcomponents_assetfolderthumbnailview_wrapper.cpp
+    azqtcomponents_assetfolderthumbnailview_config_wrapper.cpp
+    azqtcomponents_assetfolderthumbnailview_config_thumbnail_wrapper.cpp
+    azqtcomponents_assetfolderthumbnailview_config_expandbutton_wrapper.cpp
+    azqtcomponents_assetfolderthumbnailview_config_childframe_wrapper.cpp
+    azqtcomponents_breadcrumbs_wrapper.cpp
+    azqtcomponents_breadcrumbs_config_wrapper.cpp
+    azqtcomponents_browseedit_wrapper.cpp
+    azqtcomponents_card_wrapper.cpp
+    azqtcomponents_card_config_wrapper.cpp
+    azqtcomponents_cardheader_wrapper.cpp
+    azqtcomponents_cardnotification_wrapper.cpp
+    azqtcomponents_checkbox_wrapper.cpp
+    azqtcomponents_checkbox_config_wrapper.cpp
+ #   azqtcomponents_colorlabel_wrapper.cpp
+    azqtcomponents_comboboxvalidator_wrapper.cpp
+    azqtcomponents_combobox_wrapper.cpp
+    azqtcomponents_combobox_config_wrapper.cpp
+    azqtcomponents_dialogbuttonbox_wrapper.cpp
+    
+    azqtcomponents_draganddrop_wrapper.cpp
+    azqtcomponents_draganddrop_dropindicator_wrapper.cpp
+    azqtcomponents_draganddrop_dragindicator_wrapper.cpp
+    azqtcomponents_draganddrop_config_wrapper.cpp
+    
+    azqtcomponents_elidinglabel_wrapper.cpp
+    azqtcomponents_eyedropper_wrapper.cpp
+    azqtcomponents_eyedropper_config_wrapper.cpp
+    azqtcomponents_filedialog_wrapper.cpp
+ #   azqtcomponents_gradientslider_wrapper.cpp
+    azqtcomponents_lineedit_wrapper.cpp
+    azqtcomponents_lineedit_config_wrapper.cpp
+    
+    azqtcomponents_menu_wrapper.cpp
+    azqtcomponents_menu_margins_wrapper.cpp
+    azqtcomponents_menu_config_wrapper.cpp
+    
+    azqtcomponents_azmessagebox_wrapper.cpp
+ #   azqtcomponents_overlaywidgetbutton_wrapper.cpp
+ #   azqtcomponents_overlaywidget_wrapper.cpp
+    azqtcomponents_progressbar_wrapper.cpp
+    azqtcomponents_progressbar_config_wrapper.cpp
+    
+    azqtcomponents_pushbutton_wrapper.cpp
+    azqtcomponents_pushbutton_gradient_wrapper.cpp
+    azqtcomponents_pushbutton_colorset_wrapper.cpp
+    azqtcomponents_pushbutton_border_wrapper.cpp
+    azqtcomponents_pushbutton_frame_wrapper.cpp
+    azqtcomponents_pushbutton_smallicon_wrapper.cpp
+    azqtcomponents_pushbutton_iconbutton_wrapper.cpp
+    azqtcomponents_pushbutton_dropdownbutton_wrapper.cpp
+    azqtcomponents_pushbutton_config_wrapper.cpp
+    
+    azqtcomponents_radiobutton_wrapper.cpp
+    azqtcomponents_radiobutton_config_wrapper.cpp
+    azqtcomponents_scrollbar_wrapper.cpp
+    azqtcomponents_scrollbar_config_wrapper.cpp
+    azqtcomponents_segmentbar_wrapper.cpp
+    azqtcomponents_segmentcontrol_wrapper.cpp
+    
+    azqtcomponents_slider_wrapper.cpp
+    azqtcomponents_slider_border_wrapper.cpp
+    azqtcomponents_slider_gradientsliderconfig_wrapper.cpp
+    azqtcomponents_slider_sliderconfig_wrapper.cpp
+    azqtcomponents_slider_sliderconfig_handleconfig_wrapper.cpp
+    azqtcomponents_slider_sliderconfig_grooveconfig_wrapper.cpp
+    azqtcomponents_slider_config_wrapper.cpp
+    azqtcomponents_sliderint_wrapper.cpp
+    azqtcomponents_sliderdouble_wrapper.cpp
+    azqtcomponents_slidercombo_wrapper.cpp
+    azqtcomponents_sliderdoublecombo_wrapper.cpp
+    
+    azqtcomponents_spinbox_wrapper.cpp
+    azqtcomponents_spinbox_config_wrapper.cpp
+    azqtcomponents_statusbar_wrapper.cpp
+    azqtcomponents_statusbar_config_wrapper.cpp
+ #   azqtcomponents_tableview_wrapper.cpp
+ #   azqtcomponents_tableview_config_wrapper.cpp
+  #  azqtcomponents_tableviewmodel_wrapper.cpp
+ #   azqtcomponents_tableviewitemdelegate_wrapper.cpp
+    azqtcomponents_tabwidgetactiontoolbarcontainer_wrapper.cpp
+    azqtcomponents_tabwidget_wrapper.cpp
+    azqtcomponents_tabwidget_config_wrapper.cpp
+    azqtcomponents_tabwidgetactiontoolbar_wrapper.cpp
+    azqtcomponents_tabbar_wrapper.cpp
+    
+    azqtcomponents_text_wrapper.cpp
+    azqtcomponents_text_config_wrapper.cpp
+    azqtcomponents_toolbar_wrapper.cpp
+    azqtcomponents_toolbar_toolbarconfig_wrapper.cpp
+    azqtcomponents_toolbar_config_wrapper.cpp
+    
+    azqtcomponents_toolbutton_wrapper.cpp
+    azqtcomponents_toolbutton_config_wrapper.cpp
+ #   azqtcomponents_treeview_wrapper.cpp
+ #   azqtcomponents_treeview_config_wrapper.cpp
+ #   azqtcomponents_branchdelegate_wrapper.cpp
+ #   azqtcomponents_styledtreeview_wrapper.cpp
+ #   azqtcomponents_styledtreewidget_wrapper.cpp
+    azqtcomponents_vectoreditelement_wrapper.cpp
+    azqtcomponents_vectorelement_wrapper.cpp
+    azqtcomponents_vectorinput_wrapper.cpp
+    
+    azqtcomponents_internal_wrapper.cpp
+)

+ 8 - 0
Gems/AzQtComponentsForPython/Code/license_header.txt

@@ -0,0 +1,8 @@
+/*
+ * Copyright (c) Contributors to the Open 3D Engine Project.
+ * For complete copyright and license terms please see the LICENSE at the root of this distribution.
+ *
+ * SPDX-License-Identifier: Apache-2.0 OR MIT
+ *
+ */
+ 

+ 23 - 0
Gems/AzQtComponentsForPython/gem.json

@@ -0,0 +1,23 @@
+{
+    "gem_name": "AzQtComponentsForPython",
+    "display_name": "AzQtComponents For Python",
+    "license": "Apache-2.0 Or MIT",
+    "license_url": "https://github.com/o3de/o3de/blob/development/LICENSE.txt",
+    "origin": "Open 3D Engine - o3de.org",
+    "origin_url": "https://github.com/o3de/o3de",
+    "type": "Code",
+    "summary": "This gem provides a library to use the AzQtComponents library from Python.",
+    "canonical_tags": [
+        "Gem"
+    ],
+    "user_tags": [
+        "Scripting",
+        "UI"
+    ],
+    "icon_path": "preview.png",
+    "requirements": "",
+    "documentation_url": "",
+    "dependencies": [
+        "EditorPythonBindings"
+    ]
+}

+ 3 - 0
Gems/AzQtComponentsForPython/preview.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:de0e6e480ece5b423222f4feacf56553d73713fe9afea8bbc9a2660a3cd54ec7
+size 1232