diff options
author | Neil <nyamatongwe@gmail.com> | 2021-11-12 14:25:28 +1100 |
---|---|---|
committer | Neil <nyamatongwe@gmail.com> | 2021-11-12 14:25:28 +1100 |
commit | 8c1bb32d0fc980ff296e3f604fccf43fcbb53008 (patch) | |
tree | 95407d9b65c080ecec5067ddf5eeee93d87c975a /qt/ScintillaEditPy | |
parent | 516dd7b28b8b14ad26824a89dd3ba4fffd04cabe (diff) | |
download | scintilla-mirror-8c1bb32d0fc980ff296e3f604fccf43fcbb53008.tar.gz |
Remove ScintillaEditPy as its prerequisites are unsupported.
Diffstat (limited to 'qt/ScintillaEditPy')
-rw-r--r-- | qt/ScintillaEditPy/README | 87 | ||||
-rw-r--r-- | qt/ScintillaEditPy/ScintillaConstants.py.template | 6 | ||||
-rw-r--r-- | qt/ScintillaEditPy/ScintillaEditPy.pro | 128 | ||||
-rw-r--r-- | qt/ScintillaEditPy/global.h | 4 | ||||
-rw-r--r-- | qt/ScintillaEditPy/sepbuild.py | 345 | ||||
-rw-r--r-- | qt/ScintillaEditPy/testsepq.py | 157 | ||||
-rw-r--r-- | qt/ScintillaEditPy/typesystem_ScintillaEdit.xml.template | 65 |
7 files changed, 0 insertions, 792 deletions
diff --git a/qt/ScintillaEditPy/README b/qt/ScintillaEditPy/README deleted file mode 100644 index d0c653d20..000000000 --- a/qt/ScintillaEditPy/README +++ /dev/null @@ -1,87 +0,0 @@ -README for building of ScintillaEditPy on Qt with PySide
-
-This directory is for building a Python encapsulation of Scintilla for use
-with PySide. For C++ libraries see the README in the parent directory.
-
- Prerequisites
-
-PySide and ScintillaEditPy currently only support Python 2.x.
-
-CMake may be used to rebuild PySide and is required on Windows.
-It can be downloaded from
-http://www.cmake.org/cmake/resources/software.html
-
-On Windows, PySide only supports Visual C++ 2008. The "Visual Studio 2008
-Command Prompt" should be used to run all build commands.
-Visual C++ 2008 Express Edition can be downloaded from
-http://msdn.microsoft.com/en-us/express/future/bb421473
-
-Download and install PySide. Instructions are on the PySide web site
-http://developer.qt.nokia.com/wiki/Category:LanguageBindings::PySide::Downloads
-
-For Linux, there may be both PySide library packages and PySide development
-files. Both should be installed as ScintillaEditPy needs the headers and
-libraries from the development package and runs with the normal library package.
-On apt-based systems, the packages are libshiboken-dev, shiboken, libpyside-dev,
-and python-pyside. python-dev is also needed for Python language headers.
-On yum-based systems the packages are shiboken-devel, python-pyside-devel,
-and python-devel.
-The qmake program may be called qmake-qt5 or qmake-qt4.
-It can be found with:
-which qmake-qt5 || which qmake-qt4 || which qmake
-
-On Windows, the PySide library packages can be downloaded from
-http://developer.qt.nokia.com/wiki/PySide_Binaries_Windows
-The PySide development files must be built from source using CMake as
-described on the PySide site. This will create a Unix-style set of [bin, include,
-lib, and share] directories in packaging\setuptools\install-py<ver>-qt<qver>.
-There is no standard place for the PySide development files so copy them
-to "\usr", creating it if needed.
-
-On OS X, a combined package with PySide libraries and PySide development
-files can be downloaded from
-http://developer.qt.nokia.com/wiki/PySide_Binaries_MacOSX
-This package works best in combination with the Qt libraries for Mac from
-http://qt.nokia.com/downloads/downloads#qt-lib
-
-The path should be modified so that a Python 2.x interpreter and Qt's "qmake"
-program can be run by typing "python" or "qmake".
-
- Building
-
-There are several steps to building and they are encapsulated in the sepbuild.py
-script which is run:
-
-python sepbuild.py
-
-This script first runs the WidgetGen.py script to fill out the ScintillaEdit.h,
-ScintillaEdit.cpp and ScintillaConstants.py files.
-
-A short file "sepbuild.pri" is written out which contains a series of version and
-path properties discovered by sepbuild.py which are used by qmake.
-
-Then it runs PySide's "shiboken" program to create C++ code that will act as a
-bridge between Python and the C++ libraries. This code goes into the
-ScintillaEditPy/ScintillaEditPy directory. Several log files are produced which can
-help uncover problems in the bridge if it fails to build.
-
-The qmake program is run to produce make files from ScintillaEditPy.pro.
-
-The system make program is then run to build the library. The library is located in
-the scintilla/bin directory as ScintillaEditPy.so for Unix systems and
-ScintillaEditPy.pyd for Windows.
-
-A demonstration program can be run:
-
-python testsepq.py
-
-The individual steps in the script can be run manually if wanted although the
-shiboken program has complex arguments and differs between systems so run
-sepbuild.py and copy the section starting with a line containing "generatorrunner"
-and continuing to "typesystem_ScintillaEdit.xml".
-
-On Windows, it is more difficult to set up an environment to debug ScintillaEditPy
-since all the libraries have to be debug or all have to be release. The easy path
-is to always build for release with "nmake release".
-
-To remove generated code, run "python sepbuild.py --clean".
diff --git a/qt/ScintillaEditPy/ScintillaConstants.py.template b/qt/ScintillaEditPy/ScintillaConstants.py.template deleted file mode 100644 index 31b82398d..000000000 --- a/qt/ScintillaEditPy/ScintillaConstants.py.template +++ /dev/null @@ -1,6 +0,0 @@ -# ScintillaConstants.py -# Define all the symbolic constants from Scintilla.iface so Python code can use them -# Copyright (c) 2011 Archaeopteryx Software, Inc. d/b/a Wingware - -# ++Autogenerated -- start of section automatically generated from Scintilla.iface */ -# --Autogenerated -- end of section automatically generated from Scintilla.iface */ diff --git a/qt/ScintillaEditPy/ScintillaEditPy.pro b/qt/ScintillaEditPy/ScintillaEditPy.pro deleted file mode 100644 index 96f3ae8e7..000000000 --- a/qt/ScintillaEditPy/ScintillaEditPy.pro +++ /dev/null @@ -1,128 +0,0 @@ -TEMPLATE = lib -QT += core gui -greaterThan(QT_MAJOR_VERSION, 4): QT += widgets - -TARGET = ScintillaEditPy - -# Clear debug & release so that sepbuild.pri can set one or the other -CONFIG -= debug release -CONFIG += c++1z - -include(sepbuild.pri) - -VERSION = $$SCINTILLA_VERSION - -win32 { - DebugBuild { - TARGET_EXT = _d.pyd - } - else { - TARGET_EXT = .pyd - } -} - -INCLUDEPATH += ../ScintillaEdit -INCLUDEPATH += ../ScintillaEditBase -INCLUDEPATH += ../../include ../../lexlib ../../src - -INCLUDEPATH += $$PY_INCLUDES - -INCLUDEPATH += $$SHIBOKEN_INCLUDES -INCLUDEPATH += $$PYSIDE_INCLUDES -INCLUDEPATH += $$PYSIDE_INCLUDES/QtCore -INCLUDEPATH += $$PYSIDE_INCLUDES/QtGui - -unix:!mac { - LIBS += `pkg-config pyside --libs` -} -unix:linux-* { - # gcc on freebsd 9.2, at least, doesn't support -Wno-empty-body - # g++ 7.x has deprecated std::auto_ptr but that is used by code generated by Shiboken so - # turn off warning. - QMAKE_CXXFLAGS += -Wno-register -Wno-unused-parameter -Wno-empty-body -Wno-deprecated-declarations -Wno-deprecated-copy --std=gnu++17 - LIBS += -ldl -} - -macx { - # Only build for x64 for now - # QMAKE_CFLAGS = -arch i386 -arch x86_64 - # QMAKE_CXXFLAGS = -arch i386 -arch x86_64 - # QMAKE_LFLAGS = -arch i386 -arch x86_64 - LIBS += -L$$PY_LIBDIR -lpython$$PY_VERSION_SUFFIX - LIBS += -L$$PYSIDE_LIB -L$$SHIBOKEN_LIB - debug { - LIBS += -lshiboken-python$$PY_VERSION_SUFFIX-dbg - LIBS += -lpyside-python$$PY_VERSION_SUFFIX-dbg - } - else { - LIBS += -lshiboken-python$$PY_VERSION_SUFFIX - LIBS += -lpyside-python$$PY_VERSION_SUFFIX - } -} - -win32 { - DebugBuild { - DEFINES += DEBUG - LIBS += -lQtCored4 - } - else { - LIBS += -lQtCore - } - LIBS += -L$$PY_PREFIX/libs # Note python lib is pulled in via a #pragma - LIBS += -L$$PYSIDE_LIB -L$$SHIBOKEN_LIB - # PySide uses x.y suffix on Windows even though Python uses xy - DebugBuild { - LIBS += -lshiboken-python$${PY_VERSION}_d - LIBS += -lpyside-python$${PY_VERSION}_d - } - else { - LIBS += -lshiboken-python$${PY_VERSION} - LIBS += -lpyside-python$${PY_VERSION} - } -} - -# Wrapper sources; notifyheader commented out due to shiboken bug -SOURCES += \ - ScintillaEditPy/scintillaeditpy_module_wrapper.cpp \ - ScintillaEditPy/sci_notifyheader_wrapper.cpp \ - ScintillaEditPy/scnotification_wrapper.cpp \ - ScintillaEditPy/scintillaeditbase_wrapper.cpp \ - ScintillaEditPy/scintillaedit_wrapper.cpp \ - ScintillaEditPy/scintilladocument_wrapper.cpp - -# ScintillaEdit sources - -SOURCES += \ - ../ScintillaEdit/ScintillaEdit.cpp \ - ../ScintillaEdit/ScintillaDocument.cpp \ - ../ScintillaEditBase/PlatQt.cpp \ - ../ScintillaEditBase/ScintillaQt.cpp \ - ../ScintillaEditBase/ScintillaEditBase.cpp \ - $$files(../../src/*.cxx, false) \ - $$files(../../lexlib/*.cxx, false) \ - $$files(../../lexers/*.cxx, false) - - -# HEADERS is used to find what needs to be run through moc -HEADERS += \ - ../ScintillaEdit/ScintillaEdit.h \ - ../ScintillaEdit/ScintillaDocument.h \ - ../ScintillaEditBase/ScintillaQt.h \ - ../ScintillaEditBase/ScintillaEditBase.h - -DEFINES += SCINTILLA_QT=1 MAKING_LIBRARY=1 _CRT_SECURE_NO_DEPRECATE=1 -CONFIG(release, debug|release) { - DEFINES += NDEBUG=1 -} - -DESTDIR = ../../bin - -unix:!mac { - # Rename to not have 'lib' at start - QMAKE_POST_LINK += rm -rf ../../bin/ScintillaEditPy.so && ln -s libScintillaEditPy.so ../../bin/ScintillaEditPy.so -} - -macx { - # Rename to .so and not have 'lib' at start - QMAKE_POST_LINK += rm -rf ../../bin/ScintillaEditPy.so && ln -s libScintillaEditPy.dylib ../../bin/ScintillaEditPy.so -} diff --git a/qt/ScintillaEditPy/global.h b/qt/ScintillaEditPy/global.h deleted file mode 100644 index 8b4be843a..000000000 --- a/qt/ScintillaEditPy/global.h +++ /dev/null @@ -1,4 +0,0 @@ -#include "pyside_global.h" - -#include "ScintillaEditBase.h" -#include "ScintillaEdit.h" diff --git a/qt/ScintillaEditPy/sepbuild.py b/qt/ScintillaEditPy/sepbuild.py deleted file mode 100644 index 7eae634d9..000000000 --- a/qt/ScintillaEditPy/sepbuild.py +++ /dev/null @@ -1,345 +0,0 @@ -#!/usr/bin/env python2 -import distutils.sysconfig -import getopt -import glob -import os -import platform -import shutil -import subprocess -import stat -import sys - -# ScintillaEditPy can only be built against Python 2.x so fail if Python 3.x -assert sys.version_info < (3,0), "sepbuild.py requires Python 2.x" - -sys.path.append(os.path.join("..", "ScintillaEdit")) -import WidgetGen - -scintillaDirectory = "../.." -scintillaScriptsDirectory = os.path.join(scintillaDirectory, "scripts") -sys.path.append(scintillaScriptsDirectory) -from FileGenerator import GenerateFile - -# Decide up front which platform, treat anything other than Windows or OS X as Linux -PLAT_WINDOWS = platform.system() == "Windows" -PLAT_DARWIN = platform.system() == "Darwin" -PLAT_LINUX = not (PLAT_DARWIN or PLAT_WINDOWS) - -def IsFileNewer(name1, name2): - """ Returns whether file with name1 is newer than file with name2. Returns 1 - if name2 doesn't exist. """ - - if not os.path.exists(name1): - return 0 - - if not os.path.exists(name2): - return 1 - - mod_time1 = os.stat(name1)[stat.ST_MTIME] - mod_time2 = os.stat(name2)[stat.ST_MTIME] - return (mod_time1 > mod_time2) - -def textFromRun(args): - proc = subprocess.Popen(args, shell=isinstance(args, str), stdout=subprocess.PIPE) - (stdoutdata, stderrdata) = proc.communicate() - if proc.returncode: - print("Warning - failed to run '" + " ".join(args) + "'") - raise OSError(proc.returncode) - return stdoutdata - -def runProgram(args, exitOnFailure): - print(" ".join(args)) - retcode = subprocess.call(" ".join(args), shell=True, stderr=subprocess.STDOUT) - if retcode: - print("Failed in " + " ".join(args) + " return code = " + str(retcode)) - if exitOnFailure: - sys.exit() - -def usage(): - print("sepbuild.py [-h|--help][-c|--clean][-u|--underscore-names]") - print("") - print("Generate PySide wappers and build them.") - print("") - print("options:") - print("") - print("-c --clean remove all object and generated files") - print("-b --pyside-base Location of the PySide+Qt4 sandbox to use") - print("-h --help display this text") - print("-d --debug=yes|no force debug build (or non-debug build)") - print("-u --underscore-names use method_names consistent with GTK+ standards") - -modifyFunctionElement = """ <modify-function signature="%s">%s - </modify-function>""" - -injectCode = """ - <inject-code class="target" position="beginning">%s - </inject-code>""" - -injectCheckN = """ - if (!cppArg%d) { - PyErr_SetString(PyExc_ValueError, "Null string argument"); - return 0; - }""" - -def methodSignature(name, v, options): - argTypes = "" - p1Type = WidgetGen.cppAlias(v["Param1Type"]) - if p1Type == "int": - p1Type = "sptr_t" - if p1Type: - argTypes = argTypes + p1Type - p2Type = WidgetGen.cppAlias(v["Param2Type"]) - if p2Type == "int": - p2Type = "sptr_t" - if p2Type and v["Param2Type"] != "stringresult": - if p1Type: - argTypes = argTypes + ", " - argTypes = argTypes + p2Type - methodName = WidgetGen.normalisedName(name, options, v["FeatureType"]) - constDeclarator = " const" if v["FeatureType"] == "get" else "" - return methodName + "(" + argTypes + ")" + constDeclarator - -def printTypeSystemFile(f, options): - out = [] - for name in f.order: - v = f.features[name] - if v["Category"] != "Deprecated": - feat = v["FeatureType"] - if feat in ["fun", "get", "set"]: - checks = "" - if v["Param1Type"] == "string": - checks = checks + (injectCheckN % 0) - if v["Param2Type"] == "string": - if v["Param1Type"] == "": # Only arg 2 -> treat as first - checks = checks + (injectCheckN % 0) - else: - checks = checks + (injectCheckN % 1) - if checks: - inject = injectCode % checks - out.append(modifyFunctionElement % (methodSignature(name, v, options), inject)) - #if v["Param1Type"] == "string": - # out.append("<string-xml>" + name + "</string-xml>\n") - return out - -def doubleBackSlashes(s): - # Quote backslashes so qmake does not produce warnings - return s.replace("\\", "\\\\") - -class SepBuilder: - def __init__(self): - # Discover configuration parameters - self.ScintillaEditIncludes = [".", "../ScintillaEdit", "../ScintillaEditBase", "../../include"] - if PLAT_WINDOWS: - self.MakeCommand = "nmake" - self.MakeTarget = "release" - else: - self.MakeCommand = "make" - self.MakeTarget = "" - - if PLAT_DARWIN: - self.QMakeOptions = "-spec macx-g++" - else: - self.QMakeOptions = "" - - # Default to debug build if running in a debug build interpreter - self.DebugBuild = hasattr(sys, 'getobjects') - - # Python - self.PyVersion = "%d.%d" % sys.version_info[:2] - self.PyVersionSuffix = distutils.sysconfig.get_config_var("VERSION") - self.PyIncludes = distutils.sysconfig.get_python_inc() - self.PyPrefix = distutils.sysconfig.get_config_var("prefix") - self.PyLibDir = distutils.sysconfig.get_config_var( - ("LIBDEST" if sys.platform == 'win32' else "LIBDIR")) - - # Scintilla - with open("../../version.txt") as f: - version = f.read() - self.ScintillaVersion = version[0] + '.' + version[1] + '.' + version[2] - - # Find out what qmake is called - self.QMakeCommand = "qmake" - if not PLAT_WINDOWS: - # On Unix qmake may not be present but qmake-qt4 may be so check - pathToQMake = textFromRun("which qmake-qt4 || which qmake").rstrip() - self.QMakeCommand = os.path.basename(pathToQMake) - - # Qt default location from qmake - self._SetQtIncludeBase(textFromRun(self.QMakeCommand + " -query QT_INSTALL_HEADERS").rstrip()) - - # PySide default location - # No standard for installing PySide development headers and libs on Windows so - # choose /usr to be like Linux - self._setPySideBase('\\usr' if PLAT_WINDOWS else '/usr') - - self.ProInclude = "sepbuild.pri" - - self.qtStyleInterface = True - - def _setPySideBase(self, base): - - self.PySideBase = base - def _try_pkgconfig(var, package, *relpath): - try: - return textFromRun(["pkg-config", "--variable=" + var, package]).rstrip() - except OSError: - return os.path.join(self.PySideBase, *relpath) - self.PySideTypeSystem = _try_pkgconfig("typesystemdir", "pyside", - "share", "PySide", "typesystems") - self.PySideIncludeBase = _try_pkgconfig("includedir", "pyside", - "include", "PySide") - self.ShibokenIncludeBase = _try_pkgconfig("includedir", "shiboken", - "include", "shiboken") - self.PySideIncludes = [ - self.ShibokenIncludeBase, - self.PySideIncludeBase, - os.path.join(self.PySideIncludeBase, "QtCore"), - os.path.join(self.PySideIncludeBase, "QtGui")] - - self.PySideLibDir = _try_pkgconfig("libdir", "pyside", "lib") - self.ShibokenLibDir = _try_pkgconfig("libdir", "shiboken", "lib") - self.AllIncludes = os.pathsep.join(self.QtIncludes + self.ScintillaEditIncludes + self.PySideIncludes) - - self.ShibokenGenerator = "shiboken" - # Is this still needed? It doesn't work with latest shiboken sources - #if PLAT_DARWIN: - # # On OS X, can not automatically find Shiboken dylib so provide a full path - # self.ShibokenGenerator = os.path.join(self.PySideLibDir, "generatorrunner", "shiboken") - - def generateAPI(self, args): - os.chdir(os.path.join("..", "ScintillaEdit")) - if not self.qtStyleInterface: - args.insert(0, '--underscore-names') - WidgetGen.main(args) - f = WidgetGen.readInterface(False) - os.chdir(os.path.join("..", "ScintillaEditPy")) - options = {"qtStyle": self.qtStyleInterface} - GenerateFile("typesystem_ScintillaEdit.xml.template", "typesystem_ScintillaEdit.xml", - "<!-- ", True, printTypeSystemFile(f, options)) - - def runGenerator(self): - generatorrunner = "shiboken" - for name in ('shiboken', 'generatorrunner'): - if PLAT_WINDOWS: - name += '.exe' - name = os.path.join(self.PySideBase, "bin", name) - if os.path.exists(name): - generatorrunner = name - break - - args = [ - generatorrunner, - "--generator-set=" + self.ShibokenGenerator, - "global.h ", - "--avoid-protected-hack", - "--enable-pyside-extensions", - "--include-paths=" + self.AllIncludes, - "--typesystem-paths=" + self.PySideTypeSystem, - "--output-directory=.", - "typesystem_ScintillaEdit.xml"] - print(" ".join(args)) - retcode = subprocess.call(" ".join(args), shell=True, stderr=subprocess.STDOUT) - if retcode: - print("Error - failed in generatorrunner " + str(retcode)) - sys.exit() - - def writeVariables(self): - # Write variables needed into file to be included from project so it does not have to discover much - with open(self.ProInclude, "w") as f: - f.write("SCINTILLA_VERSION=" + self.ScintillaVersion + "\n") - f.write("PY_VERSION=" + self.PyVersion + "\n") - f.write("PY_VERSION_SUFFIX=" + self.PyVersionSuffix + "\n") - f.write("PY_PREFIX=" + doubleBackSlashes(self.PyPrefix) + "\n") - f.write("PY_INCLUDES=" + doubleBackSlashes(self.PyIncludes) + "\n") - f.write("PY_LIBDIR=" + doubleBackSlashes(self.PyLibDir) + "\n") - f.write("PYSIDE_INCLUDES=" + doubleBackSlashes(self.PySideIncludeBase) + "\n") - f.write("PYSIDE_LIB=" + doubleBackSlashes(self.PySideLibDir) + "\n") - f.write("SHIBOKEN_INCLUDES=" + doubleBackSlashes(self.ShibokenIncludeBase) + "\n") - f.write("SHIBOKEN_LIB=" + doubleBackSlashes(self.ShibokenLibDir) + "\n") - if self.DebugBuild: - f.write("CONFIG += debug\n") - else: - f.write("CONFIG += release\n") - - def make(self): - runProgram([self.QMakeCommand, self.QMakeOptions], exitOnFailure=True) - runProgram([self.MakeCommand, self.MakeTarget], exitOnFailure=True) - - def cleanEverything(self): - self.generateAPI(["--clean"]) - runProgram([self.MakeCommand, "distclean"], exitOnFailure=False) - filesToRemove = [self.ProInclude, "typesystem_ScintillaEdit.xml", - "../../bin/ScintillaEditPy.so", "../../bin/ScintillaConstants.py"] - for file in filesToRemove: - try: - os.remove(file) - except OSError: - pass - for logFile in glob.glob("*.log"): - try: - os.remove(logFile) - except OSError: - pass - shutil.rmtree("debug", ignore_errors=True) - shutil.rmtree("release", ignore_errors=True) - shutil.rmtree("ScintillaEditPy", ignore_errors=True) - - def buildEverything(self): - cleanGenerated = False - opts, args = getopt.getopt(sys.argv[1:], "hcdub", - ["help", "clean", "debug=", - "underscore-names", "pyside-base="]) - for opt, arg in opts: - if opt in ("-h", "--help"): - usage() - sys.exit() - elif opt in ("-c", "--clean"): - cleanGenerated = True - elif opt in ("-d", "--debug"): - self.DebugBuild = (arg == '' or arg.lower() == 'yes') - if self.DebugBuild and sys.platform == 'win32': - self.MakeTarget = 'debug' - elif opt in ("-b", '--pyside-base'): - self._SetQtIncludeBase(os.path.join(os.path.normpath(arg), 'include')) - self._setPySideBase(os.path.normpath(arg)) - elif opt in ("-u", "--underscore-names"): - self.qtStyleInterface = False - - if cleanGenerated: - self.cleanEverything() - else: - self.writeVariables() - self.generateAPI([""]) - self.runGenerator() - self.make() - self.copyScintillaConstants() - - def copyScintillaConstants(self): - - orig = 'ScintillaConstants.py' - dest = '../../bin/' + orig - if IsFileNewer(dest, orig): - return - - f = open(orig, 'r') - contents = f.read() - f.close() - - f = open(dest, 'w') - f.write(contents) - f.close() - - def _SetQtIncludeBase(self, base): - - self.QtIncludeBase = base - self.QtIncludes = [self.QtIncludeBase] + [os.path.join(self.QtIncludeBase, sub) for sub in ["QtCore", "QtGui"]] - # Set path so correct qmake is found - path = os.environ.get('PATH', '').split(os.pathsep) - qt_bin_dir = os.path.join(os.path.dirname(base), 'bin') - if qt_bin_dir not in path: - path.insert(0, qt_bin_dir) - os.environ['PATH'] = os.pathsep.join(path) - -if __name__ == "__main__": - sepBuild = SepBuilder() - sepBuild.buildEverything() diff --git a/qt/ScintillaEditPy/testsepq.py b/qt/ScintillaEditPy/testsepq.py deleted file mode 100644 index 26b05ef0a..000000000 --- a/qt/ScintillaEditPy/testsepq.py +++ /dev/null @@ -1,157 +0,0 @@ -#!/usr/bin/env python2 -# -*- coding: utf-8 -*- - -import sys - -from PySide.QtCore import * -from PySide.QtGui import * - -import ScintillaConstants as sci - -sys.path.append("../..") -from bin import ScintillaEditPy - -txtInit = "int main(int argc, char **argv) {\n" \ - " // Start up the gnome\n" \ - " gnome_init(\"stest\", \"1.0\", argc, argv);\n}\n"; - -keywords = \ - "and and_eq asm auto bitand bitor bool break " \ - "case catch char class compl const const_cast continue " \ - "default delete do double dynamic_cast else enum explicit export extern false float for " \ - "friend goto if inline int long mutable namespace new not not_eq " \ - "operator or or_eq private protected public " \ - "register reinterpret_cast return short signed sizeof static static_cast struct switch " \ - "template this throw true try typedef typeid typename union unsigned using " \ - "virtual void volatile wchar_t while xor xor_eq"; - -def uriDropped(): - print "uriDropped" - -class Form(QDialog): - - def __init__(self, parent=None): - super(Form, self).__init__(parent) - self.resize(460,300) - # Create widgets - self.edit = ScintillaEditPy.ScintillaEdit(self) - self.edit.uriDropped.connect(uriDropped) - self.edit.command.connect(self.receive_command) - self.edit.notify.connect(self.receive_notification) - - self.edit.styleClearAll() - self.edit.setMarginWidthN(0, 35) - self.edit.setScrollWidth(200) - self.edit.setScrollWidthTracking(1) - self.edit.setLexer(sci.SCLEX_CPP) - self.edit.styleSetFore(sci.SCE_C_COMMENT, 0x008000) - self.edit.styleSetFore(sci.SCE_C_COMMENTLINE, 0x008000) - self.edit.styleSetFore(sci.SCE_C_COMMENTDOC, 0x008040) - self.edit.styleSetItalic(sci.SCE_C_COMMENTDOC, 1) - self.edit.styleSetFore(sci.SCE_C_NUMBER, 0x808000) - self.edit.styleSetFore(sci.SCE_C_WORD, 0x800000) - self.edit.styleSetBold(sci.SCE_C_WORD, True) - self.edit.styleSetFore(sci.SCE_C_STRING, 0x800080) - self.edit.styleSetFore(sci.SCE_C_PREPROCESSOR, 0x008080) - self.edit.styleSetBold(sci.SCE_C_OPERATOR, True) - self.edit.setMultipleSelection(1) - self.edit.setVirtualSpaceOptions( - sci.SCVS_RECTANGULARSELECTION | sci.SCVS_USERACCESSIBLE) - self.edit.setAdditionalSelectionTyping(1) - - self.edit.styleSetFore(sci.STYLE_INDENTGUIDE, 0x808080) - self.edit.setIndentationGuides(sci.SC_IV_LOOKBOTH) - - self.edit.setKeyWords(0, keywords) - self.edit.addText(len(txtInit), txtInit) - self.edit.setSel(1,10) - retriever = str(self.edit.getLine(1)) - print(type(retriever), len(retriever)) - print('[' + retriever + ']') - someText = str(self.edit.textRange(2,5)) - print(len(someText), '[' + someText + ']') - someText = self.edit.getCurLine(100) - print(len(someText), '[' + someText + ']') - someText = self.edit.styleFont(1) - print(len(someText), '[' + someText + ']') - someText = self.edit.getSelText() - print(len(someText), '[' + someText + ']') - someText = self.edit.tag(1) - print(len(someText), '[' + someText + ']') - someText = self.edit.autoCCurrentText() - print(len(someText), '[' + someText + ']') - someText = self.edit.annotationText(1) - print(len(someText), '[' + someText + ']') - someText = self.edit.annotationStyles(1) - print(len(someText), '[' + someText + ']') - someText = self.edit.describeKeyWordSets() - print(len(someText), '[' + someText + ']') - someText = self.edit.propertyNames() - print(len(someText), '[' + someText + ']') - self.edit.setProperty("fold", "1") - someText = self.edit.property("fold") - print(len(someText), '[' + someText + ']') - someText = self.edit.propertyExpanded("fold") - print(len(someText), '[' + someText + ']') - someText = self.edit.lexerLanguage() - print(len(someText), '[' + someText + ']') - someText = self.edit.describeProperty("styling.within.preprocessor") - print(len(someText), '[' + someText + ']') - - xx = self.edit.findText(0, "main", 0, 25) - print(type(xx), xx) - print("isBold", self.edit.styleBold(sci.SCE_C_WORD)) - - # Retrieve the document and write into it - doc = self.edit.get_doc() - doc.insert_string(40, "***") - stars = doc.get_char_range(40,3) - assert stars == "***" - - # Create a new independent document and attach it to the editor - doc = ScintillaEditPy.ScintillaDocument() - doc.insert_string(0, "/***/\nif(a)\n") - self.edit.set_doc(doc) - self.edit.setLexer(sci.SCLEX_CPP) - - def Call(self, message, wParam=0, lParam=0): - return self.edit.send(message, wParam, lParam) - - def resizeEvent(self, e): - self.edit.resize(e.size().width(), e.size().height()) - - def receive_command(self, wParam, lParam): - # Show underline at start when focussed - notifyCode = wParam >> 16 - if (notifyCode == sci.SCEN_SETFOCUS) or (notifyCode == sci.SCEN_KILLFOCUS): - self.edit.setIndicatorCurrent(sci.INDIC_CONTAINER); - self.edit.indicatorClearRange(0, self.edit.length()) - if notifyCode == sci.SCEN_SETFOCUS: - self.edit.indicatorFillRange(0, 2); - - def receive_notification(self, scn): - if scn.nmhdr.code == sci.SCN_CHARADDED: - print "Char %02X" % scn.ch - elif scn.nmhdr.code == sci.SCN_SAVEPOINTREACHED: - print "Saved" - elif scn.nmhdr.code == sci.SCN_SAVEPOINTLEFT: - print "Unsaved" - elif scn.nmhdr.code == sci.SCN_MODIFIED: - print "Modified" - elif scn.nmhdr.code == sci.SCN_UPDATEUI: - print "Update UI" - elif scn.nmhdr.code == sci.SCN_PAINTED: - #print "Painted" - pass - else: - print "Notification", scn.nmhdr.code - pass - -if __name__ == '__main__': - # Create the Qt Application - app = QApplication(sys.argv) - # Create and show the form - form = Form() - form.show() - # Run the main Qt loop - sys.exit(app.exec_()) diff --git a/qt/ScintillaEditPy/typesystem_ScintillaEdit.xml.template b/qt/ScintillaEditPy/typesystem_ScintillaEdit.xml.template deleted file mode 100644 index f7196a274..000000000 --- a/qt/ScintillaEditPy/typesystem_ScintillaEdit.xml.template +++ /dev/null @@ -1,65 +0,0 @@ -<?xml version="1.0"?> -<typesystem package="ScintillaEditPy"> - <load-typesystem name="typesystem_core.xml" generate="no" /> - <load-typesystem name="typesystem_gui_common.xml" generate="no"/> - <primitive-type name="sptr_t"/> - <primitive-type name="uptr_t"/> - <value-type name="Sci_NotifyHeader" /> - <rejection class="Sci_NotifyHeader" field-name="hwndFrom" /> - <value-type name="SCNotification" /> - <object-type name="ScintillaEditBase" /> - <object-type name="ScintillaEdit"> - <!-- ++Autogenerated start of section automatically generated from Scintilla.iface --> - <!-- ~~Autogenerated end of section automatically generated from Scintilla.iface --> - - <!-- Custom implementation of get and set_margin_mask_n: mask is defined - as an int but is really a bitfield and the numeric value can be - greater than max value of an int --> - <modify-function signature="set_margin_mask_n(sptr_t, sptr_t)"> - <inject-code> - int margin = PyInt_AsLong(%PYARG_1); - if (margin == -1 && PyErr_Occurred()) - return NULL; - unsigned long mask = PyInt_AsUnsignedLongMask(%PYARG_2); - if (margin == -1 && PyErr_Occurred()) - return NULL; - - %CPPSELF->set_margin_mask_n(margin, static_cast<int>(mask)); - Py_RETURN_NONE; - </inject-code> - </modify-function> - <modify-function signature="get_margin_mask_n(sptr_t) const"> - <inject-code> - int margin = PyInt_AsLong(%PYARG_1); - if (margin == -1 && PyErr_Occurred()) - return NULL; - unsigned int mask = (unsigned int)%CPPSELF->get_margin_mask_n(margin); - %PYARG_0 = PyInt_FromSize_t(mask); - </inject-code> - </modify-function> - <modify-function signature="setMarginMaskN(sptr_t, sptr_t)"> - <inject-code> - int margin = PyInt_AsLong(%PYARG_1); - if (margin == -1 && PyErr_Occurred()) - return NULL; - unsigned long mask = PyInt_AsUnsignedLongMask(%PYARG_2); - if (margin == -1 && PyErr_Occurred()) - return NULL; - - %CPPSELF->setMarginMaskN(margin, static_cast<int>(mask)); - Py_RETURN_NONE; - </inject-code> - </modify-function> - <modify-function signature="marginMaskN(sptr_t) const"> - <inject-code> - int margin = PyInt_AsLong(%PYARG_1); - if (margin == -1 && PyErr_Occurred()) - return NULL; - unsigned int mask = (unsigned int)%CPPSELF->marginMaskN(margin); - %PYARG_0 = PyInt_FromSize_t(mask); - </inject-code> - </modify-function> - - </object-type> - <object-type name="ScintillaDocument" /> -</typesystem> |