├── 6.8 └── plugins │ ├── Code editor │ ├── __init__.py │ └── icons │ │ ├── __init__.py │ │ └── iconf.py │ └── Python_editor.py ├── 6.95 └── plugins │ ├── Code editor │ ├── __init__.py │ └── icons │ │ ├── __init__.py │ │ └── iconf.py │ └── Python_editor.py ├── 7.2 ├── plugins │ ├── Code editor │ │ ├── __init__.py │ │ ├── icons │ │ │ ├── __init__.py │ │ │ └── iconf.py │ │ └── template │ │ │ ├── __init__.py │ │ │ ├── Plugin_temp.py │ │ │ └── Plugin_temp │ └── Python_editor.py └── Add to ida python folder │ ├── sip.pyd │ ├── PyQt5 │ ├── Qt.dll │ ├── Qt.pyd │ ├── Qsci.dll │ ├── Qsci.pyd │ ├── QtGui.pyd │ ├── QtSvg.dll │ ├── QtSvg.pyd │ ├── QtXml.pyd │ ├── Qt5Core.dll │ ├── Qt5Gui.dll │ ├── Qt5Xml.dll │ ├── QtCore.pyd │ ├── QtOpenGL.pyd │ ├── QtTest.pyd │ ├── Qt5Network.dll │ ├── Qt5OpenGL.dll │ ├── Qt5Widgets.dll │ ├── QtNetwork.pyd │ ├── QtWidgets.pyd │ ├── QtMultimedia.dll │ ├── QtMultimedia.pyd │ ├── QtWinExtras.pyd │ ├── QtXmlPatterns.dll │ ├── QtXmlPatterns.pyd │ ├── Qt5PrintSupport.dll │ ├── QtPrintSupport.pyd │ ├── qscintilla2_qt5.dll │ ├── _QOpenGLFunctions_2_0.pyd │ ├── _QOpenGLFunctions_2_1.pyd │ ├── _QOpenGLFunctions_4_1_Core.pyd │ ├── __init__.py │ └── uic │ │ ├── Loader │ │ ├── __init__.py │ │ └── loader.py │ │ ├── port_v2 │ │ ├── __init__.py │ │ ├── string_io.py │ │ ├── proxy_base.py │ │ ├── ascii_upper.py │ │ └── as_string.py │ │ ├── port_v3 │ │ ├── __init__.py │ │ ├── string_io.py │ │ ├── proxy_base.py │ │ ├── ascii_upper.py │ │ └── as_string.py │ │ ├── Compiler │ │ ├── __init__.py │ │ ├── misc.py │ │ ├── indenter.py │ │ ├── proxy_metaclass.py │ │ └── compiler.py │ │ ├── widget-plugins │ │ ├── qscintilla.py │ │ ├── qtcharts.py │ │ ├── qaxcontainer.py │ │ ├── qtquickwidgets.py │ │ ├── qtwebenginewidgets.py │ │ ├── qtprintsupport.py │ │ └── qtwebkit.py │ │ ├── exceptions.py │ │ ├── pyuic.py │ │ └── driver.py │ └── sip.pyi ├── 7.0 ├── plugins │ ├── Code editor │ │ ├── __init__.py │ │ ├── icons │ │ │ ├── __init__.py │ │ │ └── iconf.py │ │ └── template │ │ │ ├── __init__.py │ │ │ └── Plugin_temp │ └── Python_editor.py └── Add to PyQt5 folder │ ├── Qsci.dll │ ├── Qsci.pyd │ ├── qscintilla2.dll │ └── qscintilla2_qt5.dll ├── 7.5 ├── Use Python 2.txt ├── Add to plugins folder │ ├── Code editor │ │ ├── __init__.py │ │ ├── icons │ │ │ ├── __init__.py │ │ │ └── iconf.py │ │ └── template │ │ │ ├── __init__.py │ │ │ ├── Plugin_temp.py │ │ │ └── Plugin_temp │ └── Python_editor.py └── Add to Python 2 PyQt5 folder │ ├── Qt.dll │ ├── Qt.pyd │ ├── Qsci.dll │ ├── Qsci.pyd │ ├── QtGui.pyd │ ├── QtSvg.dll │ ├── QtSvg.pyd │ ├── QtXml.pyd │ ├── sip.pyd │ ├── Qt5Core.dll │ ├── Qt5Gui.dll │ ├── Qt5Xml.dll │ ├── QtCore.pyd │ ├── QtTest.pyd │ ├── Qt5Network.dll │ ├── Qt5OpenGL.dll │ ├── Qt5Widgets.dll │ ├── QtNetwork.pyd │ ├── QtOpenGL.pyd │ ├── QtWidgets.pyd │ ├── QtMultimedia.dll │ ├── QtMultimedia.pyd │ ├── QtWinExtras.pyd │ ├── Qt5PrintSupport.dll │ ├── QtPrintSupport.pyd │ ├── QtXmlPatterns.dll │ ├── QtXmlPatterns.pyd │ ├── qscintilla2_qt5.dll │ ├── _QOpenGLFunctions_2_0.pyd │ ├── _QOpenGLFunctions_2_1.pyd │ ├── _QOpenGLFunctions_4_1_Core.pyd │ ├── __init__.py │ ├── uic │ ├── Compiler │ │ ├── __init__.py │ │ ├── misc.py │ │ ├── indenter.py │ │ ├── proxy_metaclass.py │ │ └── compiler.py │ ├── Loader │ │ ├── __init__.py │ │ └── loader.py │ ├── port_v2 │ │ ├── __init__.py │ │ ├── string_io.py │ │ ├── proxy_base.py │ │ ├── ascii_upper.py │ │ ├── as_string.py │ │ ├── invoke.py │ │ └── load_plugin.py │ ├── port_v3 │ │ ├── __init__.py │ │ ├── string_io.py │ │ ├── proxy_base.py │ │ ├── ascii_upper.py │ │ ├── as_string.py │ │ ├── invoke.py │ │ └── load_plugin.py │ ├── widget-plugins │ │ ├── qtcharts.py │ │ ├── qscintilla.py │ │ ├── qaxcontainer.py │ │ ├── qtquickwidgets.py │ │ ├── qtwebenginewidgets.py │ │ ├── qtprintsupport.py │ │ └── qtwebkit.py │ ├── exceptions.py │ ├── pyuic.py │ └── driver.py │ └── sip.pyi ├── CHANGELOG.MD └── LICENSE.md /6.8/plugins/Code editor/__init__.py: -------------------------------------------------------------------------------- 1 | __author__ = 'Storm Shadow' -------------------------------------------------------------------------------- /6.95/plugins/Code editor/__init__.py: -------------------------------------------------------------------------------- 1 | __author__ = 'Storm Shadow' -------------------------------------------------------------------------------- /7.2/plugins/Code editor/__init__.py: -------------------------------------------------------------------------------- 1 | __author__ = 'Storm Shadow' -------------------------------------------------------------------------------- /6.8/plugins/Code editor/icons/__init__.py: -------------------------------------------------------------------------------- 1 | __author__ = 'Storm Shadow' -------------------------------------------------------------------------------- /7.0/plugins/Code editor/__init__.py: -------------------------------------------------------------------------------- 1 | __author__ = 'Storm Shadow' 2 | -------------------------------------------------------------------------------- /7.0/plugins/Code editor/icons/__init__.py: -------------------------------------------------------------------------------- 1 | __author__ = 'Storm Shadow' -------------------------------------------------------------------------------- /7.2/plugins/Code editor/icons/__init__.py: -------------------------------------------------------------------------------- 1 | __author__ = 'Storm Shadow' -------------------------------------------------------------------------------- /6.95/plugins/Code editor/icons/__init__.py: -------------------------------------------------------------------------------- 1 | __author__ = 'Storm Shadow' -------------------------------------------------------------------------------- /7.0/plugins/Code editor/template/__init__.py: -------------------------------------------------------------------------------- 1 | __author__ = 'Storm Shadow' -------------------------------------------------------------------------------- /7.2/plugins/Code editor/template/__init__.py: -------------------------------------------------------------------------------- 1 | __author__ = 'Storm Shadow' -------------------------------------------------------------------------------- /7.5/Use Python 2.txt: -------------------------------------------------------------------------------- 1 | Read the README_python3.txt file in Ide Pro 7.5 2 | -------------------------------------------------------------------------------- /7.5/Add to plugins folder/Code editor/__init__.py: -------------------------------------------------------------------------------- 1 | __author__ = 'Storm Shadow' -------------------------------------------------------------------------------- /7.5/Add to plugins folder/Code editor/icons/__init__.py: -------------------------------------------------------------------------------- 1 | __author__ = 'Storm Shadow' -------------------------------------------------------------------------------- /7.5/Add to plugins folder/Code editor/template/__init__.py: -------------------------------------------------------------------------------- 1 | __author__ = 'Storm Shadow' -------------------------------------------------------------------------------- /7.0/Add to PyQt5 folder/Qsci.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.0/Add to PyQt5 folder/Qsci.dll -------------------------------------------------------------------------------- /7.0/Add to PyQt5 folder/Qsci.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.0/Add to PyQt5 folder/Qsci.pyd -------------------------------------------------------------------------------- /7.2/Add to ida python folder/sip.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.2/Add to ida python folder/sip.pyd -------------------------------------------------------------------------------- /7.0/Add to PyQt5 folder/qscintilla2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.0/Add to PyQt5 folder/qscintilla2.dll -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/Qt.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.5/Add to Python 2 PyQt5 folder/Qt.dll -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/Qt.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.5/Add to Python 2 PyQt5 folder/Qt.pyd -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/Qt.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.2/Add to ida python folder/PyQt5/Qt.dll -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/Qt.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.2/Add to ida python folder/PyQt5/Qt.pyd -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/Qsci.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.5/Add to Python 2 PyQt5 folder/Qsci.dll -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/Qsci.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.5/Add to Python 2 PyQt5 folder/Qsci.pyd -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/QtGui.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.5/Add to Python 2 PyQt5 folder/QtGui.pyd -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/QtSvg.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.5/Add to Python 2 PyQt5 folder/QtSvg.dll -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/QtSvg.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.5/Add to Python 2 PyQt5 folder/QtSvg.pyd -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/QtXml.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.5/Add to Python 2 PyQt5 folder/QtXml.pyd -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/sip.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.5/Add to Python 2 PyQt5 folder/sip.pyd -------------------------------------------------------------------------------- /7.0/Add to PyQt5 folder/qscintilla2_qt5.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.0/Add to PyQt5 folder/qscintilla2_qt5.dll -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/Qsci.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.2/Add to ida python folder/PyQt5/Qsci.dll -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/Qsci.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.2/Add to ida python folder/PyQt5/Qsci.pyd -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/QtGui.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.2/Add to ida python folder/PyQt5/QtGui.pyd -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/QtSvg.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.2/Add to ida python folder/PyQt5/QtSvg.dll -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/QtSvg.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.2/Add to ida python folder/PyQt5/QtSvg.pyd -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/QtXml.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.2/Add to ida python folder/PyQt5/QtXml.pyd -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/Qt5Core.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.5/Add to Python 2 PyQt5 folder/Qt5Core.dll -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/Qt5Gui.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.5/Add to Python 2 PyQt5 folder/Qt5Gui.dll -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/Qt5Xml.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.5/Add to Python 2 PyQt5 folder/Qt5Xml.dll -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/QtCore.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.5/Add to Python 2 PyQt5 folder/QtCore.pyd -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/QtTest.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.5/Add to Python 2 PyQt5 folder/QtTest.pyd -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/Qt5Core.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.2/Add to ida python folder/PyQt5/Qt5Core.dll -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/Qt5Gui.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.2/Add to ida python folder/PyQt5/Qt5Gui.dll -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/Qt5Xml.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.2/Add to ida python folder/PyQt5/Qt5Xml.dll -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/QtCore.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.2/Add to ida python folder/PyQt5/QtCore.pyd -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/QtOpenGL.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.2/Add to ida python folder/PyQt5/QtOpenGL.pyd -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/QtTest.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.2/Add to ida python folder/PyQt5/QtTest.pyd -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/Qt5Network.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.5/Add to Python 2 PyQt5 folder/Qt5Network.dll -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/Qt5OpenGL.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.5/Add to Python 2 PyQt5 folder/Qt5OpenGL.dll -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/Qt5Widgets.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.5/Add to Python 2 PyQt5 folder/Qt5Widgets.dll -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/QtNetwork.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.5/Add to Python 2 PyQt5 folder/QtNetwork.pyd -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/QtOpenGL.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.5/Add to Python 2 PyQt5 folder/QtOpenGL.pyd -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/QtWidgets.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.5/Add to Python 2 PyQt5 folder/QtWidgets.pyd -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/Qt5Network.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.2/Add to ida python folder/PyQt5/Qt5Network.dll -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/Qt5OpenGL.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.2/Add to ida python folder/PyQt5/Qt5OpenGL.dll -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/Qt5Widgets.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.2/Add to ida python folder/PyQt5/Qt5Widgets.dll -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/QtNetwork.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.2/Add to ida python folder/PyQt5/QtNetwork.pyd -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/QtWidgets.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.2/Add to ida python folder/PyQt5/QtWidgets.pyd -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/QtMultimedia.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.5/Add to Python 2 PyQt5 folder/QtMultimedia.dll -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/QtMultimedia.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.5/Add to Python 2 PyQt5 folder/QtMultimedia.pyd -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/QtWinExtras.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.5/Add to Python 2 PyQt5 folder/QtWinExtras.pyd -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/QtMultimedia.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.2/Add to ida python folder/PyQt5/QtMultimedia.dll -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/QtMultimedia.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.2/Add to ida python folder/PyQt5/QtMultimedia.pyd -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/QtWinExtras.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.2/Add to ida python folder/PyQt5/QtWinExtras.pyd -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/QtXmlPatterns.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.2/Add to ida python folder/PyQt5/QtXmlPatterns.dll -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/QtXmlPatterns.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.2/Add to ida python folder/PyQt5/QtXmlPatterns.pyd -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/Qt5PrintSupport.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.5/Add to Python 2 PyQt5 folder/Qt5PrintSupport.dll -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/QtPrintSupport.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.5/Add to Python 2 PyQt5 folder/QtPrintSupport.pyd -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/QtXmlPatterns.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.5/Add to Python 2 PyQt5 folder/QtXmlPatterns.dll -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/QtXmlPatterns.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.5/Add to Python 2 PyQt5 folder/QtXmlPatterns.pyd -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/qscintilla2_qt5.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.5/Add to Python 2 PyQt5 folder/qscintilla2_qt5.dll -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/Qt5PrintSupport.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.2/Add to ida python folder/PyQt5/Qt5PrintSupport.dll -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/QtPrintSupport.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.2/Add to ida python folder/PyQt5/QtPrintSupport.pyd -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/qscintilla2_qt5.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.2/Add to ida python folder/PyQt5/qscintilla2_qt5.dll -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/_QOpenGLFunctions_2_0.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.5/Add to Python 2 PyQt5 folder/_QOpenGLFunctions_2_0.pyd -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/_QOpenGLFunctions_2_1.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.5/Add to Python 2 PyQt5 folder/_QOpenGLFunctions_2_1.pyd -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/_QOpenGLFunctions_2_0.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.2/Add to ida python folder/PyQt5/_QOpenGLFunctions_2_0.pyd -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/_QOpenGLFunctions_2_1.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.2/Add to ida python folder/PyQt5/_QOpenGLFunctions_2_1.pyd -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/_QOpenGLFunctions_4_1_Core.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.5/Add to Python 2 PyQt5 folder/_QOpenGLFunctions_4_1_Core.pyd -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/_QOpenGLFunctions_4_1_Core.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techbliss/Python_editor/HEAD/7.2/Add to ida python folder/PyQt5/_QOpenGLFunctions_4_1_Core.pyd -------------------------------------------------------------------------------- /CHANGELOG.MD: -------------------------------------------------------------------------------- 1 | **Changelog 1** 2 | ``` 3 | Clean up code 4 | Zoom -/+ 5 | Font box 6 | Getting redy for debugger feature 7 | ``` 8 | **Changelog 1.1** 9 | ``` 10 | APi working 11 | better path recognition 12 | apit on/off toggle 13 | run full python programs. 14 | ``` 15 | **Changelog 1.2** 16 | ``` 17 | Added font box Getting. 18 | ready for debugger(added breakpoint boxes in editor). 19 | ``` 20 | 21 | **Changelog 1.3** 22 | ``` 23 | Pyqt5 version >6.8 added 24 | ``` 25 | 26 | **Changelog 1.4** 27 | ``` 28 | Pyqt5 version >7.0 added 29 | ``` -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2017 Riverbank Computing Limited 2 | # 3 | # This file is part of PyQt5. 4 | # 5 | # This file may be used under the terms of the GNU General Public License 6 | # version 3.0 as published by the Free Software Foundation and appearing in 7 | # the file LICENSE included in the packaging of this file. Please review the 8 | # following information to ensure the GNU General Public License version 3.0 9 | # requirements will be met: http://www.gnu.org/copyleft/gpl.html. 10 | # 11 | # If you do not wish to use this file under the terms of the GPL version 3.0 12 | # then you may purchase a commercial license. For more information contact 13 | # info@riverbankcomputing.com. 14 | # 15 | # This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 16 | # WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 17 | -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2017 Riverbank Computing Limited 2 | # 3 | # This file is part of PyQt5. 4 | # 5 | # This file may be used under the terms of the GNU General Public License 6 | # version 3.0 as published by the Free Software Foundation and appearing in 7 | # the file LICENSE included in the packaging of this file. Please review the 8 | # following information to ensure the GNU General Public License version 3.0 9 | # requirements will be met: http://www.gnu.org/copyleft/gpl.html. 10 | # 11 | # If you do not wish to use this file under the terms of the GPL version 3.0 12 | # then you may purchase a commercial license. For more information contact 13 | # info@riverbankcomputing.com. 14 | # 15 | # This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 16 | # WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 17 | -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/uic/Loader/__init__.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/uic/port_v2/__init__.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/uic/port_v3/__init__.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/uic/Compiler/__init__.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/uic/Loader/__init__.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/uic/port_v2/__init__.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/uic/port_v3/__init__.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/uic/Compiler/__init__.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/uic/port_v3/string_io.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | # Import the StringIO object. 24 | from io import StringIO 25 | -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/uic/port_v3/string_io.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | # Import the StringIO object. 24 | from io import StringIO 25 | -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/uic/port_v2/string_io.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | # Import the StringIO object. 24 | try: 25 | from cStringIO import StringIO 26 | except ImportError: 27 | from StringIO import StringIO 28 | -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/uic/port_v2/string_io.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | # Import the StringIO object. 24 | try: 25 | from cStringIO import StringIO 26 | except ImportError: 27 | from StringIO import StringIO 28 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to 25 | -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/uic/port_v3/proxy_base.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | from ..Compiler.proxy_metaclass import ProxyMetaclass 24 | 25 | 26 | class ProxyBase(metaclass=ProxyMetaclass): 27 | """ A base class for proxies using Python v3 syntax for setting the 28 | meta-class. 29 | """ 30 | -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/uic/port_v3/proxy_base.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | from ..Compiler.proxy_metaclass import ProxyMetaclass 24 | 25 | 26 | class ProxyBase(metaclass=ProxyMetaclass): 27 | """ A base class for proxies using Python v3 syntax for setting the 28 | meta-class. 29 | """ 30 | -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/uic/port_v2/proxy_base.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | from ..Compiler.proxy_metaclass import ProxyMetaclass 24 | 25 | 26 | class ProxyBase(object): 27 | """ A base class for proxies using Python v2 syntax for setting the 28 | meta-class. 29 | """ 30 | 31 | __metaclass__ = ProxyMetaclass 32 | -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/uic/port_v2/proxy_base.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | from ..Compiler.proxy_metaclass import ProxyMetaclass 24 | 25 | 26 | class ProxyBase(object): 27 | """ A base class for proxies using Python v2 syntax for setting the 28 | meta-class. 29 | """ 30 | 31 | __metaclass__ = ProxyMetaclass 32 | -------------------------------------------------------------------------------- /6.95/plugins/Python_editor.py: -------------------------------------------------------------------------------- 1 | # Created by: Storm Shadow http://www.techbliss.org 2 | 3 | import re 4 | import idaapi 5 | import idc 6 | from idc import * 7 | from idaapi import * 8 | import sys 9 | sys.path.insert(0 , idaapi.idadir("plugins\\Code editor\\icons")) 10 | import ico 11 | from ico import * 12 | class ripeye(idaapi.plugin_t): 13 | flags = idaapi.PLUGIN_FIX 14 | comment = "This is a comment" 15 | 16 | help = "Python Editor" 17 | wanted_name = "Python Editor" 18 | wanted_hotkey = "ALT-E" 19 | 20 | 21 | 22 | def init(self): 23 | idaapi.msg("Python Editor Is Found Use Alt+E to load to menu \n") 24 | return idaapi.PLUGIN_OK 25 | 26 | 27 | def run(self, arg): 28 | idaapi.msg("run() called with %d!\n" % arg) 29 | 30 | def term(self): 31 | idaapi.msg("") 32 | 33 | 34 | 35 | def AddMenuElements(self): 36 | idaapi.add_menu_item("File/", "Code editor", "Alt-E", 0, self.popeye, ()) 37 | idaapi.set_menu_item_icon("File/Code editor", idaapi.load_custom_icon(":/ico/python.png")) 38 | 39 | 40 | 41 | 42 | def run(self, arg = 0): 43 | idaapi.msg("Python Editor Loaded to menu use Alt+E once more") 44 | self.AddMenuElements() 45 | 46 | def popeye(self): 47 | g = globals() 48 | idahome = idaapi.idadir("plugins\\Code editor") 49 | IDAPython_ExecScript(idahome + "\\pyeditor.py", g) 50 | 51 | 52 | 53 | 54 | def PLUGIN_ENTRY(): 55 | return ripeye() -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/uic/port_v3/ascii_upper.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | # A translation table for converting ASCII lower case to upper case. 24 | _ascii_trans_table = bytes.maketrans(b'abcdefghijklmnopqrstuvwxyz', 25 | b'ABCDEFGHIJKLMNOPQRSTUVWXYZ') 26 | 27 | 28 | # Convert a string to ASCII upper case irrespective of the current locale. 29 | def ascii_upper(s): 30 | return s.translate(_ascii_trans_table) 31 | -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/uic/port_v3/ascii_upper.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | # A translation table for converting ASCII lower case to upper case. 24 | _ascii_trans_table = bytes.maketrans(b'abcdefghijklmnopqrstuvwxyz', 25 | b'ABCDEFGHIJKLMNOPQRSTUVWXYZ') 26 | 27 | 28 | # Convert a string to ASCII upper case irrespective of the current locale. 29 | def ascii_upper(s): 30 | return s.translate(_ascii_trans_table) 31 | -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/uic/port_v2/ascii_upper.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | import string 24 | 25 | 26 | # A translation table for converting ASCII lower case to upper case. 27 | _ascii_trans_table = string.maketrans(string.ascii_lowercase, 28 | string.ascii_uppercase) 29 | 30 | 31 | # Convert a string to ASCII upper case irrespective of the current locale. 32 | def ascii_upper(s): 33 | return s.translate(_ascii_trans_table) 34 | -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/uic/port_v2/ascii_upper.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | import string 24 | 25 | 26 | # A translation table for converting ASCII lower case to upper case. 27 | _ascii_trans_table = string.maketrans(string.ascii_lowercase, 28 | string.ascii_uppercase) 29 | 30 | 31 | # Convert a string to ASCII upper case irrespective of the current locale. 32 | def ascii_upper(s): 33 | return s.translate(_ascii_trans_table) 34 | -------------------------------------------------------------------------------- /6.8/plugins/Python_editor.py: -------------------------------------------------------------------------------- 1 | # Created by: Storm Shadow http://www.techbliss.org 2 | 3 | # WARNING! All changes made in this file will be lost! 4 | import re 5 | import idaapi 6 | import idc 7 | from idc import * 8 | from idaapi import * 9 | import sys 10 | sys.path.insert(0 , idaapi.idadir("plugins\\Code editor\\icons")) 11 | import ico 12 | from ico import * 13 | class ripeye(idaapi.plugin_t): 14 | flags = idaapi.PLUGIN_FIX 15 | comment = "This is a comment" 16 | 17 | help = "Python Editor" 18 | wanted_name = "Python Editor" 19 | wanted_hotkey = "ALT-E" 20 | 21 | 22 | 23 | def init(self): 24 | idaapi.msg("Python Editor Is Found Use Alt+E to load to menu \n") 25 | return idaapi.PLUGIN_OK 26 | 27 | 28 | def run(self, arg): 29 | idaapi.msg("run() called with %d!\n" % arg) 30 | 31 | def term(self): 32 | idaapi.msg("") 33 | 34 | 35 | 36 | def AddMenuElements(self): 37 | idaapi.add_menu_item("File/", "Code editor", "Alt-E", 0, self.popeye, ()) 38 | idaapi.set_menu_item_icon("File/Code editor", idaapi.load_custom_icon(":/ico/python.png")) 39 | 40 | 41 | 42 | 43 | def run(self, arg = 0): 44 | idaapi.msg("Python Editor Loaded to menu use Alt+E once more") 45 | self.AddMenuElements() 46 | 47 | def popeye(self): 48 | g = globals() 49 | idahome = idaapi.idadir("plugins\\Code editor") 50 | IDAPython_ExecScript(idahome + "\\pyeditor.py", g) 51 | 52 | 53 | 54 | 55 | def PLUGIN_ENTRY(): 56 | return ripeye() -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/uic/port_v3/as_string.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | import re 24 | 25 | 26 | def as_string(obj): 27 | if isinstance(obj, str): 28 | return '"' + _escape(obj) + '"' 29 | 30 | return str(obj) 31 | 32 | 33 | _esc_regex = re.compile(r"(\"|\'|\\)") 34 | 35 | def _escape(text): 36 | # This escapes any escaped single or double quote or backslash. 37 | x = _esc_regex.sub(r"\\\1", text) 38 | 39 | # This replaces any '\n' with an escaped version and a real line break. 40 | return re.sub(r'\n', r'\\n"\n"', x) 41 | -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/uic/port_v3/as_string.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | import re 24 | 25 | 26 | def as_string(obj): 27 | if isinstance(obj, str): 28 | return '"' + _escape(obj) + '"' 29 | 30 | return str(obj) 31 | 32 | 33 | _esc_regex = re.compile(r"(\"|\'|\\)") 34 | 35 | def _escape(text): 36 | # This escapes any escaped single or double quote or backslash. 37 | x = _esc_regex.sub(r"\\\1", text) 38 | 39 | # This replaces any '\n' with an escaped version and a real line break. 40 | return re.sub(r'\n', r'\\n"\n"', x) 41 | -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/uic/port_v2/as_string.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | import re 24 | 25 | 26 | def as_string(obj): 27 | if isinstance(obj, basestring): 28 | return '"' + _escape(obj.encode('UTF-8')) + '"' 29 | 30 | return str(obj) 31 | 32 | 33 | _esc_regex = re.compile(r"(\"|\'|\\)") 34 | 35 | def _escape(text): 36 | # This escapes any escaped single or double quote or backslash. 37 | x = _esc_regex.sub(r"\\\1", text) 38 | 39 | # This replaces any '\n' with an escaped version and a real line break. 40 | return re.sub(r'\n', r'\\n"\n"', x) 41 | -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/uic/port_v2/as_string.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | import re 24 | 25 | 26 | def as_string(obj): 27 | if isinstance(obj, basestring): 28 | return '"' + _escape(obj.encode('UTF-8')) + '"' 29 | 30 | return str(obj) 31 | 32 | 33 | _esc_regex = re.compile(r"(\"|\'|\\)") 34 | 35 | def _escape(text): 36 | # This escapes any escaped single or double quote or backslash. 37 | x = _esc_regex.sub(r"\\\1", text) 38 | 39 | # This replaces any '\n' with an escaped version and a real line break. 40 | return re.sub(r'\n', r'\\n"\n"', x) 41 | -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/uic/widget-plugins/qtcharts.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | # If pluginType is MODULE, the plugin loader will call moduleInformation. The 24 | # variable MODULE is inserted into the local namespace by the plugin loader. 25 | pluginType = MODULE 26 | 27 | 28 | # moduleInformation() must return a tuple (module, widget_list). If "module" 29 | # is "A" and any widget from this module is used, the code generator will write 30 | # "import A". If "module" is "A[.B].C", the code generator will write 31 | # "from A[.B] import C". Each entry in "widget_list" must be unique. 32 | def moduleInformation(): 33 | return "PyQt5.QtChart", ("QChartView", ) 34 | -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/uic/widget-plugins/qscintilla.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | # If pluginType is MODULE, the plugin loader will call moduleInformation. The 24 | # variable MODULE is inserted into the local namespace by the plugin loader. 25 | pluginType = MODULE 26 | 27 | 28 | # moduleInformation() must return a tuple (module, widget_list). If "module" 29 | # is "A" and any widget from this module is used, the code generator will write 30 | # "import A". If "module" is "A[.B].C", the code generator will write 31 | # "from A[.B] import C". Each entry in "widget_list" must be unique. 32 | def moduleInformation(): 33 | return "PyQt5.Qsci", ("QsciScintilla", ) 34 | -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/uic/widget-plugins/qtcharts.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | # If pluginType is MODULE, the plugin loader will call moduleInformation. The 24 | # variable MODULE is inserted into the local namespace by the plugin loader. 25 | pluginType = MODULE 26 | 27 | 28 | # moduleInformation() must return a tuple (module, widget_list). If "module" 29 | # is "A" and any widget from this module is used, the code generator will write 30 | # "import A". If "module" is "A[.B].C", the code generator will write 31 | # "from A[.B] import C". Each entry in "widget_list" must be unique. 32 | def moduleInformation(): 33 | return "PyQt5.QtChart", ("QChartView", ) 34 | -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/uic/widget-plugins/qscintilla.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | # If pluginType is MODULE, the plugin loader will call moduleInformation. The 24 | # variable MODULE is inserted into the local namespace by the plugin loader. 25 | pluginType = MODULE 26 | 27 | 28 | # moduleInformation() must return a tuple (module, widget_list). If "module" 29 | # is "A" and any widget from this module is used, the code generator will write 30 | # "import A". If "module" is "A[.B].C", the code generator will write 31 | # "from A[.B] import C". Each entry in "widget_list" must be unique. 32 | def moduleInformation(): 33 | return "PyQt5.Qsci", ("QsciScintilla", ) 34 | -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/uic/widget-plugins/qaxcontainer.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | # If pluginType is MODULE, the plugin loader will call moduleInformation. The 24 | # variable MODULE is inserted into the local namespace by the plugin loader. 25 | pluginType = MODULE 26 | 27 | 28 | # moduleInformation() must return a tuple (module, widget_list). If "module" 29 | # is "A" and any widget from this module is used, the code generator will write 30 | # "import A". If "module" is "A[.B].C", the code generator will write 31 | # "from A[.B] import C". Each entry in "widget_list" must be unique. 32 | def moduleInformation(): 33 | return "PyQt5.QAxContainer", ("QAxWidget", ) 34 | -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/uic/widget-plugins/qaxcontainer.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | # If pluginType is MODULE, the plugin loader will call moduleInformation. The 24 | # variable MODULE is inserted into the local namespace by the plugin loader. 25 | pluginType = MODULE 26 | 27 | 28 | # moduleInformation() must return a tuple (module, widget_list). If "module" 29 | # is "A" and any widget from this module is used, the code generator will write 30 | # "import A". If "module" is "A[.B].C", the code generator will write 31 | # "from A[.B] import C". Each entry in "widget_list" must be unique. 32 | def moduleInformation(): 33 | return "PyQt5.QAxContainer", ("QAxWidget", ) 34 | -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/uic/widget-plugins/qtquickwidgets.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | # If pluginType is MODULE, the plugin loader will call moduleInformation. The 24 | # variable MODULE is inserted into the local namespace by the plugin loader. 25 | pluginType = MODULE 26 | 27 | 28 | # moduleInformation() must return a tuple (module, widget_list). If "module" 29 | # is "A" and any widget from this module is used, the code generator will write 30 | # "import A". If "module" is "A[.B].C", the code generator will write 31 | # "from A[.B] import C". Each entry in "widget_list" must be unique. 32 | def moduleInformation(): 33 | return "PyQt5.QtQuickWidgets", ("QQuickWidget", ) 34 | -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/uic/widget-plugins/qtquickwidgets.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | # If pluginType is MODULE, the plugin loader will call moduleInformation. The 24 | # variable MODULE is inserted into the local namespace by the plugin loader. 25 | pluginType = MODULE 26 | 27 | 28 | # moduleInformation() must return a tuple (module, widget_list). If "module" 29 | # is "A" and any widget from this module is used, the code generator will write 30 | # "import A". If "module" is "A[.B].C", the code generator will write 31 | # "from A[.B] import C". Each entry in "widget_list" must be unique. 32 | def moduleInformation(): 33 | return "PyQt5.QtQuickWidgets", ("QQuickWidget", ) 34 | -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/uic/widget-plugins/qtwebenginewidgets.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | # If pluginType is MODULE, the plugin loader will call moduleInformation. The 24 | # variable MODULE is inserted into the local namespace by the plugin loader. 25 | pluginType = MODULE 26 | 27 | 28 | # moduleInformation() must return a tuple (module, widget_list). If "module" 29 | # is "A" and any widget from this module is used, the code generator will write 30 | # "import A". If "module" is "A[.B].C", the code generator will write 31 | # "from A[.B] import C". Each entry in "widget_list" must be unique. 32 | def moduleInformation(): 33 | return "PyQt5.QtWebEngineWidgets", ("QWebEngineView", ) 34 | -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/uic/widget-plugins/qtwebenginewidgets.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | # If pluginType is MODULE, the plugin loader will call moduleInformation. The 24 | # variable MODULE is inserted into the local namespace by the plugin loader. 25 | pluginType = MODULE 26 | 27 | 28 | # moduleInformation() must return a tuple (module, widget_list). If "module" 29 | # is "A" and any widget from this module is used, the code generator will write 30 | # "import A". If "module" is "A[.B].C", the code generator will write 31 | # "from A[.B] import C". Each entry in "widget_list" must be unique. 32 | def moduleInformation(): 33 | return "PyQt5.QtWebEngineWidgets", ("QWebEngineView", ) 34 | -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/uic/widget-plugins/qtprintsupport.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | # If pluginType is MODULE, the plugin loader will call moduleInformation. The 24 | # variable MODULE is inserted into the local namespace by the plugin loader. 25 | pluginType = MODULE 26 | 27 | 28 | # moduleInformation() must return a tuple (module, widget_list). If "module" 29 | # is "A" and any widget from this module is used, the code generator will write 30 | # "import A". If "module" is "A[.B].C", the code generator will write 31 | # "from A[.B] import C". Each entry in "widget_list" must be unique. 32 | def moduleInformation(): 33 | return 'PyQt5.QtPrintSupport', ('QAbstractPrintDialog', 'QPageSetupDialog') 34 | -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/uic/widget-plugins/qtprintsupport.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | # If pluginType is MODULE, the plugin loader will call moduleInformation. The 24 | # variable MODULE is inserted into the local namespace by the plugin loader. 25 | pluginType = MODULE 26 | 27 | 28 | # moduleInformation() must return a tuple (module, widget_list). If "module" 29 | # is "A" and any widget from this module is used, the code generator will write 30 | # "import A". If "module" is "A[.B].C", the code generator will write 31 | # "from A[.B] import C". Each entry in "widget_list" must be unique. 32 | def moduleInformation(): 33 | return 'PyQt5.QtPrintSupport', ('QAbstractPrintDialog', 'QPageSetupDialog') 34 | -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/uic/port_v2/invoke.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2016 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | from ..exceptions import NoSuchWidgetError 24 | 25 | 26 | def invoke(driver): 27 | """ Invoke the given command line driver. Return the exit status to be 28 | passed back to the parent process. 29 | """ 30 | 31 | exit_status = 1 32 | 33 | try: 34 | exit_status = driver.invoke() 35 | 36 | except IOError, e: 37 | driver.on_IOError(e) 38 | 39 | except SyntaxError, e: 40 | driver.on_SyntaxError(e) 41 | 42 | except NoSuchWidgetError, e: 43 | driver.on_NoSuchWidgetError(e) 44 | 45 | except Exception, e: 46 | driver.on_Exception(e) 47 | 48 | return exit_status 49 | -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/uic/port_v3/invoke.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2016 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | from ..exceptions import NoSuchWidgetError 24 | 25 | 26 | def invoke(driver): 27 | """ Invoke the given command line driver. Return the exit status to be 28 | passed back to the parent process. 29 | """ 30 | 31 | exit_status = 1 32 | 33 | try: 34 | exit_status = driver.invoke() 35 | 36 | except IOError as e: 37 | driver.on_IOError(e) 38 | 39 | except SyntaxError as e: 40 | driver.on_SyntaxError(e) 41 | 42 | except NoSuchWidgetError as e: 43 | driver.on_NoSuchWidgetError(e) 44 | 45 | except Exception as e: 46 | driver.on_Exception(e) 47 | 48 | return exit_status 49 | -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/uic/port_v2/load_plugin.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2016 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | from ..exceptions import WidgetPluginError 24 | 25 | 26 | def load_plugin(filename, plugin_globals, plugin_locals): 27 | """ Load the plugin from the given file. Return True if the plugin was 28 | loaded, or False if it wanted to be ignored. Raise an exception if there 29 | was an error. 30 | """ 31 | 32 | plugin = open(filename, 'rU') 33 | 34 | try: 35 | exec(plugin.read(), plugin_globals, plugin_locals) 36 | except ImportError: 37 | return False 38 | except Exception, e: 39 | raise WidgetPluginError("%s: %s" % (e.__class__, str(e))) 40 | finally: 41 | plugin.close() 42 | 43 | return True 44 | -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/uic/port_v3/load_plugin.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2016 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | from ..exceptions import WidgetPluginError 24 | 25 | 26 | def load_plugin(filename, plugin_globals, plugin_locals): 27 | """ Load the plugin from the given file. Return True if the plugin was 28 | loaded, or False if it wanted to be ignored. Raise an exception if there 29 | was an error. 30 | """ 31 | 32 | plugin = open(filename, 'r') 33 | 34 | try: 35 | exec(plugin.read(), plugin_globals, plugin_locals) 36 | except ImportError: 37 | return False 38 | except Exception as e: 39 | raise WidgetPluginError("%s: %s" % (e.__class__, str(e))) 40 | finally: 41 | plugin.close() 42 | 43 | return True 44 | -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/uic/exceptions.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (C) 2017 Riverbank Computing Limited. 4 | ## Copyright (C) 2006 Thorsten Marek. 5 | ## All right reserved. 6 | ## 7 | ## This file is part of PyQt. 8 | ## 9 | ## You may use this file under the terms of the GPL v2 or the revised BSD 10 | ## license as follows: 11 | ## 12 | ## "Redistribution and use in source and binary forms, with or without 13 | ## modification, are permitted provided that the following conditions are 14 | ## met: 15 | ## * Redistributions of source code must retain the above copyright 16 | ## notice, this list of conditions and the following disclaimer. 17 | ## * Redistributions in binary form must reproduce the above copyright 18 | ## notice, this list of conditions and the following disclaimer in 19 | ## the documentation and/or other materials provided with the 20 | ## distribution. 21 | ## * Neither the name of the Riverbank Computing Limited nor the names 22 | ## of its contributors may be used to endorse or promote products 23 | ## derived from this software without specific prior written 24 | ## permission. 25 | ## 26 | ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 27 | ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 28 | ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 29 | ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 30 | ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 31 | ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 32 | ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 33 | ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 34 | ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 35 | ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 36 | ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." 37 | ## 38 | ############################################################################# 39 | 40 | 41 | class NoSuchClassError(Exception): 42 | def __str__(self): 43 | return "Unknown C++ class: %s" % self.args[0] 44 | 45 | class NoSuchWidgetError(Exception): 46 | def __str__(self): 47 | return "Unknown Qt widget: %s" % self.args[0] 48 | 49 | class UnsupportedPropertyError(Exception): 50 | pass 51 | 52 | class WidgetPluginError(Exception): 53 | pass 54 | -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/uic/exceptions.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (C) 2017 Riverbank Computing Limited. 4 | ## Copyright (C) 2006 Thorsten Marek. 5 | ## All right reserved. 6 | ## 7 | ## This file is part of PyQt. 8 | ## 9 | ## You may use this file under the terms of the GPL v2 or the revised BSD 10 | ## license as follows: 11 | ## 12 | ## "Redistribution and use in source and binary forms, with or without 13 | ## modification, are permitted provided that the following conditions are 14 | ## met: 15 | ## * Redistributions of source code must retain the above copyright 16 | ## notice, this list of conditions and the following disclaimer. 17 | ## * Redistributions in binary form must reproduce the above copyright 18 | ## notice, this list of conditions and the following disclaimer in 19 | ## the documentation and/or other materials provided with the 20 | ## distribution. 21 | ## * Neither the name of the Riverbank Computing Limited nor the names 22 | ## of its contributors may be used to endorse or promote products 23 | ## derived from this software without specific prior written 24 | ## permission. 25 | ## 26 | ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 27 | ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 28 | ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 29 | ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 30 | ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 31 | ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 32 | ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 33 | ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 34 | ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 35 | ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 36 | ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." 37 | ## 38 | ############################################################################# 39 | 40 | 41 | class NoSuchClassError(Exception): 42 | def __str__(self): 43 | return "Unknown C++ class: %s" % self.args[0] 44 | 45 | class NoSuchWidgetError(Exception): 46 | def __str__(self): 47 | return "Unknown Qt widget: %s" % self.args[0] 48 | 49 | class UnsupportedPropertyError(Exception): 50 | pass 51 | 52 | class WidgetPluginError(Exception): 53 | pass 54 | -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/uic/Compiler/misc.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (C) 2016 Riverbank Computing Limited. 4 | ## Copyright (C) 2006 Thorsten Marek. 5 | ## All right reserved. 6 | ## 7 | ## This file is part of PyQt. 8 | ## 9 | ## You may use this file under the terms of the GPL v2 or the revised BSD 10 | ## license as follows: 11 | ## 12 | ## "Redistribution and use in source and binary forms, with or without 13 | ## modification, are permitted provided that the following conditions are 14 | ## met: 15 | ## * Redistributions of source code must retain the above copyright 16 | ## notice, this list of conditions and the following disclaimer. 17 | ## * Redistributions in binary form must reproduce the above copyright 18 | ## notice, this list of conditions and the following disclaimer in 19 | ## the documentation and/or other materials provided with the 20 | ## distribution. 21 | ## * Neither the name of the Riverbank Computing Limited nor the names 22 | ## of its contributors may be used to endorse or promote products 23 | ## derived from this software without specific prior written 24 | ## permission. 25 | ## 26 | ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 27 | ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 28 | ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 29 | ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 30 | ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 31 | ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 32 | ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 33 | ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 34 | ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 35 | ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 36 | ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." 37 | ## 38 | ############################################################################# 39 | 40 | 41 | def moduleMember(module, name): 42 | if module: 43 | return "%s.%s" % (module, name) 44 | 45 | return name 46 | 47 | 48 | class Literal(object): 49 | """Literal(string) -> new literal 50 | 51 | string will not be quoted when put into an argument list""" 52 | def __init__(self, string): 53 | self.string = string 54 | 55 | def __str__(self): 56 | return self.string 57 | 58 | def __or__(self, r_op): 59 | return Literal("%s|%s" % (self, r_op)) 60 | -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/uic/Compiler/misc.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (C) 2016 Riverbank Computing Limited. 4 | ## Copyright (C) 2006 Thorsten Marek. 5 | ## All right reserved. 6 | ## 7 | ## This file is part of PyQt. 8 | ## 9 | ## You may use this file under the terms of the GPL v2 or the revised BSD 10 | ## license as follows: 11 | ## 12 | ## "Redistribution and use in source and binary forms, with or without 13 | ## modification, are permitted provided that the following conditions are 14 | ## met: 15 | ## * Redistributions of source code must retain the above copyright 16 | ## notice, this list of conditions and the following disclaimer. 17 | ## * Redistributions in binary form must reproduce the above copyright 18 | ## notice, this list of conditions and the following disclaimer in 19 | ## the documentation and/or other materials provided with the 20 | ## distribution. 21 | ## * Neither the name of the Riverbank Computing Limited nor the names 22 | ## of its contributors may be used to endorse or promote products 23 | ## derived from this software without specific prior written 24 | ## permission. 25 | ## 26 | ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 27 | ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 28 | ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 29 | ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 30 | ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 31 | ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 32 | ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 33 | ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 34 | ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 35 | ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 36 | ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." 37 | ## 38 | ############################################################################# 39 | 40 | 41 | def moduleMember(module, name): 42 | if module: 43 | return "%s.%s" % (module, name) 44 | 45 | return name 46 | 47 | 48 | class Literal(object): 49 | """Literal(string) -> new literal 50 | 51 | string will not be quoted when put into an argument list""" 52 | def __init__(self, string): 53 | self.string = string 54 | 55 | def __str__(self): 56 | return self.string 57 | 58 | def __or__(self, r_op): 59 | return Literal("%s|%s" % (self, r_op)) 60 | -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/uic/widget-plugins/qtwebkit.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (C) 2014 Riverbank Computing Limited. 4 | ## Copyright (C) 2006 Thorsten Marek. 5 | ## All right reserved. 6 | ## 7 | ## This file is part of PyQt. 8 | ## 9 | ## You may use this file under the terms of the GPL v2 or the revised BSD 10 | ## license as follows: 11 | ## 12 | ## "Redistribution and use in source and binary forms, with or without 13 | ## modification, are permitted provided that the following conditions are 14 | ## met: 15 | ## * Redistributions of source code must retain the above copyright 16 | ## notice, this list of conditions and the following disclaimer. 17 | ## * Redistributions in binary form must reproduce the above copyright 18 | ## notice, this list of conditions and the following disclaimer in 19 | ## the documentation and/or other materials provided with the 20 | ## distribution. 21 | ## * Neither the name of the Riverbank Computing Limited nor the names 22 | ## of its contributors may be used to endorse or promote products 23 | ## derived from this software without specific prior written 24 | ## permission. 25 | ## 26 | ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 27 | ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 28 | ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 29 | ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 30 | ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 31 | ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 32 | ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 33 | ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 34 | ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 35 | ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 36 | ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." 37 | ## 38 | ############################################################################# 39 | 40 | 41 | # If pluginType is MODULE, the plugin loader will call moduleInformation. The 42 | # variable MODULE is inserted into the local namespace by the plugin loader. 43 | pluginType = MODULE 44 | 45 | 46 | # moduleInformation() must return a tuple (module, widget_list). If "module" 47 | # is "A" and any widget from this module is used, the code generator will write 48 | # "import A". If "module" is "A[.B].C", the code generator will write 49 | # "from A[.B] import C". Each entry in "widget_list" must be unique. 50 | def moduleInformation(): 51 | return "PyQt5.QtWebKitWidgets", ("QWebView", ) 52 | -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/uic/widget-plugins/qtwebkit.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (C) 2014 Riverbank Computing Limited. 4 | ## Copyright (C) 2006 Thorsten Marek. 5 | ## All right reserved. 6 | ## 7 | ## This file is part of PyQt. 8 | ## 9 | ## You may use this file under the terms of the GPL v2 or the revised BSD 10 | ## license as follows: 11 | ## 12 | ## "Redistribution and use in source and binary forms, with or without 13 | ## modification, are permitted provided that the following conditions are 14 | ## met: 15 | ## * Redistributions of source code must retain the above copyright 16 | ## notice, this list of conditions and the following disclaimer. 17 | ## * Redistributions in binary form must reproduce the above copyright 18 | ## notice, this list of conditions and the following disclaimer in 19 | ## the documentation and/or other materials provided with the 20 | ## distribution. 21 | ## * Neither the name of the Riverbank Computing Limited nor the names 22 | ## of its contributors may be used to endorse or promote products 23 | ## derived from this software without specific prior written 24 | ## permission. 25 | ## 26 | ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 27 | ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 28 | ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 29 | ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 30 | ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 31 | ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 32 | ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 33 | ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 34 | ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 35 | ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 36 | ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." 37 | ## 38 | ############################################################################# 39 | 40 | 41 | # If pluginType is MODULE, the plugin loader will call moduleInformation. The 42 | # variable MODULE is inserted into the local namespace by the plugin loader. 43 | pluginType = MODULE 44 | 45 | 46 | # moduleInformation() must return a tuple (module, widget_list). If "module" 47 | # is "A" and any widget from this module is used, the code generator will write 48 | # "import A". If "module" is "A[.B].C", the code generator will write 49 | # "from A[.B] import C". Each entry in "widget_list" must be unique. 50 | def moduleInformation(): 51 | return "PyQt5.QtWebKitWidgets", ("QWebView", ) 52 | -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/uic/Compiler/indenter.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (C) 2014 Riverbank Computing Limited. 4 | ## Copyright (C) 2006 Thorsten Marek. 5 | ## All right reserved. 6 | ## 7 | ## This file is part of PyQt. 8 | ## 9 | ## You may use this file under the terms of the GPL v2 or the revised BSD 10 | ## license as follows: 11 | ## 12 | ## "Redistribution and use in source and binary forms, with or without 13 | ## modification, are permitted provided that the following conditions are 14 | ## met: 15 | ## * Redistributions of source code must retain the above copyright 16 | ## notice, this list of conditions and the following disclaimer. 17 | ## * Redistributions in binary form must reproduce the above copyright 18 | ## notice, this list of conditions and the following disclaimer in 19 | ## the documentation and/or other materials provided with the 20 | ## distribution. 21 | ## * Neither the name of the Riverbank Computing Limited nor the names 22 | ## of its contributors may be used to endorse or promote products 23 | ## derived from this software without specific prior written 24 | ## permission. 25 | ## 26 | ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 27 | ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 28 | ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 29 | ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 30 | ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 31 | ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 32 | ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 33 | ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 34 | ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 35 | ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 36 | ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." 37 | ## 38 | ############################################################################# 39 | 40 | 41 | indentwidth = 4 42 | 43 | _indenter = None 44 | 45 | class _IndentedCodeWriter(object): 46 | def __init__(self, output): 47 | self.level = 0 48 | self.output = output 49 | 50 | def indent(self): 51 | self.level += 1 52 | 53 | def dedent(self): 54 | self.level -= 1 55 | 56 | def write(self, line): 57 | if line.strip(): 58 | if indentwidth > 0: 59 | indent = " " * indentwidth 60 | line = line.replace("\t", indent) 61 | else: 62 | indent = "\t" 63 | 64 | self.output.write("%s%s\n" % (indent * self.level, line)) 65 | else: 66 | self.output.write("\n") 67 | 68 | 69 | def createCodeIndenter(output): 70 | global _indenter 71 | _indenter = _IndentedCodeWriter(output) 72 | 73 | def getIndenter(): 74 | return _indenter 75 | 76 | def write_code(string): 77 | _indenter.write(string) 78 | -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/uic/Compiler/indenter.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (C) 2014 Riverbank Computing Limited. 4 | ## Copyright (C) 2006 Thorsten Marek. 5 | ## All right reserved. 6 | ## 7 | ## This file is part of PyQt. 8 | ## 9 | ## You may use this file under the terms of the GPL v2 or the revised BSD 10 | ## license as follows: 11 | ## 12 | ## "Redistribution and use in source and binary forms, with or without 13 | ## modification, are permitted provided that the following conditions are 14 | ## met: 15 | ## * Redistributions of source code must retain the above copyright 16 | ## notice, this list of conditions and the following disclaimer. 17 | ## * Redistributions in binary form must reproduce the above copyright 18 | ## notice, this list of conditions and the following disclaimer in 19 | ## the documentation and/or other materials provided with the 20 | ## distribution. 21 | ## * Neither the name of the Riverbank Computing Limited nor the names 22 | ## of its contributors may be used to endorse or promote products 23 | ## derived from this software without specific prior written 24 | ## permission. 25 | ## 26 | ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 27 | ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 28 | ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 29 | ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 30 | ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 31 | ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 32 | ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 33 | ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 34 | ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 35 | ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 36 | ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." 37 | ## 38 | ############################################################################# 39 | 40 | 41 | indentwidth = 4 42 | 43 | _indenter = None 44 | 45 | class _IndentedCodeWriter(object): 46 | def __init__(self, output): 47 | self.level = 0 48 | self.output = output 49 | 50 | def indent(self): 51 | self.level += 1 52 | 53 | def dedent(self): 54 | self.level -= 1 55 | 56 | def write(self, line): 57 | if line.strip(): 58 | if indentwidth > 0: 59 | indent = " " * indentwidth 60 | line = line.replace("\t", indent) 61 | else: 62 | indent = "\t" 63 | 64 | self.output.write("%s%s\n" % (indent * self.level, line)) 65 | else: 66 | self.output.write("\n") 67 | 68 | 69 | def createCodeIndenter(output): 70 | global _indenter 71 | _indenter = _IndentedCodeWriter(output) 72 | 73 | def getIndenter(): 74 | return _indenter 75 | 76 | def write_code(string): 77 | _indenter.write(string) 78 | -------------------------------------------------------------------------------- /7.2/Add to ida python folder/sip.pyi: -------------------------------------------------------------------------------- 1 | # This file is the Python type hints stub file for the sip extension module. 2 | # 3 | # Copyright (c) 2016 Riverbank Computing Limited 4 | # 5 | # This file is part of SIP. 6 | # 7 | # This copy of SIP is licensed for use under the terms of the SIP License 8 | # Agreement. See the file LICENSE for more details. 9 | # 10 | # This copy of SIP may also used under the terms of the GNU General Public 11 | # License v2 or v3 as published by the Free Software Foundation which can be 12 | # found in the files LICENSE-GPL2 and LICENSE-GPL3 included in this package. 13 | # 14 | # SIP is supplied WITHOUT ANY WARRANTY; without even the implied warranty of 15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 | 17 | 18 | from typing import overload, Sequence, Union 19 | 20 | 21 | # Constants. 22 | SIP_VERSION = ... # type: int 23 | SIP_VERSION_STR = ... # type: str 24 | 25 | 26 | # The bases for SIP generated types. 27 | class wrappertype: ... 28 | class simplewrapper: ... 29 | class wrapper(simplewrapper): ... 30 | 31 | 32 | # PEP 484 has no explicit support for the buffer protocol so we just name types 33 | # we know that implement it. 34 | Buffer = Union['array', 'voidptr', str, bytes, bytearray] 35 | 36 | 37 | # The array type. 38 | class array(Sequence): ... 39 | 40 | 41 | # The voidptr type. 42 | class voidptr: 43 | 44 | def __init__(addr: Union[int, Buffer], size: int = -1, writeable: bool = True) -> None: ... 45 | 46 | def __int__(self) -> int: ... 47 | 48 | @overload 49 | def __getitem__(self, i: int) -> bytes: ... 50 | 51 | @overload 52 | def __getitem__(self, s: slice) -> 'voidptr': ... 53 | 54 | def __hex__(self) -> str: ... 55 | 56 | def __len__(self) -> int: ... 57 | 58 | def __setitem__(self, i: Union[int, slice], v: Buffer) -> None: ... 59 | 60 | def asarray(self, size: int = -1) -> array: ... 61 | 62 | # Python doesn't expose the capsule type. 63 | #def ascapsule(self) -> capsule: ... 64 | 65 | def asstring(self, size: int = -1) -> bytes: ... 66 | 67 | def getsize(self) -> int: ... 68 | 69 | def getwriteable(self) -> bool: ... 70 | 71 | def setsize(self, size: int) -> None: ... 72 | 73 | def setwriteable(self, bool) -> None: ... 74 | 75 | 76 | # Remaining functions. 77 | def cast(obj: simplewrapper, type: wrappertype) -> simplewrapper: ... 78 | def delete(obj: simplewrapper) -> None: ... 79 | def dump(obj: simplewrapper) -> None: ... 80 | def enableautoconversion(type: wrappertype, enable: bool) -> bool: ... 81 | def getapi(name: str) -> int: ... 82 | def isdeleted(obj: simplewrapper) -> bool: ... 83 | def ispycreated(obj: simplewrapper) -> bool: ... 84 | def ispyowned(obj: simplewrapper) -> bool: ... 85 | def setapi(name: str, version: int) -> None: ... 86 | def setdeleted(obj: simplewrapper) -> None: ... 87 | def setdestroyonexit(destroy: bool) -> None: ... 88 | def settracemask(mask: int) -> None: ... 89 | def transferback(obj: wrapper) -> None: ... 90 | def transferto(obj: wrapper, owner: wrapper) -> None: ... 91 | def unwrapinstance(obj: simplewrapper) -> None: ... 92 | def wrapinstance(addr: int, type: wrappertype) -> simplewrapper: ... 93 | -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/sip.pyi: -------------------------------------------------------------------------------- 1 | # This file is the Python type hints stub file for the sip extension module. 2 | # 3 | # Copyright (c) 2016 Riverbank Computing Limited 4 | # 5 | # This file is part of SIP. 6 | # 7 | # This copy of SIP is licensed for use under the terms of the SIP License 8 | # Agreement. See the file LICENSE for more details. 9 | # 10 | # This copy of SIP may also used under the terms of the GNU General Public 11 | # License v2 or v3 as published by the Free Software Foundation which can be 12 | # found in the files LICENSE-GPL2 and LICENSE-GPL3 included in this package. 13 | # 14 | # SIP is supplied WITHOUT ANY WARRANTY; without even the implied warranty of 15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 | 17 | 18 | from typing import overload, Sequence, Union 19 | 20 | 21 | # Constants. 22 | SIP_VERSION = ... # type: int 23 | SIP_VERSION_STR = ... # type: str 24 | 25 | 26 | # The bases for SIP generated types. 27 | class wrappertype: ... 28 | class simplewrapper: ... 29 | class wrapper(simplewrapper): ... 30 | 31 | 32 | # PEP 484 has no explicit support for the buffer protocol so we just name types 33 | # we know that implement it. 34 | Buffer = Union['array', 'voidptr', str, bytes, bytearray] 35 | 36 | 37 | # The array type. 38 | class array(Sequence): ... 39 | 40 | 41 | # The voidptr type. 42 | class voidptr: 43 | 44 | def __init__(addr: Union[int, Buffer], size: int = -1, writeable: bool = True) -> None: ... 45 | 46 | def __int__(self) -> int: ... 47 | 48 | @overload 49 | def __getitem__(self, i: int) -> bytes: ... 50 | 51 | @overload 52 | def __getitem__(self, s: slice) -> 'voidptr': ... 53 | 54 | def __hex__(self) -> str: ... 55 | 56 | def __len__(self) -> int: ... 57 | 58 | def __setitem__(self, i: Union[int, slice], v: Buffer) -> None: ... 59 | 60 | def asarray(self, size: int = -1) -> array: ... 61 | 62 | # Python doesn't expose the capsule type. 63 | #def ascapsule(self) -> capsule: ... 64 | 65 | def asstring(self, size: int = -1) -> bytes: ... 66 | 67 | def getsize(self) -> int: ... 68 | 69 | def getwriteable(self) -> bool: ... 70 | 71 | def setsize(self, size: int) -> None: ... 72 | 73 | def setwriteable(self, bool) -> None: ... 74 | 75 | 76 | # Remaining functions. 77 | def cast(obj: simplewrapper, type: wrappertype) -> simplewrapper: ... 78 | def delete(obj: simplewrapper) -> None: ... 79 | def dump(obj: simplewrapper) -> None: ... 80 | def enableautoconversion(type: wrappertype, enable: bool) -> bool: ... 81 | def getapi(name: str) -> int: ... 82 | def isdeleted(obj: simplewrapper) -> bool: ... 83 | def ispycreated(obj: simplewrapper) -> bool: ... 84 | def ispyowned(obj: simplewrapper) -> bool: ... 85 | def setapi(name: str, version: int) -> None: ... 86 | def setdeleted(obj: simplewrapper) -> None: ... 87 | def setdestroyonexit(destroy: bool) -> None: ... 88 | def settracemask(mask: int) -> None: ... 89 | def transferback(obj: wrapper) -> None: ... 90 | def transferto(obj: wrapper, owner: wrapper) -> None: ... 91 | def unwrapinstance(obj: simplewrapper) -> None: ... 92 | def wrapinstance(addr: int, type: wrappertype) -> simplewrapper: ... 93 | -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/uic/Loader/loader.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (C) 2014 Riverbank Computing Limited. 4 | ## Copyright (C) 2006 Thorsten Marek. 5 | ## All right reserved. 6 | ## 7 | ## This file is part of PyQt. 8 | ## 9 | ## You may use this file under the terms of the GPL v2 or the revised BSD 10 | ## license as follows: 11 | ## 12 | ## "Redistribution and use in source and binary forms, with or without 13 | ## modification, are permitted provided that the following conditions are 14 | ## met: 15 | ## * Redistributions of source code must retain the above copyright 16 | ## notice, this list of conditions and the following disclaimer. 17 | ## * Redistributions in binary form must reproduce the above copyright 18 | ## notice, this list of conditions and the following disclaimer in 19 | ## the documentation and/or other materials provided with the 20 | ## distribution. 21 | ## * Neither the name of the Riverbank Computing Limited nor the names 22 | ## of its contributors may be used to endorse or promote products 23 | ## derived from this software without specific prior written 24 | ## permission. 25 | ## 26 | ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 27 | ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 28 | ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 29 | ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 30 | ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 31 | ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 32 | ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 33 | ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 34 | ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 35 | ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 36 | ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." 37 | ## 38 | ############################################################################# 39 | 40 | 41 | import os.path 42 | 43 | from PyQt5 import QtCore, QtGui, QtWidgets 44 | 45 | from ..uiparser import UIParser 46 | from .qobjectcreator import LoaderCreatorPolicy 47 | 48 | 49 | class DynamicUILoader(UIParser): 50 | def __init__(self, package): 51 | UIParser.__init__(self, QtCore, QtGui, QtWidgets, LoaderCreatorPolicy(package)) 52 | 53 | def createToplevelWidget(self, classname, widgetname): 54 | if self.toplevelInst is not None: 55 | if not isinstance(self.toplevelInst, self.factory.findQObjectType(classname)): 56 | raise TypeError(("Wrong base class of toplevel widget", 57 | (type(self.toplevelInst), classname))) 58 | return self.toplevelInst 59 | else: 60 | return self.factory.createQObject(classname, widgetname, ()) 61 | 62 | def loadUi(self, filename, toplevelInst, resource_suffix): 63 | self.toplevelInst = toplevelInst 64 | 65 | if hasattr(filename, 'read'): 66 | basedir = '' 67 | else: 68 | # Allow the filename to be a QString. 69 | filename = str(filename) 70 | basedir = os.path.dirname(filename) 71 | 72 | return self.parse(filename, resource_suffix, basedir) 73 | -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/uic/Loader/loader.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (C) 2014 Riverbank Computing Limited. 4 | ## Copyright (C) 2006 Thorsten Marek. 5 | ## All right reserved. 6 | ## 7 | ## This file is part of PyQt. 8 | ## 9 | ## You may use this file under the terms of the GPL v2 or the revised BSD 10 | ## license as follows: 11 | ## 12 | ## "Redistribution and use in source and binary forms, with or without 13 | ## modification, are permitted provided that the following conditions are 14 | ## met: 15 | ## * Redistributions of source code must retain the above copyright 16 | ## notice, this list of conditions and the following disclaimer. 17 | ## * Redistributions in binary form must reproduce the above copyright 18 | ## notice, this list of conditions and the following disclaimer in 19 | ## the documentation and/or other materials provided with the 20 | ## distribution. 21 | ## * Neither the name of the Riverbank Computing Limited nor the names 22 | ## of its contributors may be used to endorse or promote products 23 | ## derived from this software without specific prior written 24 | ## permission. 25 | ## 26 | ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 27 | ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 28 | ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 29 | ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 30 | ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 31 | ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 32 | ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 33 | ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 34 | ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 35 | ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 36 | ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." 37 | ## 38 | ############################################################################# 39 | 40 | 41 | import os.path 42 | 43 | from PyQt5 import QtCore, QtGui, QtWidgets 44 | 45 | from ..uiparser import UIParser 46 | from .qobjectcreator import LoaderCreatorPolicy 47 | 48 | 49 | class DynamicUILoader(UIParser): 50 | def __init__(self, package): 51 | UIParser.__init__(self, QtCore, QtGui, QtWidgets, LoaderCreatorPolicy(package)) 52 | 53 | def createToplevelWidget(self, classname, widgetname): 54 | if self.toplevelInst is not None: 55 | if not isinstance(self.toplevelInst, self.factory.findQObjectType(classname)): 56 | raise TypeError(("Wrong base class of toplevel widget", 57 | (type(self.toplevelInst), classname))) 58 | return self.toplevelInst 59 | else: 60 | return self.factory.createQObject(classname, widgetname, ()) 61 | 62 | def loadUi(self, filename, toplevelInst, resource_suffix): 63 | self.toplevelInst = toplevelInst 64 | 65 | if hasattr(filename, 'read'): 66 | basedir = '' 67 | else: 68 | # Allow the filename to be a QString. 69 | filename = str(filename) 70 | basedir = os.path.dirname(filename) 71 | 72 | return self.parse(filename, resource_suffix, basedir) 73 | -------------------------------------------------------------------------------- /7.0/plugins/Python_editor.py: -------------------------------------------------------------------------------- 1 | # Created by: Storm Shadow http://www.techbliss.org 2 | import os 3 | import ida_idaapi, ida_kernwin 4 | import idc 5 | from idc import * 6 | from idaapi import * 7 | import sys 8 | sys.path.insert(0 , idaapi.idadir("plugins\\Code editor\\icons")) 9 | import ico 10 | from ico import * 11 | 12 | 13 | PLUGIN_VERSION = "1.5" 14 | IDAVERISONS = "IDA PRO 7.0+" 15 | AUTHORS = "Storm Shadow" 16 | DATE = "2017" 17 | TWITTER = "Twitter @zadow28" 18 | 19 | def banner(): 20 | banner_options = (PLUGIN_VERSION, AUTHORS, DATE, TWITTER, IDAVERISONS) 21 | banner_titles = "Python Editor v%s - (c) %s - %s - %s - %s" % banner_options 22 | 23 | # print plugin banner 24 | print("---[" + banner_titles + "]---\n") 25 | 26 | banner() 27 | 28 | # 1) Create the handler class 29 | class MyEditorHandler(idaapi.action_handler_t): 30 | def __init__(self): 31 | idaapi.action_handler_t.__init__(self) 32 | 33 | # Run editor when invoked. 34 | def activate(self, ctx): 35 | g = globals() 36 | idahome = idaapi.idadir("plugins\\Code editor") 37 | IDAPython_ExecScript(idahome + "\\pyeditor.py", g) 38 | 39 | def update(self, ctx): 40 | return idaapi.AST_ENABLE_ALWAYS 41 | 42 | class ripeye(idaapi.plugin_t): 43 | flags = idaapi.PLUGIN_FIX 44 | comment = "Run me" 45 | help = "Python Editor" 46 | wanted_name = "Python Editor" 47 | wanted_hotkey = "" #the tooltip horkey goes away when setting it here DONT DO it! and only is shown in File/Plugins menu 48 | 49 | 50 | def editor_menuaction(self): 51 | action_desc = idaapi.action_desc_t( 52 | 'my:editoraction', # The action name. This acts like an ID and must be unique 53 | 'Python Editor!', # The action text. 54 | MyEditorHandler(), # The action handler. 55 | 'Ctrl+H', # Optional: the action shortcut DO IT HERE! 56 | 'Script editor', # Optional: the action tooltip (available in menus/toolbar) 57 | idaapi.load_custom_icon(":/ico/python.png") # hackish load action icon , if no custom icon use number from 1-150 from internal ida 58 | ) 59 | 60 | # 3) Register the action 61 | idaapi.register_action(action_desc) 62 | 63 | idaapi.attach_action_to_menu( 64 | 'File/Editor...', # The relative path of where to add the action 65 | 'my:editoraction', # The action ID (see above) 66 | idaapi.SETMENU_APP) # We want to append the action after the 'Manual instruction... 67 | 68 | form = idaapi.get_current_tform() 69 | idaapi.attach_action_to_popup(form, None, "my:editoraction", None) 70 | 71 | def init(self): 72 | """ 73 | This is called by IDA when it is loading the plugin. 74 | """ 75 | #self._icon_id_file = idaapi.BADADDR 76 | # attempt plugin initialization 77 | try: 78 | self._install_plugin() 79 | 80 | # failed to initialize or integrate the plugin, log and skip loading 81 | except Exception as e: 82 | form = idaapi.get_current_tform() 83 | pass 84 | 85 | return PLUGIN_KEEP 86 | 87 | 88 | def _install_plugin(self): 89 | """ 90 | Initialize & integrate the plugin into IDA. 91 | """ 92 | self.editor_menuaction() 93 | self._init() 94 | 95 | def term(self): 96 | pass 97 | 98 | def run(self, arg = 0): 99 | #we need the calls again if we wanna load it via File/Plugins/editor 100 | idaapi.msg("Python Editor Loaded to menu \n use Alt+E hot key to quick load ") 101 | hackish = MyEditorHandler() 102 | hackish.activate(self) 103 | 104 | def PLUGIN_ENTRY(): 105 | return ripeye() -------------------------------------------------------------------------------- /7.2/plugins/Code editor/template/Plugin_temp.py: -------------------------------------------------------------------------------- 1 | # Created by: Storm Shadow http://www.techbliss.org 2 | import os 3 | import ida_idaapi, ida_kernwin 4 | import idc 5 | from idc import * 6 | from idaapi import * 7 | import sys 8 | sys.path.insert(0 , idaapi.idadir("plugins\\Code editor\\icons")) 9 | import ico 10 | from ico import * 11 | 12 | 13 | PLUGIN_VERSION = "1.4" 14 | IDAVERISONS = "IDA PRO 7.0+" 15 | AUTHORS = "Storm Shadow" 16 | DATE = "2017" 17 | TWITTER = "Twitter @zadow28" 18 | 19 | def banner(): 20 | banner_options = (PLUGIN_VERSION, AUTHORS, DATE, TWITTER, IDAVERISONS) 21 | banner_titles = "Python Editor v%s - (c) %s - %s - %s - %s" % banner_options 22 | 23 | # print plugin banner 24 | print("---[" + banner_titles + "]---\n") 25 | 26 | banner() 27 | 28 | # 1) Create the handler class 29 | class MyEditorHandler(idaapi.action_handler_t): 30 | def __init__(self): 31 | idaapi.action_handler_t.__init__(self) 32 | 33 | # Run editor when invoked. 34 | def activate(self, ctx): 35 | g = globals() 36 | idahome = idaapi.idadir("plugins\\Code editor") 37 | IDAPython_ExecScript(idahome + "\\pyeditor.py", g) 38 | 39 | def update(self, ctx): 40 | return idaapi.AST_ENABLE_ALWAYS 41 | 42 | class ripeye(idaapi.plugin_t): 43 | flags = idaapi.PLUGIN_FIX 44 | comment = "Run me" 45 | help = "Python Editor" 46 | wanted_name = "Python Editor" 47 | wanted_hotkey = "" #the tooltip horkey goes away when setting it here DONT DO it! and only is shown in File/Plugins menu 48 | 49 | 50 | def editor_menuaction(self): 51 | action_desc = idaapi.action_desc_t( 52 | 'my:editoraction', # The action name. This acts like an ID and must be unique 53 | 'Python Editor!', # The action text. 54 | MyEditorHandler(), # The action handler. 55 | 'Ctrl+H', # Optional: the action shortcut DO IT HERE! 56 | 'Script editor', # Optional: the action tooltip (available in menus/toolbar) 57 | idaapi.load_custom_icon(":/ico/python.png") # hackish load action icon , if no custom icon use number from 1-150 from internal ida 58 | ) 59 | 60 | # 3) Register the action 61 | idaapi.register_action(action_desc) 62 | 63 | idaapi.attach_action_to_menu( 64 | 'File/Editor...', # The relative path of where to add the action 65 | 'my:editoraction', # The action ID (see above) 66 | idaapi.SETMENU_APP) # We want to append the action after the 'Manual instruction... 67 | 68 | form = idaapi.get_current_tform() 69 | idaapi.attach_action_to_popup(form, None, "my:editoraction", None) 70 | 71 | def init(self): 72 | """ 73 | This is called by IDA when it is loading the plugin. 74 | """ 75 | #self._icon_id_file = idaapi.BADADDR 76 | # attempt plugin initialization 77 | try: 78 | self._install_plugin() 79 | 80 | # failed to initialize or integrate the plugin, log and skip loading 81 | except Exception as e: 82 | form = idaapi.get_current_tform() 83 | pass 84 | 85 | return PLUGIN_KEEP 86 | 87 | 88 | def _install_plugin(self): 89 | """ 90 | Initialize & integrate the plugin into IDA. 91 | """ 92 | self.editor_menuaction() 93 | self._init() 94 | 95 | def term(self): 96 | pass 97 | 98 | def run(self, arg = 0): 99 | #we need the calls again if we wanna load it via File/Plugins/editor 100 | idaapi.msg("Python Editor Loaded to menu \n use Alt+E hot key to quick load ") 101 | hackish = MyEditorHandler() 102 | hackish.activate(self) 103 | 104 | def PLUGIN_ENTRY(): 105 | return ripeye() -------------------------------------------------------------------------------- /7.5/Add to plugins folder/Code editor/template/Plugin_temp.py: -------------------------------------------------------------------------------- 1 | # Created by: Storm Shadow http://www.techbliss.org 2 | import os 3 | import ida_idaapi, ida_kernwin 4 | import idc 5 | from idc import * 6 | from idaapi import * 7 | import sys 8 | sys.path.insert(0 , idaapi.idadir("plugins\\Code editor\\icons")) 9 | import ico 10 | from ico import * 11 | 12 | 13 | PLUGIN_VERSION = "1.4" 14 | IDAVERISONS = "IDA PRO 7.0+" 15 | AUTHORS = "Storm Shadow" 16 | DATE = "2017" 17 | TWITTER = "Twitter @zadow28" 18 | 19 | def banner(): 20 | banner_options = (PLUGIN_VERSION, AUTHORS, DATE, TWITTER, IDAVERISONS) 21 | banner_titles = "Python Editor v%s - (c) %s - %s - %s - %s" % banner_options 22 | 23 | # print plugin banner 24 | print("---[" + banner_titles + "]---\n") 25 | 26 | banner() 27 | 28 | # 1) Create the handler class 29 | class MyEditorHandler(idaapi.action_handler_t): 30 | def __init__(self): 31 | idaapi.action_handler_t.__init__(self) 32 | 33 | # Run editor when invoked. 34 | def activate(self, ctx): 35 | g = globals() 36 | idahome = idaapi.idadir("plugins\\Code editor") 37 | IDAPython_ExecScript(idahome + "\\pyeditor.py", g) 38 | 39 | def update(self, ctx): 40 | return idaapi.AST_ENABLE_ALWAYS 41 | 42 | class ripeye(idaapi.plugin_t): 43 | flags = idaapi.PLUGIN_FIX 44 | comment = "Run me" 45 | help = "Python Editor" 46 | wanted_name = "Python Editor" 47 | wanted_hotkey = "" #the tooltip horkey goes away when setting it here DONT DO it! and only is shown in File/Plugins menu 48 | 49 | 50 | def editor_menuaction(self): 51 | action_desc = idaapi.action_desc_t( 52 | 'my:editoraction', # The action name. This acts like an ID and must be unique 53 | 'Python Editor!', # The action text. 54 | MyEditorHandler(), # The action handler. 55 | 'Ctrl+H', # Optional: the action shortcut DO IT HERE! 56 | 'Script editor', # Optional: the action tooltip (available in menus/toolbar) 57 | idaapi.load_custom_icon(":/ico/python.png") # hackish load action icon , if no custom icon use number from 1-150 from internal ida 58 | ) 59 | 60 | # 3) Register the action 61 | idaapi.register_action(action_desc) 62 | 63 | idaapi.attach_action_to_menu( 64 | 'File/Editor...', # The relative path of where to add the action 65 | 'my:editoraction', # The action ID (see above) 66 | idaapi.SETMENU_APP) # We want to append the action after the 'Manual instruction... 67 | 68 | form = idaapi.get_current_tform() 69 | idaapi.attach_action_to_popup(form, None, "my:editoraction", None) 70 | 71 | def init(self): 72 | """ 73 | This is called by IDA when it is loading the plugin. 74 | """ 75 | #self._icon_id_file = idaapi.BADADDR 76 | # attempt plugin initialization 77 | try: 78 | self._install_plugin() 79 | 80 | # failed to initialize or integrate the plugin, log and skip loading 81 | except Exception as e: 82 | form = idaapi.get_current_tform() 83 | pass 84 | 85 | return PLUGIN_KEEP 86 | 87 | 88 | def _install_plugin(self): 89 | """ 90 | Initialize & integrate the plugin into IDA. 91 | """ 92 | self.editor_menuaction() 93 | self._init() 94 | 95 | def term(self): 96 | pass 97 | 98 | def run(self, arg = 0): 99 | #we need the calls again if we wanna load it via File/Plugins/editor 100 | idaapi.msg("Python Editor Loaded to menu \n use Alt+E hot key to quick load ") 101 | hackish = MyEditorHandler() 102 | hackish.activate(self) 103 | 104 | def PLUGIN_ENTRY(): 105 | return ripeye() -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/uic/pyuic.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | import sys 24 | import optparse 25 | 26 | from PyQt5 import QtCore 27 | 28 | from .driver import Driver 29 | from .exceptions import NoSuchClassError, NoSuchWidgetError 30 | 31 | 32 | Version = "Python User Interface Compiler %s for Qt version %s" % (QtCore.PYQT_VERSION_STR, QtCore.QT_VERSION_STR) 33 | 34 | 35 | def main(): 36 | parser = optparse.OptionParser(usage="pyuic5 [options] ", 37 | version=Version) 38 | parser.add_option("-p", "--preview", dest="preview", action="store_true", 39 | default=False, 40 | help="show a preview of the UI instead of generating code") 41 | parser.add_option("-o", "--output", dest="output", default="-", 42 | metavar="FILE", 43 | help="write generated code to FILE instead of stdout") 44 | parser.add_option("-x", "--execute", dest="execute", action="store_true", 45 | default=False, 46 | help="generate extra code to test and display the class") 47 | parser.add_option("-d", "--debug", dest="debug", action="store_true", 48 | default=False, help="show debug output") 49 | parser.add_option("-i", "--indent", dest="indent", action="store", 50 | type="int", default=4, metavar="N", 51 | help="set indent width to N spaces, tab if N is 0 [default: 4]") 52 | 53 | g = optparse.OptionGroup(parser, title="Code generation options") 54 | g.add_option("--import-from", dest="import_from", metavar="PACKAGE", 55 | help="generate imports of pyrcc5 generated modules in the style 'from PACKAGE import ...'") 56 | g.add_option("--from-imports", dest="from_imports", action="store_true", 57 | default=False, help="the equivalent of '--import-from=.'") 58 | g.add_option("--resource-suffix", dest="resource_suffix", action="store", 59 | type="string", default="_rc", metavar="SUFFIX", 60 | help="append SUFFIX to the basename of resource files [default: _rc]") 61 | parser.add_option_group(g) 62 | 63 | opts, args = parser.parse_args() 64 | 65 | if len(args) != 1: 66 | sys.stderr.write("Error: one input ui-file must be specified\n") 67 | sys.exit(1) 68 | 69 | # Invoke the appropriate driver. 70 | driver = Driver(opts, args[0]) 71 | 72 | exit_status = 1 73 | 74 | try: 75 | exit_status = driver.invoke() 76 | 77 | except IOError as e: 78 | driver.on_IOError(e) 79 | 80 | except SyntaxError as e: 81 | driver.on_SyntaxError(e) 82 | 83 | except NoSuchClassError as e: 84 | driver.on_NoSuchClassError(e) 85 | 86 | except NoSuchWidgetError as e: 87 | driver.on_NoSuchWidgetError(e) 88 | 89 | except Exception as e: 90 | driver.on_Exception(e) 91 | 92 | sys.exit(exit_status) 93 | 94 | 95 | if __name__ == '__main__': 96 | main() 97 | -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/uic/pyuic.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | import sys 24 | import optparse 25 | 26 | from PyQt5 import QtCore 27 | 28 | from .driver import Driver 29 | from .exceptions import NoSuchClassError, NoSuchWidgetError 30 | 31 | 32 | Version = "Python User Interface Compiler %s for Qt version %s" % (QtCore.PYQT_VERSION_STR, QtCore.QT_VERSION_STR) 33 | 34 | 35 | def main(): 36 | parser = optparse.OptionParser(usage="pyuic5 [options] ", 37 | version=Version) 38 | parser.add_option("-p", "--preview", dest="preview", action="store_true", 39 | default=False, 40 | help="show a preview of the UI instead of generating code") 41 | parser.add_option("-o", "--output", dest="output", default="-", 42 | metavar="FILE", 43 | help="write generated code to FILE instead of stdout") 44 | parser.add_option("-x", "--execute", dest="execute", action="store_true", 45 | default=False, 46 | help="generate extra code to test and display the class") 47 | parser.add_option("-d", "--debug", dest="debug", action="store_true", 48 | default=False, help="show debug output") 49 | parser.add_option("-i", "--indent", dest="indent", action="store", 50 | type="int", default=4, metavar="N", 51 | help="set indent width to N spaces, tab if N is 0 [default: 4]") 52 | 53 | g = optparse.OptionGroup(parser, title="Code generation options") 54 | g.add_option("--import-from", dest="import_from", metavar="PACKAGE", 55 | help="generate imports of pyrcc5 generated modules in the style 'from PACKAGE import ...'") 56 | g.add_option("--from-imports", dest="from_imports", action="store_true", 57 | default=False, help="the equivalent of '--import-from=.'") 58 | g.add_option("--resource-suffix", dest="resource_suffix", action="store", 59 | type="string", default="_rc", metavar="SUFFIX", 60 | help="append SUFFIX to the basename of resource files [default: _rc]") 61 | parser.add_option_group(g) 62 | 63 | opts, args = parser.parse_args() 64 | 65 | if len(args) != 1: 66 | sys.stderr.write("Error: one input ui-file must be specified\n") 67 | sys.exit(1) 68 | 69 | # Invoke the appropriate driver. 70 | driver = Driver(opts, args[0]) 71 | 72 | exit_status = 1 73 | 74 | try: 75 | exit_status = driver.invoke() 76 | 77 | except IOError as e: 78 | driver.on_IOError(e) 79 | 80 | except SyntaxError as e: 81 | driver.on_SyntaxError(e) 82 | 83 | except NoSuchClassError as e: 84 | driver.on_NoSuchClassError(e) 85 | 86 | except NoSuchWidgetError as e: 87 | driver.on_NoSuchWidgetError(e) 88 | 89 | except Exception as e: 90 | driver.on_Exception(e) 91 | 92 | sys.exit(exit_status) 93 | 94 | 95 | if __name__ == '__main__': 96 | main() 97 | -------------------------------------------------------------------------------- /7.2/plugins/Python_editor.py: -------------------------------------------------------------------------------- 1 | # Created by: Storm Shadow http://www.techbliss.org 2 | import os, sys 3 | import ida_idaapi, ida_kernwin, ida_idaapi, ida_loader 4 | import idc 5 | from idc import * 6 | from ida_diskio import * 7 | from ida_idaapi import * 8 | from ida_loader import * 9 | import sys 10 | sys.path.insert(0 , ida_diskio.idadir("plugins\\Code editor\\icons")) 11 | import ico 12 | from ico import * 13 | 14 | PLUGIN_VERSION = "1.6" 15 | IDAVERISONS = "IDA PRO 7.2+" 16 | AUTHORS = "Storm Shadow" 17 | DATE = "2019" 18 | TWITTER = "Twitter @zadow28" 19 | 20 | def banner(): 21 | banner_options = (PLUGIN_VERSION, AUTHORS, DATE, TWITTER, IDAVERISONS) 22 | banner_titles = "Python Editor v%s - (c) %s - %s - %s - %s" % banner_options 23 | 24 | # print plugin banner 25 | print("---[" + banner_titles + "]---\n") 26 | 27 | banner() 28 | 29 | # 1) Create the handler class 30 | class MyEditorHandler(ida_kernwin.action_handler_t): 31 | def __init__(self): 32 | ida_kernwin.action_handler_t.__init__(self) 33 | 34 | # Run editor when invoked. 35 | def activate(self, ctx): 36 | g = globals() 37 | idahome = ida_diskio.idadir("plugins\\Code editor") 38 | tupac = str(idahome + "\\pyeditor.py") 39 | ida_kernwin.load_custom_icon(":/ico/python.png") 40 | load_and_run_plugin(tupac, True) 41 | def update(self, ctx): 42 | return ida_kernwin.AST_ENABLE_ALWAYS 43 | 44 | class ripeye(ida_idaapi.plugin_t): 45 | flags = ida_idaapi.PLUGIN_FIX 46 | comment = "Run me" 47 | help = "Python Editor" 48 | wanted_name = "Python Editor" 49 | wanted_hotkey = "" #the tooltip horkey goes away when setting it here DONT DO it! and only is shown in File/Plugins menu 50 | 51 | 52 | def editor_menuaction(self): 53 | action_desc = ida_kernwin.action_desc_t( 54 | 'my:editoraction', # The action name. This acts like an ID and must be unique 55 | 'Python Editor!', # The action text. 56 | MyEditorHandler(), # The action handler. 57 | 'Ctrl+H', # Optional: the action shortcut DO IT HERE! 58 | 'Script editor', # Optional: the action tooltip (available in menus/toolbar) 59 | ida_kernwin.load_custom_icon(":/ico/python.png") # hackish load action icon , if no custom icon use number from 1-150 from internal ida 60 | ) 61 | 62 | # 3) Register the action 63 | ida_kernwin.register_action(action_desc) 64 | 65 | ida_kernwin.attach_action_to_menu( 66 | 'Edit/Editor...', # The relative path of where to add the action 67 | 'my:editoraction', # The action ID (see above) 68 | ida_kernwin.SETMENU_APP) # We want to append the action after the 'Manual instruction... 69 | 70 | form = ida_kernwin.get_current_tform() 71 | ida_kernwin.attach_action_to_popup(form, None, "my:editoraction", None) 72 | 73 | def init(self): 74 | """ 75 | This is called by IDA when it is loading the plugin. 76 | """ 77 | #self._icon_id_file = ida_diskio.BADADDR 78 | # attempt plugin initialization 79 | try: 80 | self._install_plugin() 81 | 82 | # failed to initialize or integrate the plugin, log and skip loading 83 | except Exception as e: 84 | form = ida_kernwin.get_current_tform() 85 | pass 86 | 87 | return PLUGIN_KEEP 88 | 89 | 90 | def _install_plugin(self): 91 | """ 92 | Initialize & integrate the plugin into IDA. 93 | """ 94 | self.editor_menuaction() 95 | self._init() 96 | 97 | def term(self): 98 | pass 99 | 100 | def run(self, arg = 0): 101 | #we need the calls again if we wanna load it via File/Plugins/editor 102 | ida_kernwin.msg("Python Editor Loaded to menu \n use Alt+E hot key to quick load ") 103 | hackish = MyEditorHandler() 104 | hackish.activate(self) 105 | 106 | def PLUGIN_ENTRY(): 107 | return ripeye() -------------------------------------------------------------------------------- /7.5/Add to plugins folder/Python_editor.py: -------------------------------------------------------------------------------- 1 | # Created by: Storm Shadow http://www.techbliss.org 2 | import os, sys 3 | import ida_idaapi, ida_kernwin, ida_idaapi, ida_loader 4 | import idc 5 | from idc import * 6 | from ida_diskio import * 7 | from ida_idaapi import * 8 | from ida_loader import * 9 | import sys 10 | sys.path.insert(0 , ida_diskio.idadir("plugins\\Code editor\\icons")) 11 | import ico 12 | from ico import * 13 | 14 | PLUGIN_VERSION = "1.6" 15 | IDAVERISONS = "IDA PRO 7.2+" 16 | AUTHORS = "Storm Shadow" 17 | DATE = "2019" 18 | TWITTER = "Twitter @zadow28" 19 | 20 | def banner(): 21 | banner_options = (PLUGIN_VERSION, AUTHORS, DATE, TWITTER, IDAVERISONS) 22 | banner_titles = "Python Editor v%s - (c) %s - %s - %s - %s" % banner_options 23 | 24 | # print plugin banner 25 | print("---[" + banner_titles + "]---\n") 26 | 27 | banner() 28 | 29 | # 1) Create the handler class 30 | class MyEditorHandler(ida_kernwin.action_handler_t): 31 | def __init__(self): 32 | ida_kernwin.action_handler_t.__init__(self) 33 | 34 | # Run editor when invoked. 35 | def activate(self, ctx): 36 | g = globals() 37 | idahome = ida_diskio.idadir("plugins\\Code editor") 38 | tupac = str(idahome + "\\pyeditor.py") 39 | ida_kernwin.load_custom_icon(":/ico/python.png") 40 | load_and_run_plugin(tupac, True) 41 | def update(self, ctx): 42 | return ida_kernwin.AST_ENABLE_ALWAYS 43 | 44 | class ripeye(ida_idaapi.plugin_t): 45 | flags = ida_idaapi.PLUGIN_FIX 46 | comment = "Run me" 47 | help = "Python Editor" 48 | wanted_name = "Python Editor" 49 | wanted_hotkey = "" #the tooltip horkey goes away when setting it here DONT DO it! and only is shown in File/Plugins menu 50 | 51 | 52 | def editor_menuaction(self): 53 | action_desc = ida_kernwin.action_desc_t( 54 | 'my:editoraction', # The action name. This acts like an ID and must be unique 55 | 'Python Editor!', # The action text. 56 | MyEditorHandler(), # The action handler. 57 | 'Ctrl+H', # Optional: the action shortcut DO IT HERE! 58 | 'Script editor', # Optional: the action tooltip (available in menus/toolbar) 59 | ida_kernwin.load_custom_icon(":/ico/python.png") # hackish load action icon , if no custom icon use number from 1-150 from internal ida 60 | ) 61 | 62 | # 3) Register the action 63 | ida_kernwin.register_action(action_desc) 64 | 65 | ida_kernwin.attach_action_to_menu( 66 | 'Edit/Editor...', # The relative path of where to add the action 67 | 'my:editoraction', # The action ID (see above) 68 | ida_kernwin.SETMENU_APP) # We want to append the action after the 'Manual instruction... 69 | 70 | ida_kernwin.get_current_widget() 71 | ida_kernwin.attach_action_to_popup(form, None, "my:editoraction", None) 72 | 73 | def init(self): 74 | """ 75 | This is called by IDA when it is loading the plugin. 76 | """ 77 | #self._icon_id_file = ida_diskio.BADADDR 78 | # attempt plugin initialization 79 | try: 80 | self._install_plugin() 81 | 82 | # failed to initialize or integrate the plugin, log and skip loading 83 | except Exception as e: 84 | form = ida_kernwin.get_current_widget() 85 | pass 86 | 87 | return PLUGIN_KEEP 88 | 89 | 90 | def _install_plugin(self): 91 | """ 92 | Initialize & integrate the plugin into IDA. 93 | """ 94 | self.editor_menuaction() 95 | self._init() 96 | 97 | def term(self): 98 | pass 99 | 100 | def run(self, arg = 0): 101 | #we need the calls again if we wanna load it via File/Plugins/editor 102 | ida_kernwin.msg("Python Editor Loaded to menu \n use Alt+E hot key to quick load ") 103 | hackish = MyEditorHandler() 104 | hackish.activate(self) 105 | 106 | def PLUGIN_ENTRY(): 107 | return ripeye() -------------------------------------------------------------------------------- /7.0/plugins/Code editor/template/Plugin_temp: -------------------------------------------------------------------------------- 1 | # Created by: Storm Shadow http://www.techbliss.org 2 | import os 3 | import ida_idaapi, ida_kernwin 4 | import idc 5 | from idc import * 6 | from idaapi import * 7 | import sys 8 | sys.path.insert(0 , idaapi.idadir("plugins\\My_plugin\\icons")) #change path to the icon 9 | import ico 10 | from ico import * 11 | 12 | PLUGIN_VERSION = "1.4" #change Plugin Version 13 | IDAVERISONS = "IDA PRO 7.0+" #change Ida version 14 | AUTHORS = "Storm Shadow" #change author 15 | DATE = "2017" #change date 16 | TWITTER = "Twitter @zadow28" #change social media 17 | 18 | def banner(): 19 | banner_options = (PLUGIN_VERSION, AUTHORS, DATE, TWITTER, IDAVERISONS) 20 | banner_titles = "Python Editor v%s - (c) %s - %s - %s - %s" % banner_options #change Python editor 21 | 22 | # print plugin banner 23 | print("---[" + banner_titles + "]---\n") 24 | 25 | banner() 26 | 27 | # 1) Create the handler class 28 | class MyEditorHandler(idaapi.action_handler_t): # the class name must be unique for each plugin nb same as line (53) 29 | def __init__(self): 30 | idaapi.action_handler_t.__init__(self) 31 | 32 | # Run editor when invoked. 33 | def activate(self, ctx): 34 | g = globals() 35 | idahome = idaapi.idadir("plugins\\My_plugin_path") #change to set plguin path where the main plguin script is 36 | IDAPython_ExecScript(idahome + "\\pyeditor.py", g) #change for the main plugin script 37 | 38 | def update(self, ctx): 39 | return idaapi.AST_ENABLE_ALWAYS 40 | 41 | class ripeye(idaapi.plugin_t): #change class to unique name for each plugin , also change line (103) 42 | flags = idaapi.PLUGIN_FIX #different flags this is for plugin visible at startup 43 | comment = "Run me" #help me text 44 | help = "Python Editor" #help text 45 | wanted_name = "Python Editor" #change the plugins name 46 | wanted_hotkey = "" #the tooltip goes away in menu when setting it here ,DONT DO it! and only is shown in File/Plugins menu 47 | 48 | 49 | def editor_menuaction(self): #change for something unique.also change line (90) 50 | action_desc = idaapi.action_desc_t( 51 | 'my:editoraction', # The action name. This acts like an ID and must be unique same as line (64), (68) 52 | 'Python Editor!', # The action text. 53 | MyEditorHandler(), # The action handler must be unique , also change line (99) 54 | 'Ctrl+H', # Optional: the action shortcut DO IT HERE! 55 | 'Script editor', # Optional: the action tooltip (available in menus/toolbar) 56 | idaapi.load_custom_icon(":/ico/python.png") # hackish load action icon , if no custom icon use number from 1-150 from internal ida 57 | ) 58 | 59 | # 3) Register the action 60 | idaapi.register_action(action_desc) 61 | 62 | idaapi.attach_action_to_menu( 63 | 'File/Editor...', # The relative path of where to add the action 64 | 'my:editoraction', # The action ID (see line(51)) 65 | idaapi.SETMENU_APP) # We want to append the action after the 'Manual instruction... 66 | 67 | form = idaapi.get_current_tform() 68 | idaapi.attach_action_to_popup(form, None, "my:editoraction", None) # The action ID (see line(51) 69 | 70 | def init(self): 71 | """ 72 | This is called by IDA when it is loading the plugin. 73 | """ 74 | #self._icon_id_file = idaapi.BADADDR 75 | # attempt plugin initialization 76 | try: 77 | self._install_plugin() 78 | 79 | # failed to initialize or integrate the plugin, log and skip loading 80 | except Exception as e: 81 | form = idaapi.get_current_tform() 82 | pass 83 | 84 | return PLUGIN_KEEP 85 | 86 | def _install_plugin(self): 87 | """ 88 | Initialize & integrate the plugin into IDA. 89 | """ 90 | self.editor_menuaction() #same as line (49) 91 | self._init() 92 | 93 | def term(self): 94 | pass 95 | 96 | def run(self, arg = 0): 97 | #we need the calls again if we wanna load it via File/Plugins/editor 98 | idaapi.msg("Python Editor Loaded to menu \n use Alt+E hot key to quick load ") 99 | hackish = MyEditorHandler() #must be the same as line (53) change also hackish = must be unique also line (100) 100 | hackish.activate(self) #hackish must the same as line hackish = (99) 101 | 102 | def PLUGIN_ENTRY(): 103 | return ripeye() #must be unique for each plugin and same as line 43 -------------------------------------------------------------------------------- /7.2/plugins/Code editor/template/Plugin_temp: -------------------------------------------------------------------------------- 1 | # Created by: Storm Shadow http://www.techbliss.org 2 | import os, sys 3 | import ida_idaapi, ida_kernwin, ida_idaapi, ida_loader 4 | import idc 5 | from idc import * 6 | from ida_diskio import * 7 | from ida_idaapi import * 8 | from ida_loader import * 9 | import sys 10 | sys.path.insert(0 , ida_diskio.idadir("plugins\\Code editor\\icons")) 11 | import ico 12 | from ico import * 13 | 14 | PLUGIN_VERSION = "1.6" 15 | IDAVERISONS = "IDA PRO 7.2+" 16 | AUTHORS = "Storm Shadow" 17 | DATE = "2019" 18 | TWITTER = "Twitter @zadow28" 19 | 20 | def banner(): 21 | banner_options = (PLUGIN_VERSION, AUTHORS, DATE, TWITTER, IDAVERISONS) 22 | banner_titles = "Python Editor v%s - (c) %s - %s - %s - %s" % banner_options #change Python editor 23 | 24 | # print plugin banner 25 | print("---[" + banner_titles + "]---\n") 26 | 27 | banner() 28 | 29 | # 1) Create the handler class 30 | class MyEditorHandler(ida_kernwin.action_handler_t): # the class name must be unique for each plugin nb same as line (53) 31 | def __init__(self): 32 | ida_kernwin.action_handler_t.__init__(self) 33 | 34 | # Run editor when invoked. 35 | def activate(self, ctx): 36 | g = globals() 37 | idahome = ida_diskio.idadir("plugins\\My_plugin_path") #change to set plguin path where the main plguin script is 38 | tupac = str(idahome + "\\main_plugin.py")#change for the main plugin script 39 | # ida_kernwin.load_custom_icon(":/ico/icon.png")#if you have a custom icon 40 | load_and_run_plugin(tupac, True) 41 | 42 | def update(self, ctx): 43 | return ida_kernwin.AST_ENABLE_ALWAYS 44 | 45 | class ripeye(idaapi.plugin_t): #change class to unique name for each plugin , also change line (103) 46 | flags = idaapi.PLUGIN_FIX #different flags this is for plugin visible at startup 47 | comment = "Run me" #help me text 48 | help = "Python Editor" #help text 49 | wanted_name = "Python Editor" #change the plugins name 50 | wanted_hotkey = "" #the tooltip goes away in menu when setting it here ,DONT DO it! and only is shown in File/Plugins menu 51 | 52 | def editor_menuaction(self): #change for something unique.also change line (90) 53 | action_desc = ida_kernwin.action_desc_t( 54 | 'my:editoraction', # The action name. This acts like an ID and must be unique same as line (64), (68) 55 | 'Python Editor!', # The action text. 56 | MyEditorHandler(), # The action handler must be unique , also change line (99) 57 | 'Ctrl+H', # Optional: the action shortcut DO IT HERE! 58 | 'Script editor', # Optional: the action tooltip (available in menus/toolbar) 59 | ida_kernwin.load_custom_icon(":/ico/python.png") # hackish load action icon , if no custom icon use number from 1-150 from internal ida 60 | ) 61 | 62 | # 3) Register the action 63 | ida_kernwin.register_action(action_desc) 64 | 65 | ida_kernwin.attach_action_to_menu( 66 | 'File/Editor...', # The relative path of where to add the action 67 | 'my:editoraction', # The action ID (see line(51)) 68 | ida_kernwin.SETMENU_APP) # We want to append the action after the 'Manual instruction... 69 | 70 | form = ida_kernwin.get_current_tform() 71 | ida_kernwin.attach_action_to_popup(form, None, "my:editoraction", None) # The action ID (see line(51) 72 | 73 | def init(self): 74 | """ 75 | This is called by IDA when it is loading the plugin. 76 | """ 77 | #self._icon_id_file = idaapi.BADADDR 78 | # attempt plugin initialization 79 | try: 80 | self._install_plugin() 81 | 82 | # failed to initialize or integrate the plugin, log and skip loading 83 | except Exception as e: 84 | form = ida_kernwin.get_current_tform() 85 | pass 86 | 87 | return PLUGIN_KEEP 88 | 89 | def _install_plugin(self): 90 | """ 91 | Initialize & integrate the plugin into IDA. 92 | """ 93 | self.editor_menuaction() #same as line (49) 94 | self._init() 95 | 96 | def term(self): 97 | pass 98 | 99 | def run(self, arg = 0): 100 | #we need the calls again if we wanna load it via File/Plugins/editor 101 | ida_kernwin.msg("Python Editor Loaded to menu \n use Alt+E hot key to quick load ") 102 | hackish = MyEditorHandler() #must be the same as line (53) change also hackish = must be unique also line (100) 103 | hackish.activate(self) #hackish must the same as line hackish = (99) 104 | 105 | def PLUGIN_ENTRY(): 106 | return ripeye() #must be unique for each plugin and same as line 43 -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/uic/Compiler/proxy_metaclass.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (C) 2014 Riverbank Computing Limited. 4 | ## Copyright (C) 2006 Thorsten Marek. 5 | ## All right reserved. 6 | ## 7 | ## This file is part of PyQt. 8 | ## 9 | ## You may use this file under the terms of the GPL v2 or the revised BSD 10 | ## license as follows: 11 | ## 12 | ## "Redistribution and use in source and binary forms, with or without 13 | ## modification, are permitted provided that the following conditions are 14 | ## met: 15 | ## * Redistributions of source code must retain the above copyright 16 | ## notice, this list of conditions and the following disclaimer. 17 | ## * Redistributions in binary form must reproduce the above copyright 18 | ## notice, this list of conditions and the following disclaimer in 19 | ## the documentation and/or other materials provided with the 20 | ## distribution. 21 | ## * Neither the name of the Riverbank Computing Limited nor the names 22 | ## of its contributors may be used to endorse or promote products 23 | ## derived from this software without specific prior written 24 | ## permission. 25 | ## 26 | ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 27 | ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 28 | ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 29 | ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 30 | ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 31 | ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 32 | ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 33 | ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 34 | ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 35 | ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 36 | ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." 37 | ## 38 | ############################################################################# 39 | 40 | 41 | from .misc import Literal, moduleMember 42 | 43 | 44 | class ProxyMetaclass(type): 45 | """ ProxyMetaclass is the meta-class for proxies. """ 46 | 47 | def __init__(*args): 48 | """ Initialise the meta-class. """ 49 | 50 | # Initialise as normal. 51 | type.__init__(*args) 52 | 53 | # The proxy type object we have created. 54 | proxy = args[0] 55 | 56 | # Go through the proxy's attributes looking for other proxies. 57 | for sub_proxy in proxy.__dict__.values(): 58 | if type(sub_proxy) is ProxyMetaclass: 59 | # Set the module name of the contained proxy to the name of the 60 | # container proxy. 61 | sub_proxy.module = proxy.__name__ 62 | 63 | # Attribute hierachies are created depth first so any proxies 64 | # contained in the sub-proxy whose module we have just set will 65 | # already exist and have an incomplete module name. We need to 66 | # revisit them and prepend the new name to their module names. 67 | # Note that this should be recursive but with current usage we 68 | # know there will be only one level to revisit. 69 | for sub_sub_proxy in sub_proxy.__dict__.values(): 70 | if type(sub_sub_proxy) is ProxyMetaclass: 71 | sub_sub_proxy.module = '%s.%s' % (proxy.__name__, sub_sub_proxy.module) 72 | 73 | # Makes sure there is a 'module' attribute. 74 | if not hasattr(proxy, 'module'): 75 | proxy.module = '' 76 | 77 | def __getattribute__(cls, name): 78 | try: 79 | return type.__getattribute__(cls, name) 80 | except AttributeError: 81 | # Make sure __init__()'s use of hasattr() works. 82 | if name == 'module': 83 | raise 84 | 85 | # Avoid a circular import. 86 | from .qtproxies import LiteralProxyClass 87 | 88 | return type(name, (LiteralProxyClass, ), 89 | {"module": moduleMember(type.__getattribute__(cls, "module"), 90 | type.__getattribute__(cls, "__name__"))}) 91 | 92 | def __str__(cls): 93 | return moduleMember(type.__getattribute__(cls, "module"), 94 | type.__getattribute__(cls, "__name__")) 95 | 96 | def __or__(self, r_op): 97 | return Literal("%s|%s" % (self, r_op)) 98 | 99 | def __eq__(self, other): 100 | return str(self) == str(other) 101 | -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/uic/Compiler/proxy_metaclass.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (C) 2014 Riverbank Computing Limited. 4 | ## Copyright (C) 2006 Thorsten Marek. 5 | ## All right reserved. 6 | ## 7 | ## This file is part of PyQt. 8 | ## 9 | ## You may use this file under the terms of the GPL v2 or the revised BSD 10 | ## license as follows: 11 | ## 12 | ## "Redistribution and use in source and binary forms, with or without 13 | ## modification, are permitted provided that the following conditions are 14 | ## met: 15 | ## * Redistributions of source code must retain the above copyright 16 | ## notice, this list of conditions and the following disclaimer. 17 | ## * Redistributions in binary form must reproduce the above copyright 18 | ## notice, this list of conditions and the following disclaimer in 19 | ## the documentation and/or other materials provided with the 20 | ## distribution. 21 | ## * Neither the name of the Riverbank Computing Limited nor the names 22 | ## of its contributors may be used to endorse or promote products 23 | ## derived from this software without specific prior written 24 | ## permission. 25 | ## 26 | ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 27 | ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 28 | ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 29 | ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 30 | ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 31 | ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 32 | ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 33 | ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 34 | ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 35 | ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 36 | ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." 37 | ## 38 | ############################################################################# 39 | 40 | 41 | from .misc import Literal, moduleMember 42 | 43 | 44 | class ProxyMetaclass(type): 45 | """ ProxyMetaclass is the meta-class for proxies. """ 46 | 47 | def __init__(*args): 48 | """ Initialise the meta-class. """ 49 | 50 | # Initialise as normal. 51 | type.__init__(*args) 52 | 53 | # The proxy type object we have created. 54 | proxy = args[0] 55 | 56 | # Go through the proxy's attributes looking for other proxies. 57 | for sub_proxy in proxy.__dict__.values(): 58 | if type(sub_proxy) is ProxyMetaclass: 59 | # Set the module name of the contained proxy to the name of the 60 | # container proxy. 61 | sub_proxy.module = proxy.__name__ 62 | 63 | # Attribute hierachies are created depth first so any proxies 64 | # contained in the sub-proxy whose module we have just set will 65 | # already exist and have an incomplete module name. We need to 66 | # revisit them and prepend the new name to their module names. 67 | # Note that this should be recursive but with current usage we 68 | # know there will be only one level to revisit. 69 | for sub_sub_proxy in sub_proxy.__dict__.values(): 70 | if type(sub_sub_proxy) is ProxyMetaclass: 71 | sub_sub_proxy.module = '%s.%s' % (proxy.__name__, sub_sub_proxy.module) 72 | 73 | # Makes sure there is a 'module' attribute. 74 | if not hasattr(proxy, 'module'): 75 | proxy.module = '' 76 | 77 | def __getattribute__(cls, name): 78 | try: 79 | return type.__getattribute__(cls, name) 80 | except AttributeError: 81 | # Make sure __init__()'s use of hasattr() works. 82 | if name == 'module': 83 | raise 84 | 85 | # Avoid a circular import. 86 | from .qtproxies import LiteralProxyClass 87 | 88 | return type(name, (LiteralProxyClass, ), 89 | {"module": moduleMember(type.__getattribute__(cls, "module"), 90 | type.__getattribute__(cls, "__name__"))}) 91 | 92 | def __str__(cls): 93 | return moduleMember(type.__getattribute__(cls, "module"), 94 | type.__getattribute__(cls, "__name__")) 95 | 96 | def __or__(self, r_op): 97 | return Literal("%s|%s" % (self, r_op)) 98 | 99 | def __eq__(self, other): 100 | return str(self) == str(other) 101 | -------------------------------------------------------------------------------- /7.5/Add to plugins folder/Code editor/template/Plugin_temp: -------------------------------------------------------------------------------- 1 | # Created by: Storm Shadow http://www.techbliss.org 2 | import os, sys 3 | import ida_idaapi, ida_kernwin, ida_idaapi, ida_loader 4 | import idc 5 | from idc import * 6 | from ida_diskio import * 7 | from ida_idaapi import * 8 | from ida_loader import * 9 | import sys 10 | sys.path.insert(0 , ida_diskio.idadir("plugins\\Code editor\\icons")) 11 | import ico 12 | from ico import * 13 | 14 | PLUGIN_VERSION = "1.6" 15 | IDAVERISONS = "IDA PRO 7.2+" 16 | AUTHORS = "Storm Shadow" 17 | DATE = "2019" 18 | TWITTER = "Twitter @zadow28" 19 | 20 | def banner(): 21 | banner_options = (PLUGIN_VERSION, AUTHORS, DATE, TWITTER, IDAVERISONS) 22 | banner_titles = "Python Editor v%s - (c) %s - %s - %s - %s" % banner_options #change Python editor 23 | 24 | # print plugin banner 25 | print("---[" + banner_titles + "]---\n") 26 | 27 | banner() 28 | 29 | # 1) Create the handler class 30 | class MyEditorHandler(ida_kernwin.action_handler_t): # the class name must be unique for each plugin nb same as line (53) 31 | def __init__(self): 32 | ida_kernwin.action_handler_t.__init__(self) 33 | 34 | # Run editor when invoked. 35 | def activate(self, ctx): 36 | g = globals() 37 | idahome = ida_diskio.idadir("plugins\\My_plugin_path") #change to set plguin path where the main plguin script is 38 | tupac = str(idahome + "\\main_plugin.py")#change for the main plugin script 39 | # ida_kernwin.load_custom_icon(":/ico/icon.png")#if you have a custom icon 40 | load_and_run_plugin(tupac, True) 41 | 42 | def update(self, ctx): 43 | return ida_kernwin.AST_ENABLE_ALWAYS 44 | 45 | class ripeye(idaapi.plugin_t): #change class to unique name for each plugin , also change line (103) 46 | flags = idaapi.PLUGIN_FIX #different flags this is for plugin visible at startup 47 | comment = "Run me" #help me text 48 | help = "Python Editor" #help text 49 | wanted_name = "Python Editor" #change the plugins name 50 | wanted_hotkey = "" #the tooltip goes away in menu when setting it here ,DONT DO it! and only is shown in File/Plugins menu 51 | 52 | def editor_menuaction(self): #change for something unique.also change line (90) 53 | action_desc = ida_kernwin.action_desc_t( 54 | 'my:editoraction', # The action name. This acts like an ID and must be unique same as line (64), (68) 55 | 'Python Editor!', # The action text. 56 | MyEditorHandler(), # The action handler must be unique , also change line (99) 57 | 'Ctrl+H', # Optional: the action shortcut DO IT HERE! 58 | 'Script editor', # Optional: the action tooltip (available in menus/toolbar) 59 | ida_kernwin.load_custom_icon(":/ico/python.png") # hackish load action icon , if no custom icon use number from 1-150 from internal ida 60 | ) 61 | 62 | # 3) Register the action 63 | ida_kernwin.register_action(action_desc) 64 | 65 | ida_kernwin.attach_action_to_menu( 66 | 'File/Editor...', # The relative path of where to add the action 67 | 'my:editoraction', # The action ID (see line(51)) 68 | ida_kernwin.SETMENU_APP) # We want to append the action after the 'Manual instruction... 69 | 70 | form = ida_kernwin.get_current_tform() 71 | ida_kernwin.attach_action_to_popup(form, None, "my:editoraction", None) # The action ID (see line(51) 72 | 73 | def init(self): 74 | """ 75 | This is called by IDA when it is loading the plugin. 76 | """ 77 | #self._icon_id_file = idaapi.BADADDR 78 | # attempt plugin initialization 79 | try: 80 | self._install_plugin() 81 | 82 | # failed to initialize or integrate the plugin, log and skip loading 83 | except Exception as e: 84 | form = ida_kernwin.get_current_widget() 85 | pass 86 | 87 | return PLUGIN_KEEP 88 | 89 | def _install_plugin(self): 90 | """ 91 | Initialize & integrate the plugin into IDA. 92 | """ 93 | self.editor_menuaction() #same as line (49) 94 | self._init() 95 | 96 | def term(self): 97 | pass 98 | 99 | def run(self, arg = 0): 100 | #we need the calls again if we wanna load it via File/Plugins/editor 101 | ida_kernwin.msg("Python Editor Loaded to menu \n use Alt+E hot key to quick load ") 102 | hackish = MyEditorHandler() #must be the same as line (53) change also hackish = must be unique also line (100) 103 | hackish.activate(self) #hackish must the same as line hackish = (99) 104 | 105 | def PLUGIN_ENTRY(): 106 | return ripeye() #must be unique for each plugin and same as line 43 -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/uic/Compiler/compiler.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (C) 2016 Riverbank Computing Limited. 4 | ## Copyright (C) 2006 Thorsten Marek. 5 | ## All right reserved. 6 | ## 7 | ## This file is part of PyQt. 8 | ## 9 | ## You may use this file under the terms of the GPL v2 or the revised BSD 10 | ## license as follows: 11 | ## 12 | ## "Redistribution and use in source and binary forms, with or without 13 | ## modification, are permitted provided that the following conditions are 14 | ## met: 15 | ## * Redistributions of source code must retain the above copyright 16 | ## notice, this list of conditions and the following disclaimer. 17 | ## * Redistributions in binary form must reproduce the above copyright 18 | ## notice, this list of conditions and the following disclaimer in 19 | ## the documentation and/or other materials provided with the 20 | ## distribution. 21 | ## * Neither the name of the Riverbank Computing Limited nor the names 22 | ## of its contributors may be used to endorse or promote products 23 | ## derived from this software without specific prior written 24 | ## permission. 25 | ## 26 | ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 27 | ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 28 | ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 29 | ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 30 | ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 31 | ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 32 | ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 33 | ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 34 | ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 35 | ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 36 | ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." 37 | ## 38 | ############################################################################# 39 | 40 | 41 | import sys 42 | 43 | from ..properties import Properties 44 | from ..uiparser import UIParser 45 | from . import qtproxies 46 | from .indenter import createCodeIndenter, getIndenter, write_code 47 | from .qobjectcreator import CompilerCreatorPolicy 48 | 49 | 50 | class UICompiler(UIParser): 51 | def __init__(self): 52 | UIParser.__init__(self, qtproxies.QtCore, qtproxies.QtGui, 53 | qtproxies.QtWidgets, CompilerCreatorPolicy()) 54 | 55 | def reset(self): 56 | qtproxies.i18n_strings = [] 57 | UIParser.reset(self) 58 | 59 | def setContext(self, context): 60 | qtproxies.i18n_context = context 61 | 62 | def createToplevelWidget(self, classname, widgetname): 63 | indenter = getIndenter() 64 | indenter.level = 0 65 | 66 | indenter.write("from PyQt5 import QtCore, QtGui, QtWidgets") 67 | indenter.write("") 68 | 69 | indenter.write("class Ui_%s(object):" % self.uiname) 70 | indenter.indent() 71 | indenter.write("def setupUi(self, %s):" % widgetname) 72 | indenter.indent() 73 | w = self.factory.createQObject(classname, widgetname, (), 74 | is_attribute = False, 75 | no_instantiation = True) 76 | w.baseclass = classname 77 | w.uiclass = "Ui_%s" % self.uiname 78 | return w 79 | 80 | def setDelayedProps(self): 81 | write_code("") 82 | write_code("self.retranslateUi(%s)" % self.toplevelWidget) 83 | UIParser.setDelayedProps(self) 84 | 85 | def finalize(self): 86 | indenter = getIndenter() 87 | indenter.level = 1 88 | indenter.write("") 89 | indenter.write("def retranslateUi(self, %s):" % self.toplevelWidget) 90 | 91 | indenter.indent() 92 | 93 | if qtproxies.i18n_strings: 94 | indenter.write("_translate = QtCore.QCoreApplication.translate") 95 | for s in qtproxies.i18n_strings: 96 | indenter.write(s) 97 | else: 98 | indenter.write("pass") 99 | 100 | indenter.dedent() 101 | indenter.dedent() 102 | 103 | # Keep a reference to the resource modules to import because the parser 104 | # will reset() before returning. 105 | self._resources = self.resources 106 | self._resources.sort() 107 | 108 | def compileUi(self, input_stream, output_stream, from_imports, resource_suffix, import_from): 109 | createCodeIndenter(output_stream) 110 | w = self.parse(input_stream, resource_suffix) 111 | 112 | indenter = getIndenter() 113 | indenter.write("") 114 | 115 | self.factory._cpolicy._writeOutImports() 116 | 117 | for res in self._resources: 118 | if from_imports: 119 | write_code("from %s import %s" % (import_from, res)) 120 | else: 121 | write_code("import %s" % res) 122 | 123 | return {"widgetname": str(w), 124 | "uiclass" : w.uiclass, 125 | "baseclass" : w.baseclass} 126 | -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/uic/Compiler/compiler.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (C) 2016 Riverbank Computing Limited. 4 | ## Copyright (C) 2006 Thorsten Marek. 5 | ## All right reserved. 6 | ## 7 | ## This file is part of PyQt. 8 | ## 9 | ## You may use this file under the terms of the GPL v2 or the revised BSD 10 | ## license as follows: 11 | ## 12 | ## "Redistribution and use in source and binary forms, with or without 13 | ## modification, are permitted provided that the following conditions are 14 | ## met: 15 | ## * Redistributions of source code must retain the above copyright 16 | ## notice, this list of conditions and the following disclaimer. 17 | ## * Redistributions in binary form must reproduce the above copyright 18 | ## notice, this list of conditions and the following disclaimer in 19 | ## the documentation and/or other materials provided with the 20 | ## distribution. 21 | ## * Neither the name of the Riverbank Computing Limited nor the names 22 | ## of its contributors may be used to endorse or promote products 23 | ## derived from this software without specific prior written 24 | ## permission. 25 | ## 26 | ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 27 | ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 28 | ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 29 | ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 30 | ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 31 | ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 32 | ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 33 | ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 34 | ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 35 | ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 36 | ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." 37 | ## 38 | ############################################################################# 39 | 40 | 41 | import sys 42 | 43 | from ..properties import Properties 44 | from ..uiparser import UIParser 45 | from . import qtproxies 46 | from .indenter import createCodeIndenter, getIndenter, write_code 47 | from .qobjectcreator import CompilerCreatorPolicy 48 | 49 | 50 | class UICompiler(UIParser): 51 | def __init__(self): 52 | UIParser.__init__(self, qtproxies.QtCore, qtproxies.QtGui, 53 | qtproxies.QtWidgets, CompilerCreatorPolicy()) 54 | 55 | def reset(self): 56 | qtproxies.i18n_strings = [] 57 | UIParser.reset(self) 58 | 59 | def setContext(self, context): 60 | qtproxies.i18n_context = context 61 | 62 | def createToplevelWidget(self, classname, widgetname): 63 | indenter = getIndenter() 64 | indenter.level = 0 65 | 66 | indenter.write("from PyQt5 import QtCore, QtGui, QtWidgets") 67 | indenter.write("") 68 | 69 | indenter.write("class Ui_%s(object):" % self.uiname) 70 | indenter.indent() 71 | indenter.write("def setupUi(self, %s):" % widgetname) 72 | indenter.indent() 73 | w = self.factory.createQObject(classname, widgetname, (), 74 | is_attribute = False, 75 | no_instantiation = True) 76 | w.baseclass = classname 77 | w.uiclass = "Ui_%s" % self.uiname 78 | return w 79 | 80 | def setDelayedProps(self): 81 | write_code("") 82 | write_code("self.retranslateUi(%s)" % self.toplevelWidget) 83 | UIParser.setDelayedProps(self) 84 | 85 | def finalize(self): 86 | indenter = getIndenter() 87 | indenter.level = 1 88 | indenter.write("") 89 | indenter.write("def retranslateUi(self, %s):" % self.toplevelWidget) 90 | 91 | indenter.indent() 92 | 93 | if qtproxies.i18n_strings: 94 | indenter.write("_translate = QtCore.QCoreApplication.translate") 95 | for s in qtproxies.i18n_strings: 96 | indenter.write(s) 97 | else: 98 | indenter.write("pass") 99 | 100 | indenter.dedent() 101 | indenter.dedent() 102 | 103 | # Keep a reference to the resource modules to import because the parser 104 | # will reset() before returning. 105 | self._resources = self.resources 106 | self._resources.sort() 107 | 108 | def compileUi(self, input_stream, output_stream, from_imports, resource_suffix, import_from): 109 | createCodeIndenter(output_stream) 110 | w = self.parse(input_stream, resource_suffix) 111 | 112 | indenter = getIndenter() 113 | indenter.write("") 114 | 115 | self.factory._cpolicy._writeOutImports() 116 | 117 | for res in self._resources: 118 | if from_imports: 119 | write_code("from %s import %s" % (import_from, res)) 120 | else: 121 | write_code("import %s" % res) 122 | 123 | return {"widgetname": str(w), 124 | "uiclass" : w.uiclass, 125 | "baseclass" : w.baseclass} 126 | -------------------------------------------------------------------------------- /7.2/Add to ida python folder/PyQt5/uic/driver.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | import sys 24 | import logging 25 | 26 | from . import compileUi, loadUi 27 | 28 | 29 | class Driver(object): 30 | """ This encapsulates access to the pyuic functionality so that it can be 31 | called by code that is Python v2/v3 specific. 32 | """ 33 | 34 | LOGGER_NAME = 'PyQt5.uic' 35 | 36 | def __init__(self, opts, ui_file): 37 | """ Initialise the object. opts is the parsed options. ui_file is the 38 | name of the .ui file. 39 | """ 40 | 41 | if opts.debug: 42 | logger = logging.getLogger(self.LOGGER_NAME) 43 | handler = logging.StreamHandler() 44 | handler.setFormatter(logging.Formatter("%(name)s: %(message)s")) 45 | logger.addHandler(handler) 46 | logger.setLevel(logging.DEBUG) 47 | 48 | self._opts = opts 49 | self._ui_file = ui_file 50 | 51 | def invoke(self): 52 | """ Invoke the action as specified by the parsed options. Returns 0 if 53 | there was no error. 54 | """ 55 | 56 | if self._opts.preview: 57 | return self._preview() 58 | 59 | self._generate() 60 | 61 | return 0 62 | 63 | def _preview(self): 64 | """ Preview the .ui file. Return the exit status to be passed back to 65 | the parent process. 66 | """ 67 | 68 | from PyQt5 import QtWidgets 69 | 70 | app = QtWidgets.QApplication([self._ui_file]) 71 | widget = loadUi(self._ui_file) 72 | widget.show() 73 | 74 | return app.exec_() 75 | 76 | def _generate(self): 77 | """ Generate the Python code. """ 78 | 79 | needs_close = False 80 | 81 | if sys.hexversion >= 0x03000000: 82 | if self._opts.output == '-': 83 | from io import TextIOWrapper 84 | 85 | pyfile = TextIOWrapper(sys.stdout.buffer, encoding='utf8') 86 | else: 87 | pyfile = open(self._opts.output, 'wt', encoding='utf8') 88 | needs_close = True 89 | else: 90 | if self._opts.output == '-': 91 | pyfile = sys.stdout 92 | else: 93 | pyfile = open(self._opts.output, 'wt') 94 | needs_close = True 95 | 96 | import_from = self._opts.import_from 97 | 98 | if import_from: 99 | from_imports = True 100 | elif self._opts.from_imports: 101 | from_imports = True 102 | import_from = '.' 103 | else: 104 | from_imports = False 105 | 106 | compileUi(self._ui_file, pyfile, self._opts.execute, self._opts.indent, 107 | from_imports, self._opts.resource_suffix, import_from) 108 | 109 | if needs_close: 110 | pyfile.close() 111 | 112 | def on_IOError(self, e): 113 | """ Handle an IOError exception. """ 114 | 115 | sys.stderr.write("Error: %s: \"%s\"\n" % (e.strerror, e.filename)) 116 | 117 | def on_SyntaxError(self, e): 118 | """ Handle a SyntaxError exception. """ 119 | 120 | sys.stderr.write("Error in input file: %s\n" % e) 121 | 122 | def on_NoSuchClassError(self, e): 123 | """ Handle a NoSuchClassError exception. """ 124 | 125 | sys.stderr.write(str(e) + "\n") 126 | 127 | def on_NoSuchWidgetError(self, e): 128 | """ Handle a NoSuchWidgetError exception. """ 129 | 130 | sys.stderr.write(str(e) + "\n") 131 | 132 | def on_Exception(self, e): 133 | """ Handle a generic exception. """ 134 | 135 | if logging.getLogger(self.LOGGER_NAME).level == logging.DEBUG: 136 | import traceback 137 | 138 | traceback.print_exception(*sys.exc_info()) 139 | else: 140 | from PyQt5 import QtCore 141 | 142 | sys.stderr.write("""An unexpected error occurred. 143 | Check that you are using the latest version of PyQt5 and send an error report to 144 | support@riverbankcomputing.com, including the following information: 145 | 146 | * your version of PyQt (%s) 147 | * the UI file that caused this error 148 | * the debug output of pyuic5 (use the -d flag when calling pyuic5) 149 | """ % QtCore.PYQT_VERSION_STR) 150 | -------------------------------------------------------------------------------- /7.5/Add to Python 2 PyQt5 folder/uic/driver.py: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | ## 3 | ## Copyright (c) 2017 Riverbank Computing Limited 4 | ## 5 | ## This file is part of PyQt5. 6 | ## 7 | ## This file may be used under the terms of the GNU General Public License 8 | ## version 3.0 as published by the Free Software Foundation and appearing in 9 | ## the file LICENSE included in the packaging of this file. Please review the 10 | ## following information to ensure the GNU General Public License version 3.0 11 | ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 | ## 13 | ## If you do not wish to use this file under the terms of the GPL version 3.0 14 | ## then you may purchase a commercial license. For more information contact 15 | ## info@riverbankcomputing.com. 16 | ## 17 | ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 | ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 | ## 20 | ############################################################################# 21 | 22 | 23 | import sys 24 | import logging 25 | 26 | from . import compileUi, loadUi 27 | 28 | 29 | class Driver(object): 30 | """ This encapsulates access to the pyuic functionality so that it can be 31 | called by code that is Python v2/v3 specific. 32 | """ 33 | 34 | LOGGER_NAME = 'PyQt5.uic' 35 | 36 | def __init__(self, opts, ui_file): 37 | """ Initialise the object. opts is the parsed options. ui_file is the 38 | name of the .ui file. 39 | """ 40 | 41 | if opts.debug: 42 | logger = logging.getLogger(self.LOGGER_NAME) 43 | handler = logging.StreamHandler() 44 | handler.setFormatter(logging.Formatter("%(name)s: %(message)s")) 45 | logger.addHandler(handler) 46 | logger.setLevel(logging.DEBUG) 47 | 48 | self._opts = opts 49 | self._ui_file = ui_file 50 | 51 | def invoke(self): 52 | """ Invoke the action as specified by the parsed options. Returns 0 if 53 | there was no error. 54 | """ 55 | 56 | if self._opts.preview: 57 | return self._preview() 58 | 59 | self._generate() 60 | 61 | return 0 62 | 63 | def _preview(self): 64 | """ Preview the .ui file. Return the exit status to be passed back to 65 | the parent process. 66 | """ 67 | 68 | from PyQt5 import QtWidgets 69 | 70 | app = QtWidgets.QApplication([self._ui_file]) 71 | widget = loadUi(self._ui_file) 72 | widget.show() 73 | 74 | return app.exec_() 75 | 76 | def _generate(self): 77 | """ Generate the Python code. """ 78 | 79 | needs_close = False 80 | 81 | if sys.hexversion >= 0x03000000: 82 | if self._opts.output == '-': 83 | from io import TextIOWrapper 84 | 85 | pyfile = TextIOWrapper(sys.stdout.buffer, encoding='utf8') 86 | else: 87 | pyfile = open(self._opts.output, 'wt', encoding='utf8') 88 | needs_close = True 89 | else: 90 | if self._opts.output == '-': 91 | pyfile = sys.stdout 92 | else: 93 | pyfile = open(self._opts.output, 'wt') 94 | needs_close = True 95 | 96 | import_from = self._opts.import_from 97 | 98 | if import_from: 99 | from_imports = True 100 | elif self._opts.from_imports: 101 | from_imports = True 102 | import_from = '.' 103 | else: 104 | from_imports = False 105 | 106 | compileUi(self._ui_file, pyfile, self._opts.execute, self._opts.indent, 107 | from_imports, self._opts.resource_suffix, import_from) 108 | 109 | if needs_close: 110 | pyfile.close() 111 | 112 | def on_IOError(self, e): 113 | """ Handle an IOError exception. """ 114 | 115 | sys.stderr.write("Error: %s: \"%s\"\n" % (e.strerror, e.filename)) 116 | 117 | def on_SyntaxError(self, e): 118 | """ Handle a SyntaxError exception. """ 119 | 120 | sys.stderr.write("Error in input file: %s\n" % e) 121 | 122 | def on_NoSuchClassError(self, e): 123 | """ Handle a NoSuchClassError exception. """ 124 | 125 | sys.stderr.write(str(e) + "\n") 126 | 127 | def on_NoSuchWidgetError(self, e): 128 | """ Handle a NoSuchWidgetError exception. """ 129 | 130 | sys.stderr.write(str(e) + "\n") 131 | 132 | def on_Exception(self, e): 133 | """ Handle a generic exception. """ 134 | 135 | if logging.getLogger(self.LOGGER_NAME).level == logging.DEBUG: 136 | import traceback 137 | 138 | traceback.print_exception(*sys.exc_info()) 139 | else: 140 | from PyQt5 import QtCore 141 | 142 | sys.stderr.write("""An unexpected error occurred. 143 | Check that you are using the latest version of PyQt5 and send an error report to 144 | support@riverbankcomputing.com, including the following information: 145 | 146 | * your version of PyQt (%s) 147 | * the UI file that caused this error 148 | * the debug output of pyuic5 (use the -d flag when calling pyuic5) 149 | """ % QtCore.PYQT_VERSION_STR) 150 | -------------------------------------------------------------------------------- /6.8/plugins/Code editor/icons/iconf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Resource object code 4 | # 5 | # Created by: The Resource Compiler for PyQt4 (Qt v4.8.7) 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt4 import QtCore 10 | 11 | qt_resource_data = "\ 12 | \x00\x00\x04\x28\ 13 | \x89\ 14 | \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ 15 | \x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ 16 | \x00\x00\x03\xef\x49\x44\x41\x54\x78\x5e\xd5\x99\x7d\x4a\xe3\x40\ 17 | \x14\xc0\xad\x16\x44\x51\x12\x54\x44\x51\x4c\x44\xff\x50\x44\x9b\ 18 | \x7a\x81\xd5\x13\x34\x7b\x83\x78\x82\xcd\x9e\x60\x7b\x84\xf5\x06\ 19 | \xf1\x06\xe9\x09\x36\x5e\x40\x1b\x41\x54\xfc\x20\x11\x45\xf1\xab\ 20 | \x1d\x11\x45\xa8\xba\x2f\x4b\x35\x62\xe6\xb3\xd3\x90\xee\x83\xa1\ 21 | \xc2\xbc\x79\x33\xbf\xd7\xd7\x37\xef\x8d\xb9\xb7\xb7\xb7\xae\x5c\ 22 | \x2e\xd7\xd5\x8a\x2c\x2f\x2f\xff\x80\x8f\xdf\x0c\x35\x6f\x6b\x6b\ 23 | \x6b\xb5\x2b\x25\xc9\xcb\x2c\x06\xf8\x32\x87\xda\x4a\xb1\x58\xd4\ 24 | \xb6\xb7\xb7\xc3\x8e\x02\x30\x0c\xa3\x04\x00\x2a\xa7\xba\x0d\xe3\ 25 | \x67\x47\x01\xc0\xe1\x4d\x01\x75\xf3\x7f\x07\xd0\x97\x96\x96\x0a\ 26 | \x3b\x3b\x3b\x7e\x47\x00\x2c\x2e\x2e\xc6\xe1\xc3\x2f\x56\x1a\x61\ 27 | \x94\x6f\xd1\xfb\x56\x3c\x91\x2d\x80\x70\x1a\x5d\x58\x58\x50\xe0\ 28 | \xa3\x4e\x51\x09\x60\xe8\x84\x39\x73\x77\x77\xb7\x92\x5d\x08\xb1\ 29 | \x63\xbf\xda\x1c\x16\xe5\xc7\xdc\xd1\x00\x5e\x34\x68\x00\xf3\xf3\ 30 | \xf3\xf6\xde\xde\x1e\xca\x04\x60\x6e\x6e\x4e\x61\x00\x38\xfb\xfb\ 31 | \xfb\x3e\xe8\x91\xe6\xd5\x66\x4a\xdd\xc8\x00\x80\xe9\xfd\xfa\xc1\ 32 | \xc1\x81\xdf\xd4\x73\xe1\x03\xab\x9b\x29\xc0\xeb\xeb\xab\x4d\x99\ 33 | \x76\x3f\xe9\x51\x01\x32\x49\xa3\xb3\xb3\xb3\x1a\x78\xd6\xa0\x03\ 34 | \xc4\x30\xa0\x8b\xfd\x96\x20\xe3\x65\x01\xc0\xbe\x79\xe1\x60\xde\ 35 | \xfb\xc4\xe1\xe1\x21\x9a\x99\x99\x89\xb2\x91\xf1\xe5\xf0\x06\xcc\ 36 | \x85\x59\x01\x58\x34\xef\x1f\x1f\x1f\xa3\x2f\xfa\xce\xe7\x52\x3b\ 37 | \xf2\xfc\xd1\xd1\x51\x98\xc9\x4d\x3c\x3d\x3d\xcd\x0a\x1f\x0f\x07\ 38 | \x05\x10\xef\x00\xce\xc9\xc9\xc9\x66\x06\xc5\x1c\xc3\xfb\xb1\x77\ 39 | \xdd\xaf\x13\x70\xe0\x50\xd7\xf5\xf7\x5b\x39\x9e\xef\x40\x80\x6a\ 40 | \x10\x04\x21\x01\x3c\x02\xb3\xc2\x30\x4c\xdc\xbe\x9a\xa6\x29\xcd\ 41 | \xb2\x43\xc5\xd9\x84\x35\xc5\xb6\x00\x4c\x4d\x4d\x15\x00\x40\xa7\ 42 | \xa8\x38\x14\x70\x87\x91\x14\x48\x15\xad\x01\xfb\x7e\x3b\x3d\x3d\ 43 | \xdd\x64\x03\xc8\x57\x9e\x1e\x69\x02\x0e\xe0\xc3\x41\xca\x2d\xda\ 44 | \x8d\xe6\xd9\x00\x92\xe9\x33\x38\x3b\x3b\xa3\x36\x29\x00\x91\xa8\ 45 | \x7b\x26\x27\x27\x35\x00\x58\xe1\xe8\xe2\xd6\xa4\x00\x26\x26\x26\ 46 | \x58\xe1\xe3\xa6\xd8\xcd\xa9\xb0\x7f\xe9\xfc\xfc\xbc\x42\x05\x60\ 47 | \x6c\x64\x33\x36\x71\xda\xd8\x10\xd5\x61\xa8\x98\x30\xa2\x03\xc8\ 48 | \x14\x6f\x17\x17\x17\xc2\x3d\xee\xf8\xf8\x38\xe9\x4e\x29\x63\xde\ 49 | \x98\x4c\xd0\x57\x60\x1f\x24\x0c\x30\x36\x36\xc6\xea\x7b\xeb\xa0\ 50 | \xf3\x8b\x16\x5e\x97\x97\x97\x3e\xa7\xf7\xab\xa0\xbb\x0e\xf6\x22\ 51 | \x08\x55\xa4\x7a\xcd\x4b\xc4\xa9\x0e\xa3\xcc\x0a\x2f\x4e\x00\xaf\ 52 | \x39\xe7\x61\xaa\x55\x4b\x1e\x40\x5c\xaa\x57\x57\x57\x89\xcb\x6d\ 53 | \x74\x74\x94\x94\x14\x1c\x4a\x1f\xb1\x02\xeb\xb4\xc8\x1e\x37\xc0\ 54 | \xc8\xc8\x48\x09\x6a\x7a\x55\x02\xc0\x21\xf4\x13\xd8\x1f\xef\xcd\ 55 | \xcd\xcd\x47\x23\x04\x83\x94\x52\xd7\x29\x00\xe2\xcf\x26\x8c\xda\ 56 | \x88\x14\x3e\x26\x2d\x15\x5f\x5f\x5f\xa3\xe1\xe1\x61\x2f\xf2\x7a\ 57 | \x22\x8c\x78\x01\x86\x86\x86\x14\xc9\xf0\x71\x6f\x6f\x6f\x11\xc6\ 58 | \x6e\x89\x10\x3e\x6e\xa2\x7e\x4a\x02\x18\xb0\xbe\x70\x77\x77\xe7\ 59 | \x33\x01\x38\x0e\x1f\x80\x87\x03\xca\xbc\x88\xf7\xeb\xb5\x5a\xad\ 60 | \x82\x2b\xc3\xc9\x0f\x63\xf2\x00\x65\xd8\x74\x43\xe2\xf6\xa5\xd6\ 61 | \x51\xe0\xe5\x50\x55\xd5\xb8\x9b\x8b\xc5\x64\x02\x28\x20\x1c\xad\ 62 | \xa3\x70\xf9\x00\x66\x49\x77\x4a\x6c\x8b\xd4\xcd\xc5\xa2\x83\x9d\ 63 | \x02\x42\xc8\x4f\x00\x08\x54\x88\x2e\x02\x91\xf0\x3e\xdd\x19\xec\ 64 | \x30\xb2\x61\xac\xc9\x00\x08\x7b\x7f\x70\x70\x50\x21\xd8\x75\xef\ 65 | \xef\xef\xb1\xce\x40\x08\x85\xb0\x0e\xf7\xc6\x6a\x12\x01\x06\x06\ 66 | \x06\x30\x35\x8a\x7c\xf8\x50\x42\xd2\x80\x3d\xff\x90\xc0\x09\x21\ 67 | \xa7\xc2\x9a\xd2\xc3\xc3\x43\x25\x06\xe0\xcf\x3e\x2e\x2c\x44\x6d\ 68 | \x04\xd0\x9b\x83\x22\xec\x07\xe2\x7c\x9a\xe1\xd3\xdf\xdf\x9f\x4c\ 69 | \x0a\xf2\x62\x81\x5d\xfb\xf1\xf1\x11\x7d\x00\xf4\xf5\xf5\xa5\x1c\ 70 | \x3e\xf2\x42\xaa\x50\xf3\x9c\x8d\x8b\xfb\xf4\xf4\xd4\x4a\xf8\xd8\ 71 | \x9c\x7d\x34\xed\x35\xdb\xe0\x01\xa0\xc5\x62\x3d\xce\xc9\xfc\xd2\ 72 | \xdb\xdb\x4b\x4a\x0a\xd5\xe7\xe7\xe7\x55\x01\x3b\x35\x5c\x8f\x10\ 73 | \xd9\x07\x3b\xe1\x3f\x00\x30\xf8\x9d\x65\x48\x3e\x7c\xd8\x6d\x28\ 74 | \xed\x6d\x89\x54\xa1\x02\x80\xbc\x08\x56\xb4\xae\x20\x80\x47\x00\ 75 | \xb0\x52\x03\xe8\xe9\xe9\xd1\xa0\xf6\xc7\x86\xcf\xcb\xcb\x4b\xc8\ 76 | \x0b\xc0\xe8\x11\x8c\x68\x9f\x7c\x4a\xde\xb7\xdb\xf5\x8a\xd1\x68\ 77 | \x34\x50\x77\x77\x37\xe9\x1f\x26\xb6\x04\x80\x44\xed\x23\x6e\x8f\ 78 | \x04\x60\xa6\x00\x40\xcc\x6a\x1e\x80\x31\xc3\x87\x52\xdc\xe1\xde\ 79 | \x8d\xf4\xbf\x17\x73\x56\xa3\x99\xa0\x5b\xa0\x00\x00\x00\x00\x49\ 80 | \x45\x4e\x44\xae\x42\x60\x82\ 81 | " 82 | 83 | qt_resource_name = "\ 84 | \x00\x04\ 85 | \x00\x06\xfa\x24\ 86 | \x00\x69\ 87 | \x00\x63\x00\x6f\x00\x34\ 88 | \x00\x08\ 89 | \x06\x57\x5a\xe7\ 90 | \x00\x66\ 91 | \x00\x6f\x00\x6e\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ 92 | " 93 | 94 | qt_resource_struct = "\ 95 | \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ 96 | \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ 97 | \x00\x00\x00\x0e\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ 98 | " 99 | 100 | def qInitResources(): 101 | QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) 102 | 103 | def qCleanupResources(): 104 | QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) 105 | 106 | qInitResources() 107 | -------------------------------------------------------------------------------- /6.95/plugins/Code editor/icons/iconf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Resource object code 4 | # 5 | # Created by: The Resource Compiler for PyQt4 (Qt v4.8.7) 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore 10 | 11 | qt_resource_data = "\ 12 | \x00\x00\x04\x28\ 13 | \x89\ 14 | \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ 15 | \x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ 16 | \x00\x00\x03\xef\x49\x44\x41\x54\x78\x5e\xd5\x99\x7d\x4a\xe3\x40\ 17 | \x14\xc0\xad\x16\x44\x51\x12\x54\x44\x51\x4c\x44\xff\x50\x44\x9b\ 18 | \x7a\x81\xd5\x13\x34\x7b\x83\x78\x82\xcd\x9e\x60\x7b\x84\xf5\x06\ 19 | \xf1\x06\xe9\x09\x36\x5e\x40\x1b\x41\x54\xfc\x20\x11\x45\xf1\xab\ 20 | \x1d\x11\x45\xa8\xba\x2f\x4b\x35\x62\xe6\xb3\xd3\x90\xee\x83\xa1\ 21 | \xc2\xbc\x79\x33\xbf\xd7\xd7\x37\xef\x8d\xb9\xb7\xb7\xb7\xae\x5c\ 22 | \x2e\xd7\xd5\x8a\x2c\x2f\x2f\xff\x80\x8f\xdf\x0c\x35\x6f\x6b\x6b\ 23 | \x6b\xb5\x2b\x25\xc9\xcb\x2c\x06\xf8\x32\x87\xda\x4a\xb1\x58\xd4\ 24 | \xb6\xb7\xb7\xc3\x8e\x02\x30\x0c\xa3\x04\x00\x2a\xa7\xba\x0d\xe3\ 25 | \x67\x47\x01\xc0\xe1\x4d\x01\x75\xf3\x7f\x07\xd0\x97\x96\x96\x0a\ 26 | \x3b\x3b\x3b\x7e\x47\x00\x2c\x2e\x2e\xc6\xe1\xc3\x2f\x56\x1a\x61\ 27 | \x94\x6f\xd1\xfb\x56\x3c\x91\x2d\x80\x70\x1a\x5d\x58\x58\x50\xe0\ 28 | \xa3\x4e\x51\x09\x60\xe8\x84\x39\x73\x77\x77\xb7\x92\x5d\x08\xb1\ 29 | \x63\xbf\xda\x1c\x16\xe5\xc7\xdc\xd1\x00\x5e\x34\x68\x00\xf3\xf3\ 30 | \xf3\xf6\xde\xde\x1e\xca\x04\x60\x6e\x6e\x4e\x61\x00\x38\xfb\xfb\ 31 | \xfb\x3e\xe8\x91\xe6\xd5\x66\x4a\xdd\xc8\x00\x80\xe9\xfd\xfa\xc1\ 32 | \xc1\x81\xdf\xd4\x73\xe1\x03\xab\x9b\x29\xc0\xeb\xeb\xab\x4d\x99\ 33 | \x76\x3f\xe9\x51\x01\x32\x49\xa3\xb3\xb3\xb3\x1a\x78\xd6\xa0\x03\ 34 | \xc4\x30\xa0\x8b\xfd\x96\x20\xe3\x65\x01\xc0\xbe\x79\xe1\x60\xde\ 35 | \xfb\xc4\xe1\xe1\x21\x9a\x99\x99\x89\xb2\x91\xf1\xe5\xf0\x06\xcc\ 36 | \x85\x59\x01\x58\x34\xef\x1f\x1f\x1f\xa3\x2f\xfa\xce\xe7\x52\x3b\ 37 | \xf2\xfc\xd1\xd1\x51\x98\xc9\x4d\x3c\x3d\x3d\xcd\x0a\x1f\x0f\x07\ 38 | \x05\x10\xef\x00\xce\xc9\xc9\xc9\x66\x06\xc5\x1c\xc3\xfb\xb1\x77\ 39 | \xdd\xaf\x13\x70\xe0\x50\xd7\xf5\xf7\x5b\x39\x9e\xef\x40\x80\x6a\ 40 | \x10\x04\x21\x01\x3c\x02\xb3\xc2\x30\x4c\xdc\xbe\x9a\xa6\x29\xcd\ 41 | \xb2\x43\xc5\xd9\x84\x35\xc5\xb6\x00\x4c\x4d\x4d\x15\x00\x40\xa7\ 42 | \xa8\x38\x14\x70\x87\x91\x14\x48\x15\xad\x01\xfb\x7e\x3b\x3d\x3d\ 43 | \xdd\x64\x03\xc8\x57\x9e\x1e\x69\x02\x0e\xe0\xc3\x41\xca\x2d\xda\ 44 | \x8d\xe6\xd9\x00\x92\xe9\x33\x38\x3b\x3b\xa3\x36\x29\x00\x91\xa8\ 45 | \x7b\x26\x27\x27\x35\x00\x58\xe1\xe8\xe2\xd6\xa4\x00\x26\x26\x26\ 46 | \x58\xe1\xe3\xa6\xd8\xcd\xa9\xb0\x7f\xe9\xfc\xfc\xbc\x42\x05\x60\ 47 | \x6c\x64\x33\x36\x71\xda\xd8\x10\xd5\x61\xa8\x98\x30\xa2\x03\xc8\ 48 | \x14\x6f\x17\x17\x17\xc2\x3d\xee\xf8\xf8\x38\xe9\x4e\x29\x63\xde\ 49 | \x98\x4c\xd0\x57\x60\x1f\x24\x0c\x30\x36\x36\xc6\xea\x7b\xeb\xa0\ 50 | \xf3\x8b\x16\x5e\x97\x97\x97\x3e\xa7\xf7\xab\xa0\xbb\x0e\xf6\x22\ 51 | \x08\x55\xa4\x7a\xcd\x4b\xc4\xa9\x0e\xa3\xcc\x0a\x2f\x4e\x00\xaf\ 52 | \x39\xe7\x61\xaa\x55\x4b\x1e\x40\x5c\xaa\x57\x57\x57\x89\xcb\x6d\ 53 | \x74\x74\x94\x94\x14\x1c\x4a\x1f\xb1\x02\xeb\xb4\xc8\x1e\x37\xc0\ 54 | \xc8\xc8\x48\x09\x6a\x7a\x55\x02\xc0\x21\xf4\x13\xd8\x1f\xef\xcd\ 55 | \xcd\xcd\x47\x23\x04\x83\x94\x52\xd7\x29\x00\xe2\xcf\x26\x8c\xda\ 56 | \x88\x14\x3e\x26\x2d\x15\x5f\x5f\x5f\xa3\xe1\xe1\x61\x2f\xf2\x7a\ 57 | \x22\x8c\x78\x01\x86\x86\x86\x14\xc9\xf0\x71\x6f\x6f\x6f\x11\xc6\ 58 | \x6e\x89\x10\x3e\x6e\xa2\x7e\x4a\x02\x18\xb0\xbe\x70\x77\x77\xe7\ 59 | \x33\x01\x38\x0e\x1f\x80\x87\x03\xca\xbc\x88\xf7\xeb\xb5\x5a\xad\ 60 | \x82\x2b\xc3\xc9\x0f\x63\xf2\x00\x65\xd8\x74\x43\xe2\xf6\xa5\xd6\ 61 | \x51\xe0\xe5\x50\x55\xd5\xb8\x9b\x8b\xc5\x64\x02\x28\x20\x1c\xad\ 62 | \xa3\x70\xf9\x00\x66\x49\x77\x4a\x6c\x8b\xd4\xcd\xc5\xa2\x83\x9d\ 63 | \x02\x42\xc8\x4f\x00\x08\x54\x88\x2e\x02\x91\xf0\x3e\xdd\x19\xec\ 64 | \x30\xb2\x61\xac\xc9\x00\x08\x7b\x7f\x70\x70\x50\x21\xd8\x75\xef\ 65 | \xef\xef\xb1\xce\x40\x08\x85\xb0\x0e\xf7\xc6\x6a\x12\x01\x06\x06\ 66 | \x06\x30\x35\x8a\x7c\xf8\x50\x42\xd2\x80\x3d\xff\x90\xc0\x09\x21\ 67 | \xa7\xc2\x9a\xd2\xc3\xc3\x43\x25\x06\xe0\xcf\x3e\x2e\x2c\x44\x6d\ 68 | \x04\xd0\x9b\x83\x22\xec\x07\xe2\x7c\x9a\xe1\xd3\xdf\xdf\x9f\x4c\ 69 | \x0a\xf2\x62\x81\x5d\xfb\xf1\xf1\x11\x7d\x00\xf4\xf5\xf5\xa5\x1c\ 70 | \x3e\xf2\x42\xaa\x50\xf3\x9c\x8d\x8b\xfb\xf4\xf4\xd4\x4a\xf8\xd8\ 71 | \x9c\x7d\x34\xed\x35\xdb\xe0\x01\xa0\xc5\x62\x3d\xce\xc9\xfc\xd2\ 72 | \xdb\xdb\x4b\x4a\x0a\xd5\xe7\xe7\xe7\x55\x01\x3b\x35\x5c\x8f\x10\ 73 | \xd9\x07\x3b\xe1\x3f\x00\x30\xf8\x9d\x65\x48\x3e\x7c\xd8\x6d\x28\ 74 | \xed\x6d\x89\x54\xa1\x02\x80\xbc\x08\x56\xb4\xae\x20\x80\x47\x00\ 75 | \xb0\x52\x03\xe8\xe9\xe9\xd1\xa0\xf6\xc7\x86\xcf\xcb\xcb\x4b\xc8\ 76 | \x0b\xc0\xe8\x11\x8c\x68\x9f\x7c\x4a\xde\xb7\xdb\xf5\x8a\xd1\x68\ 77 | \x34\x50\x77\x77\x37\xe9\x1f\x26\xb6\x04\x80\x44\xed\x23\x6e\x8f\ 78 | \x04\x60\xa6\x00\x40\xcc\x6a\x1e\x80\x31\xc3\x87\x52\xdc\xe1\xde\ 79 | \x8d\xf4\xbf\x17\x73\x56\xa3\x99\xa0\x5b\xa0\x00\x00\x00\x00\x49\ 80 | \x45\x4e\x44\xae\x42\x60\x82\ 81 | " 82 | 83 | qt_resource_name = "\ 84 | \x00\x04\ 85 | \x00\x06\xfa\x24\ 86 | \x00\x69\ 87 | \x00\x63\x00\x6f\x00\x34\ 88 | \x00\x08\ 89 | \x06\x57\x5a\xe7\ 90 | \x00\x66\ 91 | \x00\x6f\x00\x6e\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ 92 | " 93 | 94 | qt_resource_struct = "\ 95 | \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ 96 | \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ 97 | \x00\x00\x00\x0e\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ 98 | " 99 | 100 | def qInitResources(): 101 | QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) 102 | 103 | def qCleanupResources(): 104 | QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) 105 | 106 | qInitResources() 107 | -------------------------------------------------------------------------------- /7.0/plugins/Code editor/icons/iconf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Resource object code 4 | # 5 | # Created by: The Resource Compiler for PyQt4 (Qt v4.8.7) 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore 10 | 11 | qt_resource_data = "\ 12 | \x00\x00\x04\x28\ 13 | \x89\ 14 | \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ 15 | \x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ 16 | \x00\x00\x03\xef\x49\x44\x41\x54\x78\x5e\xd5\x99\x7d\x4a\xe3\x40\ 17 | \x14\xc0\xad\x16\x44\x51\x12\x54\x44\x51\x4c\x44\xff\x50\x44\x9b\ 18 | \x7a\x81\xd5\x13\x34\x7b\x83\x78\x82\xcd\x9e\x60\x7b\x84\xf5\x06\ 19 | \xf1\x06\xe9\x09\x36\x5e\x40\x1b\x41\x54\xfc\x20\x11\x45\xf1\xab\ 20 | \x1d\x11\x45\xa8\xba\x2f\x4b\x35\x62\xe6\xb3\xd3\x90\xee\x83\xa1\ 21 | \xc2\xbc\x79\x33\xbf\xd7\xd7\x37\xef\x8d\xb9\xb7\xb7\xb7\xae\x5c\ 22 | \x2e\xd7\xd5\x8a\x2c\x2f\x2f\xff\x80\x8f\xdf\x0c\x35\x6f\x6b\x6b\ 23 | \x6b\xb5\x2b\x25\xc9\xcb\x2c\x06\xf8\x32\x87\xda\x4a\xb1\x58\xd4\ 24 | \xb6\xb7\xb7\xc3\x8e\x02\x30\x0c\xa3\x04\x00\x2a\xa7\xba\x0d\xe3\ 25 | \x67\x47\x01\xc0\xe1\x4d\x01\x75\xf3\x7f\x07\xd0\x97\x96\x96\x0a\ 26 | \x3b\x3b\x3b\x7e\x47\x00\x2c\x2e\x2e\xc6\xe1\xc3\x2f\x56\x1a\x61\ 27 | \x94\x6f\xd1\xfb\x56\x3c\x91\x2d\x80\x70\x1a\x5d\x58\x58\x50\xe0\ 28 | \xa3\x4e\x51\x09\x60\xe8\x84\x39\x73\x77\x77\xb7\x92\x5d\x08\xb1\ 29 | \x63\xbf\xda\x1c\x16\xe5\xc7\xdc\xd1\x00\x5e\x34\x68\x00\xf3\xf3\ 30 | \xf3\xf6\xde\xde\x1e\xca\x04\x60\x6e\x6e\x4e\x61\x00\x38\xfb\xfb\ 31 | \xfb\x3e\xe8\x91\xe6\xd5\x66\x4a\xdd\xc8\x00\x80\xe9\xfd\xfa\xc1\ 32 | \xc1\x81\xdf\xd4\x73\xe1\x03\xab\x9b\x29\xc0\xeb\xeb\xab\x4d\x99\ 33 | \x76\x3f\xe9\x51\x01\x32\x49\xa3\xb3\xb3\xb3\x1a\x78\xd6\xa0\x03\ 34 | \xc4\x30\xa0\x8b\xfd\x96\x20\xe3\x65\x01\xc0\xbe\x79\xe1\x60\xde\ 35 | \xfb\xc4\xe1\xe1\x21\x9a\x99\x99\x89\xb2\x91\xf1\xe5\xf0\x06\xcc\ 36 | \x85\x59\x01\x58\x34\xef\x1f\x1f\x1f\xa3\x2f\xfa\xce\xe7\x52\x3b\ 37 | \xf2\xfc\xd1\xd1\x51\x98\xc9\x4d\x3c\x3d\x3d\xcd\x0a\x1f\x0f\x07\ 38 | \x05\x10\xef\x00\xce\xc9\xc9\xc9\x66\x06\xc5\x1c\xc3\xfb\xb1\x77\ 39 | \xdd\xaf\x13\x70\xe0\x50\xd7\xf5\xf7\x5b\x39\x9e\xef\x40\x80\x6a\ 40 | \x10\x04\x21\x01\x3c\x02\xb3\xc2\x30\x4c\xdc\xbe\x9a\xa6\x29\xcd\ 41 | \xb2\x43\xc5\xd9\x84\x35\xc5\xb6\x00\x4c\x4d\x4d\x15\x00\x40\xa7\ 42 | \xa8\x38\x14\x70\x87\x91\x14\x48\x15\xad\x01\xfb\x7e\x3b\x3d\x3d\ 43 | \xdd\x64\x03\xc8\x57\x9e\x1e\x69\x02\x0e\xe0\xc3\x41\xca\x2d\xda\ 44 | \x8d\xe6\xd9\x00\x92\xe9\x33\x38\x3b\x3b\xa3\x36\x29\x00\x91\xa8\ 45 | \x7b\x26\x27\x27\x35\x00\x58\xe1\xe8\xe2\xd6\xa4\x00\x26\x26\x26\ 46 | \x58\xe1\xe3\xa6\xd8\xcd\xa9\xb0\x7f\xe9\xfc\xfc\xbc\x42\x05\x60\ 47 | \x6c\x64\x33\x36\x71\xda\xd8\x10\xd5\x61\xa8\x98\x30\xa2\x03\xc8\ 48 | \x14\x6f\x17\x17\x17\xc2\x3d\xee\xf8\xf8\x38\xe9\x4e\x29\x63\xde\ 49 | \x98\x4c\xd0\x57\x60\x1f\x24\x0c\x30\x36\x36\xc6\xea\x7b\xeb\xa0\ 50 | \xf3\x8b\x16\x5e\x97\x97\x97\x3e\xa7\xf7\xab\xa0\xbb\x0e\xf6\x22\ 51 | \x08\x55\xa4\x7a\xcd\x4b\xc4\xa9\x0e\xa3\xcc\x0a\x2f\x4e\x00\xaf\ 52 | \x39\xe7\x61\xaa\x55\x4b\x1e\x40\x5c\xaa\x57\x57\x57\x89\xcb\x6d\ 53 | \x74\x74\x94\x94\x14\x1c\x4a\x1f\xb1\x02\xeb\xb4\xc8\x1e\x37\xc0\ 54 | \xc8\xc8\x48\x09\x6a\x7a\x55\x02\xc0\x21\xf4\x13\xd8\x1f\xef\xcd\ 55 | \xcd\xcd\x47\x23\x04\x83\x94\x52\xd7\x29\x00\xe2\xcf\x26\x8c\xda\ 56 | \x88\x14\x3e\x26\x2d\x15\x5f\x5f\x5f\xa3\xe1\xe1\x61\x2f\xf2\x7a\ 57 | \x22\x8c\x78\x01\x86\x86\x86\x14\xc9\xf0\x71\x6f\x6f\x6f\x11\xc6\ 58 | \x6e\x89\x10\x3e\x6e\xa2\x7e\x4a\x02\x18\xb0\xbe\x70\x77\x77\xe7\ 59 | \x33\x01\x38\x0e\x1f\x80\x87\x03\xca\xbc\x88\xf7\xeb\xb5\x5a\xad\ 60 | \x82\x2b\xc3\xc9\x0f\x63\xf2\x00\x65\xd8\x74\x43\xe2\xf6\xa5\xd6\ 61 | \x51\xe0\xe5\x50\x55\xd5\xb8\x9b\x8b\xc5\x64\x02\x28\x20\x1c\xad\ 62 | \xa3\x70\xf9\x00\x66\x49\x77\x4a\x6c\x8b\xd4\xcd\xc5\xa2\x83\x9d\ 63 | \x02\x42\xc8\x4f\x00\x08\x54\x88\x2e\x02\x91\xf0\x3e\xdd\x19\xec\ 64 | \x30\xb2\x61\xac\xc9\x00\x08\x7b\x7f\x70\x70\x50\x21\xd8\x75\xef\ 65 | \xef\xef\xb1\xce\x40\x08\x85\xb0\x0e\xf7\xc6\x6a\x12\x01\x06\x06\ 66 | \x06\x30\x35\x8a\x7c\xf8\x50\x42\xd2\x80\x3d\xff\x90\xc0\x09\x21\ 67 | \xa7\xc2\x9a\xd2\xc3\xc3\x43\x25\x06\xe0\xcf\x3e\x2e\x2c\x44\x6d\ 68 | \x04\xd0\x9b\x83\x22\xec\x07\xe2\x7c\x9a\xe1\xd3\xdf\xdf\x9f\x4c\ 69 | \x0a\xf2\x62\x81\x5d\xfb\xf1\xf1\x11\x7d\x00\xf4\xf5\xf5\xa5\x1c\ 70 | \x3e\xf2\x42\xaa\x50\xf3\x9c\x8d\x8b\xfb\xf4\xf4\xd4\x4a\xf8\xd8\ 71 | \x9c\x7d\x34\xed\x35\xdb\xe0\x01\xa0\xc5\x62\x3d\xce\xc9\xfc\xd2\ 72 | \xdb\xdb\x4b\x4a\x0a\xd5\xe7\xe7\xe7\x55\x01\x3b\x35\x5c\x8f\x10\ 73 | \xd9\x07\x3b\xe1\x3f\x00\x30\xf8\x9d\x65\x48\x3e\x7c\xd8\x6d\x28\ 74 | \xed\x6d\x89\x54\xa1\x02\x80\xbc\x08\x56\xb4\xae\x20\x80\x47\x00\ 75 | \xb0\x52\x03\xe8\xe9\xe9\xd1\xa0\xf6\xc7\x86\xcf\xcb\xcb\x4b\xc8\ 76 | \x0b\xc0\xe8\x11\x8c\x68\x9f\x7c\x4a\xde\xb7\xdb\xf5\x8a\xd1\x68\ 77 | \x34\x50\x77\x77\x37\xe9\x1f\x26\xb6\x04\x80\x44\xed\x23\x6e\x8f\ 78 | \x04\x60\xa6\x00\x40\xcc\x6a\x1e\x80\x31\xc3\x87\x52\xdc\xe1\xde\ 79 | \x8d\xf4\xbf\x17\x73\x56\xa3\x99\xa0\x5b\xa0\x00\x00\x00\x00\x49\ 80 | \x45\x4e\x44\xae\x42\x60\x82\ 81 | " 82 | 83 | qt_resource_name = "\ 84 | \x00\x04\ 85 | \x00\x06\xfa\x24\ 86 | \x00\x69\ 87 | \x00\x63\x00\x6f\x00\x34\ 88 | \x00\x08\ 89 | \x06\x57\x5a\xe7\ 90 | \x00\x66\ 91 | \x00\x6f\x00\x6e\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ 92 | " 93 | 94 | qt_resource_struct = "\ 95 | \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ 96 | \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ 97 | \x00\x00\x00\x0e\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ 98 | " 99 | 100 | def qInitResources(): 101 | QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) 102 | 103 | def qCleanupResources(): 104 | QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) 105 | 106 | qInitResources() 107 | -------------------------------------------------------------------------------- /7.2/plugins/Code editor/icons/iconf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Resource object code 4 | # 5 | # Created by: The Resource Compiler for PyQt4 (Qt v4.8.7) 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore 10 | 11 | qt_resource_data = "\ 12 | \x00\x00\x04\x28\ 13 | \x89\ 14 | \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ 15 | \x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ 16 | \x00\x00\x03\xef\x49\x44\x41\x54\x78\x5e\xd5\x99\x7d\x4a\xe3\x40\ 17 | \x14\xc0\xad\x16\x44\x51\x12\x54\x44\x51\x4c\x44\xff\x50\x44\x9b\ 18 | \x7a\x81\xd5\x13\x34\x7b\x83\x78\x82\xcd\x9e\x60\x7b\x84\xf5\x06\ 19 | \xf1\x06\xe9\x09\x36\x5e\x40\x1b\x41\x54\xfc\x20\x11\x45\xf1\xab\ 20 | \x1d\x11\x45\xa8\xba\x2f\x4b\x35\x62\xe6\xb3\xd3\x90\xee\x83\xa1\ 21 | \xc2\xbc\x79\x33\xbf\xd7\xd7\x37\xef\x8d\xb9\xb7\xb7\xb7\xae\x5c\ 22 | \x2e\xd7\xd5\x8a\x2c\x2f\x2f\xff\x80\x8f\xdf\x0c\x35\x6f\x6b\x6b\ 23 | \x6b\xb5\x2b\x25\xc9\xcb\x2c\x06\xf8\x32\x87\xda\x4a\xb1\x58\xd4\ 24 | \xb6\xb7\xb7\xc3\x8e\x02\x30\x0c\xa3\x04\x00\x2a\xa7\xba\x0d\xe3\ 25 | \x67\x47\x01\xc0\xe1\x4d\x01\x75\xf3\x7f\x07\xd0\x97\x96\x96\x0a\ 26 | \x3b\x3b\x3b\x7e\x47\x00\x2c\x2e\x2e\xc6\xe1\xc3\x2f\x56\x1a\x61\ 27 | \x94\x6f\xd1\xfb\x56\x3c\x91\x2d\x80\x70\x1a\x5d\x58\x58\x50\xe0\ 28 | \xa3\x4e\x51\x09\x60\xe8\x84\x39\x73\x77\x77\xb7\x92\x5d\x08\xb1\ 29 | \x63\xbf\xda\x1c\x16\xe5\xc7\xdc\xd1\x00\x5e\x34\x68\x00\xf3\xf3\ 30 | \xf3\xf6\xde\xde\x1e\xca\x04\x60\x6e\x6e\x4e\x61\x00\x38\xfb\xfb\ 31 | \xfb\x3e\xe8\x91\xe6\xd5\x66\x4a\xdd\xc8\x00\x80\xe9\xfd\xfa\xc1\ 32 | \xc1\x81\xdf\xd4\x73\xe1\x03\xab\x9b\x29\xc0\xeb\xeb\xab\x4d\x99\ 33 | \x76\x3f\xe9\x51\x01\x32\x49\xa3\xb3\xb3\xb3\x1a\x78\xd6\xa0\x03\ 34 | \xc4\x30\xa0\x8b\xfd\x96\x20\xe3\x65\x01\xc0\xbe\x79\xe1\x60\xde\ 35 | \xfb\xc4\xe1\xe1\x21\x9a\x99\x99\x89\xb2\x91\xf1\xe5\xf0\x06\xcc\ 36 | \x85\x59\x01\x58\x34\xef\x1f\x1f\x1f\xa3\x2f\xfa\xce\xe7\x52\x3b\ 37 | \xf2\xfc\xd1\xd1\x51\x98\xc9\x4d\x3c\x3d\x3d\xcd\x0a\x1f\x0f\x07\ 38 | \x05\x10\xef\x00\xce\xc9\xc9\xc9\x66\x06\xc5\x1c\xc3\xfb\xb1\x77\ 39 | \xdd\xaf\x13\x70\xe0\x50\xd7\xf5\xf7\x5b\x39\x9e\xef\x40\x80\x6a\ 40 | \x10\x04\x21\x01\x3c\x02\xb3\xc2\x30\x4c\xdc\xbe\x9a\xa6\x29\xcd\ 41 | \xb2\x43\xc5\xd9\x84\x35\xc5\xb6\x00\x4c\x4d\x4d\x15\x00\x40\xa7\ 42 | \xa8\x38\x14\x70\x87\x91\x14\x48\x15\xad\x01\xfb\x7e\x3b\x3d\x3d\ 43 | \xdd\x64\x03\xc8\x57\x9e\x1e\x69\x02\x0e\xe0\xc3\x41\xca\x2d\xda\ 44 | \x8d\xe6\xd9\x00\x92\xe9\x33\x38\x3b\x3b\xa3\x36\x29\x00\x91\xa8\ 45 | \x7b\x26\x27\x27\x35\x00\x58\xe1\xe8\xe2\xd6\xa4\x00\x26\x26\x26\ 46 | \x58\xe1\xe3\xa6\xd8\xcd\xa9\xb0\x7f\xe9\xfc\xfc\xbc\x42\x05\x60\ 47 | \x6c\x64\x33\x36\x71\xda\xd8\x10\xd5\x61\xa8\x98\x30\xa2\x03\xc8\ 48 | \x14\x6f\x17\x17\x17\xc2\x3d\xee\xf8\xf8\x38\xe9\x4e\x29\x63\xde\ 49 | \x98\x4c\xd0\x57\x60\x1f\x24\x0c\x30\x36\x36\xc6\xea\x7b\xeb\xa0\ 50 | \xf3\x8b\x16\x5e\x97\x97\x97\x3e\xa7\xf7\xab\xa0\xbb\x0e\xf6\x22\ 51 | \x08\x55\xa4\x7a\xcd\x4b\xc4\xa9\x0e\xa3\xcc\x0a\x2f\x4e\x00\xaf\ 52 | \x39\xe7\x61\xaa\x55\x4b\x1e\x40\x5c\xaa\x57\x57\x57\x89\xcb\x6d\ 53 | \x74\x74\x94\x94\x14\x1c\x4a\x1f\xb1\x02\xeb\xb4\xc8\x1e\x37\xc0\ 54 | \xc8\xc8\x48\x09\x6a\x7a\x55\x02\xc0\x21\xf4\x13\xd8\x1f\xef\xcd\ 55 | \xcd\xcd\x47\x23\x04\x83\x94\x52\xd7\x29\x00\xe2\xcf\x26\x8c\xda\ 56 | \x88\x14\x3e\x26\x2d\x15\x5f\x5f\x5f\xa3\xe1\xe1\x61\x2f\xf2\x7a\ 57 | \x22\x8c\x78\x01\x86\x86\x86\x14\xc9\xf0\x71\x6f\x6f\x6f\x11\xc6\ 58 | \x6e\x89\x10\x3e\x6e\xa2\x7e\x4a\x02\x18\xb0\xbe\x70\x77\x77\xe7\ 59 | \x33\x01\x38\x0e\x1f\x80\x87\x03\xca\xbc\x88\xf7\xeb\xb5\x5a\xad\ 60 | \x82\x2b\xc3\xc9\x0f\x63\xf2\x00\x65\xd8\x74\x43\xe2\xf6\xa5\xd6\ 61 | \x51\xe0\xe5\x50\x55\xd5\xb8\x9b\x8b\xc5\x64\x02\x28\x20\x1c\xad\ 62 | \xa3\x70\xf9\x00\x66\x49\x77\x4a\x6c\x8b\xd4\xcd\xc5\xa2\x83\x9d\ 63 | \x02\x42\xc8\x4f\x00\x08\x54\x88\x2e\x02\x91\xf0\x3e\xdd\x19\xec\ 64 | \x30\xb2\x61\xac\xc9\x00\x08\x7b\x7f\x70\x70\x50\x21\xd8\x75\xef\ 65 | \xef\xef\xb1\xce\x40\x08\x85\xb0\x0e\xf7\xc6\x6a\x12\x01\x06\x06\ 66 | \x06\x30\x35\x8a\x7c\xf8\x50\x42\xd2\x80\x3d\xff\x90\xc0\x09\x21\ 67 | \xa7\xc2\x9a\xd2\xc3\xc3\x43\x25\x06\xe0\xcf\x3e\x2e\x2c\x44\x6d\ 68 | \x04\xd0\x9b\x83\x22\xec\x07\xe2\x7c\x9a\xe1\xd3\xdf\xdf\x9f\x4c\ 69 | \x0a\xf2\x62\x81\x5d\xfb\xf1\xf1\x11\x7d\x00\xf4\xf5\xf5\xa5\x1c\ 70 | \x3e\xf2\x42\xaa\x50\xf3\x9c\x8d\x8b\xfb\xf4\xf4\xd4\x4a\xf8\xd8\ 71 | \x9c\x7d\x34\xed\x35\xdb\xe0\x01\xa0\xc5\x62\x3d\xce\xc9\xfc\xd2\ 72 | \xdb\xdb\x4b\x4a\x0a\xd5\xe7\xe7\xe7\x55\x01\x3b\x35\x5c\x8f\x10\ 73 | \xd9\x07\x3b\xe1\x3f\x00\x30\xf8\x9d\x65\x48\x3e\x7c\xd8\x6d\x28\ 74 | \xed\x6d\x89\x54\xa1\x02\x80\xbc\x08\x56\xb4\xae\x20\x80\x47\x00\ 75 | \xb0\x52\x03\xe8\xe9\xe9\xd1\xa0\xf6\xc7\x86\xcf\xcb\xcb\x4b\xc8\ 76 | \x0b\xc0\xe8\x11\x8c\x68\x9f\x7c\x4a\xde\xb7\xdb\xf5\x8a\xd1\x68\ 77 | \x34\x50\x77\x77\x37\xe9\x1f\x26\xb6\x04\x80\x44\xed\x23\x6e\x8f\ 78 | \x04\x60\xa6\x00\x40\xcc\x6a\x1e\x80\x31\xc3\x87\x52\xdc\xe1\xde\ 79 | \x8d\xf4\xbf\x17\x73\x56\xa3\x99\xa0\x5b\xa0\x00\x00\x00\x00\x49\ 80 | \x45\x4e\x44\xae\x42\x60\x82\ 81 | " 82 | 83 | qt_resource_name = "\ 84 | \x00\x04\ 85 | \x00\x06\xfa\x24\ 86 | \x00\x69\ 87 | \x00\x63\x00\x6f\x00\x34\ 88 | \x00\x08\ 89 | \x06\x57\x5a\xe7\ 90 | \x00\x66\ 91 | \x00\x6f\x00\x6e\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ 92 | " 93 | 94 | qt_resource_struct = "\ 95 | \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ 96 | \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ 97 | \x00\x00\x00\x0e\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ 98 | " 99 | 100 | def qInitResources(): 101 | QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) 102 | 103 | def qCleanupResources(): 104 | QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) 105 | 106 | qInitResources() 107 | -------------------------------------------------------------------------------- /7.5/Add to plugins folder/Code editor/icons/iconf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Resource object code 4 | # 5 | # Created by: The Resource Compiler for PyQt4 (Qt v4.8.7) 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore 10 | 11 | qt_resource_data = "\ 12 | \x00\x00\x04\x28\ 13 | \x89\ 14 | \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ 15 | \x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ 16 | \x00\x00\x03\xef\x49\x44\x41\x54\x78\x5e\xd5\x99\x7d\x4a\xe3\x40\ 17 | \x14\xc0\xad\x16\x44\x51\x12\x54\x44\x51\x4c\x44\xff\x50\x44\x9b\ 18 | \x7a\x81\xd5\x13\x34\x7b\x83\x78\x82\xcd\x9e\x60\x7b\x84\xf5\x06\ 19 | \xf1\x06\xe9\x09\x36\x5e\x40\x1b\x41\x54\xfc\x20\x11\x45\xf1\xab\ 20 | \x1d\x11\x45\xa8\xba\x2f\x4b\x35\x62\xe6\xb3\xd3\x90\xee\x83\xa1\ 21 | \xc2\xbc\x79\x33\xbf\xd7\xd7\x37\xef\x8d\xb9\xb7\xb7\xb7\xae\x5c\ 22 | \x2e\xd7\xd5\x8a\x2c\x2f\x2f\xff\x80\x8f\xdf\x0c\x35\x6f\x6b\x6b\ 23 | \x6b\xb5\x2b\x25\xc9\xcb\x2c\x06\xf8\x32\x87\xda\x4a\xb1\x58\xd4\ 24 | \xb6\xb7\xb7\xc3\x8e\x02\x30\x0c\xa3\x04\x00\x2a\xa7\xba\x0d\xe3\ 25 | \x67\x47\x01\xc0\xe1\x4d\x01\x75\xf3\x7f\x07\xd0\x97\x96\x96\x0a\ 26 | \x3b\x3b\x3b\x7e\x47\x00\x2c\x2e\x2e\xc6\xe1\xc3\x2f\x56\x1a\x61\ 27 | \x94\x6f\xd1\xfb\x56\x3c\x91\x2d\x80\x70\x1a\x5d\x58\x58\x50\xe0\ 28 | \xa3\x4e\x51\x09\x60\xe8\x84\x39\x73\x77\x77\xb7\x92\x5d\x08\xb1\ 29 | \x63\xbf\xda\x1c\x16\xe5\xc7\xdc\xd1\x00\x5e\x34\x68\x00\xf3\xf3\ 30 | \xf3\xf6\xde\xde\x1e\xca\x04\x60\x6e\x6e\x4e\x61\x00\x38\xfb\xfb\ 31 | \xfb\x3e\xe8\x91\xe6\xd5\x66\x4a\xdd\xc8\x00\x80\xe9\xfd\xfa\xc1\ 32 | \xc1\x81\xdf\xd4\x73\xe1\x03\xab\x9b\x29\xc0\xeb\xeb\xab\x4d\x99\ 33 | \x76\x3f\xe9\x51\x01\x32\x49\xa3\xb3\xb3\xb3\x1a\x78\xd6\xa0\x03\ 34 | \xc4\x30\xa0\x8b\xfd\x96\x20\xe3\x65\x01\xc0\xbe\x79\xe1\x60\xde\ 35 | \xfb\xc4\xe1\xe1\x21\x9a\x99\x99\x89\xb2\x91\xf1\xe5\xf0\x06\xcc\ 36 | \x85\x59\x01\x58\x34\xef\x1f\x1f\x1f\xa3\x2f\xfa\xce\xe7\x52\x3b\ 37 | \xf2\xfc\xd1\xd1\x51\x98\xc9\x4d\x3c\x3d\x3d\xcd\x0a\x1f\x0f\x07\ 38 | \x05\x10\xef\x00\xce\xc9\xc9\xc9\x66\x06\xc5\x1c\xc3\xfb\xb1\x77\ 39 | \xdd\xaf\x13\x70\xe0\x50\xd7\xf5\xf7\x5b\x39\x9e\xef\x40\x80\x6a\ 40 | \x10\x04\x21\x01\x3c\x02\xb3\xc2\x30\x4c\xdc\xbe\x9a\xa6\x29\xcd\ 41 | \xb2\x43\xc5\xd9\x84\x35\xc5\xb6\x00\x4c\x4d\x4d\x15\x00\x40\xa7\ 42 | \xa8\x38\x14\x70\x87\x91\x14\x48\x15\xad\x01\xfb\x7e\x3b\x3d\x3d\ 43 | \xdd\x64\x03\xc8\x57\x9e\x1e\x69\x02\x0e\xe0\xc3\x41\xca\x2d\xda\ 44 | \x8d\xe6\xd9\x00\x92\xe9\x33\x38\x3b\x3b\xa3\x36\x29\x00\x91\xa8\ 45 | \x7b\x26\x27\x27\x35\x00\x58\xe1\xe8\xe2\xd6\xa4\x00\x26\x26\x26\ 46 | \x58\xe1\xe3\xa6\xd8\xcd\xa9\xb0\x7f\xe9\xfc\xfc\xbc\x42\x05\x60\ 47 | \x6c\x64\x33\x36\x71\xda\xd8\x10\xd5\x61\xa8\x98\x30\xa2\x03\xc8\ 48 | \x14\x6f\x17\x17\x17\xc2\x3d\xee\xf8\xf8\x38\xe9\x4e\x29\x63\xde\ 49 | \x98\x4c\xd0\x57\x60\x1f\x24\x0c\x30\x36\x36\xc6\xea\x7b\xeb\xa0\ 50 | \xf3\x8b\x16\x5e\x97\x97\x97\x3e\xa7\xf7\xab\xa0\xbb\x0e\xf6\x22\ 51 | \x08\x55\xa4\x7a\xcd\x4b\xc4\xa9\x0e\xa3\xcc\x0a\x2f\x4e\x00\xaf\ 52 | \x39\xe7\x61\xaa\x55\x4b\x1e\x40\x5c\xaa\x57\x57\x57\x89\xcb\x6d\ 53 | \x74\x74\x94\x94\x14\x1c\x4a\x1f\xb1\x02\xeb\xb4\xc8\x1e\x37\xc0\ 54 | \xc8\xc8\x48\x09\x6a\x7a\x55\x02\xc0\x21\xf4\x13\xd8\x1f\xef\xcd\ 55 | \xcd\xcd\x47\x23\x04\x83\x94\x52\xd7\x29\x00\xe2\xcf\x26\x8c\xda\ 56 | \x88\x14\x3e\x26\x2d\x15\x5f\x5f\x5f\xa3\xe1\xe1\x61\x2f\xf2\x7a\ 57 | \x22\x8c\x78\x01\x86\x86\x86\x14\xc9\xf0\x71\x6f\x6f\x6f\x11\xc6\ 58 | \x6e\x89\x10\x3e\x6e\xa2\x7e\x4a\x02\x18\xb0\xbe\x70\x77\x77\xe7\ 59 | \x33\x01\x38\x0e\x1f\x80\x87\x03\xca\xbc\x88\xf7\xeb\xb5\x5a\xad\ 60 | \x82\x2b\xc3\xc9\x0f\x63\xf2\x00\x65\xd8\x74\x43\xe2\xf6\xa5\xd6\ 61 | \x51\xe0\xe5\x50\x55\xd5\xb8\x9b\x8b\xc5\x64\x02\x28\x20\x1c\xad\ 62 | \xa3\x70\xf9\x00\x66\x49\x77\x4a\x6c\x8b\xd4\xcd\xc5\xa2\x83\x9d\ 63 | \x02\x42\xc8\x4f\x00\x08\x54\x88\x2e\x02\x91\xf0\x3e\xdd\x19\xec\ 64 | \x30\xb2\x61\xac\xc9\x00\x08\x7b\x7f\x70\x70\x50\x21\xd8\x75\xef\ 65 | \xef\xef\xb1\xce\x40\x08\x85\xb0\x0e\xf7\xc6\x6a\x12\x01\x06\x06\ 66 | \x06\x30\x35\x8a\x7c\xf8\x50\x42\xd2\x80\x3d\xff\x90\xc0\x09\x21\ 67 | \xa7\xc2\x9a\xd2\xc3\xc3\x43\x25\x06\xe0\xcf\x3e\x2e\x2c\x44\x6d\ 68 | \x04\xd0\x9b\x83\x22\xec\x07\xe2\x7c\x9a\xe1\xd3\xdf\xdf\x9f\x4c\ 69 | \x0a\xf2\x62\x81\x5d\xfb\xf1\xf1\x11\x7d\x00\xf4\xf5\xf5\xa5\x1c\ 70 | \x3e\xf2\x42\xaa\x50\xf3\x9c\x8d\x8b\xfb\xf4\xf4\xd4\x4a\xf8\xd8\ 71 | \x9c\x7d\x34\xed\x35\xdb\xe0\x01\xa0\xc5\x62\x3d\xce\xc9\xfc\xd2\ 72 | \xdb\xdb\x4b\x4a\x0a\xd5\xe7\xe7\xe7\x55\x01\x3b\x35\x5c\x8f\x10\ 73 | \xd9\x07\x3b\xe1\x3f\x00\x30\xf8\x9d\x65\x48\x3e\x7c\xd8\x6d\x28\ 74 | \xed\x6d\x89\x54\xa1\x02\x80\xbc\x08\x56\xb4\xae\x20\x80\x47\x00\ 75 | \xb0\x52\x03\xe8\xe9\xe9\xd1\xa0\xf6\xc7\x86\xcf\xcb\xcb\x4b\xc8\ 76 | \x0b\xc0\xe8\x11\x8c\x68\x9f\x7c\x4a\xde\xb7\xdb\xf5\x8a\xd1\x68\ 77 | \x34\x50\x77\x77\x37\xe9\x1f\x26\xb6\x04\x80\x44\xed\x23\x6e\x8f\ 78 | \x04\x60\xa6\x00\x40\xcc\x6a\x1e\x80\x31\xc3\x87\x52\xdc\xe1\xde\ 79 | \x8d\xf4\xbf\x17\x73\x56\xa3\x99\xa0\x5b\xa0\x00\x00\x00\x00\x49\ 80 | \x45\x4e\x44\xae\x42\x60\x82\ 81 | " 82 | 83 | qt_resource_name = "\ 84 | \x00\x04\ 85 | \x00\x06\xfa\x24\ 86 | \x00\x69\ 87 | \x00\x63\x00\x6f\x00\x34\ 88 | \x00\x08\ 89 | \x06\x57\x5a\xe7\ 90 | \x00\x66\ 91 | \x00\x6f\x00\x6e\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ 92 | " 93 | 94 | qt_resource_struct = "\ 95 | \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ 96 | \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ 97 | \x00\x00\x00\x0e\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ 98 | " 99 | 100 | def qInitResources(): 101 | QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) 102 | 103 | def qCleanupResources(): 104 | QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) 105 | 106 | qInitResources() 107 | --------------------------------------------------------------------------------