diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
index 1f6e024b1..c77d30ab5 100644
--- a/.github/ISSUE_TEMPLATE.md
+++ b/.github/ISSUE_TEMPLATE.md
@@ -31,7 +31,7 @@ below with an "x", then click the "Submit new issue" button at the bottom
#### I'm using DB4S version:
-- [ ] 3.11.0-alpha*
+- [ ] 3.11.0-alpha1 or 3.11.0-beta*
- [ ] 3.10.1
- [ ] Other: ___
diff --git a/.github/ISSUE_TEMPLATE/Bug_report.md b/.github/ISSUE_TEMPLATE/Bug_report.md
index 847a92b2f..185afb795 100644
--- a/.github/ISSUE_TEMPLATE/Bug_report.md
+++ b/.github/ISSUE_TEMPLATE/Bug_report.md
@@ -37,7 +37,7 @@ The info below often helps, please fill it out if you're able to. :)
#### What is your DB4S version?
-- [ ] 3.11.0-alpha*
+- [ ] 3.11.0-alpha1 or 3.11.0-beta*
- [ ] 3.10.1
- [ ] Other: ___
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 20f07fd5a..df062a25f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -34,33 +34,30 @@ endif ()
if(WIN32 AND MSVC)
if(CMAKE_CL_64)
# Paths for 64-bit windows builds
- set(OPENSSL_PATH "C:/dev/OpenSSL-Win64")
- set(QT5_PATH "C:/dev/Qt/5.10.1/msvc2013_64")
- set(VSREDIST "vcredist_x64.exe")
+ set(OPENSSL_PATH "C:/dev/OpenSSL-Win64" CACHE PATH "OpenSSL Path")
+ set(QT5_PATH "C:/dev/Qt/5.11.2/msvc2017_64" CACHE PATH "Qt5 Path")
# Choose between SQLCipher or SQLite, depending whether
# -Dsqlcipher=1 is passed on the command line
if(sqlcipher)
- set(SQLITE3_PATH "C:/git_repos/SQLCipher-Win64")
+ set(SQLITE3_PATH "C:/git_repos/SQLCipher-Win64" CACHE PATH "SQLCipher Path")
else()
- set(SQLITE3_PATH "C:/dev/SQLite-Win64")
+ set(SQLITE3_PATH "C:/dev/SQLite-Win64" CACHE PATH "SQLite Path")
endif()
else()
# Paths for 32-bit windows builds
- set(OPENSSL_PATH "C:/dev/OpenSSL-Win32")
- set(QT5_PATH "C:/dev/Qt/5.7/msvc2013")
- set(VSREDIST "vcredist_x86.exe")
+ set(OPENSSL_PATH "C:/dev/OpenSSL-Win32" CACHE PATH "OpenSSL Path")
+ set(QT5_PATH "C:/dev/Qt/5.7/msvc2013" CACHE PATH "Qt5 Path")
# Choose between SQLCipher or SQLite, depending whether
# -Dsqlcipher=1 is passed on the command line
if(sqlcipher)
- set(SQLITE3_PATH "C:/git_repos/SQLCipher-Win32")
+ set(SQLITE3_PATH "C:/git_repos/SQLCipher-Win32" CACHE PATH "SQLCipher Path")
else()
- set(SQLITE3_PATH "C:/dev/SQLite-Win32")
+ set(SQLITE3_PATH "C:/dev/SQLite-Win32" CACHE PATH "SQLite Path")
endif()
endif()
set(CMAKE_PREFIX_PATH "${QT5_PATH};${SQLITE3_PATH}")
- set(VSREDIST_DIR "C:/dev/dependencies")
endif()
if(NOT FORCE_INTERNAL_ANTLR)
@@ -147,6 +144,7 @@ set(SQLB_MOC_HDR
src/DotenvFormat.h
src/Palette.h
src/CondFormat.h
+ src/RunSql.h
)
set(SQLB_SRC
@@ -197,6 +195,7 @@ set(SQLB_SRC
src/DotenvFormat.cpp
src/Palette.cpp
src/CondFormat.cpp
+ src/RunSql.cpp
)
set(SQLB_FORMS
@@ -248,6 +247,7 @@ set(SQLB_TSS
"${CMAKE_SOURCE_DIR}/src/translations/sqlb_ko_KR.ts"
"${CMAKE_SOURCE_DIR}/src/translations/sqlb_tr.ts"
"${CMAKE_SOURCE_DIR}/src/translations/sqlb_uk_UA.ts"
+ "${CMAKE_SOURCE_DIR}/src/translations/sqlb_it.ts"
)
# Windows image format plugin files
@@ -478,7 +478,6 @@ if(WIN32 AND MSVC)
install(FILES
${QT5_PATH}/plugins/platforms/qwindows.dll
DESTINATION platforms)
- install(PROGRAMS "${VSREDIST_DIR}/${VSREDIST}" DESTINATION redist)
# The XML dll
install(FILES
@@ -510,40 +509,3 @@ if(WIN32 AND MSVC)
distri/winlaunch.bat
DESTINATION "/")
endif()
-
-#cpack
-set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "DB Browser for SQLite")
-set(CPACK_PACKAGE_VENDOR "DB Browser for SQLite Team")
-set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
-set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
-set(CPACK_PACKAGE_VERSION_MAJOR "3")
-set(CPACK_PACKAGE_VERSION_MINOR "11")
-set(CPACK_PACKAGE_VERSION_PATCH "99")
-set(CPACK_PACKAGE_INSTALL_DIRECTORY "DB Browser for SQLite")
-if(WIN32 AND NOT UNIX)
- # There is a bug in NSIS that does not handle full unix paths properly. Make
- # sure there is at least one set of four (4) backlasshes.
- set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\src\\\\iconwin.ico")
- set(CPACK_NSIS_MUI_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\src\\\\iconwin.ico")
- set(CPACK_NSIS_EXECUTABLES_DIRECTORY "/")
- set(CPACK_NSIS_INSTALLED_ICON_NAME "DB Browser for SQLite.exe")
- set(CPACK_NSIS_DISPLAY_NAME "DB Browser for SQLite")
- set(CPACK_NSIS_HELP_LINK "https:\\\\\\\\github.com\\\\sqlitebrowser\\\\sqlitebrowser")
- set(CPACK_NSIS_URL_INFO_ABOUT "https:\\\\\\\\github.com\\\\sqlitebrowser\\\\sqlitebrowser")
- set(CPACK_NSIS_CONTACT "justin@postgresql.org")
- set(CPACK_NSIS_MODIFY_PATH OFF)
- set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON)
- set(CPACK_NSIS_MUI_FINISHPAGE_RUN "winlaunch.bat")
- set(CPACK_NSIS_COMPRESSOR "/SOLID lzma")
-
- # VS redist
- list(APPEND CPACK_NSIS_EXTRA_INSTALL_COMMANDS "
- ExecWait '\\\"$INSTDIR\\\\redist\\\\${VSREDIST}\\\" /install /passive /norestart /quiet'
- Delete '\\\"$INSTDIR\\\\redist\\\\${VSREDIST}\\\"'
- ")
-else(WIN32 AND NOT UNIX)
- set(CPACK_STRIP_FILES "DB Browser for SQLite")
- set(CPACK_SOURCE_STRIP_FILES "")
-endif(WIN32 AND NOT UNIX)
-set(CPACK_PACKAGE_EXECUTABLES "DB Browser for SQLite" "DB Browser for SQLite")
-include(CPack)
diff --git a/distri/winlaunch.bat b/distri/winlaunch.bat
deleted file mode 100644
index 91cb36127..000000000
--- a/distri/winlaunch.bat
+++ /dev/null
@@ -1 +0,0 @@
-%WINDIR%\explorer.exe "DB Browser for SQLite.exe"
diff --git a/installer/macos/.db4s_secure b/installer/macos/.db4s_secure
new file mode 100644
index 000000000..e865b0f2e
--- /dev/null
+++ b/installer/macos/.db4s_secure
@@ -0,0 +1,3 @@
+DEV_ID="Developer ID Application: Your name (AABBCCDDEE)"
+KEYCHAIN_PASSWORD="yourpassword"
+UPLOAD_SERVER="user@example.org"
diff --git a/installer/macos/build_sqlitebrowser_nightly.sh b/installer/macos/build_sqlitebrowser_nightly.sh
new file mode 100755
index 000000000..7ec5fb0cb
--- /dev/null
+++ b/installer/macos/build_sqlitebrowser_nightly.sh
@@ -0,0 +1,228 @@
+#!/bin/bash
+
+# Builds and uploads DB Browser for SQLite nightlies,
+# after updating the Homebrew dependencies
+
+QTVER="5.11.2"
+BRANCH="master"
+BREW="/usr/local/bin/brew"
+BUILD_TYPE="release"
+DATE=`date "+%Y%m%d"`
+LOG="$HOME/db4s_nightlies/nightly.log-$DATE"
+LRELEASE="$HOME/Qt/${QTVER}/clang_64/bin/lrelease"
+LUPDATE="$HOME/Qt/${QTVER}/clang_64/bin/lupdate"
+MACDEPLOYQT="$HOME/Qt/${QTVER}/clang_64/bin/macdeployqt"
+PATH="$PATH:/usr/local/bin:/usr/sbin"
+QMAKE="$HOME/Qt/${QTVER}/clang_64/bin/qmake"
+
+# Add the sensitive values we don't want to store in this script file
+source ~/.db4s_secure
+
+# Update the branch to build, if specified on the command line with "-b [branch name]"
+if [ "$1" = "-b" ]; then
+ if [ ! -z "$2" ]; then
+ BRANCH="$2"
+ echo "New branch = ${BRANCH}" >>$LOG 2>&1
+ else
+ # Warn on missing branch name override
+ echo "Missing branch name after the '-b'"
+ exit 1
+ fi
+fi
+
+# Determine if a Release or Debug build is to be built
+if [ "$3" = "-t" ]; then
+ if [ ! -z "$4" ]; then
+ BUILD_TYPE="$4"
+ echo "Build type = ${BUILD_TYPE}" >>$LOG 2>&1
+ else
+ # Warn on missing build type override
+ echo "Missing build type after the '-t'"
+ exit 2
+ fi
+fi
+
+# Verify the build type is valid
+if [ "${BUILD_TYPE}" != "debug" -a "${BUILD_TYPE}" != "release" ]; then
+ echo "Unknown build type"
+ exit 3
+fi
+
+# Ensure Homebrew is owned by my user
+echo Ensure Homebrew is owned by my user >>$LOG 2>&1
+sudo chown -Rh jc:staff /usr/local >$LOG 2>&1
+
+# Update Homebrew
+echo Update Homebrew >>$LOG 2>&1
+$BREW update >>$LOG 2>&1
+
+### Build standard version
+
+# Remove any existing Homebrew installed packages
+echo Remove any existing Homebrew installed packages >>$LOG 2>&1
+$BREW remove `$BREW list` --force >>$LOG 2>&1
+
+# Install SQLite3
+echo Install SQLite3 >>$LOG 2>&1
+$BREW install sqlite --with-functions --with-json1 --without-readline --with-fts --with-fts5 >>$LOG 2>&1
+$BREW link sqlite3 --force >>$LOG 2>&1
+
+# Update the sqlitebrowser source
+echo Update the sqlitebrowser source >>$LOG 2>&1
+cd $HOME/git_repos/sqlitebrowser >>$LOG 2>&1
+git reset --hard HEAD >>$LOG 2>&1
+git clean -dffx >>$LOG 2>&1
+git pull >>$LOG 2>&1
+git checkout $BRANCH >>$LOG 2>&1
+
+# Update the translation files
+echo Updating the translations >>$LOG 2>&1
+$LUPDATE src/src.pro >>$LOG 2>&1
+$LRELEASE src/src.pro >>$LOG 2>&1
+
+# Build and package standard sqlitebrowser nightly
+echo Build and package standard sqlitebrowser nightly >>$LOG 2>&1
+if [ "${BUILD_TYPE}" = "debug" ]; then
+ $QMAKE sqlitebrowser.pro -r -spec macx-clang CONFIG+=debug CONFIG+=x86_64 >>$LOG 2>&1
+else
+ $QMAKE sqlitebrowser.pro -r -spec macx-clang CONFIG+=x86_64 >>$LOG 2>&1
+fi
+make -j3 >>$LOG 2>&1
+make -j3 >>$LOG 2>&1 # Seems to need a 2nd time now, due to language files needing initialisation or something
+
+# Include the depencencies in the .app bundle
+$MACDEPLOYQT src/DB\ Browser\ for\ SQLite.app -verbose=2 >>$LOG 2>&1
+
+# Copy the license files to the .dmg
+echo Copying the license files to the .dmg >>$LOG 2>&1
+cp LICENSE LICENSE-PLUGINS src/DB\ Browser\ for\ SQLite.app/Contents/Resources/ >>$LOG 2>&1
+
+# Copy the translation files to the .dmg
+mkdir -p src/DB\ Browser\ for\ SQLite.app/Contents/translations >>$LOG 2>&1
+for i in ar zh_CN zh_TW cs en fr de it ko pl pt ru es uk; do
+ cp -v $HOME/Qt/${QTVER}/clang_64/translations/qt_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1
+ cp -v $HOME/Qt/${QTVER}/clang_64/translations/qtbase_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1
+ cp -v $HOME/Qt/${QTVER}/clang_64/translations/qtmultimedia_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1
+ cp -v $HOME/Qt/${QTVER}/clang_64/translations/qtquick1_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1
+ cp -v $HOME/Qt/${QTVER}/clang_64/translations/qtscript_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1
+ cp -v $HOME/Qt/${QTVER}/clang_64/translations/qtxmlpatterns_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1
+done
+
+# Unlock the local security keychain, so signing can be done
+security unlock-keychain -p "${KEYCHAIN_PASSWORD}" "${HOME}/Library/Keychains/login.keychain"
+
+# Sign the .app
+codesign --sign "${DEV_ID}" --verbose --deep --keychain "/Library/Keychains/System.keychain" src/DB\ Browser\ for\ SQLite.app >>$LOG 2>&1
+
+# Make a .dmg file from the .app
+mv src/DB\ Browser\ for\ SQLite.app $HOME/appdmg/ >>$LOG 2>&1
+cd $HOME/appdmg >>$LOG 2>&1
+$BREW install npm >>$LOG 2>&1
+npm -g update >>$LOG 2>&1
+npm -g upgrade >>$LOG 2>&1
+npm -g uninstall appdmg >>$LOG 2>&1
+npm -g install appdmg >>$LOG 2>&1
+appdmg --quiet nightly.json DB\ Browser\ for\ SQLite_${DATE}.dmg >>$LOG 2>&1
+mv DB\ Browser\ for\ SQLite_${DATE}.dmg $HOME/db4s_nightlies/ >>$LOG 2>&1
+$BREW unlink sqlite3 >>$LOG 2>&1
+rm -rf $HOME/appdmg/DB\ Browser\ for\ SQLite.app >>$LOG 2>&1
+
+# Upload standard sqlitebrowser nightly
+echo Upload standard sqlitebrowser nightly >>$LOG 2>&1
+rsync -a $HOME/db4s_nightlies/DB\ Browser\ for\ SQLite_${DATE}.dmg nightlies@nightlies.sqlitebrowser.org:/nightlies/osx/ >>$LOG 2>&1
+
+### Build SQLCipher version
+# Remove any existing Homebrew installed packages
+echo Remove any existing Homebrew installed packages >>$LOG 2>&1
+$BREW remove `$BREW list` --force >>$LOG 2>&1
+
+# Install sqlcipher
+echo Install sqlcipher >>$LOG 2>&1
+$BREW install sqlcipher --with-fts >>$LOG 2>&1
+
+# Clean the sqlitebrowser source
+echo Clean the sqlitebrowser source >>$LOG 2>&1
+cd $HOME/git_repos/sqlitebrowser >>$LOG 2>&1
+git reset --hard HEAD >>$LOG 2>&1
+git clean -dffx >>$LOG 2>&1
+git checkout $BRANCH >>$LOG 2>&1
+
+# Update the translation files
+echo Updating the translations >>$LOG 2>&1
+$LUPDATE src/src.pro >>$LOG 2>&1
+$LRELEASE src/src.pro >>$LOG 2>&1
+
+# Build and package sqlitebrowser with SQLCipher support
+echo Build and package sqlitebrowser with SQLCipher support >>$LOG 2>&1
+if [ "${BUILD_TYPE}" = "debug" ]; then
+ $QMAKE sqlitebrowser.pro -r -spec macx-clang CONFIG+=debug CONFIG+=x86_64 CONFIG+=sqlcipher >>$LOG 2>&1
+else
+ $QMAKE sqlitebrowser.pro -r -spec macx-clang CONFIG+=x86_64 CONFIG+=sqlcipher >>$LOG 2>&1
+fi
+make -j3 >>$LOG 2>&1
+make -j3 >>$LOG 2>&1 # Seems to need a 2nd time now, due to language files needing initialisation or something
+
+# Include the depencencies in the .app bundle
+$MACDEPLOYQT src/DB\ Browser\ for\ SQLite.app -verbose=2 >>$LOG 2>&1
+
+# Copy the license files to the .dmg
+echo Copying the license files to the .dmg >>$LOG 2>&1
+cp LICENSE LICENSE-PLUGINS src/DB\ Browser\ for\ SQLite.app/Contents/Resources/ >>$LOG 2>&1
+
+# Copy the translation files to the .dmg
+mkdir -p src/DB\ Browser\ for\ SQLite.app/Contents/translations >>$LOG 2>&1
+for i in ar zh_CN zh_TW cs en fr de it ko pl pt ru es uk; do
+ cp -v $HOME/Qt/${QTVER}/clang_64/translations/qt_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1
+ cp -v $HOME/Qt/${QTVER}/clang_64/translations/qtbase_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1
+ cp -v $HOME/Qt/${QTVER}/clang_64/translations/qtmultimedia_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1
+ cp -v $HOME/Qt/${QTVER}/clang_64/translations/qtquick1_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1
+ cp -v $HOME/Qt/${QTVER}/clang_64/translations/qtscript_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1
+ cp -v $HOME/Qt/${QTVER}/clang_64/translations/qtxmlpatterns_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1
+done
+
+# Unlock the local security keychain, so signing can be done
+security unlock-keychain -p "${KEYCHAIN_PASSWORD}" "${HOME}/Library/Keychains/login.keychain"
+
+# Sign the .app
+codesign --sign "${DEV_ID}" --verbose --deep --keychain "/Library/Keychains/System.keychain" src/DB\ Browser\ for\ SQLite.app >>$LOG 2>&1
+
+# Make a .dmg file from the .app
+mv src/DB\ Browser\ for\ SQLite.app $HOME/appdmg/ >>$LOG 2>&1
+cd $HOME/appdmg >>$LOG 2>&1
+$BREW install npm >>$LOG 2>&1
+npm -g update >>$LOG 2>&1
+npm -g upgrade >>$LOG 2>&1
+npm -g uninstall appdmg >>$LOG 2>&1
+npm -g install appdmg >>$LOG 2>&1
+appdmg --quiet nightly.json DB\ Browser\ for\ SQLite-sqlcipher_${DATE}.dmg >>$LOG 2>&1
+mv DB\ Browser\ for\ SQLite-sqlcipher_${DATE}.dmg $HOME/db4s_nightlies/ >>$LOG 2>&1
+rm -rf $HOME/appdmg/DB\ Browser\ for\ SQLite.app >>$LOG 2>&1
+
+# If building a non-master branch, remove it now that we're finished
+if [ "${BRANCH}" != "master" ]; then
+ echo "Removing non-master branch, now we're finihed" >>$LOG 2>&1
+ cd $HOME/git_repos/sqlitebrowser >>$LOG 2>&1
+ git reset --hard HEAD >>$LOG 2>&1
+ git clean -dffx >>$LOG 2>&1
+ git checkout master >>$LOG 2>&1
+ git branch -D "${BRANCH}" >>$LOG 2>&1
+fi
+
+# Upload sqlitebrowser nightly with SQLCipher support
+echo Upload sqlitebrowser nightly with SQLCipher support >>$LOG 2>&1
+rsync -a $HOME/db4s_nightlies/DB\ Browser\ for\ SQLite-sqlcipher_${DATE}.dmg nightlies@nightlies.sqlitebrowser.org:/nightlies/osx/ >>$LOG 2>&1
+
+# Upload the nightlies build log
+echo Upload the build log >>$LOG 2>&1
+rsync -a $HOME/db4s_nightlies/nightly.log-${DATE} nightlies@nightlies.sqlitebrowser.org:/nightlies/osx/ >>$LOG 2>&1
+
+# Add the new builds to the "latest" directory
+ssh ${UPLOAD_SERVER} "cd /nightlies/latest; rm -f *dmg" >>$LOG 2>&1
+ssh ${UPLOAD_SERVER} "cd /nightlies/latest; cp /nightlies/osx/DB\ Browser\ for\ SQLite_${DATE}.dmg /nightlies/latest/DB.Browser.for.SQLite.dmg" >>$LOG 2>&1
+ssh ${UPLOAD_SERVER} "cd /nightlies/latest; cp /nightlies/osx/DB\ Browser\ for\ SQLite-sqlcipher_${DATE}.dmg /nightlies/latest/DB.Browser.for.SQLite-sqlcipher.dmg" >>$LOG 2>&1
+
+# Remove the nightlies from the local filesystem as we no longer need them
+#echo Remove the nightlies from the local filesystem as we no longer need them >>$LOG 2>&1
+#rm -f $HOME/db4s_nightlies/sqlitebrowser_${DATE}.dmg $HOME/db4s_nightlies/sqlitebrowser-sqlcipher_${DATE}.dmg >>$LOG 2>&1
+
+echo Done! >>$LOG 2>&1
diff --git a/installer/windows/build.cmd b/installer/windows/build.cmd
index 3485582d1..af86b2b67 100644
--- a/installer/windows/build.cmd
+++ b/installer/windows/build.cmd
@@ -1,7 +1,7 @@
@echo off
:: Output file name
-set MSI=DB.Browser.for.SQLite
+set MSI=DB.Browser.for.SQLite-%1
:: Set the ARCH based on the first parameter
if "%1"=="" (
@@ -16,18 +16,6 @@ if "%1"=="" (
goto :eof
)
-:: Choose between building the application with SQLite (default) or SQLCipher library
-if "%2"=="" (
- set SQLCIPHER=
- set MSI=%MSI%-%1
-) else if "%2"=="sqlcipher" (
- set MSI=%MSI%-sqlcipher-%1
- set SQLCIPHER=-dSQLCipher=1
-) else (
- echo ERROR: Second parameter can only be "sqlcipher" or nothing
- goto :eof
-)
-
:: Suppress some ICE checks
:: - 61 (major upgrade)
:: - 03 & 82 (merge module)
@@ -39,9 +27,11 @@ set ICE=-sice:ICE03 -sice:ICE82 -sice:ICE61 -sice:ICE38 -sice:ICE43 -sice:ICE57
set LIGHT=-sw1104
:: Compile & Link
-"%WIX%\bin\candle.exe" -nologo -pedantic -arch %ARCH% %SQLCIPHER% product.wxs
-"%WIX%\bin\light.exe" -sval -nologo -pedantic %LIGHT% %ICE% -ext WixUIExtension -ext WixUtilExtension -cultures:en-us -loc strings.wxl product.wixobj -out %MSI%.msi
+"%WIX%\bin\candle.exe" -nologo -pedantic -arch %ARCH% product.wxs translations.wxs ui.wxs
+"%WIX%\bin\light.exe" -sval -nologo -pedantic %LIGHT% %ICE% -ext WixUIExtension -ext WixUtilExtension -cultures:en-us -loc strings.wxl product.wixobj translations.wixobj ui.wixobj -out %MSI%.msi
:: Cleanup
del product.wixobj
+del translations.wixobj
+del ui.wixobj
del %MSI%.wixpdb
diff --git a/installer/windows/nightly_build_script/winbuild.bat b/installer/windows/nightly_build_script/winbuild.bat
deleted file mode 100644
index 4bbf55799..000000000
--- a/installer/windows/nightly_build_script/winbuild.bat
+++ /dev/null
@@ -1,180 +0,0 @@
-:: Destination path - specify where to move package after build
-set DEST_PATH=C:\\builds
-MKDIR "%DEST_PATH%"
-MKDIR "%DEST_PATH%\tmp\"
-
-set SQLITE_DIR=C:\\dev\\SQLite-
-set SQLCIPHER_DIR=C:\\git_repos\\SQLCipher-
-
-:: You need to change the date format in Windows settings to YYYY-MM-DD
-:: before this will work properly. ;)
-set RUN_DATE=%DATE%
-
-:: If no branch given on the command line, use master
-IF "%1"=="" (SET BRANCH="master") ELSE (SET BRANCH="%1")
-
-cd /d "C:\"
-if exist "git_repos" rd /q /s "git_repos"
-if exist "%SQLITE_DIR%Win32" rd /q /s "%SQLITE_DIR%Win32"
-if exist "%SQLITE_DIR%Win64" rd /q /s "%SQLITE_DIR%Win64"
-if exist "%SQLCIPHER_DIR%Win32" rd /q /s "%SQLCIPHER_DIR%Win32"
-if exist "%SQLCIPHER_DIR%Win64" rd /q /s "%SQLCIPHER_DIR%Win64"
-
-:: Unpack SQLite
-cd C:\dev
-"C:\Program Files\7-Zip\7z.exe" e sqlite*zip "-o%SQLITE_DIR%Win32"
-"C:\Program Files\7-Zip\7z.exe" e sqlite*zip "-o%SQLITE_DIR%Win64"
-
-:: Clone repositories
-MKDIR "C:\\git_repos"
-cd C:\\git_repos
-git clone -b msvc2013_win32 --depth 1 https://github.com/justinclift/sqlcipher.git SQLCipher-Win32
-git clone -b msvc2013_win64 --depth 1 https://github.com/justinclift/sqlcipher.git SQLCipher-Win64
-git clone -b %BRANCH% https://github.com/sqlitebrowser/sqlitebrowser.git
-
-
-:: WIN32 SQLITE BUILD PROCEDURE
-
-:: Set path variables
-call "C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\bin\\vcvars32.bat"
-
-:: Build SQLite x86
-cd %SQLITE_DIR%Win32
-cl sqlite3.c -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_JSON1 -DSQLITE_API=_declspec(dllexport) -link -dll -out:sqlite3.dll
-
-:: Run CMake for SQLite x86
-cd C:\\git_repos\\sqlitebrowser
-MKDIR "release-sqlite-win32"
-cd "release-sqlite-win32"
-cmake -G "Visual Studio 12 2013" -Wno-dev ..
-
-:: Build package
-FOR %%I IN (*.sln) DO devenv /Build Release "%%I" /project "PACKAGE"
-
-:: Copy .exe to destination. Weirdly, this needs to be done in two steps as doing
-:: it with a single MOVE always results in a broken .exe 4k in size
-COPY /Y C:\\git_repos\\sqlitebrowser\\release-sqlite-win32\\DB*.exe "%DEST_PATH%\\tmp\\"
-MOVE /Y %DEST_PATH%\\tmp\\DB*.exe "%DEST_PATH%\\DB Browser for SQLite-%RUN_DATE%-win32.exe"
-
-:: Build MSI
-MKDIR C:\\git_repos\\sqlitebrowser\\Release
-MOVE C:\\git_repos\\sqlitebrowser\\release-sqlite-win32\\Release\\*.exe C:\\git_repos\\sqlitebrowser\\Release
-cd C:\\git_repos\\sqlitebrowser\\installer\\windows
-CALL build.cmd win32
-
-:: Move package to DEST_PATH
-MOVE /Y *msi "%DEST_PATH%\DB Browser for SQLite-%RUN_DATE%-win32.msi"
-
-
-:: WIN32 SQLCIPHER BUILD PROCEDURE
-
-:: Build SQLCipher x86
-cd %SQLCIPHER_DIR%Win32
-nmake /f Makefile.msc
-
-:: Run CMake for SQLCipher x86
-cd C:\\git_repos\\sqlitebrowser
-MKDIR "release-sqlcipher-win32"
-cd "release-sqlcipher-win32"
-cmake -G "Visual Studio 12 2013" -Wno-dev -Dsqlcipher=1 ..
-
-:: Build package
-FOR %%I IN (*.sln) DO devenv /Build Release "%%I" /project "PACKAGE"
-
-:: Copy .exe to destination. Weirdly, this needs to be done in two steps as doing
-:: it with a single MOVE always results in a broken .exe 4k in size
-COPY /Y C:\\git_repos\\sqlitebrowser\\release-sqlcipher-win32\\DB*.exe "%DEST_PATH%\\tmp\\"
-MOVE /Y %DEST_PATH%\\tmp\\DB*.exe "%DEST_PATH%\\DB Browser for SQLite-sqlcipher-%RUN_DATE%-win32.exe"
-
-:: Build MSI
-MKDIR C:\\git_repos\\sqlitebrowser\\Release
-MOVE C:\\git_repos\\sqlitebrowser\\release-sqlcipher-win32\\Release\\*.exe C:\\git_repos\\sqlitebrowser\\Release
-cd C:\\git_repos\\sqlitebrowser\\installer\\windows
-CALL build.cmd win32 sqlcipher
-
-:: Move package to DEST_PATH
-MOVE /Y *msi "%DEST_PATH%\DB Browser for SQLite-sqlcipher-%RUN_DATE%-win32.msi"
-
-
-:: WIN64 SQLITE BUILD PROCEDURE
-
-:: Set path variables
-call "C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\bin\\amd64\\vcvars64.bat"
-
-:: Build SQLite x64
-cd %SQLITE_DIR%Win64
-cl sqlite3.c -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_JSON1 -DSQLITE_API=_declspec(dllexport) -link -dll -out:sqlite3.dll
-
-:: Run CMake for SQLite x64
-cd C:\\git_repos\\sqlitebrowser
-MKDIR "release-sqlite-win64"
-cd "release-sqlite-win64"
-cmake -G "Visual Studio 12 2013 Win64" -Wno-dev ..
-
-:: Build package
-FOR %%I IN (*.sln) DO devenv /Build Release "%%I" /project "PACKAGE"
-
-:: Copy .exe to destination. Weirdly, this needs to be done in two steps as doing
-:: it with a single MOVE always results in a broken .exe 4k in size
-COPY /Y C:\\git_repos\\sqlitebrowser\\release-sqlite-win64\\DB*.exe "%DEST_PATH%\\tmp\\"
-MOVE /Y %DEST_PATH%\\tmp\\DB*.exe "%DEST_PATH%\DB Browser for SQLite-%RUN_DATE%-win64.exe"
-
-:: Build MSI
-MKDIR C:\\git_repos\\sqlitebrowser\\Release
-MOVE C:\\git_repos\\sqlitebrowser\\release-sqlite-win64\\Release\\*.exe C:\\git_repos\\sqlitebrowser\\Release
-cd C:\\git_repos\\sqlitebrowser\\installer\\windows
-CALL build.cmd win64
-
-:: Move package to DEST_PATH
-MOVE /Y *msi "%DEST_PATH%\DB Browser for SQLite-%RUN_DATE%-win64.msi"
-
-
-:: WIN64 SQLCIPHER BUILD PROCEDURE
-
-:: Build SQLCipher x64
-cd %SQLCIPHER_DIR%Win64
-nmake /f Makefile.msc
-
-:: Run CMake for SQLCipher x64
-cd C:\\git_repos\\sqlitebrowser
-MKDIR "release-sqlcipher-win64"
-cd "release-sqlcipher-win64"
-cmake -G "Visual Studio 12 2013 Win64" -Wno-dev -Dsqlcipher=1 ..
-
-:: Build package
-FOR %%I IN (*.sln) DO devenv /Build Release "%%I" /project "PACKAGE"
-
-:: Copy .exe to destination. Weirdly, this needs to be done in two steps as doing
-:: it with a single MOVE always results in a broken .exe 4k in size
-COPY /Y C:\\git_repos\\sqlitebrowser\\release-sqlcipher-win64\\DB*.exe "%DEST_PATH%\\tmp\\"
-MOVE /Y %DEST_PATH%\\tmp\\DB*.exe "%DEST_PATH%\DB Browser for SQLite-sqlcipher-%RUN_DATE%-win64.exe"
-
-:: Build MSI
-MKDIR C:\\git_repos\\sqlitebrowser\\Release
-MOVE C:\\git_repos\\sqlitebrowser\\release-sqlcipher-win64\\Release\\*.exe C:\\git_repos\\sqlitebrowser\\Release
-cd C:\\git_repos\\sqlitebrowser\\installer\\windows
-CALL build.cmd win64 sqlcipher
-
-:: Move package to DEST_PATH
-MOVE /Y *msi "%DEST_PATH%\DB Browser for SQLite-sqlcipher-%RUN_DATE%-win64.msi"
-
-:: Upload the packages to the nightlies server
-pscp -q -p -i C:\dev\puttygen_private.ppk "%DEST_PATH%\DB*%RUN_DATE%*win32.exe" nightlies@nightlies.sqlitebrowser.org:/nightlies/win32
-pscp -q -p -i C:\dev\puttygen_private.ppk "%DEST_PATH%\DB*%RUN_DATE%*win32.msi" nightlies@nightlies.sqlitebrowser.org:/nightlies/win32
-pscp -q -p -i C:\dev\puttygen_private.ppk "%DEST_PATH%\DB*%RUN_DATE%*win64.exe" nightlies@nightlies.sqlitebrowser.org:/nightlies/win64
-pscp -q -p -i C:\dev\puttygen_private.ppk "%DEST_PATH%\DB*%RUN_DATE%*win64.msi" nightlies@nightlies.sqlitebrowser.org:/nightlies/win64
-
-:: Copy the new binaries to /latest directory on the nightlies server
-plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cd /nightlies/latest; rm -f *.exe *.msi"
-plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cp /nightlies/win32/DB*SQLite-%RUN_DATE%-win32.exe /nightlies/latest/DB.Browser.for.SQLite-win32.exe"
-plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cp /nightlies/win32/DB*SQLite-%RUN_DATE%-win32.msi /nightlies/latest/DB.Browser.for.SQLite-win32.msi"
-plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cp /nightlies/win32/DB*sqlcipher-%RUN_DATE%-win32.exe /nightlies/latest/DB.Browser.for.SQLite-sqlcipher-win32.exe"
-plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cp /nightlies/win32/DB*sqlcipher-%RUN_DATE%-win32.msi /nightlies/latest/DB.Browser.for.SQLite-sqlcipher-win32.msi"
-plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cp /nightlies/win64/DB*SQLite-%RUN_DATE%-win64.exe /nightlies/latest/DB.Browser.for.SQLite-win64.exe"
-plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cp /nightlies/win64/DB*SQLite-%RUN_DATE%-win64.msi /nightlies/latest/DB.Browser.for.SQLite-win64.msi"
-plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cp /nightlies/win64/DB*sqlcipher-%RUN_DATE%-win64.exe /nightlies/latest/DB.Browser.for.SQLite-sqlcipher-win64.exe"
-plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cp /nightlies/win64/DB*sqlcipher-%RUN_DATE%-win64.msi /nightlies/latest/DB.Browser.for.SQLite-sqlcipher-win64.msi"
-
-:: Wipe working dir
-cd /d C:\
-rd /q /s "C:\\git_repos"
diff --git a/installer/windows/nightly_build_scripts/win32build.bat b/installer/windows/nightly_build_scripts/win32build.bat
new file mode 100755
index 000000000..8ff175954
--- /dev/null
+++ b/installer/windows/nightly_build_scripts/win32build.bat
@@ -0,0 +1,114 @@
+:: Destination path - specify where to move package after build
+SET DEST_PATH=C:\\builds
+MKDIR "%DEST_PATH%"
+
+SET ZIP_EXE="C:\Program Files\7-Zip\7z.exe"
+SET SQLITE_DIR=C:\\dev\\SQLite-Win32
+SET SQLCIPHER_DIR=C:\\git_repos\\SQLCipher-Win32
+SET SQLCIPHER_TAG=v3.4.2
+
+:: You need to change the date format in Windows settings to YYYY-MM-DD
+:: before this will work properly. ;)
+set RUN_DATE=%DATE%
+
+:: If no branch given on the command line, use master
+IF "%1"=="" (SET BRANCH="master") ELSE (SET BRANCH="%1")
+
+CD /d "C:\"
+if exist "%SQLITE_DIR%" rd /q /s "%SQLITE_DIR%"
+if exist "C:\\builds\\release-sqlite-win32" rd /q /s "C:\\builds\\release-sqlite-win32"
+if exist "C:\\builds\\release-sqlcipher-win32" rd /q /s "C:\\builds\\release-sqlcipher-win32"
+
+:: Unpack SQLite
+CD C:\dev
+%ZIP_EXE% e sqlite*zip "-o%SQLITE_DIR%"
+
+:: Update repositories
+::git clone -b v3.4.2 https://github.com/sqlcipher/sqlcipher.git SQLCipher-Win32
+CD C:\\git_repos\\SQLCipher-Win32
+git clean -dffx
+git checkout -f HEAD
+git checkout master
+git pull
+git checkout "%SQLCIPHER_TAG%"
+git clean -dffx
+git pull
+git clean -dffx
+
+::git clone -b %BRANCH% https://github.com/sqlitebrowser/sqlitebrowser.git "%DB4S_DIR%Win32"
+CD C:\\git_repos\\sqlitebrowser
+git clean -dffx
+git checkout -f HEAD
+git checkout master
+git pull
+git checkout %BRANCH%
+git clean -dffx
+git pull
+git clean -dffx
+
+
+:: WIN32 SQLITE BUILD PROCEDURE
+
+:: Set path variables
+CALL "C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\bin\\vcvars32.bat"
+
+:: Build SQLite x86
+CD %SQLITE_DIR%
+cl sqlite3.c -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_JSON1 -DSQLITE_API=__declspec(dllexport) -link -dll -out:sqlite3.dll
+
+:: Build Math extension x86
+COPY C:\git_repos\sqlitebrowser\src\extensions\extension-functions.c
+COPY C:\git_repos\sqlitebrowser\src\extensions\extension-functions.def
+cl /MD extension-functions.c -link -dll -def:extension-functions.def -out:math.dll
+
+:: Run CMake for SQLite x86
+CD C:\\builds
+MKDIR "release-sqlite-win32"
+CD "release-sqlite-win32"
+cmake -G "Visual Studio 12 2013" -Wno-dev C:\\git_repos\\sqlitebrowser
+
+:: Build package
+devenv /Build Release sqlitebrowser.sln /project "ALL_BUILD"
+
+
+:: WIN32 SQLCIPHER BUILD PROCEDURE
+
+:: Build SQLCipher x86
+CD %SQLCIPHER_DIR%
+nmake /f Makefile.msc sqlcipher.dll USE_AMALGAMATION=1 NO_TCL=1 SQLITE3DLL=sqlcipher.dll SQLITE3LIB=sqlcipher.lib SQLITE3EXE=sqlcipher.exe LTLINKOPTS="C:\dev\OpenSSL-Win32\lib\libeay32.lib" OPT_FEATURE_FLAGS="-DSQLITE_TEMP_STORE=2 -DSQLITE_HAS_CODEC=1 -DSQLITE_ENABLE_FTS5=1 -DSQLITE_ENABLE_FTS3_PARENTHESIS=1 -DSQLITE_ENABLE_JSON1=1 -DSQLCIPHER_CRYPTO_OPENSSL=1 -IC:\dev\OpenSSL-Win32\include"
+
+:: Run CMake for SQLCipher x86
+CD C:\\builds
+MKDIR "release-sqlcipher-win32"
+CD "release-sqlcipher-win32"
+cmake -G "Visual Studio 12 2013" -Wno-dev -Dsqlcipher=1 C:\\git_repos\\sqlitebrowser
+
+:: Build package
+devenv /Build Release sqlitebrowser.sln /project "ALL_BUILD"
+
+:: Rename SQLCipher
+CD "Release"
+MOVE "DB Browser for SQLite.exe" "DB Browser for SQLCipher.exe"
+
+:: Build MSI
+CD C:\\git_repos\\sqlitebrowser\\installer\\windows
+CALL build.cmd win32
+
+:: Move package to DEST_PATH
+MOVE /Y *.msi "%DEST_PATH%\DB.Browser.for.SQLite-%RUN_DATE%-win32.msi"
+
+:: Create ZIP
+CD %DEST_PATH%
+msiexec /a "DB.Browser.for.SQLite-%RUN_DATE%-win32.msi" /q TARGETDIR=%CD%\zip
+MOVE %CD%\zip\System\* "%CD%\zip\DB Browser for SQLite"
+%ZIP_EXE% a "DB.Browser.for.SQLite-%RUN_DATE%-win32.zip" "%CD%\zip\DB Browser for SQLite"
+RMDIR /S /Q %CD%\zip
+
+
+:: Upload the packages to the nightlies server
+pscp -q -p -i C:\dev\puttygen_private.ppk "%DEST_PATH%\DB*%RUN_DATE%*win32.*" nightlies@nightlies.sqlitebrowser.org:/nightlies/win32
+
+:: Copy the new binaries to /latest directory on the nightlies server
+plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cd /nightlies/latest; rm -f *-win32.*"
+plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cp /nightlies/win32/DB*SQLite-%RUN_DATE%-win32.msi /nightlies/latest/DB.Browser.for.SQLite-win32.msi"
+plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cp /nightlies/win32/DB*SQLite-%RUN_DATE%-win32.zip /nightlies/latest/DB.Browser.for.SQLite-win32.zip"
diff --git a/installer/windows/nightly_build_scripts/win64build.bat b/installer/windows/nightly_build_scripts/win64build.bat
new file mode 100755
index 000000000..7710b2e58
--- /dev/null
+++ b/installer/windows/nightly_build_scripts/win64build.bat
@@ -0,0 +1,114 @@
+:: Destination path - specify where to move package after build
+SET DEST_PATH=C:\\builds
+MKDIR "%DEST_PATH%"
+
+SET ZIP_EXE="C:\Program Files\7-Zip\7z.exe"
+SET SQLITE_DIR=C:\\dev\\SQLite-Win64
+SET SQLCIPHER_DIR=C:\\git_repos\\SQLCipher-Win64
+SET SQLCIPHER_TAG=v3.4.2
+
+:: You need to change the date format in Windows settings to YYYY-MM-DD
+:: before this will work properly. ;)
+set RUN_DATE=%DATE%
+
+:: If no branch given on the command line, use master
+IF "%1"=="" (SET BRANCH="master") ELSE (SET BRANCH="%1")
+
+CD /d "C:\"
+if exist "%SQLITE_DIR%" rd /q /s "%SQLITE_DIR%"
+if exist "C:\\builds\\release-sqlite-win64" rd /q /s "C:\\builds\\release-sqlite-win64"
+if exist "C:\\builds\\release-sqlcipher-win64" rd /q /s "C:\\builds\\release-sqlcipher-win64"
+
+:: Unpack SQLite
+CD C:\dev
+%ZIP_EXE% e sqlite*zip "-o%SQLITE_DIR%"
+
+:: Update repositories
+::git clone -b v3.4.2 https://github.com/sqlcipher/sqlcipher.git SQLCipher-Win64
+CD C:\\git_repos\\SQLCipher-Win64
+git clean -dffx
+git checkout -f HEAD
+git checkout master
+git pull
+git checkout "%SQLCIPHER_TAG%"
+git clean -dffx
+git pull
+git clean -dffx
+
+::git clone -b %BRANCH% https://github.com/sqlitebrowser/sqlitebrowser.git "%DB4S_DIR%Win64"
+CD C:\\git_repos\\sqlitebrowser
+git clean -dffx
+git checkout -f HEAD
+git checkout master
+git pull
+git checkout %BRANCH%
+git clean -dffx
+git pull
+git clean -dffx
+
+
+:: WIN64 SQLITE BUILD PROCEDURE
+
+:: Set path variables
+CALL "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
+
+:: Build SQLite x64
+CD %SQLITE_DIR%
+cl sqlite3.c -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_JSON1 -DSQLITE_API=__declspec(dllexport) -link -dll -out:sqlite3.dll
+
+:: Build Math extension x64
+COPY C:\git_repos\sqlitebrowser\src\extensions\extension-functions.c
+COPY C:\git_repos\sqlitebrowser\src\extensions\extension-functions.def
+cl /MD extension-functions.c -link -dll -def:extension-functions.def -out:math.dll
+
+:: Run CMake for SQLite x64
+CD C:\\builds
+MKDIR "release-sqlite-win64"
+CD "release-sqlite-win64"
+cmake -G "Visual Studio 15 2017 Win64" -Wno-dev C:\\git_repos\\sqlitebrowser
+
+:: Build package
+devenv /Build Release sqlitebrowser.sln /project "ALL_BUILD"
+
+
+:: WIN64 SQLCIPHER BUILD PROCEDURE
+
+:: Build SQLCipher x64
+CD %SQLCIPHER_DIR%
+nmake /f Makefile.msc sqlcipher.dll USE_AMALGAMATION=1 NO_TCL=1 SQLITE3DLL=sqlcipher.dll SQLITE3LIB=sqlcipher.lib SQLITE3EXE=sqlcipher.exe LTLINKOPTS="C:\dev\OpenSSL-Win64\lib\libeay32.lib" OPT_FEATURE_FLAGS="-DSQLITE_TEMP_STORE=2 -DSQLITE_HAS_CODEC=1 -DSQLITE_ENABLE_FTS5=1 -DSQLITE_ENABLE_FTS3_PARENTHESIS=1 -DSQLITE_ENABLE_JSON1=1 -DSQLCIPHER_CRYPTO_OPENSSL=1 -IC:\dev\OpenSSL-Win64\include"
+
+:: Run CMake for SQLCipher x64
+CD C:\\builds
+MKDIR "release-sqlcipher-win64"
+CD "release-sqlcipher-win64"
+cmake -G "Visual Studio 15 2017 Win64" -Wno-dev -Dsqlcipher=1 C:\\git_repos\\sqlitebrowser
+
+:: Build package
+devenv /Build Release sqlitebrowser.sln /project "ALL_BUILD"
+
+:: Rename SQLCipher
+CD "Release"
+MOVE "DB Browser for SQLite.exe" "DB Browser for SQLCipher.exe"
+
+:: Build MSI
+CD C:\\git_repos\\sqlitebrowser\\installer\\windows
+CALL build.cmd win64
+
+:: Move package to DEST_PATH
+MOVE /Y *.msi "%DEST_PATH%\DB.Browser.for.SQLite-%RUN_DATE%-win64.msi"
+
+:: Create ZIP
+CD %DEST_PATH%
+msiexec /a "DB.Browser.for.SQLite-%RUN_DATE%-win64.msi" /q TARGETDIR=%CD%\zip
+MOVE %CD%\zip\System64\* "%CD%\zip\DB Browser for SQLite"
+%ZIP_EXE% a "DB.Browser.for.SQLite-%RUN_DATE%-win64.zip" "%CD%\zip\DB Browser for SQLite"
+RMDIR /S /Q %CD%\zip
+
+
+:: Upload the packages to the nightlies server
+pscp -q -p -i C:\dev\puttygen_private.ppk "%DEST_PATH%\DB*%RUN_DATE%*win64.*" nightlies@nightlies.sqlitebrowser.org:/nightlies/win64
+
+:: Copy the new binaries to /latest directory on the nightlies server
+plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cd /nightlies/latest; rm -f *-win64.*"
+plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cp /nightlies/win64/DB*SQLite-%RUN_DATE%-win64.msi /nightlies/latest/DB.Browser.for.SQLite-win64.msi"
+plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cp /nightlies/win64/DB*SQLite-%RUN_DATE%-win64.zip /nightlies/latest/DB.Browser.for.SQLite-win64.zip"
diff --git a/installer/windows/product.wxs b/installer/windows/product.wxs
index 9139619d7..30d3970ac 100644
--- a/installer/windows/product.wxs
+++ b/installer/windows/product.wxs
@@ -5,7 +5,7 @@
-
+
@@ -62,6 +62,15 @@
+
+
+
+
+
+
+
+
+
@@ -92,24 +101,34 @@
-
-
-
-
-
-
+
+
+
+
-
-
-
+
+ SHORTCUT_SQLITE_DESKTOP
+
+
+
+
+ SHORTCUT_SQLCIPHER_DESKTOP
+
+
@@ -122,15 +141,25 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ LicenseAccepted = "1"
+ NOT Installed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -209,6 +257,39 @@
+
+
+
+
+
+
+
+
+
+ NSIS_INSTALLDIR
+
+
+
+
+
+
+ NSIS_INSTALLDIR
+
+
diff --git a/installer/windows/strings.wxl b/installer/windows/strings.wxl
index 0ab05b167..f5af817de 100644
--- a/installer/windows/strings.wxl
+++ b/installer/windows/strings.wxl
@@ -1,6 +1,14 @@
- This Setup Wizard will install [ProductName] on your computer.
+ This Setup Wizard will install [ProductName] on your computer.
If you have a previous version already installed, this installation process will update it.
-If you have a previous version already installed, this will update it.
+
+ [ProductName] Setup
+ {\WixUI_Font_Title}Shortcuts
+ Select the shortcuts for the application.
+ [ProductName] uses the latest version of SQLite, so you can enjoy all of its new features and bug fixes, but it does not have encryption support.
It is also built with SQLCipher as a separate application. SQLCipher is an open source extension to SQLite providing transparent 256-bit AES encryption of database files, but uses a slightly older version of SQLite.
Both applications (with and without SQLCipher) are installed and can run concurrently.
This page allows you to choose the shortcuts for each application and where to place them.
+ DB Browser (SQLite)
+ DB Browser (SQLCipher)
+ Desktop
+
diff --git a/installer/windows/translations.wxs b/installer/windows/translations.wxs
new file mode 100644
index 000000000..6c85bec3e
--- /dev/null
+++ b/installer/windows/translations.wxs
@@ -0,0 +1,248 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/installer/windows/ui.wxs b/installer/windows/ui.wxs
new file mode 100644
index 000000000..1d397bf0b
--- /dev/null
+++ b/installer/windows/ui.wxs
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
diff --git a/installer/windows/variables.wxi b/installer/windows/variables.wxi
index cbcdc2935..34f6e0a20 100644
--- a/installer/windows/variables.wxi
+++ b/installer/windows/variables.wxi
@@ -40,8 +40,13 @@
Visual Studio 2013. The build "ARCH" will be set automatically.
-->
-
-
+
+
+
+
+
+
+
-
+
+
+
+
+
diff --git a/libs/DB4S_PATCH_02 b/libs/DB4S_PATCH_02
deleted file mode 100644
index c71750828..000000000
--- a/libs/DB4S_PATCH_02
+++ /dev/null
@@ -1,18 +0,0 @@
-diff --git a/libs/qscintilla/Qt4Qt5/qsciscintilla.cpp b/libs/qscintilla/Qt4Qt5/qsciscintilla.cpp
-index d40b742..4c9fe75 100644
---- a/libs/qscintilla/Qt4Qt5/qsciscintilla.cpp
-+++ b/libs/qscintilla/Qt4Qt5/qsciscintilla.cpp
-@@ -386,7 +386,12 @@ void QsciScintilla::callTip()
- ct = ct_entries.join("\n");
- }
-
-- QByteArray ct_ba = ct.toLatin1();
-+ QByteArray ct_ba;
-+ if (isUtf8())
-+ ct_ba = ct.toUtf8();
-+ else
-+ ct_ba = ct.toLatin1();
-+
- const char *cts = ct_ba.data();
-
- SendScintilla(SCI_CALLTIPSHOW, adjustedCallTipPosition(shift), cts);
diff --git a/libs/DB4S_PATCH_03 b/libs/DB4S_PATCH_03
deleted file mode 100644
index d4008aed8..000000000
--- a/libs/DB4S_PATCH_03
+++ /dev/null
@@ -1,70 +0,0 @@
-diff --git a/libs/qscintilla/Qt4Qt5/Qsci/qsciscintilla.h b/libs/qscintilla/Qt4Qt5/Qsci/qsciscintilla.h
-index 3b5f185..49ca5cc 100644
---- a/libs/qscintilla/Qt4Qt5/Qsci/qsciscintilla.h
-+++ b/libs/qscintilla/Qt4Qt5/Qsci/qsciscintilla.h
-@@ -2009,6 +2009,34 @@ public slots:
- //! \sa zoomIn(), zoomOut()
- virtual void zoomTo(int size);
-
-+ //! For performance, Scintilla does not measure the display width
-+ //! of the document to determine the properties of the horizontal
-+ //! scroll bar. Instead, an assumed width is used. This sets the
-+ //! document width in pixels assumed by Scintilla to \a
-+ //! pixelWidth. The default value is 2000.
-+ //!
-+ //! \sa getScrollWidth(), setScrollWidthTracking()
-+ virtual void setScrollWidth(int pixelWidth);
-+
-+ //! Gets the document width in pixels assumed by Scintilla.
-+ //!
-+ //! \sa setScrollWidth(), setScrollWidthTracking()
-+ virtual int getScrollWidth() const;
-+
-+ //! If scroll width tracking is enabled then the scroll width is
-+ //! adjusted to ensure that all of the lines currently displayed
-+ //! can be completely scrolled. This mode never adjusts the scroll
-+ //! width to be narrower.
-+ //! Sets the scroll width tracking to \a enabled.
-+ //!
-+ //! \sa setScrollWidth(), getScrollWidthTracking()
-+ virtual void setScrollWidthTracking(bool enabled);
-+
-+ //! Gets the current scroll width tracking mode.
-+ //!
-+ //! \sa getScrollWidth(), setScrollWidthTracking()
-+ virtual bool getScrollWidthTracking() const;
-+
- signals:
- //! This signal is emitted whenever the cursor position changes. \a line
- //! contains the line number and \a index contains the character index
-diff --git a/libs/qscintilla/Qt4Qt5/qsciscintilla.cpp b/libs/qscintilla/Qt4Qt5/qsciscintilla.cpp
-index 4c9fe75..31dc579 100644
---- a/libs/qscintilla/Qt4Qt5/qsciscintilla.cpp
-+++ b/libs/qscintilla/Qt4Qt5/qsciscintilla.cpp
-@@ -4481,3 +4481,26 @@ static QColor asQColor(long sci_colour)
- ((int)(sci_colour >> 8)) & 0x00ff,
- ((int)(sci_colour >> 16)) & 0x00ff);
- }
-+
-+void QsciScintilla::setScrollWidth(int pixelWidth)
-+{
-+ SendScintilla(SCI_SETSCROLLWIDTH, pixelWidth);
-+}
-+
-+int QsciScintilla::getScrollWidth() const
-+{
-+ return SendScintilla(SCI_GETSCROLLWIDTH);
-+}
-+
-+void QsciScintilla::setScrollWidthTracking(bool enabled)
-+{
-+ SendScintilla(SCI_SETSCROLLWIDTHTRACKING, enabled);
-+}
-+
-+bool QsciScintilla::getScrollWidthTracking() const
-+{
-+ return SendScintilla(SCI_GETSCROLLWIDTHTRACKING);
-+}
-+
-+
-+
diff --git a/libs/DB4S_PATCH_04 b/libs/DB4S_PATCH_04
deleted file mode 100644
index ed3fa9d21..000000000
--- a/libs/DB4S_PATCH_04
+++ /dev/null
@@ -1,24 +0,0 @@
-diff --git a/libs/qscintilla/lexers/LexJSON.cpp b/libs/qscintilla/lexers/LexJSON.cpp
-index 9c044e5..6c06061 100644
---- a/libs/qscintilla/lexers/LexJSON.cpp
-+++ b/libs/qscintilla/lexers/LexJSON.cpp
-@@ -457,7 +457,9 @@ void SCI_METHOD LexerJSON::Fold(Sci_PositionU startPos,
- LexAccessor styler(pAccess);
- Sci_PositionU currLine = styler.GetLine(startPos);
- Sci_PositionU endPos = startPos + length;
-- int currLevel = styler.LevelAt(currLine) & SC_FOLDLEVELNUMBERMASK;
-+ int currLevel = SC_FOLDLEVELBASE;
-+ if (currLine > 0)
-+ currLevel = styler.LevelAt(currLine - 1) >> 16;
- int nextLevel = currLevel;
- int visibleChars = 0;
- for (Sci_PositionU i = startPos; i < endPos; i++) {
-@@ -472,7 +474,7 @@ void SCI_METHOD LexerJSON::Fold(Sci_PositionU startPos,
- }
- }
- if (atEOL || i == (endPos-1)) {
-- int level = currLevel;
-+ int level = currLevel | nextLevel << 16;
- if (!visibleChars && options.foldCompact) {
- level |= SC_FOLDLEVELWHITEFLAG;
- } else if (nextLevel > currLevel) {
diff --git a/libs/DB4S_PATCH_05 b/libs/DB4S_PATCH_05
new file mode 100644
index 000000000..0b956432b
--- /dev/null
+++ b/libs/DB4S_PATCH_05
@@ -0,0 +1,363 @@
+--- QScintilla_gpl-2.10.8/Qt4Qt5/qscintilla.pro 2018-10-01 15:46:06.000000000 +0200
++++ qscintilla/Qt4Qt5/qscintilla.pro 2018-11-21 19:51:25.870248673 +0100
+@@ -23,24 +23,12 @@
+ !win32:VERSION = 13.2.1
+
+ TEMPLATE = lib
+-CONFIG += qt warn_off thread exceptions hide_symbols
+-
+-CONFIG(debug, debug|release) {
+- mac: {
+- TARGET = qscintilla2_qt$${QT_MAJOR_VERSION}_debug
+- } else {
+- win32: {
+- TARGET = qscintilla2_qt$${QT_MAJOR_VERSION}d
+- } else {
+- TARGET = qscintilla2_qt$${QT_MAJOR_VERSION}
+- }
+- }
+-} else {
+- TARGET = qscintilla2_qt$${QT_MAJOR_VERSION}
+-}
+-
++TARGET = qscintilla2
++CONFIG += qt warn_off thread exceptions hide_symbols staticlib debug_and_release
+ INCLUDEPATH += . ../include ../lexlib ../src
+
++QMAKE_CXXFLAGS += -std=c++11
++
+ !CONFIG(staticlib) {
+ DEFINES += QSCINTILLA_MAKE_DLL
+ }
+@@ -59,11 +47,6 @@
+ DEFINES += QT_NO_ACCESSIBILITY
+ }
+
+-# For old versions of GCC.
+-unix:!macx {
+- CONFIG += c++11
+-}
+-
+ # Comment this in if you want the internal Scintilla classes to be placed in a
+ # Scintilla namespace rather than pollute the global namespace.
+ #DEFINES += SCI_NAMESPACE
+@@ -97,69 +80,20 @@
+
+ HEADERS = \
+ ./Qsci/qsciglobal.h \
+- ./Qsci/qsciscintilla.h \
+- ./Qsci/qsciscintillabase.h \
+- ./Qsci/qsciabstractapis.h \
+- ./Qsci/qsciapis.h \
+ ./Qsci/qscicommand.h \
+ ./Qsci/qscicommandset.h \
+ ./Qsci/qscidocument.h \
+- ./Qsci/qscilexer.h \
+- ./Qsci/qscilexeravs.h \
+- ./Qsci/qscilexerbash.h \
+- ./Qsci/qscilexerbatch.h \
+- ./Qsci/qscilexercmake.h \
+- ./Qsci/qscilexercoffeescript.h \
+- ./Qsci/qscilexercpp.h \
+- ./Qsci/qscilexercsharp.h \
+- ./Qsci/qscilexercss.h \
+- ./Qsci/qscilexercustom.h \
+- ./Qsci/qscilexerd.h \
+- ./Qsci/qscilexerdiff.h \
+- ./Qsci/qscilexeredifact.h \
+- ./Qsci/qscilexerfortran.h \
+- ./Qsci/qscilexerfortran77.h \
+- ./Qsci/qscilexerhtml.h \
+- ./Qsci/qscilexeridl.h \
+- ./Qsci/qscilexerjava.h \
+- ./Qsci/qscilexerjavascript.h \
+- ./Qsci/qscilexerjson.h \
+- ./Qsci/qscilexerlua.h \
+- ./Qsci/qscilexermakefile.h \
+- ./Qsci/qscilexermarkdown.h \
+- ./Qsci/qscilexermatlab.h \
+- ./Qsci/qscilexeroctave.h \
+- ./Qsci/qscilexerpascal.h \
+- ./Qsci/qscilexerperl.h \
+- ./Qsci/qscilexerpostscript.h \
+- ./Qsci/qscilexerpo.h \
+- ./Qsci/qscilexerpov.h \
+- ./Qsci/qscilexerproperties.h \
+- ./Qsci/qscilexerpython.h \
+- ./Qsci/qscilexerruby.h \
+- ./Qsci/qscilexerspice.h \
+- ./Qsci/qscilexersql.h \
+- ./Qsci/qscilexertcl.h \
+- ./Qsci/qscilexertex.h \
+- ./Qsci/qscilexerverilog.h \
+- ./Qsci/qscilexervhdl.h \
+- ./Qsci/qscilexerxml.h \
+- ./Qsci/qscilexeryaml.h \
+- ./Qsci/qscimacro.h \
+ ./Qsci/qsciprinter.h \
+ ./Qsci/qscistyle.h \
+ ./Qsci/qscistyledtext.h \
+ ListBoxQt.h \
+- SciAccessibility.h \
+- SciClasses.h \
+ SciNamespace.h \
+- ScintillaQt.h \
+ ../include/ILexer.h \
+ ../include/Platform.h \
+- ../include/Sci_Position.h \
+ ../include/SciLexer.h \
+ ../include/Scintilla.h \
+ ../include/ScintillaWidget.h \
++ ../include/Sci_Position.h \
+ ../lexlib/Accessor.h \
+ ../lexlib/CharacterCategory.h \
+ ../lexlib/CharacterSet.h \
+@@ -170,7 +104,6 @@
+ ../lexlib/LexerSimple.h \
+ ../lexlib/OptionSet.h \
+ ../lexlib/PropSetSimple.h \
+- ../lexlib/StringCopy.h \
+ ../lexlib/StyleContext.h \
+ ../lexlib/SubStyles.h \
+ ../lexlib/WordList.h \
+@@ -184,15 +117,12 @@
+ ../src/ContractionState.h \
+ ../src/Decoration.h \
+ ../src/Document.h \
+- ../src/EditModel.h \
+ ../src/Editor.h \
+- ../src/EditView.h \
+ ../src/ExternalLexer.h \
+ ../src/FontQuality.h \
+ ../src/Indicator.h \
+ ../src/KeyMap.h \
+ ../src/LineMarker.h \
+- ../src/MarginView.h \
+ ../src/Partitioning.h \
+ ../src/PerLine.h \
+ ../src/PositionCache.h \
+@@ -205,7 +135,26 @@
+ ../src/UnicodeFromUTF8.h \
+ ../src/UniConversion.h \
+ ../src/ViewStyle.h \
+- ../src/XPM.h
++ ../src/XPM.h \
++ ../src/Position.h \
++ ../src/SparseVector.h \
++ ./Qsci/qsciscintilla.h \
++ ./Qsci/qsciscintillabase.h \
++ ./Qsci/qsciabstractapis.h \
++ ./Qsci/qsciapis.h \
++ ./Qsci/qscilexer.h \
++ ./Qsci/qscilexercustom.h \
++ ./Qsci/qscilexersql.h \
++ ./Qsci/qscilexerjson.h \
++ ./Qsci/qscilexerhtml.h \
++ ./Qsci/qscilexerxml.h \
++ ./Qsci/qscilexerjavascript.h \
++ ./Qsci/qscilexercpp.h \
++ ./Qsci/qscilexerpython.h \
++ ./Qsci/qscimacro.h \
++ SciClasses.h \
++ ScintillaQt.h \
++ SciAccessibility.h
+
+ SOURCES = \
+ qsciscintilla.cpp \
+@@ -216,161 +165,28 @@
+ qscicommandset.cpp \
+ qscidocument.cpp \
+ qscilexer.cpp \
+- qscilexeravs.cpp \
+- qscilexerbash.cpp \
+- qscilexerbatch.cpp \
+- qscilexercmake.cpp \
+- qscilexercoffeescript.cpp \
+- qscilexercpp.cpp \
+- qscilexercsharp.cpp \
+- qscilexercss.cpp \
+ qscilexercustom.cpp \
+- qscilexerd.cpp \
+- qscilexerdiff.cpp \
+- qscilexeredifact.cpp \
+- qscilexerfortran.cpp \
+- qscilexerfortran77.cpp \
++ qscilexersql.cpp \
++ qscilexerjson.cpp \
+ qscilexerhtml.cpp \
+- qscilexeridl.cpp \
+- qscilexerjava.cpp \
++ qscilexerxml.cpp \
+ qscilexerjavascript.cpp \
+- qscilexerjson.cpp \
+- qscilexerlua.cpp \
+- qscilexermakefile.cpp \
+- qscilexermarkdown.cpp \
+- qscilexermatlab.cpp \
+- qscilexeroctave.cpp \
+- qscilexerpascal.cpp \
+- qscilexerperl.cpp \
+- qscilexerpostscript.cpp \
+- qscilexerpo.cpp \
+- qscilexerpov.cpp \
+- qscilexerproperties.cpp \
++ qscilexercpp.cpp \
+ qscilexerpython.cpp \
+- qscilexerruby.cpp \
+- qscilexerspice.cpp \
+- qscilexersql.cpp \
+- qscilexertcl.cpp \
+- qscilexertex.cpp \
+- qscilexerverilog.cpp \
+- qscilexervhdl.cpp \
+- qscilexerxml.cpp \
+- qscilexeryaml.cpp \
+ qscimacro.cpp \
+ qsciprinter.cpp \
+ qscistyle.cpp \
+ qscistyledtext.cpp \
+- MacPasteboardMime.cpp \
+- InputMethod.cpp \
+- SciAccessibility.cpp \
++ MacPasteboardMime.cpp \
++ InputMethod.cpp \
+ SciClasses.cpp \
+ ListBoxQt.cpp \
+ PlatQt.cpp \
+ ScintillaQt.cpp \
+- ../lexers/LexA68k.cpp \
+- ../lexers/LexAbaqus.cpp \
+- ../lexers/LexAda.cpp \
+- ../lexers/LexAPDL.cpp \
+- ../lexers/LexAsm.cpp \
+- ../lexers/LexAsn1.cpp \
+- ../lexers/LexASY.cpp \
+- ../lexers/LexAU3.cpp \
+- ../lexers/LexAVE.cpp \
+- ../lexers/LexAVS.cpp \
+- ../lexers/LexBaan.cpp \
+- ../lexers/LexBash.cpp \
+- ../lexers/LexBasic.cpp \
+- ../lexers/LexBatch.cpp \
+- ../lexers/LexBibTeX.cpp \
+- ../lexers/LexBullant.cpp \
+- ../lexers/LexCaml.cpp \
+- ../lexers/LexCLW.cpp \
+- ../lexers/LexCmake.cpp \
+- ../lexers/LexCOBOL.cpp \
+- ../lexers/LexCoffeeScript.cpp \
+- ../lexers/LexConf.cpp \
+- ../lexers/LexCPP.cpp \
+- ../lexers/LexCrontab.cpp \
+- ../lexers/LexCsound.cpp \
+- ../lexers/LexCSS.cpp \
+- ../lexers/LexD.cpp \
+- ../lexers/LexDiff.cpp \
+- ../lexers/LexDMAP.cpp \
+- ../lexers/LexDMIS.cpp \
+- ../lexers/LexECL.cpp \
+- ../lexers/LexEDIFACT.cpp \
+- ../lexers/LexEiffel.cpp \
+- ../lexers/LexErlang.cpp \
+- ../lexers/LexErrorList.cpp \
+- ../lexers/LexEScript.cpp \
+- ../lexers/LexFlagship.cpp \
+- ../lexers/LexForth.cpp \
+- ../lexers/LexFortran.cpp \
+- ../lexers/LexGAP.cpp \
+- ../lexers/LexGui4Cli.cpp \
+- ../lexers/LexHaskell.cpp \
+- ../lexers/LexHex.cpp \
+- ../lexers/LexHTML.cpp \
+- ../lexers/LexInno.cpp \
+- ../lexers/LexJSON.cpp \
+- ../lexers/LexKix.cpp \
+- ../lexers/LexKVIrc.cpp \
+- ../lexers/LexLaTeX.cpp \
+- ../lexers/LexLisp.cpp \
+- ../lexers/LexLout.cpp \
+- ../lexers/LexLua.cpp \
+- ../lexers/LexMagik.cpp \
+- ../lexers/LexMake.cpp \
+- ../lexers/LexMarkdown.cpp \
+- ../lexers/LexMatlab.cpp \
+- ../lexers/LexMetapost.cpp \
+- ../lexers/LexMMIXAL.cpp \
+- ../lexers/LexModula.cpp \
+- ../lexers/LexMPT.cpp \
+- ../lexers/LexMSSQL.cpp \
+- ../lexers/LexMySQL.cpp \
+- ../lexers/LexNimrod.cpp \
+- ../lexers/LexNsis.cpp \
+- ../lexers/LexNull.cpp \
+- ../lexers/LexOpal.cpp \
+- ../lexers/LexOScript.cpp \
+- ../lexers/LexPascal.cpp \
+- ../lexers/LexPB.cpp \
+- ../lexers/LexPerl.cpp \
+- ../lexers/LexPLM.cpp \
+- ../lexers/LexPO.cpp \
+- ../lexers/LexPOV.cpp \
+- ../lexers/LexPowerPro.cpp \
+- ../lexers/LexPowerShell.cpp \
+- ../lexers/LexProgress.cpp \
+- ../lexers/LexProps.cpp \
+- ../lexers/LexPS.cpp \
+- ../lexers/LexPython.cpp \
+- ../lexers/LexR.cpp \
+- ../lexers/LexRebol.cpp \
+- ../lexers/LexRegistry.cpp \
+- ../lexers/LexRuby.cpp \
+- ../lexers/LexRust.cpp \
+- ../lexers/LexScriptol.cpp \
+- ../lexers/LexSmalltalk.cpp \
+- ../lexers/LexSML.cpp \
+- ../lexers/LexSorcus.cpp \
+- ../lexers/LexSpecman.cpp \
+- ../lexers/LexSpice.cpp \
++ SciAccessibility.cpp \
+ ../lexers/LexSQL.cpp \
+- ../lexers/LexSTTXT.cpp \
+- ../lexers/LexTACL.cpp \
+- ../lexers/LexTADS3.cpp \
+- ../lexers/LexTAL.cpp \
+- ../lexers/LexTCL.cpp \
+- ../lexers/LexTCMD.cpp \
+- ../lexers/LexTeX.cpp \
+- ../lexers/LexTxt2tags.cpp \
+- ../lexers/LexVB.cpp \
+- ../lexers/LexVerilog.cpp \
+- ../lexers/LexVHDL.cpp \
+- ../lexers/LexVisualProlog.cpp \
+- ../lexers/LexYAML.cpp \
++ ../lexers/LexJSON.cpp \
++ ../lexers/LexHTML.cpp \
+ ../lexlib/Accessor.cpp \
+ ../lexlib/CharacterCategory.cpp \
+ ../lexlib/CharacterSet.cpp \
+@@ -391,20 +207,20 @@
+ ../src/ContractionState.cpp \
+ ../src/Decoration.cpp \
+ ../src/Document.cpp \
+- ../src/EditModel.cpp \
+ ../src/Editor.cpp \
++ ../src/EditModel.cpp \
+ ../src/EditView.cpp \
+ ../src/ExternalLexer.cpp \
+ ../src/Indicator.cpp \
+- ../src/KeyMap.cpp \
++ ../src/KeyMap.cpp \
+ ../src/LineMarker.cpp \
+ ../src/MarginView.cpp \
+ ../src/PerLine.cpp \
+ ../src/PositionCache.cpp \
+- ../src/RESearch.cpp \
++ ../src/RESearch.cpp \
+ ../src/RunStyles.cpp \
+- ../src/ScintillaBase.cpp \
+- ../src/Selection.cpp \
++ ../src/ScintillaBase.cpp \
++ ../src/Selection.cpp \
+ ../src/Style.cpp \
+ ../src/UniConversion.cpp \
+ ../src/ViewStyle.cpp \
diff --git a/libs/DB4S_PATCH_06 b/libs/DB4S_PATCH_06
new file mode 100644
index 000000000..eff21c8b6
--- /dev/null
+++ b/libs/DB4S_PATCH_06
@@ -0,0 +1,131 @@
+--- QScintilla_gpl-2.10.8/src/Catalogue.cpp 2018-10-01 15:41:57.000000000 +0200
++++ qscintilla/src/Catalogue.cpp 2018-11-18 16:09:52.796704316 +0100
+@@ -77,124 +77,10 @@
+
+ //++Autogenerated -- run scripts/LexGen.py to regenerate
+ //**\(\tLINK_LEXER(\*);\n\)
+- LINK_LEXER(lmA68k);
+- LINK_LEXER(lmAbaqus);
+- LINK_LEXER(lmAda);
+- LINK_LEXER(lmAPDL);
+- LINK_LEXER(lmAs);
+- LINK_LEXER(lmAsm);
+- LINK_LEXER(lmAsn1);
+- LINK_LEXER(lmASY);
+- LINK_LEXER(lmAU3);
+- LINK_LEXER(lmAVE);
+- LINK_LEXER(lmAVS);
+- LINK_LEXER(lmBaan);
+- LINK_LEXER(lmBash);
+- LINK_LEXER(lmBatch);
+- LINK_LEXER(lmBibTeX);
+- LINK_LEXER(lmBlitzBasic);
+- LINK_LEXER(lmBullant);
+- LINK_LEXER(lmCaml);
+- LINK_LEXER(lmClw);
+- LINK_LEXER(lmClwNoCase);
+- LINK_LEXER(lmCmake);
+- LINK_LEXER(lmCOBOL);
+- LINK_LEXER(lmCoffeeScript);
+- LINK_LEXER(lmConf);
+- LINK_LEXER(lmCPP);
+- LINK_LEXER(lmCPPNoCase);
+- LINK_LEXER(lmCsound);
+- LINK_LEXER(lmCss);
+- LINK_LEXER(lmD);
+- LINK_LEXER(lmDiff);
+- LINK_LEXER(lmDMAP);
+- LINK_LEXER(lmDMIS);
+- LINK_LEXER(lmECL);
+- LINK_LEXER(lmEDIFACT);
+- LINK_LEXER(lmEiffel);
+- LINK_LEXER(lmEiffelkw);
+- LINK_LEXER(lmErlang);
+- LINK_LEXER(lmErrorList);
+- LINK_LEXER(lmESCRIPT);
+- LINK_LEXER(lmF77);
+- LINK_LEXER(lmFlagShip);
+- LINK_LEXER(lmForth);
+- LINK_LEXER(lmFortran);
+- LINK_LEXER(lmFreeBasic);
+- LINK_LEXER(lmGAP);
+- LINK_LEXER(lmGui4Cli);
+- LINK_LEXER(lmHaskell);
+- LINK_LEXER(lmHTML);
+- LINK_LEXER(lmIHex);
+- LINK_LEXER(lmInno);
+- LINK_LEXER(lmJSON);
+- LINK_LEXER(lmKix);
+- LINK_LEXER(lmKVIrc);
+- LINK_LEXER(lmLatex);
+- LINK_LEXER(lmLISP);
+- LINK_LEXER(lmLiterateHaskell);
+- LINK_LEXER(lmLot);
+- LINK_LEXER(lmLout);
+- LINK_LEXER(lmLua);
+- LINK_LEXER(lmMagikSF);
+- LINK_LEXER(lmMake);
+- LINK_LEXER(lmMarkdown);
+- LINK_LEXER(lmMatlab);
+- LINK_LEXER(lmMETAPOST);
+- LINK_LEXER(lmMMIXAL);
+- LINK_LEXER(lmModula);
+- LINK_LEXER(lmMSSQL);
+- LINK_LEXER(lmMySQL);
+- LINK_LEXER(lmNimrod);
+- LINK_LEXER(lmNncrontab);
+- LINK_LEXER(lmNsis);
+- LINK_LEXER(lmNull);
+- LINK_LEXER(lmOctave);
+- LINK_LEXER(lmOpal);
+- LINK_LEXER(lmOScript);
+- LINK_LEXER(lmPascal);
+- LINK_LEXER(lmPB);
+- LINK_LEXER(lmPerl);
+- LINK_LEXER(lmPHPSCRIPT);
+- LINK_LEXER(lmPLM);
+- LINK_LEXER(lmPO);
+- LINK_LEXER(lmPOV);
+- LINK_LEXER(lmPowerPro);
+- LINK_LEXER(lmPowerShell);
+- LINK_LEXER(lmProgress);
+- LINK_LEXER(lmProps);
+- LINK_LEXER(lmPS);
+- LINK_LEXER(lmPureBasic);
+- LINK_LEXER(lmPython);
+- LINK_LEXER(lmR);
+- LINK_LEXER(lmREBOL);
+- LINK_LEXER(lmRegistry);
+- LINK_LEXER(lmRuby);
+- LINK_LEXER(lmRust);
+- LINK_LEXER(lmScriptol);
+- LINK_LEXER(lmSmalltalk);
+- LINK_LEXER(lmSML);
+- LINK_LEXER(lmSorc);
+- LINK_LEXER(lmSpecman);
+- LINK_LEXER(lmSpice);
+- LINK_LEXER(lmSQL);
+- LINK_LEXER(lmSrec);
+- LINK_LEXER(lmSTTXT);
+- LINK_LEXER(lmTACL);
+- LINK_LEXER(lmTADS3);
+- LINK_LEXER(lmTAL);
+- LINK_LEXER(lmTCL);
+- LINK_LEXER(lmTCMD);
+- LINK_LEXER(lmTEHex);
+- LINK_LEXER(lmTeX);
+- LINK_LEXER(lmTxt2tags);
+- LINK_LEXER(lmVB);
+- LINK_LEXER(lmVBScript);
+- LINK_LEXER(lmVerilog);
+- LINK_LEXER(lmVHDL);
+- LINK_LEXER(lmVisualProlog);
+- LINK_LEXER(lmXML);
+- LINK_LEXER(lmYAML);
++ LINK_LEXER(lmSQL);
++ LINK_LEXER(lmJSON);
++ LINK_LEXER(lmHTML);
++ LINK_LEXER(lmXML);
+
+ //--Autogenerated -- end of automatically generated section
+
diff --git a/libs/qscintilla/ChangeLog b/libs/qscintilla/ChangeLog
index f80f57433..89f4563ea 100644
--- a/libs/qscintilla/ChangeLog
+++ b/libs/qscintilla/ChangeLog
@@ -1,5 +1,396 @@
+2018-10-01 Phil Thompson
+
+ * NEWS:
+ Released as v2.10.8.
+ [57c8b6076899] [2.10.8] <2.10-maint>
+
+2018-09-30 Phil Thompson
+
+ * NEWS:
+ Updated the NEWS file.
+ [345f597a4a90] <2.10-maint>
+
+2018-08-02 Phil Thompson
+
+ * qt/SciAccessibility.cpp:
+ More accessibility fixes.
+ [2cc2d6865762] <2.10-maint>
+
+ * qt/SciAccessibility.cpp, qt/SciAccessibility.h, qt/qscintilla.pro:
+ Refactored the accessibility support to use less of the Qt stuff
+ which doesn't handle CR-LF end-of-lines.
+ [8b2d6e3e73d8] <2.10-maint>
+
+2018-07-15 Phil Thompson
+
+ * NEWS:
+ Updated the NEWS file.
+ [fc1deaccc716] <2.10-maint>
+
+2018-06-29 Phil Thompson
+
+ * .hgtags:
+ Added tag 2.10.7 for changeset 60598a703fd4
+ [8828f9ad7dc6] <2.10-maint>
+
+ * NEWS:
+ Released as v2.10.7.
+ [60598a703fd4] [2.10.7] <2.10-maint>
+
+ * NEWS:
+ Updated the NEWS file.
+ [92edf18019ec] <2.10-maint>
+
+2018-06-25 Phil Thompson
+
+ * NEWS, Python/sip/qsciscintillabase.sip:
+ Tweaked the signature of the QscoScintillaBase::SCN_MACRORECORD()
+ signal so that it matches what Qt uses so that the signal test
+ passes.
+ [bfcd9319329a] <2.10-maint>
+
+2018-06-23 Phil Thompson
+
+ * .hgtags:
+ Added tag 2.10.6 for changeset dc0993c72a05
+ [9c774d0a9694] <2.10-maint>
+
+ * NEWS:
+ Released as v2.10.6.
+ [dc0993c72a05] [2.10.6] <2.10-maint>
+
+2018-06-22 Phil Thompson
+
+ * .hgtags:
+ Added tag 2.10.5 for changeset f35b3a43a241
+ [8cf5694ca328] <2.10-maint>
+
+ * NEWS:
+ Released as v2.10.5.
+ [f35b3a43a241] [2.10.5] <2.10-maint>
+
+2018-06-21 Phil Thompson
+
+ * NEWS:
+ Updated the NEWS file.
+ [12cb1a2f5ec6] <2.10-maint>
+
+2018-06-19 Phil Thompson
+
+ * NEWS, Python/sip/qscistyle.sip, qt/qscistyle.cpp, qt/qscistyle.h:
+ Added setStyle() to QsciStyle.
+ [cf5281041224] <2.10-maint>
+
+2018-06-16 Phil Thompson
+
+ * qt/qscintilla_es.qm, qt/qscintilla_es.ts:
+ Updated Spanish translations from Jaime Seuma.
+ [a479b9f5436f] <2.10-maint>
+
+2018-06-09 Phil Thompson
+
+ * qt/qscintilla_cs.qm, qt/qscintilla_de.qm, qt/qscintilla_de.ts,
+ qt/qscintilla_es.qm, qt/qscintilla_fr.qm, qt/qscintilla_pt_br.qm:
+ Updated German translations from Detlev.
+ [f69379899fb3] <2.10-maint>
+
+2018-06-04 Phil Thompson
+
+ * NEWS, Python/configure.py:
+ Implemented support for the .dist-info directory.
+ [387aa9bf6ad8] <2.10-maint>
+
+2018-06-03 Phil Thompson
+
+ * NEWS, Python/sip/qsciscintillabase.sip, qt/PlatQt.cpp,
+ qt/ScintillaQt.cpp, qt/qsciscintillabase.cpp,
+ qt/qsciscintillabase.h:
+ Fixes for font changes caused by dragging to a different display.
+ [27b1f435e27a] <2.10-maint>
+
+2018-05-29 Phil Thompson
+
+ * qt/PlatQt.cpp:
+ Disable to macOS use of integer font metrics for Qt5 as it is
+ (probably) specific to Qt4.
+ [c32fe0c4e55d] <2.10-maint>
+
+ * qt/PlatQt.cpp:
+ Fixed cursor positioning when using a secondary display with
+ different scaling to the primary.
+ [20420b7c4a4d] <2.10-maint>
+
+2018-05-22 Phil Thompson
+
+ * qt/qscilexerverilog.cpp:
+ Fix the handling of the 'fold.verilog.flags' property in the Verilog
+ lexer.
+ [9b698ba38c2b] <2.10-maint>
+
+2018-05-16 Phil Thompson
+
+ * qt/qscilexerverilog.cpp, qt/qscintilla_cs.ts, qt/qscintilla_de.ts,
+ qt/qscintilla_es.ts, qt/qscintilla_fr.ts, qt/qscintilla_pt_br.ts:
+ Added the missing descriptions of inactive styles in the Verilog
+ lexer.
+ [4be691232e03] <2.10-maint>
+
+2018-05-15 Phil Thompson
+
+ * qt/qscilexer.h:
+ Updated the QsciLexer::keywords() documentation to point out that
+ sets are numbered from 1.
+ [5954b91e7ec1] <2.10-maint>
+
+2018-04-26 Phil Thompson
+
+ * Python/sip/qscilexeredifact.sip, qt/qscilexeredifact.cpp,
+ qt/qscilexeredifact.h:
+ Added some default colours to the EDIFACT lexer.
+ [175598286833] <2.10-maint>
+
+2018-04-20 Phil Thompson
+
+ * NEWS, Python/sip/qscilexeredifact.sip, qt/qscilexeredifact.cpp,
+ qt/qscilexeredifact.h, qt/qscintilla.pro, qt/qscintilla_cs.ts,
+ qt/qscintilla_de.ts, qt/qscintilla_es.ts, qt/qscintilla_fr.ts,
+ qt/qscintilla_pt_br.ts:
+ Added the QsciLexerEDIFACT class.
+ [c1e31857f3e7] <2.10-maint>
+
+ * qt/qsciscintilla.cpp, qt/qsciscintillabase.cpp,
+ qt/qsciscintillabase.h:
+ If the context menu is invoked when the cursor is outside the
+ selection then the selection is cleared and the cursor moved to
+ where the mouse was clicked.
+ [7d230dad9379] <2.10-maint>
+
+2018-04-19 Phil Thompson
+
+ * Python/sip/qsciscintilla.sip, qt/qscintilla.pro,
+ qt/qsciscintilla.cpp, qt/qsciscintilla.h:
+ Control-wheel up/down will now zoom in and out.
+ [ba0049fe03b6] <2.10-maint>
+
+2018-04-11 Phil Thompson
+
+ * qt/PlatQt.cpp, qt/qsciabstractapis.cpp, qt/qscilexerpython.cpp,
+ qt/qscilexerxml.cpp, qt/qsciscintilla.cpp:
+ Removed warning messages about unused variables.
+ [c2008ef93ee0] <2.10-maint>
+
+ * qt/qscicommandset.cpp:
+ Fixed the saving of alternative keys in the settings.
+ [687470e937c1] <2.10-maint>
+
+ * qt/ScintillaQt.cpp, qt/qsciapis.cpp, qt/qsciscintilla.cpp:
+ Various stylistic changes to eliminate some warning messages.
+ [dc753169870e] <2.10-maint>
+
+2018-04-10 Phil Thompson
+
+ * .hgtags:
+ Added tag 2.10.4 for changeset 24cb0edc89a9
+ [05ada666e2cf] <2.10-maint>
+
+ * NEWS:
+ Released as v2.10.4.
+ [24cb0edc89a9] [2.10.4] <2.10-maint>
+
+ * qt/SciAccessibility.cpp:
+ Fixed the retrieval of accessibility attributes.
+ [e430a7dd7818] <2.10-maint>
+
+2018-04-07 Phil Thompson
+
+ * qt/qscilexer.cpp:
+ Use STYLE_MAX to define the maximum number of styles.
+ [23ca0cad0227] <2.10-maint>
+
+2018-03-11 Phil Thompson
+
+ * qt/qscintilla.pro:
+ Force QT_NO_ACCESSIBILITY when building against Qt4.
+ [b65f48ec1852] <2.10-maint>
+
+2018-02-27 Phil Thompson
+
+ * .hgtags:
+ Added tag 2.10.3 for changeset bc769d6fcf53
+ [279625f1d8c9] <2.10-maint>
+
+ * NEWS:
+ Released as v2.10.3.
+ [bc769d6fcf53] [2.10.3] <2.10-maint>
+
+ * rb-product:
+ Updated the PyQt5 wheel dependency.
+ [7cef6e297ddf] <2.10-maint>
+
+ * NEWS:
+ Updated the NEWS file.
+ [1e073e29eca4] <2.10-maint>
+
+2018-02-10 Phil Thompson
+
+ * qsci/api/python/Python-3.7.api:
+ Added the API file for Python v3.70b1.
+ [6d0032674462] <2.10-maint>
+
+2018-02-07 Phil Thompson
+
+ * qt/qsciscintilla.cpp:
+ Fix the hotspot active background colour.
+ [45cfd8c68394] <2.10-maint>
+
+ * qt/SciAccessibility.cpp, qt/SciAccessibility.h:
+ Completed the accessibility support.
+ [2af3a5b045fa] <2.10-maint>
+
+2018-02-06 Phil Thompson
+
+ * qt/SciAccessibility.cpp, qt/SciAccessibility.h:
+ Implemented all of the accessible interface except for attributes().
+ [434539a243dc] <2.10-maint>
+
+ * qt/SciAccessibility.cpp:
+ Implemented more of the accessible interface.
+ [e8f3df5442cc] <2.10-maint>
+
+ * qt/SciAccessibility.cpp, qt/SciAccessibility.h, qt/ScintillaQt.cpp:
+ Implemented more of the accessible interface.
+ [fb26d9fdba27] <2.10-maint>
+
+2018-02-05 Phil Thompson
+
+ * qt/SciAccessibility.cpp, qt/SciAccessibility.h, qt/ScintillaQt.cpp,
+ qt/qsciscintillabase.cpp:
+ More accessibility progress.
+ [ea2432348b49] <2.10-maint>
+
+ * qt/SciAccessibility.cpp, qt/SciAccessibility.h, qt/ScintillaQt.cpp:
+ Some progress on accessibility.
+ [055345b62d7b] <2.10-maint>
+
+ * qt/qscintilla.pro:
+ Updated the version of the shared library.
+ [fb50133f8770] <2.10-maint>
+
+2018-02-04 Phil Thompson
+
+ * qt/SciAccessibility.cpp, qt/SciAccessibility.h, qt/qscintilla.pro,
+ qt/qsciscintillabase.cpp:
+ Added the stubs for accessibility support.
+ [61e00a4f944f] <2.10-maint>
+
+2017-11-23 Phil Thompson
+
+ * .hgtags:
+ Added tag 2.10.2 for changeset bdfb9584af36
+ [d127fc44d4c4] <2.10-maint>
+
+ * NEWS:
+ Released as v2.10.2.
+ [bdfb9584af36] [2.10.2] <2.10-maint>
+
+ * qt/qscintilla.pro:
+ Bumed the .so minor version.
+ [4bb28057d3c2] <2.10-maint>
+
+2017-11-13 Phil Thompson
+
+ * NEWS, Python/sip/qsciscintilla.sip, qt/qsciscintilla.cpp,
+ qt/qsciscintilla.h:
+ Added setScrollWidth() , scrollWidth, setScrollWidthTracking() and
+ scrollWidthTracking() to QsciScintilla.
+ [c6e64e99cb12] <2.10-maint>
+
+2017-11-01 Phil Thompson
+
+ * qt/qsciscintilla.cpp:
+ Fixed the handling of UTF8 call tips.
+ [7aa9b863f330] <2.10-maint>
+
+2017-07-04 Phil Thompson
+
+ * qt/qscintilla.pro:
+ Fixed case sensitivity of a couple of file names.
+ [e9d9b80fd61b] <2.10-maint>
+
+ * .hgignore:
+ Ignore the new-style build directory.
+ [6c20c6b41705] <2.10-maint>
+
+2017-07-03 Phil Thompson
+
+ * .hgtags:
+ Added tag 2.10.1 for changeset 20e0e2d419ba
+ [d6eba6c9e5ce] <2.10-maint>
+
+ * NEWS:
+ Released as v2.10.1.
+ [20e0e2d419ba] [2.10.1] <2.10-maint>
+
+ * rb-product:
+ Updated the PyQt5 dependency to v5.9.
+ [83200ee6b295] <2.10-maint>
+
+2017-05-24 Phil Thompson
+
+ * lib/README.doc:
+ Updated the docs regarding use of build options supported by
+ Scintilla.
+ [fe6e73057d9e] <2.10-maint>
+
+2017-05-15 Phil Thompson
+
+ * Python/sip/qscilexer.sip, Python/sip/qscilexeravs.sip,
+ Python/sip/qscilexerbash.sip, Python/sip/qscilexerbatch.sip,
+ Python/sip/qscilexercoffeescript.sip, Python/sip/qscilexercpp.sip,
+ Python/sip/qscilexercss.sip, Python/sip/qscilexerd.sip,
+ Python/sip/qscilexerfortran77.sip, Python/sip/qscilexerhtml.sip,
+ Python/sip/qscilexerlua.sip, Python/sip/qscilexerpascal.sip,
+ Python/sip/qscilexerperl.sip, Python/sip/qscilexerpostscript.sip,
+ Python/sip/qscilexerpov.sip, Python/sip/qscilexerpython.sip,
+ Python/sip/qscilexerruby.sip, Python/sip/qscilexerspice.sip,
+ Python/sip/qscilexersql.sip, Python/sip/qscilexertcl.sip,
+ Python/sip/qscilexerverilog.sip, Python/sip/qscilexervhdl.sip:
+ Added the lexer-specific re-implementations of previously internal
+ methods to the Python bindings.
+ [e8402392cedc] <2.10-maint>
+
+2017-03-22 Phil Thompson
+
+ * qt/qscintilla.pro:
+ Enabled explicit C++11 support for Linux for old versions of GCC.
+ [e0e0b344ccf1] <2.10-maint>
+
+2017-03-16 Phil Thompson
+
+ * qt/qscilexer.cpp:
+ Changed the default macOS font to Menlo 12pt as it has bold etc.
+ [39d69e37d352] <2.10-maint>
+
+ * qt/qscilexer.cpp:
+ Changed the default font on macOS to Monaco 12pt.
+ [9030535e2457] <2.10-maint>
+
+ * Python/configure.py:
+ Fixed the rpath change of the Python bindings on macOS.
+ [dd45e695812a] <2.10-maint>
+
+2017-02-22 Phil Thompson
+
+ * qt/qscintilla.pro:
+ Fixed the .pro file so that debug builds match the features file.
+ [1aedd0c6eeda] <2.10-maint>
+
2017-02-20 Phil Thompson
+ * .hgtags:
+ Added tag 2.10 for changeset 6c07847b2835
+ [2442f8d2df34]
+
* NEWS:
Released as v2.10.
[6c07847b2835] [2.10]
diff --git a/libs/qscintilla/NEWS b/libs/qscintilla/NEWS
index d2025143c..8ea4093fd 100644
--- a/libs/qscintilla/NEWS
+++ b/libs/qscintilla/NEWS
@@ -1,3 +1,39 @@
+v2.10.8 1st October 2018
+ - Bug fixes.
+
+v2.10.7 2nd July 2018
+ - Bug fixes.
+
+v2.10.6 24th June 2018
+ - A pseudo-release to create a version number for updated Python wheels.
+
+v2.10.5 23rd June 2018
+ - Added the QsciLexerEDIFACT class.
+ - Added setStyle() to QsciStyle.
+ - Control-wheel scroll will now zoom in and out of the document.
+ - Buffered drawing is now disabled by default.
+ - The Python bindings create a PEP 376 .dist-info directory on installation
+ that provides version information for dependent packages and allows pip to
+ uninstall.
+ - Added the --no-dist-info option to the Python bindings' configure.py.
+ - Bug fixes.
+
+v2.10.4 10th April 2018
+ - Bug fixes.
+
+v2.10.3 26th February 2018
+ - Added accessibility support.
+ - Added the API file for Python v3.7.
+
+v2.10.2 23rd November 2017
+ - Added setScrollWidth() , scrollWidth, setScrollWidthTracking() and
+ scrollWidthTracking() to QsciScintilla.
+ - Bug fixes.
+
+v2.10.1 3rd July 2017
+ - Changed the default font on macOS to Menlo 12pt.
+ - Added previously internal lexer methods to the Python bindings.
+
v2.10 20th February 2017
- Based on Scintilla v3.7.2.
- Added the QsciLexerJSON class.
diff --git a/libs/qscintilla/Qt4Qt5/CMakeLists.txt b/libs/qscintilla/Qt4Qt5/CMakeLists.txt
index fbdeb4fbc..6929dd8f5 100644
--- a/libs/qscintilla/Qt4Qt5/CMakeLists.txt
+++ b/libs/qscintilla/Qt4Qt5/CMakeLists.txt
@@ -1,6 +1,7 @@
cmake_minimum_required(VERSION 2.8.12.2)
-set(CMAKE_AUTOMOC ON)
+# Disable AUTOMOC because it cannot be made to work with QScintilla
+set(CMAKE_AUTOMOC OFF)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
find_package(Qt5 REQUIRED COMPONENTS PrintSupport Widgets)
@@ -39,6 +40,7 @@ set(QSCINTILLA_SRC
ListBoxQt.cpp
PlatQt.cpp
ScintillaQt.cpp
+ SciAccessibility.cpp
../lexers/LexSQL.cpp
../lexers/LexJSON.cpp
../lexers/LexHTML.cpp
@@ -161,11 +163,14 @@ set(QSCINTILLA_MOC_HDR
./Qsci/qscimacro.h
SciClasses.h
ScintillaQt.h
+ SciAccessibility.h
)
+QT5_WRAP_CPP(QSCINTILLA_WRAP_MOC_HDR ${QSCINTILLA_MOC_HDR})
+
include_directories(. ../include ../lexlib ../src)
-add_library(qscintilla2 ${QSCINTILLA_SRC} ${QSCINTILLA_HDR} ${QSCINTILLA_MOC_HDR} ${QSCINTILLA_MOC})
+add_library(qscintilla2 ${QSCINTILLA_SRC} ${QSCINTILLA_HDR} ${QSCINTILLA_MOC_HDR} ${QSCINTILLA_MOC} ${QSCINTILLA_WRAP_MOC_HDR})
target_link_libraries(qscintilla2 Qt5::Widgets Qt5::PrintSupport)
diff --git a/libs/qscintilla/Qt4Qt5/ListBoxQt.cpp b/libs/qscintilla/Qt4Qt5/ListBoxQt.cpp
index 04741c121..427529ccc 100644
--- a/libs/qscintilla/Qt4Qt5/ListBoxQt.cpp
+++ b/libs/qscintilla/Qt4Qt5/ListBoxQt.cpp
@@ -1,7 +1,7 @@
// This module implements the specialisation of QListBox that handles the
// Scintilla double-click callback.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
diff --git a/libs/qscintilla/Qt4Qt5/ListBoxQt.h b/libs/qscintilla/Qt4Qt5/ListBoxQt.h
index 31df4f0c9..ef9744027 100644
--- a/libs/qscintilla/Qt4Qt5/ListBoxQt.h
+++ b/libs/qscintilla/Qt4Qt5/ListBoxQt.h
@@ -1,7 +1,7 @@
// This defines the specialisation of QListBox that handles the Scintilla
// double-click callback.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
diff --git a/libs/qscintilla/Qt4Qt5/MacPasteboardMime.cpp b/libs/qscintilla/Qt4Qt5/MacPasteboardMime.cpp
index cbaf034ab..c2d8f9e1a 100644
--- a/libs/qscintilla/Qt4Qt5/MacPasteboardMime.cpp
+++ b/libs/qscintilla/Qt4Qt5/MacPasteboardMime.cpp
@@ -2,7 +2,7 @@
// OS/X. It is a separate file to avoid clashes between OS/X and Scintilla
// data types.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
diff --git a/libs/qscintilla/Qt4Qt5/PlatQt.cpp b/libs/qscintilla/Qt4Qt5/PlatQt.cpp
index 0fad368e0..b8d5240c7 100644
--- a/libs/qscintilla/Qt4Qt5/PlatQt.cpp
+++ b/libs/qscintilla/Qt4Qt5/PlatQt.cpp
@@ -1,6 +1,6 @@
// This module implements the portability layer for the Qt port of Scintilla.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
@@ -105,7 +105,7 @@ void Font::Create(const FontParameters &fp)
strategy = QFont::PreferDefault;
}
-#if defined(Q_OS_MAC)
+#if defined(Q_OS_MAC) && QT_VERSION < 0x050000
#if QT_VERSION >= 0x040700
strategy = static_cast(strategy | QFont::ForceIntegerMetrics);
#else
@@ -171,7 +171,7 @@ class SurfaceImpl : public Surface
void Init(WindowID wid);
void Init(SurfaceID sid, WindowID);
void Init(QPainter *p);
- void InitPixMap(int width, int height, Surface *, WindowID wid);
+ void InitPixMap(int width, int height, Surface *sid, WindowID wid);
void Release();
bool Initialised() {return painter;}
@@ -207,7 +207,7 @@ class SurfaceImpl : public Surface
XYPOSITION WidthChar(Font &font_, char ch);
XYPOSITION Ascent(Font &font_);
XYPOSITION Descent(Font &font_);
- XYPOSITION InternalLeading(Font &font_) {return 0;}
+ XYPOSITION InternalLeading(Font &font_) {Q_UNUSED(font_); return 0;}
XYPOSITION ExternalLeading(Font &font_);
XYPOSITION Height(Font &font_);
XYPOSITION AverageCharWidth(Font &font_);
@@ -216,7 +216,7 @@ class SurfaceImpl : public Surface
void FlushCachedState();
void SetUnicodeMode(bool unicodeMode_) {unicodeMode = unicodeMode_;}
- void SetDBCSMode(int codePage) {}
+ void SetDBCSMode(int codePage) {Q_UNUSED(codePage);}
void DrawXPM(PRectangle rc, const XPM *xpm);
@@ -281,7 +281,7 @@ void SurfaceImpl::Init(QPainter *p)
painter = p;
}
-void SurfaceImpl::InitPixMap(int width, int height, Surface *, WindowID wid)
+void SurfaceImpl::InitPixMap(int width, int height, Surface *sid, WindowID wid)
{
Release();
@@ -298,6 +298,8 @@ void SurfaceImpl::InitPixMap(int width, int height, Surface *, WindowID wid)
painter = new QPainter(pd);
my_resources = true;
+
+ SetUnicodeMode(static_cast(sid)->unicodeMode);
}
void SurfaceImpl::Release()
@@ -539,6 +541,8 @@ void SurfaceImpl::DrawXPM(PRectangle rc, const XPM *xpm)
void SurfaceImpl::DrawRGBAImage(PRectangle rc, int width, int height,
const unsigned char *pixelsImage)
{
+ Q_UNUSED(width);
+ Q_UNUSED(height);
Q_ASSERT(painter);
const QImage *qim = reinterpret_cast(pixelsImage);
@@ -1004,15 +1008,14 @@ bool Platform::IsKeyDown(int)
return false;
}
-long Platform::SendScintilla(WindowID w, unsigned int msg,
- unsigned long wParam, long lParam)
+long Platform::SendScintilla(WindowID, unsigned int, unsigned long, long)
{
// This is never called.
return 0;
}
-long Platform::SendScintillaPointer(WindowID w, unsigned int msg,
- unsigned long wParam, void *lParam)
+long Platform::SendScintillaPointer(WindowID, unsigned int, unsigned long,
+ void *)
{
// This is never called.
return 0;
diff --git a/libs/qscintilla/Qt4Qt5/Qsci/qsciabstractapis.h b/libs/qscintilla/Qt4Qt5/Qsci/qsciabstractapis.h
index bf57f409f..78c4d33f6 100644
--- a/libs/qscintilla/Qt4Qt5/Qsci/qsciabstractapis.h
+++ b/libs/qscintilla/Qt4Qt5/Qsci/qsciabstractapis.h
@@ -1,6 +1,6 @@
// This module defines interface to the QsciAbstractAPIs class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
diff --git a/libs/qscintilla/Qt4Qt5/Qsci/qsciapis.h b/libs/qscintilla/Qt4Qt5/Qsci/qsciapis.h
index 8216b31a7..a67a90291 100644
--- a/libs/qscintilla/Qt4Qt5/Qsci/qsciapis.h
+++ b/libs/qscintilla/Qt4Qt5/Qsci/qsciapis.h
@@ -1,6 +1,6 @@
// This module defines interface to the QsciAPIs class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
diff --git a/libs/qscintilla/Qt4Qt5/Qsci/qscicommand.h b/libs/qscintilla/Qt4Qt5/Qsci/qscicommand.h
index 366bc68c9..7c5269460 100644
--- a/libs/qscintilla/Qt4Qt5/Qsci/qscicommand.h
+++ b/libs/qscintilla/Qt4Qt5/Qsci/qscicommand.h
@@ -1,6 +1,6 @@
// This defines the interface to the QsciCommand class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
diff --git a/libs/qscintilla/Qt4Qt5/Qsci/qscicommandset.h b/libs/qscintilla/Qt4Qt5/Qsci/qscicommandset.h
index a8f8cd102..f9ff82df3 100644
--- a/libs/qscintilla/Qt4Qt5/Qsci/qscicommandset.h
+++ b/libs/qscintilla/Qt4Qt5/Qsci/qscicommandset.h
@@ -1,6 +1,6 @@
// This defines the interface to the QsciCommandSet class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
diff --git a/libs/qscintilla/Qt4Qt5/Qsci/qscidocument.h b/libs/qscintilla/Qt4Qt5/Qsci/qscidocument.h
index 0c23cb48f..df64c72a1 100644
--- a/libs/qscintilla/Qt4Qt5/Qsci/qscidocument.h
+++ b/libs/qscintilla/Qt4Qt5/Qsci/qscidocument.h
@@ -1,6 +1,6 @@
// This defines the interface to the QsciDocument class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
diff --git a/libs/qscintilla/Qt4Qt5/Qsci/qsciglobal.h b/libs/qscintilla/Qt4Qt5/Qsci/qsciglobal.h
index 8f2f0e751..a73093e41 100644
--- a/libs/qscintilla/Qt4Qt5/Qsci/qsciglobal.h
+++ b/libs/qscintilla/Qt4Qt5/Qsci/qsciglobal.h
@@ -1,6 +1,6 @@
// This module defines various things common to all of the Scintilla Qt port.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
@@ -24,8 +24,8 @@
#include
-#define QSCINTILLA_VERSION 0x020a00
-#define QSCINTILLA_VERSION_STR "2.10"
+#define QSCINTILLA_VERSION 0x020a08
+#define QSCINTILLA_VERSION_STR "2.10.8"
// Define QSCINTILLA_MAKE_DLL to create a QScintilla shared library, or
diff --git a/libs/qscintilla/Qt4Qt5/Qsci/qscilexer.h b/libs/qscintilla/Qt4Qt5/Qsci/qscilexer.h
index e5b5168f7..5cab7bc51 100644
--- a/libs/qscintilla/Qt4Qt5/Qsci/qscilexer.h
+++ b/libs/qscintilla/Qt4Qt5/Qsci/qscilexer.h
@@ -1,6 +1,6 @@
// This defines the interface to the QsciLexer class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
@@ -153,8 +153,8 @@ class QSCINTILLA_EXPORT QsciLexer : public QObject
virtual int indentationGuideView() const;
//! Returns the set of keywords for the keyword set \a set recognised
- //! by the lexer as a space separated string. 0 is returned if there
- //! is no such set.
+ //! by the lexer as a space separated string. Keyword sets are numbered
+ //! from 1. 0 is returned if there is no such set.
virtual const char *keywords(int set) const;
//! Returns the number of the style used for whitespace. The default
diff --git a/libs/qscintilla/Qt4Qt5/Qsci/qscilexercpp.h b/libs/qscintilla/Qt4Qt5/Qsci/qscilexercpp.h
index e823d072f..1f163e130 100644
--- a/libs/qscintilla/Qt4Qt5/Qsci/qscilexercpp.h
+++ b/libs/qscintilla/Qt4Qt5/Qsci/qscilexercpp.h
@@ -1,6 +1,6 @@
// This defines the interface to the QsciLexerCPP class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
diff --git a/libs/qscintilla/Qt4Qt5/Qsci/qscilexercustom.h b/libs/qscintilla/Qt4Qt5/Qsci/qscilexercustom.h
index e993ba36e..9f85a0d4f 100644
--- a/libs/qscintilla/Qt4Qt5/Qsci/qscilexercustom.h
+++ b/libs/qscintilla/Qt4Qt5/Qsci/qscilexercustom.h
@@ -1,6 +1,6 @@
// This defines the interface to the QsciLexerCustom class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
diff --git a/libs/qscintilla/Qt4Qt5/Qsci/qscilexerhtml.h b/libs/qscintilla/Qt4Qt5/Qsci/qscilexerhtml.h
index 33d24fa9d..80537e3cc 100644
--- a/libs/qscintilla/Qt4Qt5/Qsci/qscilexerhtml.h
+++ b/libs/qscintilla/Qt4Qt5/Qsci/qscilexerhtml.h
@@ -1,6 +1,6 @@
// This defines the interface to the QsciLexerHTML class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
diff --git a/libs/qscintilla/Qt4Qt5/Qsci/qscilexerjavascript.h b/libs/qscintilla/Qt4Qt5/Qsci/qscilexerjavascript.h
index 081030a5b..07b83014c 100644
--- a/libs/qscintilla/Qt4Qt5/Qsci/qscilexerjavascript.h
+++ b/libs/qscintilla/Qt4Qt5/Qsci/qscilexerjavascript.h
@@ -1,6 +1,6 @@
// This defines the interface to the QsciLexerJavaScript class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
diff --git a/libs/qscintilla/Qt4Qt5/Qsci/qscilexerjson.h b/libs/qscintilla/Qt4Qt5/Qsci/qscilexerjson.h
index c94fc68c2..e15e8840a 100644
--- a/libs/qscintilla/Qt4Qt5/Qsci/qscilexerjson.h
+++ b/libs/qscintilla/Qt4Qt5/Qsci/qscilexerjson.h
@@ -1,6 +1,6 @@
// This defines the interface to the QsciLexerJSON class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
diff --git a/libs/qscintilla/Qt4Qt5/Qsci/qscilexerpython.h b/libs/qscintilla/Qt4Qt5/Qsci/qscilexerpython.h
index 350785ca7..827f5492d 100644
--- a/libs/qscintilla/Qt4Qt5/Qsci/qscilexerpython.h
+++ b/libs/qscintilla/Qt4Qt5/Qsci/qscilexerpython.h
@@ -1,6 +1,6 @@
// This defines the interface to the QsciLexerPython class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
diff --git a/libs/qscintilla/Qt4Qt5/Qsci/qscilexersql.h b/libs/qscintilla/Qt4Qt5/Qsci/qscilexersql.h
index 7999e20b5..3c9a56acd 100644
--- a/libs/qscintilla/Qt4Qt5/Qsci/qscilexersql.h
+++ b/libs/qscintilla/Qt4Qt5/Qsci/qscilexersql.h
@@ -1,6 +1,6 @@
// This defines the interface to the QsciLexerSQL class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
diff --git a/libs/qscintilla/Qt4Qt5/Qsci/qscilexerxml.h b/libs/qscintilla/Qt4Qt5/Qsci/qscilexerxml.h
index 2fc7f2093..235aed6bc 100644
--- a/libs/qscintilla/Qt4Qt5/Qsci/qscilexerxml.h
+++ b/libs/qscintilla/Qt4Qt5/Qsci/qscilexerxml.h
@@ -1,6 +1,6 @@
// This defines the interface to the QsciLexerXML class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
diff --git a/libs/qscintilla/Qt4Qt5/Qsci/qscimacro.h b/libs/qscintilla/Qt4Qt5/Qsci/qscimacro.h
index 19465b723..28c176caf 100644
--- a/libs/qscintilla/Qt4Qt5/Qsci/qscimacro.h
+++ b/libs/qscintilla/Qt4Qt5/Qsci/qscimacro.h
@@ -1,6 +1,6 @@
// This defines the interface to the QsciMacro class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
diff --git a/libs/qscintilla/Qt4Qt5/Qsci/qsciprinter.h b/libs/qscintilla/Qt4Qt5/Qsci/qsciprinter.h
index 2cf276fd9..a3c33953c 100644
--- a/libs/qscintilla/Qt4Qt5/Qsci/qsciprinter.h
+++ b/libs/qscintilla/Qt4Qt5/Qsci/qsciprinter.h
@@ -1,6 +1,6 @@
// This module defines interface to the QsciPrinter class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
diff --git a/libs/qscintilla/Qt4Qt5/Qsci/qsciscintilla.h b/libs/qscintilla/Qt4Qt5/Qsci/qsciscintilla.h
index a59a21e9d..1aca86e81 100644
--- a/libs/qscintilla/Qt4Qt5/Qsci/qsciscintilla.h
+++ b/libs/qscintilla/Qt4Qt5/Qsci/qsciscintilla.h
@@ -1,7 +1,7 @@
// This module defines the "official" high-level API of the Qt port of
// Scintilla.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
@@ -1155,6 +1155,16 @@ class QSCINTILLA_EXPORT QsciScintilla : public QsciScintillaBase
//! \sa setHotspotForegroundColor(), resetHotspotBackgroundColor()
void resetHotspotForegroundColor();
+ //! Gets the assumed document width in pixels.
+ //!
+ //! \sa setScrollWidth(), setScrollWidthTracking()
+ int scrollWidth() const;
+
+ //! Returns true if scroll width tracking is enabled.
+ //!
+ //! \sa scrollWidth(), setScrollWidthTracking()
+ bool scrollWidthTracking() const;
+
//! The fold margin may be drawn as a one pixel sized checkerboard pattern
//! of two colours, \a fore and \a back.
//!
@@ -1370,6 +1380,23 @@ class QSCINTILLA_EXPORT QsciScintilla : public QsciScintillaBase
//! \sa setMatchedBraceIndicator()
void resetMatchedBraceIndicator();
+ //! For performance, QScintilla does not measure the display width of the
+ //! document to determine the properties of the horizontal scroll bar.
+ //! Instead, an assumed width is used. This sets the document width in
+ //! pixels assumed by QScintilla to \a pixelWidth. The default value is
+ //! 2000.
+ //!
+ //! \sa scrollWidth(), setScrollWidthTracking()
+ void setScrollWidth(int pixelWidth);
+
+ //! If scroll width tracking is enabled then the scroll width is adjusted
+ //! to ensure that all of the lines currently displayed can be completely
+ //! scrolled. This mode never adjusts the scroll width to be narrower.
+ //! This sets the scroll width tracking to \a enabled.
+ //!
+ //! \sa setScrollWidth(), scrollWidthTracking()
+ void setScrollWidthTracking(bool enabled);
+
//! Sets the mode used to draw tab characters when whitespace is visible to
//! \a mode. The default is to use an arrow.
//!
@@ -2009,34 +2036,6 @@ public slots:
//! \sa zoomIn(), zoomOut()
virtual void zoomTo(int size);
- //! For performance, Scintilla does not measure the display width
- //! of the document to determine the properties of the horizontal
- //! scroll bar. Instead, an assumed width is used. This sets the
- //! document width in pixels assumed by Scintilla to \a
- //! pixelWidth. The default value is 2000.
- //!
- //! \sa getScrollWidth(), setScrollWidthTracking()
- virtual void setScrollWidth(int pixelWidth);
-
- //! Gets the document width in pixels assumed by Scintilla.
- //!
- //! \sa setScrollWidth(), setScrollWidthTracking()
- virtual int getScrollWidth() const;
-
- //! If scroll width tracking is enabled then the scroll width is
- //! adjusted to ensure that all of the lines currently displayed
- //! can be completely scrolled. This mode never adjusts the scroll
- //! width to be narrower.
- //! Sets the scroll width tracking to \a enabled.
- //!
- //! \sa setScrollWidth(), getScrollWidthTracking()
- virtual void setScrollWidthTracking(bool enabled);
-
- //! Gets the current scroll width tracking mode.
- //!
- //! \sa getScrollWidth(), setScrollWidthTracking()
- virtual bool getScrollWidthTracking() const;
-
signals:
//! This signal is emitted whenever the cursor position changes. \a line
//! contains the line number and \a index contains the character index
@@ -2128,6 +2127,9 @@ public slots:
//! \reimp
virtual void contextMenuEvent(QContextMenuEvent *e);
+ //! \reimp
+ virtual void wheelEvent(QWheelEvent *e);
+
private slots:
void handleCallTipClick(int dir);
void handleCharAdded(int charadded);
diff --git a/libs/qscintilla/Qt4Qt5/Qsci/qsciscintillabase.h b/libs/qscintilla/Qt4Qt5/Qsci/qsciscintillabase.h
index eedb843df..dfb8a0bc6 100644
--- a/libs/qscintilla/Qt4Qt5/Qsci/qsciscintillabase.h
+++ b/libs/qscintilla/Qt4Qt5/Qsci/qsciscintillabase.h
@@ -1,6 +1,6 @@
// This class defines the "official" low-level API.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
@@ -3662,6 +3662,9 @@ class QSCINTILLA_EXPORT QsciScintillaBase : public QAbstractScrollArea
//! \sa canInsertFromMimeData(), fromMimeData()
virtual QMimeData *toMimeData(const QByteArray &text, bool rectangular) const;
+ //! \reimp
+ virtual void changeEvent(QEvent *e);
+
//! Re-implemented to handle the context menu.
virtual void contextMenuEvent(QContextMenuEvent *e);
@@ -3728,6 +3731,9 @@ class QSCINTILLA_EXPORT QsciScintillaBase : public QAbstractScrollArea
//! \internal Convert encoded bytes to a QString.
QString bytesAsText(const char *bytes) const;
+ //! \internal A helper for QsciScintilla::contextMenuEvent().
+ bool contextMenuNeeded(int x, int y) const;
+
private slots:
void handleVSb(int value);
void handleHSb(int value);
diff --git a/libs/qscintilla/Qt4Qt5/Qsci/qscistyle.h b/libs/qscintilla/Qt4Qt5/Qsci/qscistyle.h
index 4558c9a32..44ef5b256 100644
--- a/libs/qscintilla/Qt4Qt5/Qsci/qscistyle.h
+++ b/libs/qscintilla/Qt4Qt5/Qsci/qscistyle.h
@@ -1,6 +1,6 @@
// This module defines interface to the QsciStyle class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
@@ -55,21 +55,36 @@ class QSCINTILLA_EXPORT QsciStyle
};
//! Constructs a QsciStyle instance for style number \a style. If \a style
- //! is negative then a new style number is automatically allocated.
+ //! is negative then a new style number is automatically allocated if
+ //! possible. If it is not possible then style() will return a negative
+ //! value.
+ //!
+ //! \sa style()
QsciStyle(int style = -1);
//! Constructs a QsciStyle instance for style number \a style. If \a style
- //! is negative then a new style number is automatically allocated. The
- //! styles description, color, paper color, font and end-of-line fill are
- //! set to \a description, \a color, \a paper, \a font and \a eolFill
- //! respectively.
+ //! is negative then a new style number is automatically allocated if
+ //! possible. If it is not possible then style() will return a negative
+ //! value. The styles description, color, paper color, font and
+ //! end-of-line fill are set to \a description, \a color, \a paper, \a font
+ //! and \a eolFill respectively.
+ //!
+ //! \sa style()
QsciStyle(int style, const QString &description, const QColor &color,
const QColor &paper, const QFont &font, bool eolFill = false);
//! \internal Apply the style to a particular editor.
void apply(QsciScintillaBase *sci) const;
- //! Returns the number of the style.
+ //! The style's number is set to \a style.
+ //!
+ //! \sa style()
+ void setStyle(int style) {style_nr = style;}
+
+ //! Returns the number of the style. This will be negative if the style is
+ //! invalid.
+ //!
+ //! \sa setStyle()
int style() const {return style_nr;}
//! The style's description is set to \a description.
diff --git a/libs/qscintilla/Qt4Qt5/Qsci/qscistyledtext.h b/libs/qscintilla/Qt4Qt5/Qsci/qscistyledtext.h
index d6a9e8d66..1103d2a21 100644
--- a/libs/qscintilla/Qt4Qt5/Qsci/qscistyledtext.h
+++ b/libs/qscintilla/Qt4Qt5/Qsci/qscistyledtext.h
@@ -1,6 +1,6 @@
// This module defines interface to the QsciStyledText class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
diff --git a/libs/qscintilla/Qt4Qt5/SciAccessibility.cpp b/libs/qscintilla/Qt4Qt5/SciAccessibility.cpp
new file mode 100644
index 000000000..418b6dcbe
--- /dev/null
+++ b/libs/qscintilla/Qt4Qt5/SciAccessibility.cpp
@@ -0,0 +1,760 @@
+// The implementation of the class that implements accessibility support.
+//
+// Copyright (c) 2018 Riverbank Computing Limited
+//
+// This file is part of QScintilla.
+//
+// This file may be used under the terms of the GNU General Public License
+// version 3.0 as published by the Free Software Foundation and appearing in
+// the file LICENSE included in the packaging of this file. Please review the
+// following information to ensure the GNU General Public License version 3.0
+// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
+//
+// If you do not wish to use this file under the terms of the GPL version 3.0
+// then you may purchase a commercial license. For more information contact
+// info@riverbankcomputing.com.
+//
+// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+
+#include
+
+#if !defined(QT_NO_ACCESSIBILITY)
+
+#include "SciAccessibility.h"
+
+#include
+#include
+#include
+#include
+#include
+
+#include "Qsci/qsciscintillabase.h"
+
+
+// Set if the accessibility support needs initialising.
+bool QsciAccessibleScintillaBase::needs_initialising = true;
+
+// The list of all accessibles.
+QList QsciAccessibleScintillaBase::all_accessibles;
+
+
+// Forward declarations.
+static QAccessibleInterface *factory(const QString &classname, QObject *object);
+
+
+// The ctor.
+QsciAccessibleScintillaBase::QsciAccessibleScintillaBase(QWidget *widget) :
+ QAccessibleWidget(widget, QAccessible::EditableText),
+ current_cursor_offset(-1), is_selection(false)
+{
+ all_accessibles.append(this);
+}
+
+
+// The dtor.
+QsciAccessibleScintillaBase::~QsciAccessibleScintillaBase()
+{
+ all_accessibles.removeOne(this);
+}
+
+
+// Initialise the accessibility support.
+void QsciAccessibleScintillaBase::initialise()
+{
+ if (needs_initialising)
+ {
+ QAccessible::installFactory(factory);
+ needs_initialising = false;
+ }
+}
+
+
+// Find the accessible for a widget.
+QsciAccessibleScintillaBase *QsciAccessibleScintillaBase::findAccessible(
+ QsciScintillaBase *sb)
+{
+ for (int i = 0; i < all_accessibles.size(); ++i)
+ {
+ QsciAccessibleScintillaBase *acc_sb = all_accessibles.at(i);
+
+ if (acc_sb->sciWidget() == sb)
+ return acc_sb;
+ }
+
+ return 0;
+}
+
+
+// Return the QsciScintillaBase instance.
+QsciScintillaBase *QsciAccessibleScintillaBase::sciWidget() const
+{
+ return static_cast(widget());
+}
+
+
+// Update the accessible when the selection has changed.
+void QsciAccessibleScintillaBase::selectionChanged(QsciScintillaBase *sb,
+ bool selection)
+{
+ QsciAccessibleScintillaBase *acc_sb = findAccessible(sb);
+
+ if (!acc_sb)
+ return;
+
+ acc_sb->is_selection = selection;
+}
+
+
+// Update the accessibility when text has been inserted.
+void QsciAccessibleScintillaBase::textInserted(QsciScintillaBase *sb,
+ int position, const char *text, int length)
+{
+ Q_ASSERT(text);
+
+ QString new_text = bytesAsText(sb, text, length);
+ int offset = positionAsOffset(sb, position);
+
+ QAccessibleTextInsertEvent ev(sb, offset, new_text);
+ QAccessible::updateAccessibility(&ev);
+}
+
+
+// Return the fragment of text before an offset.
+QString QsciAccessibleScintillaBase::textBeforeOffset(int offset,
+ QAccessible::TextBoundaryType boundaryType, int *startOffset,
+ int *endOffset) const
+{
+ QsciScintillaBase *sb = sciWidget();
+
+ // Initialise in case of errors.
+ *startOffset = *endOffset = -1;
+
+ int position = validPosition(offset);
+
+ if (position < 0)
+ return QString();
+
+ int start_position, end_position;
+
+ if (!boundaries(sb, position, boundaryType, &start_position, &end_position))
+ return QString();
+
+ if (start_position == 0)
+ return QString();
+
+ if (!boundaries(sb, start_position - 1, boundaryType, &start_position, &end_position))
+ return QString();
+
+ positionRangeAsOffsetRange(sb, start_position, end_position, startOffset,
+ endOffset);
+
+ return textRange(sb, start_position, end_position);
+}
+
+
+// Return the fragment of text after an offset.
+QString QsciAccessibleScintillaBase::textAfterOffset(int offset,
+ QAccessible::TextBoundaryType boundaryType, int *startOffset,
+ int *endOffset) const
+{
+ QsciScintillaBase *sb = sciWidget();
+
+ // Initialise in case of errors.
+ *startOffset = *endOffset = -1;
+
+ int position = validPosition(offset);
+
+ if (position < 0)
+ return QString();
+
+ int start_position, end_position;
+
+ if (!boundaries(sb, position, boundaryType, &start_position, &end_position))
+ return QString();
+
+ if (end_position >= sb->SendScintilla(QsciScintillaBase::SCI_GETTEXTLENGTH))
+ return QString();
+
+ if (!boundaries(sb, end_position, boundaryType, &start_position, &end_position))
+ return QString();
+
+ positionRangeAsOffsetRange(sb, start_position, end_position, startOffset,
+ endOffset);
+
+ return textRange(sb, start_position, end_position);
+}
+
+
+// Return the fragment of text at an offset.
+QString QsciAccessibleScintillaBase::textAtOffset(int offset,
+ QAccessible::TextBoundaryType boundaryType, int *startOffset,
+ int *endOffset) const
+{
+ QsciScintillaBase *sb = sciWidget();
+
+ // Initialise in case of errors.
+ *startOffset = *endOffset = -1;
+
+ int position = validPosition(offset);
+
+ if (position < 0)
+ return QString();
+
+ int start_position, end_position;
+
+ if (!boundaries(sb, position, boundaryType, &start_position, &end_position))
+ return QString();
+
+ positionRangeAsOffsetRange(sb, start_position, end_position, startOffset,
+ endOffset);
+
+ return textRange(sb, start_position, end_position);
+}
+
+
+// Update the accessibility when text has been deleted.
+void QsciAccessibleScintillaBase::textDeleted(QsciScintillaBase *sb,
+ int position, const char *text, int length)
+{
+ Q_ASSERT(text);
+
+ QString old_text = bytesAsText(sb, text, length);
+ int offset = positionAsOffset(sb, position);
+
+ QAccessibleTextRemoveEvent ev(sb, offset, old_text);
+ QAccessible::updateAccessibility(&ev);
+}
+
+
+// Update the accessibility when the UI has been updated.
+void QsciAccessibleScintillaBase::updated(QsciScintillaBase *sb)
+{
+ QsciAccessibleScintillaBase *acc_sb = findAccessible(sb);
+
+ if (!acc_sb)
+ return;
+
+ int cursor_offset = positionAsOffset(sb,
+ sb->SendScintilla(QsciScintillaBase::SCI_GETCURRENTPOS));
+
+ if (acc_sb->current_cursor_offset != cursor_offset)
+ {
+ acc_sb->current_cursor_offset = cursor_offset;
+
+ QAccessibleTextCursorEvent ev(sb, cursor_offset);
+ QAccessible::updateAccessibility(&ev);
+ }
+}
+
+
+// Return a valid position from an offset or -1 if it was invalid.
+int QsciAccessibleScintillaBase::validPosition(int offset) const
+{
+ // An offset of -1 is interpreted as the length of the text.
+ int nr_chars = characterCount();
+
+ if (offset == -1)
+ offset = nr_chars;
+
+ // Check there is some text and the offset is within range.
+ if (nr_chars == 0 || offset < 0 || offset > nr_chars)
+ return -1;
+
+ return offsetAsPosition(sciWidget(), offset);
+}
+
+
+// Get the start and end boundary positions for a type of boundary. true is
+// returned if the boundary positions are valid.
+bool QsciAccessibleScintillaBase::boundaries(QsciScintillaBase *sb,
+ int position, QAccessible::TextBoundaryType boundaryType,
+ int *start_position, int *end_position)
+{
+ // This implementation is based on what Qt does although that may itself be
+ // wrong. The cursor is in a word if it is before or after any character
+ // in the word. If the cursor is not in a word (eg. is has a space each
+ // side) then the previous word is current.
+
+ switch (boundaryType)
+ {
+ case QAccessible::CharBoundary:
+ *start_position = position;
+ *end_position = sb->SendScintilla(
+ QsciScintillaBase::SCI_POSITIONAFTER, position);
+ break;
+
+ case QAccessible::WordBoundary:
+ *start_position = sb->SendScintilla(
+ QsciScintillaBase::SCI_WORDSTARTPOSITION, position, 1);
+ *end_position = sb->SendScintilla(
+ QsciScintillaBase::SCI_WORDENDPOSITION, position, 1);
+
+ // If the start and end positions are the same then we are not in a
+ // word.
+ if (*start_position == *end_position)
+ {
+ // We need the immediately preceding word. Note that Qt behaves
+ // differently as it will not move before the current line.
+
+ // Find the end of the preceding word.
+ *end_position = sb->SendScintilla(
+ QsciScintillaBase::SCI_WORDSTARTPOSITION, position, 0L);
+
+ // If the end is 0 then there isn't a preceding word.
+ if (*end_position == 0)
+ return false;
+
+ // Now find the start.
+ *start_position = sb->SendScintilla(
+ QsciScintillaBase::SCI_WORDSTARTPOSITION, *end_position,
+ 1);
+ }
+
+ break;
+
+ case QAccessible::SentenceBoundary:
+ return false;
+
+ case QAccessible::ParagraphBoundary:
+ // Paragraph boundaries are supposed to be supported but it isn't clear
+ // what this means in a code editor.
+ return false;
+
+ case QAccessible::LineBoundary:
+ {
+ int line = sb->SendScintilla(
+ QsciScintillaBase::SCI_LINEFROMPOSITION, position);
+
+ *start_position = sb->SendScintilla(
+ QsciScintillaBase::SCI_POSITIONFROMLINE, line);
+ *end_position = sb->SendScintilla(
+ QsciScintillaBase::SCI_POSITIONFROMLINE, line + 1);
+
+ // See if we are after the last end-of-line character.
+ if (*start_position == *end_position)
+ return false;
+ }
+
+ break;
+
+ case QAccessible::NoBoundary:
+ *start_position = 0;
+ *end_position = sb->SendScintilla(
+ QsciScintillaBase::SCI_GETTEXTLENGTH);
+ break;
+ }
+
+ return true;
+}
+
+
+// Return the text between two positions.
+QString QsciAccessibleScintillaBase::textRange(QsciScintillaBase *sb,
+ int start_position, int end_position)
+{
+ QByteArray bytes(end_position - start_position + 1, '\0');
+
+ sb->SendScintilla(QsciScintillaBase::SCI_GETTEXTRANGE, start_position,
+ end_position, bytes.data());
+
+ return bytesAsText(sb, bytes.constData(), bytes.size() - 1);
+}
+
+
+// Convert bytes to text.
+QString QsciAccessibleScintillaBase::bytesAsText(QsciScintillaBase *sb,
+ const char *bytes, int length)
+{
+ if (sb->SendScintilla(QsciScintillaBase::SCI_GETCODEPAGE) == QsciScintillaBase::SC_CP_UTF8)
+ return QString::fromUtf8(bytes, length);
+
+ return QString::fromLatin1(bytes, length);
+}
+
+
+// Convert text to bytes.
+QByteArray QsciAccessibleScintillaBase::textAsBytes(QsciScintillaBase *sb,
+ const QString &text)
+{
+ if (sb->SendScintilla(QsciScintillaBase::SCI_GETCODEPAGE) == QsciScintillaBase::SC_CP_UTF8)
+ return text.toUtf8();
+
+ return text.toLatin1();
+}
+
+
+// Convert a byte position to a character offset.
+int QsciAccessibleScintillaBase::positionAsOffset(QsciScintillaBase *sb,
+ int position)
+{
+ return sb->SendScintilla(QsciScintillaBase::SCI_COUNTCHARACTERS, 0,
+ position);
+}
+
+
+// Convert a range of byte poisitions to character offsets.
+void QsciAccessibleScintillaBase::positionRangeAsOffsetRange(
+ QsciScintillaBase *sb, int start_position, int end_position,
+ int *startOffset, int *endOffset)
+{
+ *startOffset = positionAsOffset(sb, start_position);
+ *endOffset = positionAsOffset(sb, end_position);
+}
+
+
+// Convert character offset position to a byte position.
+int QsciAccessibleScintillaBase::offsetAsPosition(QsciScintillaBase *sb,
+ int offset)
+{
+ return sb->SendScintilla(QsciScintillaBase::SCI_POSITIONRELATIVE, 0,
+ offset);
+}
+
+
+// Get the current selection if any.
+void QsciAccessibleScintillaBase::selection(int selectionIndex,
+ int *startOffset, int *endOffset) const
+{
+ int start, end;
+
+ if (selectionIndex == 0 && is_selection)
+ {
+ QsciScintillaBase *sb = sciWidget();
+ int start_position = sb->SendScintilla(
+ QsciScintillaBase::SCI_GETSELECTIONSTART);
+ int end_position = sb->SendScintilla(
+ QsciScintillaBase::SCI_GETSELECTIONEND);
+
+ start = positionAsOffset(sb, start_position);
+ end = positionAsOffset(sb, end_position);
+ }
+ else
+ {
+ start = end = 0;
+ }
+
+ *startOffset = start;
+ *endOffset = end;
+}
+
+
+// Return the number of selections.
+int QsciAccessibleScintillaBase::selectionCount() const
+{
+ return (is_selection ? 1 : 0);
+}
+
+
+// Add a selection.
+void QsciAccessibleScintillaBase::addSelection(int startOffset, int endOffset)
+{
+ setSelection(0, startOffset, endOffset);
+}
+
+
+// Remove a selection.
+void QsciAccessibleScintillaBase::removeSelection(int selectionIndex)
+{
+ if (selectionIndex == 0)
+ sciWidget()->SendScintilla(QsciScintillaBase::SCI_CLEARSELECTIONS);
+}
+
+
+// Set the selection.
+void QsciAccessibleScintillaBase::setSelection(int selectionIndex,
+ int startOffset, int endOffset)
+{
+ if (selectionIndex == 0)
+ {
+ QsciScintillaBase *sb = sciWidget();
+ sb->SendScintilla(QsciScintillaBase::SCI_SETSELECTIONSTART,
+ offsetAsPosition(sb, startOffset));
+ sb->SendScintilla(QsciScintillaBase::SCI_SETSELECTIONEND,
+ offsetAsPosition(sb, endOffset));
+ }
+}
+
+
+// Return the current cursor offset.
+int QsciAccessibleScintillaBase::cursorPosition() const
+{
+ return current_cursor_offset;
+}
+
+
+// Set the cursor offset.
+void QsciAccessibleScintillaBase::setCursorPosition(int position)
+{
+ QsciScintillaBase *sb = sciWidget();
+
+ sb->SendScintilla(QsciScintillaBase::SCI_GOTOPOS,
+ offsetAsPosition(sb, position));
+}
+
+
+// Return the text between two offsets.
+QString QsciAccessibleScintillaBase::text(int startOffset, int endOffset) const
+{
+ QsciScintillaBase *sb = sciWidget();
+
+ return textRange(sb, offsetAsPosition(sb, startOffset),
+ offsetAsPosition(sb, endOffset));
+}
+
+
+// Return the number of characters in the text.
+int QsciAccessibleScintillaBase::characterCount() const
+{
+ QsciScintillaBase *sb = sciWidget();
+
+ return sb->SendScintilla(QsciScintillaBase::SCI_COUNTCHARACTERS, 0,
+ sb->SendScintilla(QsciScintillaBase::SCI_GETTEXTLENGTH));
+}
+
+
+QRect QsciAccessibleScintillaBase::characterRect(int offset) const
+{
+ QsciScintillaBase *sb = sciWidget();
+ int position = offsetAsPosition(sb, offset);
+ int x_vport = sb->SendScintilla(QsciScintillaBase::SCI_POINTXFROMPOSITION,
+ position);
+ int y_vport = sb->SendScintilla(QsciScintillaBase::SCI_POINTYFROMPOSITION,
+ position);
+ const QString ch = text(offset, offset + 1);
+
+ // Get the character's font metrics.
+ int style = sb->SendScintilla(QsciScintillaBase::SCI_GETSTYLEAT, position);
+ QFontMetrics metrics(fontForStyle(style));
+
+ QRect rect(x_vport, y_vport, metrics.width(ch), metrics.height());
+ rect.moveTo(sb->viewport()->mapToGlobal(rect.topLeft()));
+
+ return rect;
+}
+
+
+// Return the offset of the character at the given screen coordinates.
+int QsciAccessibleScintillaBase::offsetAtPoint(const QPoint &point) const
+{
+ QsciScintillaBase *sb = sciWidget();
+ QPoint p = sb->viewport()->mapFromGlobal(point);
+ int position = sb->SendScintilla(QsciScintillaBase::SCI_POSITIONFROMPOINT,
+ p.x(), p.y());
+
+ return (position >= 0) ? positionAsOffset(sb, position) : -1;
+}
+
+
+// Scroll to make sure an area of text is visible.
+void QsciAccessibleScintillaBase::scrollToSubstring(int startIndex,
+ int endIndex)
+{
+ QsciScintillaBase *sb = sciWidget();
+ int start = offsetAsPosition(sb, startIndex);
+ int end = offsetAsPosition(sb, endIndex);
+
+ sb->SendScintilla(QsciScintillaBase::SCI_SCROLLRANGE, end, start);
+}
+
+
+// Return the attributes of a character and surrounding text.
+QString QsciAccessibleScintillaBase::attributes(int offset, int *startOffset,
+ int *endOffset) const
+{
+ QsciScintillaBase *sb = sciWidget();
+ int position = offsetAsPosition(sb, offset);
+ int style = sb->SendScintilla(QsciScintillaBase::SCI_GETSTYLEAT, position);
+
+ // Find the start of the text with this style.
+ int start_position = position;
+ int start_text_position = offset;
+
+ while (start_position > 0)
+ {
+ int before = sb->SendScintilla(QsciScintillaBase::SCI_POSITIONBEFORE,
+ start_position);
+ int s = sb->SendScintilla(QsciScintillaBase::SCI_GETSTYLEAT, before);
+
+ if (s != style)
+ break;
+
+ start_position = before;
+ --start_text_position;
+ }
+
+ *startOffset = start_text_position;
+
+ // Find the end of the text with this style.
+ int end_position = sb->SendScintilla(QsciScintillaBase::SCI_POSITIONAFTER,
+ position);
+ int end_text_position = offset + 1;
+ int last_position = sb->SendScintilla(
+ QsciScintillaBase::SCI_GETTEXTLENGTH);
+
+ while (end_position < last_position)
+ {
+ int s = sb->SendScintilla(QsciScintillaBase::SCI_GETSTYLEAT,
+ end_position);
+
+ if (s != style)
+ break;
+
+ end_position = sb->SendScintilla(QsciScintillaBase::SCI_POSITIONAFTER,
+ end_position);
+ ++end_text_position;
+ }
+
+ *endOffset = end_text_position;
+
+ // Convert the style to attributes.
+ QString attrs;
+
+ int back = sb->SendScintilla(QsciScintillaBase::SCI_STYLEGETBACK, style);
+ addAttribute(attrs, "background-color", colourAsRGB(back));
+
+ int fore = sb->SendScintilla(QsciScintillaBase::SCI_STYLEGETFORE, style);
+ addAttribute(attrs, "color", colourAsRGB(fore));
+
+ QFont font = fontForStyle(style);
+
+ QString family = font.family();
+ family = family.replace('\\', QLatin1String("\\\\"));
+ family = family.replace(':', QLatin1String("\\:"));
+ family = family.replace(',', QLatin1String("\\,"));
+ family = family.replace('=', QLatin1String("\\="));
+ family = family.replace(';', QLatin1String("\\;"));
+ family = family.replace('\"', QLatin1String("\\\""));
+ addAttribute(attrs, "font-familly",
+ QLatin1Char('"') + family + QLatin1Char('"'));
+
+ int font_size = int(font.pointSize());
+ addAttribute(attrs, "font-size",
+ QString::fromLatin1("%1pt").arg(font_size));
+
+ QFont::Style font_style = font.style();
+ addAttribute(attrs, "font-style",
+ QString::fromLatin1((font_style == QFont::StyleItalic) ? "italic" : ((font_style == QFont::StyleOblique) ? "oblique": "normal")));
+
+ int font_weight = font.weight();
+ addAttribute(attrs, "font-weight",
+ QString::fromLatin1(
+ (font_weight > QFont::Normal) ? "bold" : "normal"));
+
+ int underline = sb->SendScintilla(QsciScintillaBase::SCI_STYLEGETUNDERLINE,
+ style);
+ if (underline)
+ addAttribute(attrs, "text-underline-type",
+ QString::fromLatin1("single"));
+
+ return attrs;
+}
+
+
+// Add an attribute name/value pair.
+void QsciAccessibleScintillaBase::addAttribute(QString &attrs,
+ const char *name, const QString &value)
+{
+ attrs.append(QLatin1String(name));
+ attrs.append(QChar(':'));
+ attrs.append(value);
+ attrs.append(QChar(';'));
+}
+
+
+// Convert a integer colour to an RGB string.
+QString QsciAccessibleScintillaBase::colourAsRGB(int colour)
+{
+ return QString::fromLatin1("rgb(%1,%2,%3)").arg(colour & 0xff).arg((colour >> 8) & 0xff).arg((colour >> 16) & 0xff);
+}
+
+
+// Convert a integer colour to an RGB string.
+QFont QsciAccessibleScintillaBase::fontForStyle(int style) const
+{
+ QsciScintillaBase *sb = sciWidget();
+ char fontName[64];
+ int len = sb->SendScintilla(QsciScintillaBase::SCI_STYLEGETFONT, style,
+ fontName);
+ int size = sb->SendScintilla(QsciScintillaBase::SCI_STYLEGETSIZE, style);
+ bool italic = sb->SendScintilla(QsciScintillaBase::SCI_STYLEGETITALIC,
+ style);
+ int weight = sb->SendScintilla(QsciScintillaBase::SCI_STYLEGETWEIGHT,
+ style);
+
+ return QFont(QString::fromUtf8(fontName, len), size, weight, italic);
+}
+
+
+// Delete some text.
+void QsciAccessibleScintillaBase::deleteText(int startOffset, int endOffset)
+{
+ addSelection(startOffset, endOffset);
+ sciWidget()->SendScintilla(QsciScintillaBase::SCI_REPLACESEL, "");
+}
+
+
+// Insert some text.
+void QsciAccessibleScintillaBase::insertText(int offset, const QString &text)
+{
+ QsciScintillaBase *sb = sciWidget();
+
+ sb->SendScintilla(QsciScintillaBase::SCI_INSERTTEXT,
+ offsetAsPosition(sb, offset), textAsBytes(sb, text).constData());
+}
+
+
+// Replace some text.
+void QsciAccessibleScintillaBase::replaceText(int startOffset, int endOffset,
+ const QString &text)
+{
+ QsciScintillaBase *sb = sciWidget();
+
+ addSelection(startOffset, endOffset);
+ sb->SendScintilla(QsciScintillaBase::SCI_REPLACESEL,
+ textAsBytes(sb, text).constData());
+}
+
+
+// Return the state.
+QAccessible::State QsciAccessibleScintillaBase::state() const
+{
+ QAccessible::State st = QAccessibleWidget::state();
+
+ st.selectableText = true;
+ st.multiLine = true;
+
+ if (sciWidget()->SendScintilla(QsciScintillaBase::SCI_GETREADONLY))
+ st.readOnly = true;
+ else
+ st.editable = true;
+
+ return st;
+}
+
+
+// Provide access to the indivual interfaces.
+void *QsciAccessibleScintillaBase::interface_cast(QAccessible::InterfaceType t)
+{
+ if (t == QAccessible::TextInterface)
+ return static_cast(this);
+
+ if (t == QAccessible::EditableTextInterface)
+ return static_cast(this);
+
+ return QAccessibleWidget::interface_cast(t);
+}
+
+
+// The accessibility interface factory.
+static QAccessibleInterface *factory(const QString &classname, QObject *object)
+{
+ if (classname == QLatin1String("QsciScintillaBase") && object && object->isWidgetType())
+ return new QsciAccessibleScintillaBase(static_cast(object));
+
+ return 0;
+}
+
+
+#endif
diff --git a/libs/qscintilla/Qt4Qt5/SciAccessibility.h b/libs/qscintilla/Qt4Qt5/SciAccessibility.h
new file mode 100644
index 000000000..67609ec87
--- /dev/null
+++ b/libs/qscintilla/Qt4Qt5/SciAccessibility.h
@@ -0,0 +1,122 @@
+// The definition of the class that implements accessibility support.
+//
+// Copyright (c) 2018 Riverbank Computing Limited
+//
+// This file is part of QScintilla.
+//
+// This file may be used under the terms of the GNU General Public License
+// version 3.0 as published by the Free Software Foundation and appearing in
+// the file LICENSE included in the packaging of this file. Please review the
+// following information to ensure the GNU General Public License version 3.0
+// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
+//
+// If you do not wish to use this file under the terms of the GPL version 3.0
+// then you may purchase a commercial license. For more information contact
+// info@riverbankcomputing.com.
+//
+// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+
+#ifndef _SCIACCESSIBILITY_H
+#define _SCIACCESSIBILITY_H
+
+#include
+
+#if !defined(QT_NO_ACCESSIBILITY)
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+
+class QsciScintillaBase;
+
+
+// The implementation of accessibility support.
+class QsciAccessibleScintillaBase : public QAccessibleWidget,
+ public QAccessibleTextInterface,
+ public QAccessibleEditableTextInterface
+{
+public:
+ explicit QsciAccessibleScintillaBase(QWidget *widget);
+ ~QsciAccessibleScintillaBase();
+
+ static void initialise();
+
+ static void selectionChanged(QsciScintillaBase *sb, bool selection);
+ static void textInserted(QsciScintillaBase *sb, int position,
+ const char *text, int length);
+ static void textDeleted(QsciScintillaBase *sb, int position,
+ const char *text, int length);
+ static void updated(QsciScintillaBase *sb);
+
+ void selection(int selectionIndex, int *startOffset, int *endOffset) const;
+ int selectionCount() const;
+ void addSelection(int startOffset, int endOffset);
+ void removeSelection(int selectionIndex);
+ void setSelection(int selectionIndex, int startOffset, int endOffset);
+
+ int cursorPosition() const;
+ void setCursorPosition(int position);
+
+ QString text(int startOffset, int endOffset) const;
+ QString textBeforeOffset(int offset,
+ QAccessible::TextBoundaryType boundaryType, int *startOffset,
+ int *endOffset) const;
+ QString textAfterOffset(int offset,
+ QAccessible::TextBoundaryType boundaryType, int *startOffset,
+ int *endOffset) const;
+ QString textAtOffset(int offset,
+ QAccessible::TextBoundaryType boundaryType, int *startOffset,
+ int *endOffset) const;
+ int characterCount() const;
+ QRect characterRect(int offset) const;
+ int offsetAtPoint(const QPoint &point) const;
+ void scrollToSubstring(int startIndex, int endIndex);
+ QString attributes(int offset, int *startOffset, int *endOffset) const;
+
+ void deleteText(int startOffset, int endOffset);
+ void insertText(int offset, const QString &text);
+ void replaceText(int startOffset, int endOffset, const QString &text);
+
+ QAccessible::State state() const;
+ void *interface_cast(QAccessible::InterfaceType t);
+
+private:
+ static bool needs_initialising;
+ static QList all_accessibles;
+ int current_cursor_offset;
+ bool is_selection;
+
+ static QsciAccessibleScintillaBase *findAccessible(QsciScintillaBase *sb);
+ QsciScintillaBase *sciWidget() const;
+ int validPosition(int offset) const;
+ static bool boundaries(QsciScintillaBase *sb, int position,
+ QAccessible::TextBoundaryType boundaryType, int *start_position,
+ int *end_position);
+ static QString textRange(QsciScintillaBase *sb, int start_position,
+ int end_position);
+ static QString bytesAsText(QsciScintillaBase *sb, const char *bytes,
+ int length);
+ static QByteArray textAsBytes(QsciScintillaBase *sb, const QString &text);
+ static int positionAsOffset(QsciScintillaBase *sb, int position);
+ static void positionRangeAsOffsetRange(QsciScintillaBase *sb,
+ int start_position, int end_position, int *startOffset,
+ int *endOffset);
+ static int offsetAsPosition(QsciScintillaBase *sb, int offset);
+ static QString colourAsRGB(int colour);
+ static void addAttribute(QString &attrs, const char *name,
+ const QString &value);
+ QFont fontForStyle(int style) const;
+};
+
+
+#endif
+
+#endif
diff --git a/libs/qscintilla/Qt4Qt5/SciClasses.cpp b/libs/qscintilla/Qt4Qt5/SciClasses.cpp
index c94c92854..4dc03cd52 100644
--- a/libs/qscintilla/Qt4Qt5/SciClasses.cpp
+++ b/libs/qscintilla/Qt4Qt5/SciClasses.cpp
@@ -1,7 +1,7 @@
// The implementation of various Qt version independent classes used by the
// rest of the port.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
diff --git a/libs/qscintilla/Qt4Qt5/SciClasses.h b/libs/qscintilla/Qt4Qt5/SciClasses.h
index 6b3ad324f..586b5fef6 100644
--- a/libs/qscintilla/Qt4Qt5/SciClasses.h
+++ b/libs/qscintilla/Qt4Qt5/SciClasses.h
@@ -1,7 +1,7 @@
// The definition of various Qt version independent classes used by the rest of
// the port.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
diff --git a/libs/qscintilla/Qt4Qt5/SciNamespace.h b/libs/qscintilla/Qt4Qt5/SciNamespace.h
index 4396edebb..7c9242b96 100644
--- a/libs/qscintilla/Qt4Qt5/SciNamespace.h
+++ b/libs/qscintilla/Qt4Qt5/SciNamespace.h
@@ -1,7 +1,7 @@
// Support for building the Scintilla code in the Scintilla namespace using the
// -DSCI_NAMESPACE compiler flag.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
diff --git a/libs/qscintilla/Qt4Qt5/ScintillaQt.cpp b/libs/qscintilla/Qt4Qt5/ScintillaQt.cpp
index dc344b514..76e14d3bd 100644
--- a/libs/qscintilla/Qt4Qt5/ScintillaQt.cpp
+++ b/libs/qscintilla/Qt4Qt5/ScintillaQt.cpp
@@ -1,6 +1,6 @@
// The implementation of the Qt specific subclass of ScintillaBase.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
@@ -31,6 +31,9 @@
#include "Qsci/qsciscintillabase.h"
#include "ScintillaQt.h"
+#if !defined(QT_NO_ACCESSIBILITY)
+#include "SciAccessibility.h"
+#endif
#include "SciClasses.h"
@@ -110,6 +113,11 @@ QsciScintillaQt::QsciScintillaQt(QsciScintillaBase *qsb_)
// This is ignored.
imeInteraction = imeInline;
+ // Using pixmaps screws things up when moving to a different display
+ // (although this could be because we haven't got the pixmap code right).
+ // However Qt shouldn't need buffered drawing anyway.
+ WndProc(SCI_SETBUFFEREDDRAW, 0, 0);
+
for (int i = 0; i <= static_cast(tickPlatform); ++i)
timers[i] = 0;
@@ -192,10 +200,12 @@ sptr_t QsciScintillaQt::DefWndProc(unsigned int, uptr_t, sptr_t)
void QsciScintillaQt::SetMouseCapture(bool on)
{
if (mouseDownCaptures)
+ {
if (on)
qsb->viewport()->grabMouse();
else
qsb->viewport()->releaseMouse();
+ }
capturedMouse = on;
}
@@ -383,8 +393,17 @@ void QsciScintillaQt::NotifyParent(SCNotification scn)
{
char *text;
+#if !defined(QT_NO_ACCESSIBILITY)
+ if ((scn.modificationType & SC_MOD_INSERTTEXT) != 0)
+ QsciAccessibleScintillaBase::textInserted(qsb, scn.position,
+ scn.text, scn.length);
+ else if ((scn.modificationType & SC_MOD_DELETETEXT) != 0)
+ QsciAccessibleScintillaBase::textDeleted(qsb, scn.position,
+ scn.text, scn.length);
+#endif
+
// Give some protection to the Python bindings.
- if (scn.text && (scn.modificationType & (SC_MOD_INSERTTEXT|SC_MOD_DELETETEXT) != 0))
+ if (scn.text && (scn.modificationType & (SC_MOD_INSERTTEXT|SC_MOD_DELETETEXT)) != 0)
{
text = new char[scn.length + 1];
memcpy(text, scn.text, scn.length);
@@ -430,6 +449,9 @@ void QsciScintillaQt::NotifyParent(SCNotification scn)
break;
case SCN_UPDATEUI:
+#if !defined(QT_NO_ACCESSIBILITY)
+ QsciAccessibleScintillaBase::updated(qsb);
+#endif
emit qsb->SCN_UPDATEUI(scn.updated);
break;
@@ -567,6 +589,10 @@ void QsciScintillaQt::ClaimSelection()
else
primarySelection = false;
+#if !defined(QT_NO_ACCESSIBILITY)
+ QsciAccessibleScintillaBase::selectionChanged(qsb, isSel);
+#endif
+
emit qsb->QSCN_SELCHANGED(isSel);
}
diff --git a/libs/qscintilla/Qt4Qt5/ScintillaQt.h b/libs/qscintilla/Qt4Qt5/ScintillaQt.h
index 3f39245b6..f36875c9c 100644
--- a/libs/qscintilla/Qt4Qt5/ScintillaQt.h
+++ b/libs/qscintilla/Qt4Qt5/ScintillaQt.h
@@ -1,6 +1,6 @@
// The definition of the Qt specific subclass of ScintillaBase.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
diff --git a/libs/qscintilla/Qt4Qt5/qsciabstractapis.cpp b/libs/qscintilla/Qt4Qt5/qsciabstractapis.cpp
index f5db37567..6658fcb35 100644
--- a/libs/qscintilla/Qt4Qt5/qsciabstractapis.cpp
+++ b/libs/qscintilla/Qt4Qt5/qsciabstractapis.cpp
@@ -1,6 +1,6 @@
// This module implements the QsciAbstractAPIs class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
@@ -47,4 +47,5 @@ QsciLexer *QsciAbstractAPIs::lexer() const
// Called when the user has made a selection from the auto-completion list.
void QsciAbstractAPIs::autoCompletionSelected(const QString &selection)
{
+ Q_UNUSED(selection);
}
diff --git a/libs/qscintilla/Qt4Qt5/qsciapis.cpp b/libs/qscintilla/Qt4Qt5/qsciapis.cpp
index 8de9f0e66..8b74c3d4c 100644
--- a/libs/qscintilla/Qt4Qt5/qsciapis.cpp
+++ b/libs/qscintilla/Qt4Qt5/qsciapis.cpp
@@ -1,6 +1,6 @@
// This module implements the QsciAPIs class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
@@ -128,7 +128,7 @@ class QsciAPIsWorker : public QThread
// The worker thread ctor.
QsciAPIsWorker::QsciAPIsWorker(QsciAPIs *apis)
- : proxy(apis), prepared(0), abort(false)
+ : prepared(0), proxy(apis), abort(false)
{
}
@@ -250,6 +250,9 @@ bool QsciAPIs::event(QEvent *e)
emit apiPreparationFinished();
return true;
+
+ default:
+ break;
}
return QObject::event(e);
diff --git a/libs/qscintilla/Qt4Qt5/qscicommand.cpp b/libs/qscintilla/Qt4Qt5/qscicommand.cpp
index 4d7fb9481..8405c205c 100644
--- a/libs/qscintilla/Qt4Qt5/qscicommand.cpp
+++ b/libs/qscintilla/Qt4Qt5/qscicommand.cpp
@@ -1,6 +1,6 @@
// This module implements the QsciCommand class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
diff --git a/libs/qscintilla/Qt4Qt5/qscicommandset.cpp b/libs/qscintilla/Qt4Qt5/qscicommandset.cpp
index 2378a87cc..4defadfd4 100644
--- a/libs/qscintilla/Qt4Qt5/qscicommandset.cpp
+++ b/libs/qscintilla/Qt4Qt5/qscicommandset.cpp
@@ -1,6 +1,6 @@
// This module implements the QsciCommandSet class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
@@ -937,7 +937,7 @@ bool QsciCommandSet::writeSettings(QSettings &qs, const char *prefix)
qs.setValue(skey + "key", cmd->key());
// Write the alternate key.
- qs.setValue(skey + "alt", cmd->key());
+ qs.setValue(skey + "alt", cmd->alternateKey());
}
return rc;
diff --git a/libs/qscintilla/Qt4Qt5/qscidocument.cpp b/libs/qscintilla/Qt4Qt5/qscidocument.cpp
index 1b0da26ed..70d19e471 100644
--- a/libs/qscintilla/Qt4Qt5/qscidocument.cpp
+++ b/libs/qscintilla/Qt4Qt5/qscidocument.cpp
@@ -1,6 +1,6 @@
// This module implements the QsciDocument class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
diff --git a/libs/qscintilla/Qt4Qt5/qscilexer.cpp b/libs/qscintilla/Qt4Qt5/qscilexer.cpp
index 257b98d50..43e5bbbed 100644
--- a/libs/qscintilla/Qt4Qt5/qscilexer.cpp
+++ b/libs/qscintilla/Qt4Qt5/qscilexer.cpp
@@ -1,6 +1,6 @@
// This module implements the QsciLexer class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
@@ -36,11 +36,11 @@ QsciLexer::QsciLexer(QObject *parent)
autoIndStyle(-1), apiSet(0), attached_editor(0)
{
#if defined(Q_OS_WIN)
- defFont = QFont("Verdana",10);
+ defFont = QFont("Verdana", 10);
#elif defined(Q_OS_MAC)
- defFont = QFont("Verdana", 12);
+ defFont = QFont("Menlo", 12);
#else
- defFont = QFont("Bitstream Vera Sans",9);
+ defFont = QFont("Bitstream Vera Sans", 9);
#endif
// Set the default fore and background colours.
@@ -103,7 +103,7 @@ void QsciLexer::setStyleDefaults() const
{
if (!style_map->style_data_set)
{
- for (int i = 0; i < 128; ++i)
+ for (int i = 0; i <= QsciScintillaBase::STYLE_MAX; ++i)
if (!description(i).isEmpty())
styleData(i);
@@ -370,7 +370,7 @@ bool QsciLexer::readSettings(QSettings &qs,const char *prefix)
setStyleDefaults();
// Read the styles.
- for (int i = 0; i < 128; ++i)
+ for (int i = 0; i <= QsciScintillaBase::STYLE_MAX; ++i)
{
// Ignore invalid styles.
if (description(i).isEmpty())
@@ -570,7 +570,7 @@ bool QsciLexer::writeSettings(QSettings &qs,const char *prefix) const
setStyleDefaults();
// Write the styles.
- for (int i = 0; i < 128; ++i)
+ for (int i = 0; i <= QsciScintillaBase::STYLE_MAX; ++i)
{
// Ignore invalid styles.
if (description(i).isEmpty())
@@ -685,7 +685,7 @@ void QsciLexer::setColor(const QColor &c, int style)
emit colorChanged(c, style);
}
else
- for (int i = 0; i < 128; ++i)
+ for (int i = 0; i <= QsciScintillaBase::STYLE_MAX; ++i)
if (!description(i).isEmpty())
setColor(c, i);
}
@@ -700,7 +700,7 @@ void QsciLexer::setEolFill(bool eolfill, int style)
emit eolFillChanged(eolfill, style);
}
else
- for (int i = 0; i < 128; ++i)
+ for (int i = 0; i <= QsciScintillaBase::STYLE_MAX; ++i)
if (!description(i).isEmpty())
setEolFill(eolfill, i);
}
@@ -715,7 +715,7 @@ void QsciLexer::setFont(const QFont &f, int style)
emit fontChanged(f, style);
}
else
- for (int i = 0; i < 128; ++i)
+ for (int i = 0; i <= QsciScintillaBase::STYLE_MAX; ++i)
if (!description(i).isEmpty())
setFont(f, i);
}
@@ -731,7 +731,7 @@ void QsciLexer::setPaper(const QColor &c, int style)
}
else
{
- for (int i = 0; i < 128; ++i)
+ for (int i = 0; i <= QsciScintillaBase::STYLE_MAX; ++i)
if (!description(i).isEmpty())
setPaper(c, i);
diff --git a/libs/qscintilla/Qt4Qt5/qscilexercpp.cpp b/libs/qscintilla/Qt4Qt5/qscilexercpp.cpp
index 6316018e3..df37bc37a 100644
--- a/libs/qscintilla/Qt4Qt5/qscilexercpp.cpp
+++ b/libs/qscintilla/Qt4Qt5/qscilexercpp.cpp
@@ -1,6 +1,6 @@
// This module implements the QsciLexerCPP class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
diff --git a/libs/qscintilla/Qt4Qt5/qscilexercustom.cpp b/libs/qscintilla/Qt4Qt5/qscilexercustom.cpp
index 96269e2ef..336976036 100644
--- a/libs/qscintilla/Qt4Qt5/qscilexercustom.cpp
+++ b/libs/qscintilla/Qt4Qt5/qscilexercustom.cpp
@@ -1,6 +1,6 @@
// This module implements the QsciLexerCustom class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
diff --git a/libs/qscintilla/Qt4Qt5/qscilexerhtml.cpp b/libs/qscintilla/Qt4Qt5/qscilexerhtml.cpp
index 0df3a6c85..588affdd7 100644
--- a/libs/qscintilla/Qt4Qt5/qscilexerhtml.cpp
+++ b/libs/qscintilla/Qt4Qt5/qscilexerhtml.cpp
@@ -1,6 +1,6 @@
// This module implements the QsciLexerHTML class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
diff --git a/libs/qscintilla/Qt4Qt5/qscilexerjavascript.cpp b/libs/qscintilla/Qt4Qt5/qscilexerjavascript.cpp
index afa9c9bd9..ab5ef2107 100644
--- a/libs/qscintilla/Qt4Qt5/qscilexerjavascript.cpp
+++ b/libs/qscintilla/Qt4Qt5/qscilexerjavascript.cpp
@@ -1,6 +1,6 @@
// This module implements the QsciLexerJavaScript class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
diff --git a/libs/qscintilla/Qt4Qt5/qscilexerjson.cpp b/libs/qscintilla/Qt4Qt5/qscilexerjson.cpp
index 09385d302..22dbbe676 100644
--- a/libs/qscintilla/Qt4Qt5/qscilexerjson.cpp
+++ b/libs/qscintilla/Qt4Qt5/qscilexerjson.cpp
@@ -1,6 +1,6 @@
// This module implements the QsciLexerJSON class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
diff --git a/libs/qscintilla/Qt4Qt5/qscilexerpython.cpp b/libs/qscintilla/Qt4Qt5/qscilexerpython.cpp
index 817d75fdc..f9ef5121a 100644
--- a/libs/qscintilla/Qt4Qt5/qscilexerpython.cpp
+++ b/libs/qscintilla/Qt4Qt5/qscilexerpython.cpp
@@ -1,6 +1,6 @@
// This module implements the QsciLexerPython class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
@@ -309,7 +309,7 @@ void QsciLexerPython::refreshProperties()
// Read properties from the settings.
bool QsciLexerPython::readProperties(QSettings &qs,const QString &prefix)
{
- int rc = true, num;
+ int rc = true;
fold_comments = qs.value(prefix + "foldcomments", false).toBool();
fold_compact = qs.value(prefix + "foldcompact", true).toBool();
diff --git a/libs/qscintilla/Qt4Qt5/qscilexersql.cpp b/libs/qscintilla/Qt4Qt5/qscilexersql.cpp
index 5471a8cc8..ae566bd35 100644
--- a/libs/qscintilla/Qt4Qt5/qscilexersql.cpp
+++ b/libs/qscintilla/Qt4Qt5/qscilexersql.cpp
@@ -1,6 +1,6 @@
// This module implements the QsciLexerSQL class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
diff --git a/libs/qscintilla/Qt4Qt5/qscilexerxml.cpp b/libs/qscintilla/Qt4Qt5/qscilexerxml.cpp
index 4394ef3d5..ab5b9b4ff 100644
--- a/libs/qscintilla/Qt4Qt5/qscilexerxml.cpp
+++ b/libs/qscintilla/Qt4Qt5/qscilexerxml.cpp
@@ -1,6 +1,6 @@
// This module implements the QsciLexerXML class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
@@ -210,7 +210,7 @@ void QsciLexerXML::refreshProperties()
// Read properties from the settings.
bool QsciLexerXML::readProperties(QSettings &qs, const QString &prefix)
{
- int rc = QsciLexerHTML::readProperties(qs, prefix), num;
+ int rc = QsciLexerHTML::readProperties(qs, prefix);
scripts = qs.value(prefix + "scriptsstyled", true).toBool();
diff --git a/libs/qscintilla/Qt4Qt5/qscimacro.cpp b/libs/qscintilla/Qt4Qt5/qscimacro.cpp
index 1247c0b06..6ead8e956 100644
--- a/libs/qscintilla/Qt4Qt5/qscimacro.cpp
+++ b/libs/qscintilla/Qt4Qt5/qscimacro.cpp
@@ -1,6 +1,6 @@
// This module implements the QsciMacro class.
//
-// Copyright (c) 2017 Riverbank Computing Limited
+// Copyright (c) 2018 Riverbank Computing Limited
//
// This file is part of QScintilla.
//
diff --git a/libs/qscintilla/Qt4Qt5/qscintilla.pro b/libs/qscintilla/Qt4Qt5/qscintilla.pro
index d642c1fdd..08cdcebdc 100644
--- a/libs/qscintilla/Qt4Qt5/qscintilla.pro
+++ b/libs/qscintilla/Qt4Qt5/qscintilla.pro
@@ -1,6 +1,6 @@
# The project file for the QScintilla library.
#
-# Copyright (c) 2017 Riverbank Computing Limited
+# Copyright (c) 2018 Riverbank Computing Limited
#
# This file is part of QScintilla.
#
@@ -20,7 +20,7 @@
# This must be kept in sync with Python/configure.py, Python/configure-old.py,
# example-Qt4Qt5/application.pro and designer-Qt4Qt5/designer.pro.
-!win32:VERSION = 13.0.0
+!win32:VERSION = 13.2.1
TEMPLATE = lib
TARGET = qscintilla2
@@ -43,6 +43,8 @@ greaterThan(QT_MAJOR_VERSION, 4) {
# Work around QTBUG-39300.
CONFIG -= android_install
+} else {
+ DEFINES += QT_NO_ACCESSIBILITY
}
# Comment this in if you want the internal Scintilla classes to be placed in a
@@ -78,36 +80,20 @@ INSTALLS += features
HEADERS = \
./Qsci/qsciglobal.h \
- ./Qsci/qsciscintilla.h \
- ./Qsci/qsciscintillabase.h \
- ./Qsci/qsciabstractapis.h \
- ./Qsci/qsciapis.h \
./Qsci/qscicommand.h \
./Qsci/qscicommandset.h \
./Qsci/qscidocument.h \
- ./Qsci/qscilexer.h \
- ./Qsci/qscilexercustom.h \
- ./Qsci/qscilexersql.h \
- ./Qsci/qscilexerjson.h \
- ./Qsci/qscilexerhtml.h \
- ./Qsci/qscilexerxml.h \
- ./Qsci/qscilexerjavascript.h \
- ./Qsci/qscilexercpp.h \
- ./Qsci/qscilexerpython.h \
- ./Qsci/qscimacro.h \
./Qsci/qsciprinter.h \
./Qsci/qscistyle.h \
./Qsci/qscistyledtext.h \
ListBoxQt.h \
- SciClasses.h \
SciNamespace.h \
- ScintillaQt.h \
../include/ILexer.h \
../include/Platform.h \
- ../include/Sci_Position.h \
../include/SciLexer.h \
../include/Scintilla.h \
../include/ScintillaWidget.h \
+ ../include/Sci_Position.h \
../lexlib/Accessor.h \
../lexlib/CharacterCategory.h \
../lexlib/CharacterSet.h \
@@ -118,7 +104,6 @@ HEADERS = \
../lexlib/LexerSimple.h \
../lexlib/OptionSet.h \
../lexlib/PropSetSimple.h \
- ../lexlib/StringCopy.h \
../lexlib/StyleContext.h \
../lexlib/SubStyles.h \
../lexlib/WordList.h \
@@ -132,15 +117,12 @@ HEADERS = \
../src/ContractionState.h \
../src/Decoration.h \
../src/Document.h \
- ../src/EditModel.h \
../src/Editor.h \
- ../src/EditView.h \
../src/ExternalLexer.h \
../src/FontQuality.h \
../src/Indicator.h \
../src/KeyMap.h \
../src/LineMarker.h \
- ../src/MarginView.h \
../src/Partitioning.h \
../src/PerLine.h \
../src/PositionCache.h \
@@ -153,7 +135,26 @@ HEADERS = \
../src/UnicodeFromUTF8.h \
../src/UniConversion.h \
../src/ViewStyle.h \
- ../src/XPM.h
+ ../src/XPM.h \
+ ../src/Position.h \
+ ../src/SparseVector.h \
+ ./Qsci/qsciscintilla.h \
+ ./Qsci/qsciscintillabase.h \
+ ./Qsci/qsciabstractapis.h \
+ ./Qsci/qsciapis.h \
+ ./Qsci/qscilexer.h \
+ ./Qsci/qscilexercustom.h \
+ ./Qsci/qscilexersql.h \
+ ./Qsci/qscilexerjson.h \
+ ./Qsci/qscilexerhtml.h \
+ ./Qsci/qscilexerxml.h \
+ ./Qsci/qscilexerjavascript.h \
+ ./Qsci/qscilexercpp.h \
+ ./Qsci/qscilexerpython.h \
+ ./Qsci/qscimacro.h \
+ SciClasses.h \
+ ScintillaQt.h \
+ SciAccessibility.h
SOURCES = \
qsciscintilla.cpp \
@@ -182,6 +183,7 @@ SOURCES = \
ListBoxQt.cpp \
PlatQt.cpp \
ScintillaQt.cpp \
+ SciAccessibility.cpp \
../lexers/LexSQL.cpp \
../lexers/LexJSON.cpp \
../lexers/LexHTML.cpp \
@@ -205,8 +207,8 @@ SOURCES = \
../src/ContractionState.cpp \
../src/Decoration.cpp \
../src/Document.cpp \
- ../src/EditModel.cpp \
../src/Editor.cpp \
+ ../src/EditModel.cpp \
../src/EditView.cpp \
../src/ExternalLexer.cpp \
../src/Indicator.cpp \
diff --git a/libs/qscintilla/Qt4Qt5/qscintilla_cs.qm b/libs/qscintilla/Qt4Qt5/qscintilla_cs.qm
index 93cb6ee90..0ce0e4358 100644
Binary files a/libs/qscintilla/Qt4Qt5/qscintilla_cs.qm and b/libs/qscintilla/Qt4Qt5/qscintilla_cs.qm differ
diff --git a/libs/qscintilla/Qt4Qt5/qscintilla_cs.ts b/libs/qscintilla/Qt4Qt5/qscintilla_cs.ts
index 16ae24e35..886ec67cd 100644
--- a/libs/qscintilla/Qt4Qt5/qscintilla_cs.ts
+++ b/libs/qscintilla/Qt4Qt5/qscintilla_cs.ts
@@ -4,493 +4,493 @@
QsciCommand
-
+
Posun o jednu řádku dolů
-
+
Rozšířit výběr o jednu řádku dolů
-
+
Rolovat pohled o jednu řádku dolů
-
+
Rozšířit obdélníkový výběr o jednu řádku dolů
-
+
Posun o jednu řádku nahoru
-
+
Rozšířit výběr o jednu řádku nahoru
-
+
Rolovat pohled o jednu řádku nahoru
-
+
Rozšířit obdélníkový výběr o jednu řádku nahoru
-
+
Posun o jeden odstavec nahoru
-
+
Rozšířit výběr o jeden odstavec nahoru
-
+
Posun o jeden odstavec dolů
-
+
-
+
-
+
-
+
Rozšířit výběr o jeden odstavec dolů
-
+
Posun o jedno písmeno doleva
-
+
Rozšířit výběr o jedno písmeno doleva
-
+
Posun o jedno slovo vlevo
-
+
Rozšířit výběr o jedno slovo doleva
-
+
Rozšířit obdélníkový výběr o jedno písmeno doleva
-
+
Posun o jedno písmeno doprava
-
+
Rozšířit výběr o jedno písmeno doprava
-
+
Posun o jedno slovo doprava
-
+
Rozšířit výběr o jedno slovo doprava
-
+
Rozšířit obdélníkový výběr o jedno písmeno doprava
-
+
-
+
-
+
-
+
-
+
Posun o část slova doleva
-
+
Rozšířit výběr o část slova doleva
-
+
Posun o část slova doprava
-
+
Rozšířit výběr o část slova doprava
-
+
Posun na předchozí stranu
-
+
Rozšířit výběr na předchozí stranu
-
+
Rozšířit obdélníkový výběr na předchozí stranu
-
+
Posun na další stranu
-
+
Rozšířit výběr na další stranu
-
+
Rozšířit obdélníkový výběr na další stranu
-
+
Smazat aktuální znak
-
+
Vyjmout výběr
-
+
Smazat slovo doprava
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
Smazat řádku doprava
-
+
-
+
-
+
Select document
-
+
-
+
-
+
Přepnout vkládání/přepisování
-
+
Vložit
-
+
Kopírovat výběr
-
+
-
+
-
+
Zrušit
-
+
Smazat předchozí znak
-
+
Smazat slovo doleva
-
+
Smazat řádku doleva
-
+
-
+
Znovu použít poslední příkaz
-
+
Odsadit o jednu úroveň
-
+
Zvětšit
-
+
Zmenšit
-
+
Vysunout
-
+
Vyjmout aktuální řádku
-
+
Smazat aktuální řádku
-
+
Kopírovat aktuální řádku
-
+
Vybraný text převést na malá písmena
-
+
Vybraný text převést na velká písmena
-
+
Duplikovat výběr
@@ -498,77 +498,77 @@
QsciLexerAVS
-
+
Default
-
+
-
+
-
+
Jednořádkový komentář
-
+
Číslo
-
+
Operátor
-
+
Identifikátor
-
+
String ve dvojitých uvozovkách
-
+
String ve třech dvojitých uvozovkách
-
+
Klíčové slovo
-
+
-
+
-
+
-
+
-
+
@@ -576,72 +576,72 @@
QsciLexerBash
-
+
Default
-
+
Chyba
-
+
Komentář
-
+
Číslo
-
+
Klíčové slovo
-
+
String ve dvojitých uvozovkách
-
+
String v jednoduchých uvozovkách
-
+
Operátor
-
+
Identifikátor
-
+
Skalár
-
+
Rozklad parametru
-
+
Zpětný chod
-
+
Zde je oddělovač dokumentu
-
+
Jednoduché uvozovky zde v dokumentu
@@ -649,42 +649,42 @@
QsciLexerBatch
-
+
Default
-
+
Komentář
-
+
Klíčové slovo
-
+
Nadpis
-
+
Skrýt písmeno příkazu
-
+
Externí příkaz
-
+
Proměnná
-
+
Operátor
@@ -692,77 +692,77 @@
QsciLexerCMake
-
+
Default
-
+
Komentář
-
+
-
+
-
+
-
+
-
+
Proměnná
-
+
Nadpis
-
+
-
+
-
+
-
+
-
+
-
+
-
+
Číslo
@@ -770,282 +770,282 @@
QsciLexerCPP
-
+
Default
-
+
-
+
C komentář
-
+
-
+
C++ komentář
-
+
-
+
JavaDoc styl C komentáře
-
+
-
+
Číslo
-
+
-
+
Klíčové slovo
-
+
-
+
String ve dvojitých uvozovkách
-
+
-
+
String v jednoduchých uvozovkách
-
+
-
+
-
+
-
+
Pre-procesor blok
-
+
-
+
Operátor
-
+
-
+
Identifikátor
-
+
-
+
Neuzavřený string
-
+
-
+
-
+
-
+
JavaSript regulární výraz
-
+
-
+
JavaDoc styl C++ komentáře
-
+
-
+
Sekundární klíčová slova a identifikátory
-
+
-
+
JavaDoc klíčové slovo
-
+
-
+
JavaDoc klíčové slovo chyby
-
+
-
+
Globální třídy a definice typů
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1053,117 +1053,117 @@
QsciLexerCSS
-
+
Default
-
+
Tag
-
+
Selektor třídy
-
+
Pseudotřída
-
+
Nedefinovaná pseudotřída
-
+
Operátor
-
+
CSS1 vlastnost
-
+
Nedefinovaná vlastnost
-
+
Hodnota
-
+
ID selektor
-
+
Important
-
+
@-pravidlo
-
+
String ve dvojitých uvozovkách
-
+
String v jednoduchých uvozovkách
-
+
CSS2 vlastnost
-
+
Atribut
-
+
CSS2 vlastnost {3 ?}
-
+
-
+
-
+
-
+
-
+
-
+
Proměnná
@@ -1171,7 +1171,7 @@
QsciLexerCSharp
-
+
@@ -1179,122 +1179,122 @@
QsciLexerCoffeeScript
-
+
Default
-
+
-
+
-
+
-
+
Číslo
-
+
Klíčové slovo
-
+
String ve dvojitých uvozovkách
-
+
String v jednoduchých uvozovkách
-
+
-
+
Pre-procesor blok
-
+
Operátor
-
+
Identifikátor
-
+
Neuzavřený string
-
+
-
+
Regulární výraz
-
+
-
+
Sekundární klíčová slova a identifikátory
-
+
JavaDoc klíčové slovo
-
+
JavaDoc klíčové slovo chyby
-
+
-
+
-
+
-
+
-
+
@@ -1302,117 +1302,117 @@
QsciLexerD
-
+
Default
-
+
-
+
Jednořádkový komentář
-
+
-
+
-
+
Číslo
-
+
Klíčové slovo
-
+
-
+
-
+
-
+
-
+
Neuzavřený string
-
+
Znak
-
+
Operátor
-
+
Identifikátor
-
+
-
+
-
+
-
+
-
+
-
+
Definováno uživatelem 1
-
+
Definováno uživatelem 2
-
+
Definováno uživatelem 3
@@ -1420,120 +1420,168 @@
QsciLexerDiff
-
+
Default
-
+
Komentář
-
+
Příkaz
-
+
Hlavička
-
+
Pozice
-
+
Odebraná řádka
-
+
Přidaná řádka
-
+
+
+ QsciLexerEDIFACT
+
+
+
+ Default
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
QsciLexerFortran77
-
+
Default
-
+
Komentář
-
+
Číslo
-
+
String v jednoduchých uvozovkách
-
+
String ve dvojitých uvozovkách
-
+
Neuzavřený string
-
+
Operátor
-
+
Identifikátor
-
+
Klíčové slovo
-
+
-
+
-
+
Pre-procesor blok
-
+
-
+
Nadpis
-
+
@@ -1541,547 +1589,547 @@
QsciLexerHTML
-
+
-
+
-
+
Nedefinovaný tag
-
+
Atribut
-
+
Nedefinovaný atribut
-
+
HTML číslo
-
+
HTML string ve dojtých uvozovkách
-
+
HTML string v jednoduchých uvozovkách
-
+
Další text v tagu
-
+
HTML komentář
-
+
Entita
-
+
Konec tagu
-
+
Začátek XML části
-
+
Konec XML části
-
+
Tag skriptu
-
+
Začátek ASP kódu s @
-
+
Začátek ASP kódu
-
+
-
+
Začátek PHP kódu
-
+
HTML hodnota bez uvozovek
-
+
ASP X-Code komentář
-
+
-
+
SGML příkaz
-
+
První parametr v SGML příkazu
-
+
SGML string ve dvojitých uvozovkách
-
+
SGML string v jednoduchých uvozovkách
-
+
SGML chyba
-
+
SGML speciální entita
-
+
SGML komentář
-
+
Komentář prvního parametru SGML příkazu
-
+
SGML defaultní blok
-
+
Začátek JavaScript kódu
-
+
-
+
JavaScript komentář
-
+
JavaScript jednořádkový komentář
-
+
JavaDoc styl JavaScript komentáře
-
+
JavaScript číslo
-
+
JavaSript slovo
-
+
JavaSript klíčové slovo
-
+
JavaSript string ve dvojitých uvozovkách
-
+
JavaSript string v jednoduchých uvozovkách
-
+
-
+
JavaSript neuzavřený string
-
+
JavaSript regulární výraz
-
+
Začátek ASP JavaScript kódu
-
+
-
+
ASP JavaScript komentář
-
+
ASP JavaScript jednořádkový komenář
-
+
JavaDoc styl ASP JavaScript komentář
-
+
ASP JavaScript číslo
-
+
ASP JavaScript slovo
-
+
ASP JavaScript klíčové slovo
-
+
ASP JavaScript string ve dvojitých uvozovkách
-
+
ASP JavaScript v jednoduchých uvozovkách
-
+
-
+
ASP JavaScript neuzavřený string
-
+
ASP JavaScript regulární výraz
-
+
Začátek VBScript kódu
-
+
-
+
VBScript komentář
-
+
VBScript číslo
-
+
VBScript klíčové slovo
-
+
-
+
VBScript identifikátor
-
+
VBScript neuzavřený string
-
+
Začátek ASP VBScript kódu
-
+
-
+
ASP VBScript komentář
-
+
ASP VBScript číslo
-
+
ASP VBScript klíčové slovo
-
+
-
+
ASP VBScript identifikátor
-
+
ASP VBScript neuzavřený string
-
+
Začátek Python kódu
-
+
-
+
Python komentář
-
+
Python číslo
-
+
Python string ve dojtých uvozovkách
-
+
Python string v jednoduchých uvozovkách
-
+
Python klíčové slovo
-
+
Python string ve třech dvojitých uvozovkách
-
+
Python ve třech jednoduchých uvozovkách
-
+
Python jméno třídy
-
+
Python jméno funkce nebo metody
-
+
Python operátor
-
+
Python identifikátor
-
+
Začátek ASP Python kódu
-
+
-
+
ASP Python komentář
-
+
ASP Python číslo
-
+
ASP Python string ve dvojitých uvozovkách
-
+
ASP Python v jednoduchých uvozovkách
-
+
ASP Python klíčové slovo
-
+
ASP Python ve třech dvojitých uvozovkách
-
+
ASP Python ve třech jednoduchých uvozovkách
-
+
ASP Python jméno třídy
-
+
ASP Python jméno funkce nebo metody
-
+
ASP Python operátor
-
+
ASP Python identifikátor
-
+
-
+
PHP string ve dvojitých uvozovkách
-
+
PHP v jednoduchých uvozovkách
-
+
PHP klíčové slovo
-
+
PHP číslo
-
+
PHP proměnná
-
+
PHP komentář
-
+
PHP jednořádkový komentář
-
+
PHP proměnná ve dvojitých uvozovkách
-
+
PHP operátor
@@ -2089,7 +2137,7 @@
QsciLexerIDL
-
+
@@ -2097,72 +2145,72 @@
QsciLexerJSON
-
+
Default
-
+
Číslo
-
+
-
+
Neuzavřený string
-
+
-
+
-
+
Jednořádkový komentář
-
+
-
+
Operátor
-
+
-
+
-
+
-
+
-
+
@@ -2170,7 +2218,7 @@
QsciLexerJavaScript
-
+
Regulární výraz
@@ -2178,102 +2226,102 @@
QsciLexerLua
-
+
-
+
Komentář
-
+
Jednořádkový komentář
-
+
Číslo
-
+
Klíčové slovo
-
+
-
+
Znak
-
+
-
+
-
+
Operátor
-
+
Identifikátor
-
+
Neuzavřený string
-
+
Základní funkce
-
+
String, tabulka a matematické funkce
-
+
-
+
Definováno uživatelem 1
-
+
Definováno uživatelem 2
-
+
Definováno uživatelem 3
-
+
Definováno uživatelem 4
-
+
Nadpis
@@ -2281,37 +2329,37 @@
QsciLexerMakefile
-
+
-
+
Komentář
-
+
-
+
Proměnná
-
+
Operátor
-
+
Cíl
-
+
Chyba
@@ -2319,112 +2367,112 @@
QsciLexerMarkdown
-
+
Default
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2432,47 +2480,47 @@
QsciLexerMatlab
-
+
Default
-
+
Komentář
-
+
Příkaz
-
+
Číslo
-
+
Klíčové slovo
-
+
String v jednoduchých uvozovkách
-
+
Operátor
-
+
Identifikátor
-
+
String ve dvojitých uvozovkách
@@ -2480,77 +2528,77 @@
QsciLexerPO
-
+
Default
-
+
Komentář
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2558,87 +2606,87 @@
QsciLexerPOV
-
+
-
+
Komentář
-
+
Jednořádkový komentář
-
+
Číslo
-
+
Operátor
-
+
Identifikátor
-
+
-
+
Neuzavřený string
-
+
Direktiva
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2646,77 +2694,77 @@
QsciLexerPascal
-
+
Default
-
+
Jednořádkový komentář
-
+
Číslo
-
+
Klíčové slovo
-
+
String v jednoduchých uvozovkách
-
+
Operátor
-
+
Identifikátor
-
+
-
+
-
+
-
+
-
+
-
+
Neuzavřený string
-
+
Znak
-
+
@@ -2724,207 +2772,207 @@
QsciLexerPerl
-
+
-
+
Chyba
-
+
Komentář
-
+
-
+
Číslo
-
+
Klíčové slovo
-
+
String ve dvojitých uvozovkách
-
+
String v jednoduchých uvozovkách
-
+
Operátor
-
+
Identifikátor
-
+
Skalár
-
+
Pole
-
+
-
+
-
+
Regulární výraz
-
+
-
+
-
+
-
+
Zde je oddělovač dokumentu
-
+
Zde je dokument v jednoduchých uvozovkách
-
+
Zde je dokument ve dvojitých uvozovkách
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2932,82 +2980,82 @@
QsciLexerPostScript
-
+
Default
-
+
Komentář
-
+
-
+
-
+
Číslo
-
+
-
+
Klíčové slovo
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -3015,32 +3063,32 @@
QsciLexerProperties
-
+
-
+
-
+
-
+
-
+
-
+
@@ -3048,82 +3096,82 @@
QsciLexerPython
-
+
-
+
Komentář
-
+
Číslo
-
+
String ve dvojitých uvozovkách
-
+
String v jednoduchých uvozovkách
-
+
Klíčové slovo
-
+
String ve třech jednoduchých uvozovkách
-
+
String ve třech dvojitých uvozovkách
-
+
Jméno třídy
-
+
Jméno funkce nebo metody
-
+
Operátor
-
+
Identifikátor
-
+
Blok komentáře
-
+
Neuzavřený string
-
+
Zvýrazněný identifikátor
-
+
Dekorátor
@@ -3131,157 +3179,157 @@
QsciLexerRuby
-
+
-
+
Komentář
-
+
Číslo
-
+
String ve dvojitých uvozovkách
-
+
String v jednoduchých uvozovkách
-
+
Klíčové slovo
-
+
Jméno třídy
-
+
Jméno funkce nebo metody
-
+
Operátor
-
+
Identifikátor
-
+
Chyba
-
+
POD
-
+
Regulární výraz
-
+
-
+
-
+
Jméno modulu
-
+
Proměnná instance
-
+
Proměnná třídy
-
+
-
+
Datová sekce
-
+
Zde je oddělovač dokumentu
-
+
Zde je dokument
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -3289,112 +3337,112 @@
QsciLexerSQL
-
+
-
+
Komentář
-
+
Číslo
-
+
Klíčové slovo
-
+
String v jednoduchých uvozovkách
-
+
Operátor
-
+
Identifikátor
-
+
Jednořádkový komentář
-
+
JavaDoc styl komentář
-
+
String ve dvojitých uvozovkách
-
+
SQL*Plus klíčové slovo
-
+
-
+
SQL*Plus komentář
-
+
# jednořádkový komentář
-
+
JavaDoc klíčové slovo
-
+
JavaDoc klíčové slovo chyby
-
+
Definováno uživatelem 1
-
+
Definováno uživatelem 2
-
+
Definováno uživatelem 3
-
+
Definováno uživatelem 4
-
+
-
+
@@ -3402,47 +3450,47 @@
QsciLexerSpice
-
+
Default
-
+
Identifikátor
-
+
Příkaz
-
+
-
+
-
+
Číslo
-
+
-
+
Hodnota
-
+
Komentář
@@ -3450,112 +3498,112 @@
QsciLexerTCL
-
+
Default
-
+
Komentář
-
+
Jednořádkový komentář
-
+
Číslo
-
+
-
+
-
+
Operátor
-
+
Identifikátor
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
Definováno uživatelem 1
-
+
Definováno uživatelem 2
-
+
Definováno uživatelem 3
-
+
Definováno uživatelem 4
-
+
-
+
Blok komentáře
@@ -3563,32 +3611,32 @@
QsciLexerTeX
-
+
-
+
-
+
Skupina
-
+
-
+
Příkaz
-
+
@@ -3596,82 +3644,82 @@
QsciLexerVHDL
-
+
Default
-
+
Komentář
-
+
Jednořádkový komentář
-
+
Číslo
-
+
-
+
Operátor
-
+
Identifikátor
-
+
Neuzavřený string
-
+
Klíčové slovo
-
+
-
+
Atribut
-
+
-
+
-
+
-
+
-
+
Blok komentáře
@@ -3679,122 +3727,172 @@
QsciLexerVerilog
-
+
Default
-
+
+
+
+
+
+
Komentář
-
+
Jednořádkový komentář
-
+
+
+
+
+
+
-
+
+
+
+
+
+
Číslo
-
+
+
+
+
+
+
-
+
+
+
+
+
+
-
+
+
+
+
+
+
Sekundární klíčová slova a identifikátory
-
+
-
+
+
+
+
+
+
-
+
Operátor
-
+
+
+
+
+
+
Identifikátor
-
+
Neuzavřený string
-
+
+
+
+
+
+
-
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -3802,52 +3900,52 @@
QsciLexerYAML
-
+
Default
-
+
Komentář
-
+
Identifikátor
-
+
Klíčové slovo
-
+
Číslo
-
+
-
+
-
+
-
+
-
+
Operátor
@@ -3855,37 +3953,37 @@
QsciScintilla
-
+
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/libs/qscintilla/Qt4Qt5/qscintilla_de.qm b/libs/qscintilla/Qt4Qt5/qscintilla_de.qm
index fee06eae9..d3e967111 100644
Binary files a/libs/qscintilla/Qt4Qt5/qscintilla_de.qm and b/libs/qscintilla/Qt4Qt5/qscintilla_de.qm differ
diff --git a/libs/qscintilla/Qt4Qt5/qscintilla_de.ts b/libs/qscintilla/Qt4Qt5/qscintilla_de.ts
index b9bf50cea..d601c1e9e 100644
--- a/libs/qscintilla/Qt4Qt5/qscintilla_de.ts
+++ b/libs/qscintilla/Qt4Qt5/qscintilla_de.ts
@@ -4,493 +4,493 @@
QsciCommand
-
+
Ein Zeichen nach links
-
+
Ein Zeichen nach rechts
-
+
Eine Zeile nach oben
-
+
Eine Zeile nach unten
-
+
Ein Wortteil nach links
-
+
Ein Wortteil nach rechts
-
+
Ein Wort nach links
-
+
Ein Wort nach rechts
-
+
Eine Zeile nach unten rollen
-
+
Eine Zeile nach oben rollen
-
+
Eine Seite hoch
-
+
Eine Seite nach unten
-
+
Eine Ebene einrücken
-
+
Auswahl um ein Zeichen nach links erweitern
-
+
Auswahl um ein Zeichen nach rechts erweitern
-
+
Auswahl um eine Zeile nach oben erweitern
-
+
Auswahl um eine Zeile nach unten erweitern
-
+
Auswahl um einen Wortteil nach links erweitern
-
+
Auswahl um einen Wortteil nach rechts erweitern
-
+
Auswahl um ein Wort nach links erweitern
-
+
Auswahl um ein Wort nach rechts erweitern
-
+
Auswahl um eine Seite nach oben erweitern
-
+
Auswahl um eine Seite nach unten erweitern
-
+
Zeichen links löschen
-
+
Aktuelles Zeichen löschen
-
+
Wort links löschen
-
+
Wort rechts löschen
-
+
Zeile links löschen
-
+
Zeile rechts löschen
-
+
Aktuelle Zeile löschen
-
+
Aktuelle Zeile ausschneiden
-
+
Auswahl ausschneiden
-
+
Auswahl kopieren
-
+
Einfügen
-
+
Letzten Befehl wiederholen
-
+
Abbrechen
-
+
Einfügen/Überschreiben umschalten
-
+
Zum Dokumentenanfang rollen
-
+
Zum Dokumentenende rollen
-
+
Vertical rollen, um aktuelle Zeile zu zentrieren
-
+
Zum Ende des vorigen Wortes springen
-
+
Auswahl bis zum Ende des vorigen Wortes erweitern
-
+
Zum Ende des nächsten Wortes springen
-
+
Auswahl bis zum Ende des nächsten Wortes erweitern
-
+
Zum Beginn der Dokumentenzeile springen
-
+
Auswahl zum Beginn der Dokumentenzeile erweitern
-
+
Rechteckige Auswahl zum Beginn der Dokumentenzeile erweitern
-
+
Zum Beginn der Anzeigezeile springen
-
+
Auswahl zum Beginn der Anzeigezeile erweitern
-
+
Zum Beginn der Dokumenten- oder Anzeigezeile springen
-
+
Rechteckige Auswahl zum Beginn der Dokumenten- oder Anzeigezeile erweitern
-
+
Zum ersten sichtbaren Zeichen der Dokumentzeile springen
-
+
Auswahl zum ersten sichtbaren Zeichen der Dokumentzeile erweitern
-
+
Rechteckige Auswahl zum ersten sichtbaren Zeichen der Dokumentzeile erweitern
-
+
Zum ersten angezeigten Zeichen der Dokumentzeile springen
-
+
Auswahl zum ersten sichtbaren Zeichen der Dokument- oder Anzeigezeile erweitern
-
+
Zum Ende der Dokumentzeile springen
-
+
Auswahl zum Ende der Dokumentenzeile erweitern
-
+
Rechteckige Auswahl zum Ende der Dokumentenzeile erweitern
-
+
Zum Ende der Anzeigezeile springen
-
+
Auswahl zum Ende der Anzeigezeile erweitern
-
+
Zum Ende der Dokumenten- oder Anzeigezeile springen
-
+
Rechteckige Auswahl zum Ende der Dokumenten- oder Anzeigezeile erweitern
-
+
Zum Dokumentenanfang springen
-
+
Auswahl zum Dokumentenanfang erweitern
-
+
Zum Dokumentenende springen
-
+
Auswahl zum Dokumentenende erweitern
-
+
"Stotternd" um eine Seite nach oben
-
+
Auswahl "stotternd" um eine Seite nach oben erweitern
-
+
"Stotternd" um eine Seite nach unten
-
+
Auswahl "stotternd" um eine Seite nach unten erweitern
-
+
Zeichen links löschen, wenn nicht am Zeilenanfang
-
+
Rechts bis zum Ende des nächsten Wortes löschen
-
+
Aktuelle und vorherige Zeile tauschen
-
+
Aktuelle Zeile duplizieren
-
+
Select document
Alle auswählen
-
+
Ausgewählte Zeilen um eine Zeile nach oben
-
+
Ausgewählte Zeilen um eine Zeile nach unten
-
+
Auswahl in Kleinbuchstaben umwandeln
-
+
Auswahl in Großbuchstaben umwandeln
-
+
Neue Zeile einfügen
-
+
Eine Ebene ausrücken
-
+
Letzten Befehl rückgängig machen
-
+
Vergrößern
-
+
Verkleinern
-
+
Einen Absatz nach oben
-
+
Einen Absatz nach unten
-
+
Auswahl um einen Absatz nach oben erweitern
-
+
Auswahl um einen Absatz nach unten erweitern
-
+
Aktuelle Zeile kopieren
-
+
Rechteckige Auswahl um eine Zeile nach unten erweitern
-
+
Rechteckige Auswahl um eine Zeile nach oben erweitern
-
+
Rechteckige Auswahl um ein Zeichen nach links erweitern
-
+
Rechteckige Auswahl um ein Zeichen nach rechts erweitern
-
+
Rechteckige Auswahl um eine Seite nach oben erweitern
-
+
Rechteckige Auswahl um eine Seite nach unten erweitern
-
+
Seitenumbruch
-
+
Auswahl duplizieren
@@ -498,77 +498,77 @@
QsciLexerAVS
-
+
Standard
-
+
Blockkommentar
-
+
Verschachtelter Blockkommentar
-
+
Zeilenkommentar
-
+
Zahl
-
+
Operator
-
+
Bezeichner
-
+
Zeichenkette in Anführungszeichen
-
+
Zeichenkette in dreifachen Anführungszeichen
-
+
Schlüsselwort
-
+
Filter
-
+
Plugin
-
+
Funktion
-
+
Clip Eigenschaft
-
+
Nutzer definiert
@@ -576,72 +576,72 @@
QsciLexerBash
-
+
Standard
-
+
Fehler
-
+
Kommentar
-
+
Zahl
-
+
Schlüsselwort
-
+
Zeichenkette in Anführungszeichen
-
+
Zeichenkette in Hochkommata
-
+
Operator
-
+
Bezeichner
-
+
Skalar
-
+
Parametererweiterung
-
+
Backticks
-
+
Here Dokument-Begrenzer
-
+
Here Dokument in Hochkommata
@@ -649,42 +649,42 @@
QsciLexerBatch
-
+
Standard
-
+
Kommentar
-
+
Schlüsselwort
-
+
Marke
-
+
Variable
-
+
Operator
-
+
"Befehl verbergen" Zeichen
-
+
Externer Befehl
@@ -692,77 +692,77 @@
QsciLexerCMake
-
+
Standard
-
+
Kommentar
-
+
Zeichenkette
-
+
Links quotierte Zeichenkette
-
+
Rechts quotierte Zeichenkette
-
+
Funktion
-
+
Variable
-
+
Marke
-
+
Nutzer definiert
-
+
WHILE Block
-
+
FOREACH Block
-
+
IF Block
-
+
MACRO Block
-
+
Variable in einer Zeichenkette
-
+
Zahl
@@ -770,282 +770,282 @@
QsciLexerCPP
-
+
Zahl
-
+
Schlüsselwort
-
+
Zeichenkette in Anführungszeichen
-
+
Zeichenkette in Hochkommata
-
+
IDL UUID
-
+
Präprozessorblock
-
+
Operator
-
+
Bezeichner
-
+
Unbeendete Zeichenkette
-
+
Standard
-
+
Inaktiver Standard
-
+
C Kommentar
-
+
Inaktiver C Kommentar
-
+
C++ Kommentar
-
+
Inaktiver C++ Kommentar
-
+
JavaDoc C Kommentar
-
+
Inaktiver JavaDoc C Kommentar
-
+
Inaktive Zahl
-
+
Inaktives Schlüsselwort
-
+
Inaktive Zeichenkette in Anführungszeichen
-
+
Inaktive Zeichenkette in Hochkommata
-
+
Inaktive IDL UUID
-
+
Inaktiver Präprozessorblock
-
+
Inaktiver Operator
-
+
Inaktiver Bezeichner
-
+
Inaktive unbeendete Zeichenkette
-
+
Uninterpretierte C# Zeichenkette
-
+
Inaktive, Uninterpretierte C# Zeichenkette
-
+
JavaScript Regulärer Ausdruck
-
+
JavaScript Inaktiver Regulärer Ausdruck
-
+
JavaDoc C++ Kommentar
-
+
Inaktiver JavaDoc C++ Kommentar
-
+
Inaktive sekundäre Schlusselwörter und Bezeichner
-
+
JavaDoc Schlüsselwort
-
+
Inaktives JavaDoc Schlüsselwort
-
+
JavaDoc Schlüsselwortfehler
-
+
Inaktive globale Klassen und Typdefinitionen
-
+
Rohe C++ Zeichenkette
-
+
Inaktive rohe C++ Zeichenkette
-
+
Vala Zeichenkette in dreifachen Hochkommata
-
+
Inaktive Vala Zeichenkette in dreifachen Hochkommata
-
+
Pike Zeichenkette in '#-Anführungszeichen'
-
+
Inaktive Pike Zeichenkette in '#-Anführungszeichen'
-
+
C Präprozessorkommentar
-
+
Inaktiver C Präprozessorkommentar
-
+
JavaDoc Präprozessorkommentar
-
+
Inaktiver JavaDoc Präprozessorkommentar
-
+
Nutzer definiertes Literal
-
+
Inaktives Nutzer definiertes Literal
-
+
Aufgabenmarkierung
-
+
Inaktive Aufgabenmarkierung
-
+
Escape-Sequenz
-
+
Inaktive Escape-Sequenz
-
+
Sekundäre Schlusselwörter und Bezeichner
-
+
Inaktiver JavaDoc Schlüsselwortfehler
-
+
Globale Klassen und Typdefinitionen
@@ -1053,117 +1053,117 @@
QsciLexerCSS
-
+
Standard
-
+
Tag
-
+
Klassenselektor
-
+
Pseudoklasse
-
+
Unbekannte Pseudoklasse
-
+
Operator
-
+
CSS1 Eigenschaft
-
+
Unbekannte Eigenschaft
-
+
Wert
-
+
ID-Selektor
-
+
Wichtig
-
+
@-Regel
-
+
Zeichenkette in Anführungszeichen
-
+
Zeichenkette in Hochkommata
-
+
CSS2 Eigenschaft
-
+
Attribut
-
+
CSS3 Eigenschaft
-
+
Pseudoelement
-
+
Erweiterte CSS Eigenschaft
-
+
Erweiterte Pseudoklasse
-
+
Erweitertes Pseudoelement
-
+
Medienregel
-
+
Variable
@@ -1171,7 +1171,7 @@
QsciLexerCSharp
-
+
Uninterpretierte Zeichenkette
@@ -1179,122 +1179,122 @@
QsciLexerCoffeeScript
-
+
Standard
-
+
C Kommentar
-
+
C++ Kommentar
-
+
JavaDoc C Kommentar
-
+
Zahl
-
+
Schlüsselwort
-
+
Zeichenkette in Anführungszeichen
-
+
Zeichenkette in Hochkommata
-
+
IDL UUID
-
+
Präprozessorblock
-
+
Operator
-
+
Bezeichner
-
+
Unbeendete Zeichenkette
-
+
Uninterpretierte C# Zeichenkette
-
+
Regulärer Ausdruck
-
+
JavaDoc C++ Kommentar
-
+
Sekundäre Schlusselwörter und Bezeichner
-
+
JavaDoc Schlüsselwort
-
+
JavaDoc Schlüsselwortfehler
-
+
Globale Klassen
-
+
Blockkommentar
-
+
Regulärer Ausdrucksblock
-
+
Regulärer Ausdrucksblockkommentar
-
+
Instanz-Eigenschaft
@@ -1302,117 +1302,117 @@
QsciLexerD
-
+
Standard
-
+
Blockkommentar
-
+
Zeilenkommentar
-
+
DDoc Blockkommentar
-
+
schachtelbarer Kommentar
-
+
Zahl
-
+
Schlüsselwort
-
+
Sekundäres Schlüsselwort
-
+
Dokumentationsschlüsselwort
-
+
Typdefinition
-
+
Zeichenkette
-
+
Unbeendete Zeichenkette
-
+
Zeichen
-
+
Operator
-
+
Bezeichner
-
+
DDoc Zeilenkommentar
-
+
DDoc Schlüsselwort
-
+
DDoc Schlüsselwortfehler
-
+
Zeichenkette in Rückwärtsstrichen
-
+
Rohe Zeichenkette
-
+
Nutzer definiert 1
-
+
Nutzer definiert 2
-
+
Nutzer definiert 3
@@ -1420,120 +1420,168 @@
QsciLexerDiff
-
+
Standard
-
+
Kommentar
-
+
Befehl
-
+
Kopfzeilen
-
+
Position
-
+
Entfernte Zeile
-
+
Hinzugefügte Zeile
-
+
Geänderte Zeile
+
+ QsciLexerEDIFACT
+
+
+
+ Standard
+
+
+
+
+ Segmentstart
+
+
+
+
+ Segmentende
+
+
+
+
+ Elementtrenner
+
+
+
+
+ Zusammengesetzter Trenner
+
+
+
+
+ Freigabetrenner
+
+
+
+
+ UNA Segmentkopf
+
+
+
+
+ UNH Segmentkopf
+
+
+
+
+ Schlecht geformtes Segment
+
+
QsciLexerFortran77
-
+
Standard
-
+
Kommentar
-
+
Zahl
-
+
Zeichenkette in Hochkommata
-
+
Zeichenkette in Anführungszeichen
-
+
Unbeendete Zeichenkette
-
+
Operator
-
+
Bezeichner
-
+
Schlüsselwort
-
+
Intrinsic-Funktion
-
+
Erweiterte Funktion
-
+
Präprozessorblock
-
+
Dotted Operator
-
+
Marke
-
+
Fortsetzung
@@ -1541,547 +1589,547 @@
QsciLexerHTML
-
+
HTML Standard
-
+
Tag
-
+
Unbekanntes Tag
-
+
Attribut
-
+
Unbekanntes Attribut
-
+
HTML Zahl
-
+
HTML Zeichenkette in Anführungszeichen
-
+
HTML Zeichenkette in Hochkommata
-
+
Anderer Text in einem Tag
-
+
HTML Kommentar
-
+
Entität
-
+
Tagende
-
+
Beginn eines XML Fragmentes
-
+
Ende eines XML Fragmentes
-
+
Skript Tag
-
+
Beginn eines ASP Fragmentes mit @
-
+
Beginn eines ASP Fragmentes
-
+
CDATA
-
+
Beginn eines PHP Fragmentes
-
+
HTML Wert ohne Anführungszeichen
-
+
ASP X-Code Kommentar
-
+
SGML Standard
-
+
SGML Befehl
-
+
Erster Parameter eines SGML Befehls
-
+
SGML Zeichenkette in Anführungszeichen
-
+
SGML Zeichenkette in Hochkommata
-
+
SGML Fehler
-
+
SGML Spezielle Entität
-
+
SGML Kommentar
-
+
Kommentar des ersten Parameters eines SGML Befehls
-
+
SGML Standardblock
-
+
Beginn eines JavaScript Fragmentes
-
+
JavaScript Standard
-
+
JavaScript Kommentar
-
+
JavaScript Zeilenkommentar
-
+
JavaDoc JavaScript Kommentar
-
+
JavaScript Zahl
-
+
JavaScript Wort
-
+
JavaScript Schlüsselwort
-
+
JavaScript Zeichenkette in Anführungszeichen
-
+
JavaScript Zeichenkette in Hochkommata
-
+
JavaScript Symbol
-
+
JavaScript Unbeendete Zeichenkette
-
+
JavaScript Regulärer Ausdruck
-
+
Beginn eines ASP JavaScript Fragmentes
-
+
ASP JavaScript Standard
-
+
ASP JavaScript Kommentar
-
+
ASP JavaScript Zeilenkommentar
-
+
JavaDoc ASP JavaScript Kommentar
-
+
ASP JavaScript Zahl
-
+
ASP JavaScript Wort
-
+
ASP JavaScript Schlüsselwort
-
+
ASP JavaScript Zeichenkette in Anführungszeichen
-
+
ASP JavaScript Zeichenkette in Hochkommata
-
+
ASP JavaScript Symbol
-
+
ASP JavaScript Unbeendete Zeichenkette
-
+
ASP JavaScript Regulärer Ausdruck
-
+
Beginn eines VBScript Fragmentes
-
+
VBScript Standard
-
+
VBScript Kommentar
-
+
VBScript Zahl
-
+
VBScript Schlüsselwort
-
+
VBScript Zeichenkette
-
+
VBScript Bezeichner
-
+
VBScript Unbeendete Zeichenkette
-
+
Beginn eines ASP VBScript Fragmentes
-
+
ASP VBScript Standard
-
+
ASP VBScript Kommentar
-
+
ASP VBScript Zahl
-
+
ASP VBScript Schlüsselwort
-
+
ASP VBScript Zeichenkette
-
+
ASP VBScript Bezeichner
-
+
ASP VBScript Unbeendete Zeichenkette
-
+
Beginn eines Python Fragmentes
-
+
Python Standard
-
+
Python Kommentar
-
+
Python Zahl
-
+
Python Zeichenkette in Anführungszeichen
-
+
Python Zeichenkette in Hochkommata
-
+
Python Schlüsselwort
-
+
Python Zeichenkette in dreifachen Anführungszeichen
-
+
Python Zeichenkette in dreifachen Hochkommata
-
+
Python Klassenname
-
+
Python Funktions- oder Methodenname
-
+
Python Operator
-
+
Python Bezeichner
-
+
Beginn eines ASP Python Fragmentes
-
+
ASP Python Standard
-
+
ASP Python Kommentar
-
+
ASP Python Zahl
-
+
ASP Python Zeichenkette in Anführungszeichen
-
+
ASP Python Zeichenkette in Hochkommata
-
+
ASP Python Schlüsselwort
-
+
ASP Python Zeichenkette in dreifachen Anführungszeichen
-
+
ASP Python Zeichenkette in dreifachen Hochkommata
-
+
ASP Python Klassenname
-
+
ASP Python Funktions- oder Methodenname
-
+
ASP Python Operator
-
+
ASP Python Bezeichner
-
+
PHP Standard
-
+
PHP Zeichenkette in Anführungszeichen
-
+
PHP Zeichenkette in Hochkommata
-
+
PHP Schlüsselwort
-
+
PHP Zahl
-
+
PHP Kommentar
-
+
PHP Zeilenkommentar
-
+
PHP Variable in Anführungszeichen
-
+
PHP Operator
-
+
PHP Variable
@@ -2089,7 +2137,7 @@
QsciLexerIDL
-
+
UUID
@@ -2097,72 +2145,72 @@
QsciLexerJSON
-
+
Standard
-
+
Zahl
-
+
Zeichenkette
-
+
Unbeendete Zeichenkette
-
+
Eigenschaft
-
+
Escape-Sequenz
-
+
Zeilenkommentar
-
+
Blockkommentar
-
+
Operator
-
+
IRI
-
+
JSON-LD kompaktes IRI
-
+
JSON Schlüsselwort
-
+
JSON-LD Schlüsselwort
-
+
Analysefehler
@@ -2170,7 +2218,7 @@
QsciLexerJavaScript
-
+
Regulärer Ausdruck
@@ -2178,102 +2226,102 @@
QsciLexerLua
-
+
Standard
-
+
Kommentar
-
+
Zeilenkommentar
-
+
Zahl
-
+
Schlüsselwort
-
+
Zeichenkette
-
+
Zeichen
-
+
Uninterpretierte Zeichenkette
-
+
Präprozessor
-
+
Operator
-
+
Bezeichner
-
+
Unbeendete Zeichenkette
-
+
Basisfunktionen
-
+
Zeichenketten-, Tabelle- und mathematische Funktionen
-
+
Koroutinen, I/O- und Systemfunktionen
-
+
Nutzer definiert 1
-
+
Nutzer definiert 2
-
+
Nutzer definiert 3
-
+
Nutzer definiert 4
-
+
Marke
@@ -2281,37 +2329,37 @@
QsciLexerMakefile
-
+
Standard
-
+
Kommentar
-
+
Präprozessor
-
+
Variable
-
+
Operator
-
+
Ziel
-
+
Fehler
@@ -2319,112 +2367,112 @@
QsciLexerMarkdown
-
+
Standard
-
+
Spezial
-
+
Fettschrift mit doppelten Sternen
-
+
Fettschrift mit doppelten Unterstrichen
-
+
Kursive Schrift mit einfachen Sternen
-
+
Kursive Schrift mit einfachen Unterstrichen
-
+
Überschrift Ebene 1
-
+
Überschrift Ebene 2
-
+
Überschrift Ebene 3
-
+
Überschrift Ebene 4
-
+
Überschrift Ebene 5
-
+
Überschrift Ebene 6
-
+
Einleitungszeichen
-
+
Nicht nummeriertes Listenelement
-
+
Nummeriertes Listenelement
-
+
Blockzitat
-
+
Durchgestrichen
-
+
Horizontale Linie
-
+
Hyperlink
-
+
Code zwischen Backticks
-
+
Code zwischen doppelten Backticks
-
+
Codeblock
@@ -2432,47 +2480,47 @@
QsciLexerMatlab
-
+
Standard
-
+
Kommentar
-
+
Befehl
-
+
Zahl
-
+
Schlüsselwort
-
+
Zeichenkette in Hochkommata
-
+
Operator
-
+
Bezeichner
-
+
Zeichenkette in Anführungszeichen
@@ -2480,77 +2528,77 @@
QsciLexerPO
-
+
Standard
-
+
Kommentar
-
+
Meldungsbezeichner
-
+
Meldungsbezeichnertext
-
+
Meldungszeichenkette
-
+
Meldungszeichenkettentext
-
+
Meldungskontext
-
+
Meldungskontexttext
-
+
Unschrfmarkierung
-
+
Programmiererkommentar
-
+
Referenz
-
+
Markierung
-
+
Meldungsbezeichnertext Zeilenende
-
+
Meldungszeichenkettentext Zeilenende
-
+
Meldungskontexttext Zeilenende
@@ -2558,87 +2606,87 @@
QsciLexerPOV
-
+
Standard
-
+
Kommentar
-
+
Kommentarzeile
-
+
Zahl
-
+
Operator
-
+
Bezeichner
-
+
Zeichenkette
-
+
Unbeendete Zeichenkette
-
+
Direktive
-
+
Ungültige Direktive
-
+
Objekte, CSG und Erscheinung
-
+
Typen, Modifizierer und Items
-
+
Vordefinierter Bezeichner
-
+
Vordefinierte Funktion
-
+
Nutzer definiert 1
-
+
Nutzer definiert 2
-
+
Nutzer definiert 3
@@ -2646,77 +2694,77 @@
QsciLexerPascal
-
+
Standard
-
+
Zeilenkommentar
-
+
Zahl
-
+
Schlüsselwort
-
+
Zeichenkette in Hochkommata
-
+
Operator
-
+
Bezeichner
-
+
'{ ... }' Kommentar
-
+
'(* ... *)' Kommentar
-
+
'{$ ... }' Präprozessorblock
-
+
'(*$ ... *)' Präprozessorblock
-
+
Hexadezimale Zahl
-
+
Unbeendete Zeichenkette
-
+
Zeichen
-
+
Inline Assembler
@@ -2724,207 +2772,207 @@
QsciLexerPerl
-
+
Standard
-
+
Fehler
-
+
Kommentar
-
+
POD
-
+
Zahl
-
+
Schlüsselwort
-
+
Zeichenkette in Anführungszeichen
-
+
Zeichenkette in Hochkommata
-
+
Operator
-
+
Bezeichner
-
+
Skalar
-
+
Feld
-
+
Hash
-
+
Symboltabelle
-
+
Regulärer Ausdruck
-
+
Ersetzung
-
+
Backticks
-
+
Datensektion
-
+
Here Dokument-Begrenzer
-
+
Here Dokument in Hochkommata
-
+
Here Dokument in Anführungszeichen
-
+
Here Dokument in Backticks
-
+
Zeichenkette (q)
-
+
Zeichenkette (qq)
-
+
Zeichenkette (qx)
-
+
Zeichenkette (qr)
-
+
Zeichenkette (qw)
-
+
POD wörtlich
-
+
Subroutinen Prototyp
-
+
Formatidentifikator
-
+
Formatzweig
-
+
Zeichenkette in Anführungszeichen (interpolierte Variable)
-
+
Übersetzung
-
+
Regulärer Ausdruck (interpolierte Variable)
-
+
Ersetzung (interpolierte Variable)
-
+
Backticks (interpolierte Variable)
-
+
Here Dokument in Anführungszeichen (interpolierte Variable)
-
+
Here Dokument in Backticks (interpolierte Variable)
-
+
Zeichenkette (qq, interpolierte Variable)
-
+
Zeichenkette (qx, interpolierte Variable)
-
+
Zeichenkette (qr, interpolierte Variable)
@@ -2932,82 +2980,82 @@
QsciLexerPostScript
-
+
Standard
-
+
Kommentar
-
+
DSC Kommentar
-
+
DSC Kommentarwert
-
+
Zahl
-
+
Name
-
+
Schlüsselwort
-
+
Literal
-
+
Direkt ausgeführtes Literal
-
+
Feldklammern
-
+
Dictionary-Klammern
-
+
Prozedurklammern
-
+
Text
-
+
Hexadezimale Zeichenkette
-
+
Base85 Zeichenkette
-
+
Ungültiges Zeichen für Zeichenkette
@@ -3015,32 +3063,32 @@
QsciLexerProperties
-
+
Standard
-
+
Kommentar
-
+
Abschnitt
-
+
Zuweisung
-
+
Standardwert
-
+
Schlüssel
@@ -3048,82 +3096,82 @@
QsciLexerPython
-
+
Kommentar
-
+
Zahl
-
+
Zeichenkette in Anführungszeichen
-
+
Zeichenkette in Hochkommata
-
+
Schlüsselwort
-
+
Zeichenkette in dreifachen Hochkommata
-
+
Zeichenkette in dreifachen Anführungszeichen
-
+
Klassenname
-
+
Funktions- oder Methodenname
-
+
Operator
-
+
Bezeichner
-
+
Kommentarblock
-
+
Unbeendete Zeichenkette
-
+
Standard
-
+
Hervorgehobener Bezeichner
-
+
Dekorator
@@ -3131,157 +3179,157 @@
QsciLexerRuby
-
+
Standard
-
+
Kommentar
-
+
Zahl
-
+
Zeichenkette in Anführungszeichen
-
+
Zeichenkette in Hochkommata
-
+
Schlüsselwort
-
+
Klassenname
-
+
Funktions- oder Methodenname
-
+
Operator
-
+
Bezeichner
-
+
Fehler
-
+
POD
-
+
Regulärer Ausdruck
-
+
Global
-
+
Symbol
-
+
Modulname
-
+
Instanzvariable
-
+
Klassenvariable
-
+
Backticks
-
+
Datensektion
-
+
Here Dokument-Begrenzer
-
+
Here Dokument
-
+
%q Zeichenkette
-
+
%Q Zeichenkette
-
+
%x Zeichenkette
-
+
%r Zeichenkette
-
+
%w Zeichenkette
-
+
zurückgestuftes Schlüsselwort
-
+
Stdin
-
+
Stdout
-
+
Stderr
@@ -3289,112 +3337,112 @@
QsciLexerSQL
-
+
Standard
-
+
Kommentar
-
+
Zahl
-
+
Schlüsselwort
-
+
Zeichenkette in Hochkommata
-
+
Operator
-
+
Bezeichner
-
+
Kommentarzeile
-
+
JavaDoc Kommentar
-
+
Zeichenkette in Anführungszeichen
-
+
SQL*Plus Schlüsselwort
-
+
SQL*Plus Eingabe
-
+
SQL*Plus Kommentar
-
+
# Kommentarzeile
-
+
JavaDoc Schlüsselwort
-
+
JavaDoc Schlüsselwortfehler
-
+
Nutzer definiert 1
-
+
Nutzer definiert 2
-
+
Nutzer definiert 3
-
+
Nutzer definiert 4
-
+
Bezeichner in Anführungszeichen
-
+
Operator in Anführungszeichen
@@ -3402,47 +3450,47 @@
QsciLexerSpice
-
+
Standard
-
+
Bezeichner
-
+
Befehl
-
+
Funktion
-
+
Parameter
-
+
Zahl
-
+
Delimiter
-
+
Wert
-
+
Kommentar
@@ -3450,112 +3498,112 @@
QsciLexerTCL
-
+
Standard
-
+
Kommentar
-
+
Kommentarzeile
-
+
Zahl
-
+
angeführtes Schlüsselwort
-
+
Zeichenkette
-
+
Operator
-
+
Bezeichner
-
+
Ersetzung
-
+
Klammerersetzung
-
+
Modifizierer
-
+
Erweiterungsschlüsselwort
-
+
TCL Schlüsselwort
-
+
Tk Schlüsselwort
-
+
iTCL Schlüsselwort
-
+
Tk Befehl
-
+
Nutzer definiert 1
-
+
Nutzer definiert 2
-
+
Nutzer definiert 3
-
+
Nutzer definiert 4
-
+
Kommentarbox
-
+
Kommentarblock
@@ -3563,32 +3611,32 @@
QsciLexerTeX
-
+
Standard
-
+
Spezial
-
+
Gruppe
-
+
Symbol
-
+
Befehl
-
+
Text
@@ -3596,82 +3644,82 @@
QsciLexerVHDL
-
+
Standard
-
+
Kommentar
-
+
Kommentarzeile
-
+
Zahl
-
+
Zeichenkette
-
+
Operator
-
+
Bezeichner
-
+
Unbeendete Zeichenkette
-
+
Schlüsselwort
-
+
Standardoperator
-
+
Attribut
-
+
Standardfunktion
-
+
Standardpaket
-
+
Standardtyp
-
+
Nutzer definiert
-
+
Kommentarblock
@@ -3679,122 +3727,172 @@
QsciLexerVerilog
-
+
Standard
-
+
+
+ Inaktiver Standard
+
+
+
Kommentar
-
+
Zeilenkommentar
-
+
+
+ Inaktiver Zeilenkommentar
+
+
+
Bang Kommentar
-
+
+
+ Inaktiver Bang Kommentar
+
+
+
Zahl
-
+
+
+ Inaktive Zahl
+
+
+
Primäre Schlusselwörter und Bezeichner
-
+
+
+ Inaktive primäre Schlusselwörter und Bezeichner
+
+
+
Zeichenkette
-
+
+
+ Inaktive Zeichenkette
+
+
+
Sekundäre Schlusselwörter und Bezeichner
-
+
Systemtask
-
+
+
+ Inaktiver Systemtask
+
+
+
Präprozessorblock
-
+
Operator
-
+
+
+ Inaktiver Operator
+
+
+
Bezeichner
-
+
Unbeendete Zeichenkette
-
+
+
+ Inaktive unbeendete Zeichenkette
+
+
+
Nutzerdefinierte Tasks und Bezeichner
-
+
+
+ Inaktive nutzerdefinierte Tasks und Bezeichner
+
+
+
Schlüsselwortkommentar
-
+
Inaktiver Schlüsselwortkommentar
-
+
Eingabeportdefinition
-
+
Inaktive Eingabeportdefinition
-
+
Ausgabeportdefinition
-
+
Inaktive Ausgabeportdefinition
-
+
Ein-/Ausgabeportdefinition
-
+
Inaktive Ein-/Ausgabeportdefinition
-
+
Portverbindung
-
+
Inaktive Portverbindung
@@ -3802,52 +3900,52 @@
QsciLexerYAML
-
+
Standard
-
+
Kommentar
-
+
Bezeichner
-
+
Schlüsselwort
-
+
Zahl
-
+
Referenz
-
+
Dokumentbegrenzer
-
+
Textblock Markierung
-
+
Syntaxfehler Markierung
-
+
Operator
@@ -3855,37 +3953,37 @@
QsciScintilla
-
+
&Rückgängig
-
+
Wieder&herstellen
-
+
&Ausschneiden
-
+
&Kopieren
-
+
Ein&fügen
-
+
Löschen
-
+
Alle auswählen
diff --git a/libs/qscintilla/Qt4Qt5/qscintilla_es.qm b/libs/qscintilla/Qt4Qt5/qscintilla_es.qm
index f9633c601..0313a27b8 100644
Binary files a/libs/qscintilla/Qt4Qt5/qscintilla_es.qm and b/libs/qscintilla/Qt4Qt5/qscintilla_es.qm differ
diff --git a/libs/qscintilla/Qt4Qt5/qscintilla_es.ts b/libs/qscintilla/Qt4Qt5/qscintilla_es.ts
index 1a9697441..de2b4a5ce 100644
--- a/libs/qscintilla/Qt4Qt5/qscintilla_es.ts
+++ b/libs/qscintilla/Qt4Qt5/qscintilla_es.ts
@@ -4,493 +4,493 @@
QsciCommand
-
+
Desplazar una línea hacia abajo
-
+
Extender la selección una línea hacia abajo
-
+
Desplazar la vista una línea hacia abajo
-
+
Extender la selección rectangular una línea hacia abajo
-
+
Desplazar una línea hacia arriba
-
+
Extender la selección una línea hacia arriba
-
+
Desplazar la vista una línea hacia arriba
-
+
Extender la selección rectangular una línea hacia arriba
-
+
Desplazar un párrafo hacia arriba
-
+
Extender la selección un párrafo hacia arriba
-
+
Desplazar un párrafo hacia abajo
-
+
Desplazar al principio del documento
-
+
Desplazar al final del documento
-
+
Desplazar verticalmente al centro de la línea actual
-
+
Extender la selección un párrafo hacia abajo
-
+
Mover un carácter hacia la izquierda
-
+
Extender la selección un carácter hacia la izquierda
-
+
Mover una palabra hacia la izquierda
-
+
Extender la selección una palabra a la izquierda
-
+
Extender la selección rectangular un carácter hacia la izquierda
-
+
Mover un carácter hacia la derecha
-
+
Extender la selección un carácter hacia la derecha
-
+
Mover una palabra hacia la derecha
-
+
Extender la selección una palabra a la derecha
-
+
Extender la selección rectangular un carácter hacia la derecha
-
+
Mover al final de palabra anterior
-
+
Extender selección al final de la palabra anterior
-
+
Mover al final de la palabra siguiente
-
+
Extender la selección hasta el final de la palabra siguiente
-
+
Mover parte de una palabra hacia la izquierda
-
+
Extender la selección parte de una palabra a la izquierda
-
+
Mover parte de una palabra hacia la derecha
-
+
Extender la selección parte de una palabra a la derecha
-
+
Mover hacia arriba una página
-
+
Extender la selección hacia arriba una página
-
+
Extender la selección rectangular hacia arriba una página
-
+
Mover hacia abajo una página
-
+
Extender la selección hacia abajo una página
-
+
Extender la selección rectangular una página hacia abajo
-
+
Borrar el carácter actual
-
+
Cortar selección
-
+
Borrar palabra hacia la derecha
-
+
Mover al principio de la línea del documento
-
+
Extender selección al principio de la línea del documento
-
+
Extender selección rectangular al principio de la línea del documento
-
+
Mover al principio de la línea visualizada
-
+
Extender selección al principio de la línea visualizada
-
+
Mover al principio de la línea visualizada o del documento
-
+
Extender selección al principio de la línea visualizada o del documento
-
+
Mover al primer carácter visible en la línea del documento
-
+
Extender selección al primer carácter visible en la línea del documento
-
+
Extender selección rectangular al primer carácter visible en la línea del documento
-
+
Extender selección al primer carácter visualizado en la línea del documento
-
+
Extender selección al primer carácter de línea visualizada o del documento
-
+
Mover al final de la línea del documento
-
+
Extender selección al final de la línea del documento
-
+
Extender selección rectangular al final de la línea del documento
-
+
Mover al final de la línea visualizada
-
+
Extender selección al final de la línea visualizada
-
+
Mover al final de la línea visualizada o del documento
-
+
Extender selección al final de la línea visualizada o del documento
-
+
Mover al principio del documento
-
+
Extender selección al principio del documento
-
+
Mover al final del documento
-
+
Extender selección al final del documento
-
+
Mover progresivamente una página hacia arriba
-
+
Extender progresivamente selección hacia arriba una página
-
+
Mover progresivamente una página hacia abajo
-
+
Extender progresivamente selección hacia abajo una página
-
+
Borrar carácter anterior si no está al principio de una línea
-
+
Borrar a la derecha hasta el final de la siguiente palabra
-
+
Borrar línea hacia la derecha
-
+
Transponer líneas actual y anterior
-
+
Duplicar línea actual
-
+
Select document
Seleccionar todo
-
+
Mover las líneas seleccionadas una línea hacia arriba
-
+
Mover las líneas seleccionadas una línea hacia abajo
-
+
Conmutar insertar/sobreescribir
-
+
Pegar
-
+
Copiar selección
-
+
Insertar carácter de nueva línea
-
+
Deshacer un nivel de indentado
-
+
Cancelar
-
+
Borrar carácter anterior
-
+
Borrar palabra hacia la izquierda
-
+
Borrar línea hacia la izquierda
-
+
Deshacer último comando
-
+
Rehacer último comando
-
+
Indentar un nivel
-
+
Aumentar zoom
-
+
Disminuir zoom
-
+
Carga de la página
-
+
Cortar línea actual
-
+
Borrar línea actual
-
+
Copiar línea actual
-
+
Convertir selección a minúsculas
-
+
Convertir selección a mayúsculas
-
+
Duplicar selección
@@ -498,77 +498,77 @@
QsciLexerAVS
-
+
Por defecto
-
+
Comentario de bloque
-
+
Comentario de bloque anidado
-
+
Comentario de línea
-
+
Número
-
+
Operador
-
+
Identificador
-
+
Cadena con comillas dobles
-
+
Cadena con triple comilla doble
-
+
Palabra clave
-
+
Filtro
-
+
Plugin
-
+
Función
-
+
Propiedad de recorte
-
+
Definido por el usuario
@@ -576,72 +576,72 @@
QsciLexerBash
-
+
Por defecto
-
+
Error
-
+
Comentario
-
+
Número
-
+
Palabra clave
-
+
Cadena con comillas dobles
-
+
Cadena con comillas simples
-
+
Operador
-
+
Identificador
-
+
Escalar
-
+
Expansión de parámetros
-
+
Comilla inversa
-
+
Delimitador de documento integrado (here document)
-
+
Documento integrado (here document) con comilla simple
@@ -649,42 +649,42 @@
QsciLexerBatch
-
+
Por defecto
-
+
Comentario
-
+
Palabra clave
-
+
Etiqueta
-
+
Ocultar caracteres de comando
-
+
Comando externo
-
+
Variable
-
+
Operador
@@ -692,77 +692,77 @@
QsciLexerCMake
-
+
Por defecto
-
+
Comentario
-
+
Cadena de caracteres
-
+
Cadena con comillas a la izquierda
-
+
Cadena con comillas a la derecha
-
+
Función
-
+
Variable
-
+
Etiqueta
-
+
Definido por el usuario
-
+
Bloque WHILE
-
+
Bloque FOREACH
-
+
Bloque IF
-
+
Bloque MACRO
-
+
Variable en una cadena
-
+
Número
@@ -770,282 +770,282 @@
QsciLexerCPP
-
+
Por defecto
-
+
Por defecto inactivo
-
+
Comentario C
-
+
Comentario C inactivo
-
+
Comentario C++
-
+
Comentario C++ inactivo
-
+
Comentario C de estilo JavaDoc
-
+
Comentario C estilo JavaDoc inactivo
-
+
Número
-
+
Número inactivo
-
+
Palabra clave
-
+
Palabra clave inactiva
-
+
Cadena con comillas dobles
-
+
Cadena con doble comilla inactiva
-
+
Cadena con comillas simples
-
+
Cadena con comilla simple inactiva
-
+
IDL UUID
-
+
IDL UUID inactivo
-
+
Bloque de preprocesador
-
+
Bloque de preprocesador inactivo
-
+
Operador
-
+
Operador inactivo
-
+
Identificador
-
+
Identificador inactivo
-
+
Cadena sin cerrar
-
+
Cadena sin cerrar inactiva
-
+
Cadena C# textual
-
+
Cadena C# textual inactiva
-
+
Expresión regular JavaScript
-
+
Expresión regular JavaScript inactiva
-
+
Comentario C++ de estilo JavaDoc
-
+
Comentario C++ estilo JavaDoc inactivo
-
+
Identificadores y palabras clave secundarios
-
+
Identificadores y palabras clave secundarios inactivos
-
+
Palabra clave de Javadoc
-
+
Palabra clave de JavaDoc inactiva
-
+
Error en palabra clave de Javadoc
-
+
Error en palabra clave de Javadoc inactivo
-
+
Clases globales y typedefs
-
+
Clases globales y typedefs inactivos
-
+
Cadena en bruto C++
-
+
Cadena inactiva C++
-
+
Cadena Vala con triple comilla textual
-
+
Cadena Vala con triple comilla textual inactiva
-
+
Cadena Pike con hash entrecomillado
-
+
Cadena Pike con hash entrecomillado inactiva
-
+
Comentario C de preprocesador
-
+
Comentario C de preprocesador inactivo
-
+
Comentario de preprocesador estilo JavaDoc
-
+
Comentario de preprocesador estilo JavaDoc inactivo
-
+
Literal definido por el usuario
-
+
Literal inactivo definido por el usuario
-
+
Marcador de tarea
-
+
Marcador de tarea inactivo
-
+
Secuencia de escape
-
+
Secuencia de escape inactiva
@@ -1053,117 +1053,117 @@
QsciLexerCSS
-
+
Por defecto
-
+
Etiqueta
-
+
Selector de clase
-
+
Pseudoclase
-
+
Pseudoclase desconocida
-
+
Operador
-
+
Propiedad CSS1
-
+
Propiedad desconocida
-
+
Valor
-
+
Selector de ID
-
+
Importante
-
+
Regla-@
-
+
Cadena con comillas dobles
-
+
Cadena con comillas simples
-
+
Propiedad CSS2
-
+
Atributo
-
+
Propiedad CSS3
-
+
Pseudoelemento
-
+
Propiedad CSS extendida
-
+
Pseudoclase extendida
-
+
Pseudoelemento extendido
-
+
Regla de '@media'
-
+
Variable
@@ -1171,7 +1171,7 @@
QsciLexerCSharp
-
+
Cadena textual
@@ -1179,122 +1179,122 @@
QsciLexerCoffeeScript
-
+
Por defecto
-
+
Comentario de estilo C
-
+
Comentario de estilo C++
-
+
Comentario de estilo JavaDoc C
-
+
Número
-
+
Palabra clave
-
+
Cadena con comillas dobles
-
+
Cadena con comilla simple
-
+
IDL UUID
-
+
Bloque de preprocesador
-
+
Operador
-
+
Identificador
-
+
Cadena sin cerrar
-
+
Cadena C# textual
-
+
Expresión regular
-
+
Comentario de estilo JavaDoc C++
-
+
Identificadores y palabras clave secundarios
-
+
Palabra clave de JavaDoc
-
+
Error en palabra clave de JavaDoc
-
+
Clases globales
-
+
Comentario de bloque
-
+
Expresión regular de bloque
-
+
Comentario de expresión regular de bloque
-
+
Propiedad de instancia
@@ -1302,117 +1302,117 @@
QsciLexerD
-
+
Por defecto
-
+
Comentario de bloque
-
+
Comentario de línea
-
+
Comentario de bloque estilo DDoc
-
+
Comentario anidado
-
+
Número
-
+
Palabra clave
-
+
Palabra clave secundaria
-
+
Palabra clave de documentación
-
+
Definición de tipo
-
+
Cadena de caracteres
-
+
Cadena sin cerrar
-
+
Carácter
-
+
Operador
-
+
Identificador
-
+
Comentario de línea estilo DDoc
-
+
Palabra clave DDoc
-
+
Error en palabra clave DDOC
-
+
Cadena con comillas hacia atrás
-
+
Cadena en bruto
-
+
Definido por el usuario 1
-
+
Definido por el usuario 2
-
+
Definido por el usuario 3
@@ -1420,120 +1420,168 @@
QsciLexerDiff
-
+
Por defecto
-
+
Comentario
-
+
Comando
-
+
Encabezado
-
+
Posición
-
+
Línea eliminada
-
+
Línea añadida
-
+
Línea modificada
+
+ QsciLexerEDIFACT
+
+
+
+ Por defecto
+
+
+
+
+ Inicio de Segmento
+
+
+
+
+ Final de Segmento
+
+
+
+
+ Separador de elemento
+
+
+
+
+ Separador compuesto
+
+
+
+
+ Separador de release
+
+
+
+
+ Encabezamiento de segmento UNA
+
+
+
+
+ Encabezamiento de segmento UNH
+
+
+
+
+ Segmento mal formado
+
+
QsciLexerFortran77
-
+
Por defecto
-
+
Comentario
-
+
Número
-
+
Cadena con comillas simples
-
+
Cadena con comillas dobles
-
+
Cadena sin cerrar
-
+
Operador
-
+
Identificador
-
+
Palabra clave
-
+
Función intrínseca
-
+
Función extendida
-
+
Bloque de preprocesador
-
+
Operador punteado
-
+
Etiqueta
-
+
Continuación
@@ -1541,547 +1589,547 @@
QsciLexerHTML
-
+
HTML por defecto
-
+
Etiqueta
-
+
Etiqueta desconocida
-
+
Atributo
-
+
Atributo desconocido
-
+
Número HTML
-
+
Cadena HTML con comillas dobles
-
+
Cadena HTML con comillas simples
-
+
Otro texto en una etiqueta
-
+
Comentario HTML
-
+
Entidad
-
+
Final de una etiqueta
-
+
Inicio de un fragmento XML
-
+
Fin de un fragmento XML
-
+
Etiqueta de script
-
+
Inicio de un fragmento ASP con @
-
+
Inicio de un fragmento ASP
-
+
CDATA
-
+
Inicio de un fragmento PHP
-
+
Valor HTML sin comillas
-
+
Comentario ASP X-Code
-
+
SGML por defecto
-
+
Comando SGML
-
+
Primer parametro de un comando SGML
-
+
Cadena SGML con comillas dobles
-
+
Cadena SGML con comillas simples
-
+
Error SGML
-
+
Entidad SGML especial
-
+
Comentario SGML
-
+
Comentario de primer parametro de un comando SGML
-
+
Bloque SGML por defecto
-
+
Inicio de un fragmento JavaScript
-
+
JavaScript por defecto
-
+
Comentario JavaScript
-
+
Comentario de línea de JavaScript
-
+
Comentario JavaScript de estilo JavaDoc
-
+
Número JavaScript
-
+
Palabra JavaScript
-
+
Palabra clave JavaScript
-
+
Cadena JavaScript con comillas dobles
-
+
Cadena JavaScript con comillas simples
-
+
Símbolo JavaScript
-
+
Cadena JavaScript sin cerrar
-
+
Expresión regular JavaScript
-
+
Inicio de un fragmento de ASP JavaScript
-
+
ASP JavaScript por defecto
-
+
Comentario de ASP JavaScript
-
+
Comentario de línea de ASP JavaScript
-
+
Comentario ASP JavaScript de estilo JavaDoc
-
+
Número ASP JavaScript
-
+
Palabra ASP JavaScript
-
+
Palabra clave ASP JavaScript
-
+
Cadena ASP JavaScript con comillas dobles
-
+
Cadena ASP JavaScript con comillas simples
-
+
Símbolo ASP JavaScript
-
+
Cadena ASP JavaScript sin cerrar
-
+
Expresión regular ASP JavaScript
-
+
Inicio de un fragmento VBScript
-
+
VBScript por defecto
-
+
Comentario VBScript
-
+
Número VBScript
-
+
Palabra clave VBScript
-
+
Cadena de caracteres VBScript
-
+
Identificador VBScript
-
+
Cadena VBScript sin cerrar
-
+
Inicio de un fragmento de ASP VBScript
-
+
ASP VBScript por defecto
-
+
Comentario de ASP VBScript
-
+
Número ASP VBScript
-
+
Palabra clave ASP VBScript
-
+
Cadena de caracteres ASP VBScript
-
+
Identificador ASP VBScript
-
+
Cadena ASP VBScript sin cerrar
-
+
Inicio de un fragmento Python
-
+
Python por defecto
-
+
Comentario Python
-
+
Número Python
-
+
Cadena Python con comillas dobles
-
+
Cadena Python con comillas simples
-
+
Palabra clave de Python
-
+
Cadena Python con triple comilla doble
-
+
Cadena Python con triple comilla simple
-
+
Nombre de clase Python
-
+
Nombre de método o función Python
-
+
Operador Python
-
+
Identificador Python
-
+
Inicio de un fragmento ASP Python
-
+
ASP Python por defecto
-
+
Comentario ASP Python
-
+
Número ASP Python
-
+
Cadena ASP Python con comillas dobles
-
+
Cadena ASP Python con comillas simples
-
+
Palabra clave de ASP Python
-
+
Cadena ASP Python con triple comilla doble
-
+
Cadena ASP Python con triple comilla simple
-
+
Nombre de clase ASP Python
-
+
Nombre de método o función ASP Python
-
+
Operador ASP Python
-
+
Identificador ASP Python
-
+
PHP por defecto
-
+
Cadena PHP con comillas dobles
-
+
Cadena PHP con comillas simples
-
+
Palabra clave PHP
-
+
Número PHP
-
+
Variable PHP
-
+
Comentario PHP
-
+
Comentario de línea PHP
-
+
Variable PHP con comillas dobles
-
+
Operador PHP
@@ -2089,7 +2137,7 @@
QsciLexerIDL
-
+
UUID
@@ -2097,72 +2145,72 @@
QsciLexerJSON
-
+
Por defecto
-
+
Número
-
+
Cadena
-
+
Cadena sin cerrar
-
+
Propiedad
-
+
Secuencia de escape
-
+
Comentario de línea
-
+
Comentario de bloque
-
+
Operador
-
+
IRI
-
+
JSON-LD compact IRI
-
+
Palabra clave JSON
-
+
Palabra clave JSON-LD
-
+
Error de intérprete
@@ -2170,7 +2218,7 @@
QsciLexerJavaScript
-
+
Expresión regular
@@ -2178,102 +2226,102 @@
QsciLexerLua
-
+
Por defecto
-
+
Comentario
-
+
Comentario de línea
-
+
Número
-
+
Palabra clave
-
+
Cadena de caracteres
-
+
Carácter
-
+
Cadena literal
-
+
Preprocesador
-
+
Operador
-
+
Identificador
-
+
Cadena sin cerrar
-
+
Funciones basicas
-
+
Funcines de cadena, tabla y matemáticas
-
+
Co-rutinas, e/s y funciones del sistema
-
+
Definido por el usuario 1
-
+
Definido por el usuario 2
-
+
Definido por el usuario 3
-
+
Definido por el usuario 4
-
+
Etiqueta
@@ -2281,37 +2329,37 @@
QsciLexerMakefile
-
+
Por defecto
-
+
Comentario
-
+
Preprocesador
-
+
Variable
-
+
Operador
-
+
Objetivo
-
+
Error
@@ -2319,112 +2367,112 @@
QsciLexerMarkdown
-
+
Por defecto
-
+
Especial
-
+
Énfasis fuerte usando doble asterisco
-
+
Énfasis fuerte usando doble guión bajo
-
+
Énfasis usando asterisco sencillo
-
+
Énfasis usando guión bajo sencillo
-
+
Encabezado de nivel 1
-
+
Encabezado de nivel 2
-
+
Encabezado de nivel 3
-
+
Encabezado de nivel 4
-
+
Encabezado de nivel 5
-
+
Encabezado de nivel 6
-
+
Pre-char
-
+
Elemento de lista sin ordenar
-
+
Elemento de lista ordenada
-
+
Bloque de cita
-
+
Tachar
-
+
Regla horizontal
-
+
Enlace
-
+
Código entre comillas hacia atrás
-
+
Código entre comillas hacia atrás dobles
-
+
Bloque de código
@@ -2432,47 +2480,47 @@
QsciLexerMatlab
-
+
Por defecto
-
+
Comentario
-
+
Comando
-
+
Número
-
+
Palabra clave
-
+
Cadena con comillas simples
-
+
Operador
-
+
Identificador
-
+
Cadena con comillas dobles
@@ -2480,77 +2528,77 @@
QsciLexerPO
-
+
Por defecto
-
+
Comentario
-
+
Identificador de mensaje
-
+
Texto identificador de mensaje
-
+
Cadena de mensaje
-
+
Texto de cadena de mensaje
-
+
Contexto de mensaje
-
+
Texto de contexto de mensaje
-
+
Señalador difuso
-
+
Comentario de programador
-
+
Referencia
-
+
Señaladores
-
+
Fin de línea de texto identificador de mensaje
-
+
Fin de línea de texto de cadena de mensaje
-
+
Fin de línea de texto de contexto de mensaje
@@ -2558,87 +2606,87 @@
QsciLexerPOV
-