

#ifndef SBK_KXMLGUI_PYTHON_H
#define SBK_KXMLGUI_PYTHON_H

//workaround to access protected functions
#define protected public

#include <sbkpython.h>
#include <sbkmodule.h>
#include <sbkconverter.h>
// Module Includes
#include <pyside6_qtwidgets_python.h>
#include <pyside6_qtgui_python.h>
#include <pyside6_qtcore_python.h>

// Bound library includes
#include <kaboutapplicationdialog.h>
#include <kaboutplugindialog.h>
#include <kactioncategory.h>
#include <kactioncollection.h>
#include <kbugreport.h>
#include <kedittoolbar.h>
#include <khelpmenu.h>
#include <kkeysequencewidget.h>
#include <kmainwindow.h>
#include <kshortcutsdialog.h>
#include <kshortcutseditor.h>
#include <kshortcutwidget.h>
#include <ktoggletoolbaraction.h>
#include <ktoolbar.h>
#include <ktooltiphelper.h>
#include <kundoactions.h>
#include <kxmlguibuilder.h>
#include <kxmlguiclient.h>
#include <kxmlguifactory.h>
#include <kxmlguiwindow.h>
// Conversion Includes - Primitive Types
#include <QAnyStringView>
#include <qbytearrayview.h>
#include <qchar.h>
#include <QtCore/qlatin1stringview.h>
#include <QString>
#include <QStringList>
#include <QStringView>
#include <qvariant.h>

// Conversion Includes - Container Types
#include <QHash>
#include <QList>
#include <QMap>
#include <QMultiHash>
#include <QMultiMap>
#include <QPair>
#include <QQueue>
#include <QSet>
#include <QStack>
#include <array>
#include <list>
#include <map>
#include <utility>
#include <unordered_map>
#include <vector>


// Type indices
enum : int {
    SBK_KAboutApplicationDialog_Option_IDX                   = 1,
    SBK_QFlags_KAboutApplicationDialog_Option_IDX            = 29,
    SBK_KAboutApplicationDialog_IDX                          = 0,
    SBK_KAboutPluginDialog_Option_IDX                        = 3,
    SBK_QFlags_KAboutPluginDialog_Option_IDX                 = 30,
    SBK_KAboutPluginDialog_IDX                               = 2,
    SBK_KActionCategory_IDX                                  = 4,
    SBK_KActionCollection_IDX                                = 5,
    SBK_KBugReport_IDX                                       = 6,
    SBK_KEditToolBar_IDX                                     = 7,
    SBK_KHelpMenu_MenuId_IDX                                 = 9,
    SBK_KHelpMenu_IDX                                        = 8,
    SBK_KKeySequenceWidget_Validation_IDX                    = 12,
    SBK_KKeySequenceWidget_ShortcutType_IDX                  = 11,
    SBK_QFlags_KKeySequenceWidget_ShortcutType_IDX           = 31,
    SBK_KKeySequenceWidget_IDX                               = 10,
    SBK_KMainWindow_IDX                                      = 13,
    SBK_KShortcutWidget_IDX                                  = 14,
    SBK_KShortcutsDialog_IDX                                 = 15,
    SBK_KShortcutsEditor_ActionType_IDX                      = 17,
    SBK_QFlags_KShortcutsEditor_ActionType_IDX               = 32,
    SBK_KShortcutsEditor_LetterShortcuts_IDX                 = 18,
    SBK_KShortcutsEditor_IDX                                 = 16,
    SBK_KToggleToolBarAction_IDX                             = 19,
    SBK_KToolBar_IDX                                         = 20,
    SBK_KToolTipHelper_IDX                                   = 21,
    SBK_KXmlGuiKUndoActions_IDX                              = 22,
    SBK_KXMLGUIBuilder_IDX                                   = 23,
    SBK_KXMLGUIClient_ReverseStateChange_IDX                 = 25,
    SBK_KXMLGUIClient_IDX                                    = 24,
    SBK_KXMLGUIFactory_IDX                                   = 26,
    SBK_KXmlGuiWindow_StandardWindowOption_IDX               = 28,
    SBK_QFlags_KXmlGuiWindow_StandardWindowOption_IDX        = 33,
    SBK_KXmlGuiWindow_IDX                                    = 27,
    SBK_KXmlGui_IDX_COUNT                                    = 34,
};

