diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c58575748..49f4aa8e4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -6,15 +6,47 @@ on: pull_request: types: [opened, synchronize, reopened] +env: + VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite" + jobs: build: runs-on: windows-2022 steps: - - name: Build ModOrganizer 2 - uses: ModOrganizer2/build-with-mob-action@master + # https://learn.microsoft.com/en-us/vcpkg/consume/binary-caching-github-actions-cache + - name: Export GitHub Actions cache environment variables + uses: actions/github-script@v7 + with: + script: | + core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''); + core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''); + + - name: Install Qt + uses: jurplel/install-qt-action@v3 + with: + version: 6.7.1 + modules: qtpositioning qtwebchannel qtwebengine qtwebsockets + cache: true + + - uses: actions/checkout@v4 + + - name: "Set environmental variables" + shell: bash + run: | + echo "VCPKG_ROOT=$VCPKG_INSTALLATION_ROOT" >> $GITHUB_ENV + + - name: Configure ModOrganizer + shell: pwsh + run: | + cmake --preset vs2022-windows-standalone ` + "-DCMAKE_PREFIX_PATH=${env:QT_ROOT_DIR}\msvc2019_64" ` + "-DCMAKE_INSTALL_PREFIX=install" + + - name: Build ModOrganizer + run: cmake --build vsbuild --config RelWithDebInfo --target INSTALL + + - name: Package ModOrganizer + uses: actions/upload-artifact@master with: - qt-modules: qtpositioning qtwebchannel qtwebengine qtwebsockets - mo2-third-parties: - 7z zlib gtest libbsarch libloot openssl bzip2 python lz4 spdlog - boost boost-di sip pyqt pybind11 ss licenses explorerpp DirectXTex - mo2-dependencies: usvfs cmake_common uibase githubpp bsatk esptk archive lootcli game_gamebryo + name: modorganizer + path: ./install diff --git a/.hgignore b/.hgignore deleted file mode 100644 index f67264ff5..000000000 --- a/.hgignore +++ /dev/null @@ -1,46 +0,0 @@ -syntax: glob -scons_configure.py -scons-ModOrganizer-* -ModOrganizer-build-desktop* -outputd/* -output/* -build-ModOrganizer-* -source/NCC/*/bin -source/NCC/*/obj -source/NCC/bin -*.orig -source/plugins/proxyPython/build -staging/* -source - Copy/* -ModOrganizer-build-* -pdbs/* -source/NCC/BossDummy.x/* -*.ts -staging_prepare/* -staging_trans/* -tools/python_zip/* -Makefile -html -*.vcxproj -*.pdb -*.dll -*.exp -*.tlog -*.user -*.obj -*.suo -*.sln -*.log -*.filters -*.lib -source/organizer/resources/contents/icons -source/plugins/build-* -*/GeneratedFiles/* -translations/* -source/LocalPaths.pri -source/*/Win32/Debug/* -source/plugins/*/Win32/Debug/* -*~ -syntax: regexp -Makefile\.(Debug|Release) -source/.*/debug/.* diff --git a/CMakeLists.txt b/CMakeLists.txt index c1c1cf9b9..85ba23f05 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,16 +1,21 @@ cmake_minimum_required(VERSION 3.16) -# TODO: move these to cmake_common? -set(OPENSSL_USE_STATIC_LIBS FALSE CACHE STRING "" FORCE) -set(MySQL_INCLUDE_DIRS CACHE STRING "" FORCE) +# TODO: clean include directives +set(MO2_CMAKE_DEPRECATED_UIBASE_INCLUDE ON) -if(DEFINED DEPENDENCIES_DIR) - include(${DEPENDENCIES_DIR}/modorganizer_super/cmake_common/mo2.cmake) +project(organizer) + +# if MO2_INSTALL_IS_BIN is set, this means that we should install directly into the +# installation prefix, without the bin/ subfolder, typically for a standalone build +# to update an existing install +if (MO2_INSTALL_IS_BIN) + set(_bin ".") else() - include(${CMAKE_CURRENT_LIST_DIR}/../cmake_common/mo2.cmake) + set(_bin bin) endif() -project(organizer) add_subdirectory(src) -install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/dump_running_process.bat DESTINATION bin) +set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT organizer) + +install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/dump_running_process.bat DESTINATION ${_bin}) diff --git a/CMakePresets.json b/CMakePresets.json new file mode 100644 index 000000000..eeeaaacd0 --- /dev/null +++ b/CMakePresets.json @@ -0,0 +1,59 @@ +{ + "configurePresets": [ + { + "errors": { + "deprecated": true + }, + "hidden": true, + "name": "cmake-dev", + "warnings": { + "deprecated": true, + "dev": true + } + }, + { + "cacheVariables": { + "VCPKG_MANIFEST_NO_DEFAULT_FEATURES": { + "type": "BOOL", + "value": "ON" + } + }, + "toolchainFile": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake", + "hidden": true, + "name": "vcpkg" + }, + { + "binaryDir": "${sourceDir}/vsbuild", + "architecture": { + "strategy": "set", + "value": "x64" + }, + "cacheVariables": { + "CMAKE_CXX_FLAGS": "/EHsc /MP /W4", + "VCPKG_TARGET_TRIPLET": { + "type": "STRING", + "value": "x64-windows-static-md" + } + }, + "generator": "Visual Studio 17 2022", + "inherits": ["cmake-dev", "vcpkg"], + "name": "vs2022-windows", + "toolset": "v143" + }, + { + "cacheVariables": { + "VCPKG_MANIFEST_FEATURES": { + "type": "STRING", + "value": "standalone" + }, + "MO2_INSTALL_IS_BIN": { + "type": "BOOL", + "value": "ON" + } + }, + "inherits": "vs2022-windows", + "name": "vs2022-windows-standalone" + } + ], + "version": 4 +} diff --git a/SConstruct b/SConstruct deleted file mode 100644 index d0528b954..000000000 --- a/SConstruct +++ /dev/null @@ -1,713 +0,0 @@ -import distutils.sysconfig -import os -import re -import sys - -def setup_config_variables(): - """ Set up defaults values and load the configuration settings """ - # Take a sensible default for pythonpath - must_be_specified = 'Must be specified ***' - - boostpath = must_be_specified - if 'BOOSTPATH' in os.environ: - boostpath = os.environ['BOOSTPATH'] - - lootpath = must_be_specified - if 'LOOTPATH' in os.environ: - lootpath = os.environ['LOOTPATH'] - - pythonpath = must_be_specified - if 'PYTHONPATH' in os.environ: - pythonpath = os.environ['PYTHONPATH'] - else: - pythonpath = distutils.sysconfig.EXEC_PREFIX - - # Take qtdir from the os environment if set - qtdir = must_be_specified - if 'QTDIR' in os.environ: - qtdir = os.environ['QTDIR'] - elif 'QT4DIR' in os.environ: - qtdir = os.environ['QT4DIR'] - - sevenzippath = must_be_specified - if 'SEVENZIPPATH' in os.environ: - sevenzippath = os.environ['SEVENZIPPATH'] - - zlibpath = must_be_specified - if 'ZLIBPATH' in os.environ: - zlibpath = os.environ['ZLIBPATH'] - - git = 'git' - if 'GIT' in os.environ: - git = os.environ['GIT'] - - mercurial = 'hg' - if 'MERCURIAL' in os.environ: - hg = os.environ['HG'] - - vars = Variables('scons_configure.py') - vars.AddVariables( - PathVariable('BOOSTPATH', 'Set to point to your boost directory', - boostpath, PathVariable.PathIsDir), - PathVariable('LOOTPATH', 'Set to point to your LOOT API directory', - lootpath, PathVariable.PathIsDir), - ('MSVC_VERSION', 'Version of msvc, defaults to latest installed'), - PathVariable('PYTHONPATH', 'Path to python install', pythonpath, - PathVariable.PathIsDir), - PathVariable('QTDIR', 'Path to the version of QT to use', qtdir, - PathVariable.PathIsDir), - PathVariable('SEVENZIPPATH', 'Path to 7zip sources', sevenzippath, - PathVariable.PathIsDir), - PathVariable('ZLIBPATH', 'Path to zlib install', zlibpath, - PathVariable.PathIsDir), - PathVariable('GIT', 'Path to git executable', git, - PathVariable.PathIsFile), - PathVariable('MERCURIAL', 'Path to hg executable', mercurial, - PathVariable.PathIsFile), - PathVariable('IWYU', 'Path to include-what-you-use executable', None, - PathVariable.PathIsFile) - ) - - return vars - -def add_moc_files(self, files): - """ - The QT4 tool only sets up moc for .cpp files. If there's a header file - with no corresponding source we have to do it ourselves. This makes it - easier. - Note: I could just supress the scanning and moc all the HEADER files... - """ - targets = [] - for file in self.Flatten([files]): - contents = file.get_contents() - target = str(file)[:-1] + 'cpp' - if not os.path.exists(target): - if 'Q_OBJECT' in file.get_contents(): - header = file.name - target = self['QT5_XMOCHPREFIX'] + header[:-2] + \ - self['QT5_XMOCHSUFFIX'] - targets.append(self.ExplicitMoc5(target, header)) - return targets - -def link_emitter_wrapper(target, source, env): - # This could be better written! - if '/DEBUG' in env['LINKFLAGS']: - name = str(target[0])[:-3] + 'pdb' - target.append(name) - return (target, source) - -def shlib_emitter_wrapper(target, source, env): - if 'WINDOWS_EMBED_MANIFEST' in env: - env.AppendUnique(LINKFLAGS = '/MANIFEST') - return link_emitter_wrapper(target, source, env) - -def fixup_qt4(): - import SCons.Tool - oldpath = sys.path - sys.path = SCons.Tool.DefaultToolpath + sys.path - import qt4 - def my_qrc_path(head, prefix, tail, suffix): - return "%s%s%s" % (prefix, tail, suffix) - qt4.__qrc_path = my_qrc_path - sys.path = oldpath - -metadata = re.compile(r'Q_PLUGIN_METADATA\(IID *".*" *FILE *"(.*)"\)') - -def json_emitter(target, source, env): - depends = [] - for s in source: - match = metadata.search(s.get_contents()) - if match: - depends += [ match.group(1) ] - env.Depends(target, depends) - return target, source - -def fixup_qt5(): - import SCons.Tool - oldpath = sys.path - sys.path = SCons.Tool.DefaultToolpath + sys.path - import qt5 - def my_qrc_path(head, prefix, tail, suffix): - return "%s%s%s" % (prefix, tail, suffix) - qt5.__qrc_path = my_qrc_path - sys.path = oldpath - - qt_env['BUILDERS']['Moc5'].builder.emitter = json_emitter - -moduleDefines = { - '3Support' : [ 'QT_QT3SUPPORT_LIB', 'QT3_SUPPORT' ], - 'Core' : [ 'QT_CORE_LIB' ], - 'Declarative' : [ 'QT_DECLARATIVE_LIB' ], - 'Gui' : [ 'QT_GUI_LIB' ], - 'Network' : [ 'QT_NETWORK_LIB' ], - 'OpenGL' : [ 'QT_OPENGL_LIB' ], - 'Script' : [ 'QT_SCRIPT_LIB' ], - 'Sql' : [ 'QT_SQL_LIB' ], - 'Svg' : [ 'QT_SVG_LIB' ], - 'WebKit' : [ 'QT_WEBKIT_LIB' ], - 'Xml' : [ 'QT_XML_LIB' ], - 'XmlPatterns' : [ 'QT_XMLPATTERNS_LIB' ], -# qt5 - 'Qml' : [ 'QT_QML_LIB' ], - 'QuickWidgets' : [ 'QT_QUICKWIDGETS_LIB', 'QT_WIDGETS_LIB', 'QT_QUICK_LIB' ], - 'Widgets' : [ 'QT_WIDGETS_LIB' ], - 'WebKitWidgets' : [ 'QT_WEBKITWIDGETS_LIB' ], - 'WinExtras' : [ 'QT_WINEXTRAS_LIB' ] -} - -staticModules = [ - 'UiTools', -] - -def get_qt_lib_info(env): - " Deal with the various QT naming conventions. sigh " - - # For QT4, the libraries are QTlibname{,d}4 - # For QT5, they are QT5libname{,d} - - prefix = 'QT' - suffix = 'd' if env['CONFIG'] == 'debug' else '' - - _suffix = suffix # Because they can't be consistent within a version, - # let alone between - version = env['QT_MAJOR_VERSION'] - if version <= 4: - suffix += str(version) - else: - prefix += str(version) - return prefix, suffix, _suffix - -def EnableQtModules(self, *modules): - """ Enable the specified QT modules, mainly by adding defines - and libraries - """ - self.AppendUnique(QT_USED_MODULES = modules) - for module in modules: - try: - self.AppendUnique(CPPDEFINES = moduleDefines[module]) - if self['CONFIG'] == 'debug': - if module == 'Declarative': - self.AppendUnique(CPPDEFINES = 'QT_DECLARATIVE_DEBUG') - elif module == 'Qml': - self.AppendUnique(CPPDEFINES = 'QT_QML_DEBUG') - except: - print 'module', module, 'has no -D' - pass - - if "Assistant" in modules: - self.AppendUnique(CPPPATH = [ - os.path.join('$QTDIR', 'include', 'QtAssistant') - ]) - modules.remove('Assistant') - modules.append('AssistantClient') - - prefix, suffix, _suffix = get_qt_lib_info(self) - self.AppendUnique(LIBS = [ - prefix + lib + suffix for lib in modules if lib not in staticModules - ]) - - self.PrependUnique(LIBS = [ - lib + _suffix for lib in modules if lib in staticModules - ]) - - if 'OpenGL' in modules: - self.AppendUnique(LIBS = [ 'opengl32' ]) - - self.AppendUnique(CPPPATH = [ - os.path.join('$QTDIR', 'include', 'QT' + module) for module in modules - ]) - -def DisableQtModules(self, *modules): - """ Disable the specified QT modules similar to enabling them """ - for module in modules: - try: - self['QT_USED_MODULES'].remove(module) - self['CPPDEFINES'].remove(moduleDefines[module]) - if self['CONFIG'] == 'debug' and module == 'Declarative': - self['CPPDEFINES'].remove('QT_DECLARATIVE_DEBUG') - except: - pass - - - if "Assistant" in modules: - self['CPPPATH'].remove(os.path.join('$QTDIR', 'include', 'QtAssistant')) - modules.remove('Assistant') - modules.append('AssistantClient') - - prefix, suffix, _suffix = get_qt_lib_info(self) - - for lib in modules: - self['LIBS'].remove(prefix + lib + suffix) - - if 'OpenGL' in modules: - self['LIBS'].remove('opengl32') - - for module in modules: - self['CPPPATH'].remove(os.path.join('$QTDIR', 'include', 'QT' + module)) - -def setup_IWYU(env): - import SCons.Defaults - import SCons.Builder - original_shared = SCons.Defaults.SharedObjectEmitter - original_static = SCons.Defaults.StaticObjectEmitter - - def DoIWYU(env, source, target): - for i in range(len(source)): - s = source[i] - dir, name = os.path.split(str(s)) # I'm sure theres a way of getting this from scons - # Don't bother looking at moc files and 7zip source - if not name.startswith('moc_') and \ - not dir.startswith(env['SEVENZIPPATH']): - # Put the .iwyu in the same place as the .obj - targ = os.path.splitext(str(target[i]))[0] - env.Depends(env.IWYU(targ + '.iwyu', s), target[i]) - - def shared_emitter(target, source, env): - DoIWYU(env, source, target) - return original_shared(target, source, env) - - def static_emitter(target, source, env): - DoIWYU(env, source, target) - return original_static(target, source, env) - - SCons.Defaults.SharedObjectEmitter = shared_emitter - SCons.Defaults.StaticObjectEmitter = static_emitter - - def emitter(target, source, env): - env.Depends(target, env['IWYU_MAPPING_FILE']) - env.Depends(target, env['IWYU_MASSAGE']) - return target, source - - def _concat_list(prefixes, list, suffixes, env, f=lambda x: x, target=None, source=None): - """ Creates a new list from 'list' by first interpolating each element - in the list using the 'env' dictionary and then calling f on the - list, and concatenate the 'prefix' and 'suffix' LISTS onto each element of the list. - A trailing space on the last element of 'prefix' or leading space on the - first element of 'suffix' will cause them to be put into separate list - elements rather than being concatenated. - """ - - if not list: - return list - - l = f(SCons.PathList.PathList(list).subst_path(env, target, source)) - if l is not None: - list = l - - # This bit replaces current concat_ixes - - result = [] - - def process_stringlist(s): - return [ str(env.subst(p, SCons.Subst.SUBST_RAW)) - for p in Flatten([s]) if p != '' ] - - # ensure that prefix and suffix are strings - prefixes = process_stringlist(prefixes) - prefix = '' - if len(prefixes) != 0: - if prefixes[-1][-1] != ' ': - prefix = prefixes.pop() - - suffixes = process_stringlist(suffixes) - suffix = '' - if len(suffixes) != 0: - if suffixes[-1][0] != ' ': - suffix = suffixes.pop(0) - - for x in list: - if isinstance(x, SCons.Node.FS.File): - result.append(x) - continue - x = str(x) - if x: - result.append(prefixes) - if prefix: - if x[:len(prefix)] != prefix: - x = prefix + x - result.append(x) - if suffix: - if x[-len(suffix):] != suffix: - result[-1] = result[-1] + suffix - result.append(suffixes) - return result - - env['_concat_list'] = _concat_list - # Note to self: command 2>&1 | other command appears to work as I would hope - # except it eats errors - iwyu = SCons.Builder.Builder( - action=[ - '$IWYU_MASSAGE $TARGET $IWYU $IWYU_FLAGS $IWYU_MAPPINGS $IWYU_COMCOM $SOURCE' - ], - emitter=emitter, - suffix='.iwyu', - src_suffix='.cpp') - - env.Append(BUILDERS={'IWYU': iwyu}) - - # Sigh - IWYU is a right bum as it doesn't recognise /I so I have to - # duplicate most of the usual stuff - - env['IWYU_FLAGS'] = [ - # This might turn down the output a bit. I hope - '-Xiwyu', '--transitive_includes_only', - # Seem to be needed for a windows build - '-D_MT', '-D_DLL', '-m32', - # This is something to do with clang, windows and boost headers - '-DBOOST_USE_WINDOWS_H', - # There's a lot of this, disabled for now - '-Wno-inconsistent-missing-override', - # Mark boost and Qt headers as system headers to disable a lot of noise. - # I'm sure there has to be a better way than saying 'prefix=Q' - '--system-header-prefix=Q', - '--system-header-prefix=boost/', - # Should be able to get this info from our setup really - '-fmsc-version=1800', '-D_MSC_VER=1800', - # clang and qt don't agree about these because clang says its gcc 4.2 - # and QT doesn't realise it's clang - '-DQ_COMPILER_INITIALIZER_LISTS', - '-DQ_COMPILER_DECLTYPE', - '-DQ_COMPILER_VARIADIC_TEMPLATES', - ] - if env['CONFIG'] == 'debug': - env['IWYU_FLAGS'] += [ '-D_DEBUG' ] - - env['IWYU_DEFPREFIX'] = '-D' - env['IWYU_DEFSUFFIX'] = '' - env['IWYU_CPPDEFFLAGS'] = '${_defines(IWYU_DEFPREFIX, CPPDEFINES, IWYU_DEFSUFFIX, __env__)}' - - env['IWYU_INCPREFIX'] = '-I' - env['IWYU_INCSUFFIX'] = '' - env['IWYU_CPPINCFLAGS'] = '$( ${_concat(IWYU_INCPREFIX, CPPPATH, IWYU_INCSUFFIX, __env__, RDirs, TARGET, SOURCE)} $)' - - env['IWYU_PCH_PREFIX'] = '-include' # Amazingly this works without a space - env['IWYU_PCH_SUFFIX'] = '' - env['IWYU_PCHFILES'] = '$( ${_concat(IWYU_PCH_PREFIX, PCHSTOP, IWYU_PCH_SUFFIX, __env__, target=TARGET, source=SOURCE)} $)' - - env['IWYU_COMCOM'] = '$IWYU_CPPDEFFLAGS $IWYU_CPPINCFLAGS $IWYU_PCHFILES $CCPDBFLAGS' - env['IWYU_MAPPING_PREFIX'] = ['-Xiwyu', '--mapping_file='] - env['IWYU_MAPPING_SUFFIX'] = '' - env['IWYU_MAPPINGS'] = '$( ${_concat_list(IWYU_MAPPING_PREFIX, IWYU_MAPPING_FILE, IWYU_MAPPING_SUFFIX, __env__, f=lambda l: [ str(x) for x in l], target=TARGET, source=SOURCE)} $)' - - env['IWYU_MAPPING_FILE'] = [ - env.File('#/modorganizer/qt5_4.imp'), - env.File('#/modorganizer/win.imp'), - env.File('#/modorganizer/mappings.imp') - ] - - env['IWYU_MASSAGE'] = env.File('#/modorganizer/massage_messages.py') - -# Create base environment -vars = setup_config_variables() -env = Environment(variables = vars, TARGET_ARCH = 'x86') - -# I'd really like to validate for unexpected settings in 'variables', but scons -# appears to throw them away -#ok = True -#for key, value in vars.UnknownVariables(): -# print "unknown variable in scons_configure.py: %s=%s" % (key, value) -# ok = False -#if not ok: -# sys.exit(1) - -# Patch scons to realise it's generating PDB files if /DEBUG is set -env.AppendUnique(PROGEMITTER = [ link_emitter_wrapper ]) -# Ditto + windows_embed_manifest doesn't generate a manifest file -env.AppendUnique(SHLIBEMITTER = [ shlib_emitter_wrapper ]) - -# Work out where to find boost libraries -libdir = os.path.join(env['BOOSTPATH'], 'lib32-msvc-' + env['MSVC_VERSION']) -if not os.path.exists(libdir): - libdir = os.path.join(env['BOOSTPATH'], 'stage', 'lib') -env.AppendUnique(LIBPATH = libdir) - -# Process command line to find out what/where we're building -config = ARGUMENTS.get('CONFIG', 'debug') -env['CONFIG'] = config - -# I think this is a bug in scons. It returns 12.0 for studio 13 -# This needs to match the QT specified version or bad things will happen! -msvs_version = int(env['MSVS_VERSION'].split('.')[0]) + 2000 -if msvs_version > 2010: - msvs_version += 1 - -# Read the QT version info -with open(os.path.join(env['QTDIR'], 'mkspecs', 'qconfig.pri')) as qtinfo: - for line in qtinfo: - info = re.split(r'\s*=\s*', line.rstrip()) - if info[0] == 'QT_VERSION': - env[info[0]] = info[1] - elif '_VERSION' in info[0]: - env[info[0]] = int(info[1]) - -build_dir = 'scons-ModOrganizer-QT_%s_%sfor_MSVS%d_32bit-%s' % ( - env['QT_VERSION'].replace('.', '_'), - 'OpenGL_' if 'opengl' in env['QTDIR'] else '', - msvs_version, - config.title()) - -# Put the sconsign file somewhere sane -env.SConsignFile(os.path.join(build_dir, '.sconsign.dblite')) -env.CacheDir(os.path.join(build_dir, '.cache')) - -#this doesn't seem to work -#env.VariantDir('build/$CONFIG', 'source') -#env.VariantDir('build/$CONFIG', 'source', duplicate = 0) - -# Ripped off from qmake.conf - -# Compiler defines. Note that scons uses the same variables for C and C++ -# defines and include paths so be careful if you mix languages. - -# A note: QT puts _MSC_VER into the compile line, but I can see no earthly -# reason for this. - -env.AppendUnique(CPPDEFINES = [ - 'UNICODE', - 'WIN32', - 'NOMINMAX' # Nukes boost all over the place -]) - -# Default warning level. -env['WARNING_LEVEL'] = 3 - -# C compiler flags -env.AppendUnique(CPPFLAGS = [ - '/Zm200', - #'/Zc:wchar_t-', # 4 v 5 - '/Zc:wchar_t', - '/W$WARNING_LEVEL' -]) - -# C++ compiler flags -env.AppendUnique(CXXFLAGS = [ - '/w34100', - '/w34189', - '/EHsc', # STL on - '/GR' # RTTI on -]) - -""" -# qmake.conf -#QMAKE_CFLAGS_RELEASE = -O2 -MD -#QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi -#QMAKE_CFLAGS_LTCG = -GL -#QMAKE_CFLAGS_MP = -MP - -QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO -QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO = /DEBUG /OPT:REF -QMAKE_LFLAGS_LTCG = /LTCG - -# project -""" - -env['WINDOWS_EMBED_MANIFEST'] = True - - -# Seriously, the linker doesn't apply these by default? -env.AppendUnique(LINKFLAGS = [ - '/DYNAMICBASE', - '/NXCOMPAT' -]) - -# Display full path in messages. Sadly even this isn't good enough for Creator -# env.AppendUnique(CPPFLAGS = [ '/FC' ]) - -if env['CONFIG'] == 'debug': - env.AppendUnique(CPPFLAGS = [ '/MDd', '/Z7' ]) - env.AppendUnique(LINKFLAGS = [ '/DEBUG' ]) #, '/OPT:REF']) -else: - env.AppendUnique(CPPFLAGS = [ '/O2', '/MD' ]) - env.AppendUnique(LINKFLAGS = [ '/OPT:REF', '/OPT:ICF' ]) - -# Set up include what you use. Add this as an extra compile step. Note it -# doesn't currently generate an output file (use the output instead!). -if 'IWYU' in env: - setup_IWYU(env) - -# /OPT:REF removes unreferenced code -# for release, use /OPT:ICF (comdat folding: coalesce identical blocks of code) - -# We have to make the install path absolute. *sigh*. But it appears to have to -# be in build_dir... -env['INSTALL_PATH'] = os.path.join(os.getcwd(), build_dir, '_ModOrganizer') - -# Create the environment for QT -qt_env = env.Clone() - -# If you don't do this for the release build, QT gets very upset... -if qt_env['CONFIG'] != 'debug': - qt_env.AppendUnique(CPPDEFINES = [ 'QT_NO_DEBUG' ]) - -qt_env.Tool('qt%d' % qt_env['QT_MAJOR_VERSION']) - -# FIXME See if I can work out how to get official scons qt to work. Appears -# to only work with QT5 -fixup_qt5() - -qt_env.AddMethod(add_moc_files, 'AddExtraMoc') - -# A very strange rune which QT sets -qt_env['EXE_MANIFEST_DEPENDENCY'] =\ - '/MANIFESTDEPENDENCY:"' + ' '.join(("type='win32'", - "name='Microsoft.Windows.Common-Controls'", - "version='6.0.0.0'", - "publicKeyToken='6595b64144ccf1df'", - "language='*'", - "processorArchitecture='*'")) + '"' - -# Not sure how necessary this is. Moreover it says msvc but seems to expect -# the msvs number -qt_env.AppendUnique(CPPPATH = [ - os.path.join(env['QTDIR'], 'mkspecs', 'win32-msvc%d' % msvs_version) -]) - -qt_env.AddMethod(EnableQtModules) -qt_env.AddMethod(DisableQtModules) - -# This is a hack. we should redirect uic to uic4/uic5 and fix the scripts -def Uicc5(self, *args, **kwargs): - return self.Uic5(*args, **kwargs) - -qt_env.AddMethod(Uicc5, 'Uic') - -# Enable the base libraries. -qt_env.EnableQt5Modules([], debug = qt_env['CONFIG'] == 'debug') - -# Causes too many problems if you don't do this -qt_env['QT%d_MOCCPPPATH' % qt_env['QT_MAJOR_VERSION']] = '$CPPPATH' -# Yechhh. Note: the the _VER depends on ms compiler version (and could -# be dragged from the qmake conf file or preferrably from ms compiler) -qt_env['QT%d_MOCDEFINES' % qt_env['QT_MAJOR_VERSION']] =\ - '${_defines(QT5_MOCDEFPREFIX, MOCDEFINES+CPPDEFINES, QT5_MOCDEFSUFFIX, __env__)}' -qt_env['MOCDEFINES'] = [ - '_MSC_VER=1800', -] -# QTCreator appears to add these automatically. Some of these look moderately -# dangerous if you're attempting to cross-compile -# only for qt4? -if qt_env['QT_MAJOR_VERSION'] <= 4: - qt_env.AppendUnique(CPPDEFINES = [ - 'QT_DLL', - 'QT_HAVE_MMX', - 'QT_HAVE_3DNOW', - 'QT_HAVE_SSE', - 'QT_HAVE_MMXEXT', - 'QT_HAVE_SSE2', - 'QT_THREAD_SUPPORT' - ]) - -# It also adds this to the end of the include path. -# -I"c:\Apps\Qt\4.8.6\include\ActiveQt" - -# Export environment. Rename it first to encourage instant Clone() calls -Export('env qt_env') - -# And away we go -libs_to_install = env.SConscript('source/SConscript', - variant_dir = build_dir, - duplicate = 0) -libs_to_install = sorted(set(filter(lambda x: x is not None, - env.Flatten(libs_to_install)))) -# There are some odd implicit dependencies -if qt_env['QT_MAJOR_VERSION'] > 4: - libs_to_install += [ - 'Multimedia', - 'MultimediaWidgets', - 'OpenGL', - 'Positioning', - 'PrintSupport', - 'Quick', - 'Sensors', - 'WebChannel', - ] - -# Finally, set up rules to install the DLLs. -# use windeployqt.exe to install all required libraries -#SET(windeploy_parameters --no-translations --no-plugins --libdir dlls --release-with-debug-info --no-compiler-runtime) -#INSTALL( -# CODE -# "EXECUTE_PROCESS( -# COMMAND -# ${qt5bin}/windeployqt.exe ModOrganizer.exe ${windeploy_parameters} -# COMMAND -# ${qt5bin}/windeployqt.exe uibase.dll ${windeploy_parameters} -# WORKING_DIRECTORY ${CMAKE_INSTALL_PREFIX}/bin -# )" -#) -# this should probably be a rule though it seems to produce an awful lot of -# Stuff(TM). or a postaction - -dll_path = os.path.join('$INSTALL_PATH', 'DLLs') - -prefix, suffix, suffix_ = get_qt_lib_info(qt_env) - -dlls_to_install = [] -dlls_to_install = [ - os.path.join(env['QTDIR'], 'bin', prefix + lib + suffix + '.dll') - for lib in libs_to_install -] - -if env['CONFIG'] == 'debug': - dlls_to_install += [ - os.path.join(env['QTDIR'], 'bin', prefix + lib + suffix + '.pdb') - for lib in libs_to_install - ] - -# There is something wrong with webkit4 and/or this build as it seems -# to need to live in the same directory as mod organiser. -if 'WebKit' in libs_to_install and qt_env['QT_MAJOR_VERSION'] == 4: - libname = prefix + 'WebKit' + suffix - env.Install(env['INSTALL_PATH'], - os.path.join(env['QTDIR'], 'bin', libname + '.dll')) - if env['CONFIG'] == 'debug': - env.Install(env['INSTALL_PATH'], - os.path.join(env['QTDIR'], 'bin', libname + '.pdb')) - -if qt_env['QT_MAJOR_VERSION'] > 4: - # Guesswork a bit. - dlls_to_install += [ - os.path.join(env['QTDIR'], - 'bin', - 'icu%s%d%d.dll' % (lib, - qt_env['QT_MAJOR_VERSION'], - qt_env['QT_MINOR_VERSION'] - 1)) - for lib in ('dt','in', 'uc') - ] - - platform_dlls = [] - if env['CONFIG'] == 'debug': - platform_dlls += [ 'qwindowsd.dll', 'qwindowsd.pdb' ] - else: - platform_dlls += [ 'qwindows.dll' ] - - # Note: Appears to work fine in DLLs or at the top level, but I'm all for - # keeping the top directory a bit clean - env.Install(os.path.join(dll_path, 'platforms'), - [ os.path.join(env['QTDIR'], 'plugins', 'platforms', dll) - for dll in platform_dlls ]) - - image_dlls = [] - for image in ('dds', 'gif', 'jpeg', 'tga'): - if env['CONFIG'] == 'debug': - image_dlls += [ 'q' + image + 'd.dll', 'q' + image + 'd.pdb' ] - else: - image_dlls += [ 'q' + image + '.dll' ] - env.Install(os.path.join(dll_path, 'imageformats'), - [ os.path.join(env['QTDIR'], 'plugins', 'imageformats', dll) - for dll in image_dlls ]) - -# Build your own? -dlls_to_install += [ - os.path.join('tools', 'static_data', 'dlls', '7z.dll') -] - -env.Install(dll_path, dlls_to_install) - -# And loot which goes somewhere else (maybe this should be done in loot_cli?) -env.Install(os.path.join('${INSTALL_PATH}', 'loot'), - os.path.join('${LOOTPATH}', 'loot32.dll')) - -# also pythondll and zip, boost python dll (all for python proxy!) -# the dll we can drag from the python install -# the zip i'm not sure about. diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index 854e3aaa4..000000000 --- a/appveyor.yml +++ /dev/null @@ -1,77 +0,0 @@ -version: dev-appveyor{build} -skip_branch_with_pr: true -image: Visual Studio 2019 -init: -- ps: >- - # define build version depending on nightly or normal build - - if($env:APPVEYOR_SCHEDULED_BUILD -eq 'True'){ - $timestamp= Get-Date -Format "ddMMyyyy-HHmm" - Update-AppveyorBuild -Version "$($env:MO_VERSION)$($env:VER_STUB_NIGHTLY)$timestamp" - } else { - Update-AppveyorBuild -Version "$($env:MO_VERSION)$($env:VER_STUB_NORMAL)$($env:APPVEYOR_BUILD_NUMBER)" - } - - Write-Host Build version set to: $env:APPVEYOR_BUILD_VERSION -environment: - WEBHOOK_URL: - secure: gOKbXaZM9ImtMD5XrYITvdyZUW/az082G9OIN1EC1VaKiI9iefpxhBavJ6Al6CzIZvQ+3pxnLqjmNgA7cDc22wcj2kB4hSG5qhbTI8wGa8jLQ5L65nuRZ3vrIqghBz9G3GLglgZkg6eqH9r3Kqc6UzcpCGzxxPOqm550nRcIiUU= - MO_VERSION: 2.4.0 - VER_STUB_NORMAL: dev-appveyor- - VER_STUB_NIGHTLY: dev-nightly- -build_script: -- pwsh: >- - # Maintenance comments: - - # APPVEYOR_BUILD_FOLDER= "c:\projects\modorganizer-slug" - - # -Need to update py3 version used to invoke unimake.py once in a while. - - # -Need update MO_VERSION env variable after each release. - - # -Always clones umbrella master - - # -Will checkout all the branches matching the one that triggered the build on the main repo. - - # End comments. - - $ErrorActionPreference = 'Stop' - - git clone --depth=1 --no-single-branch https://github.com/ModOrganizer2/modorganizer-umbrella.git c:\projects\modorganizer-umbrella - - New-Item -ItemType Directory -Path ${env:APPVEYOR_BUILD_FOLDER}\modorganizer-build - - cd c:\projects\modorganizer-umbrella - - ($env:APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH -eq $null) ? ($branch = $env:APPVEYOR_REPO_BRANCH) : ($branch = $env:APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH) - - git checkout $(git show-ref --verify --quiet refs/remotes/origin/${branch} || echo '-b') ${branch} - - C:\Python38-x64\python.exe unimake.py -d ${env:APPVEYOR_BUILD_FOLDER}\modorganizer-build -s Appveyor_Build=True -s Feature_Branch=${env:APPVEYOR_REPO_BRANCH} -s override_build_version=${env:APPVEYOR_BUILD_VERSION} - - if($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode ) } -test: off -artifacts: -- path: '\modorganizer-build\install\bin\ModOrganizer.exe' - name: Mod.Organizer-$(APPVEYOR_BUILD_VERSION) -- path: '\modorganizer-build\install\pdb\ModOrganizer.pdb' - name: PDB-Mod.Organizer-$(APPVEYOR_BUILD_VERSION) -deploy: off -on_success: -- ps: >- - Set-Location -Path $env:APPVEYOR_BUILD_FOLDER - - Invoke-RestMethod https://raw.githubusercontent.com/DiscordHooks/appveyor-discord-webhook/master/send.ps1 -o send.ps1 - - if($env:APPVEYOR_SCHEDULED_BUILD -ne 'True'){ - ./send.ps1 success $env:WEBHOOK_URL - } -on_failure: -- ps: >- - Set-Location -Path $env:APPVEYOR_BUILD_FOLDER - - Invoke-RestMethod https://raw.githubusercontent.com/DiscordHooks/appveyor-discord-webhook/master/send.ps1 -o send.ps1 - - if($env:APPVEYOR_SCHEDULED_BUILD -ne 'True'){ - ./send.ps1 failure $env:WEBHOOK_URL - } diff --git a/mappings.imp b/mappings.imp deleted file mode 100644 index 6af65e3c6..000000000 --- a/mappings.imp +++ /dev/null @@ -1,30 +0,0 @@ -[ - -# for boost??? -# These are probably correct but might need a revisit as if you look at the boost documentation pages, it -# can give you huge lists of alternate includes... - { symbol: [ "BOOST_FOREACH", "private", "", "public" ] }, - - { include: [ "@\"boost/bind/.*\"", "private", "", "public" ] }, - { include: [ "@\"boost/algorithm/string/.*\"", "private", "", "public" ] }, - { include: [ "@\"boost/assign/.*\"", "private", "", "public" ] }, - { include: [ "@\"boost/filesystem/.*\"", "private", "", "public" ] }, - { include: [ "@\"boost/format/.*\"", "private", "", "public" ] }, - { include: [ "@\"boost/function/.*\"", "private", "", "public" ] }, - { include: [ "@\"boost/local/.*\"", "private", "", "public" ] }, - { include: [ "@\"boost/python/.*\"", "private", "", "public" ] }, - { include: [ "@\"boost/signals2/.*\"", "private", "", "public" ] }, - { include: [ "\"boost/smart_ptr/scoped_array.hpp\"", "private", "", "public" ] }, - { include: [ "\"boost/smart_ptr/shared_ptr.hpp\"", "private", "", "public" ] }, - # this appears to be excessive - #{ include: [ "@\"boost/thread/.*\"", "private", "", "public" ] }, - -# And this is specific to us - { include: [ "\"appconfig.inc\"", "private", "\"appconfig.h\"", "public" ] }, - -] - -# Ones I don't yet know how to deal with -#include "boost/fusion/container/vector/vector10_fwd.hpp" // for fusion -#include "boost/iterator/iterator_facade.hpp" // for operator!= -#include "boost/iterator/iterator_facade.hpp" diff --git a/qt5_4.imp b/qt5_4.imp deleted file mode 100644 index 5f919085d..000000000 --- a/qt5_4.imp +++ /dev/null @@ -1,2478 +0,0 @@ -[ - -# Per le documentation, each class lives in it's own header file. These are the -# official header files (as far as I can determine, from a scan of the QT includes -# directory) -# It'd be nice if IWYU could be told to recognise X::y as coming from the same header as X - - { symbol: [ "ActiveQt", "private", "", "public" ] }, - { symbol: [ "ActiveQtDepends", "private", "", "public" ] }, - { symbol: [ "ActiveQtVersion", "private", "", "public" ] }, - { symbol: [ "Enginio", "private", "", "public" ] }, - { symbol: [ "EnginioDepends", "private", "", "public" ] }, - { symbol: [ "EnginioVersion", "private", "", "public" ] }, - { symbol: [ "QAbstractAnimation", "private", "", "public" ] }, - { symbol: [ "QAbstractAudioDeviceInfo", "private", "", "public" ] }, - { symbol: [ "QAbstractAudioInput", "private", "", "public" ] }, - { symbol: [ "QAbstractAudioOutput", "private", "", "public" ] }, - { symbol: [ "QAbstractButton", "private", "", "public" ] }, - { symbol: [ "QAbstractEventDispatcher", "private", "", "public" ] }, - { symbol: [ "QAbstractExtensionFactory", "private", "", "public" ] }, - { symbol: [ "QAbstractExtensionManager", "private", "", "public" ] }, - { symbol: [ "QAbstractFormBuilder", "private", "", "public" ] }, - { symbol: [ "QAbstractGraphicsShapeItem", "private", "", "public" ] }, - { symbol: [ "QAbstractItemDelegate", "private", "", "public" ] }, - { symbol: [ "QAbstractItemModel", "private", "", "public" ] }, - { symbol: [ "QAbstractItemView", "private", "", "public" ] }, - { symbol: [ "QAbstractListModel", "private", "", "public" ] }, - { symbol: [ "QAbstractMessageHandler", "private", "", "public" ] }, - { symbol: [ "QAbstractNativeEventFilter", "private", "", "public" ] }, - { symbol: [ "QAbstractNetworkCache", "private", "", "public" ] }, - { symbol: [ "QAbstractPlanarVideoBuffer", "private", "", "public" ] }, - { symbol: [ "QAbstractPrintDialog", "private", "", "public" ] }, - { symbol: [ "QAbstractProxyModel", "private", "", "public" ] }, - { symbol: [ "QAbstractScrollArea", "private", "", "public" ] }, - { symbol: [ "QAbstractSlider", "private", "", "public" ] }, - { symbol: [ "QAbstractSocket", "private", "", "public" ] }, - { symbol: [ "QAbstractSpinBox", "private", "", "public" ] }, - { symbol: [ "QAbstractState", "private", "", "public" ] }, - { symbol: [ "QAbstractTableModel", "private", "", "public" ] }, - { symbol: [ "QAbstractTextDocumentLayout", "private", "", "public" ] }, - { symbol: [ "QAbstractTransition", "private", "", "public" ] }, - { symbol: [ "QAbstractUndoItem", "private", "", "public" ] }, - { symbol: [ "QAbstractUriResolver", "private", "", "public" ] }, - { symbol: [ "QAbstractVideoBuffer", "private", "", "public" ] }, - { symbol: [ "QAbstractVideoSurface", "private", "", "public" ] }, - { symbol: [ "QAbstractXmlNodeModel", "private", "", "public" ] }, - { symbol: [ "QAbstractXmlReceiver", "private", "", "public" ] }, - { symbol: [ "QAccelerometer", "private", "", "public" ] }, - { symbol: [ "QAccelerometerFilter", "private", "", "public" ] }, - { symbol: [ "QAccelerometerReading", "private", "", "public" ] }, - { symbol: [ "QAccessible", "private", "", "public" ] }, - { symbol: [ "QAccessibleAbstractScrollArea", "private", "", "public" ] }, - { symbol: [ "QAccessibleAbstractSlider", "private", "", "public" ] }, - { symbol: [ "QAccessibleAbstractSpinBox", "private", "", "public" ] }, - { symbol: [ "QAccessibleActionInterface", "private", "", "public" ] }, - { symbol: [ "QAccessibleApplication", "private", "", "public" ] }, - { symbol: [ "QAccessibleBridge", "private", "", "public" ] }, - { symbol: [ "QAccessibleBridgePlugin", "private", "", "public" ] }, - { symbol: [ "QAccessibleButton", "private", "", "public" ] }, - { symbol: [ "QAccessibleCalendarWidget", "private", "", "public" ] }, - { symbol: [ "QAccessibleComboBox", "private", "", "public" ] }, - { symbol: [ "QAccessibleDial", "private", "", "public" ] }, - { symbol: [ "QAccessibleDialogButtonBox", "private", "", "public" ] }, - { symbol: [ "QAccessibleDisplay", "private", "", "public" ] }, - { symbol: [ "QAccessibleDockWidget", "private", "", "public" ] }, - { symbol: [ "QAccessibleDoubleSpinBox", "private", "", "public" ] }, - { symbol: [ "QAccessibleEditableTextInterface", "private", "", "public" ] }, - { symbol: [ "QAccessibleEvent", "private", "", "public" ] }, - { symbol: [ "QAccessibleGroupBox", "private", "", "public" ] }, - { symbol: [ "QAccessibleImageInterface", "private", "", "public" ] }, - { symbol: [ "QAccessibleInterface", "private", "", "public" ] }, - { symbol: [ "QAccessibleLineEdit", "private", "", "public" ] }, - { symbol: [ "QAccessibleMainWindow", "private", "", "public" ] }, - { symbol: [ "QAccessibleMdiArea", "private", "", "public" ] }, - { symbol: [ "QAccessibleMdiSubWindow", "private", "", "public" ] }, - { symbol: [ "QAccessibleMenu", "private", "", "public" ] }, - { symbol: [ "QAccessibleMenuBar", "private", "", "public" ] }, - { symbol: [ "QAccessibleMenuItem", "private", "", "public" ] }, - { symbol: [ "QAccessibleObject", "private", "", "public" ] }, - { symbol: [ "QAccessiblePlainTextEdit", "private", "", "public" ] }, - { symbol: [ "QAccessiblePlugin", "private", "", "public" ] }, - { symbol: [ "QAccessibleProgressBar", "private", "", "public" ] }, - { symbol: [ "QAccessibleScrollArea", "private", "", "public" ] }, - { symbol: [ "QAccessibleScrollBar", "private", "", "public" ] }, - { symbol: [ "QAccessibleSlider", "private", "", "public" ] }, - { symbol: [ "QAccessibleSpinBox", "private", "", "public" ] }, - { symbol: [ "QAccessibleStackedWidget", "private", "", "public" ] }, - { symbol: [ "QAccessibleStateChangeEvent", "private", "", "public" ] }, - { symbol: [ "QAccessibleTabBar", "private", "", "public" ] }, - { symbol: [ "QAccessibleTable", "private", "", "public" ] }, - { symbol: [ "QAccessibleTableCell", "private", "", "public" ] }, - { symbol: [ "QAccessibleTableCellInterface", "private", "", "public" ] }, - { symbol: [ "QAccessibleTableCornerButton", "private", "", "public" ] }, - { symbol: [ "QAccessibleTableHeaderCell", "private", "", "public" ] }, - { symbol: [ "QAccessibleTableInterface", "private", "", "public" ] }, - { symbol: [ "QAccessibleTableModelChangeEvent", "private", "", "public" ] }, - { symbol: [ "QAccessibleTextBrowser", "private", "", "public" ] }, - { symbol: [ "QAccessibleTextCursorEvent", "private", "", "public" ] }, - { symbol: [ "QAccessibleTextEdit", "private", "", "public" ] }, - { symbol: [ "QAccessibleTextInsertEvent", "private", "", "public" ] }, - { symbol: [ "QAccessibleTextInterface", "private", "", "public" ] }, - { symbol: [ "QAccessibleTextRemoveEvent", "private", "", "public" ] }, - { symbol: [ "QAccessibleTextSelectionEvent", "private", "", "public" ] }, - { symbol: [ "QAccessibleTextUpdateEvent", "private", "", "public" ] }, - { symbol: [ "QAccessibleTextWidget", "private", "", "public" ] }, - { symbol: [ "QAccessibleToolBox", "private", "", "public" ] }, - { symbol: [ "QAccessibleToolButton", "private", "", "public" ] }, - { symbol: [ "QAccessibleTree", "private", "", "public" ] }, - { symbol: [ "QAccessibleValueChangeEvent", "private", "", "public" ] }, - { symbol: [ "QAccessibleValueInterface", "private", "", "public" ] }, - { symbol: [ "QAccessibleWidget", "private", "", "public" ] }, - { symbol: [ "QAccessibleWindowContainer", "private", "", "public" ] }, - { symbol: [ "QAction", "private", "", "public" ] }, - { symbol: [ "QActionEvent", "private", "", "public" ] }, - { symbol: [ "QActionGroup", "private", "", "public" ] }, - { symbol: [ "QAltimeter", "private", "", "public" ] }, - { symbol: [ "QAltimeterFilter", "private", "", "public" ] }, - { symbol: [ "QAltimeterReading", "private", "", "public" ] }, - { symbol: [ "QAmbientLightFilter", "private", "", "public" ] }, - { symbol: [ "QAmbientLightReading", "private", "", "public" ] }, - { symbol: [ "QAmbientLightSensor", "private", "", "public" ] }, - { symbol: [ "QAmbientTemperatureFilter", "private", "", "public" ] }, - { symbol: [ "QAmbientTemperatureReading", "private", "", "public" ] }, - { symbol: [ "QAmbientTemperatureSensor", "private", "", "public" ] }, - { symbol: [ "QAnimationDriver", "private", "", "public" ] }, - { symbol: [ "QAnimationGroup", "private", "", "public" ] }, - { symbol: [ "QApplication", "private", "", "public" ] }, - { symbol: [ "QApplicationStateChangeEvent", "private", "", "public" ] }, - { symbol: [ "QArgument", "private", "", "public" ] }, - { symbol: [ "QArrayData", "private", "", "public" ] }, - { symbol: [ "QArrayDataPointer", "private", "", "public" ] }, - { symbol: [ "QArrayDataPointerRef", "private", "", "public" ] }, - { symbol: [ "QAssociativeIterable", "private", "", "public" ] }, - { symbol: [ "QAtomicInt", "private", "", "public" ] }, - { symbol: [ "QAtomicInteger", "private", "", "public" ] }, - { symbol: [ "QAtomicPointer", "private", "", "public" ] }, - { symbol: [ "QAudio", "private", "", "public" ] }, - { symbol: [ "QAudioBuffer", "private", "", "public" ] }, - { symbol: [ "QAudioDecoder", "private", "", "public" ] }, - { symbol: [ "QAudioDecoderControl", "private", "", "public" ] }, - { symbol: [ "QAudioDeviceInfo", "private", "", "public" ] }, - { symbol: [ "QAudioEncoderSettings", "private", "", "public" ] }, - { symbol: [ "QAudioEncoderSettingsControl", "private", "", "public" ] }, - { symbol: [ "QAudioFormat", "private", "", "public" ] }, - { symbol: [ "QAudioInput", "private", "", "public" ] }, - { symbol: [ "QAudioInputSelectorControl", "private", "", "public" ] }, - { symbol: [ "QAudioOutput", "private", "", "public" ] }, - { symbol: [ "QAudioOutputSelectorControl", "private", "", "public" ] }, - { symbol: [ "QAudioProbe", "private", "", "public" ] }, - { symbol: [ "QAudioRecorder", "private", "", "public" ] }, - { symbol: [ "QAudioSystemFactoryInterface", "private", "", "public" ] }, - { symbol: [ "QAudioSystemPlugin", "private", "", "public" ] }, - { symbol: [ "QAuthenticator", "private", "", "public" ] }, - { symbol: [ "QAxAggregated", "private", "", "public" ] }, - { symbol: [ "QAxBase", "private", "", "public" ] }, - { symbol: [ "QAxBindable", "private", "", "public" ] }, - { symbol: [ "QAxFactory", "private", "", "public" ] }, - { symbol: [ "QAxObject", "private", "", "public" ] }, - { symbol: [ "QAxScript", "private", "", "public" ] }, - { symbol: [ "QAxScriptEngine", "private", "", "public" ] }, - { symbol: [ "QAxScriptManager", "private", "", "public" ] }, - { symbol: [ "QAxSelect", "private", "", "public" ] }, - { symbol: [ "QAxWidget", "private", "", "public" ] }, - { symbol: [ "QBBSystemLocaleData", "private", "", "public" ] }, - { symbol: [ "QBackingStore", "private", "", "public" ] }, - { symbol: [ "QBasicMutex", "private", "", "public" ] }, - { symbol: [ "QBasicTimer", "private", "", "public" ] }, - { symbol: [ "QBitArray", "private", "", "public" ] }, - { symbol: [ "QBitRef", "private", "", "public" ] }, - { symbol: [ "QBitmap", "private", "", "public" ] }, - { symbol: [ "QBluetoothAddress", "private", "", "public" ] }, - { symbol: [ "QBluetoothDeviceDiscoveryAgent", "private", "", "public" ] }, - { symbol: [ "QBluetoothDeviceInfo", "private", "", "public" ] }, - { symbol: [ "QBluetoothHostInfo", "private", "", "public" ] }, - { symbol: [ "QBluetoothLocalDevice", "private", "", "public" ] }, - { symbol: [ "QBluetoothServer", "private", "", "public" ] }, - { symbol: [ "QBluetoothServiceDiscoveryAgent", "private", "", "public" ] }, - { symbol: [ "QBluetoothServiceInfo", "private", "", "public" ] }, - { symbol: [ "QBluetoothSocket", "private", "", "public" ] }, - { symbol: [ "QBluetoothTransferManager", "private", "", "public" ] }, - { symbol: [ "QBluetoothTransferReply", "private", "", "public" ] }, - { symbol: [ "QBluetoothTransferRequest", "private", "", "public" ] }, - { symbol: [ "QBluetoothUuid", "private", "", "public" ] }, - { symbol: [ "QBoxLayout", "private", "", "public" ] }, - { symbol: [ "QBrush", "private", "", "public" ] }, - { symbol: [ "QBrushData", "private", "", "public" ] }, - { symbol: [ "QBuffer", "private", "", "public" ] }, - { symbol: [ "QButtonGroup", "private", "", "public" ] }, - { symbol: [ "QByteArray", "private", "", "public" ] }, - { symbol: [ "QByteArrayData", "private", "", "public" ] }, - { symbol: [ "QByteArrayDataPtr", "private", "", "public" ] }, - { symbol: [ "QByteArrayList", "private", "", "public" ] }, - { symbol: [ "QByteArrayListIterator", "private", "", "public" ] }, - { symbol: [ "QByteArrayMatcher", "private", "", "public" ] }, - { symbol: [ "QByteRef", "private", "", "public" ] }, - { symbol: [ "QCache", "private", "", "public" ] }, - { symbol: [ "QCalendarWidget", "private", "", "public" ] }, - { symbol: [ "QCamera", "private", "", "public" ] }, - { symbol: [ "QCameraCaptureBufferFormatControl", "private", "", "public" ] }, - { symbol: [ "QCameraCaptureDestinationControl", "private", "", "public" ] }, - { symbol: [ "QCameraControl", "private", "", "public" ] }, - { symbol: [ "QCameraExposure", "private", "", "public" ] }, - { symbol: [ "QCameraExposureControl", "private", "", "public" ] }, - { symbol: [ "QCameraFeedbackControl", "private", "", "public" ] }, - { symbol: [ "QCameraFlashControl", "private", "", "public" ] }, - { symbol: [ "QCameraFocus", "private", "", "public" ] }, - { symbol: [ "QCameraFocusControl", "private", "", "public" ] }, - { symbol: [ "QCameraFocusZone", "private", "", "public" ] }, - { symbol: [ "QCameraFocusZoneList", "private", "", "public" ] }, - { symbol: [ "QCameraImageCapture", "private", "", "public" ] }, - { symbol: [ "QCameraImageCaptureControl", "private", "", "public" ] }, - { symbol: [ "QCameraImageProcessing", "private", "", "public" ] }, - { symbol: [ "QCameraImageProcessingControl", "private", "", "public" ] }, - { symbol: [ "QCameraInfo", "private", "", "public" ] }, - { symbol: [ "QCameraInfoControl", "private", "", "public" ] }, - { symbol: [ "QCameraLocksControl", "private", "", "public" ] }, - { symbol: [ "QCameraViewfinder", "private", "", "public" ] }, - { symbol: [ "QCameraViewfinderSettingsControl", "private", "", "public" ] }, - { symbol: [ "QCameraZoomControl", "private", "", "public" ] }, - { symbol: [ "QChar", "private", "", "public" ] }, - { symbol: [ "QCharRef", "private", "", "public" ] }, - { symbol: [ "QCheckBox", "private", "", "public" ] }, - { symbol: [ "QChildEvent", "private", "", "public" ] }, - { symbol: [ "QClipboard", "private", "", "public" ] }, - { symbol: [ "QCloseEvent", "private", "", "public" ] }, - { symbol: [ "QCocoaNativeContext", "private", "", "public" ] }, - { symbol: [ "QCollator", "private", "", "public" ] }, - { symbol: [ "QCollatorSortKey", "private", "", "public" ] }, - { symbol: [ "QColor", "private", "", "public" ] }, - { symbol: [ "QColorDialog", "private", "", "public" ] }, - { symbol: [ "QColormap", "private", "", "public" ] }, - { symbol: [ "QColumnView", "private", "", "public" ] }, - { symbol: [ "QComboBox", "private", "", "public" ] }, - { symbol: [ "QCommandLineOption", "private", "", "public" ] }, - { symbol: [ "QCommandLineParser", "private", "", "public" ] }, - { symbol: [ "QCommandLinkButton", "private", "", "public" ] }, - { symbol: [ "QCommonStyle", "private", "", "public" ] }, - { symbol: [ "QCompass", "private", "", "public" ] }, - { symbol: [ "QCompassFilter", "private", "", "public" ] }, - { symbol: [ "QCompassReading", "private", "", "public" ] }, - { symbol: [ "QCompleter", "private", "", "public" ] }, - { symbol: [ "QConicalGradient", "private", "", "public" ] }, - { symbol: [ "QContextMenuEvent", "private", "", "public" ] }, - { symbol: [ "QContiguousCache", "private", "", "public" ] }, - { symbol: [ "QContiguousCacheData", "private", "", "public" ] }, - { symbol: [ "QContiguousCacheTypedData", "private", "", "public" ] }, - { symbol: [ "QCoreApplication", "private", "", "public" ] }, - { symbol: [ "QCryptographicHash", "private", "", "public" ] }, - { symbol: [ "QCursor", "private", "", "public" ] }, - { symbol: [ "QDBusAbstractAdaptor", "private", "", "public" ] }, - { symbol: [ "QDBusAbstractInterface", "private", "", "public" ] }, - { symbol: [ "QDBusAbstractInterfaceBase", "private", "", "public" ] }, - { symbol: [ "QDBusArgument", "private", "", "public" ] }, - { symbol: [ "QDBusConnection", "private", "", "public" ] }, - { symbol: [ "QDBusConnectionInterface", "private", "", "public" ] }, - { symbol: [ "QDBusContext", "private", "", "public" ] }, - { symbol: [ "QDBusError", "private", "", "public" ] }, - { symbol: [ "QDBusInterface", "private", "", "public" ] }, - { symbol: [ "QDBusMessage", "private", "", "public" ] }, - { symbol: [ "QDBusMetaType", "private", "", "public" ] }, - { symbol: [ "QDBusObjectPath", "private", "", "public" ] }, - { symbol: [ "QDBusPendingCall", "private", "", "public" ] }, - { symbol: [ "QDBusPendingCallWatcher", "private", "", "public" ] }, - { symbol: [ "QDBusPendingReply", "private", "", "public" ] }, - { symbol: [ "QDBusPendingReplyData", "private", "", "public" ] }, - { symbol: [ "QDBusReply", "private", "", "public" ] }, - { symbol: [ "QDBusServer", "private", "", "public" ] }, - { symbol: [ "QDBusServiceWatcher", "private", "", "public" ] }, - { symbol: [ "QDBusSignature", "private", "", "public" ] }, - { symbol: [ "QDBusUnixFileDescriptor", "private", "", "public" ] }, - { symbol: [ "QDBusVariant", "private", "", "public" ] }, - { symbol: [ "QDBusVirtualObject", "private", "", "public" ] }, - { symbol: [ "QDataStream", "private", "", "public" ] }, - { symbol: [ "QDataWidgetMapper", "private", "", "public" ] }, - { symbol: [ "QDate", "private", "", "public" ] }, - { symbol: [ "QDateEdit", "private", "", "public" ] }, - { symbol: [ "QDateTime", "private", "", "public" ] }, - { symbol: [ "QDateTimeEdit", "private", "", "public" ] }, - { symbol: [ "QDebug", "private", "", "public" ] }, - { symbol: [ "QDebugStateSaver", "private", "", "public" ] }, - { symbol: [ "QDeclarativeAttachedPropertiesFunc", "private", "", "public" ] }, - { symbol: [ "QDeclarativeComponent", "private", "", "public" ] }, - { symbol: [ "QDeclarativeContext", "private", "", "public" ] }, - { symbol: [ "QDeclarativeDebuggingEnabler", "private", "", "public" ] }, - { symbol: [ "QDeclarativeEngine", "private", "", "public" ] }, - { symbol: [ "QDeclarativeError", "private", "", "public" ] }, - { symbol: [ "QDeclarativeExpression", "private", "", "public" ] }, - { symbol: [ "QDeclarativeExtensionInterface", "private", "", "public" ] }, - { symbol: [ "QDeclarativeExtensionPlugin", "private", "", "public" ] }, - { symbol: [ "QDeclarativeImageProvider", "private", "", "public" ] }, - { symbol: [ "QDeclarativeInfo", "private", "", "public" ] }, - { symbol: [ "QDeclarativeItem", "private", "", "public" ] }, - { symbol: [ "QDeclarativeListProperty", "private", "", "public" ] }, - { symbol: [ "QDeclarativeListReference", "private", "", "public" ] }, - { symbol: [ "QDeclarativeNetworkAccessManagerFactory", "private", "", "public" ] }, - { symbol: [ "QDeclarativeParserStatus", "private", "", "public" ] }, - { symbol: [ "QDeclarativeProperties", "private", "", "public" ] }, - { symbol: [ "QDeclarativeProperty", "private", "", "public" ] }, - { symbol: [ "QDeclarativePropertyMap", "private", "", "public" ] }, - { symbol: [ "QDeclarativePropertyValueInterceptor", "private", "", "public" ] }, - { symbol: [ "QDeclarativePropertyValueSource", "private", "", "public" ] }, - { symbol: [ "QDeclarativeScriptString", "private", "", "public" ] }, - { symbol: [ "QDeclarativeTypeInfo", "private", "", "public" ] }, - { symbol: [ "QDeclarativeView", "private", "", "public" ] }, - { symbol: [ "QDeferredDeleteEvent", "private", "", "public" ] }, - { symbol: [ "QDesignerActionEditorInterface", "private", "", "public" ] }, - { symbol: [ "QDesignerComponents", "private", "", "public" ] }, - { symbol: [ "QDesignerContainerExtension", "private", "", "public" ] }, - { symbol: [ "QDesignerCustomWidgetCollectionInterface", "private", "", "public" ] }, - { symbol: [ "QDesignerCustomWidgetInterface", "private", "", "public" ] }, - { symbol: [ "QDesignerDnDItemInterface", "private", "", "public" ] }, - { symbol: [ "QDesignerDynamicPropertySheetExtension", "private", "", "public" ] }, - { symbol: [ "QDesignerExportWidget", "private", "", "public" ] }, - { symbol: [ "QDesignerExtraInfoExtension", "private", "", "public" ] }, - { symbol: [ "QDesignerFormEditorInterface", "private", "", "public" ] }, - { symbol: [ "QDesignerFormEditorPluginInterface", "private", "", "public" ] }, - { symbol: [ "QDesignerFormWindowCursorInterface", "private", "", "public" ] }, - { symbol: [ "QDesignerFormWindowInterface", "private", "", "public" ] }, - { symbol: [ "QDesignerFormWindowManagerInterface", "private", "", "public" ] }, - { symbol: [ "QDesignerFormWindowToolInterface", "private", "", "public" ] }, - { symbol: [ "QDesignerIntegration", "private", "", "public" ] }, - { symbol: [ "QDesignerIntegrationInterface", "private", "", "public" ] }, - { symbol: [ "QDesignerLanguageExtension", "private", "", "public" ] }, - { symbol: [ "QDesignerLayoutDecorationExtension", "private", "", "public" ] }, - { symbol: [ "QDesignerMemberSheetExtension", "private", "", "public" ] }, - { symbol: [ "QDesignerMetaDataBaseInterface", "private", "", "public" ] }, - { symbol: [ "QDesignerMetaDataBaseItemInterface", "private", "", "public" ] }, - { symbol: [ "QDesignerNewFormWidgetInterface", "private", "", "public" ] }, - { symbol: [ "QDesignerObjectInspectorInterface", "private", "", "public" ] }, - { symbol: [ "QDesignerOptionsPageInterface", "private", "", "public" ] }, - { symbol: [ "QDesignerPromotionInterface", "private", "", "public" ] }, - { symbol: [ "QDesignerPropertyEditorInterface", "private", "", "public" ] }, - { symbol: [ "QDesignerPropertySheetExtension", "private", "", "public" ] }, - { symbol: [ "QDesignerResourceBrowserInterface", "private", "", "public" ] }, - { symbol: [ "QDesignerSettingsInterface", "private", "", "public" ] }, - { symbol: [ "QDesignerTaskMenuExtension", "private", "", "public" ] }, - { symbol: [ "QDesignerWidgetBoxInterface", "private", "", "public" ] }, - { symbol: [ "QDesignerWidgetDataBaseInterface", "private", "", "public" ] }, - { symbol: [ "QDesignerWidgetDataBaseItemInterface", "private", "", "public" ] }, - { symbol: [ "QDesignerWidgetFactoryInterface", "private", "", "public" ] }, - { symbol: [ "QDesktopServices", "private", "", "public" ] }, - { symbol: [ "QDesktopWidget", "private", "", "public" ] }, - { symbol: [ "QDial", "private", "", "public" ] }, - { symbol: [ "QDialog", "private", "", "public" ] }, - { symbol: [ "QDialogButtonBox", "private", "", "public" ] }, - { symbol: [ "QDir", "private", "", "public" ] }, - { symbol: [ "QDirIterator", "private", "", "public" ] }, - { symbol: [ "QDirModel", "private", "", "public" ] }, - { symbol: [ "QDistanceFilter", "private", "", "public" ] }, - { symbol: [ "QDistanceReading", "private", "", "public" ] }, - { symbol: [ "QDistanceSensor", "private", "", "public" ] }, - { symbol: [ "QDnsDomainNameRecord", "private", "", "public" ] }, - { symbol: [ "QDnsHostAddressRecord", "private", "", "public" ] }, - { symbol: [ "QDnsLookup", "private", "", "public" ] }, - { symbol: [ "QDnsMailExchangeRecord", "private", "", "public" ] }, - { symbol: [ "QDnsServiceRecord", "private", "", "public" ] }, - { symbol: [ "QDnsTextRecord", "private", "", "public" ] }, - { symbol: [ "QDockWidget", "private", "", "public" ] }, - { symbol: [ "QDomAttr", "private", "", "public" ] }, - { symbol: [ "QDomCDATASection", "private", "", "public" ] }, - { symbol: [ "QDomCharacterData", "private", "", "public" ] }, - { symbol: [ "QDomComment", "private", "", "public" ] }, - { symbol: [ "QDomDocument", "private", "", "public" ] }, - { symbol: [ "QDomDocumentFragment", "private", "", "public" ] }, - { symbol: [ "QDomDocumentType", "private", "", "public" ] }, - { symbol: [ "QDomElement", "private", "", "public" ] }, - { symbol: [ "QDomEntity", "private", "", "public" ] }, - { symbol: [ "QDomEntityReference", "private", "", "public" ] }, - { symbol: [ "QDomImplementation", "private", "", "public" ] }, - { symbol: [ "QDomNamedNodeMap", "private", "", "public" ] }, - { symbol: [ "QDomNode", "private", "", "public" ] }, - { symbol: [ "QDomNodeList", "private", "", "public" ] }, - { symbol: [ "QDomNotation", "private", "", "public" ] }, - { symbol: [ "QDomProcessingInstruction", "private", "", "public" ] }, - { symbol: [ "QDomText", "private", "", "public" ] }, - { symbol: [ "QDoubleSpinBox", "private", "", "public" ] }, - { symbol: [ "QDoubleValidator", "private", "", "public" ] }, - { symbol: [ "QDrag", "private", "", "public" ] }, - { symbol: [ "QDragEnterEvent", "private", "", "public" ] }, - { symbol: [ "QDragLeaveEvent", "private", "", "public" ] }, - { symbol: [ "QDragMoveEvent", "private", "", "public" ] }, - { symbol: [ "QDropEvent", "private", "", "public" ] }, - { symbol: [ "QDynamicPropertyChangeEvent", "private", "", "public" ] }, - { symbol: [ "QEGLNativeContext", "private", "", "public" ] }, - { symbol: [ "QEasingCurve", "private", "", "public" ] }, - { symbol: [ "QEglFSFunctions", "private", "", "public" ] }, - { symbol: [ "QElapsedTimer", "private", "", "public" ] }, - { symbol: [ "QEnableSharedFromThis", "private", "", "public" ] }, - { symbol: [ "QEnterEvent", "private", "", "public" ] }, - { symbol: [ "QErrorMessage", "private", "", "public" ] }, - { symbol: [ "QEvent", "private", "", "public" ] }, - { symbol: [ "QEventLoop", "private", "", "public" ] }, - { symbol: [ "QEventLoopLocker", "private", "", "public" ] }, - { symbol: [ "QEventSizeOfChecker", "private", "", "public" ] }, - { symbol: [ "QEventTransition", "private", "", "public" ] }, - { symbol: [ "QException", "private", "", "public" ] }, - { symbol: [ "QExplicitlySharedDataPointer", "private", "", "public" ] }, - { symbol: [ "QExposeEvent", "private", "", "public" ] }, - { symbol: [ "QExtensionFactory", "private", "", "public" ] }, - { symbol: [ "QExtensionManager", "private", "", "public" ] }, - { symbol: [ "QFactoryInterface", "private", "", "public" ] }, - { symbol: [ "QFile", "private", "", "public" ] }, - { symbol: [ "QFileDevice", "private", "", "public" ] }, - { symbol: [ "QFileDialog", "private", "", "public" ] }, - { symbol: [ "QFileIconProvider", "private", "", "public" ] }, - { symbol: [ "QFileInfo", "private", "", "public" ] }, - { symbol: [ "QFileInfoList", "private", "", "public" ] }, - { symbol: [ "QFileOpenEvent", "private", "", "public" ] }, - { symbol: [ "QFileSelector", "private", "", "public" ] }, - { symbol: [ "QFileSystemModel", "private", "", "public" ] }, - { symbol: [ "QFileSystemWatcher", "private", "", "public" ] }, - { symbol: [ "QFinalState", "private", "", "public" ] }, - { symbol: [ "QFlag", "private", "", "public" ] }, - { symbol: [ "QFlags", "private", "", "public" ] }, - { symbol: [ "QFocusEvent", "private", "", "public" ] }, - { symbol: [ "QFocusFrame", "private", "", "public" ] }, - { symbol: [ "QFont", "private", "", "public" ] }, - { symbol: [ "QFontComboBox", "private", "", "public" ] }, - { symbol: [ "QFontDatabase", "private", "", "public" ] }, - { symbol: [ "QFontDialog", "private", "", "public" ] }, - { symbol: [ "QFontInfo", "private", "", "public" ] }, - { symbol: [ "QFontMetrics", "private", "", "public" ] }, - { symbol: [ "QFontMetricsF", "private", "", "public" ] }, - { symbol: [ "QForeachContainer", "private", "", "public" ] }, - { symbol: [ "QFormBuilder", "private", "", "public" ] }, - { symbol: [ "QFormLayout", "private", "", "public" ] }, - { symbol: [ "QFrame", "private", "", "public" ] }, - { symbol: [ "QFunctionPointer", "private", "", "public" ] }, - { symbol: [ "QFuture", "private", "", "public" ] }, - { symbol: [ "QFutureInterface", "private", "", "public" ] }, - { symbol: [ "QFutureInterfaceBase", "private", "", "public" ] }, - { symbol: [ "QFutureIterator", "private", "", "public" ] }, - { symbol: [ "QFutureSynchronizer", "private", "", "public" ] }, - { symbol: [ "QFutureWatcher", "private", "", "public" ] }, - { symbol: [ "QFutureWatcherBase", "private", "", "public" ] }, - { symbol: [ "QGL", "private", "", "public" ] }, - { symbol: [ "QGLBuffer", "private", "", "public" ] }, - { symbol: [ "QGLColormap", "private", "", "public" ] }, - { symbol: [ "QGLContext", "private", "", "public" ] }, - { symbol: [ "QGLFormat", "private", "", "public" ] }, - { symbol: [ "QGLFramebufferObject", "private", "", "public" ] }, - { symbol: [ "QGLFramebufferObjectFormat", "private", "", "public" ] }, - { symbol: [ "QGLFunctions", "private", "", "public" ] }, - { symbol: [ "QGLFunctionsPrivate", "private", "", "public" ] }, - { symbol: [ "QGLPixelBuffer", "private", "", "public" ] }, - { symbol: [ "QGLShader", "private", "", "public" ] }, - { symbol: [ "QGLShaderProgram", "private", "", "public" ] }, - { symbol: [ "QGLWidget", "private", "", "public" ] }, - { symbol: [ "QGLXNativeContext", "private", "", "public" ] }, - { symbol: [ "QGenericArgument", "private", "", "public" ] }, - { symbol: [ "QGenericMatrix", "private", "", "public" ] }, - { symbol: [ "QGenericPlugin", "private", "", "public" ] }, - { symbol: [ "QGenericPluginFactory", "private", "", "public" ] }, - { symbol: [ "QGenericReturnArgument", "private", "", "public" ] }, - { symbol: [ "QGeoAddress", "private", "", "public" ] }, - { symbol: [ "QGeoAreaMonitorInfo", "private", "", "public" ] }, - { symbol: [ "QGeoAreaMonitorSource", "private", "", "public" ] }, - { symbol: [ "QGeoCircle", "private", "", "public" ] }, - { symbol: [ "QGeoCodeReply", "private", "", "public" ] }, - { symbol: [ "QGeoCodingManager", "private", "", "public" ] }, - { symbol: [ "QGeoCodingManagerEngine", "private", "", "public" ] }, - { symbol: [ "QGeoCoordinate", "private", "", "public" ] }, - { symbol: [ "QGeoLocation", "private", "", "public" ] }, - { symbol: [ "QGeoManeuver", "private", "", "public" ] }, - { symbol: [ "QGeoPositionInfo", "private", "", "public" ] }, - { symbol: [ "QGeoPositionInfoSource", "private", "", "public" ] }, - { symbol: [ "QGeoPositionInfoSourceFactory", "private", "", "public" ] }, - { symbol: [ "QGeoRectangle", "private", "", "public" ] }, - { symbol: [ "QGeoRoute", "private", "", "public" ] }, - { symbol: [ "QGeoRouteReply", "private", "", "public" ] }, - { symbol: [ "QGeoRouteRequest", "private", "", "public" ] }, - { symbol: [ "QGeoRouteSegment", "private", "", "public" ] }, - { symbol: [ "QGeoRoutingManager", "private", "", "public" ] }, - { symbol: [ "QGeoRoutingManagerEngine", "private", "", "public" ] }, - { symbol: [ "QGeoSatelliteInfo", "private", "", "public" ] }, - { symbol: [ "QGeoSatelliteInfoSource", "private", "", "public" ] }, - { symbol: [ "QGeoServiceProvider", "private", "", "public" ] }, - { symbol: [ "QGeoServiceProviderFactory", "private", "", "public" ] }, - { symbol: [ "QGeoShape", "private", "", "public" ] }, - { symbol: [ "QGesture", "private", "", "public" ] }, - { symbol: [ "QGestureEvent", "private", "", "public" ] }, - { symbol: [ "QGestureRecognizer", "private", "", "public" ] }, - { symbol: [ "QGlobalStatic", "private", "", "public" ] }, - { symbol: [ "QGlyphRun", "private", "", "public" ] }, - { symbol: [ "QGradient", "private", "", "public" ] }, - { symbol: [ "QGradientStop", "private", "", "public" ] }, - { symbol: [ "QGradientStops", "private", "", "public" ] }, - { symbol: [ "QGraphicsAnchor", "private", "", "public" ] }, - { symbol: [ "QGraphicsAnchorLayout", "private", "", "public" ] }, - { symbol: [ "QGraphicsBlurEffect", "private", "", "public" ] }, - { symbol: [ "QGraphicsColorizeEffect", "private", "", "public" ] }, - { symbol: [ "QGraphicsDropShadowEffect", "private", "", "public" ] }, - { symbol: [ "QGraphicsEffect", "private", "", "public" ] }, - { symbol: [ "QGraphicsEllipseItem", "private", "", "public" ] }, - { symbol: [ "QGraphicsGridLayout", "private", "", "public" ] }, - { symbol: [ "QGraphicsItem", "private", "", "public" ] }, - { symbol: [ "QGraphicsItemAnimation", "private", "", "public" ] }, - { symbol: [ "QGraphicsItemGroup", "private", "", "public" ] }, - { symbol: [ "QGraphicsLayout", "private", "", "public" ] }, - { symbol: [ "QGraphicsLayoutItem", "private", "", "public" ] }, - { symbol: [ "QGraphicsLineItem", "private", "", "public" ] }, - { symbol: [ "QGraphicsLinearLayout", "private", "", "public" ] }, - { symbol: [ "QGraphicsObject", "private", "", "public" ] }, - { symbol: [ "QGraphicsOpacityEffect", "private", "", "public" ] }, - { symbol: [ "QGraphicsPathItem", "private", "", "public" ] }, - { symbol: [ "QGraphicsPixmapItem", "private", "", "public" ] }, - { symbol: [ "QGraphicsPolygonItem", "private", "", "public" ] }, - { symbol: [ "QGraphicsProxyWidget", "private", "", "public" ] }, - { symbol: [ "QGraphicsRectItem", "private", "", "public" ] }, - { symbol: [ "QGraphicsRotation", "private", "", "public" ] }, - { symbol: [ "QGraphicsScale", "private", "", "public" ] }, - { symbol: [ "QGraphicsScene", "private", "", "public" ] }, - { symbol: [ "QGraphicsSceneContextMenuEvent", "private", "", "public" ] }, - { symbol: [ "QGraphicsSceneDragDropEvent", "private", "", "public" ] }, - { symbol: [ "QGraphicsSceneEvent", "private", "", "public" ] }, - { symbol: [ "QGraphicsSceneHelpEvent", "private", "", "public" ] }, - { symbol: [ "QGraphicsSceneHoverEvent", "private", "", "public" ] }, - { symbol: [ "QGraphicsSceneMouseEvent", "private", "", "public" ] }, - { symbol: [ "QGraphicsSceneMoveEvent", "private", "", "public" ] }, - { symbol: [ "QGraphicsSceneResizeEvent", "private", "", "public" ] }, - { symbol: [ "QGraphicsSceneWheelEvent", "private", "", "public" ] }, - { symbol: [ "QGraphicsSimpleTextItem", "private", "", "public" ] }, - { symbol: [ "QGraphicsSvgItem", "private", "", "public" ] }, - { symbol: [ "QGraphicsTextItem", "private", "", "public" ] }, - { symbol: [ "QGraphicsTransform", "private", "", "public" ] }, - { symbol: [ "QGraphicsVideoItem", "private", "", "public" ] }, - { symbol: [ "QGraphicsView", "private", "", "public" ] }, - { symbol: [ "QGraphicsWebView", "private", "", "public" ] }, - { symbol: [ "QGraphicsWidget", "private", "", "public" ] }, - { symbol: [ "QGridLayout", "private", "", "public" ] }, - { symbol: [ "QGroupBox", "private", "", "public" ] }, - { symbol: [ "QGuiApplication", "private", "", "public" ] }, - { symbol: [ "QGyroscope", "private", "", "public" ] }, - { symbol: [ "QGyroscopeFilter", "private", "", "public" ] }, - { symbol: [ "QGyroscopeReading", "private", "", "public" ] }, - { symbol: [ "QHBoxLayout", "private", "", "public" ] }, - { symbol: [ "QHash", "private", "", "public" ] }, - { symbol: [ "QHashData", "private", "", "public" ] }, - { symbol: [ "QHashDummyValue", "private", "", "public" ] }, - { symbol: [ "QHashIterator", "private", "", "public" ] }, - { symbol: [ "QHashNode", "private", "", "public" ] }, - { symbol: [ "QHeaderView", "private", "", "public" ] }, - { symbol: [ "QHelpContentItem", "private", "", "public" ] }, - { symbol: [ "QHelpContentModel", "private", "", "public" ] }, - { symbol: [ "QHelpContentWidget", "private", "", "public" ] }, - { symbol: [ "QHelpEngine", "private", "", "public" ] }, - { symbol: [ "QHelpEngineCore", "private", "", "public" ] }, - { symbol: [ "QHelpEvent", "private", "", "public" ] }, - { symbol: [ "QHelpGlobal", "private", "", "public" ] }, - { symbol: [ "QHelpIndexModel", "private", "", "public" ] }, - { symbol: [ "QHelpIndexWidget", "private", "", "public" ] }, - { symbol: [ "QHelpSearchEngine", "private", "", "public" ] }, - { symbol: [ "QHelpSearchQuery", "private", "", "public" ] }, - { symbol: [ "QHelpSearchQueryWidget", "private", "", "public" ] }, - { symbol: [ "QHelpSearchResultWidget", "private", "", "public" ] }, - { symbol: [ "QHideEvent", "private", "", "public" ] }, - { symbol: [ "QHistoryState", "private", "", "public" ] }, - { symbol: [ "QHolsterFilter", "private", "", "public" ] }, - { symbol: [ "QHolsterReading", "private", "", "public" ] }, - { symbol: [ "QHolsterSensor", "private", "", "public" ] }, - { symbol: [ "QHostAddress", "private", "", "public" ] }, - { symbol: [ "QHostInfo", "private", "", "public" ] }, - { symbol: [ "QHoverEvent", "private", "", "public" ] }, - { symbol: [ "QHttpMultiPart", "private", "", "public" ] }, - { symbol: [ "QHttpPart", "private", "", "public" ] }, - { symbol: [ "QIODevice", "private", "", "public" ] }, - { symbol: [ "QIPv6Address", "private", "", "public" ] }, - { symbol: [ "QIRProximityFilter", "private", "", "public" ] }, - { symbol: [ "QIRProximityReading", "private", "", "public" ] }, - { symbol: [ "QIRProximitySensor", "private", "", "public" ] }, - { symbol: [ "QIcon", "private", "", "public" ] }, - { symbol: [ "QIconDragEvent", "private", "", "public" ] }, - { symbol: [ "QIconEngine", "private", "", "public" ] }, - { symbol: [ "QIconEnginePlugin", "private", "", "public" ] }, - { symbol: [ "QIconEngineV2", "private", "", "public" ] }, - { symbol: [ "QIdentityProxyModel", "private", "", "public" ] }, - { symbol: [ "QImage", "private", "", "public" ] }, - { symbol: [ "QImageCleanupFunction", "private", "", "public" ] }, - { symbol: [ "QImageEncoderControl", "private", "", "public" ] }, - { symbol: [ "QImageEncoderSettings", "private", "", "public" ] }, - { symbol: [ "QImageIOHandler", "private", "", "public" ] }, - { symbol: [ "QImageIOPlugin", "private", "", "public" ] }, - { symbol: [ "QImageReader", "private", "", "public" ] }, - { symbol: [ "QImageTextKeyLang", "private", "", "public" ] }, - { symbol: [ "QImageWriter", "private", "", "public" ] }, - { symbol: [ "QIncompatibleFlag", "private", "", "public" ] }, - { symbol: [ "QInputDialog", "private", "", "public" ] }, - { symbol: [ "QInputEvent", "private", "", "public" ] }, - { symbol: [ "QInputMethod", "private", "", "public" ] }, - { symbol: [ "QInputMethodEvent", "private", "", "public" ] }, - { symbol: [ "QInputMethodQueryEvent", "private", "", "public" ] }, - { symbol: [ "QIntValidator", "private", "", "public" ] }, - { symbol: [ "QIntegerForSize", "private", "", "public" ] }, - { symbol: [ "QInternal", "private", "", "public" ] }, - { symbol: [ "QItemDelegate", "private", "", "public" ] }, - { symbol: [ "QItemEditorCreator", "private", "", "public" ] }, - { symbol: [ "QItemEditorCreatorBase", "private", "", "public" ] }, - { symbol: [ "QItemEditorFactory", "private", "", "public" ] }, - { symbol: [ "QItemSelection", "private", "", "public" ] }, - { symbol: [ "QItemSelectionModel", "private", "", "public" ] }, - { symbol: [ "QItemSelectionRange", "private", "", "public" ] }, - { symbol: [ "QJSEngine", "private", "", "public" ] }, - { symbol: [ "QJSValue", "private", "", "public" ] }, - { symbol: [ "QJSValueIterator", "private", "", "public" ] }, - { symbol: [ "QJSValueList", "private", "", "public" ] }, - { symbol: [ "QJsonArray", "private", "", "public" ] }, - { symbol: [ "QJsonDocument", "private", "", "public" ] }, - { symbol: [ "QJsonObject", "private", "", "public" ] }, - { symbol: [ "QJsonParseError", "private", "", "public" ] }, - { symbol: [ "QJsonValue", "private", "", "public" ] }, - { symbol: [ "QJsonValuePtr", "private", "", "public" ] }, - { symbol: [ "QJsonValueRef", "private", "", "public" ] }, - { symbol: [ "QJsonValueRefPtr", "private", "", "public" ] }, - { symbol: [ "QKeyEvent", "private", "", "public" ] }, - { symbol: [ "QKeyEventTransition", "private", "", "public" ] }, - { symbol: [ "QKeySequence", "private", "", "public" ] }, - { symbol: [ "QKeySequenceEdit", "private", "", "public" ] }, - { symbol: [ "QLCDNumber", "private", "", "public" ] }, - { symbol: [ "QLabel", "private", "", "public" ] }, - { symbol: [ "QLatin1Char", "private", "", "public" ] }, - { symbol: [ "QLatin1Literal", "private", "", "public" ] }, - { symbol: [ "QLatin1String", "private", "", "public" ] }, - { symbol: [ "QLayout", "private", "", "public" ] }, - { symbol: [ "QLayoutItem", "private", "", "public" ] }, - { symbol: [ "QLibrary", "private", "", "public" ] }, - { symbol: [ "QLibraryInfo", "private", "", "public" ] }, - { symbol: [ "QLightFilter", "private", "", "public" ] }, - { symbol: [ "QLightReading", "private", "", "public" ] }, - { symbol: [ "QLightSensor", "private", "", "public" ] }, - { symbol: [ "QLine", "private", "", "public" ] }, - { symbol: [ "QLineEdit", "private", "", "public" ] }, - { symbol: [ "QLineF", "private", "", "public" ] }, - { symbol: [ "QLinearGradient", "private", "", "public" ] }, - { symbol: [ "QLinkedList", "private", "", "public" ] }, - { symbol: [ "QLinkedListData", "private", "", "public" ] }, - { symbol: [ "QLinkedListIterator", "private", "", "public" ] }, - { symbol: [ "QLinkedListNode", "private", "", "public" ] }, - { symbol: [ "QList", "private", "", "public" ] }, - { symbol: [ "QListData", "private", "", "public" ] }, - { symbol: [ "QListIterator", "private", "", "public" ] }, - { symbol: [ "QListSpecialMethods", "private", "", "public" ] }, - { symbol: [ "QListView", "private", "", "public" ] }, - { symbol: [ "QListWidget", "private", "", "public" ] }, - { symbol: [ "QListWidgetItem", "private", "", "public" ] }, - { symbol: [ "QLocalServer", "private", "", "public" ] }, - { symbol: [ "QLocalSocket", "private", "", "public" ] }, - { symbol: [ "QLocale", "private", "", "public" ] }, - { symbol: [ "QLocation", "private", "", "public" ] }, - { symbol: [ "QLockFile", "private", "", "public" ] }, - { symbol: [ "QLockFile", "private", "", "public" ] }, - { symbol: [ "QLoggingCategory", "private", "", "public" ] }, - { symbol: [ "QLowEnergyCharacteristic", "private", "", "public" ] }, - { symbol: [ "QLowEnergyController", "private", "", "public" ] }, - { symbol: [ "QLowEnergyDescriptor", "private", "", "public" ] }, - { symbol: [ "QLowEnergyHandle", "private", "", "public" ] }, - { symbol: [ "QLowEnergyService", "private", "", "public" ] }, - { symbol: [ "QMacCocoaViewContainer", "private", "", "public" ] }, - { symbol: [ "QMacNativeWidget", "private", "", "public" ] }, - { symbol: [ "QMagnetometer", "private", "", "public" ] }, - { symbol: [ "QMagnetometerFilter", "private", "", "public" ] }, - { symbol: [ "QMagnetometerReading", "private", "", "public" ] }, - { symbol: [ "QMainWindow", "private", "", "public" ] }, - { symbol: [ "QMap", "private", "", "public" ] }, - { symbol: [ "QMapData", "private", "", "public" ] }, - { symbol: [ "QMapDataBase", "private", "", "public" ] }, - { symbol: [ "QMapIterator", "private", "", "public" ] }, - { symbol: [ "QMapNode", "private", "", "public" ] }, - { symbol: [ "QMapNodeBase", "private", "", "public" ] }, - { symbol: [ "QMargins", "private", "", "public" ] }, - { symbol: [ "QMarginsF", "private", "", "public" ] }, - { symbol: [ "QMaskGenerator", "private", "", "public" ] }, - { symbol: [ "QMatrix", "private", "", "public" ] }, - { symbol: [ "QMatrix2x2", "private", "", "public" ] }, - { symbol: [ "QMatrix2x3", "private", "", "public" ] }, - { symbol: [ "QMatrix2x4", "private", "", "public" ] }, - { symbol: [ "QMatrix3x2", "private", "", "public" ] }, - { symbol: [ "QMatrix3x3", "private", "", "public" ] }, - { symbol: [ "QMatrix3x4", "private", "", "public" ] }, - { symbol: [ "QMatrix4x2", "private", "", "public" ] }, - { symbol: [ "QMatrix4x3", "private", "", "public" ] }, - { symbol: [ "QMatrix4x4", "private", "", "public" ] }, - { symbol: [ "QMdiArea", "private", "", "public" ] }, - { symbol: [ "QMdiSubWindow", "private", "", "public" ] }, - { symbol: [ "QMediaAudioProbeControl", "private", "", "public" ] }, - { symbol: [ "QMediaAvailabilityControl", "private", "", "public" ] }, - { symbol: [ "QMediaBindableInterface", "private", "", "public" ] }, - { symbol: [ "QMediaContainerControl", "private", "", "public" ] }, - { symbol: [ "QMediaContent", "private", "", "public" ] }, - { symbol: [ "QMediaControl", "private", "", "public" ] }, - { symbol: [ "QMediaGaplessPlaybackControl", "private", "", "public" ] }, - { symbol: [ "QMediaMetaData", "private", "", "public" ] }, - { symbol: [ "QMediaNetworkAccessControl", "private", "", "public" ] }, - { symbol: [ "QMediaObject", "private", "", "public" ] }, - { symbol: [ "QMediaPlayer", "private", "", "public" ] }, - { symbol: [ "QMediaPlayerControl", "private", "", "public" ] }, - { symbol: [ "QMediaPlaylist", "private", "", "public" ] }, - { symbol: [ "QMediaRecorder", "private", "", "public" ] }, - { symbol: [ "QMediaRecorderControl", "private", "", "public" ] }, - { symbol: [ "QMediaResource", "private", "", "public" ] }, - { symbol: [ "QMediaResourceList", "private", "", "public" ] }, - { symbol: [ "QMediaService", "private", "", "public" ] }, - { symbol: [ "QMediaServiceCameraInfoInterface", "private", "", "public" ] }, - { symbol: [ "QMediaServiceDefaultDeviceInterface", "private", "", "public" ] }, - { symbol: [ "QMediaServiceFeaturesInterface", "private", "", "public" ] }, - { symbol: [ "QMediaServiceProviderFactoryInterface", "private", "", "public" ] }, - { symbol: [ "QMediaServiceProviderHint", "private", "", "public" ] }, - { symbol: [ "QMediaServiceProviderPlugin", "private", "", "public" ] }, - { symbol: [ "QMediaServiceSupportedDevicesInterface", "private", "", "public" ] }, - { symbol: [ "QMediaServiceSupportedFormatsInterface", "private", "", "public" ] }, - { symbol: [ "QMediaStreamsControl", "private", "", "public" ] }, - { symbol: [ "QMediaTimeInterval", "private", "", "public" ] }, - { symbol: [ "QMediaTimeRange", "private", "", "public" ] }, - { symbol: [ "QMediaVideoProbeControl", "private", "", "public" ] }, - { symbol: [ "QMenu", "private", "", "public" ] }, - { symbol: [ "QMenuBar", "private", "", "public" ] }, - { symbol: [ "QMessageAuthenticationCode", "private", "", "public" ] }, - { symbol: [ "QMessageBox", "private", "", "public" ] }, - { symbol: [ "QMessageLogContext", "private", "", "public" ] }, - { symbol: [ "QMessageLogger", "private", "", "public" ] }, - { symbol: [ "QMetaClassInfo", "private", "", "public" ] }, - { symbol: [ "QMetaDataReaderControl", "private", "", "public" ] }, - { symbol: [ "QMetaDataWriterControl", "private", "", "public" ] }, - { symbol: [ "QMetaEnum", "private", "", "public" ] }, - { symbol: [ "QMetaMethod", "private", "", "public" ] }, - { symbol: [ "QMetaObject", "private", "", "public" ] }, - { symbol: [ "QMetaProperty", "private", "", "public" ] }, - { symbol: [ "QMetaType", "private", "", "public" ] }, - { symbol: [ "QMetaTypeId", "private", "", "public" ] }, - { symbol: [ "QMetaTypeId2", "private", "", "public" ] }, - { symbol: [ "QMetaTypeIdQObject", "private", "", "public" ] }, - { symbol: [ "QMimeData", "private", "", "public" ] }, - { symbol: [ "QMimeDatabase", "private", "", "public" ] }, - { symbol: [ "QMimeType", "private", "", "public" ] }, - { symbol: [ "QModelIndex", "private", "", "public" ] }, - { symbol: [ "QModelIndexList", "private", "", "public" ] }, - { symbol: [ "QMouseEvent", "private", "", "public" ] }, - { symbol: [ "QMouseEventTransition", "private", "", "public" ] }, - { symbol: [ "QMoveEvent", "private", "", "public" ] }, - { symbol: [ "QMovie", "private", "", "public" ] }, - { symbol: [ "QMultiHash", "private", "", "public" ] }, - { symbol: [ "QMultiMap", "private", "", "public" ] }, - { symbol: [ "QMultimedia", "private", "", "public" ] }, - { symbol: [ "QMutableByteArrayListIterator", "private", "", "public" ] }, - { symbol: [ "QMutableFutureIterator", "private", "", "public" ] }, - { symbol: [ "QMutableHashIterator", "private", "", "public" ] }, - { symbol: [ "QMutableLinkedListIterator", "private", "", "public" ] }, - { symbol: [ "QMutableListIterator", "private", "", "public" ] }, - { symbol: [ "QMutableMapIterator", "private", "", "public" ] }, - { symbol: [ "QMutableSetIterator", "private", "", "public" ] }, - { symbol: [ "QMutableStringListIterator", "private", "", "public" ] }, - { symbol: [ "QMutableVectorIterator", "private", "", "public" ] }, - { symbol: [ "QMutex", "private", "", "public" ] }, - { symbol: [ "QMutexLocker", "private", "", "public" ] }, - { symbol: [ "QNativeGestureEvent", "private", "", "public" ] }, - { symbol: [ "QNdefFilter", "private", "", "public" ] }, - { symbol: [ "QNdefMessage", "private", "", "public" ] }, - { symbol: [ "QNdefNfcIconRecord", "private", "", "public" ] }, - { symbol: [ "QNdefNfcSmartPosterRecord", "private", "", "public" ] }, - { symbol: [ "QNdefNfcTextRecord", "private", "", "public" ] }, - { symbol: [ "QNdefNfcUriRecord", "private", "", "public" ] }, - { symbol: [ "QNdefRecord", "private", "", "public" ] }, - { symbol: [ "QNearFieldManager", "private", "", "public" ] }, - { symbol: [ "QNearFieldShareManager", "private", "", "public" ] }, - { symbol: [ "QNearFieldShareTarget", "private", "", "public" ] }, - { symbol: [ "QNearFieldTarget", "private", "", "public" ] }, - { symbol: [ "QNetworkAccessManager", "private", "", "public" ] }, - { symbol: [ "QNetworkAddressEntry", "private", "", "public" ] }, - { symbol: [ "QNetworkCacheMetaData", "private", "", "public" ] }, - { symbol: [ "QNetworkConfiguration", "private", "", "public" ] }, - { symbol: [ "QNetworkConfigurationManager", "private", "", "public" ] }, - { symbol: [ "QNetworkCookie", "private", "", "public" ] }, - { symbol: [ "QNetworkCookieJar", "private", "", "public" ] }, - { symbol: [ "QNetworkDiskCache", "private", "", "public" ] }, - { symbol: [ "QNetworkInterface", "private", "", "public" ] }, - { symbol: [ "QNetworkProxy", "private", "", "public" ] }, - { symbol: [ "QNetworkProxyFactory", "private", "", "public" ] }, - { symbol: [ "QNetworkProxyQuery", "private", "", "public" ] }, - { symbol: [ "QNetworkReply", "private", "", "public" ] }, - { symbol: [ "QNetworkRequest", "private", "", "public" ] }, - { symbol: [ "QNetworkSession", "private", "", "public" ] }, - { symbol: [ "QNmeaPositionInfoSource", "private", "", "public" ] }, - { symbol: [ "QNoDebug", "private", "", "public" ] }, - { symbol: [ "QObject", "private", "", "public" ] }, - { symbol: [ "QObjectCleanupHandler", "private", "", "public" ] }, - { symbol: [ "QObjectData", "private", "", "public" ] }, - { symbol: [ "QObjectList", "private", "", "public" ] }, - { symbol: [ "QObjectUserData", "private", "", "public" ] }, - { symbol: [ "QOffscreenSurface", "private", "", "public" ] }, - { symbol: [ "QOpenGLBuffer", "private", "", "public" ] }, - { symbol: [ "QOpenGLContext", "private", "", "public" ] }, - { symbol: [ "QOpenGLContextGroup", "private", "", "public" ] }, - { symbol: [ "QOpenGLDebugLogger", "private", "", "public" ] }, - { symbol: [ "QOpenGLDebugMessage", "private", "", "public" ] }, - { symbol: [ "QOpenGLExtensions", "private", "", "public" ] }, - { symbol: [ "QOpenGLFramebufferObject", "private", "", "public" ] }, - { symbol: [ "QOpenGLFramebufferObjectFormat", "private", "", "public" ] }, - { symbol: [ "QOpenGLFunctions", "private", "", "public" ] }, - { symbol: [ "QOpenGLFunctionsPrivate", "private", "", "public" ] }, - { symbol: [ "QOpenGLFunctions_1_0", "private", "", "public" ] }, - { symbol: [ "QOpenGLFunctions_1_1", "private", "", "public" ] }, - { symbol: [ "QOpenGLFunctions_1_2", "private", "", "public" ] }, - { symbol: [ "QOpenGLFunctions_1_3", "private", "", "public" ] }, - { symbol: [ "QOpenGLFunctions_1_4", "private", "", "public" ] }, - { symbol: [ "QOpenGLFunctions_1_5", "private", "", "public" ] }, - { symbol: [ "QOpenGLFunctions_2_0", "private", "", "public" ] }, - { symbol: [ "QOpenGLFunctions_2_1", "private", "", "public" ] }, - { symbol: [ "QOpenGLFunctions_3_0", "private", "", "public" ] }, - { symbol: [ "QOpenGLFunctions_3_1", "private", "", "public" ] }, - { symbol: [ "QOpenGLFunctions_3_2_Compatibility", "private", "", "public" ] }, - { symbol: [ "QOpenGLFunctions_3_2_Core", "private", "", "public" ] }, - { symbol: [ "QOpenGLFunctions_3_3_Compatibility", "private", "", "public" ] }, - { symbol: [ "QOpenGLFunctions_3_3_Core", "private", "", "public" ] }, - { symbol: [ "QOpenGLFunctions_4_0_Compatibility", "private", "", "public" ] }, - { symbol: [ "QOpenGLFunctions_4_0_Core", "private", "", "public" ] }, - { symbol: [ "QOpenGLFunctions_4_1_Compatibility", "private", "", "public" ] }, - { symbol: [ "QOpenGLFunctions_4_1_Core", "private", "", "public" ] }, - { symbol: [ "QOpenGLFunctions_4_2_Compatibility", "private", "", "public" ] }, - { symbol: [ "QOpenGLFunctions_4_2_Core", "private", "", "public" ] }, - { symbol: [ "QOpenGLFunctions_4_3_Compatibility", "private", "", "public" ] }, - { symbol: [ "QOpenGLFunctions_4_3_Core", "private", "", "public" ] }, - { symbol: [ "QOpenGLFunctions_ES2", "private", "", "public" ] }, - { symbol: [ "QOpenGLPaintDevice", "private", "", "public" ] }, - { symbol: [ "QOpenGLPixelTransferOptions", "private", "", "public" ] }, - { symbol: [ "QOpenGLShader", "private", "", "public" ] }, - { symbol: [ "QOpenGLShaderProgram", "private", "", "public" ] }, - { symbol: [ "QOpenGLTexture", "private", "", "public" ] }, - { symbol: [ "QOpenGLTimeMonitor", "private", "", "public" ] }, - { symbol: [ "QOpenGLTimerQuery", "private", "", "public" ] }, - { symbol: [ "QOpenGLVersionFunctions", "private", "", "public" ] }, - { symbol: [ "QOpenGLVersionProfile", "private", "", "public" ] }, - { symbol: [ "QOpenGLVertexArrayObject", "private", "", "public" ] }, - { symbol: [ "QOpenGLWidget", "private", "", "public" ] }, - { symbol: [ "QOpenGLWindow", "private", "", "public" ] }, - { symbol: [ "QOrientationFilter", "private", "", "public" ] }, - { symbol: [ "QOrientationReading", "private", "", "public" ] }, - { symbol: [ "QOrientationSensor", "private", "", "public" ] }, - { symbol: [ "QPageLayout", "private", "", "public" ] }, - { symbol: [ "QPageSetupDialog", "private", "", "public" ] }, - { symbol: [ "QPageSize", "private", "", "public" ] }, - { symbol: [ "QPagedPaintDevice", "private", "", "public" ] }, - { symbol: [ "QPaintDevice", "private", "", "public" ] }, - { symbol: [ "QPaintDeviceWindow", "private", "", "public" ] }, - { symbol: [ "QPaintEngine", "private", "", "public" ] }, - { symbol: [ "QPaintEngineState", "private", "", "public" ] }, - { symbol: [ "QPaintEvent", "private", "", "public" ] }, - { symbol: [ "QPainter", "private", "", "public" ] }, - { symbol: [ "QPainterPath", "private", "", "public" ] }, - { symbol: [ "QPainterPathStroker", "private", "", "public" ] }, - { symbol: [ "QPair", "private", "", "public" ] }, - { symbol: [ "QPalette", "private", "", "public" ] }, - { symbol: [ "QPanGesture", "private", "", "public" ] }, - { symbol: [ "QParallelAnimationGroup", "private", "", "public" ] }, - { symbol: [ "QPauseAnimation", "private", "", "public" ] }, - { symbol: [ "QPdfWriter", "private", "", "public" ] }, - { symbol: [ "QPen", "private", "", "public" ] }, - { symbol: [ "QPersistentModelIndex", "private", "", "public" ] }, - { symbol: [ "QPicture", "private", "", "public" ] }, - { symbol: [ "QPictureFormatPlugin", "private", "", "public" ] }, - { symbol: [ "QPictureIO", "private", "", "public" ] }, - { symbol: [ "QPinchGesture", "private", "", "public" ] }, - { symbol: [ "QPixelFormat", "private", "", "public" ] }, - { symbol: [ "QPixmap", "private", "", "public" ] }, - { symbol: [ "QPixmapCache", "private", "", "public" ] }, - { symbol: [ "QPlace", "private", "", "public" ] }, - { symbol: [ "QPlaceAttribute", "private", "", "public" ] }, - { symbol: [ "QPlaceCategory", "private", "", "public" ] }, - { symbol: [ "QPlaceContactDetail", "private", "", "public" ] }, - { symbol: [ "QPlaceContent", "private", "", "public" ] }, - { symbol: [ "QPlaceContentReply", "private", "", "public" ] }, - { symbol: [ "QPlaceContentRequest", "private", "", "public" ] }, - { symbol: [ "QPlaceDetailsReply", "private", "", "public" ] }, - { symbol: [ "QPlaceEditorial", "private", "", "public" ] }, - { symbol: [ "QPlaceIcon", "private", "", "public" ] }, - { symbol: [ "QPlaceIdReply", "private", "", "public" ] }, - { symbol: [ "QPlaceImage", "private", "", "public" ] }, - { symbol: [ "QPlaceManager", "private", "", "public" ] }, - { symbol: [ "QPlaceManagerEngine", "private", "", "public" ] }, - { symbol: [ "QPlaceMatchReply", "private", "", "public" ] }, - { symbol: [ "QPlaceMatchRequest", "private", "", "public" ] }, - { symbol: [ "QPlaceProposedSearchResult", "private", "", "public" ] }, - { symbol: [ "QPlaceRatings", "private", "", "public" ] }, - { symbol: [ "QPlaceReply", "private", "", "public" ] }, - { symbol: [ "QPlaceResult", "private", "", "public" ] }, - { symbol: [ "QPlaceReview", "private", "", "public" ] }, - { symbol: [ "QPlaceSearchReply", "private", "", "public" ] }, - { symbol: [ "QPlaceSearchRequest", "private", "", "public" ] }, - { symbol: [ "QPlaceSearchResult", "private", "", "public" ] }, - { symbol: [ "QPlaceSearchSuggestionReply", "private", "", "public" ] }, - { symbol: [ "QPlaceSupplier", "private", "", "public" ] }, - { symbol: [ "QPlaceUser", "private", "", "public" ] }, - { symbol: [ "QPlainTextDocumentLayout", "private", "", "public" ] }, - { symbol: [ "QPlainTextEdit", "private", "", "public" ] }, - { symbol: [ "QPluginLoader", "private", "", "public" ] }, - { symbol: [ "QPoint", "private", "", "public" ] }, - { symbol: [ "QPointF", "private", "", "public" ] }, - { symbol: [ "QPointer", "private", "", "public" ] }, - { symbol: [ "QPolygon", "private", "", "public" ] }, - { symbol: [ "QPolygonF", "private", "", "public" ] }, - { symbol: [ "QPressureFilter", "private", "", "public" ] }, - { symbol: [ "QPressureReading", "private", "", "public" ] }, - { symbol: [ "QPressureSensor", "private", "", "public" ] }, - { symbol: [ "QPrintDialog", "private", "", "public" ] }, - { symbol: [ "QPrintEngine", "private", "", "public" ] }, - { symbol: [ "QPrintPreviewDialog", "private", "", "public" ] }, - { symbol: [ "QPrintPreviewWidget", "private", "", "public" ] }, - { symbol: [ "QPrinter", "private", "", "public" ] }, - { symbol: [ "QPrinterInfo", "private", "", "public" ] }, - { symbol: [ "QProcess", "private", "", "public" ] }, - { symbol: [ "QProcessEnvironment", "private", "", "public" ] }, - { symbol: [ "QProgressBar", "private", "", "public" ] }, - { symbol: [ "QProgressDialog", "private", "", "public" ] }, - { symbol: [ "QPropertyAnimation", "private", "", "public" ] }, - { symbol: [ "QProximityFilter", "private", "", "public" ] }, - { symbol: [ "QProximityReading", "private", "", "public" ] }, - { symbol: [ "QProximitySensor", "private", "", "public" ] }, - { symbol: [ "QProxyStyle", "private", "", "public" ] }, - { symbol: [ "QPushButton", "private", "", "public" ] }, - { symbol: [ "QQmlAbstractUrlInterceptor", "private", "", "public" ] }, - { symbol: [ "QQmlApplicationEngine", "private", "", "public" ] }, - { symbol: [ "QQmlAttachedPropertiesFunc", "private", "", "public" ] }, - { symbol: [ "QQmlComponent", "private", "", "public" ] }, - { symbol: [ "QQmlContext", "private", "", "public" ] }, - { symbol: [ "QQmlDebuggingEnabler", "private", "", "public" ] }, - { symbol: [ "QQmlEngine", "private", "", "public" ] }, - { symbol: [ "QQmlError", "private", "", "public" ] }, - { symbol: [ "QQmlExpression", "private", "", "public" ] }, - { symbol: [ "QQmlExtensionInterface", "private", "", "public" ] }, - { symbol: [ "QQmlExtensionPlugin", "private", "", "public" ] }, - { symbol: [ "QQmlFile", "private", "", "public" ] }, - { symbol: [ "QQmlFileSelector", "private", "", "public" ] }, - { symbol: [ "QQmlImageProviderBase", "private", "", "public" ] }, - { symbol: [ "QQmlIncubationController", "private", "", "public" ] }, - { symbol: [ "QQmlIncubator", "private", "", "public" ] }, - { symbol: [ "QQmlInfo", "private", "", "public" ] }, - { symbol: [ "QQmlListProperty", "private", "", "public" ] }, - { symbol: [ "QQmlListReference", "private", "", "public" ] }, - { symbol: [ "QQmlNdefRecord", "private", "", "public" ] }, - { symbol: [ "QQmlNetworkAccessManagerFactory", "private", "", "public" ] }, - { symbol: [ "QQmlParserStatus", "private", "", "public" ] }, - { symbol: [ "QQmlProperties", "private", "", "public" ] }, - { symbol: [ "QQmlProperty", "private", "", "public" ] }, - { symbol: [ "QQmlPropertyMap", "private", "", "public" ] }, - { symbol: [ "QQmlPropertyValueSource", "private", "", "public" ] }, - { symbol: [ "QQmlScriptString", "private", "", "public" ] }, - { symbol: [ "QQmlTypeInfo", "private", "", "public" ] }, - { symbol: [ "QQmlTypesExtensionInterface", "private", "", "public" ] }, - { symbol: [ "QQmlWebChannel", "private", "", "public" ] }, - { symbol: [ "QQuaternion", "private", "", "public" ] }, - { symbol: [ "QQueue", "private", "", "public" ] }, - { symbol: [ "QQuickFramebufferObject", "private", "", "public" ] }, - { symbol: [ "QQuickImageProvider", "private", "", "public" ] }, - { symbol: [ "QQuickItem", "private", "", "public" ] }, - { symbol: [ "QQuickItemGrabResult", "private", "", "public" ] }, - { symbol: [ "QQuickPaintedItem", "private", "", "public" ] }, - { symbol: [ "QQuickRenderControl", "private", "", "public" ] }, - { symbol: [ "QQuickTextDocument", "private", "", "public" ] }, - { symbol: [ "QQuickTextureFactory", "private", "", "public" ] }, - { symbol: [ "QQuickTransform", "private", "", "public" ] }, - { symbol: [ "QQuickView", "private", "", "public" ] }, - { symbol: [ "QQuickWidget", "private", "", "public" ] }, - { symbol: [ "QQuickWindow", "private", "", "public" ] }, - { symbol: [ "QRadialGradient", "private", "", "public" ] }, - { symbol: [ "QRadioButton", "private", "", "public" ] }, - { symbol: [ "QRadioData", "private", "", "public" ] }, - { symbol: [ "QRadioDataControl", "private", "", "public" ] }, - { symbol: [ "QRadioTuner", "private", "", "public" ] }, - { symbol: [ "QRadioTunerControl", "private", "", "public" ] }, - { symbol: [ "QRasterWindow", "private", "", "public" ] }, - { symbol: [ "QRawFont", "private", "", "public" ] }, - { symbol: [ "QReadLocker", "private", "", "public" ] }, - { symbol: [ "QReadWriteLock", "private", "", "public" ] }, - { symbol: [ "QRect", "private", "", "public" ] }, - { symbol: [ "QRectF", "private", "", "public" ] }, - { symbol: [ "QRegExp", "private", "", "public" ] }, - { symbol: [ "QRegExpValidator", "private", "", "public" ] }, - { symbol: [ "QRegion", "private", "", "public" ] }, - { symbol: [ "QRegularExpression", "private", "", "public" ] }, - { symbol: [ "QRegularExpressionMatch", "private", "", "public" ] }, - { symbol: [ "QRegularExpressionMatchIterator", "private", "", "public" ] }, - { symbol: [ "QRegularExpressionValidator", "private", "", "public" ] }, - { symbol: [ "QResizeEvent", "private", "", "public" ] }, - { symbol: [ "QResource", "private", "", "public" ] }, - { symbol: [ "QReturnArgument", "private", "", "public" ] }, - { symbol: [ "QRgb", "private", "", "public" ] }, - { symbol: [ "QRotationFilter", "private", "", "public" ] }, - { symbol: [ "QRotationReading", "private", "", "public" ] }, - { symbol: [ "QRotationSensor", "private", "", "public" ] }, - { symbol: [ "QRubberBand", "private", "", "public" ] }, - { symbol: [ "QRunnable", "private", "", "public" ] }, - { symbol: [ "QSGAbstractRenderer", "private", "", "public" ] }, - { symbol: [ "QSGBasicGeometryNode", "private", "", "public" ] }, - { symbol: [ "QSGClipNode", "private", "", "public" ] }, - { symbol: [ "QSGDynamicTexture", "private", "", "public" ] }, - { symbol: [ "QSGEngine", "private", "", "public" ] }, - { symbol: [ "QSGFlatColorMaterial", "private", "", "public" ] }, - { symbol: [ "QSGGeometry", "private", "", "public" ] }, - { symbol: [ "QSGGeometryNode", "private", "", "public" ] }, - { symbol: [ "QSGMaterial", "private", "", "public" ] }, - { symbol: [ "QSGMaterialShader", "private", "", "public" ] }, - { symbol: [ "QSGMaterialType", "private", "", "public" ] }, - { symbol: [ "QSGNode", "private", "", "public" ] }, - { symbol: [ "QSGNodeVisitor", "private", "", "public" ] }, - { symbol: [ "QSGOpacityNode", "private", "", "public" ] }, - { symbol: [ "QSGOpaqueTextureMaterial", "private", "", "public" ] }, - { symbol: [ "QSGRootNode", "private", "", "public" ] }, - { symbol: [ "QSGSimpleMaterial", "private", "", "public" ] }, - { symbol: [ "QSGSimpleMaterialComparableMaterial", "private", "", "public" ] }, - { symbol: [ "QSGSimpleMaterialShader", "private", "", "public" ] }, - { symbol: [ "QSGSimpleRectNode", "private", "", "public" ] }, - { symbol: [ "QSGSimpleTextureNode", "private", "", "public" ] }, - { symbol: [ "QSGTexture", "private", "", "public" ] }, - { symbol: [ "QSGTextureMaterial", "private", "", "public" ] }, - { symbol: [ "QSGTextureProvider", "private", "", "public" ] }, - { symbol: [ "QSGTransformNode", "private", "", "public" ] }, - { symbol: [ "QSGVertexColorMaterial", "private", "", "public" ] }, - { symbol: [ "QSGVideoNodeFactory_I420", "private", "", "public" ] }, - { symbol: [ "QSGVideoNodeFactory_RGB", "private", "", "public" ] }, - { symbol: [ "QSGVideoNodeFactory_Texture", "private", "", "public" ] }, - { symbol: [ "QSGVideoNode_I420", "private", "", "public" ] }, - { symbol: [ "QSGVideoNode_RGB", "private", "", "public" ] }, - { symbol: [ "QSGVideoNode_Texture", "private", "", "public" ] }, - { symbol: [ "QSaveFile", "private", "", "public" ] }, - { symbol: [ "QScopedArrayPointer", "private", "", "public" ] }, - { symbol: [ "QScopedPointer", "private", "", "public" ] }, - { symbol: [ "QScopedPointerArrayDeleter", "private", "", "public" ] }, - { symbol: [ "QScopedPointerDeleteLater", "private", "", "public" ] }, - { symbol: [ "QScopedPointerDeleter", "private", "", "public" ] }, - { symbol: [ "QScopedPointerObjectDeleteLater", "private", "", "public" ] }, - { symbol: [ "QScopedPointerPodDeleter", "private", "", "public" ] }, - { symbol: [ "QScopedValueRollback", "private", "", "public" ] }, - { symbol: [ "QScreen", "private", "", "public" ] }, - { symbol: [ "QScreenOrientationChangeEvent", "private", "", "public" ] }, - { symbol: [ "QScriptClass", "private", "", "public" ] }, - { symbol: [ "QScriptClassPropertyIterator", "private", "", "public" ] }, - { symbol: [ "QScriptContext", "private", "", "public" ] }, - { symbol: [ "QScriptContextInfo", "private", "", "public" ] }, - { symbol: [ "QScriptContextInfoList", "private", "", "public" ] }, - { symbol: [ "QScriptEngine", "private", "", "public" ] }, - { symbol: [ "QScriptEngineAgent", "private", "", "public" ] }, - { symbol: [ "QScriptEngineDebugger", "private", "", "public" ] }, - { symbol: [ "QScriptExtensionInterface", "private", "", "public" ] }, - { symbol: [ "QScriptExtensionPlugin", "private", "", "public" ] }, - { symbol: [ "QScriptProgram", "private", "", "public" ] }, - { symbol: [ "QScriptString", "private", "", "public" ] }, - { symbol: [ "QScriptSyntaxCheckResult", "private", "", "public" ] }, - { symbol: [ "QScriptValue", "private", "", "public" ] }, - { symbol: [ "QScriptValueIterator", "private", "", "public" ] }, - { symbol: [ "QScriptValueList", "private", "", "public" ] }, - { symbol: [ "QScriptable", "private", "", "public" ] }, - { symbol: [ "QScrollArea", "private", "", "public" ] }, - { symbol: [ "QScrollBar", "private", "", "public" ] }, - { symbol: [ "QScrollEvent", "private", "", "public" ] }, - { symbol: [ "QScrollPrepareEvent", "private", "", "public" ] }, - { symbol: [ "QScroller", "private", "", "public" ] }, - { symbol: [ "QScrollerProperties", "private", "", "public" ] }, - { symbol: [ "QSemaphore", "private", "", "public" ] }, - { symbol: [ "QSensor", "private", "", "public" ] }, - { symbol: [ "QSensorBackend", "private", "", "public" ] }, - { symbol: [ "QSensorBackendFactory", "private", "", "public" ] }, - { symbol: [ "QSensorChangesInterface", "private", "", "public" ] }, - { symbol: [ "QSensorFilter", "private", "", "public" ] }, - { symbol: [ "QSensorGesture", "private", "", "public" ] }, - { symbol: [ "QSensorGestureManager", "private", "", "public" ] }, - { symbol: [ "QSensorGesturePluginInterface", "private", "", "public" ] }, - { symbol: [ "QSensorGestureRecognizer", "private", "", "public" ] }, - { symbol: [ "QSensorManager", "private", "", "public" ] }, - { symbol: [ "QSensorPluginInterface", "private", "", "public" ] }, - { symbol: [ "QSensorReading", "private", "", "public" ] }, - { symbol: [ "QSequentialAnimationGroup", "private", "", "public" ] }, - { symbol: [ "QSequentialIterable", "private", "", "public" ] }, - { symbol: [ "QSerialPort", "private", "", "public" ] }, - { symbol: [ "QSerialPortInfo", "private", "", "public" ] }, - { symbol: [ "QSessionManager", "private", "", "public" ] }, - { symbol: [ "QSet", "private", "", "public" ] }, - { symbol: [ "QSetIterator", "private", "", "public" ] }, - { symbol: [ "QSettings", "private", "", "public" ] }, - { symbol: [ "QSharedData", "private", "", "public" ] }, - { symbol: [ "QSharedDataPointer", "private", "", "public" ] }, - { symbol: [ "QSharedMemory", "private", "", "public" ] }, - { symbol: [ "QSharedPointer", "private", "", "public" ] }, - { symbol: [ "QShortcut", "private", "", "public" ] }, - { symbol: [ "QShortcutEvent", "private", "", "public" ] }, - { symbol: [ "QShowEvent", "private", "", "public" ] }, - { symbol: [ "QSignalBlocker", "private", "", "public" ] }, - { symbol: [ "QSignalMapper", "private", "", "public" ] }, - { symbol: [ "QSignalSpy", "private", "", "public" ] }, - { symbol: [ "QSignalTransition", "private", "", "public" ] }, - { symbol: [ "QSimpleXmlNodeModel", "private", "", "public" ] }, - { symbol: [ "QSize", "private", "", "public" ] }, - { symbol: [ "QSizeF", "private", "", "public" ] }, - { symbol: [ "QSizeGrip", "private", "", "public" ] }, - { symbol: [ "QSizePolicy", "private", "", "public" ] }, - { symbol: [ "QSlider", "private", "", "public" ] }, - { symbol: [ "QSocketNotifier", "private", "", "public" ] }, - { symbol: [ "QSortFilterProxyModel", "private", "", "public" ] }, - { symbol: [ "QSound", "private", "", "public" ] }, - { symbol: [ "QSoundEffect", "private", "", "public" ] }, - { symbol: [ "QSourceLocation", "private", "", "public" ] }, - { symbol: [ "QSpacerItem", "private", "", "public" ] }, - { symbol: [ "QSpinBox", "private", "", "public" ] }, - { symbol: [ "QSplashScreen", "private", "", "public" ] }, - { symbol: [ "QSplitter", "private", "", "public" ] }, - { symbol: [ "QSplitterHandle", "private", "", "public" ] }, - { symbol: [ "QSpontaneKeyEvent", "private", "", "public" ] }, - { symbol: [ "QSql", "private", "", "public" ] }, - { symbol: [ "QSqlDatabase", "private", "", "public" ] }, - { symbol: [ "QSqlDriver", "private", "", "public" ] }, - { symbol: [ "QSqlDriverCreator", "private", "", "public" ] }, - { symbol: [ "QSqlDriverCreatorBase", "private", "", "public" ] }, - { symbol: [ "QSqlDriverPlugin", "private", "", "public" ] }, - { symbol: [ "QSqlError", "private", "", "public" ] }, - { symbol: [ "QSqlField", "private", "", "public" ] }, - { symbol: [ "QSqlIndex", "private", "", "public" ] }, - { symbol: [ "QSqlQuery", "private", "", "public" ] }, - { symbol: [ "QSqlQueryModel", "private", "", "public" ] }, - { symbol: [ "QSqlRecord", "private", "", "public" ] }, - { symbol: [ "QSqlRelation", "private", "", "public" ] }, - { symbol: [ "QSqlRelationalDelegate", "private", "", "public" ] }, - { symbol: [ "QSqlRelationalTableModel", "private", "", "public" ] }, - { symbol: [ "QSqlResult", "private", "", "public" ] }, - { symbol: [ "QSqlTableModel", "private", "", "public" ] }, - { symbol: [ "QSsl", "private", "", "public" ] }, - { symbol: [ "QSslCertificate", "private", "", "public" ] }, - { symbol: [ "QSslCertificateExtension", "private", "", "public" ] }, - { symbol: [ "QSslCipher", "private", "", "public" ] }, - { symbol: [ "QSslConfiguration", "private", "", "public" ] }, - { symbol: [ "QSslError", "private", "", "public" ] }, - { symbol: [ "QSslKey", "private", "", "public" ] }, - { symbol: [ "QSslSocket", "private", "", "public" ] }, - { symbol: [ "QStack", "private", "", "public" ] }, - { symbol: [ "QStackedLayout", "private", "", "public" ] }, - { symbol: [ "QStackedWidget", "private", "", "public" ] }, - { symbol: [ "QStandardItem", "private", "", "public" ] }, - { symbol: [ "QStandardItemEditorCreator", "private", "", "public" ] }, - { symbol: [ "QStandardItemModel", "private", "", "public" ] }, - { symbol: [ "QStandardPaths", "private", "", "public" ] }, - { symbol: [ "QState", "private", "", "public" ] }, - { symbol: [ "QStateMachine", "private", "", "public" ] }, - { symbol: [ "QStaticArrayData", "private", "", "public" ] }, - { symbol: [ "QStaticAssertFailure", "private", "", "public" ] }, - { symbol: [ "QStaticByteArrayData", "private", "", "public" ] }, - { symbol: [ "QStaticPlugin", "private", "", "public" ] }, - { symbol: [ "QStaticStringData", "private", "", "public" ] }, - { symbol: [ "QStaticText", "private", "", "public" ] }, - { symbol: [ "QStatusBar", "private", "", "public" ] }, - { symbol: [ "QStatusTipEvent", "private", "", "public" ] }, - { symbol: [ "QStorageInfo", "private", "", "public" ] }, - { symbol: [ "QString", "private", "", "public" ] }, - { symbol: [ "QStringBuilder", "private", "", "public" ] }, - { symbol: [ "QStringData", "private", "", "public" ] }, - { symbol: [ "QStringDataPtr", "private", "", "public" ] }, - { symbol: [ "QStringList", "private", "", "public" ] }, - { symbol: [ "QStringListIterator", "private", "", "public" ] }, - { symbol: [ "QStringListModel", "private", "", "public" ] }, - { symbol: [ "QStringMatcher", "private", "", "public" ] }, - { symbol: [ "QStringRef", "private", "", "public" ] }, - { symbol: [ "QStyle", "private", "", "public" ] }, - { symbol: [ "QStyleFactory", "private", "", "public" ] }, - { symbol: [ "QStyleHintReturn", "private", "", "public" ] }, - { symbol: [ "QStyleHintReturnMask", "private", "", "public" ] }, - { symbol: [ "QStyleHintReturnVariant", "private", "", "public" ] }, - { symbol: [ "QStyleHints", "private", "", "public" ] }, - { symbol: [ "QStyleOption", "private", "", "public" ] }, - { symbol: [ "QStyleOptionButton", "private", "", "public" ] }, - { symbol: [ "QStyleOptionComboBox", "private", "", "public" ] }, - { symbol: [ "QStyleOptionComplex", "private", "", "public" ] }, - { symbol: [ "QStyleOptionDockWidget", "private", "", "public" ] }, - { symbol: [ "QStyleOptionDockWidgetV2", "private", "", "public" ] }, - { symbol: [ "QStyleOptionFocusRect", "private", "", "public" ] }, - { symbol: [ "QStyleOptionFrame", "private", "", "public" ] }, - { symbol: [ "QStyleOptionFrameV2", "private", "", "public" ] }, - { symbol: [ "QStyleOptionFrameV3", "private", "", "public" ] }, - { symbol: [ "QStyleOptionGraphicsItem", "private", "", "public" ] }, - { symbol: [ "QStyleOptionGroupBox", "private", "", "public" ] }, - { symbol: [ "QStyleOptionHeader", "private", "", "public" ] }, - { symbol: [ "QStyleOptionMenuItem", "private", "", "public" ] }, - { symbol: [ "QStyleOptionProgressBar", "private", "", "public" ] }, - { symbol: [ "QStyleOptionProgressBarV2", "private", "", "public" ] }, - { symbol: [ "QStyleOptionRubberBand", "private", "", "public" ] }, - { symbol: [ "QStyleOptionSizeGrip", "private", "", "public" ] }, - { symbol: [ "QStyleOptionSlider", "private", "", "public" ] }, - { symbol: [ "QStyleOptionSpinBox", "private", "", "public" ] }, - { symbol: [ "QStyleOptionTab", "private", "", "public" ] }, - { symbol: [ "QStyleOptionTabBarBase", "private", "", "public" ] }, - { symbol: [ "QStyleOptionTabBarBaseV2", "private", "", "public" ] }, - { symbol: [ "QStyleOptionTabV2", "private", "", "public" ] }, - { symbol: [ "QStyleOptionTabV3", "private", "", "public" ] }, - { symbol: [ "QStyleOptionTabWidgetFrame", "private", "", "public" ] }, - { symbol: [ "QStyleOptionTabWidgetFrameV2", "private", "", "public" ] }, - { symbol: [ "QStyleOptionTitleBar", "private", "", "public" ] }, - { symbol: [ "QStyleOptionToolBar", "private", "", "public" ] }, - { symbol: [ "QStyleOptionToolBox", "private", "", "public" ] }, - { symbol: [ "QStyleOptionToolBoxV2", "private", "", "public" ] }, - { symbol: [ "QStyleOptionToolButton", "private", "", "public" ] }, - { symbol: [ "QStyleOptionViewItem", "private", "", "public" ] }, - { symbol: [ "QStyleOptionViewItemV2", "private", "", "public" ] }, - { symbol: [ "QStyleOptionViewItemV3", "private", "", "public" ] }, - { symbol: [ "QStyleOptionViewItemV4", "private", "", "public" ] }, - { symbol: [ "QStylePainter", "private", "", "public" ] }, - { symbol: [ "QStylePlugin", "private", "", "public" ] }, - { symbol: [ "QStyledItemDelegate", "private", "", "public" ] }, - { symbol: [ "QSurface", "private", "", "public" ] }, - { symbol: [ "QSurfaceFormat", "private", "", "public" ] }, - { symbol: [ "QSvgGenerator", "private", "", "public" ] }, - { symbol: [ "QSvgRenderer", "private", "", "public" ] }, - { symbol: [ "QSvgWidget", "private", "", "public" ] }, - { symbol: [ "QSwipeGesture", "private", "", "public" ] }, - { symbol: [ "QSyntaxHighlighter", "private", "", "public" ] }, - { symbol: [ "QSysInfo", "private", "", "public" ] }, - { symbol: [ "QSystemSemaphore", "private", "", "public" ] }, - { symbol: [ "QSystemTrayIcon", "private", "", "public" ] }, - { symbol: [ "QTabBar", "private", "", "public" ] }, - { symbol: [ "QTabWidget", "private", "", "public" ] }, - { symbol: [ "QTableView", "private", "", "public" ] }, - { symbol: [ "QTableWidget", "private", "", "public" ] }, - { symbol: [ "QTableWidgetItem", "private", "", "public" ] }, - { symbol: [ "QTableWidgetSelectionRange", "private", "", "public" ] }, - { symbol: [ "QTabletEvent", "private", "", "public" ] }, - { symbol: [ "QTapAndHoldGesture", "private", "", "public" ] }, - { symbol: [ "QTapFilter", "private", "", "public" ] }, - { symbol: [ "QTapGesture", "private", "", "public" ] }, - { symbol: [ "QTapReading", "private", "", "public" ] }, - { symbol: [ "QTapSensor", "private", "", "public" ] }, - { symbol: [ "QTcpServer", "private", "", "public" ] }, - { symbol: [ "QTcpSocket", "private", "", "public" ] }, - { symbol: [ "QTemporaryDir", "private", "", "public" ] }, - { symbol: [ "QTemporaryFile", "private", "", "public" ] }, - { symbol: [ "QTest", "private", "", "public" ] }, - { symbol: [ "QTestAccessibility", "private", "", "public" ] }, - { symbol: [ "QTestData", "private", "", "public" ] }, - { symbol: [ "QTestDelayEvent", "private", "", "public" ] }, - { symbol: [ "QTestEvent", "private", "", "public" ] }, - { symbol: [ "QTestEventList", "private", "", "public" ] }, - { symbol: [ "QTestEventLoop", "private", "", "public" ] }, - { symbol: [ "QTestKeyClicksEvent", "private", "", "public" ] }, - { symbol: [ "QTestKeyEvent", "private", "", "public" ] }, - { symbol: [ "QTestMouseEvent", "private", "", "public" ] }, - { symbol: [ "QTextBlock", "private", "", "public" ] }, - { symbol: [ "QTextBlockFormat", "private", "", "public" ] }, - { symbol: [ "QTextBlockGroup", "private", "", "public" ] }, - { symbol: [ "QTextBlockUserData", "private", "", "public" ] }, - { symbol: [ "QTextBoundaryFinder", "private", "", "public" ] }, - { symbol: [ "QTextBrowser", "private", "", "public" ] }, - { symbol: [ "QTextCharFormat", "private", "", "public" ] }, - { symbol: [ "QTextCodec", "private", "", "public" ] }, - { symbol: [ "QTextCursor", "private", "", "public" ] }, - { symbol: [ "QTextDecoder", "private", "", "public" ] }, - { symbol: [ "QTextDocument", "private", "", "public" ] }, - { symbol: [ "QTextDocumentFragment", "private", "", "public" ] }, - { symbol: [ "QTextDocumentWriter", "private", "", "public" ] }, - { symbol: [ "QTextEdit", "private", "", "public" ] }, - { symbol: [ "QTextEncoder", "private", "", "public" ] }, - { symbol: [ "QTextFormat", "private", "", "public" ] }, - { symbol: [ "QTextFragment", "private", "", "public" ] }, - { symbol: [ "QTextFrame", "private", "", "public" ] }, - { symbol: [ "QTextFrameFormat", "private", "", "public" ] }, - { symbol: [ "QTextFrameLayoutData", "private", "", "public" ] }, - { symbol: [ "QTextImageFormat", "private", "", "public" ] }, - { symbol: [ "QTextInlineObject", "private", "", "public" ] }, - { symbol: [ "QTextItem", "private", "", "public" ] }, - { symbol: [ "QTextLayout", "private", "", "public" ] }, - { symbol: [ "QTextLength", "private", "", "public" ] }, - { symbol: [ "QTextLine", "private", "", "public" ] }, - { symbol: [ "QTextList", "private", "", "public" ] }, - { symbol: [ "QTextListFormat", "private", "", "public" ] }, - { symbol: [ "QTextObject", "private", "", "public" ] }, - { symbol: [ "QTextObjectInterface", "private", "", "public" ] }, - { symbol: [ "QTextOption", "private", "", "public" ] }, - { symbol: [ "QTextStream", "private", "", "public" ] }, - { symbol: [ "QTextStreamFunction", "private", "", "public" ] }, - { symbol: [ "QTextStreamManipulator", "private", "", "public" ] }, - { symbol: [ "QTextTable", "private", "", "public" ] }, - { symbol: [ "QTextTableCell", "private", "", "public" ] }, - { symbol: [ "QTextTableCellFormat", "private", "", "public" ] }, - { symbol: [ "QTextTableFormat", "private", "", "public" ] }, - { symbol: [ "QThread", "private", "", "public" ] }, - { symbol: [ "QThreadPool", "private", "", "public" ] }, - { symbol: [ "QThreadStorage", "private", "", "public" ] }, - { symbol: [ "QThreadStorageData", "private", "", "public" ] }, - { symbol: [ "QTileRules", "private", "", "public" ] }, - { symbol: [ "QTiltFilter", "private", "", "public" ] }, - { symbol: [ "QTiltReading", "private", "", "public" ] }, - { symbol: [ "QTiltSensor", "private", "", "public" ] }, - { symbol: [ "QTime", "private", "", "public" ] }, - { symbol: [ "QTimeEdit", "private", "", "public" ] }, - { symbol: [ "QTimeLine", "private", "", "public" ] }, - { symbol: [ "QTimeZone", "private", "", "public" ] }, - { symbol: [ "QTimer", "private", "", "public" ] }, - { symbol: [ "QTimerEvent", "private", "", "public" ] }, - { symbol: [ "QToolBar", "private", "", "public" ] }, - { symbol: [ "QToolBarChangeEvent", "private", "", "public" ] }, - { symbol: [ "QToolBox", "private", "", "public" ] }, - { symbol: [ "QToolButton", "private", "", "public" ] }, - { symbol: [ "QToolTip", "private", "", "public" ] }, - { symbol: [ "QTouchDevice", "private", "", "public" ] }, - { symbol: [ "QTouchEvent", "private", "", "public" ] }, - { symbol: [ "QTransform", "private", "", "public" ] }, - { symbol: [ "QTranslator", "private", "", "public" ] }, - { symbol: [ "QTreeView", "private", "", "public" ] }, - { symbol: [ "QTreeWidget", "private", "", "public" ] }, - { symbol: [ "QTreeWidgetItem", "private", "", "public" ] }, - { symbol: [ "QTreeWidgetItemIterator", "private", "", "public" ] }, - { symbol: [ "QTypeInfo", "private", "", "public" ] }, - { symbol: [ "QTypeInfoMerger", "private", "", "public" ] }, - { symbol: [ "QUdpSocket", "private", "", "public" ] }, - { symbol: [ "QUiLoader", "private", "", "public" ] }, - { symbol: [ "QUndoCommand", "private", "", "public" ] }, - { symbol: [ "QUndoGroup", "private", "", "public" ] }, - { symbol: [ "QUndoStack", "private", "", "public" ] }, - { symbol: [ "QUndoView", "private", "", "public" ] }, - { symbol: [ "QUnhandledException", "private", "", "public" ] }, - { symbol: [ "QUrl", "private", "", "public" ] }, - { symbol: [ "QUrlQuery", "private", "", "public" ] }, - { symbol: [ "QUrlTwoFlags", "private", "", "public" ] }, - { symbol: [ "QUuid", "private", "", "public" ] }, - { symbol: [ "QVBoxLayout", "private", "", "public" ] }, - { symbol: [ "QValidator", "private", "", "public" ] }, - { symbol: [ "QVarLengthArray", "private", "", "public" ] }, - { symbol: [ "QVariant", "private", "", "public" ] }, - { symbol: [ "QVariantAnimation", "private", "", "public" ] }, - { symbol: [ "QVariantComparisonHelper", "private", "", "public" ] }, - { symbol: [ "QVariantHash", "private", "", "public" ] }, - { symbol: [ "QVariantList", "private", "", "public" ] }, - { symbol: [ "QVariantMap", "private", "", "public" ] }, - { symbol: [ "QVector", "private", "", "public" ] }, - { symbol: [ "QVector2D", "private", "", "public" ] }, - { symbol: [ "QVector3D", "private", "", "public" ] }, - { symbol: [ "QVector4D", "private", "", "public" ] }, - { symbol: [ "QVectorIterator", "private", "", "public" ] }, - { symbol: [ "QVideoDeviceSelectorControl", "private", "", "public" ] }, - { symbol: [ "QVideoEncoderSettings", "private", "", "public" ] }, - { symbol: [ "QVideoEncoderSettingsControl", "private", "", "public" ] }, - { symbol: [ "QVideoFrame", "private", "", "public" ] }, - { symbol: [ "QVideoProbe", "private", "", "public" ] }, - { symbol: [ "QVideoRendererControl", "private", "", "public" ] }, - { symbol: [ "QVideoSurfaceFormat", "private", "", "public" ] }, - { symbol: [ "QVideoWidget", "private", "", "public" ] }, - { symbol: [ "QVideoWidgetControl", "private", "", "public" ] }, - { symbol: [ "QVideoWindowControl", "private", "", "public" ] }, - { symbol: [ "QWGLNativeContext", "private", "", "public" ] }, - { symbol: [ "QWaitCondition", "private", "", "public" ] }, - { symbol: [ "QWeakPointer", "private", "", "public" ] }, - { symbol: [ "QWebChannel", "private", "", "public" ] }, - { symbol: [ "QWebChannelAbstractTransport", "private", "", "public" ] }, - { symbol: [ "QWebDatabase", "private", "", "public" ] }, - { symbol: [ "QWebElement", "private", "", "public" ] }, - { symbol: [ "QWebElementCollection", "private", "", "public" ] }, - { symbol: [ "QWebFrame", "private", "", "public" ] }, - { symbol: [ "QWebFullScreenVideoHandler", "private", "", "public" ] }, - { symbol: [ "QWebHapticFeedbackPlayer", "private", "", "public" ] }, - { symbol: [ "QWebHistory", "private", "", "public" ] }, - { symbol: [ "QWebHistoryInterface", "private", "", "public" ] }, - { symbol: [ "QWebHistoryItem", "private", "", "public" ] }, - { symbol: [ "QWebHitTestResult", "private", "", "public" ] }, - { symbol: [ "QWebInspector", "private", "", "public" ] }, - { symbol: [ "QWebKitPlatformPlugin", "private", "", "public" ] }, - { symbol: [ "QWebNotificationData", "private", "", "public" ] }, - { symbol: [ "QWebNotificationPresenter", "private", "", "public" ] }, - { symbol: [ "QWebPage", "private", "", "public" ] }, - { symbol: [ "QWebPluginFactory", "private", "", "public" ] }, - { symbol: [ "QWebSecurityOrigin", "private", "", "public" ] }, - { symbol: [ "QWebSelectData", "private", "", "public" ] }, - { symbol: [ "QWebSelectMethod", "private", "", "public" ] }, - { symbol: [ "QWebSettings", "private", "", "public" ] }, - { symbol: [ "QWebSocket", "private", "", "public" ] }, - { symbol: [ "QWebSocketCorsAuthenticator", "private", "", "public" ] }, - { symbol: [ "QWebSocketServer", "private", "", "public" ] }, - { symbol: [ "QWebSpellChecker", "private", "", "public" ] }, - { symbol: [ "QWebTouchModifier", "private", "", "public" ] }, - { symbol: [ "QWebView", "private", "", "public" ] }, - { symbol: [ "QWhatsThis", "private", "", "public" ] }, - { symbol: [ "QWhatsThisClickedEvent", "private", "", "public" ] }, - { symbol: [ "QWheelEvent", "private", "", "public" ] }, - { symbol: [ "QWidget", "private", "", "public" ] }, - { symbol: [ "QWidgetAction", "private", "", "public" ] }, - { symbol: [ "QWidgetData", "private", "", "public" ] }, - { symbol: [ "QWidgetItem", "private", "", "public" ] }, - { symbol: [ "QWidgetItemV2", "private", "", "public" ] }, - { symbol: [ "QWidgetList", "private", "", "public" ] }, - { symbol: [ "QWidgetMapper", "private", "", "public" ] }, - { symbol: [ "QWidgetSet", "private", "", "public" ] }, - { symbol: [ "QWinColorizationChangeEvent", "private", "", "public" ] }, - { symbol: [ "QWinCompositionChangeEvent", "private", "", "public" ] }, - { symbol: [ "QWinEvent", "private", "", "public" ] }, - { symbol: [ "QWinEventNotifier", "private", "", "public" ] }, - { symbol: [ "QWinEventNotifier", "private", "", "public" ] }, - { symbol: [ "QWinJumpList", "private", "", "public" ] }, - { symbol: [ "QWinJumpListCategory", "private", "", "public" ] }, - { symbol: [ "QWinJumpListItem", "private", "", "public" ] }, - { symbol: [ "QWinMime", "private", "", "public" ] }, - { symbol: [ "QWinTaskbarButton", "private", "", "public" ] }, - { symbol: [ "QWinTaskbarProgress", "private", "", "public" ] }, - { symbol: [ "QWinThumbnailToolBar", "private", "", "public" ] }, - { symbol: [ "QWinThumbnailToolButton", "private", "", "public" ] }, - { symbol: [ "QWindow", "private", "", "public" ] }, - { symbol: [ "QWindowList", "private", "", "public" ] }, - { symbol: [ "QWindowStateChangeEvent", "private", "", "public" ] }, - { symbol: [ "QWizard", "private", "", "public" ] }, - { symbol: [ "QWizardPage", "private", "", "public" ] }, - { symbol: [ "QWriteLocker", "private", "", "public" ] }, - { symbol: [ "QXcbWindowFunctions", "private", "", "public" ] }, - { symbol: [ "QXmlAttributes", "private", "", "public" ] }, - { symbol: [ "QXmlContentHandler", "private", "", "public" ] }, - { symbol: [ "QXmlDTDHandler", "private", "", "public" ] }, - { symbol: [ "QXmlDeclHandler", "private", "", "public" ] }, - { symbol: [ "QXmlDefaultHandler", "private", "", "public" ] }, - { symbol: [ "QXmlEntityResolver", "private", "", "public" ] }, - { symbol: [ "QXmlErrorHandler", "private", "", "public" ] }, - { symbol: [ "QXmlFormatter", "private", "", "public" ] }, - { symbol: [ "QXmlInputSource", "private", "", "public" ] }, - { symbol: [ "QXmlItem", "private", "", "public" ] }, - { symbol: [ "QXmlLexicalHandler", "private", "", "public" ] }, - { symbol: [ "QXmlLocator", "private", "", "public" ] }, - { symbol: [ "QXmlName", "private", "", "public" ] }, - { symbol: [ "QXmlNamePool", "private", "", "public" ] }, - { symbol: [ "QXmlNamespaceSupport", "private", "", "public" ] }, - { symbol: [ "QXmlNodeModelIndex", "private", "", "public" ] }, - { symbol: [ "QXmlParseException", "private", "", "public" ] }, - { symbol: [ "QXmlQuery", "private", "", "public" ] }, - { symbol: [ "QXmlReader", "private", "", "public" ] }, - { symbol: [ "QXmlResultItems", "private", "", "public" ] }, - { symbol: [ "QXmlSchema", "private", "", "public" ] }, - { symbol: [ "QXmlSchemaValidator", "private", "", "public" ] }, - { symbol: [ "QXmlSerializer", "private", "", "public" ] }, - { symbol: [ "QXmlSimpleReader", "private", "", "public" ] }, - { symbol: [ "QXmlStreamAttribute", "private", "", "public" ] }, - { symbol: [ "QXmlStreamAttributes", "private", "", "public" ] }, - { symbol: [ "QXmlStreamEntityDeclaration", "private", "", "public" ] }, - { symbol: [ "QXmlStreamEntityDeclarations", "private", "", "public" ] }, - { symbol: [ "QXmlStreamEntityResolver", "private", "", "public" ] }, - { symbol: [ "QXmlStreamNamespaceDeclaration", "private", "", "public" ] }, - { symbol: [ "QXmlStreamNamespaceDeclarations", "private", "", "public" ] }, - { symbol: [ "QXmlStreamNotationDeclaration", "private", "", "public" ] }, - { symbol: [ "QXmlStreamNotationDeclarations", "private", "", "public" ] }, - { symbol: [ "QXmlStreamReader", "private", "", "public" ] }, - { symbol: [ "QXmlStreamStringRef", "private", "", "public" ] }, - { symbol: [ "QXmlStreamWriter", "private", "", "public" ] }, - { symbol: [ "Q_IPV6ADDR", "private", "", "public" ] }, - { symbol: [ "Q_PID", "private", "", "public" ] }, - { symbol: [ "Qt", "private", "", "public" ] }, - { symbol: [ "QtAlgorithms", "private", "", "public" ] }, - { symbol: [ "QtBluetooth", "private", "", "public" ] }, - { symbol: [ "QtBluetoothDepends", "private", "", "public" ] }, - { symbol: [ "QtBluetoothVersion", "private", "", "public" ] }, - { symbol: [ "QtCLucene", "private", "", "public" ] }, - { symbol: [ "QtCLuceneDepends", "private", "", "public" ] }, - { symbol: [ "QtCLuceneVersion", "private", "", "public" ] }, - { symbol: [ "QtCleanUpFunction", "private", "", "public" ] }, - { symbol: [ "QtConcurrent", "private", "", "public" ] }, - { symbol: [ "QtConcurrentDepends", "private", "", "public" ] }, - { symbol: [ "QtConcurrentFilter", "private", "", "public" ] }, - { symbol: [ "QtConcurrentMap", "private", "", "public" ] }, - { symbol: [ "QtConcurrentRun", "private", "", "public" ] }, - { symbol: [ "QtConcurrentVersion", "private", "", "public" ] }, - { symbol: [ "QtConfig", "private", "", "public" ] }, - { symbol: [ "QtContainerFwd", "private", "", "public" ] }, - { symbol: [ "QtCore", "private", "", "public" ] }, - { symbol: [ "QtCoreDepends", "private", "", "public" ] }, - { symbol: [ "QtCoreVersion", "private", "", "public" ] }, - { symbol: [ "QtDBus", "private", "", "public" ] }, - { symbol: [ "QtDBusDepends", "private", "", "public" ] }, - { symbol: [ "QtDBusVersion", "private", "", "public" ] }, - { symbol: [ "QtDebug", "private", "", "public" ] }, - { symbol: [ "QtDeclarative", "private", "", "public" ] }, - { symbol: [ "QtDeclarativeDepends", "private", "", "public" ] }, - { symbol: [ "QtDeclarativeVersion", "private", "", "public" ] }, - { symbol: [ "QtDesigner", "private", "", "public" ] }, - { symbol: [ "QtDesignerComponents", "private", "", "public" ] }, - { symbol: [ "QtDesignerComponentsDepends", "private", "", "public" ] }, - { symbol: [ "QtDesignerComponentsVersion", "private", "", "public" ] }, - { symbol: [ "QtDesignerDepends", "private", "", "public" ] }, - { symbol: [ "QtDesignerVersion", "private", "", "public" ] }, - { symbol: [ "QtEndian", "private", "", "public" ] }, - { symbol: [ "QtEvents", "private", "", "public" ] }, - { symbol: [ "QtGlobal", "private", "", "public" ] }, - { symbol: [ "QtGui", "private", "", "public" ] }, - { symbol: [ "QtGuiDepends", "private", "", "public" ] }, - { symbol: [ "QtGuiVersion", "private", "", "public" ] }, - { symbol: [ "QtHelp", "private", "", "public" ] }, - { symbol: [ "QtHelpDepends", "private", "", "public" ] }, - { symbol: [ "QtHelpVersion", "private", "", "public" ] }, - { symbol: [ "QtLocation", "private", "", "public" ] }, - { symbol: [ "QtLocationDepends", "private", "", "public" ] }, - { symbol: [ "QtLocationVersion", "private", "", "public" ] }, - { symbol: [ "QtMath", "private", "", "public" ] }, - { symbol: [ "QtMessageHandler", "private", "", "public" ] }, - { symbol: [ "QtMsgHandler", "private", "", "public" ] }, - { symbol: [ "QtMultimedia", "private", "", "public" ] }, - { symbol: [ "QtMultimediaDepends", "private", "", "public" ] }, - { symbol: [ "QtMultimediaQuick_p", "private", "", "public" ] }, - { symbol: [ "QtMultimediaQuick_pDepends", "private", "", "public" ] }, - { symbol: [ "QtMultimediaQuick_pVersion", "private", "", "public" ] }, - { symbol: [ "QtMultimediaVersion", "private", "", "public" ] }, - { symbol: [ "QtMultimediaWidgets", "private", "", "public" ] }, - { symbol: [ "QtMultimediaWidgetsDepends", "private", "", "public" ] }, - { symbol: [ "QtMultimediaWidgetsVersion", "private", "", "public" ] }, - { symbol: [ "QtNetwork", "private", "", "public" ] }, - { symbol: [ "QtNetworkDepends", "private", "", "public" ] }, - { symbol: [ "QtNetworkVersion", "private", "", "public" ] }, - { symbol: [ "QtNfc", "private", "", "public" ] }, - { symbol: [ "QtNfcDepends", "private", "", "public" ] }, - { symbol: [ "QtNfcVersion", "private", "", "public" ] }, - { symbol: [ "QtNumeric", "private", "", "public" ] }, - { symbol: [ "QtOpenGL", "private", "", "public" ] }, - { symbol: [ "QtOpenGLDepends", "private", "", "public" ] }, - { symbol: [ "QtOpenGLExtensions", "private", "", "public" ] }, - { symbol: [ "QtOpenGLExtensionsDepends", "private", "", "public" ] }, - { symbol: [ "QtOpenGLExtensionsVersion", "private", "", "public" ] }, - { symbol: [ "QtOpenGLVersion", "private", "", "public" ] }, - { symbol: [ "QtPlatformHeaders", "private", "", "public" ] }, - { symbol: [ "QtPlatformHeadersDepends", "private", "", "public" ] }, - { symbol: [ "QtPlatformHeadersVersion", "private", "", "public" ] }, - { symbol: [ "QtPlatformSupport", "private", "", "public" ] }, - { symbol: [ "QtPlatformSupportDepends", "private", "", "public" ] }, - { symbol: [ "QtPlatformSupportVersion", "private", "", "public" ] }, - { symbol: [ "QtPlugin", "private", "", "public" ] }, - { symbol: [ "QtPluginInstanceFunction", "private", "", "public" ] }, - { symbol: [ "QtPluginMetaDataFunction", "private", "", "public" ] }, - { symbol: [ "QtPositioning", "private", "", "public" ] }, - { symbol: [ "QtPositioningDepends", "private", "", "public" ] }, - { symbol: [ "QtPositioningVersion", "private", "", "public" ] }, - { symbol: [ "QtPrintSupport", "private", "", "public" ] }, - { symbol: [ "QtPrintSupportDepends", "private", "", "public" ] }, - { symbol: [ "QtPrintSupportVersion", "private", "", "public" ] }, - { symbol: [ "QtQml", "private", "", "public" ] }, - { symbol: [ "QtQmlDepends", "private", "", "public" ] }, - { symbol: [ "QtQmlVersion", "private", "", "public" ] }, - { symbol: [ "QtQuick", "private", "", "public" ] }, - { symbol: [ "QtQuickDepends", "private", "", "public" ] }, - { symbol: [ "QtQuickParticles", "private", "", "public" ] }, - { symbol: [ "QtQuickParticlesDepends", "private", "", "public" ] }, - { symbol: [ "QtQuickParticlesVersion", "private", "", "public" ] }, - { symbol: [ "QtQuickTest", "private", "", "public" ] }, - { symbol: [ "QtQuickTestDepends", "private", "", "public" ] }, - { symbol: [ "QtQuickTestVersion", "private", "", "public" ] }, - { symbol: [ "QtQuickVersion", "private", "", "public" ] }, - { symbol: [ "QtQuickWidgets", "private", "", "public" ] }, - { symbol: [ "QtQuickWidgetsDepends", "private", "", "public" ] }, - { symbol: [ "QtQuickWidgetsVersion", "private", "", "public" ] }, - { symbol: [ "QtScript", "private", "", "public" ] }, - { symbol: [ "QtScriptDepends", "private", "", "public" ] }, - { symbol: [ "QtScriptTools", "private", "", "public" ] }, - { symbol: [ "QtScriptToolsDepends", "private", "", "public" ] }, - { symbol: [ "QtScriptToolsVersion", "private", "", "public" ] }, - { symbol: [ "QtScriptVersion", "private", "", "public" ] }, - { symbol: [ "QtSensors", "private", "", "public" ] }, - { symbol: [ "QtSensorsDepends", "private", "", "public" ] }, - { symbol: [ "QtSensorsVersion", "private", "", "public" ] }, - { symbol: [ "QtSerialPort", "private", "", "public" ] }, - { symbol: [ "QtSerialPortDepends", "private", "", "public" ] }, - { symbol: [ "QtSerialPortVersion", "private", "", "public" ] }, - { symbol: [ "QtSql", "private", "", "public" ] }, - { symbol: [ "QtSqlDepends", "private", "", "public" ] }, - { symbol: [ "QtSqlVersion", "private", "", "public" ] }, - { symbol: [ "QtSvg", "private", "", "public" ] }, - { symbol: [ "QtSvgDepends", "private", "", "public" ] }, - { symbol: [ "QtSvgVersion", "private", "", "public" ] }, - { symbol: [ "QtTest", "private", "", "public" ] }, - { symbol: [ "QtTestDepends", "private", "", "public" ] }, - { symbol: [ "QtTestGui", "private", "", "public" ] }, - { symbol: [ "QtTestVersion", "private", "", "public" ] }, - { symbol: [ "QtTestWidgets", "private", "", "public" ] }, - { symbol: [ "QtUiTools", "private", "", "public" ] }, - { symbol: [ "QtUiToolsDepends", "private", "", "public" ] }, - { symbol: [ "QtUiToolsVersion", "private", "", "public" ] }, - { symbol: [ "QtWebChannel", "private", "", "public" ] }, - { symbol: [ "QtWebChannelDepends", "private", "", "public" ] }, - { symbol: [ "QtWebChannelVersion", "private", "", "public" ] }, - { symbol: [ "QtWebKit", "private", "", "public" ] }, - { symbol: [ "QtWebKitDepends", "private", "", "public" ] }, - { symbol: [ "QtWebKitVersion", "private", "", "public" ] }, - { symbol: [ "QtWebKitWidgets", "private", "", "public" ] }, - { symbol: [ "QtWebKitWidgetsDepends", "private", "", "public" ] }, - { symbol: [ "QtWebKitWidgetsVersion", "private", "", "public" ] }, - { symbol: [ "QtWebSockets", "private", "", "public" ] }, - { symbol: [ "QtWebSocketsDepends", "private", "", "public" ] }, - { symbol: [ "QtWebSocketsVersion", "private", "", "public" ] }, - { symbol: [ "QtWidgets", "private", "", "public" ] }, - { symbol: [ "QtWidgetsDepends", "private", "", "public" ] }, - { symbol: [ "QtWidgetsVersion", "private", "", "public" ] }, - { symbol: [ "QtWin", "private", "", "public" ] }, - { symbol: [ "QtWinExtras", "private", "", "public" ] }, - { symbol: [ "QtWinExtrasDepends", "private", "", "public" ] }, - { symbol: [ "QtWinExtrasVersion", "private", "", "public" ] }, - { symbol: [ "QtXml", "private", "", "public" ] }, - { symbol: [ "QtXmlDepends", "private", "", "public" ] }, - { symbol: [ "QtXmlPatterns", "private", "", "public" ] }, - { symbol: [ "QtXmlPatternsDepends", "private", "", "public" ] }, - { symbol: [ "QtXmlPatternsVersion", "private", "", "public" ] }, - { symbol: [ "QtXmlVersion", "private", "", "public" ] }, - -## other things not picked up by the above - #{ symbol: [ "qobject_cast", "private", "", "public" ] }, - #{ symbol: [ "qApp", "private", "", "public" ] }, - #{ symbol: [ "qHash", "private", "", "public" ] }, - -# This is necessary because QList::toSet ends up in QSet which is wrong. See note -# at top as to why this shouldn't be necessary - - { symbol: [ "QList::toSet", "private", "", "public" ] }, - -# Even if IWYU recognised A::B as coming from a.h, we'd still need a lot of these for -# free operators - -# Generated with -# perl -le "use File::Find;use File::Basename; sub wanted { $x = lc $_. '.h'; print ' { include: [ -@\-('.basename($File::Find::dir).'/)?'.$x.'\--, -private-, -<'.$_.'>-, -public- ] },' if -e $x } find(\&wanted, '.')" -# on windows - - { include: [ "@\"(ActiveQt/)?activeqtversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(ActiveQt/)?qaxaggregated\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(ActiveQt/)?qaxbase\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(ActiveQt/)?qaxbindable\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(ActiveQt/)?qaxfactory\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(ActiveQt/)?qaxobject\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(ActiveQt/)?qaxscript\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(ActiveQt/)?qaxselect\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(ActiveQt/)?qaxwidget\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(Enginio/)?enginio\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(Enginio/)?enginioversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtBluetooth/)?qbluetoothaddress\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtBluetooth/)?qbluetoothdevicediscoveryagent\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtBluetooth/)?qbluetoothdeviceinfo\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtBluetooth/)?qbluetoothhostinfo\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtBluetooth/)?qbluetoothlocaldevice\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtBluetooth/)?qbluetoothserver\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtBluetooth/)?qbluetoothservicediscoveryagent\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtBluetooth/)?qbluetoothserviceinfo\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtBluetooth/)?qbluetoothsocket\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtBluetooth/)?qbluetoothtransfermanager\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtBluetooth/)?qbluetoothtransferreply\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtBluetooth/)?qbluetoothtransferrequest\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtBluetooth/)?qbluetoothuuid\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtBluetooth/)?qlowenergycharacteristic\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtBluetooth/)?qlowenergycontroller\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtBluetooth/)?qlowenergydescriptor\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtBluetooth/)?qlowenergyservice\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtBluetooth/)?qtbluetoothversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCLucene/)?qtcluceneversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtConcurrent/)?qtconcurrentfilter\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtConcurrent/)?qtconcurrentmap\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtConcurrent/)?qtconcurrentrun\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtConcurrent/)?qtconcurrentversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qabstractanimation\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qabstracteventdispatcher\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qabstractitemmodel\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qabstractnativeeventfilter\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qabstractproxymodel\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qabstractstate\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qabstracttransition\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qanimationgroup\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qarraydata\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qarraydatapointer\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qbasictimer\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qbitarray\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qbuffer\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qbytearray\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qbytearraylist\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qbytearraymatcher\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qcache\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qchar\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qcollator\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qcommandlineoption\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qcommandlineparser\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qcontiguouscache\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qcoreapplication\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qcryptographichash\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qdatastream\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qdatetime\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qdebug\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qdir\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qdiriterator\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qeasingcurve\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qelapsedtimer\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qeventloop\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qeventtransition\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qexception\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qfactoryinterface\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qfile\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qfiledevice\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qfileinfo\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qfileselector\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qfilesystemwatcher\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qfinalstate\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qflags\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qfuture\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qfutureinterface\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qfuturesynchronizer\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qfuturewatcher\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qglobalstatic\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qhash\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qhistorystate\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qidentityproxymodel\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qiodevice\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qitemselectionmodel\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qjsonarray\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qjsondocument\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qjsonobject\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qjsonvalue\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qlibrary\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qlibraryinfo\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qline\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qlinkedlist\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qlist\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qlocale\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qlockfile\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qloggingcategory\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qmap\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qmargins\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qmessageauthenticationcode\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qmetaobject\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qmetatype\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qmimedata\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qmimedatabase\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qmimetype\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qmutex\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qobject\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qobjectcleanuphandler\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qpair\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qparallelanimationgroup\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qpauseanimation\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qpluginloader\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qpoint\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qpointer\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qprocess\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qpropertyanimation\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qqueue\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qreadwritelock\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qrect\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qregexp\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qregularexpression\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qresource\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qrunnable\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qsavefile\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qscopedpointer\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qscopedvaluerollback\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qsemaphore\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qsequentialanimationgroup\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qset\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qsettings\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qshareddata\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qsharedmemory\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qsharedpointer\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qsignalmapper\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qsignaltransition\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qsize\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qsocketnotifier\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qsortfilterproxymodel\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qstack\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qstandardpaths\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qstate\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qstatemachine\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qstorageinfo\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qstring\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qstringbuilder\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qstringlist\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qstringlistmodel\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qstringmatcher\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qsysinfo\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qsystemsemaphore\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qtcoreversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qtemporarydir\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qtemporaryfile\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qtextboundaryfinder\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qtextcodec\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qtextstream\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qthread\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qthreadpool\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qthreadstorage\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qtimeline\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qtimer\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qtimezone\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qtranslator\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qtypeinfo\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qurl\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qurlquery\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?quuid\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qvariant\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qvariantanimation\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qvarlengtharray\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qvector\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qwaitcondition\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qwineventnotifier\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDBus/)?qdbusabstractadaptor\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDBus/)?qdbusabstractinterface\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDBus/)?qdbusargument\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDBus/)?qdbusconnection\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDBus/)?qdbusconnectioninterface\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDBus/)?qdbuscontext\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDBus/)?qdbuserror\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDBus/)?qdbusinterface\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDBus/)?qdbusmessage\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDBus/)?qdbusmetatype\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDBus/)?qdbuspendingcall\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDBus/)?qdbuspendingreply\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDBus/)?qdbusreply\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDBus/)?qdbusserver\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDBus/)?qdbusservicewatcher\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDBus/)?qdbusunixfiledescriptor\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDBus/)?qdbusvirtualobject\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDBus/)?qtdbusversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDeclarative/)?qdeclarativecomponent\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDeclarative/)?qdeclarativecontext\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDeclarative/)?qdeclarativeengine\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDeclarative/)?qdeclarativeerror\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDeclarative/)?qdeclarativeexpression\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDeclarative/)?qdeclarativeextensioninterface\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDeclarative/)?qdeclarativeextensionplugin\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDeclarative/)?qdeclarativeimageprovider\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDeclarative/)?qdeclarativeinfo\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDeclarative/)?qdeclarativeitem\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDeclarative/)?qdeclarativenetworkaccessmanagerfactory\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDeclarative/)?qdeclarativeparserstatus\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDeclarative/)?qdeclarativeproperty\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDeclarative/)?qdeclarativepropertymap\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDeclarative/)?qdeclarativepropertyvalueinterceptor\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDeclarative/)?qdeclarativepropertyvaluesource\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDeclarative/)?qdeclarativescriptstring\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDeclarative/)?qdeclarativeview\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDeclarative/)?qtdeclarativeversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDesigner/)?qdesignerexportwidget\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDesigner/)?qextensionmanager\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDesigner/)?qtdesignerversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtDesignerComponents/)?qtdesignercomponentsversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qabstracttextdocumentlayout\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qaccessible\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qaccessiblebridge\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qaccessibleobject\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qaccessibleplugin\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qbackingstore\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qbitmap\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qbrush\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qclipboard\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qcolor\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qcursor\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qdesktopservices\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qdrag\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qfont\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qfontdatabase\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qfontinfo\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qfontmetrics\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qgenericmatrix\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qgenericplugin\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qgenericpluginfactory\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qglyphrun\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qguiapplication\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qicon\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qiconengine\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qiconengineplugin\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qimage\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qimageiohandler\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qimagereader\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qimagewriter\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qinputmethod\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qkeysequence\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qmatrix4x4\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qmatrix\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qmovie\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qoffscreensurface\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglbuffer\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglcontext\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglframebufferobject\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglfunctions\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglfunctions_1_0\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglfunctions_1_1\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglfunctions_1_2\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglfunctions_1_3\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglfunctions_1_4\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglfunctions_1_5\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglfunctions_2_0\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglfunctions_2_1\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglfunctions_3_0\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglfunctions_3_1\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglfunctions_3_2_compatibility\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglfunctions_3_2_core\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglfunctions_3_3_compatibility\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglfunctions_3_3_core\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglfunctions_4_0_compatibility\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglfunctions_4_0_core\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglfunctions_4_1_compatibility\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglfunctions_4_1_core\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglfunctions_4_2_compatibility\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglfunctions_4_2_core\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglfunctions_4_3_compatibility\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglfunctions_4_3_core\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglfunctions_es2\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglpaintdevice\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglpixeltransferoptions\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglshaderprogram\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopengltexture\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopengltimerquery\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglversionfunctions\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglvertexarrayobject\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qopenglwindow\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qpagedpaintdevice\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qpagelayout\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qpagesize\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qpaintdevice\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qpaintdevicewindow\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qpaintengine\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qpainter\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qpainterpath\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qpalette\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qpdfwriter\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qpen\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qpicture\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qpictureformatplugin\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qpixelformat\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qpixmap\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qpixmapcache\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qpolygon\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qquaternion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qrasterwindow\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qrawfont\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qregion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qrgb\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qscreen\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qsessionmanager\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qstandarditemmodel\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qstatictext\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qstylehints\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qsurface\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qsurfaceformat\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qsyntaxhighlighter\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qtextcursor\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qtextdocument\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qtextdocumentfragment\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qtextdocumentwriter\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qtextformat\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qtextlayout\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qtextlist\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qtextobject\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qtextoption\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qtexttable\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qtguiversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qtouchdevice\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qtransform\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qvalidator\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qvector2d\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qvector3d\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qvector4d\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtGui/)?qwindow\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtHelp/)?qhelpcontentwidget\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtHelp/)?qhelpengine\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtHelp/)?qhelpenginecore\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtHelp/)?qhelpindexwidget\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtHelp/)?qhelpsearchengine\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtHelp/)?qhelpsearchquerywidget\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtHelp/)?qhelpsearchresultwidget\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtHelp/)?qthelpversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qgeocodereply\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qgeocodingmanager\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qgeocodingmanagerengine\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qgeomaneuver\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qgeoroute\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qgeoroutereply\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qgeorouterequest\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qgeoroutesegment\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qgeoroutingmanager\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qgeoroutingmanagerengine\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qgeoserviceprovider\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qgeoserviceproviderfactory\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qlocation\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qplace\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qplaceattribute\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qplacecategory\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qplacecontactdetail\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qplacecontent\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qplacecontentreply\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qplacecontentrequest\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qplacedetailsreply\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qplaceeditorial\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qplaceicon\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qplaceidreply\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qplaceimage\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qplacemanager\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qplacemanagerengine\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qplacematchreply\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qplacematchrequest\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qplaceproposedsearchresult\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qplaceratings\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qplacereply\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qplaceresult\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qplacereview\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qplacesearchreply\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qplacesearchrequest\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qplacesearchresult\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qplacesearchsuggestionreply\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qplacesupplier\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qplaceuser\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtLocation/)?qtlocationversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qabstractvideobuffer\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qabstractvideosurface\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qaudio\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qaudiobuffer\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qaudiodecoder\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qaudiodecodercontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qaudiodeviceinfo\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qaudioencodersettingscontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qaudioformat\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qaudioinput\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qaudioinputselectorcontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qaudiooutput\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qaudiooutputselectorcontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qaudioprobe\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qaudiorecorder\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qaudiosystemplugin\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qcamera\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qcameracapturebufferformatcontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qcameracapturedestinationcontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qcameracontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qcameraexposure\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qcameraexposurecontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qcamerafeedbackcontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qcameraflashcontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qcamerafocus\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qcamerafocuscontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qcameraimagecapture\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qcameraimagecapturecontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qcameraimageprocessing\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qcameraimageprocessingcontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qcamerainfo\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qcamerainfocontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qcameralockscontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qcameraviewfindersettingscontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qcamerazoomcontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qimageencodercontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qmediaaudioprobecontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qmediaavailabilitycontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qmediabindableinterface\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qmediacontainercontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qmediacontent\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qmediacontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qmediagaplessplaybackcontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qmediametadata\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qmedianetworkaccesscontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qmediaobject\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qmediaplayer\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qmediaplayercontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qmediaplaylist\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qmediarecorder\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qmediarecordercontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qmediaresource\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qmediaservice\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qmediaserviceproviderplugin\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qmediastreamscontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qmediatimerange\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qmediavideoprobecontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qmetadatareadercontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qmetadatawritercontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qmultimedia\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qradiodata\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qradiodatacontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qradiotuner\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qradiotunercontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qsound\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qsoundeffect\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qtmultimediaversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qvideodeviceselectorcontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qvideoencodersettingscontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qvideoframe\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qvideoprobe\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qvideorenderercontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qvideosurfaceformat\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimedia/)?qvideowindowcontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimediaQuick_p/)?qsgvideonode_i420\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimediaQuick_p/)?qsgvideonode_rgb\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimediaQuick_p/)?qsgvideonode_texture\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimediaQuick_p/)?qtmultimediaquick_pversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimediaWidgets/)?qcameraviewfinder\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimediaWidgets/)?qgraphicsvideoitem\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimediaWidgets/)?qtmultimediawidgetsversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimediaWidgets/)?qvideowidget\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtMultimediaWidgets/)?qvideowidgetcontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNetwork/)?qabstractnetworkcache\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNetwork/)?qabstractsocket\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNetwork/)?qauthenticator\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNetwork/)?qdnslookup\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNetwork/)?qhostaddress\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNetwork/)?qhostinfo\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNetwork/)?qhttpmultipart\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNetwork/)?qlocalserver\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNetwork/)?qlocalsocket\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNetwork/)?qnetworkaccessmanager\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNetwork/)?qnetworkconfiguration\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNetwork/)?qnetworkcookie\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNetwork/)?qnetworkcookiejar\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNetwork/)?qnetworkdiskcache\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNetwork/)?qnetworkinterface\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNetwork/)?qnetworkproxy\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNetwork/)?qnetworkreply\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNetwork/)?qnetworkrequest\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNetwork/)?qnetworksession\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNetwork/)?qssl\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNetwork/)?qsslcertificate\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNetwork/)?qsslcertificateextension\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNetwork/)?qsslcipher\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNetwork/)?qsslconfiguration\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNetwork/)?qsslerror\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNetwork/)?qsslkey\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNetwork/)?qsslsocket\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNetwork/)?qtcpserver\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNetwork/)?qtcpsocket\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNetwork/)?qtnetworkversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNetwork/)?qudpsocket\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNfc/)?qndeffilter\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNfc/)?qndefmessage\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNfc/)?qndefnfcsmartposterrecord\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNfc/)?qndefnfctextrecord\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNfc/)?qndefnfcurirecord\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNfc/)?qndefrecord\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNfc/)?qnearfieldmanager\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNfc/)?qnearfieldsharemanager\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNfc/)?qnearfieldsharetarget\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNfc/)?qnearfieldtarget\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNfc/)?qqmlndefrecord\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtNfc/)?qtnfcversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtOpenGL/)?qgl\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtOpenGL/)?qglbuffer\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtOpenGL/)?qglcolormap\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtOpenGL/)?qglframebufferobject\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtOpenGL/)?qglfunctions\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtOpenGL/)?qglpixelbuffer\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtOpenGL/)?qglshaderprogram\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtOpenGL/)?qtopenglversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtOpenGLExtensions/)?qopenglextensions\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtOpenGLExtensions/)?qtopenglextensionsversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtPlatformHeaders/)?qcocoanativecontext\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtPlatformHeaders/)?qeglfsfunctions\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtPlatformHeaders/)?qeglnativecontext\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtPlatformHeaders/)?qglxnativecontext\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtPlatformHeaders/)?qtplatformheadersversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtPlatformHeaders/)?qwglnativecontext\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtPlatformHeaders/)?qxcbwindowfunctions\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtPlatformSupport/)?qtplatformsupportversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtPositioning/)?qgeoaddress\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtPositioning/)?qgeoareamonitorinfo\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtPositioning/)?qgeoareamonitorsource\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtPositioning/)?qgeocircle\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtPositioning/)?qgeocoordinate\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtPositioning/)?qgeolocation\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtPositioning/)?qgeopositioninfo\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtPositioning/)?qgeopositioninfosource\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtPositioning/)?qgeopositioninfosourcefactory\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtPositioning/)?qgeorectangle\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtPositioning/)?qgeosatelliteinfo\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtPositioning/)?qgeosatelliteinfosource\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtPositioning/)?qgeoshape\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtPositioning/)?qnmeapositioninfosource\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtPositioning/)?qtpositioningversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtPrintSupport/)?qabstractprintdialog\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtPrintSupport/)?qpagesetupdialog\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtPrintSupport/)?qprintdialog\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtPrintSupport/)?qprintengine\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtPrintSupport/)?qprinter\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtPrintSupport/)?qprinterinfo\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtPrintSupport/)?qprintpreviewdialog\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtPrintSupport/)?qprintpreviewwidget\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtPrintSupport/)?qtprintsupportversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQml/)?qjsengine\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQml/)?qjsvalue\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQml/)?qjsvalueiterator\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQml/)?qqmlabstracturlinterceptor\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQml/)?qqmlapplicationengine\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQml/)?qqmlcomponent\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQml/)?qqmlcontext\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQml/)?qqmlengine\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQml/)?qqmlerror\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQml/)?qqmlexpression\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQml/)?qqmlextensioninterface\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQml/)?qqmlextensionplugin\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQml/)?qqmlfile\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQml/)?qqmlfileselector\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQml/)?qqmlincubator\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQml/)?qqmlinfo\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQml/)?qqmlnetworkaccessmanagerfactory\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQml/)?qqmlparserstatus\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQml/)?qqmlproperty\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQml/)?qqmlpropertymap\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQml/)?qqmlpropertyvaluesource\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQml/)?qqmlscriptstring\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQml/)?qtqmlversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQuick/)?qquickframebufferobject\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQuick/)?qquickimageprovider\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQuick/)?qquickitem\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQuick/)?qquickitemgrabresult\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQuick/)?qquickpainteditem\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQuick/)?qquickrendercontrol\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQuick/)?qquicktextdocument\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQuick/)?qquickview\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQuick/)?qquickwindow\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQuick/)?qsgabstractrenderer\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQuick/)?qsgengine\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQuick/)?qsgflatcolormaterial\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQuick/)?qsggeometry\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQuick/)?qsgmaterial\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQuick/)?qsgnode\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQuick/)?qsgsimplematerial\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQuick/)?qsgsimplerectnode\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQuick/)?qsgsimpletexturenode\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQuick/)?qsgtexture\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQuick/)?qsgtexturematerial\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQuick/)?qsgtextureprovider\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQuick/)?qsgvertexcolormaterial\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQuick/)?qtquickversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQuickParticles/)?qtquickparticlesversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQuickTest/)?qtquicktestversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQuickWidgets/)?qquickwidget\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtQuickWidgets/)?qtquickwidgetsversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtScript/)?qscriptable\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtScript/)?qscriptclass\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtScript/)?qscriptclasspropertyiterator\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtScript/)?qscriptcontext\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtScript/)?qscriptcontextinfo\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtScript/)?qscriptengine\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtScript/)?qscriptengineagent\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtScript/)?qscriptextensioninterface\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtScript/)?qscriptextensionplugin\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtScript/)?qscriptprogram\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtScript/)?qscriptstring\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtScript/)?qscriptvalue\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtScript/)?qscriptvalueiterator\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtScript/)?qtscriptversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtScriptTools/)?qscriptenginedebugger\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtScriptTools/)?qtscripttoolsversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSensors/)?qaccelerometer\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSensors/)?qaltimeter\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSensors/)?qambientlightsensor\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSensors/)?qambienttemperaturesensor\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSensors/)?qcompass\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSensors/)?qdistancesensor\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSensors/)?qgyroscope\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSensors/)?qholstersensor\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSensors/)?qirproximitysensor\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSensors/)?qlightsensor\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSensors/)?qmagnetometer\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSensors/)?qorientationsensor\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSensors/)?qpressuresensor\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSensors/)?qproximitysensor\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSensors/)?qrotationsensor\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSensors/)?qsensor\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSensors/)?qsensorbackend\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSensors/)?qsensorgesture\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSensors/)?qsensorgesturemanager\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSensors/)?qsensorgestureplugininterface\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSensors/)?qsensorgesturerecognizer\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSensors/)?qsensormanager\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSensors/)?qtapsensor\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSensors/)?qtiltsensor\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSensors/)?qtsensorsversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSerialPort/)?qlockfile\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSerialPort/)?qserialport\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSerialPort/)?qserialportinfo\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSerialPort/)?qtserialportversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSerialPort/)?qwineventnotifier\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSql/)?qsql\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSql/)?qsqldatabase\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSql/)?qsqldriver\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSql/)?qsqldriverplugin\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSql/)?qsqlerror\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSql/)?qsqlfield\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSql/)?qsqlindex\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSql/)?qsqlquery\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSql/)?qsqlquerymodel\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSql/)?qsqlrecord\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSql/)?qsqlrelationaldelegate\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSql/)?qsqlrelationaltablemodel\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSql/)?qsqlresult\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSql/)?qsqltablemodel\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSql/)?qtsqlversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSvg/)?qgraphicssvgitem\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSvg/)?qsvggenerator\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSvg/)?qsvgrenderer\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSvg/)?qsvgwidget\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtSvg/)?qtsvgversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtTest/)?qsignalspy\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtTest/)?qtest\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtTest/)?qtestdata\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtTest/)?qtestevent\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtTest/)?qtesteventloop\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtTest/)?qttestversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtUiTools/)?qtuitoolsversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtUiTools/)?quiloader\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWebChannel/)?qqmlwebchannel\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWebChannel/)?qtwebchannelversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWebChannel/)?qwebchannel\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWebChannel/)?qwebchannelabstracttransport\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWebKit/)?qtwebkitversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWebKit/)?qwebdatabase\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWebKit/)?qwebelement\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWebKit/)?qwebhistory\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWebKit/)?qwebhistoryinterface\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWebKit/)?qwebkitplatformplugin\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWebKit/)?qwebpluginfactory\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWebKit/)?qwebsecurityorigin\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWebKit/)?qwebsettings\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWebKitWidgets/)?qgraphicswebview\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWebKitWidgets/)?qtwebkitwidgetsversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWebKitWidgets/)?qwebframe\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWebKitWidgets/)?qwebinspector\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWebKitWidgets/)?qwebpage\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWebKitWidgets/)?qwebview\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWebSockets/)?qmaskgenerator\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWebSockets/)?qtwebsocketsversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWebSockets/)?qwebsocket\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWebSockets/)?qwebsocketcorsauthenticator\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWebSockets/)?qwebsocketserver\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qabstractbutton\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qabstractitemdelegate\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qabstractitemview\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qabstractscrollarea\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qabstractslider\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qabstractspinbox\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qaccessiblemenu\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qaccessiblewidget\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qaction\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qactiongroup\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qapplication\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qboxlayout\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qbuttongroup\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qcalendarwidget\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qcheckbox\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qcolordialog\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qcolormap\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qcolumnview\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qcombobox\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qcommandlinkbutton\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qcommonstyle\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qcompleter\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qdatawidgetmapper\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qdatetimeedit\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qdesktopwidget\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qdial\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qdialog\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qdialogbuttonbox\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qdirmodel\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qdockwidget\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qerrormessage\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qfiledialog\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qfileiconprovider\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qfilesystemmodel\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qfocusframe\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qfontcombobox\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qfontdialog\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qformlayout\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qframe\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qgesture\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qgesturerecognizer\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qgraphicsanchorlayout\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qgraphicseffect\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qgraphicsgridlayout\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qgraphicsitem\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qgraphicsitemanimation\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qgraphicslayout\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qgraphicslayoutitem\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qgraphicslinearlayout\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qgraphicsproxywidget\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qgraphicsscene\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qgraphicssceneevent\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qgraphicstransform\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qgraphicsview\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qgraphicswidget\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qgridlayout\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qgroupbox\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qheaderview\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qinputdialog\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qitemdelegate\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qitemeditorfactory\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qkeyeventtransition\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qkeysequenceedit\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qlabel\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qlayout\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qlayoutitem\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qlcdnumber\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qlineedit\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qlistview\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qlistwidget\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qmainwindow\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qmdiarea\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qmdisubwindow\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qmenu\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qmenubar\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qmessagebox\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qmouseeventtransition\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qopenglwidget\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qplaintextedit\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qprogressbar\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qprogressdialog\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qproxystyle\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qpushbutton\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qradiobutton\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qrubberband\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qscrollarea\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qscrollbar\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qscroller\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qscrollerproperties\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qshortcut\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qsizegrip\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qsizepolicy\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qslider\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qspinbox\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qsplashscreen\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qsplitter\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qstackedlayout\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qstackedwidget\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qstatusbar\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qstyle\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qstyleditemdelegate\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qstylefactory\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qstyleoption\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qstylepainter\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qstyleplugin\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qsystemtrayicon\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qtabbar\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qtableview\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qtablewidget\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qtabwidget\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qtextbrowser\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qtextedit\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qtoolbar\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qtoolbox\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qtoolbutton\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qtooltip\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qtreeview\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qtreewidget\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qtreewidgetitemiterator\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qtwidgetsversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qundogroup\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qundostack\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qundoview\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qwhatsthis\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qwidget\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qwidgetaction\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWidgets/)?qwizard\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWinExtras/)?qtwinextrasversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWinExtras/)?qwinevent\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWinExtras/)?qwinjumplist\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWinExtras/)?qwinjumplistcategory\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWinExtras/)?qwinjumplistitem\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWinExtras/)?qwinmime\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWinExtras/)?qwintaskbarbutton\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWinExtras/)?qwintaskbarprogress\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWinExtras/)?qwinthumbnailtoolbar\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtWinExtras/)?qwinthumbnailtoolbutton\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtXml/)?qtxmlversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtXmlPatterns/)?qabstractmessagehandler\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtXmlPatterns/)?qabstracturiresolver\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtXmlPatterns/)?qabstractxmlnodemodel\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtXmlPatterns/)?qabstractxmlreceiver\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtXmlPatterns/)?qsimplexmlnodemodel\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtXmlPatterns/)?qsourcelocation\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtXmlPatterns/)?qtxmlpatternsversion\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtXmlPatterns/)?qxmlformatter\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtXmlPatterns/)?qxmlname\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtXmlPatterns/)?qxmlnamepool\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtXmlPatterns/)?qxmlquery\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtXmlPatterns/)?qxmlresultitems\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtXmlPatterns/)?qxmlschema\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtXmlPatterns/)?qxmlschemavalidator\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtXmlPatterns/)?qxmlserializer\\.h\"", "private", "", "public" ] }, - -# And lastly, things stored in difficult places - { include: [ "@\"(QtCore/)?qobjectdefs\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qglobal\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qnamespace\\.h\"", "private", "", "public" ] }, - { include: [ "@\"(QtCore/)?qlogging\\.h\"", "private", "", "public" ] }, #qDebug, qWarning, etc - { include: [ "@\"(QtCore/)?qalgorithms\\.h\"", "private", "", "public" ] }, #qSort, etc - { include: [ "@\"(QtWinExtras/)?qwinfunctions\\.h\"", "private", "", "public" ] }, # for fromHICON - -# These ones are just madness. For instance, why with the above do we get -# #include "QtCore/qcoreevent.h" // for QEvent (ptr only), etc - { include: [ "@\"(QtCore/)?qcoreevent\\.h\"", "private", "", "public" ] }, - -# These ones seem spurious -#include "QtCore/qtypetraits.h" // for remove_reference<>::type -#include "QtCore/qsharedpointer_impl.h" // for swap -#include "QtCore/qatomic_msvc.h" - -] diff --git a/scons_configure_template.py b/scons_configure_template.py deleted file mode 100644 index 67a8fad6b..000000000 --- a/scons_configure_template.py +++ /dev/null @@ -1,33 +0,0 @@ -# This python script contains the configuration for scons -# Copy this to scons_configure.py and adjust to taste. - -# Path to your boost install - it should have a boost/ subdirectory and a stage/ -# subdirectory. The scons script will use stage/lib if there, or the appropriate -# version for your compiler, if you installed the multiple-build version -BOOSTPATH = r"C:\Apps\boost_1_55_0" - -# Version of Visual Studio to use, if you wish to use a specific version. If you -# don't specify a version, the latest will be picked.. See the scons manual for -# supported values. -#MSVC_VERSION = '10.0Exp' - -# Path to your python install -# You don't really need to set this up but you might if (say) you have a 32- and -# 64-bit python install and scons has been installed for the 64 bit version -#PYTHONPATH=r"C:\Apps\Python" - -# Path to your QT install. This might constrain the version of MSVC you can use. -# This seems to be set by QTCreator -#QTDIR = r"C:\Apps\Qt\4.8.6" - -# Path to 7-zip sources -SEVENZIPPATH = r"C:\Apps\7-Zip\7z920" - -# Path to zlib. Please read the README file for more information about how this -# needs to be set up -ZLIBPATH = r"C:\Apps\zlib-1.2.8" - -# Source control programs. Sadly I can't get this information from qt, even -# though you have to set it up in the configuration -GIT = r"C:\Program Files\git\bin\git.exe" -MERCURIAL = r"C:\Program Files\TortoiseHg\hg.exe" diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 7188c03b8..10e71e6b4 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,36 +1,106 @@ cmake_minimum_required(VERSION 3.16) +find_package(mo2-cmake CONFIG REQUIRED) + +find_package(usvfs CONFIG REQUIRED) + +find_package(mo2-uibase CONFIG REQUIRED) +find_package(mo2-archive CONFIG REQUIRED) +find_package(mo2-lootcli-header CONFIG REQUIRED) +find_package(mo2-bsatk CONFIG REQUIRED) +find_package(mo2-esptk CONFIG REQUIRED) +find_package(mo2-dds-header CONFIG REQUIRED) +find_package(mo2-libbsarch CONFIG REQUIRED) + +find_package(Qt6 REQUIRED COMPONENTS WebEngineWidgets WebSockets) +find_package(Boost CONFIG REQUIRED COMPONENTS program_options thread interprocess signals2 uuid accumulators) +find_package(7zip CONFIG REQUIRED) +find_package(lz4 CONFIG REQUIRED) +find_package(ZLIB REQUIRED) + add_executable(organizer) -set_target_properties(organizer PROPERTIES OUTPUT_NAME "ModOrganizer") -mo2_configure_executable(organizer - WARNINGS OFF - EXTRA_TRANSLATIONS ${MO2_SUPER_PATH}/game_gamebryo/src ${MO2_UIBASE_PATH}/src - PRIVATE_DEPENDS - uibase githubpp bsatk esptk archive usvfs lootcli boost::program_options - DirectXTex libbsarch Qt::WebEngineWidgets Qt::WebSockets) -target_link_libraries(organizer PUBLIC Shlwapi) -target_include_directories(organizer PUBLIC ${DDS_ROOT}) -mo2_install_target(organizer) +set_target_properties(organizer PROPERTIES + OUTPUT_NAME "ModOrganizer" + WIN32_EXECUTABLE TRUE) + +# disable translations because we want to be able to install somewhere else if +# required +mo2_configure_target(organizer WARNINGS 4 TRANSLATIONS OFF) + +# we add translations "manually" to handle MO2_INSTALL_IS_BIN +mo2_add_translations(organizer + INSTALL_RELEASE + INSTALL_DIRECTORY "${_bin}/translations" + SOURCES ${CMAKE_CURRENT_SOURCE_DIR}) + +mo2_set_project_to_run_from_install( + organizer EXECUTABLE ${CMAKE_INSTALL_PREFIX}/${_bin}/ModOrganizer.exe) + +target_link_libraries(organizer PRIVATE + Shlwapi Bcrypt + usvfs::usvfs mo2::uibase mo2::archive mo2::libbsarch + mo2::bsatk mo2::esptk mo2::lootcli-header + Boost::program_options Boost::signals2 Boost::uuid Boost::accumulators + Qt6::WebEngineWidgets Qt6::WebSockets Version Dbghelp) install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/dlls.manifest.qt6" - DESTINATION bin/dlls + DESTINATION ${_bin}/dlls CONFIGURATIONS Release RelWithDebInfo RENAME dlls.manifest) install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/dlls.manifest.debug.qt6" - DESTINATION bin/dlls + DESTINATION ${_bin}/dlls CONFIGURATIONS Debug RENAME dlls.manifest) -install(DIRECTORY - "${CMAKE_CURRENT_SOURCE_DIR}/stylesheets" - "${CMAKE_CURRENT_SOURCE_DIR}/tutorials" - DESTINATION bin) +if (NOT MO2_SKIP_STYLESHEETS_INSTALL) + install( + DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/stylesheets" + DESTINATION ${_bin}) +endif() + +if (NOT MO2_SKIP_TUTORIALS_INSTALL) + install( + DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/tutorials" + DESTINATION ${_bin}) +endif() install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/resources/markdown.html" - DESTINATION bin/resources) + DESTINATION ${_bin}/resources) + +# install ModOrganizer.exe itself +install(FILES $ DESTINATION ${_bin}) + +# install dependencies DLLs +install(FILES $ DESTINATION ${_bin}/dlls) +install(FILES $ DESTINATION ${_bin}/dlls) +install(FILES $ DESTINATION ${_bin}/dlls) + +# this may copy over the ones from uibase/usvfs +# - when building with mob, this should not matter as the files should be identical +# - when building standalone, this should help having matching USVFS DLL between the +# build and the installation +# - this may cause issue with uibase in standalone mode if the installed version does +# not match the one used for the build, but there would be other issue anyway (e.g. +# different uibase.dll between modorganizer and plugins) +# +install(FILES + $ + $ + $ + $ + $ +DESTINATION ${_bin}) + +# do not install PDB if CMAKE_INSTALL_PREFIX is "bin" +if (NOT MO2_INSTALL_IS_BIN) + install(FILES $ DESTINATION pdb) +endif() -mo2_deploy_qt(BINARIES ModOrganizer.exe uibase.dll plugins/bsa_packer.dll) +mo2_deploy_qt( + DIRECTORY ${_bin} + BINARIES ModOrganizer.exe $) +# set source groups for VS mo2_add_filter(NAME src/application GROUPS iuserinterface commandline @@ -49,14 +119,15 @@ mo2_add_filter(NAME src/browser GROUPS ) mo2_add_filter(NAME src/categories GROUPS - categories + categories categoriestable - categoriesdialog + categoriesdialog categoryimportdialog ) mo2_add_filter(NAME src/core GROUPS archivefiletree + githubpp installationmanager nexusinterface nxmaccessmanager diff --git a/src/ModOrganizer.pro b/src/ModOrganizer.pro deleted file mode 100644 index c4fd534eb..000000000 --- a/src/ModOrganizer.pro +++ /dev/null @@ -1,60 +0,0 @@ -TEMPLATE = subdirs - -SUBDIRS = bsatk \ - shared \ - uibase \ - esptk \ - organizer \ - hookdll \ - archive \ - helper \ - plugins \ - nxmhandler \ - BossDummy \ - pythonRunner \ - loot_cli - -pythonRunner.depends = uibase -plugins.depends = pythonRunner uibase -hookdll.depends = shared -organizer.depends = shared uibase plugins - -CONFIG(debug, debug|release) { - DESTDIR = $$PWD/../outputd -} else { - DESTDIR = $$PWD/../output -} - -STATICDATAPATH = $${DESTDIR}\\..\\tools\\static_data\\dlls -DLLSPATH = $${DESTDIR}\\dlls - -otherlibs.path = $$DLLSPATH -otherlibs.files += $${STATICDATAPATH}\\7z.dll \ - $${BOOSTPATH}\\stage\\lib\\boost_python-vc*-mt-1*.dll - -qtlibs.path = $$DLLSPATH - -greaterThan(QT_MAJOR_VERSION, 4) { - QTLIBNAMES += Core Gui Network OpenGL Script Sql Svg Qml Quick Webkit Widgets Xml XmlPatterns -} else { - QTLIBNAMES += Core Declarative Gui Network OpenGL Script Sql Svg Webkit Xml XmlPatterns -} - -greaterThan(QT_MAJOR_VERSION, 5) { - QTLIBNAMES += OpenGLWidgets -} - -QTLIBSUFFIX = $${QT_MAJOR_VERSION}.dll -CONFIG(debug, debug|release): QTLIBSUFFIX = "d$${QTLIBSUFFIX}" # Can't use Debug: .. here, it ignores the line - no idea why, as it works in BossDummy.pro - -for(QTNAME, QTLIBNAMES) { - QTFILE = Qt$${QTNAME} - qtlibs.files += $$[QT_INSTALL_BINS]\\$${QTFILE}$${QTLIBSUFFIX} -} - -INSTALLS += qtlibs otherlibs - -OTHER_FILES +=\ - ../SConstruct\ - ../scons_configure.py\ - SConscript diff --git a/src/SConscript b/src/SConscript deleted file mode 100644 index 6de7cb62a..000000000 --- a/src/SConscript +++ /dev/null @@ -1,179 +0,0 @@ -import ctypes -import os -import subprocess - -def resolve_name(source): - # Get the actual name of the file, after reparse points and symlinks are - # taken into account. - GENERIC_READ = 0x80000000 - FILE_SHARE_READ = 0x1 - OPEN_EXISTING = 0x3 - FILE_FLAG_BACKUP_SEMANTICS = 0x02000000 - handle = ctypes.windll.kernel32.CreateFileA(source, - GENERIC_READ, - FILE_SHARE_READ, - None, - OPEN_EXISTING, - FILE_FLAG_BACKUP_SEMANTICS, - None) - # get the target - FILE_NAME_NORMALIZED = 0x0 - FILE_NAME_OPENED = 0x8 - buff = ctypes.create_string_buffer(1024) - res = ctypes.windll.kernel32.GetFinalPathNameByHandleA(handle, - buff, - ctypes.sizeof(buff), - FILE_NAME_NORMALIZED) - target = buff.value - ctypes.windll.kernel32.CloseHandle(handle) - return target - -def search_up(path, target): - while True: - if os.path.exists(os.path.join(path, target)): - return True - npath = os.path.dirname(path) - if npath == path: - break - path = npath - return False - -Import('qt_env') - -env = qt_env.Clone() - -modules = [ - 'Core', - 'Gui', - 'Network', - 'Script', - 'Sql', - 'WebKit', - 'Xml', - 'XmlPatterns', - 'Declarative' -] - -if env['QT_MAJOR_VERSION'] > 4: - modules += [ - 'Widgets', - 'Qml', - 'WebKitWidgets' - ] - -env.EnableQtModules(*modules) - -env.Uic(env.Glob('*.ui')) - -env.RequireLibraries('uibase', 'shared', 'bsatk', 'esptk') - -env.AppendUnique(LIBS = [ - 'shell32', - 'user32', - 'ole32', - 'advapi32', - 'gdi32', - 'shlwapi', - 'Psapi', - 'Version' -]) - -# We have to 'persuade' moc to generate certain other targets and inject them -# into the list of cpps -other_sources = env.AddExtraMoc(env.Glob('*.h')) - -for file in env.Glob('*.rc'): - other_sources.append(env.RES(file)) - -# Note the order of this is important, or you can pick up the wrong report.h... -# Doing appendunique seems to throw the moc code into a tizzy -env['CPPPATH'] += [ - '../archive', - '../plugins/gamefeatures', - '.', # Why is this necessary? - '${LOOTPATH}', - '${BOOSTPATH}', -] - -#########################FUDGE############################### -env['CPPPATH'] += [ - '../plugins/gameGamebryo', - ] -############################################################# - -env.AppendUnique(CPPDEFINES = [ - '_UNICODE', - '_CRT_SECURE_NO_WARNINGS', - '_SCL_SECURE_NO_WARNINGS', - 'BOOST_DISABLE_ASSERTS', - 'NDEBUG', - 'QT_MESSAGELOGCONTEXT' -]) - -# Boost produces very long names with msvc truncates. Doesn't seem to cause -# problems. -# Also note to remove the -wd4100 I hacked the boost headers (tagged_argument.hpp) -# appropriately. -env.AppendUnique(CPPFLAGS = [ '-wd4503' ]) - -env.AppendUnique(LINKFLAGS = [ - '/SUBSYSTEM:WINDOWS', - '${EXE_MANIFEST_DEPENDENCY}' -]) - -# modeltest is optional and it doesn't compile anyway... -cpp_files = [ - x for x in env.Glob('*.cpp', source = True) - if x.name != 'modeltest.cpp' and x.name != 'aboutdialog.cpp' and \ - not x.name.startswith('moc_') # I think this is a strange bug -] - -about_env = env.Clone() -# This is somewhat of a hack until I can work out a way of setting up a build -# with all the repos without using millions of junction points -try: - target = resolve_name(Dir('.').srcnode().abspath) - if search_up(target, '.hg'): - hgid = subprocess.check_output([env['MERCURIAL'], 'id', '-i']).rstrip() - elif search_up(target, '.git'): - hgid = subprocess.check_output([env['GIT'], '-C', target, 'describe', - '--tag']).rstrip() - else: - hgid = "Unknown" -except: - hgid = "Problem determining version" - -# FIXME: It'd be much easier to stringify this in the source code -about_env.AppendUnique(CPPDEFINES = [ 'HGID=\\"%s\\"' % hgid ]) -other_sources.append(about_env.StaticObject('aboutdialog.cpp')) - -env.AppendUnique(LIBPATH = "${ZLIBPATH}/build") -env.AppendUnique(LIBS = 'zlibstatic') - -prog = env.Program('ModOrganizer', - cpp_files + env.Glob('*.qrc') + other_sources) - -env.InstallModule(prog) - -for subdir in ('tutorials', 'stylesheets'): - env.Install(os.path.join(env['INSTALL_PATH'], subdir), - env.Glob(os.path.join(subdir, '*'))) - -# FIXME Sort the translations. Except they don't exist on the 1.2 branch - -res = env['QT_USED_MODULES'] -Return('res') - -""" -CONFIG(debug, debug|release) { -} else { - QMAKE_CXXFLAGS += /Zi /GL - QMAKE_LFLAGS += /DEBUG /LTCG /OPT:REF /OPT:ICF -} - -TRANSLATIONS = organizer_en.ts - - -QMAKE_POST_LINK += xcopy /y /s /I $$quote($$BASEDIR\\*.qm) $$quote($$DSTDIR)\\translations $$escape_expand(\\n) - -""" diff --git a/src/archivefiletree.h b/src/archivefiletree.h index 3b95769d0..89ef5be0b 100644 --- a/src/archivefiletree.h +++ b/src/archivefiletree.h @@ -20,8 +20,8 @@ along with Mod Organizer. If not, see . #ifndef ARCHIVEFILENETRY_H #define ARCHIVEFILENTRY_H -#include "archive.h" -#include "ifiletree.h" +#include +#include /** * diff --git a/src/env.cpp b/src/env.cpp index 9e67ef884..5dab489ed 100644 --- a/src/env.cpp +++ b/src/env.cpp @@ -1081,7 +1081,7 @@ std::wstring safeVersion() { try { // this can throw - return MOShared::createVersionInfo().displayString(3).toStdWString() + L"-"; + return MOShared::createVersionInfo().string().toStdWString() + L"-"; } catch (...) { return {}; } diff --git a/src/github.cpp b/src/github.cpp new file mode 100644 index 000000000..1c91cface --- /dev/null +++ b/src/github.cpp @@ -0,0 +1,204 @@ +#include "github.h" +#include +#include +#include + +#include +#include + +static const QString GITHUB_URL("https://api.github.com"); +static const QString USER_AGENT("GitHubPP"); + +GitHub::GitHub(const char* clientId) : m_AccessManager(new QNetworkAccessManager(this)) +{} + +GitHub::~GitHub() +{ + // delete all the replies since they depend on the access manager, which is + // about to be deleted + for (auto* reply : m_replies) { + reply->disconnect(); + delete reply; + } +} + +QJsonArray GitHub::releases(const Repository& repo) +{ + QJsonDocument result = request( + Method::GET, QString("repos/%1/%2/releases").arg(repo.owner, repo.project), + QByteArray(), true); + return result.array(); +} + +void GitHub::releases(const Repository& repo, + const std::function& callback) +{ + request( + Method::GET, QString("repos/%1/%2/releases").arg(repo.owner, repo.project), + QByteArray(), + [callback](const QJsonDocument& result) { + callback(result.array()); + }, + true); +} + +QJsonDocument GitHub::handleReply(QNetworkReply* reply) +{ + int statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); + if (statusCode != 200) { + return QJsonDocument(QJsonObject( + {{"http_status", statusCode}, + {"redirection", + reply->attribute(QNetworkRequest::RedirectionTargetAttribute).toString()}, + {"reason", + reply->attribute(QNetworkRequest::HttpReasonPhraseAttribute).toString()}})); + } + + QByteArray data = reply->readAll(); + if (data.isNull() || data.isEmpty() || (strcmp(data.constData(), "null") == 0)) { + return QJsonDocument(); + } + + QJsonParseError parseError; + QJsonDocument result = QJsonDocument::fromJson(data, &parseError); + + if (parseError.error != QJsonParseError::NoError) { + return QJsonDocument(QJsonObject({{"parse_error", parseError.errorString()}})); + } + + return result; +} + +QNetworkReply* GitHub::genReply(Method method, const QString& path, + const QByteArray& data, bool relative) +{ + QNetworkRequest request(relative ? GITHUB_URL + "/" + path : path); + + request.setHeader(QNetworkRequest::UserAgentHeader, USER_AGENT); + request.setRawHeader("Accept", "application/vnd.github.v3+json"); + + switch (method) { + case Method::GET: + return m_AccessManager->get(request); + case Method::POST: + return m_AccessManager->post(request, data); + default: + // this shouldn't be possible as all enum options are handled + throw std::runtime_error("invalid method"); + } +} + +QJsonDocument GitHub::request(Method method, const QString& path, + const QByteArray& data, bool relative) +{ + QEventLoop wait; + QNetworkReply* reply = genReply(method, path, data, relative); + + connect(reply, SIGNAL(finished), &wait, SLOT(quit())); + wait.exec(); + QJsonDocument result = handleReply(reply); + reply->deleteLater(); + + QJsonObject object = result.object(); + if (object.value("http_status").toDouble() == 301.0) { + return request(method, object.value("redirection").toString(), data, false); + } else { + return result; + } +} + +void GitHub::request(Method method, const QString& path, const QByteArray& data, + const std::function& callback, + bool relative) +{ + // make sure the timer is owned by this so it's deleted correctly and + // doesn't fire after the GitHub object is destroyed; this happens when + // restarting MO by switching instances, for example + QTimer* timer = new QTimer(this); + timer->setSingleShot(true); + timer->setInterval(10000); + + QNetworkReply* reply = genReply(method, path, data, relative); + + // remember this reply so it can be deleted in the destructor if necessary + m_replies.push_back(reply); + + Request req = {method, data, callback, timer, reply}; + + // finished + connect(reply, &QNetworkReply::finished, [this, req] { + onFinished(req); + }); + + // error + connect(reply, qOverload(&QNetworkReply::errorOccurred), + [this, req](auto&& error) { + onError(req, error); + }); + + // timeout + connect(timer, &QTimer::timeout, [this, req] { + onTimeout(req); + }); + + timer->start(); +} + +void GitHub::onFinished(const Request& req) +{ + QJsonDocument result = handleReply(req.reply); + QJsonObject object = result.object(); + + req.timer->stop(); + + if (object.value("http_status").toInt() == 301) { + request(req.method, object.value("redirection").toString(), req.data, req.callback, + false); + } else { + req.callback(result); + } + + deleteReply(req.reply); +} + +void GitHub::onError(const Request& req, QNetworkReply::NetworkError error) +{ + // the only way the request can be aborted is when there's a timeout, which + // already logs a message + if (error != QNetworkReply::OperationCanceledError) { + qCritical().noquote().nospace() + << "Github: request for " << req.reply->url().toString() << " failed, " + << req.reply->errorString() << " (" << error << ")"; + } + + req.timer->stop(); + req.reply->disconnect(); + + QJsonObject root({{"network_error", req.reply->errorString()}}); + QJsonDocument doc(root); + + req.callback(doc); + + deleteReply(req.reply); +} + +void GitHub::onTimeout(const Request& req) +{ + qCritical().noquote().nospace() + << "Github: request for " << req.reply->url().toString() << " timed out"; + + // don't delete the reply, abort will fire the error() handler above + req.reply->abort(); +} + +void GitHub::deleteReply(QNetworkReply* reply) +{ + // remove from the list + auto itor = std::find(m_replies.begin(), m_replies.end(), reply); + if (itor != m_replies.end()) { + m_replies.erase(itor); + } + + // delete + reply->deleteLater(); +} diff --git a/src/github.h b/src/github.h new file mode 100644 index 000000000..0085fd5ac --- /dev/null +++ b/src/github.h @@ -0,0 +1,108 @@ +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include + +class GitHubException : public std::exception +{ +public: + GitHubException(const QJsonObject& errorObj) : std::exception() + { + initMessage(errorObj); + } + + virtual ~GitHubException() throw() override {} + + virtual const char* what() const throw() { return m_Message.constData(); } + +private: + void initMessage(const QJsonObject& obj) + { + if (obj.contains("http_status")) { + m_Message = QString("HTTP Status %1: %2") + .arg(obj.value("http_status").toInt()) + .arg(obj.value("reason").toString()) + .toUtf8(); + } else if (obj.contains("parse_error")) { + m_Message = QString("Parsing failed: %1") + .arg(obj.value("parse_error").toString()) + .toUtf8(); + } else if (obj.contains("network_error")) { + m_Message = QString("Network failed: %1") + .arg(obj.value("network_error").toString()) + .toUtf8(); + } else { + m_Message = "Unknown error"; + } + } + + QByteArray m_Message; +}; + +class GitHub : public QObject +{ + + Q_OBJECT + +public: + enum class Method + { + GET, + POST + }; + + struct Repository + { + Repository(const QString& owner, const QString& project) + : owner(owner), project(project) + {} + QString owner; + QString project; + }; + +public: + GitHub(const char* clientId = nullptr); + ~GitHub(); + + QJsonArray releases(const Repository& repo); + void releases(const Repository& repo, + const std::function& callback); + +private: + QJsonDocument request(Method method, const QString& path, const QByteArray& data, + bool relative); + void request(Method method, const QString& path, const QByteArray& data, + const std::function& callback, + bool relative); + + QJsonDocument handleReply(QNetworkReply* reply); + QNetworkReply* genReply(Method method, const QString& path, const QByteArray& data, + bool relative); + +private: + struct Request + { + Method method = Method::GET; + QByteArray data; + std::function callback; + QTimer* timer = nullptr; + QNetworkReply* reply = nullptr; + }; + + QNetworkAccessManager* m_AccessManager; + + // remember the replies that are in flight and delete them in the destructor + std::vector m_replies; + + void onFinished(const Request& req); + void onError(const Request& req, QNetworkReply::NetworkError error); + void onTimeout(const Request& req); + + void deleteReply(QNetworkReply* reply); +}; diff --git a/src/installationmanager.h b/src/installationmanager.h index e8e975152..e125bbe94 100644 --- a/src/installationmanager.h +++ b/src/installationmanager.h @@ -20,17 +20,17 @@ along with Mod Organizer. If not, see . #ifndef INSTALLATIONMANAGER_H #define INSTALLATIONMANAGER_H -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include #include #define WIN32_LEAN_AND_MEAN #include #include -#include -#include #include #include diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index f346a3e44..20a849f49 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -60,8 +60,6 @@ along with Mod Organizer. If not, see . #include "problemsdialog.h" #include "profile.h" #include "profilesdialog.h" -#include "report.h" -#include "savegameinfo.h" #include "savestab.h" #include "selectiondialog.h" #include "serverinfo.h" @@ -69,15 +67,17 @@ along with Mod Organizer. If not, see . #include "shared/appconfig.h" #include "spawn.h" #include "statusbar.h" -#include "tutorialmanager.h" -#include "versioninfo.h" #include #include #include #include #include -#include -#include +#include +#include +#include +#include +#include +#include #include "directoryrefresher.h" #include "shared/directoryentry.h" @@ -639,9 +639,10 @@ MainWindow::~MainWindow() void MainWindow::updateWindowTitle(const APIUserAccount& user) { //"\xe2\x80\x93" is an "em dash", a longer "-" - QString title = QString("%1 \xe2\x80\x93 Mod Organizer v%2") - .arg(m_OrganizerCore.managedGame()->displayGameName(), - m_OrganizerCore.getVersion().displayString(3)); + QString title = + QString("%1 \xe2\x80\x93 Mod Organizer v%2") + .arg(m_OrganizerCore.managedGame()->displayGameName(), + m_OrganizerCore.getVersion().string(Version::FormatCondensed)); if (!user.name().isEmpty()) { const QString premium = (user.type() == APIUserAccountTypes::Premium ? "*" : ""); @@ -1039,7 +1040,8 @@ void MainWindow::checkForProblemsImpl() void MainWindow::about() { - AboutDialog(m_OrganizerCore.getVersion().displayString(3), this).exec(); + AboutDialog(m_OrganizerCore.getVersion().string(Version::FormatCondensed), this) + .exec(); } void MainWindow::createEndorseMenu() @@ -2163,8 +2165,9 @@ void MainWindow::processUpdates() auto& settings = m_OrganizerCore.settings(); const auto earliest = QVersionNumber::fromString("2.1.2").normalized(); - const auto lastVersion = settings.version().value_or(earliest); - const auto currentVersion = m_OrganizerCore.getVersion().asQVersionNumber(); + const auto lastVersion = settings.version().value_or(earliest); + const auto currentVersion = + QVersionNumber::fromString(m_OrganizerCore.getVersion().string()).normalized(); m_LastVersion = lastVersion; @@ -2884,6 +2887,12 @@ void MainWindow::languageChange(const QString& newLanguage) installTranslator("qt"); installTranslator("qtbase"); installTranslator(ToQString(AppConfig::translationPrefix())); + installTranslator("uibase"); + + // TODO: this will probably be changed once extension come out + installTranslator("game_gamebryo"); + installTranslator("game_creation"); + for (const QString& fileName : m_PluginContainer.pluginFileNames()) { installTranslator(QFileInfo(fileName).baseName()); } @@ -2961,8 +2970,7 @@ void MainWindow::actionEndorseMO() QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes) { NexusInterface::instance().requestToggleEndorsement( game->gameShortName(), game->nexusModOrganizerID(), - m_OrganizerCore.getVersion().canonicalString(), true, this, QVariant(), - QString()); + m_OrganizerCore.getVersion().string(), true, this, QVariant(), QString()); } } @@ -2983,8 +2991,7 @@ void MainWindow::actionWontEndorseMO() QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes) { NexusInterface::instance().requestToggleEndorsement( game->gameShortName(), game->nexusModOrganizerID(), - m_OrganizerCore.getVersion().canonicalString(), false, this, QVariant(), - QString()); + m_OrganizerCore.getVersion().string(), false, this, QVariant(), QString()); } } diff --git a/src/mainwindow.h b/src/mainwindow.h index 42d3d5e7d..b3f4233aa 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -20,19 +20,20 @@ along with Mod Organizer. If not, see . #ifndef MAINWINDOW_H #define MAINWINDOW_H -#include "bsafolder.h" +#include +#include +#include +#include +#include +#include + #include "delayedfilewriter.h" -#include "errorcodes.h" -#include "imoinfo.h" -#include "iplugingame.h" //namespace MOBase { class IPluginGame; } #include "iuserinterface.h" #include "modinfo.h" #include "modlistbypriorityproxy.h" #include "modlistsortproxy.h" -#include "plugincontainer.h" //class PluginContainer; +#include "plugincontainer.h" #include "shared/fileregisterfwd.h" -#include "tutorialcontrol.h" -#include class Executable; class CategoryFactory; diff --git a/src/moapplication.cpp b/src/moapplication.cpp index f06a85d1c..f621d32a9 100644 --- a/src/moapplication.cpp +++ b/src/moapplication.cpp @@ -203,8 +203,8 @@ int MOApplication::setup(MOMultiProcess& multiProcess, bool forceSelect) log::debug("command line: '{}'", QString::fromWCharArray(GetCommandLineW())); log::info("starting Mod Organizer version {} revision {} in {}, usvfs: {}", - createVersionInfo().displayString(3), GITID, - QCoreApplication::applicationDirPath(), MOShared::getUsvfsVersionString()); + createVersionInfo().string(), GITID, QCoreApplication::applicationDirPath(), + MOShared::getUsvfsVersionString()); if (multiProcess.secondary()) { log::debug("another instance of MO is running but --multiple was given"); diff --git a/src/modinfo.h b/src/modinfo.h index d9e87ae05..bbb1aae3c 100644 --- a/src/modinfo.h +++ b/src/modinfo.h @@ -732,7 +732,7 @@ class ModInfo : public QObject, public MOBase::IModInterface * * @note Currently, this changes the color of the cell under the "Notes" column. */ - virtual void setColor(QColor color) {} + virtual void setColor([[maybe_unused]] QColor color) {} /** * @brief Adds the information that a file has been installed into this mod. diff --git a/src/nexusinterface.cpp b/src/nexusinterface.cpp index 359b7e413..ecd33cb67 100644 --- a/src/nexusinterface.cpp +++ b/src/nexusinterface.cpp @@ -274,9 +274,8 @@ NexusInterface::NexusInterface(Settings* s) : m_PluginContainer(nullptr) g_instance = this; m_User.limits(defaultAPILimits()); - m_MOVersion = createVersionInfo(); - m_AccessManager = new NXMAccessManager(this, s, m_MOVersion.displayString(3)); + m_AccessManager = new NXMAccessManager(this, s, createVersionInfo().string()); m_DiskCache = new QNetworkDiskCache(this); diff --git a/src/nexusinterface.h b/src/nexusinterface.h index 5fab222f1..f6efef1d9 100644 --- a/src/nexusinterface.h +++ b/src/nexusinterface.h @@ -681,7 +681,6 @@ private slots: NXMAccessManager* m_AccessManager; std::list m_ActiveRequest; QQueue m_RequestQueue; - MOBase::VersionInfo m_MOVersion; PluginContainer* m_PluginContainer; APIUserAccount m_User; }; diff --git a/src/organizer_en.ts b/src/organizer_en.ts index 46169a5ad..5715889bd 100644 --- a/src/organizer_en.ts +++ b/src/organizer_en.ts @@ -2164,43 +2164,6 @@ Right now the only case I know of where this needs to be overwritten is for the - - FindDialog - - - Find - - - - - Find what: - - - - - - Search term - - - - - - Find next occurence from current file position. - - - - - &Find Next - - - - - - - Close - - - ForcedLoadDialog @@ -2280,139 +2243,6 @@ Right now the only case I know of where this needs to be overwritten is for the - - GamebryoModDataContent - - - Plugins (ESP/ESM/ESL) - - - - - Optional Plugins - - - - - Interface - - - - - Meshes - - - - - Bethesda Archive - - - - - Scripts (Papyrus) - - - - - Script Extender Plugin - - - - - Script Extender Files - - - - - SkyProc Patcher - - - - - Sound or Music - - - - - Textures - - - - - MCM Configuration - - - - - INI Files - - - - - FaceGen Data - - - - - ModGroup Files - - - - - GamebryoSaveGameInfoWidget - - - Save # - - - - - Character - - - - - Level - - - - - Location - - - - - Date - - - - - Has Script Extender Data - - - - - Missing ESPs - - - - - - - None - - - - - Missing ESHs - - - - - Missing ESLs - - - GeneralConflictsTab @@ -2936,100 +2766,6 @@ This is likely due to a corrupted or incompatible download or unrecognized archi - - MOBase::FilterWidget - - - Filter options - - - - - Use regular expressions - - - - - Use regular expressions in filters - - - - - Case sensitive - - - - - Make regular expressions case sensitive (/i) - leave "(/i)" verbatim - - - - - Extended - - - - - Ignores unescaped whitespace in regular expressions (/x) - leave "(/x)" verbatim - - - - - Keep selection in view - - - - - Scroll to keep the current selection in view after filtering - - - - - MOBase::TextViewer - - - Save changes? - - - - - Do you want to save changes to %1? - - - - - failed to write to %1 - - - - - file not found: %1 - - - - - Save - - - - - MOBase::TutorialControl - - - Tutorial failed to start, please check "mo_interface.log" for details. - - - - - MOBase::TutorialManager - - - tutorial manager not set up yet - - - MOMultiProcess @@ -3267,7 +3003,7 @@ This is likely due to a corrupted or incompatible download or unrecognized archi - + Sort the plugins using LOOT. @@ -3401,7 +3137,7 @@ This is likely due to a corrupted or incompatible download or unrecognized archi - + Name @@ -3659,7 +3395,7 @@ This is likely due to a corrupted or incompatible download or unrecognized archi - + Endorse Mod Organizer @@ -3770,142 +3506,142 @@ Error: %1 - + There are notifications to read - + There are no notifications - + Endorse - + Won't Endorse - + First Steps Translation strings for tutorial names - + Conflict Resolution - + Overview - + Help on UI - + Documentation - - + + Game Support Wiki - + Chat on Discord - + Report Issue - + Tutorials - + About - + About Qt - + Please enter a name for the new profile - + failed to create profile: %1 - + Show tutorial? - + You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help" menu. - + Never ask to show tutorials - + Do you know how to mod this game? Do you need to learn? There's a game support wiki available! Click OK to open the wiki. In the future, you can access this link from the "Help" menu. - + Category Setup - + Please choose how to handle the default category setup. If you've already connected to Nexus, you can automatically import Nexus categories for this game (if applicable). Otherwise, use the old Mod Organizer default category structure, or leave the categories blank (for manual setup). - - + + &Import Nexus Categories - + Use &Old Category Defaults - + Do &Nothing - + This is your first time running version 2.5 or higher with an old MO2 instance. The category system now relies on an updated system to map Nexus categories. In order to assign Nexus categories automatically, you will need to import the Nexus categories for the currently managed game and map them to your preferred category structure. @@ -3916,321 +3652,321 @@ As a final option, you can disable Nexus category mapping altogether, which can - + &Open Categories Dialog - + &Disable Nexus Mappings - + &Close - + &Don't show this again - + Downloads in progress - + There are still downloads in progress, do you really want to quit? - + Plugin "%1" failed: %2 - + Plugin "%1" failed - + <Edit...> - + (no executables) - + This bsa is enabled in the ini file so it may be required! - + Activating Network Proxy - + Notice: Your current MO version (%1) is lower than the previously used one (%2). The GUI may not downgrade gracefully, so you may experience oddities. However, there should be no serious issues. - + failed to change origin name: %1 - + failed to move "%1" from mod "%2" to "%3": %4 - + Open Game folder - + Open MyGames folder - + Open INIs folder - + Open Instance folder - + Open Mods folder - + Open Profile folder - + Open Downloads folder - + Open MO2 Install folder - + Open MO2 Plugins folder - + Open MO2 Stylesheets folder - + Open MO2 Logs folder - + Restart Mod Organizer - + Mod Organizer must restart to finish configuration changes - + Restart - + Continue - + Some things might be weird. - + Can't change download directory while downloads are in progress! - + Update available - + Do you want to endorse Mod Organizer on %1 now? - + Abstain from Endorsing Mod Organizer - + Are you sure you want to abstain from endorsing Mod Organizer 2? You will have to visit the mod page on the %1 Nexus site to change your mind. - + Thank you for endorsing MO2! :) - + Please reconsider endorsing MO2 on Nexus! - + There is no supported sort mechanism for this game. You will probably have to use a third-party tool. - + None of your %1 mods appear to have had recent file updates. - + All of your mods have been checked recently. We restrict update checks to help preserve your available API requests. - + Thank you! - + Thank you for your endorsement! - + Mod ID %1 no longer seems to be available on Nexus. - + Error %1: Request to Nexus failed: %2 - - + + failed to read %1: %2 - + Error - + failed to extract %1 (errorcode %2) - + Extract BSA - + This archive contains invalid hashes. Some files may be broken. - + Extract... - + Remove '%1' from the toolbar - + Backup of load order created - + Choose backup to restore - + No Backups - + There are no backups to restore - - + + Restore failed - - + + Failed to restore the backup. Errorcode: %1 - + Backup of mod list created - + A file with the same name has already been downloaded. What would you like to do? - + Overwrite - + Rename new file - + Ignore file @@ -5774,32 +5510,32 @@ Please enter a name: NexusInterface - + Please pick the mod ID for "%1" - + You must authorize MO2 in Settings -> Nexus to use the Nexus API. - + You've exceeded the Nexus API rate limit and requests are now being throttled. Your next batch of requests will be available in approximately %1 minutes and %2 seconds. - + Aborting download: Either you clicked on a premium-only link and your account is not premium, or the download link was generated by a different account than the one stored in Mod Organizer. - + empty response - + invalid response @@ -6266,168 +6002,168 @@ Continue? PluginList - + Name - + Priority - + Mod Index - + Flags - - + + unknown - + Name of the plugin - + Emblems to highlight things that might require attention. - + Load priority of plugins. The higher, the more "important" it is and thus overwrites data from plugins with lower priority. - + Determines the formids of objects originating from this mods. - + failed to update esp info for file %1 (source id: %2), error: %3 - + Plugin not found: %1 - + Origin - + This plugin can't be disabled or moved (enforced by the game). - + This plugin can't be disabled (enforced by the game). - + Author - + Description - + Missing Masters - + Enabled Masters - + Loads Archives - + There are Archives connected to this plugin. Their assets will be added to your game, overwriting in case of conflicts following the plugin order. Loose files will always overwrite assets from Archives. (This flag only checks for Archives from the same mod as the plugin) - + Loads INI settings - + There is an ini file connected to this plugin. Its settings will be added to your game settings, overwriting in case of conflicts. - + This %1 is flagged as a light plugin (ESL). It will adhere to the %1 load order but the records will be loaded in ESL space (FE/FF). You can have up to 4096 light plugins in addition to other plugin types. - + This ESM is flagged as a medium plugin (ESH). It adheres to the ESM load order but loads records in ESH space (FD). You can have 256 medium plugins in addition to other plugin types. - + WARNING: This plugin is both light and medium flagged. This could indicate that the file was saved improperly and may have mismatched record references. Use it at your own risk. - + This is a dummy plugin. It contains no records and is typically used to load a paired archive file. - + Light plugins (ESL) are not supported by this game. - + This game does not currently permit custom plugin loading. There may be manual workarounds. - + Incompatible with %1 - + Depends on missing %1 - + Warning - + Error - + failed to restore load order for %1 @@ -7249,13 +6985,13 @@ p, li { white-space: pre-wrap; } - - - - - - - + + + + + + + Cancel @@ -7504,8 +7240,6 @@ Destination: - - Error @@ -7618,23 +7352,23 @@ Destination: - + Please use "Help" from the toolbar to get usage instructions to all elements - + Visit %1 on Nexus - - + + <Manage...> - + failed to parse profile %1: %2 @@ -7782,12 +7516,12 @@ Destination: - + failed to access %1 - + failed to set file time %1 @@ -8089,196 +7823,196 @@ Example: - + This error typically happens because an antivirus has deleted critical files from Mod Organizer's installation folder or has made them generally inaccessible. Add an exclusion for Mod Organizer's installation folder in your antivirus, reinstall Mod Organizer and try again. - + This error typically happens because an antivirus is preventing Mod Organizer from starting programs. Add an exclusion for Mod Organizer's installation folder in your antivirus and try again. - + The file '%1' does not exist. - + The working directory '%1' does not exist. + - + - Cannot start Steam - + The path to the Steam executable cannot be found. You might try reinstalling Steam. - - - + + + Continue without starting Steam - - + + The program may fail to launch. - + Cannot launch program - - - + + + Cannot start %1 - + Cannot launch helper - - + + Elevation required - + This program is requesting to run as administrator but Mod Organizer itself is not running as administrator. Running programs as administrator is typically unnecessary as long as the game and Mod Organizer have been installed outside "Program Files". You can restart Mod Organizer as administrator and try launching the program again. - - + + Restart Mod Organizer as administrator - - + + You must allow "helper.exe" to make changes to the system. - + Launch Steam - + This program requires Steam - + Mod Organizer has detected that this program likely requires Steam to be running to function properly. - + Start Steam - - + + The program might fail to run. - + Steam is running as administrator - + Running Steam as administrator is typically unnecessary and can cause problems when Mod Organizer itself is not running as administrator. You can restart Mod Organizer as administrator and try launching the program again. - - - + + + Continue - + Event Log not running - + The Event Log service is not running - + The Windows Event Log service is not running. This can prevent USVFS from running properly and your mods may not be recognized by the program being launched. - - + + Your mods might not work. - + Blacklisted program - + The program %1 is blacklisted - + The program you are attempting to launch is blacklisted in the virtual filesystem. This will likely prevent it from seeing any mods, INI files or any other virtualized files. - + Change the blacklist - + Waiting - + Please press OK once you're logged into steam. - + Select binary - + Binary @@ -8337,217 +8071,6 @@ You can restart Mod Organizer as administrator and try launching the program aga Exit Now - - - - Some of your plugins have invalid names! These plugins can not be loaded by the game. Please see mo_interface.log for a list of affected plugins and rename them. - - - - - %1, #%2, Level %3, %4 - - - - - failed to open %1 - - - - - wrong file format - expected %1 got '%2' for %3 - - - - - failed to query registry path (preflight): %1 - - - - - failed to query registry path (read): %1 - - - - - invalid nxm-link: %1 - - - - - Filter - - - - - One of the following plugins must be enabled: %1. - - - - - This plugin can only be enabled if the '%1' plugin is installed and enabled. - - - - - This plugin can only be enabled for the following game(s): %1. - - - - - - - - - - - INI file is read-only - - - - - - Mod Organizer is attempting to write to "%1" which is currently set to read-only. - - - - - - Clear the read-only flag - - - - - - Allow the write once - - - - - - The file will be set to read-only again. - - - - - - Skip this file - - - - - You can reset these choices by clicking "Reset Dialog Choices" in the General tab of the Settings - - - - - Always ask - - - - - - Remember my choice - - - - - Remember my choice for %1 - - - - - removal of "%1" failed: %2 - - - - - removal of "%1" failed - - - - - "%1" doesn't exist (remove) - - - - - Error %1 - - - - - - You have an invalid custom browser command in the settings. - - - - - - failed to create directory "%1" - - - - - - failed to copy "%1" to "%2" - - - - - %1 B - - - - - %1 KB - - - - - %1 MB - - - - - %1 GB - - - - - %1 TB - - - - - %1 B/s - - - - - %1 KB/s - - - - - %1 MB/s - - - - - %1 GB/s - - - - - %1 TB/s - - - - - Failed to save '%1', could not create a temporary file: %2 (error %3) - - QueryOverwriteDialog @@ -8594,19 +8117,6 @@ p, li { white-space: pre-wrap; } - - QuestionBoxMemory - - - Remember selection - - - - - Remember selection only for %1 - - - SaveTextAsDialog @@ -8705,42 +8215,42 @@ p, li { white-space: pre-wrap; } SelfUpdater - + Download failed - + Failed to find correct download, please try again later. - + Update - + Download in progress - + Download failed: %1 - + Failed to install update: %1 - + Failed to start %1: %2 - + Error @@ -9722,62 +9232,6 @@ programs you are intentionally running. - - TaskDialog - - - Dialog - - - - - icon - - - - - dummy main text - - - - - dummy content text - - - - - dummy button - - - - - dummy checkbox - - - - - Details - - - - - TextViewer - - - Log Viewer - - - - - Placeholder - - - - - Show Whitespace - - - TransferSavesDialog @@ -10526,25 +9980,4 @@ Please open the "Nexus" tab. - - uibase - - - h - Time remaining hours - - - - - m - Time remaining minutes - - - - - s - Time remaining seconds - - - diff --git a/src/organizercore.cpp b/src/organizercore.cpp index 0f6a14551..88166c8e6 100644 --- a/src/organizercore.cpp +++ b/src/organizercore.cpp @@ -29,15 +29,15 @@ #include "spawn.h" #include "syncoverwritedialog.h" #include "virtualfiletree.h" -#include #include -#include #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include #include #include @@ -71,7 +71,7 @@ #include #include -#include "bs_archive.h" +#include #include "organizerproxy.h" @@ -646,7 +646,7 @@ QString OrganizerCore::modsPath() const return QDir::fromNativeSeparators(m_Settings.paths().mods()); } -MOBase::VersionInfo OrganizerCore::appVersion() const +MOBase::Version OrganizerCore::version() const { return m_Updater.getVersion(); } diff --git a/src/organizercore.h b/src/organizercore.h index 923adc12d..fe80da240 100644 --- a/src/organizercore.h +++ b/src/organizercore.h @@ -1,14 +1,32 @@ #ifndef ORGANIZERCORE_H #define ORGANIZERCORE_H +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + #include "downloadmanager.h" #include "envdump.h" -#include "executableinfo.h" #include "executableslist.h" -#include "guessedvalue.h" #include "installationmanager.h" -#include "memoizedlock.h" -#include "moddatacontent.h" #include "modinfo.h" #include "modlist.h" #include "moshortcut.h" @@ -18,22 +36,6 @@ #include "settings.h" #include "uilocker.h" #include "usvfsconnector.h" -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include class ModListSortProxy; class PluginListSortProxy; @@ -270,7 +272,7 @@ class OrganizerCore : public QObject, public MOBase::IPluginDiagnose std::vector enabledArchives(); - MOBase::VersionInfo getVersion() const { return m_Updater.getVersion(); } + MOBase::Version getVersion() const { return m_Updater.getVersion(); } // return the plugin container // @@ -358,7 +360,7 @@ class OrganizerCore : public QObject, public MOBase::IPluginDiagnose QString overwritePath() const; QString basePath() const; QString modsPath() const; - MOBase::VersionInfo appVersion() const; + MOBase::Version version() const; MOBase::IPluginGame* getGame(const QString& gameName) const; MOBase::IModInterface* createMod(MOBase::GuessedValue& name); void modDataChanged(MOBase::IModInterface* mod); diff --git a/src/organizerproxy.cpp b/src/organizerproxy.cpp index 6edbdbab7..22a8a0234 100644 --- a/src/organizerproxy.cpp +++ b/src/organizerproxy.cpp @@ -114,9 +114,53 @@ QString OrganizerProxy::modsPath() const return m_Proxied->modsPath(); } +Version OrganizerProxy::version() const +{ + return m_Proxied->version(); +} + VersionInfo OrganizerProxy::appVersion() const { - return m_Proxied->appVersion(); + const auto version = m_Proxied->version(); + const int major = version.major(), minor = version.minor(), + subminor = version.patch(); + int subsubminor = 0; + VersionInfo::ReleaseType infoReleaseType = VersionInfo::RELEASE_FINAL; + + // make a copy + auto prereleases = version.preReleases(); + + if (!prereleases.empty()) { + // check if the first pre-release entry is a number + if (prereleases.front().index() == 0) { + subsubminor = std::get(prereleases.front()); + prereleases.erase(prereleases.begin()); + } + + if (!prereleases.empty()) { + const auto releaseType = std::get(prereleases.front()); + switch (releaseType) { + case Version::Development: + infoReleaseType = VersionInfo::RELEASE_PREALPHA; + break; + case Version::Alpha: + infoReleaseType = VersionInfo::RELEASE_ALPHA; + break; + case Version::Beta: + infoReleaseType = VersionInfo::RELEASE_BETA; + break; + case Version::ReleaseCandidate: + infoReleaseType = VersionInfo::RELEASE_CANDIDATE; + break; + default: + infoReleaseType = VersionInfo::RELEASE_PREALPHA; + } + } + + // there is no way to differentiate two pre-releases? + } + + return VersionInfo(major, minor, subminor, subsubminor, infoReleaseType); } IPluginGame* OrganizerProxy::getGame(const QString& gameName) const diff --git a/src/organizerproxy.h b/src/organizerproxy.h index fbae7cde6..2c70cb2c3 100644 --- a/src/organizerproxy.h +++ b/src/organizerproxy.h @@ -29,69 +29,67 @@ class OrganizerProxy : public MOBase::IOrganizer MOBase::IPlugin* plugin() const { return m_Plugin; } public: // IOrganizer interface - virtual MOBase::IModRepositoryBridge* createNexusBridge() const; - virtual QString profileName() const; - virtual QString profilePath() const; - virtual QString downloadsPath() const; - virtual QString overwritePath() const; - virtual QString basePath() const; - virtual QString modsPath() const; - virtual MOBase::VersionInfo appVersion() const; - virtual MOBase::IPluginGame* getGame(const QString& gameName) const; - virtual MOBase::IModInterface* createMod(MOBase::GuessedValue& name); - virtual void modDataChanged(MOBase::IModInterface* mod); - virtual QVariant persistent(const QString& pluginName, const QString& key, - const QVariant& def = QVariant()) const; - virtual void setPersistent(const QString& pluginName, const QString& key, - const QVariant& value, bool sync = true); - virtual QString pluginDataPath() const; - virtual MOBase::IModInterface* installMod(const QString& fileName, - const QString& nameSuggestion = QString()); - virtual QString resolvePath(const QString& fileName) const; - virtual QStringList listDirectories(const QString& directoryName) const; - virtual QStringList + MOBase::IModRepositoryBridge* createNexusBridge() const override; + QString profileName() const override; + QString profilePath() const override; + QString downloadsPath() const override; + QString overwritePath() const override; + QString basePath() const override; + QString modsPath() const override; + MOBase::Version version() const override; + MOBase::VersionInfo appVersion() const override; + MOBase::IPluginGame* getGame(const QString& gameName) const override; + MOBase::IModInterface* createMod(MOBase::GuessedValue& name) override; + void modDataChanged(MOBase::IModInterface* mod) override; + QVariant persistent(const QString& pluginName, const QString& key, + const QVariant& def = QVariant()) const override; + void setPersistent(const QString& pluginName, const QString& key, + const QVariant& value, bool sync = true) override; + QString pluginDataPath() const override; + MOBase::IModInterface* installMod(const QString& fileName, + const QString& nameSuggestion = QString()); + QString resolvePath(const QString& fileName) const override; + QStringList listDirectories(const QString& directoryName) const override; + QStringList findFiles(const QString& path, const std::function& filter) const override; - virtual QStringList findFiles(const QString& path, - const QStringList& globFilters) const override; - virtual QStringList getFileOrigins(const QString& fileName) const override; - virtual QList + QStringList findFiles(const QString& path, + const QStringList& globFilters) const override; + QStringList getFileOrigins(const QString& fileName) const override; + QList findFileInfos(const QString& path, const std::function& filter) const override; - virtual std::shared_ptr virtualFileTree() const override; - - virtual MOBase::IDownloadManager* downloadManager() const override; - virtual MOBase::IPluginList* pluginList() const override; - virtual MOBase::IModList* modList() const override; - virtual MOBase::IProfile* profile() const override; - virtual MOBase::IGameFeatures* gameFeatures() const override; - - virtual HANDLE startApplication(const QString& executable, - const QStringList& args = QStringList(), - const QString& cwd = "", const QString& profile = "", - const QString& forcedCustomOverwrite = "", - bool ignoreCustomOverwrite = false); - virtual bool waitForApplication(HANDLE handle, bool refresh = true, - LPDWORD exitCode = nullptr) const; - virtual void refresh(bool saveChanges); - - virtual bool onAboutToRun(const std::function& func) override; - virtual bool onAboutToRun(const std::function& func) override; - virtual bool + std::shared_ptr virtualFileTree() const override; + + MOBase::IDownloadManager* downloadManager() const override; + MOBase::IPluginList* pluginList() const override; + MOBase::IModList* modList() const override; + MOBase::IProfile* profile() const override; + MOBase::IGameFeatures* gameFeatures() const override; + + HANDLE startApplication(const QString& executable, + const QStringList& args = QStringList(), + const QString& cwd = "", const QString& profile = "", + const QString& forcedCustomOverwrite = "", + bool ignoreCustomOverwrite = false) override; + bool waitForApplication(HANDLE handle, bool refresh = true, + LPDWORD exitCode = nullptr) const override; + void refresh(bool saveChanges) override; + + bool onAboutToRun(const std::function& func) override; + bool onAboutToRun(const std::function& func) override; + bool onFinishedRun(const std::function& func) override; - virtual bool + bool onUserInterfaceInitialized(std::function const& func) override; - virtual bool onNextRefresh(const std::function& func, - bool immediateIfPossible) override; - virtual bool - onProfileCreated(std::function const& func) override; - virtual bool onProfileRenamed( - std::function const& - func) override; - virtual bool - onProfileRemoved(std::function const& func) override; - virtual bool onProfileChanged( + bool onNextRefresh(const std::function& func, + bool immediateIfPossible) override; + bool onProfileCreated(std::function const& func) override; + bool onProfileRenamed(std::function const& func) override; + bool onProfileRemoved(std::function const& func) override; + bool onProfileChanged( std::function const& func) override; // Plugin related: diff --git a/src/pluginlist.cpp b/src/pluginlist.cpp index 04d4462a3..90da82593 100644 --- a/src/pluginlist.cpp +++ b/src/pluginlist.cpp @@ -16,24 +16,11 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Mod Organizer. If not, see . */ - #include "pluginlist.h" -#include "modinfo.h" -#include "modlist.h" -#include "scopeguard.h" -#include "settings.h" -#include "shared/directoryentry.h" -#include "shared/fileentry.h" -#include "shared/filesorigin.h" -#include "viewmarkingscrollbar.h" -#include "shared/windows_error.h" -#include -#include -#include -#include -#include -#include +#include +#include +#include #include #include @@ -50,11 +37,23 @@ along with Mod Organizer. If not, see . #include #include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include "gameplugins.h" +#include "modinfo.h" +#include "modlist.h" #include "organizercore.h" +#include "settings.h" +#include "shared/directoryentry.h" +#include "shared/fileentry.h" +#include "shared/filesorigin.h" +#include "shared/windows_error.h" +#include "viewmarkingscrollbar.h" using namespace MOBase; using namespace MOShared; diff --git a/src/selfupdater.cpp b/src/selfupdater.cpp index 7762c9004..43992e707 100644 --- a/src/selfupdater.cpp +++ b/src/selfupdater.cpp @@ -69,10 +69,9 @@ using namespace MOBase; using namespace MOShared; SelfUpdater::SelfUpdater(NexusInterface* nexusInterface) - : m_Parent(nullptr), m_Interface(nexusInterface), m_Reply(nullptr), m_Attempts(3) -{ - m_MOVersion = createVersionInfo(); -} + : m_Parent(nullptr), m_MOVersion(createVersionInfo()), m_Interface(nexusInterface), + m_Reply(nullptr), m_Attempts(3) +{} SelfUpdater::~SelfUpdater() {} @@ -115,7 +114,8 @@ void SelfUpdater::testForUpdate(const Settings& settings) QJsonObject release = releaseVal.toObject(); if (!release["draft"].toBool() && (Settings::instance().usePrereleases() || !release["prerelease"].toBool())) { - auto version = VersionInfo(release["tag_name"].toString()); + auto version = Version::parse(release["tag_name"].toString(), + Version::ParseMode::MO2); mreleases[version] = release; } } @@ -132,14 +132,13 @@ void SelfUpdater::testForUpdate(const Settings& settings) m_UpdateCandidates.insert(p); } } - log::info("update available: {} -> {}", - this->m_MOVersion.displayString(3), lastKey.displayString(3)); + log::info("update available: {} -> {}", this->m_MOVersion, lastKey); emit updateAvailable(); } else if (lastKey < this->m_MOVersion) { // this could happen if the user switches from using prereleases to // stable builds. Should we downgrade? log::debug("This version is newer than the latest released one: {} -> {}", - this->m_MOVersion.displayString(3), lastKey.displayString(3)); + this->m_MOVersion, lastKey); } } }); @@ -158,7 +157,7 @@ void SelfUpdater::startUpdate() auto latestRelease = m_UpdateCandidates.begin()->second; UpdateDialog dialog(m_Parent); - dialog.setVersions(MOShared::createVersionInfo().displayString(3), + dialog.setVersions(MOShared::createVersionInfo().string(), latestRelease["tag_name"].toString()); // We concatenate release details. We only include pre-release if those are diff --git a/src/selfupdater.h b/src/selfupdater.h index cc68ad275..b39340849 100644 --- a/src/selfupdater.h +++ b/src/selfupdater.h @@ -22,9 +22,6 @@ along with Mod Organizer. If not, see . #include -#include -#include - class Archive; class NexusInterface; class PluginContainer; @@ -43,6 +40,10 @@ class QNetworkReply; class QProgressDialog; class Settings; +#include + +#include "github.h" + /** * @brief manages updates for Mod Organizer itself * This class is used to update the Mod Organizer @@ -98,7 +99,7 @@ class SelfUpdater : public QObject /** * @return current version of Mod Organizer **/ - MOBase::VersionInfo getVersion() const { return m_MOVersion; } + MOBase::Version getVersion() const { return m_MOVersion; } signals: @@ -134,7 +135,7 @@ private slots: private: QWidget* m_Parent; - MOBase::VersionInfo m_MOVersion; + MOBase::Version m_MOVersion; NexusInterface* m_Interface; QFile m_UpdateFile; QNetworkReply* m_Reply; @@ -146,7 +147,7 @@ private slots: // Map from version to release, in decreasing order (first element is the latest // release): - using CandidatesMap = std::map>; + using CandidatesMap = std::map>; CandidatesMap m_UpdateCandidates; }; diff --git a/src/settings.h b/src/settings.h index c4be0d7bc..bd58e10d4 100644 --- a/src/settings.h +++ b/src/settings.h @@ -21,11 +21,11 @@ along with Mod Organizer. If not, see . #define SETTINGS_H #include "envdump.h" -#include -#include #include #include -#include +#include +#include +#include #ifdef interface #undef interface diff --git a/src/settingsdialoggeneral.cpp b/src/settingsdialoggeneral.cpp index 7acaa190b..265c9db90 100644 --- a/src/settingsdialoggeneral.cpp +++ b/src/settingsdialoggeneral.cpp @@ -111,7 +111,7 @@ void GeneralSettingsTab::addLanguages() QString languageString = QString("%1 (%2)") .arg(locale.nativeLanguageName()) - .arg(locale.nativeCountryName()); + .arg(locale.nativeTerritoryName()); if (locale.language() == QLocale::Chinese) { if (languageCode == "zh_TW") { diff --git a/src/shared/directoryentry.h b/src/shared/directoryentry.h index 42aef8c7e..cb8d5c781 100644 --- a/src/shared/directoryentry.h +++ b/src/shared/directoryentry.h @@ -20,8 +20,9 @@ along with Mod Organizer. If not, see . #ifndef MO_REGISTER_DIRECTORYENTRY_INCLUDED #define MO_REGISTER_DIRECTORYENTRY_INCLUDED +#include + #include "fileregister.h" -#include namespace env { diff --git a/src/shared/util.cpp b/src/shared/util.cpp index 55a76c235..0d9788a29 100644 --- a/src/shared/util.cpp +++ b/src/shared/util.cpp @@ -21,9 +21,9 @@ along with Mod Organizer. If not, see . #include "../env.h" #include "../mainwindow.h" #include "windows_error.h" -#include -#include -#include +#include +#include +#include using namespace MOBase; @@ -208,10 +208,12 @@ std::wstring GetFileVersionString(const std::wstring& fileName) } } -VersionInfo createVersionInfo() +Version createVersionInfo() { VS_FIXEDFILEINFO version = GetFileVersion(env::thisProcessPath().native()); + std::optional releaseType; + if (version.dwFileFlags & VS_FF_PRERELEASE) { // Pre-release builds need annotating QString versionString = @@ -227,21 +229,29 @@ VersionInfo createVersionInfo() } } + if (!noLetters) { + // trust the string to make sense + return Version::parse(versionString, Version::ParseMode::MO2); + } + if (noLetters) { - // Default to pre-alpha when release type is unspecified - return VersionInfo( - version.dwFileVersionMS >> 16, version.dwFileVersionMS & 0xFFFF, - version.dwFileVersionLS >> 16, version.dwFileVersionLS & 0xFFFF, - VersionInfo::RELEASE_PREALPHA); + // default to development when release type is unspecified + releaseType = Version::Development; } else { - // Trust the string to make sense - return VersionInfo(versionString); } - } else { - // Non-pre-release builds just need their version numbers reading - return VersionInfo(version.dwFileVersionMS >> 16, version.dwFileVersionMS & 0xFFFF, - version.dwFileVersionLS >> 16, version.dwFileVersionLS & 0xFFFF); } + + const int major = version.dwFileVersionMS >> 16, + minor = version.dwFileVersionMS & 0xFFFF, + patch = version.dwFileVersionLS >> 16, + subpatch = version.dwFileVersionLS & 0xFFFF; + + std::vector> prereleases; + if (releaseType) { + prereleases.push_back(*releaseType); + } + + return Version(major, minor, patch, subpatch, std::move(prereleases)); } QString getUsvfsDLLVersion() diff --git a/src/shared/util.h b/src/shared/util.h index 1bc6bd47a..4764643e1 100644 --- a/src/shared/util.h +++ b/src/shared/util.h @@ -21,9 +21,10 @@ along with Mod Organizer. If not, see . #define UTIL_H #include -#include #include -#include + +#include +#include class Executable; @@ -48,7 +49,7 @@ std::wstring ToLowerCopy(std::wstring_view text); bool CaseInsensitiveEqual(const std::wstring& lhs, const std::wstring& rhs); -MOBase::VersionInfo createVersionInfo(); +MOBase::Version createVersionInfo(); QString getUsvfsVersionString(); void SetThisThreadName(const QString& s); diff --git a/src/spawn.cpp b/src/spawn.cpp index 83ac720e5..aad1e1cc9 100644 --- a/src/spawn.cpp +++ b/src/spawn.cpp @@ -23,20 +23,19 @@ along with Mod Organizer. If not, see . #include "envmodule.h" #include "envsecurity.h" #include "envwindows.h" -#include "report.h" #include "settings.h" #include "settingsdialogworkarounds.h" #include "shared/appconfig.h" #include "shared/windows_error.h" -#include "utility.h" #include #include #include #include -#include -#include -#include -#include +#include +#include +#include +#include +#include using namespace MOBase; using namespace MOShared; diff --git a/src/usvfsconnector.cpp b/src/usvfsconnector.cpp index 7b75b870d..8d1d29601 100644 --- a/src/usvfsconnector.cpp +++ b/src/usvfsconnector.cpp @@ -30,7 +30,7 @@ along with Mod Organizer. If not, see . #include #include #include -#include +#include static const char SHMID[] = "mod_organizer_instance"; using namespace MOBase; diff --git a/src/usvfsconnector.h b/src/usvfsconnector.h index d578ddd49..ecf68a2ce 100644 --- a/src/usvfsconnector.h +++ b/src/usvfsconnector.h @@ -21,16 +21,16 @@ along with Mod Organizer. If not, see . #define USVFSCONNECTOR_H #include "envdump.h" -#include "executableinfo.h" #include #include #include #include #include #include -#include -#include -#include +#include +#include +#include +#include class LogWorker : public QThread { diff --git a/vcpkg-configuration.json b/vcpkg-configuration.json new file mode 100644 index 000000000..6a56decd9 --- /dev/null +++ b/vcpkg-configuration.json @@ -0,0 +1,21 @@ +{ + "default-registry": { + "kind": "git", + "repository": "https://github.com/Microsoft/vcpkg", + "baseline": "f61a294e765b257926ae9e9d85f96468a0af74e7" + }, + "registries": [ + { + "kind": "git", + "repository": "https://github.com/Microsoft/vcpkg", + "baseline": "f61a294e765b257926ae9e9d85f96468a0af74e7", + "packages": ["boost*", "boost-*"] + }, + { + "kind": "git", + "repository": "https://github.com/ModOrganizer2/vcpkg-registry", + "baseline": "a1cd2ddbf1afb836419a5f1a9f70d6378fc41df2", + "packages": ["mo2-*", "7zip", "usvfs"] + } + ] +} diff --git a/vcpkg.json b/vcpkg.json new file mode 100644 index 000000000..013a13873 --- /dev/null +++ b/vcpkg.json @@ -0,0 +1,32 @@ +{ + "dependencies": [ + "7zip", + "boost-accumulators", + "boost-assign", + "boost-date-time", + "boost-graph", + "boost-headers", + "boost-interprocess", + "boost-program-options", + "boost-signals2", + "boost-thread", + "boost-uuid", + "lz4", + "mo2-libbsarch", + "zlib" + ], + "features": { + "standalone": { + "description": "Build Standalone.", + "dependencies": [ + "mo2-cmake", + "mo2-archive", + "mo2-bsatk", + "mo2-esptk", + "mo2-lootcli-header", + "mo2-uibase", + "usvfs" + ] + } + } +} diff --git a/win.imp b/win.imp deleted file mode 100644 index 246357755..000000000 --- a/win.imp +++ /dev/null @@ -1,91 +0,0 @@ -[ - # Microsft visual C? - - { include: [ "", "private", "", "public" ] }, - { include: [ "", "private", "", "public" ] }, - { include: [ "", "private", "", "public" ] }, - { include: [ "", "private", "", "public" ] }, - - { include: [ "", "private", "", "public" ] }, - -# Windows -# Looks like the documentation says the 1st char is u/c the rest are l/c - -# You have to be kidding me. ULONG is defined in winsmcrd.h? - { symbol: [ "ULONG", "private", "", "private" ] }, - - { include: [ "", "private", "", "private" ] }, # Stringapiset.h - { include: [ "", "private", "", "public" ] }, - -# These are all in windef.h apparently. Which m/s then says 'use Windows.h' - { include: [ "", "private", "", "private" ] }, # or in winnt apparently - { include: [ "", "private", "", "private" ] }, - { include: [ "", "private", "", "private" ] }, - { include: [ "", "private", "", "private" ] }, - -# Similary, but for winbase.h - { include: [ "", "private", "", "private" ] }, - { include: [ "", "private", "", "private" ] }, - { include: [ "", "private", "", "private" ] }, - { include: [ "", "private", "", "private" ] }, - { include: [ "", "private", "", "private" ] }, - { include: [ "", "private", "", "private" ] }, - -# These ones say xxxx.h (include Windows.h) on the ms web site - { include: [ "", "private", "", "public" ] }, - { include: [ "", "private", "", "public" ] }, - { include: [ "", "private", "", "public" ] }, # VerRsrc.h - { include: [ "", "private", "", "public" ] }, - { include: [ "", "private", "", "public" ] }, - { include: [ "", "private", "", "public" ] }, - { include: [ "", "private", "", "public" ] }, - { include: [ "", "private", "", "public" ] }, - -# These ones are in Windows.h but the documentation post windows 8 says they are individual headers, -# which looks like M/S are trying to get their act together. Maybe. - { include: [ "", "private", "", "public" ] }, - { include: [ "", "private", "", "public" ] }, - { include: [ "", "private", "", "public" ] }, - -# These ones are *not* defined to be in Windows.h, but it seems to work. These should probably be cleaned up - { include: [ "", "private", "", "public" ] }, - # These 3 should go to Shellapi.h - { include: [ "", "private", "", "public" ] }, - { include: [ "", "private", "", "public" ] }, # official name according to website - { include: [ "", "private", "", "public" ] }, - # - { include: [ "", "private", "", "public" ] }, - { include: [ "", "private", "", "public" ] }, - -# These ones are in shtypes.h but the only documentation I can find says -# to include Knownfolders.h for these - { symbol: [ "REFKNOWNFOLDERID", "private", "", "public" ] }, - { symbol: [ "KNOWNFOLDERID", "private", "", "public" ] }, - -# IWYU doesn't understand upper/lower case which is *really* annoying on -# windows, though to be fair I'm not sure M/S understand it either. - { include: [ "", "private", "", "public" ] }, - -# Files that are included by other files which seem to then come for free in Windows.h but -# shouldn't. Again, should be cleaned up. - - { include: [ "", "private", "", "private" ] }, - { include: [ "", "private", "", "private" ] }, - { include: [ "", "private", "", "public" ] }, - - { include: [ "", "private", "", "private" ] }, - { include: [ "", "private", "", "public" ] }, - - { include: [ "", "private", "", "private" ] }, - { include: [ "", "private", "", "public" ] }, - -# Huh? This one is sane? - { include: [ "", "private", "", "public" ] }, - - -] - -#include // for operator delete[], etc - -#include // for _Simple_types<>::value_type -#include // for _Tree_const_iterator