// This variable stores all Python types exported by this module.
extern Shiboken::Module::TypeInitStruct *SbkKXmlGuiTypeStructs;

// This variable stores the Python module object exported by this module.
extern PyObject *SbkKXmlGuiModuleObject;

// This variable stores all type converters exported by this module.
extern SbkConverter **SbkKXmlGuiTypeConverters;

// Converter indices
enum [[deprecated]] : int {
    SBK_KXMLGUI_QLIST_INT_IDX                                = 0, // QList<int>
    SBK_KXMLGUI_QLIST_KXMLGUICLIENTPTR_IDX                   = 1, // QList<KXMLGUIClient*>
    SBK_KXMLGUI_QLIST_QWIDGETPTR_IDX                         = 2, // QList<QWidget*>
    SBK_KXMLGUI_QLIST_QACTIONPTR_IDX                         = 3, // QList<QAction*>
    SBK_KXMLGUI_QLIST_KACTIONCOLLECTIONPTR_IDX               = 4, // QList<KActionCollection*>
    SBK_KXMLGUI_QLIST_QKEYSEQUENCE_IDX                       = 5, // QList<QKeySequence>
    SBK_KXMLGUI_QLIST_KMAINWINDOWPTR_IDX                     = 6, // QList<KMainWindow*>
    SBK_KXMLGUI_QLIST_KTOOLBARPTR_IDX                        = 7, // QList<KToolBar*>
    SBK_KXMLGUI_QLIST_QACTIONGROUPPTR_IDX                    = 8, // QList<QActionGroup*>
    SBK_KXMLGUI_QLIST_QVARIANT_IDX                           = 9, // QList<QVariant>
    SBK_KXMLGUI_QLIST_QSTRING_IDX                            = 10, // QList<QString>
    SBK_KXMLGUI_QMAP_QSTRING_QVARIANT_IDX                    = 11, // QMap<QString,QVariant>
    SBK_KXMLGUI_CONVERTERS_IDX_COUNT                         = 12,
};

// Converter indices
enum : int {
    SBK_KXmlGui_QList_int_IDX                                = 0, // QList<int>
    SBK_KXmlGui_QList_KXMLGUIClientPTR_IDX                   = 1, // QList<KXMLGUIClient*>
    SBK_KXmlGui_QList_QWidgetPTR_IDX                         = 2, // QList<QWidget*>
    SBK_KXmlGui_QList_QActionPTR_IDX                         = 3, // QList<QAction*>
    SBK_KXmlGui_QList_KActionCollectionPTR_IDX               = 4, // QList<KActionCollection*>
    SBK_KXmlGui_QList_QKeySequence_IDX                       = 5, // QList<QKeySequence>
    SBK_KXmlGui_QList_KMainWindowPTR_IDX                     = 6, // QList<KMainWindow*>
    SBK_KXmlGui_QList_KToolBarPTR_IDX                        = 7, // QList<KToolBar*>
    SBK_KXmlGui_QList_QActionGroupPTR_IDX                    = 8, // QList<QActionGroup*>
    SBK_KXmlGui_QList_QVariant_IDX                           = 9, // QList<QVariant>
    SBK_KXmlGui_QList_QString_IDX                            = 10, // QList<QString>
    SBK_KXmlGui_QMap_QString_QVariant_IDX                    = 11, // QMap<QString,QVariant>
    SBK_KXmlGui_CONVERTERS_IDX_COUNT                         = 12,
};
// Macros for type check

QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
namespace Shiboken
{

// PyType functions, to get the PyObjectType for a type T
template<> inline PyTypeObject *SbkType< ::KAboutApplicationDialog::Option >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_KAboutApplicationDialog_Option_IDX]); }
template<> inline PyTypeObject *SbkType< ::QFlags<KAboutApplicationDialog::Option> >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_QFlags_KAboutApplicationDialog_Option_IDX]); }
template<> inline PyTypeObject *SbkType< ::KAboutApplicationDialog >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_KAboutApplicationDialog_IDX]); }
template<> inline PyTypeObject *SbkType< ::KAboutPluginDialog::Option >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_KAboutPluginDialog_Option_IDX]); }
template<> inline PyTypeObject *SbkType< ::QFlags<KAboutPluginDialog::Option> >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_QFlags_KAboutPluginDialog_Option_IDX]); }
template<> inline PyTypeObject *SbkType< ::KAboutPluginDialog >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_KAboutPluginDialog_IDX]); }
template<> inline PyTypeObject *SbkType< ::KActionCategory >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_KActionCategory_IDX]); }
template<> inline PyTypeObject *SbkType< ::KActionCollection >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_KActionCollection_IDX]); }
template<> inline PyTypeObject *SbkType< ::KBugReport >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_KBugReport_IDX]); }
template<> inline PyTypeObject *SbkType< ::KEditToolBar >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_KEditToolBar_IDX]); }
template<> inline PyTypeObject *SbkType< ::KHelpMenu::MenuId >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_KHelpMenu_MenuId_IDX]); }
template<> inline PyTypeObject *SbkType< ::KHelpMenu >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_KHelpMenu_IDX]); }
template<> inline PyTypeObject *SbkType< ::KKeySequenceWidget::Validation >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_KKeySequenceWidget_Validation_IDX]); }
template<> inline PyTypeObject *SbkType< ::KKeySequenceWidget::ShortcutType >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_KKeySequenceWidget_ShortcutType_IDX]); }
template<> inline PyTypeObject *SbkType< ::QFlags<KKeySequenceWidget::ShortcutType> >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_QFlags_KKeySequenceWidget_ShortcutType_IDX]); }
template<> inline PyTypeObject *SbkType< ::KKeySequenceWidget >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_KKeySequenceWidget_IDX]); }
template<> inline PyTypeObject *SbkType< ::KMainWindow >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_KMainWindow_IDX]); }
template<> inline PyTypeObject *SbkType< ::KShortcutWidget >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_KShortcutWidget_IDX]); }
template<> inline PyTypeObject *SbkType< ::KShortcutsDialog >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_KShortcutsDialog_IDX]); }
template<> inline PyTypeObject *SbkType< ::KShortcutsEditor::ActionType >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_KShortcutsEditor_ActionType_IDX]); }
template<> inline PyTypeObject *SbkType< ::QFlags<KShortcutsEditor::ActionType> >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_QFlags_KShortcutsEditor_ActionType_IDX]); }
template<> inline PyTypeObject *SbkType< ::KShortcutsEditor::LetterShortcuts >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_KShortcutsEditor_LetterShortcuts_IDX]); }
template<> inline PyTypeObject *SbkType< ::KShortcutsEditor >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_KShortcutsEditor_IDX]); }
template<> inline PyTypeObject *SbkType< ::KToggleToolBarAction >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_KToggleToolBarAction_IDX]); }
template<> inline PyTypeObject *SbkType< ::KToolBar >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_KToolBar_IDX]); }
template<> inline PyTypeObject *SbkType< ::KToolTipHelper >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_KToolTipHelper_IDX]); }
template<> inline PyTypeObject *SbkType< ::KXMLGUIBuilder >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_KXMLGUIBuilder_IDX]); }
template<> inline PyTypeObject *SbkType< ::KXMLGUIClient::ReverseStateChange >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_KXMLGUIClient_ReverseStateChange_IDX]); }
template<> inline PyTypeObject *SbkType< ::KXMLGUIClient >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_KXMLGUIClient_IDX]); }
template<> inline PyTypeObject *SbkType< ::KXMLGUIFactory >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_KXMLGUIFactory_IDX]); }
template<> inline PyTypeObject *SbkType< ::KXmlGuiWindow::StandardWindowOption >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_KXmlGuiWindow_StandardWindowOption_IDX]); }
template<> inline PyTypeObject *SbkType< ::QFlags<KXmlGuiWindow::StandardWindowOption> >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_QFlags_KXmlGuiWindow_StandardWindowOption_IDX]); }
template<> inline PyTypeObject *SbkType< ::KXmlGuiWindow >() { return Shiboken::Module::get(SbkKXmlGuiTypeStructs[SBK_KXmlGuiWindow_IDX]); }

} // namespace Shiboken

QT_WARNING_POP
#endif // SBK_KXMLGUI_PYTHON_H

