temps-now

This commit is contained in:
玉宇清音 2022-11-29 11:47:12 +08:00
parent df4933c839
commit 04f6aaa3a5
91 changed files with 2566 additions and 141 deletions

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.15.0, 2022-11-24T10:20:15. -->
<!-- Written by QtCreator 4.15.0, 2022-11-29T01:19:02. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>

View File

@ -13,6 +13,7 @@ SOURCES += \
widget.cpp
HEADERS += \
tools.h \
widget.h
TRANSLATIONS += \

25
TestWidget/TestWidget.sln Normal file
View File

@ -0,0 +1,25 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.33026.149
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestWidget", "TestWidget.vcxproj", "{A9990EF2-F9AA-317F-AAB2-ED848703C5E1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{A9990EF2-F9AA-317F-AAB2-ED848703C5E1}.Debug|x64.ActiveCfg = Debug|x64
{A9990EF2-F9AA-317F-AAB2-ED848703C5E1}.Debug|x64.Build.0 = Debug|x64
{A9990EF2-F9AA-317F-AAB2-ED848703C5E1}.Release|x64.ActiveCfg = Release|x64
{A9990EF2-F9AA-317F-AAB2-ED848703C5E1}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {4C2E60F2-FFE2-4D0E-BA13-B408FA3B518C}
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,236 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{A9990EF2-F9AA-317F-AAB2-ED848703C5E1}</ProjectGuid>
<RootNamespace>TestWidget</RootNamespace>
<Keyword>QtVS_v304</Keyword>
<WindowsTargetPlatformVersion>10.0.22621.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.22621.0</WindowsTargetPlatformMinVersion>
<QtMsBuild Condition="'$(QtMsBuild)'=='' or !Exists('$(QtMsBuild)\qt.targets')">$(MSBuildProjectDirectory)\QtMsBuild</QtMsBuild>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<PlatformToolset>v141</PlatformToolset>
<OutputDirectory>release\</OutputDirectory>
<ATLMinimizesCRunTimeLibraryUsage>false</ATLMinimizesCRunTimeLibraryUsage>
<CharacterSet>NotSet</CharacterSet>
<ConfigurationType>Application</ConfigurationType>
<IntermediateDirectory>release\</IntermediateDirectory>
<PrimaryOutput>TestWidget</PrimaryOutput>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<PlatformToolset>v141</PlatformToolset>
<OutputDirectory>debug\</OutputDirectory>
<ATLMinimizesCRunTimeLibraryUsage>false</ATLMinimizesCRunTimeLibraryUsage>
<CharacterSet>NotSet</CharacterSet>
<ConfigurationType>Application</ConfigurationType>
<IntermediateDirectory>debug\</IntermediateDirectory>
<PrimaryOutput>TestWidget</PrimaryOutput>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<Target Name="QtMsBuildNotFound" BeforeTargets="CustomBuild;ClCompile" Condition="!Exists('$(QtMsBuild)\qt.targets') or !Exists('$(QtMsBuild)\qt.props')">
<Message Importance="High" Text="QtMsBuild: could not locate qt.targets, qt.props; project may not build correctly." />
</Target>
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ImportGroup Condition="Exists('$(QtMsBuild)\qt_defaults.props')">
<Import Project="$(QtMsBuild)\qt_defaults.props" />
</ImportGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>debug\</OutDir>
<IntDir>debug\</IntDir>
<TargetName>TestWidget</TargetName>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>release\</OutDir>
<IntDir>release\</IntDir>
<TargetName>TestWidget</TargetName>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<QtInstall>5.12.11_msvc2017_64</QtInstall>
<QtModules>core;gui;widgets</QtModules>
</PropertyGroup>
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<QtInstall>5.12.11_msvc2017_64</QtInstall>
<QtModules>core;gui;widgets</QtModules>
</PropertyGroup>
<ImportGroup Condition="Exists('$(QtMsBuild)\qt.props')">
<Import Project="$(QtMsBuild)\qt.props" />
</ImportGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<AdditionalIncludeDirectories>GeneratedFiles\$(ConfigurationName);GeneratedFiles;.;release;/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 %(AdditionalOptions)</AdditionalOptions>
<AssemblerListingLocation>release\</AssemblerListingLocation>
<BrowseInformation>false</BrowseInformation>
<DebugInformationFormat>None</DebugInformationFormat>
<DisableSpecificWarnings>4577;4467;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<ExceptionHandling>Sync</ExceptionHandling>
<ObjectFileName>release\</ObjectFileName>
<Optimization>MaxSpeed</Optimization>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;QT_NO_DEBUG;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessToFile>false</PreprocessToFile>
<ProgramDataBaseFileName>
</ProgramDataBaseFileName>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<WarningLevel>Level3</WarningLevel>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>shell32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>C:\openssl\lib;C:\Utils\my_sql\mysql-5.6.11-winx64\lib;C:\Utils\postgresql\pgsql\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalOptions>"/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions)</AdditionalOptions>
<DataExecutionPrevention>true</DataExecutionPrevention>
<GenerateDebugInformation>false</GenerateDebugInformation>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
<LinkIncremental>false</LinkIncremental>
<OutputFile>$(OutDir)\TestWidget.exe</OutputFile>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<SubSystem>Windows</SubSystem>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Link>
<Midl>
<DefaultCharType>Unsigned</DefaultCharType>
<EnableErrorChecks>None</EnableErrorChecks>
<WarningLevel>0</WarningLevel>
</Midl>
<ResourceCompile>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;QT_NO_DEBUG;QT_WIDGETS_LIB;QT_GUI_LIB;QT_CORE_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<QtMoc>
<CompilerFlavor>msvc</CompilerFlavor>
<Include>./$(Configuration)/moc_predefs.h</Include>
<ExecutionDescription>Moc'ing %(Identity)...</ExecutionDescription>
<DynamicSource>output</DynamicSource>
<QtMocDir>$(Configuration)</QtMocDir>
<QtMocFileName>moc_%(Filename).cpp</QtMocFileName>
</QtMoc>
<QtRcc>
<InitFuncName>qmake_qmake_qm_files</InitFuncName>
<Compression>default</Compression>
<ExecutionDescription>Rcc'ing %(Identity)...</ExecutionDescription>
<QtRccDir>$(Configuration)</QtRccDir>
<QtRccFileName>qrc_%(Filename).cpp</QtRccFileName>
</QtRcc>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<AdditionalIncludeDirectories>GeneratedFiles\$(ConfigurationName);GeneratedFiles;.;debug;/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 %(AdditionalOptions)</AdditionalOptions>
<AssemblerListingLocation>debug\</AssemblerListingLocation>
<BrowseInformation>false</BrowseInformation>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4577;4467;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<ExceptionHandling>Sync</ExceptionHandling>
<ObjectFileName>debug\</ObjectFileName>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessToFile>false</PreprocessToFile>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<WarningLevel>Level3</WarningLevel>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>shell32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>C:\openssl\lib;C:\Utils\my_sql\mysql-5.6.11-winx64\lib;C:\Utils\postgresql\pgsql\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalOptions>"/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions)</AdditionalOptions>
<DataExecutionPrevention>true</DataExecutionPrevention>
<GenerateDebugInformation>true</GenerateDebugInformation>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
<OutputFile>$(OutDir)\TestWidget.exe</OutputFile>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<SubSystem>Windows</SubSystem>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Link>
<Midl>
<DefaultCharType>Unsigned</DefaultCharType>
<EnableErrorChecks>None</EnableErrorChecks>
<WarningLevel>0</WarningLevel>
</Midl>
<ResourceCompile>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;QT_WIDGETS_LIB;QT_GUI_LIB;QT_CORE_LIB;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<QtMoc>
<CompilerFlavor>msvc</CompilerFlavor>
<Include>./$(Configuration)/moc_predefs.h</Include>
<ExecutionDescription>Moc'ing %(Identity)...</ExecutionDescription>
<DynamicSource>output</DynamicSource>
<QtMocDir>$(Configuration)</QtMocDir>
<QtMocFileName>moc_%(Filename).cpp</QtMocFileName>
</QtMoc>
<QtRcc>
<InitFuncName>qmake_qmake_qm_files</InitFuncName>
<Compression>default</Compression>
<ExecutionDescription>Rcc'ing %(Identity)...</ExecutionDescription>
<QtRccDir>$(Configuration)</QtRccDir>
<QtRccFileName>qrc_%(Filename).cpp</QtRccFileName>
</QtRcc>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="main.cpp" />
<ClCompile Include="widget.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="tools.h" />
<QtMoc Include="widget.h">
</QtMoc>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="debug\moc_predefs.h.cbt">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\mkspecs\features\data\dummy.cpp;%(AdditionalInputs)</AdditionalInputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">cl -Bx"$(QTDIR)\bin\qmake.exe" -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -Zi -MDd -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -E $(QTDIR)\mkspecs\features\data\dummy.cpp 2&gt;NUL &gt;debug\moc_predefs.h</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Generate moc_predefs.h</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">debug\moc_predefs.h;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="release\moc_predefs.h.cbt">
<FileType>Document</FileType>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\mkspecs\features\data\dummy.cpp;%(AdditionalInputs)</AdditionalInputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">cl -Bx"$(QTDIR)\bin\qmake.exe" -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -O2 -MD -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -E $(QTDIR)\mkspecs\features\data\dummy.cpp 2&gt;NUL &gt;release\moc_predefs.h</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Generate moc_predefs.h</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">release\moc_predefs.h;%(Outputs)</Outputs>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="TestWidget_zh_CN.ts">
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TestWidget_zh_CN.ts;%(AdditionalInputs)</AdditionalInputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\lrelease.exe TestWidget_zh_CN.ts -qm release\TestWidget_zh_CN.qm</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">lrelease</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">release\TestWidget_zh_CN.qm;%(Outputs)</Outputs>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TestWidget_zh_CN.ts;%(AdditionalInputs)</AdditionalInputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\lrelease.exe TestWidget_zh_CN.ts -qm debug\TestWidget_zh_CN.qm</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">lrelease</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">debug\TestWidget_zh_CN.qm;%(Outputs)</Outputs>
</CustomBuild>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Condition="Exists('$(QtMsBuild)\qt.targets')">
<Import Project="$(QtMsBuild)\qt.targets" />
</ImportGroup>
<ImportGroup Label="ExtensionTargets" />
</Project>

View File

@ -0,0 +1,78 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Generated Files">
<UniqueIdentifier>{71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11}</UniqueIdentifier>
<Extensions>cpp;c;cxx;moc;h;def;odl;idl;res;</Extensions>
</Filter>
<Filter Include="Generated Files">
<UniqueIdentifier>{71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11}</UniqueIdentifier>
<Extensions>cpp;c;cxx;moc;h;def;odl;idl;res;</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E}</UniqueIdentifier>
<Extensions>qrc;*</Extensions>
<ParseFiles>false</ParseFiles>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E}</UniqueIdentifier>
<Extensions>qrc;*</Extensions>
<ParseFiles>false</ParseFiles>
</Filter>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Translation Files">
<UniqueIdentifier>{639EADAA-A684-42e4-A9AD-28FC9BCB8F7C}</UniqueIdentifier>
<Extensions>ts;xlf</Extensions>
<ParseFiles>false</ParseFiles>
</Filter>
<Filter Include="Translation Files">
<UniqueIdentifier>{639EADAA-A684-42e4-A9AD-28FC9BCB8F7C}</UniqueIdentifier>
<Extensions>ts;xlf</Extensions>
<ParseFiles>false</ParseFiles>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="widget.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="tools.h">
<Filter>Header Files</Filter>
</ClInclude>
<QtMoc Include="widget.h">
<Filter>Header Files</Filter>
</QtMoc>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="debug\moc_predefs.h.cbt">
<Filter>Generated Files</Filter>
</CustomBuild>
<CustomBuild Include="release\moc_predefs.h.cbt">
<Filter>Generated Files</Filter>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="TestWidget_zh_CN.ts">
<Filter>Translation Files</Filter>
</CustomBuild>
</ItemGroup>
</Project>

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<QtLastBackgroundBuild>2022-11-28T01:11:57.9884290Z</QtLastBackgroundBuild>
</PropertyGroup>
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<QtLastBackgroundBuild>2022-11-28T01:11:58.0910934Z</QtLastBackgroundBuild>
</PropertyGroup>
</Project>

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,28 @@
 Moc'ing widget.h...
main.cpp
widget.cpp
d:\projects\cpp\qtnoveldesc\testpad\opstream.h(76): warning C4189: “one”: 局部变量已初始化但不引用 (编译源文件 widget.cpp)
d:\projects\cpp\qtnoveldesc\testpad\opstream.h(73): note: 编译 类 模板 成员函数 "Operate::OpStream<QStandardItem *>::OpStream(std::function<ValueType (int &,int)>)" 时
with
[
ValueType=QStandardItem *
] (编译源文件 widget.cpp)
d:\projects\cpp\qtnoveldesc\testwidget\tools.h(31): note: 参见对正在编译的函数 模板 实例化“Operate::OpStream<QStandardItem *>::OpStream(std::function<ValueType (int &,int)>)”的引用
with
[
ValueType=QStandardItem *
] (编译源文件 widget.cpp)
d:\projects\cpp\qtnoveldesc\testwidget\tools.h(26): note: 参见对正在编译的 类 模板 实例化 "Operate::OpStream<QStandardItem *>" 的引用 (编译源文件 widget.cpp)
d:\projects\cpp\qtnoveldesc\testwidget\tools.h(19): note: 编译 类 模板 成员函数 "void Tools::ModelSyncs<QString>::presentSync(std::function<QList<QString> (const BaseType &)>)" 时
with
[
BaseType=QString
] (编译源文件 widget.cpp)
d:\projects\cpp\qtnoveldesc\testwidget\widget.cpp(27): note: 参见对正在编译的函数 模板 实例化“void Tools::ModelSyncs<QString>::presentSync(std::function<QList<QString> (const BaseType &)>)”的引用
with
[
BaseType=QString
]
d:\projects\cpp\qtnoveldesc\testwidget\widget.cpp(17): note: 参见对正在编译的 类 模板 实例化 "Tools::ModelSyncs<QString>" 的引用
moc_widget.cpp
TestWidget.vcxproj -> D:\Projects\Cpp\QtNovelDesc\TestWidget\debug\TestWidget.exe

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,2 @@
#TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.22621.0
Debug|x64|D:\Projects\Cpp\QtNovelDesc\TestWidget\|

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
<クd<>箆!ソ`。スン

BIN
TestWidget/debug/main.obj Normal file

Binary file not shown.

View File

@ -0,0 +1,13 @@
#define _MSC_EXTENSIONS
#define _INTEGRAL_MAX_BITS 64
#define _MSC_VER 1916
#define _MSC_FULL_VER 191627048
#define _MSC_BUILD 0
#define _M_AMD64 100
#define _M_X64 100
#define _WIN64
#define _WIN32
#define _CPPRTTI
#define _DEBUG
#define _MT
#define _DLL

View File

@ -0,0 +1 @@
This is a dummy file needed to create debug/moc_predefs.h

View File

@ -0,0 +1,94 @@
/****************************************************************************
** Meta object code from reading C++ file 'widget.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.12.11)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "../widget.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'widget.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.12.11. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_Widget_t {
QByteArrayData data[1];
char stringdata0[7];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_Widget_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_Widget_t qt_meta_stringdata_Widget = {
{
QT_MOC_LITERAL(0, 0, 6) // "Widget"
},
"Widget"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_Widget[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
0 // eod
};
void Widget::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
Q_UNUSED(_o);
Q_UNUSED(_id);
Q_UNUSED(_c);
Q_UNUSED(_a);
}
QT_INIT_METAOBJECT const QMetaObject Widget::staticMetaObject = { {
&QWidget::staticMetaObject,
qt_meta_stringdata_Widget.data,
qt_meta_data_Widget,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *Widget::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *Widget::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_Widget.stringdata0))
return static_cast<void*>(this);
return QWidget::qt_metacast(_clname);
}
int Widget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QWidget::qt_metacall(_c, _id, _a);
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

Binary file not shown.

View File

@ -0,0 +1,59 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Qt_DEFINES_>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;QT_WIDGETS_LIB;QT_GUI_LIB;QT_CORE_LIB</Qt_DEFINES_>
<Qt_INCLUDEPATH_>D:\Projects\Cpp\QtNovelDesc\TestWidget\debug\qmake\temp;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include\QtWidgets;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include\QtGui;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include\QtANGLE;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include\QtCore;D:\Projects\Cpp\QtNovelDesc\TestWidget\debug\qmake\temp;/include;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\mkspecs\win32-msvc</Qt_INCLUDEPATH_>
<Qt_STDCPP_></Qt_STDCPP_>
<Qt_CL_OPTIONS_>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus</Qt_CL_OPTIONS_>
<Qt_LIBS_>C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\lib\Qt5Widgetsd.lib;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\lib\Qt5Guid.lib;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\lib\Qt5Cored.lib;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\lib\qtmaind.lib;shell32.lib</Qt_LIBS_>
<Qt_LINK_OPTIONS_>"/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'"</Qt_LINK_OPTIONS_>
<QMake_QT_SYSROOT_></QMake_QT_SYSROOT_>
<QMake_QT_INSTALL_PREFIX_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64</QMake_QT_INSTALL_PREFIX_>
<QMake_QT_INSTALL_ARCHDATA_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64</QMake_QT_INSTALL_ARCHDATA_>
<QMake_QT_INSTALL_DATA_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64</QMake_QT_INSTALL_DATA_>
<QMake_QT_INSTALL_DOCS_>C:/Qt/Qt5.12.11/Docs/Qt-5.12.11</QMake_QT_INSTALL_DOCS_>
<QMake_QT_INSTALL_HEADERS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/include</QMake_QT_INSTALL_HEADERS_>
<QMake_QT_INSTALL_LIBS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/lib</QMake_QT_INSTALL_LIBS_>
<QMake_QT_INSTALL_LIBEXECS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/bin</QMake_QT_INSTALL_LIBEXECS_>
<QMake_QT_INSTALL_BINS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/bin</QMake_QT_INSTALL_BINS_>
<QMake_QT_INSTALL_TESTS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/tests</QMake_QT_INSTALL_TESTS_>
<QMake_QT_INSTALL_PLUGINS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/plugins</QMake_QT_INSTALL_PLUGINS_>
<QMake_QT_INSTALL_IMPORTS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/imports</QMake_QT_INSTALL_IMPORTS_>
<QMake_QT_INSTALL_QML_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/qml</QMake_QT_INSTALL_QML_>
<QMake_QT_INSTALL_TRANSLATIONS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/translations</QMake_QT_INSTALL_TRANSLATIONS_>
<QMake_QT_INSTALL_CONFIGURATION_></QMake_QT_INSTALL_CONFIGURATION_>
<QMake_QT_INSTALL_EXAMPLES_>C:/Qt/Qt5.12.11/Examples/Qt-5.12.11</QMake_QT_INSTALL_EXAMPLES_>
<QMake_QT_INSTALL_DEMOS_>C:/Qt/Qt5.12.11/Examples/Qt-5.12.11</QMake_QT_INSTALL_DEMOS_>
<QMake_QT_HOST_PREFIX_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64</QMake_QT_HOST_PREFIX_>
<QMake_QT_HOST_DATA_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64</QMake_QT_HOST_DATA_>
<QMake_QT_HOST_BINS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/bin</QMake_QT_HOST_BINS_>
<QMake_QT_HOST_LIBS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/lib</QMake_QT_HOST_LIBS_>
<QMake_QMAKE_SPEC_>win32-msvc</QMake_QMAKE_SPEC_>
<QMake_QMAKE_XSPEC_>win32-msvc</QMake_QMAKE_XSPEC_>
<QMake_QMAKE_VERSION_>3.1</QMake_QMAKE_VERSION_>
<QMake_QT_VERSION_>5.12.11</QMake_QT_VERSION_>
<Qt_INCLUDEPATH_
>$(Qt_INCLUDEPATH_);Debug</Qt_INCLUDEPATH_>
<QtBkup_QtInstall
>5.12.11_msvc2017_64</QtBkup_QtInstall>
<QtBkup_QtModules
>core;gui;widgets</QtBkup_QtModules>
<QtBkup_QtPathBinaries
>bin</QtBkup_QtPathBinaries>
<QtBkup_QtPathLibraryExecutables
>bin</QtBkup_QtPathLibraryExecutables>
<QtBkup_QtHeaderSearchPath
></QtBkup_QtHeaderSearchPath>
<QtBkup_QtLibrarySearchPath
></QtBkup_QtLibrarySearchPath>
<QtBkup_QtVars
>DEFINES=/Project/ItemDefinitionGroup/ClCompile/PreprocessorDefinitions;INCLUDEPATH=/Project/ItemDefinitionGroup/ClCompile/AdditionalIncludeDirectories;STDCPP=/Project/ItemDefinitionGroup/ClCompile/LanguageStandard;CL_OPTIONS=/Project/ItemDefinitionGroup/ClCompile/AdditionalOptions;LIBS=/Project/ItemDefinitionGroup/Link/AdditionalDependencies;LINK_OPTIONS=/Project/ItemDefinitionGroup/Link/AdditionalOptions</QtBkup_QtVars>
<QtBkup_QMakeCodeLines
></QtBkup_QMakeCodeLines>
<QtBkup_QtBuildConfig
>debug</QtBkup_QtBuildConfig>
<QtVersion>5.12.11</QtVersion>
<QtVersionMajor>5</QtVersionMajor>
<QtVersionMinor>12</QtVersionMinor>
<QtVersionPatch>11</QtVersionPatch>
</PropertyGroup>
</Project>

View File

@ -0,0 +1 @@
C:\Users\WS\AppData\Local\Temp\1sd2f2ws.lo5.designtime.props

View File

@ -0,0 +1 @@
This is a dummy file needed to create ./moc_predefs.h

View File

@ -0,0 +1,25 @@
QT_SYSROOT:
QT_INSTALL_PREFIX:C:/Qt/Qt5.12.11/5.12.11/msvc2017_64
QT_INSTALL_ARCHDATA:C:/Qt/Qt5.12.11/5.12.11/msvc2017_64
QT_INSTALL_DATA:C:/Qt/Qt5.12.11/5.12.11/msvc2017_64
QT_INSTALL_DOCS:C:/Qt/Qt5.12.11/Docs/Qt-5.12.11
QT_INSTALL_HEADERS:C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/include
QT_INSTALL_LIBS:C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/lib
QT_INSTALL_LIBEXECS:C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/bin
QT_INSTALL_BINS:C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/bin
QT_INSTALL_TESTS:C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/tests
QT_INSTALL_PLUGINS:C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/plugins
QT_INSTALL_IMPORTS:C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/imports
QT_INSTALL_QML:C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/qml
QT_INSTALL_TRANSLATIONS:C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/translations
QT_INSTALL_CONFIGURATION:
QT_INSTALL_EXAMPLES:C:/Qt/Qt5.12.11/Examples/Qt-5.12.11
QT_INSTALL_DEMOS:C:/Qt/Qt5.12.11/Examples/Qt-5.12.11
QT_HOST_PREFIX:C:/Qt/Qt5.12.11/5.12.11/msvc2017_64
QT_HOST_DATA:C:/Qt/Qt5.12.11/5.12.11/msvc2017_64
QT_HOST_BINS:C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/bin
QT_HOST_LIBS:C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/lib
QMAKE_SPEC:win32-msvc
QMAKE_XSPEC:win32-msvc
QMAKE_VERSION:3.1
QT_VERSION:5.12.11

View File

View File

@ -0,0 +1,2 @@
CONFIG += no_fixpath
QT += core gui widgets

View File

@ -0,0 +1,83 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid></ProjectGuid>
<RootNamespace>qtvars</RootNamespace>
<Keyword>Qt4VSv1.0</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Debug|x64&apos;" Label="Configuration">
<PlatformToolset>v141</PlatformToolset>
<OutputDirectory>.\</OutputDirectory>
<ATLMinimizesCRunTimeLibraryUsage>false</ATLMinimizesCRunTimeLibraryUsage>
<CharacterSet>NotSet</CharacterSet>
<ConfigurationType>Application</ConfigurationType>
<PrimaryOutput>qtvars</PrimaryOutput>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Debug|x64&apos;" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists(&apos;$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props&apos;)" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<OutDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Debug|x64&apos;">.\</OutDir>
<TargetName Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Debug|x64&apos;">qtvars</TargetName>
<IgnoreImportLibrary Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Debug|x64&apos;">true</IgnoreImportLibrary>
</PropertyGroup>
<ItemDefinitionGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Debug|x64&apos;">
<ClCompile>
<AdditionalIncludeDirectories>D:\Projects\Cpp\QtNovelDesc\TestWidget\debug\qmake\temp;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include\QtWidgets;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include\QtGui;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include\QtANGLE;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include\QtCore;D:\Projects\Cpp\QtNovelDesc\TestWidget\debug\qmake\temp;/include;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\mkspecs\win32-msvc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
<AssemblerListingLocation>.\</AssemblerListingLocation>
<BrowseInformation>false</BrowseInformation>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<ExceptionHandling>Sync</ExceptionHandling>
<ObjectFileName>.\</ObjectFileName>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;QT_WIDGETS_LIB;QT_GUI_LIB;QT_CORE_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessToFile>false</PreprocessToFile>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<WarningLevel>TurnOffAllWarnings</WarningLevel>
</ClCompile>
<Link>
<AdditionalDependencies>C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\lib\Qt5Widgetsd.lib;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\lib\Qt5Guid.lib;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\lib\Qt5Cored.lib;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\lib\qtmaind.lib;shell32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>C:\openssl\lib;C:\Utils\my_sql\mysql-5.6.11-winx64\lib;C:\Utils\postgresql\pgsql\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalOptions>&quot;/MANIFESTDEPENDENCY:type=&apos;win32&apos; name=&apos;Microsoft.Windows.Common-Controls&apos; version=&apos;6.0.0.0&apos; publicKeyToken=&apos;6595b64144ccf1df&apos; language=&apos;*&apos; processorArchitecture=&apos;*&apos;&quot; %(AdditionalOptions)</AdditionalOptions>
<DataExecutionPrevention>true</DataExecutionPrevention>
<GenerateDebugInformation>true</GenerateDebugInformation>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
<OutputFile>$(OutDir)\qtvars.exe</OutputFile>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<SubSystem>Windows</SubSystem>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Link>
<Midl>
<DefaultCharType>Unsigned</DefaultCharType>
<EnableErrorChecks>None</EnableErrorChecks>
<WarningLevel>0</WarningLevel>
</Midl>
<ResourceCompile>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;QT_WIDGETS_LIB;QT_GUI_LIB;QT_CORE_LIB;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemGroup>
<CustomBuild Include="moc_predefs.h.cbt">
<FileType>Document</FileType>
<AdditionalInputs Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Debug|x64&apos;">C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\mkspecs\features\data\dummy.cpp;%(AdditionalInputs)</AdditionalInputs>
<Command Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Debug|x64&apos;">cl -BxC:\Qt\Qt5.12.11\5.12.11\msvc2017_64\bin\qmake.exe -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -Zi -MDd -W0 -E C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\mkspecs\features\data\dummy.cpp 2&gt;NUL &gt;moc_predefs.h</Command>
<Message Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Debug|x64&apos;">Generate moc_predefs.h</Message>
<Outputs Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Debug|x64&apos;">moc_predefs.h;%(Outputs)</Outputs>
</CustomBuild>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
</Project>

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Generated Files">
<UniqueIdentifier>{71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11}</UniqueIdentifier>
<Extensions>cpp;c;cxx;moc;h;def;odl;idl;res;</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="moc_predefs.h.cbt">
<Filter>Generated Files</Filter>
</CustomBuild>
</ItemGroup>
</Project>

View File

@ -0,0 +1,59 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Qt_DEFINES_>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;QT_WIDGETS_LIB;QT_GUI_LIB;QT_CORE_LIB</Qt_DEFINES_>
<Qt_INCLUDEPATH_>D:\Projects\Cpp\QtNovelDesc\TestWidget\debug\qmake\temp;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include\QtWidgets;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include\QtGui;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include\QtANGLE;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include\QtCore;D:\Projects\Cpp\QtNovelDesc\TestWidget\debug\qmake\temp;/include;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\mkspecs\win32-msvc</Qt_INCLUDEPATH_>
<Qt_STDCPP_></Qt_STDCPP_>
<Qt_CL_OPTIONS_>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus</Qt_CL_OPTIONS_>
<Qt_LIBS_>C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\lib\Qt5Widgetsd.lib;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\lib\Qt5Guid.lib;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\lib\Qt5Cored.lib;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\lib\qtmaind.lib;shell32.lib</Qt_LIBS_>
<Qt_LINK_OPTIONS_>"/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'"</Qt_LINK_OPTIONS_>
<QMake_QT_SYSROOT_></QMake_QT_SYSROOT_>
<QMake_QT_INSTALL_PREFIX_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64</QMake_QT_INSTALL_PREFIX_>
<QMake_QT_INSTALL_ARCHDATA_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64</QMake_QT_INSTALL_ARCHDATA_>
<QMake_QT_INSTALL_DATA_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64</QMake_QT_INSTALL_DATA_>
<QMake_QT_INSTALL_DOCS_>C:/Qt/Qt5.12.11/Docs/Qt-5.12.11</QMake_QT_INSTALL_DOCS_>
<QMake_QT_INSTALL_HEADERS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/include</QMake_QT_INSTALL_HEADERS_>
<QMake_QT_INSTALL_LIBS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/lib</QMake_QT_INSTALL_LIBS_>
<QMake_QT_INSTALL_LIBEXECS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/bin</QMake_QT_INSTALL_LIBEXECS_>
<QMake_QT_INSTALL_BINS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/bin</QMake_QT_INSTALL_BINS_>
<QMake_QT_INSTALL_TESTS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/tests</QMake_QT_INSTALL_TESTS_>
<QMake_QT_INSTALL_PLUGINS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/plugins</QMake_QT_INSTALL_PLUGINS_>
<QMake_QT_INSTALL_IMPORTS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/imports</QMake_QT_INSTALL_IMPORTS_>
<QMake_QT_INSTALL_QML_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/qml</QMake_QT_INSTALL_QML_>
<QMake_QT_INSTALL_TRANSLATIONS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/translations</QMake_QT_INSTALL_TRANSLATIONS_>
<QMake_QT_INSTALL_CONFIGURATION_></QMake_QT_INSTALL_CONFIGURATION_>
<QMake_QT_INSTALL_EXAMPLES_>C:/Qt/Qt5.12.11/Examples/Qt-5.12.11</QMake_QT_INSTALL_EXAMPLES_>
<QMake_QT_INSTALL_DEMOS_>C:/Qt/Qt5.12.11/Examples/Qt-5.12.11</QMake_QT_INSTALL_DEMOS_>
<QMake_QT_HOST_PREFIX_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64</QMake_QT_HOST_PREFIX_>
<QMake_QT_HOST_DATA_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64</QMake_QT_HOST_DATA_>
<QMake_QT_HOST_BINS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/bin</QMake_QT_HOST_BINS_>
<QMake_QT_HOST_LIBS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/lib</QMake_QT_HOST_LIBS_>
<QMake_QMAKE_SPEC_>win32-msvc</QMake_QMAKE_SPEC_>
<QMake_QMAKE_XSPEC_>win32-msvc</QMake_QMAKE_XSPEC_>
<QMake_QMAKE_VERSION_>3.1</QMake_QMAKE_VERSION_>
<QMake_QT_VERSION_>5.12.11</QMake_QT_VERSION_>
<Qt_INCLUDEPATH_
>$(Qt_INCLUDEPATH_);Debug</Qt_INCLUDEPATH_>
<QtBkup_QtInstall
>5.12.11_msvc2017_64</QtBkup_QtInstall>
<QtBkup_QtModules
>core;gui;widgets</QtBkup_QtModules>
<QtBkup_QtPathBinaries
>bin</QtBkup_QtPathBinaries>
<QtBkup_QtPathLibraryExecutables
>bin</QtBkup_QtPathLibraryExecutables>
<QtBkup_QtHeaderSearchPath
></QtBkup_QtHeaderSearchPath>
<QtBkup_QtLibrarySearchPath
></QtBkup_QtLibrarySearchPath>
<QtBkup_QtVars
>DEFINES=/Project/ItemDefinitionGroup/ClCompile/PreprocessorDefinitions;INCLUDEPATH=/Project/ItemDefinitionGroup/ClCompile/AdditionalIncludeDirectories;STDCPP=/Project/ItemDefinitionGroup/ClCompile/LanguageStandard;CL_OPTIONS=/Project/ItemDefinitionGroup/ClCompile/AdditionalOptions;LIBS=/Project/ItemDefinitionGroup/Link/AdditionalDependencies;LINK_OPTIONS=/Project/ItemDefinitionGroup/Link/AdditionalOptions</QtBkup_QtVars>
<QtBkup_QMakeCodeLines
></QtBkup_QMakeCodeLines>
<QtBkup_QtBuildConfig
>debug</QtBkup_QtBuildConfig>
<QtVersion>5.12.11</QtVersion>
<QtVersionMajor>5</QtVersionMajor>
<QtVersionMinor>12</QtVersionMinor>
<QtVersionPatch>11</QtVersionPatch>
</PropertyGroup>
</Project>

View File

@ -0,0 +1,5 @@
<!DOCTYPE RCC><RCC version="1.0">
<qresource prefix="i18n">
<file alias="TestWidget_zh_CN.qm">D:/Projects/Cpp/QtNovelDesc/TestWidget/debug/TestWidget_zh_CN.qm</file>
</qresource>
</RCC>

View File

@ -0,0 +1,90 @@
/****************************************************************************
** Resource object code
**
** Created by: The Resource Compiler for Qt version 5.12.11
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
static const unsigned char qt_resource_data[] = {
// D:/Projects/Cpp/QtNovelDesc/TestWidget/debug/TestWidget_zh_CN.qm
0x0,0x0,0x0,0x10,
0x3c,
0xb8,0x64,0x18,0xca,0xef,0x9c,0x95,0xcd,0x21,0x1c,0xbf,0x60,0xa1,0xbd,0xdd,
};
static const unsigned char qt_resource_name[] = {
// i18n
0x0,0x4,
0x0,0x6,0xc4,0xee,
0x0,0x69,
0x0,0x31,0x0,0x38,0x0,0x6e,
// TestWidget_zh_CN.qm
0x0,0x13,
0x4,0xa7,0xae,0x5d,
0x0,0x54,
0x0,0x65,0x0,0x73,0x0,0x74,0x0,0x57,0x0,0x69,0x0,0x64,0x0,0x67,0x0,0x65,0x0,0x74,0x0,0x5f,0x0,0x7a,0x0,0x68,0x0,0x5f,0x0,0x43,0x0,0x4e,0x0,0x2e,
0x0,0x71,0x0,0x6d,
};
static const unsigned char qt_resource_struct[] = {
// :
0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x1,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
// :/i18n
0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x2,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
// :/i18n/TestWidget_zh_CN.qm
0x0,0x0,0x0,0xe,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,
0x0,0x0,0x1,0x84,0xbb,0xcd,0x97,0xa7,
};
#ifdef QT_NAMESPACE
# define QT_RCC_PREPEND_NAMESPACE(name) ::QT_NAMESPACE::name
# define QT_RCC_MANGLE_NAMESPACE0(x) x
# define QT_RCC_MANGLE_NAMESPACE1(a, b) a##_##b
# define QT_RCC_MANGLE_NAMESPACE2(a, b) QT_RCC_MANGLE_NAMESPACE1(a,b)
# define QT_RCC_MANGLE_NAMESPACE(name) QT_RCC_MANGLE_NAMESPACE2( \
QT_RCC_MANGLE_NAMESPACE0(name), QT_RCC_MANGLE_NAMESPACE0(QT_NAMESPACE))
#else
# define QT_RCC_PREPEND_NAMESPACE(name) name
# define QT_RCC_MANGLE_NAMESPACE(name) name
#endif
#ifdef QT_NAMESPACE
namespace QT_NAMESPACE {
#endif
bool qRegisterResourceData(int, const unsigned char *, const unsigned char *, const unsigned char *);
bool qUnregisterResourceData(int, const unsigned char *, const unsigned char *, const unsigned char *);
#ifdef QT_NAMESPACE
}
#endif
int QT_RCC_MANGLE_NAMESPACE(qInitResources_qmake_qmake_qm_files)();
int QT_RCC_MANGLE_NAMESPACE(qInitResources_qmake_qmake_qm_files)()
{
QT_RCC_PREPEND_NAMESPACE(qRegisterResourceData)
(0x2, qt_resource_struct, qt_resource_name, qt_resource_data);
return 1;
}
int QT_RCC_MANGLE_NAMESPACE(qCleanupResources_qmake_qmake_qm_files)();
int QT_RCC_MANGLE_NAMESPACE(qCleanupResources_qmake_qmake_qm_files)()
{
QT_RCC_PREPEND_NAMESPACE(qUnregisterResourceData)
(0x2, qt_resource_struct, qt_resource_name, qt_resource_data);
return 1;
}
namespace {
struct initializer {
initializer() { QT_RCC_MANGLE_NAMESPACE(qInitResources_qmake_qmake_qm_files)(); }
~initializer() { QT_RCC_MANGLE_NAMESPACE(qCleanupResources_qmake_qmake_qm_files)(); }
} dummy;
}

835
TestWidget/debug/qt.natvis Normal file
View File

@ -0,0 +1,835 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
****************************************************************************
**
** Copyright (C) 2022 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt VS Tools.
**
** $QT_BEGIN_LICENSE:GPL-EXCEPT$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 as published by the Free Software
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
****************************************************************************
-->
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<Type Name="QPoint">
<AlternativeType Name="QPointF"/>
<DisplayString>{{ x = {xp}, y = {yp} }}</DisplayString>
<Expand>
<Item Name="[x]">xp</Item>
<Item Name="[y]">yp</Item>
</Expand>
</Type>
<Type Name="QRect">
<DisplayString>{{ x = {x1}, y = {y1}, width = {x2 - x1 + 1}, height = {y2 - y1 + 1} }}</DisplayString>
<Expand>
<Item Name="[x]">x1</Item>
<Item Name="[y]">y1</Item>
<Item Name="[width]">x2 - x1 + 1</Item>
<Item Name="[height]">y2 - y1 + 1</Item>
</Expand>
</Type>
<Type Name="QRectF">
<DisplayString>{{ x = {xp}, y = {yp}, width = {w}, height = {h} }}</DisplayString>
<Expand>
<Item Name="[x]">xp</Item>
<Item Name="[y]">yp</Item>
<Item Name="[width]">w</Item>
<Item Name="[height]">h</Item>
</Expand>
</Type>
<Type Name="QSize">
<AlternativeType Name="QSizeF"/>
<DisplayString>{{ width = {wd}, height = {ht} }}</DisplayString>
<Expand>
<Item Name="[width]">wd</Item>
<Item Name="[height]">ht</Item>
</Expand>
</Type>
<Type Name="QLine">
<AlternativeType Name="QLineF"/>
<DisplayString>{{ start point = {pt1}, end point = {pt2} }}</DisplayString>
<Expand>
<Synthetic Name="[start point]">
<DisplayString>{pt1}</DisplayString>
<Expand>
<ExpandedItem>pt1</ExpandedItem>
</Expand>
</Synthetic>
<Synthetic Name="[end point]">
<DisplayString>{pt2}</DisplayString>
<Expand>
<ExpandedItem>pt2</ExpandedItem>
</Expand>
</Synthetic>
</Expand>
</Type>
<Type Name="QPolygon">
<DisplayString>{{ size = {d-&gt;size} }}</DisplayString>
<Expand>
<Item Name="[referenced]">d-&gt;ref.atomic._q_value</Item>
<ArrayItems>
<Size>d-&gt;size</Size>
<ValuePointer>(QPoint*)((reinterpret_cast&lt;char*&gt;(d)) + d-&gt;offset)</ValuePointer>
</ArrayItems>
</Expand>
</Type>
<Type Name="QPolygonF">
<DisplayString>{{ size = {d-&gt;size} }}</DisplayString>
<Expand>
<Item Name="[closed]">
d-&gt;size &gt; 0
&amp;&amp; ((((QPointF*)((reinterpret_cast&lt;char*&gt;(d)) + d-&gt;offset)[0]).xp
== (((QPointF*)((reinterpret_cast&lt;char*&gt;(d)) + d-&gt;offset)[d-&gt;size - 1]).xp)
&amp;&amp; ((((QPointF*)((reinterpret_cast&lt;char*&gt;(d)) + d-&gt;offset)[0]).yp
== (((QPointF*)((reinterpret_cast&lt;char*&gt;(d)) + d-&gt;offset)[d-&gt;size - 1]).yp)
</Item>
<Item Name="[referenced]">d-&gt;ref.atomic._q_value</Item>
<ArrayItems>
<Size>d-&gt;size</Size>
<ValuePointer>(QPointF*)((reinterpret_cast&lt;char*&gt;(d)) + d-&gt;offset)</ValuePointer>
</ArrayItems>
</Expand>
</Type>
<Type Name ="QVector2D">
<DisplayString>{{ x = {xp}, y = {yp} }}</DisplayString>
<Expand>
<Item Name="[x]">xp</Item>
<Item Name="[y]">yp</Item>
</Expand>
</Type>
<Type Name ="QVector3D">
<DisplayString>{{ x = {xp}, y = {yp}, z = {zp} }}</DisplayString>
<Expand>
<Item Name="[x]">xp</Item>
<Item Name="[y]">yp</Item>
<Item Name="[z]">zp</Item>
</Expand>
</Type>
<Type Name ="QVector4D">
<DisplayString>{{ x = {xp}, y = {yp}, z = {zp}, w = {wp} }}</DisplayString>
<Expand>
<Item Name="[x]">xp</Item>
<Item Name="[y]">yp</Item>
<Item Name="[z]">zp</Item>
<Item Name="[w]">wp</Item>
</Expand>
</Type>
<Type Name ="QMatrix">
<DisplayString>
{{ m11 = {_m11}, m12 = {_m12}, m21 = {_m21}, m22 = {_m22}, ... }}
</DisplayString>
<Expand>
<Item Name="[m11]">_m11</Item>
<Item Name="[m12]">_m12</Item>
<Item Name="[m21]">_m21</Item>
<Item Name="[m22]">_m22</Item>
<Item Name="[dx]">_dx</Item>
<Item Name="[dy]">_dy</Item>
</Expand>
</Type>
<Type Name ="QMatrix4x4">
<DisplayString>
{{ m11 = {m[0][0]}, m12 = {m[1][0]}, m13 = {m[2][0]}, m14 = {m[3][0]}, ... }}
</DisplayString>
<Expand>
<Item Name="[m11]">m[0][0]</Item>
<Item Name="[m12]">m[1][0]</Item>
<Item Name="[m13]">m[2][0]</Item>
<Item Name="[m14]">m[3][0]</Item>
<Item Name="[m21]">m[0][1]</Item>
<Item Name="[m22]">m[1][1]</Item>
<Item Name="[m23]">m[2][1]</Item>
<Item Name="[m24]">m[3][1]</Item>
<Item Name="[m31]">m[0][2]</Item>
<Item Name="[m32]">m[1][2]</Item>
<Item Name="[m33]">m[2][2]</Item>
<Item Name="[m34]">m[3][2]</Item>
<Item Name="[m41]">m[0][3]</Item>
<Item Name="[m42]">m[1][3]</Item>
<Item Name="[m43]">m[2][3]</Item>
<Item Name="[m44]">m[3][3]</Item>
</Expand>
</Type>
<Type Name="QSizePolicy">
<DisplayString>
{{ horizontal = {static_cast&lt;Policy&gt;(bits.horPolicy)}, vertical = {static_cast&lt;Policy&gt;(bits.verPolicy)}, type = {ControlType(1 &lt;&lt; bits.ctype)} }}
</DisplayString>
<Expand>
<Synthetic Name="[vertical policy]">
<DisplayString>QSizePolicy::Policy::{static_cast&lt;Policy&gt;(bits.verPolicy)}</DisplayString>
</Synthetic>
<Synthetic Name="[horizontal policy]">
<DisplayString>QSizePolicy::Policy::{static_cast&lt;Policy&gt;(bits.horPolicy)}</DisplayString>
</Synthetic>
<Synthetic Name="[control type]">
<DisplayString>QSizePolicy::ControlType::{ControlType(1 &lt;&lt; bits.ctype)}</DisplayString>
</Synthetic>
<Synthetic Name="[expanding directions]">
<DisplayString
Condition="(static_cast&lt;Policy&gt;(bits.verPolicy) &amp; ExpandFlag)">
Qt::Vertical (2)
</DisplayString>
<DisplayString
Condition="(static_cast&lt;Policy&gt;(bits.horPolicy) &amp; ExpandFlag)">
Qt::Horizontal (1)
</DisplayString>
</Synthetic>
<Item Name="[vertical stretch]">static_cast&lt;int&gt;(bits.verStretch)</Item>
<Item Name="[horizontal stretch]">static_cast&lt;int&gt;(bits.horStretch)</Item>
<Item Name="[has height for width]">bits.hfw == 1</Item>
<Item Name="[has width for height]">bits.wfh == 1</Item>
</Expand>
</Type>
<Type Name="QChar">
<DisplayString>{ucs,c}</DisplayString>
<StringView>ucs,c</StringView>
<Expand>
<Item Name="[latin 1]">ucs > 0xff ? '\0' : char(ucs),c</Item>
<Item Name="[unicode]">ucs,c</Item>
</Expand>
</Type>
<Type Name="QString">
<DisplayString>{((reinterpret_cast&lt;unsigned short*&gt;(d)) + d-&gt;offset / 2),sub}</DisplayString>
<StringView>((reinterpret_cast&lt;unsigned short*&gt;(d)) + d-&gt;offset / 2),sub</StringView>
<Expand>
<Item Name="[size]">d-&gt;size</Item>
<Item Name="[referenced]">d-&gt;ref.atomic._q_value</Item>
<ArrayItems>
<Size>d-&gt;size</Size>
<ValuePointer>((reinterpret_cast&lt;unsigned short*&gt;(d)) + d-&gt;offset / 2),c</ValuePointer>
</ArrayItems>
</Expand>
</Type>
<Type Name="QStringRef">
<Intrinsic Name="offset" Expression="(reinterpret_cast&lt;char16_t*&gt;(m_string-&gt;d))
+ m_string-&gt;d->offset / 2" />
<DisplayString Condition="m_string == nullptr">{m_string,[m_size]} u""</DisplayString>
<DisplayString Condition="m_string != nullptr">{offset() + m_position,[m_size]}</DisplayString>
<Expand>
<Item Name="[position]" ExcludeView="simple">m_position</Item>
<Item Name="[size]" ExcludeView="simple">m_size</Item>
<ArrayItems Condition="m_string != nullptr">
<Size>m_size</Size>
<ValuePointer>offset()+m_position</ValuePointer>
</ArrayItems>
</Expand>
</Type>
<Type Name="QStringView">
<DisplayString>{m_data,[m_size]}</DisplayString>
<StringView>m_data,[m_size]</StringView>
<Expand>
<Item Name="[size]" ExcludeView="simple">m_size</Item>
<ArrayItems>
<Size>m_size</Size>
<ValuePointer>m_data</ValuePointer>
</ArrayItems>
</Expand>
</Type>
<Type Name="QByteArray">
<DisplayString>{((reinterpret_cast&lt;char*&gt;(d)) + d-&gt;offset),sb}</DisplayString>
<StringView>((reinterpret_cast&lt;char*&gt;(d)) + d-&gt;offset),sb</StringView>
<Expand>
<Item Name="[size]">d-&gt;size</Item>
<Item Name="[referenced]">d-&gt;ref.atomic._q_value</Item>
<ArrayItems>
<Size>d-&gt;size</Size>
<ValuePointer>((reinterpret_cast&lt;char*&gt;(d)) + d-&gt;offset),c</ValuePointer>
</ArrayItems>
</Expand>
</Type>
<Type Name="QUrl">
<Intrinsic Name="isEmpty" Expression="size==0">
<Parameter Name="size" Type="int"/>
</Intrinsic>
<Intrinsic Name="memberOffset" Expression="sizeof(QAtomicInt) + sizeof(int) + (sizeof(QString) * count)">
<Parameter Name="count" Type="int"/>
</Intrinsic>
<Intrinsic Name="scheme" Expression="*((QString*)(((char*)(d) + memberOffset(0))))" />
<Intrinsic Name="username" Expression="*((QString*)(((char*)(d) + memberOffset(1))))" />
<Intrinsic Name="password" Expression="*((QString*)(((char*)(d) + memberOffset(2))))" />
<Intrinsic Name="host" Expression="*((QString*)(((char*)(d) + memberOffset(3))))" />
<Intrinsic Name="path" Expression="*((QString*)(((char*)(d) + memberOffset(4))))" />
<Intrinsic Name="query" Expression="*((QString*)(((char*)(d) + memberOffset(5))))" />
<Intrinsic Name="fragment" Expression="*((QString*)(((char*)(d) + memberOffset(6))))" />
<DisplayString Condition="!isEmpty(scheme().d-&gt;size)">{scheme()}://{host()}{path()}</DisplayString>
<DisplayString Condition="isEmpty(scheme().d-&gt;size)">{path()}</DisplayString>
<Expand>
<Item Name="[scheme]">scheme()</Item>
<Item Name="[username]">username()</Item>
<Item Name="[password]">password()</Item>
<Item Name="[host]">host()</Item>
<Item Name="[path]">path()</Item>
<Item Name="[query]">query()</Item>
<Item Name="[fragment]">fragment()</Item>
</Expand>
</Type>
<Type Name="QBitArray">
<DisplayString>{{ size = {(d.d-&gt;size &lt;&lt; 3) - *((reinterpret_cast&lt;char*&gt;(d.d)) + d.d-&gt;offset)} }}</DisplayString>
<Expand>
<Item Name="[referenced]">d.d-&gt;ref.atomic._q_value</Item>
<IndexListItems>
<Size>(d.d-&gt;size &lt;&lt; 3) - *((reinterpret_cast&lt;char*&gt;(d.d)) + d.d-&gt;offset)</Size>
<ValueNode>
(*(reinterpret_cast&lt;const unsigned char*&gt;((reinterpret_cast&lt;char*&gt;(d.d)) + d.d-&gt;offset) + 1
+ ($i &gt;&gt; 3)) &amp; (1 &lt;&lt; ($i &amp; 7))) != 0
</ValueNode>
</IndexListItems>
</Expand>
</Type>
<Type Name="QVarLengthArray&lt;*&gt;">
<AlternativeType Name="QVarLengthArray&lt;*, int&gt;"/>
<DisplayString>{{ size = {s} }}</DisplayString>
<Expand>
<Item Name="[capacity]">a</Item>
<ArrayItems>
<Size>s</Size>
<ValuePointer>ptr</ValuePointer>
</ArrayItems>
</Expand>
</Type>
<Type Name="QDate">
<DisplayString>{{ julian day = {jd} }}</DisplayString>
<Expand></Expand>
</Type>
<Type Name="QTime">
<DisplayString
Condition="mds == 1">{{ millisecond = {mds} }}</DisplayString>
<DisplayString
Condition="mds != 1">{{ milliseconds = {mds} }}</DisplayString>
<Expand>
<Item Name="[hour]"
Condition="(mds / 3600000) == 1">mds / 3600000, d</Item>
<Item Name="[hours]"
Condition="(mds / 3600000) != 1">mds / 3600000, d</Item>
<Item Name="[minute]"
Condition="((mds % 3600000) / 60000) == 1">(mds % 3600000) / 60000, d</Item>
<Item Name="[minutes]"
Condition="((mds % 3600000) / 60000) != 1">(mds % 3600000) / 60000, d</Item>
<Item Name="[second]"
Condition="((mds / 1000) % 60) == 1">(mds / 1000) % 60, d</Item>
<Item Name="[seconds]"
Condition="((mds / 1000) % 60) != 1">(mds / 1000) % 60, d</Item>
<Item Name="[millisecond]"
Condition="(mds % 1000) == 1">mds % 1000, d</Item>
<Item Name="[milliseconds]"
Condition="(mds % 1000) != 1">mds % 1000, d</Item>
</Expand>
</Type>
<Type Name="QRegularExpression">
<DisplayString>{d.pattern}</DisplayString>
</Type>
<Type Name="QSharedData">
<Expand>
<Item Name="[referenced]">ref._q_value</Item>
</Expand>
</Type>
<Type Name="QSharedPointer&lt;*&gt;">
<DisplayString>strong reference to shared pointer of type {"$T1"}</DisplayString>
<Expand>
<Item Name="[is null]">value == 0</Item>
<Item Name="[weak referenced]">d-&gt;weakref._q_value</Item>
<Item Name="[strong referenced]">d-&gt;strongref._q_value</Item>
</Expand>
</Type>
<Type Name="QSharedDataPointer&lt;*&gt;">
<DisplayString>pointer to implicit shared object of type {"$T1"}</DisplayString>
<Expand>
<ExpandedItem>d</ExpandedItem>
</Expand>
</Type>
<Type Name="QExplicitlySharedDataPointer&lt;*&gt;">
<DisplayString>pointer to explicit shared object of type {"$T1"}</DisplayString>
<Expand>
<ExpandedItem>d</ExpandedItem>
</Expand>
</Type>
<Type Name="QPointer&lt;*&gt;">
<DisplayString>guarded pointer to subclass of QObject of type {"$T1"}</DisplayString>
<Expand>
<Item Name="[is null]">wp.d == 0 || wp.d-&gt;strongref._q_value == 0 || wp.value == 0</Item>
</Expand>
</Type>
<Type Name="QWeakPointer&lt;*&gt;">
<DisplayString>weak reference to shared pointer of type {"$T1"}</DisplayString>
<Expand>
<Item Name="[is null]">d == 0 || d-&gt;strongref._q_value == 0 || value == 0</Item>
<Item Name="[weak referenced]">d-&gt;weakref._q_value</Item>
<Item Name="[strong referenced]">d-&gt;strongref._q_value</Item>
</Expand>
</Type>
<Type Name="QScopedPointer&lt;*&gt;">
<DisplayString>scoped pointer to a dynamically allocated object of type {"$T1"}</DisplayString>
<Expand>
<Item Name="[is null]">!d</Item>
</Expand>
</Type>
<Type Name="QScopedArrayPointer&lt;*&gt;">
<DisplayString>scoped pointer to dynamically allocated array of objects of type {"$T1"}</DisplayString>
<Expand>
<Item Name="[is null]">!d</Item>
</Expand>
</Type>
<Type Name="QPair&lt;*,*&gt;">
<DisplayString>({first}, {second})</DisplayString>
<Expand>
<Item Name="[first]">first</Item>
<Item Name="[second]">second</Item>
</Expand>
</Type>
<Type Name="QVector&lt;*&gt;">
<AlternativeType Name="QStack&lt;*&gt;"></AlternativeType>
<DisplayString>{{ size = {d-&gt;size} }}</DisplayString>
<Expand>
<Item Name="[referenced]">d-&gt;ref.atomic._q_value</Item>
<ArrayItems>
<Size>d-&gt;size</Size>
<ValuePointer>($T1*)((reinterpret_cast&lt;char*&gt;(d)) + d-&gt;offset)</ValuePointer>
</ArrayItems>
</Expand>
</Type>
<Type Name="QList&lt;*&gt;">
<AlternativeType Name="QQueue&lt;*&gt;"></AlternativeType>
<DisplayString>{{ size = {d-&gt;end - d-&gt;begin} }}</DisplayString>
<Expand>
<Item Name="[referenced]">d-&gt;ref.atomic._q_value</Item>
<IndexListItems>
<Size>d-&gt;end - d-&gt;begin</Size>
<ValueNode>*reinterpret_cast&lt;$T1*&gt;((sizeof($T1) &gt; sizeof(void*))
? reinterpret_cast&lt;Node*&gt;(d-&gt;array + d-&gt;begin + $i)-&gt;v
: reinterpret_cast&lt;$T1*&gt;(d-&gt;array + d-&gt;begin + $i))
</ValueNode>
</IndexListItems>
</Expand>
</Type>
<Type Name="QStringList">
<DisplayString>{{ size = {d-&gt;end - d-&gt;begin} }}</DisplayString>
<Expand>
<Item Name="[referenced]">d-&gt;ref.atomic._q_value</Item>
<IndexListItems>
<Size>d-&gt;end - d-&gt;begin</Size>
<ValueNode>
*reinterpret_cast&lt;QString*&gt;((sizeof(QString) &gt; sizeof(void*))
? reinterpret_cast&lt;Node*&gt;(d-&gt;array + d-&gt;begin + $i)-&gt;v
: reinterpret_cast&lt;QString*&gt;(d-&gt;array + d-&gt;begin + $i))
</ValueNode>
</IndexListItems>
</Expand>
</Type>
<Type Name="QList&lt;QVariant&gt;">
<DisplayString>{{ size = {d-&gt;end - d-&gt;begin} }}</DisplayString>
<Expand>
<Item Name="[referenced]">d-&gt;ref.atomic._q_value</Item>
<IndexListItems>
<Size>d-&gt;end - d-&gt;begin</Size>
<ValueNode>
*reinterpret_cast&lt;QVariant*&gt;((sizeof(QVariant) &gt; sizeof(void*))
? reinterpret_cast&lt;Node*&gt;(d-&gt;array + d-&gt;begin + $i)-&gt;v
: reinterpret_cast&lt;QVariant*&gt;(d-&gt;array + d-&gt;begin + $i))
</ValueNode>
</IndexListItems>
</Expand>
</Type>
<Type Name="QLinkedList&lt;*&gt;">
<DisplayString>{{ size = {d-&gt;size} }}</DisplayString>
<Expand>
<Item Name="[referenced]">d-&gt;ref.atomic._q_value</Item>
<LinkedListItems>
<Size>d-&gt;size</Size>
<HeadPointer>d-&gt;n</HeadPointer>
<NextPointer>n</NextPointer>
<ValueNode>(*(QLinkedListNode&lt;$T1&gt;*)this).t</ValueNode>
</LinkedListItems>
</Expand>
</Type>
<Type Name="QMapNode&lt;*,*&gt;">
<DisplayString>({key}, {value})</DisplayString>
<Expand>
<Item Name="[key]">key</Item>
<Item Name="[value]">value</Item>
</Expand>
</Type>
<Type Name="QMap&lt;*,*&gt;">
<AlternativeType Name="QMultiMap&lt;*,*&gt;"/>
<DisplayString>{{ size = {d-&gt;size} }}</DisplayString>
<Expand>
<Item Name="[referenced]">d-&gt;ref.atomic._q_value</Item>
<TreeItems>
<Size>d-&gt;size</Size>
<HeadPointer>d-&gt;header.left</HeadPointer>
<LeftPointer>left</LeftPointer>
<RightPointer>right</RightPointer>
<ValueNode>*((QMapNode&lt;$T1,$T2&gt;*)this)</ValueNode>
</TreeItems>
</Expand>
</Type>
<Type Name="QHashNode&lt;*,*&gt;">
<DisplayString Condition="next == 0">(empty)</DisplayString>
<DisplayString Condition="next != 0">({key}, {value})</DisplayString>
<Expand>
<Item Name="[key]" Condition="next != 0">key</Item>
<Item Name="[value]" Condition="next != 0">value</Item>
<Item Name="[next]" Condition="next != 0">next</Item>
</Expand>
</Type>
<Type Name="QHash&lt;*,*&gt;">
<AlternativeType Name="QMultiHash&lt;*,*&gt;"/>
<DisplayString>{{ size = {d-&gt;size} }}</DisplayString>
<Expand>
<ArrayItems IncludeView="buckets">
<Size>d-&gt;numBuckets</Size>
<ValuePointer>reinterpret_cast&lt;Node **&gt;(d-&gt;buckets)</ValuePointer>
</ArrayItems>
<CustomListItems ExcludeView="buckets">
<Variable Name="n" InitialValue="d-&gt;numBuckets"/>
<Variable Name="bucket" InitialValue="d-&gt;buckets"/>
<Variable Name="node" InitialValue="d-&gt;buckets[0]"/>
<Variable Name="keyValuePair" InitialValue="reinterpret_cast&lt;Node *&gt;(0)"/>
<Size>d-&gt;size</Size>
<Loop>
<Break Condition="n == 0"/>
<Exec>node = *(bucket++)</Exec>
<Exec>--n</Exec>
<Loop>
<Break Condition="!node || !node-&gt;next"/>
<Exec>keyValuePair = reinterpret_cast&lt;Node *&gt;(node)</Exec>
<Item Name="[{keyValuePair-&gt;key}]">keyValuePair-&gt;value</Item>
<Exec>node = node-&gt;next</Exec>
</Loop>
</Loop>
</CustomListItems>
</Expand>
</Type>
<Type Name="QHashNode&lt;*,QHashDummyValue&gt;">
<DisplayString Condition="next == 0">(empty)</DisplayString>
<DisplayString Condition="next != 0">({key})</DisplayString>
<Expand>
<Item Name="[key]" Condition="next != 0">key</Item>
</Expand>
</Type>
<Type Name="QSet&lt;*&gt;">
<DisplayString>{{ size = {q_hash.d-&gt;size} }}</DisplayString>
<Expand>
<ExpandedItem>q_hash</ExpandedItem>
</Expand>
</Type>
<Type Name="QCache&lt;*,*&gt;::Node">
<DisplayString>({*keyPtr}, {*t})</DisplayString>
<Expand>
<Item Name="[key]">*keyPtr</Item>
<Item Name="[value]">*t</Item>
</Expand>
</Type>
<Type Name="QCache&lt;*,*&gt;">
<DisplayString>{{ size = {hash.d-&gt;size} }}</DisplayString>
<Expand>
<Item Name="[max coast]">mx</Item>
<Item Name="[total coast]">total</Item>
<Item Name="[referenced]">hash.d-&gt;ref.atomic._q_value</Item>
<LinkedListItems>
<Size>hash.d-&gt;size</Size>
<HeadPointer>f</HeadPointer>
<NextPointer>n</NextPointer>
<ValueNode>*((Node*)this)</ValueNode>
</LinkedListItems>
</Expand>
</Type>
<Type Name="QStandardItemPrivate">
<Intrinsic Name="memberOffset" Expression="sizeof(QStandardItemModel *)
+ sizeof(QStandardItem *)
+ sizeof(int *)
+ sizeof(int *)
+ (sizeof(int) * count)">
<Parameter Name="count" Type="int"/>
</Intrinsic>
<Intrinsic Name="rows" Expression="*((int*)(((char*)(this)) + memberOffset(0)))" />
<Intrinsic Name="columns" Expression="*((int*)(((char*)(this)) + memberOffset(1)))" />
</Type>
<Type Name="QStandardItem">
<DisplayString>{{ row count = {(*d_ptr.d).rows()}, column count = {(*d_ptr.d).columns()} }}</DisplayString>
<Expand>
<Item Name="[d]">d_ptr.d,!</Item>
<Item Name="[row count]">(*d_ptr.d).rows()</Item>
<Item Name="[column count]">(*d_ptr.d).columns()</Item>
</Expand>
</Type>
<Type Name="QVariant">
<!--Region DisplayString QVariant-->
<DisplayString Condition="d.type == QMetaType::UnknownType">Invalid</DisplayString>
<DisplayString Condition="d.type == QMetaType::Bool">{d.data.b}</DisplayString>
<DisplayString Condition="d.type == QMetaType::Int">{d.data.i}</DisplayString>
<DisplayString Condition="d.type == QMetaType::UInt">{d.data.u}</DisplayString>
<DisplayString Condition="d.type == QMetaType::LongLong">{d.data.ll}</DisplayString>
<DisplayString Condition="d.type == QMetaType::ULongLong">{d.data.ull}</DisplayString>
<DisplayString Condition="d.type == QMetaType::Double">{d.data.d}</DisplayString>
<DisplayString Condition="d.type == QMetaType::QChar">{d.data.c}</DisplayString>
<DisplayString Condition="d.type == QMetaType::QVariantMap">
{*((QMap&lt;QString,QVariant&gt;*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
</DisplayString>
<DisplayString Condition="d.type == QMetaType::QVariantList">
{*((QList&lt;QVariant&gt;*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
</DisplayString>
<DisplayString Condition="d.type == QMetaType::QString">
{*((QString*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
</DisplayString>
<DisplayString Condition="d.type == QMetaType::QStringList">
{*((QStringList*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
</DisplayString>
<DisplayString Condition="d.type == QMetaType::QByteArray">
{*((QByteArray*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
</DisplayString>
<DisplayString Condition="d.type == QMetaType::QBitArray">
{*((QBitArray*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
</DisplayString>
<DisplayString Condition="d.type == QMetaType::QDate">
{*((QDate*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
</DisplayString>
<DisplayString Condition="d.type == QMetaType::QTime">
{*((QTime*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
</DisplayString>
<DisplayString Condition="d.type == QMetaType::QDateTime">DateTime</DisplayString>
<DisplayString Condition="d.type == QMetaType::QUrl">Url</DisplayString>
<DisplayString Condition="d.type == QMetaType::QLocale">Locale</DisplayString>
<DisplayString Condition="d.type == QMetaType::QRect">
{*((QRect*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
</DisplayString>
<DisplayString Condition="d.type == QMetaType::QRectF">
{*((QRectF*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
</DisplayString>
<DisplayString Condition="d.type == QMetaType::QSize">
{*((QSize*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
</DisplayString>
<DisplayString Condition="d.type == QMetaType::QSizeF">
{*((QSizeF*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
</DisplayString>
<DisplayString Condition="d.type == QMetaType::QLine">
{*((QLine*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
</DisplayString>
<DisplayString Condition="d.type == QMetaType::QLineF">
{*((QLineF*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
</DisplayString>
<DisplayString Condition="d.type == QMetaType::QPoint">
{*((QPoint*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
</DisplayString>
<DisplayString Condition="d.type == QMetaType::QPointF">
{*((QPointF*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
</DisplayString>
<DisplayString Condition="d.type == QMetaType::QRegExp">RegExp</DisplayString>
<DisplayString Condition="d.type == QMetaType::QRegularExpression">RegularExpression</DisplayString>
<DisplayString Condition="d.type == QMetaType::QVariantHash">
{*((QHash&lt;QString,QVariant&gt;*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))}
</DisplayString>
<DisplayString Condition="d.type == QMetaType::QEasingCurve">EasingCurve</DisplayString>
<DisplayString Condition="d.type == QMetaType::QUuid">Uuid</DisplayString>
<DisplayString Condition="d.type == QMetaType::QModelIndex">ModelIndex</DisplayString>
<DisplayString Condition="d.type == QMetaType::LastCoreType">LastCoreType</DisplayString>
<DisplayString Condition="d.type == QMetaType::QFont">Font</DisplayString>
<DisplayString Condition="d.type == QMetaType::QPixmap">Pixmap</DisplayString>
<DisplayString Condition="d.type == QMetaType::QBrush">Brush</DisplayString>
<DisplayString Condition="d.type == QMetaType::QColor">Color</DisplayString>
<DisplayString Condition="d.type == QMetaType::QPalette">Palette</DisplayString>
<DisplayString Condition="d.type == QMetaType::QImage">Image</DisplayString>
<DisplayString Condition="d.type == QMetaType::QPolygon">Polygon</DisplayString>
<DisplayString Condition="d.type == QMetaType::QRegion">Region</DisplayString>
<DisplayString Condition="d.type == QMetaType::QBitmap">Bitmap</DisplayString>
<DisplayString Condition="d.type == QMetaType::QCursor">Cursor</DisplayString>
<DisplayString Condition="d.type == QMetaType::QKeySequence">KeySequence</DisplayString>
<DisplayString Condition="d.type == QMetaType::QPen">Pen</DisplayString>
<DisplayString Condition="d.type == QMetaType::QTextLength">TextLength</DisplayString>
<DisplayString Condition="d.type == QMetaType::QTextFormat">TextFormat</DisplayString>
<DisplayString Condition="d.type == QMetaType::QMatrix">Matrix</DisplayString>
<DisplayString Condition="d.type == QMetaType::QTransform">Transform</DisplayString>
<DisplayString Condition="d.type == QMetaType::QMatrix4x4">Matrix4x4</DisplayString>
<DisplayString Condition="d.type == QMetaType::QVector2D">Vector2D</DisplayString>
<DisplayString Condition="d.type == QMetaType::QVector3D">Vector3D</DisplayString>
<DisplayString Condition="d.type == QMetaType::QVector4D">Vector4D</DisplayString>
<DisplayString Condition="d.type == QMetaType::QQuaternion">Quaternion</DisplayString>
<DisplayString Condition="d.type == QMetaType::QPolygonF">PolygonF</DisplayString>
<DisplayString Condition="d.type == QMetaType::QIcon">Icon</DisplayString>
<DisplayString Condition="d.type == QMetaType::LastGuiType">LastGuiType</DisplayString>
<DisplayString Condition="d.type == QMetaType::QSizePolicy">SizePolicy</DisplayString>
<DisplayString Condition="d.type == QMetaType::User">UserType</DisplayString>
<DisplayString Condition="d.type == 0xffffffff">LastType</DisplayString>
<!--End region DisplayString QVariant-->
<!--Region DisplayView QVariant-->
<StringView Condition="d.type == QMetaType::QChar">d.data.c</StringView>
<StringView Condition="d.type == QMetaType::QString">
*((QString*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
</StringView>
<StringView Condition="d.type == QMetaType::QByteArray">
*((QByteArray*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
</StringView>
<!--End region DisplayView QVariant-->
<!--Region Expand QVariant-->
<Expand>
<ExpandedItem Condition="d.type == QMetaType::QVariantMap">
*((QMap&lt;QString,QVariant&gt;*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
</ExpandedItem>
<ExpandedItem Condition="d.type == QMetaType::QVariantList">
*((QList&lt;QVariant&gt;*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
</ExpandedItem>
<ExpandedItem Condition="d.type == QMetaType::QString">
*((QString*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
</ExpandedItem>
<ExpandedItem Condition="d.type == QMetaType::QStringList">
*((QStringList*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
</ExpandedItem>
<ExpandedItem Condition="d.type == QMetaType::QByteArray">
*((QByteArray*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
</ExpandedItem>
<ExpandedItem Condition="d.type == QMetaType::QBitArray">
*((QBitArray*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
</ExpandedItem>
<ExpandedItem Condition="d.type == QMetaType::QDate">
*((QDate*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
</ExpandedItem>
<ExpandedItem Condition="d.type == QMetaType::QTime">
*((QTime*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
</ExpandedItem>
<ExpandedItem Condition="d.type == QMetaType::QRect">
*((QRect*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
</ExpandedItem>
<ExpandedItem Condition="d.type == QMetaType::QRectF">
*((QRectF*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
</ExpandedItem>
<ExpandedItem Condition="d.type == QMetaType::QSize">
*((QSize*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
</ExpandedItem>
<ExpandedItem Condition="d.type == QMetaType::QSizeF">
*((QSizeF*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
</ExpandedItem>
<ExpandedItem Condition="d.type == QMetaType::QLine">
*((QLine*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
</ExpandedItem>
<ExpandedItem Condition="d.type == QMetaType::QLineF">
*((QLineF*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
</ExpandedItem>
<ExpandedItem Condition="d.type == QMetaType::QPoint">
*((QPoint*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
</ExpandedItem>
<ExpandedItem Condition="d.type == QMetaType::QPointF">
*((QPointF*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
</ExpandedItem>
<ExpandedItem Condition="d.type == QMetaType::QVariantHash">
*((QHash&lt;QString,QVariant&gt;*)(d.is_shared ? d.data.shared-&gt;ptr
: reinterpret_cast&lt;const void *&gt;(&amp;d.data.ptr)))
</ExpandedItem>
</Expand>
<!--End region Expand QVariant-->
</Type>
</AutoVisualizer>

Binary file not shown.

BIN
TestWidget/debug/vc141.pdb Normal file

Binary file not shown.

BIN
TestWidget/debug/widget.obj Normal file

Binary file not shown.

View File

@ -0,0 +1 @@
This is a dummy file needed to create release/moc_predefs.h

View File

@ -0,0 +1,59 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Qt_DEFINES_>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;QT_NO_DEBUG;QT_WIDGETS_LIB;QT_GUI_LIB;QT_CORE_LIB;NDEBUG</Qt_DEFINES_>
<Qt_INCLUDEPATH_>D:\Projects\Cpp\QtNovelDesc\TestWidget\release\qmake\temp;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include\QtWidgets;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include\QtGui;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include\QtANGLE;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include\QtCore;D:\Projects\Cpp\QtNovelDesc\TestWidget\release\qmake\temp;/include;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\mkspecs\win32-msvc</Qt_INCLUDEPATH_>
<Qt_STDCPP_></Qt_STDCPP_>
<Qt_CL_OPTIONS_>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus</Qt_CL_OPTIONS_>
<Qt_LIBS_>C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\lib\Qt5Widgets.lib;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\lib\Qt5Gui.lib;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\lib\Qt5Core.lib;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\lib\qtmain.lib;shell32.lib</Qt_LIBS_>
<Qt_LINK_OPTIONS_>"/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'"</Qt_LINK_OPTIONS_>
<QMake_QT_SYSROOT_></QMake_QT_SYSROOT_>
<QMake_QT_INSTALL_PREFIX_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64</QMake_QT_INSTALL_PREFIX_>
<QMake_QT_INSTALL_ARCHDATA_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64</QMake_QT_INSTALL_ARCHDATA_>
<QMake_QT_INSTALL_DATA_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64</QMake_QT_INSTALL_DATA_>
<QMake_QT_INSTALL_DOCS_>C:/Qt/Qt5.12.11/Docs/Qt-5.12.11</QMake_QT_INSTALL_DOCS_>
<QMake_QT_INSTALL_HEADERS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/include</QMake_QT_INSTALL_HEADERS_>
<QMake_QT_INSTALL_LIBS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/lib</QMake_QT_INSTALL_LIBS_>
<QMake_QT_INSTALL_LIBEXECS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/bin</QMake_QT_INSTALL_LIBEXECS_>
<QMake_QT_INSTALL_BINS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/bin</QMake_QT_INSTALL_BINS_>
<QMake_QT_INSTALL_TESTS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/tests</QMake_QT_INSTALL_TESTS_>
<QMake_QT_INSTALL_PLUGINS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/plugins</QMake_QT_INSTALL_PLUGINS_>
<QMake_QT_INSTALL_IMPORTS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/imports</QMake_QT_INSTALL_IMPORTS_>
<QMake_QT_INSTALL_QML_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/qml</QMake_QT_INSTALL_QML_>
<QMake_QT_INSTALL_TRANSLATIONS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/translations</QMake_QT_INSTALL_TRANSLATIONS_>
<QMake_QT_INSTALL_CONFIGURATION_></QMake_QT_INSTALL_CONFIGURATION_>
<QMake_QT_INSTALL_EXAMPLES_>C:/Qt/Qt5.12.11/Examples/Qt-5.12.11</QMake_QT_INSTALL_EXAMPLES_>
<QMake_QT_INSTALL_DEMOS_>C:/Qt/Qt5.12.11/Examples/Qt-5.12.11</QMake_QT_INSTALL_DEMOS_>
<QMake_QT_HOST_PREFIX_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64</QMake_QT_HOST_PREFIX_>
<QMake_QT_HOST_DATA_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64</QMake_QT_HOST_DATA_>
<QMake_QT_HOST_BINS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/bin</QMake_QT_HOST_BINS_>
<QMake_QT_HOST_LIBS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/lib</QMake_QT_HOST_LIBS_>
<QMake_QMAKE_SPEC_>win32-msvc</QMake_QMAKE_SPEC_>
<QMake_QMAKE_XSPEC_>win32-msvc</QMake_QMAKE_XSPEC_>
<QMake_QMAKE_VERSION_>3.1</QMake_QMAKE_VERSION_>
<QMake_QT_VERSION_>5.12.11</QMake_QT_VERSION_>
<Qt_INCLUDEPATH_
>$(Qt_INCLUDEPATH_);Release</Qt_INCLUDEPATH_>
<QtBkup_QtInstall
>5.12.11_msvc2017_64</QtBkup_QtInstall>
<QtBkup_QtModules
>core;gui;widgets</QtBkup_QtModules>
<QtBkup_QtPathBinaries
>bin</QtBkup_QtPathBinaries>
<QtBkup_QtPathLibraryExecutables
>bin</QtBkup_QtPathLibraryExecutables>
<QtBkup_QtHeaderSearchPath
></QtBkup_QtHeaderSearchPath>
<QtBkup_QtLibrarySearchPath
></QtBkup_QtLibrarySearchPath>
<QtBkup_QtVars
>DEFINES=/Project/ItemDefinitionGroup/ClCompile/PreprocessorDefinitions;INCLUDEPATH=/Project/ItemDefinitionGroup/ClCompile/AdditionalIncludeDirectories;STDCPP=/Project/ItemDefinitionGroup/ClCompile/LanguageStandard;CL_OPTIONS=/Project/ItemDefinitionGroup/ClCompile/AdditionalOptions;LIBS=/Project/ItemDefinitionGroup/Link/AdditionalDependencies;LINK_OPTIONS=/Project/ItemDefinitionGroup/Link/AdditionalOptions</QtBkup_QtVars>
<QtBkup_QMakeCodeLines
></QtBkup_QMakeCodeLines>
<QtBkup_QtBuildConfig
>release</QtBkup_QtBuildConfig>
<QtVersion>5.12.11</QtVersion>
<QtVersionMajor>5</QtVersionMajor>
<QtVersionMinor>12</QtVersionMinor>
<QtVersionPatch>11</QtVersionPatch>
</PropertyGroup>
</Project>

View File

@ -0,0 +1 @@
C:\Users\WS\AppData\Local\Temp\dztjsegl.olu.designtime.props

View File

@ -0,0 +1 @@
This is a dummy file needed to create ./moc_predefs.h

View File

@ -0,0 +1,25 @@
QT_SYSROOT:
QT_INSTALL_PREFIX:C:/Qt/Qt5.12.11/5.12.11/msvc2017_64
QT_INSTALL_ARCHDATA:C:/Qt/Qt5.12.11/5.12.11/msvc2017_64
QT_INSTALL_DATA:C:/Qt/Qt5.12.11/5.12.11/msvc2017_64
QT_INSTALL_DOCS:C:/Qt/Qt5.12.11/Docs/Qt-5.12.11
QT_INSTALL_HEADERS:C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/include
QT_INSTALL_LIBS:C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/lib
QT_INSTALL_LIBEXECS:C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/bin
QT_INSTALL_BINS:C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/bin
QT_INSTALL_TESTS:C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/tests
QT_INSTALL_PLUGINS:C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/plugins
QT_INSTALL_IMPORTS:C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/imports
QT_INSTALL_QML:C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/qml
QT_INSTALL_TRANSLATIONS:C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/translations
QT_INSTALL_CONFIGURATION:
QT_INSTALL_EXAMPLES:C:/Qt/Qt5.12.11/Examples/Qt-5.12.11
QT_INSTALL_DEMOS:C:/Qt/Qt5.12.11/Examples/Qt-5.12.11
QT_HOST_PREFIX:C:/Qt/Qt5.12.11/5.12.11/msvc2017_64
QT_HOST_DATA:C:/Qt/Qt5.12.11/5.12.11/msvc2017_64
QT_HOST_BINS:C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/bin
QT_HOST_LIBS:C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/lib
QMAKE_SPEC:win32-msvc
QMAKE_XSPEC:win32-msvc
QMAKE_VERSION:3.1
QT_VERSION:5.12.11

View File

View File

@ -0,0 +1,2 @@
CONFIG += no_fixpath
QT += core gui widgets

View File

@ -0,0 +1,86 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid></ProjectGuid>
<RootNamespace>qtvars</RootNamespace>
<Keyword>Qt4VSv1.0</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Release|x64&apos;" Label="Configuration">
<PlatformToolset>v141</PlatformToolset>
<OutputDirectory>.\</OutputDirectory>
<ATLMinimizesCRunTimeLibraryUsage>false</ATLMinimizesCRunTimeLibraryUsage>
<CharacterSet>NotSet</CharacterSet>
<ConfigurationType>Application</ConfigurationType>
<PrimaryOutput>qtvars</PrimaryOutput>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Release|x64&apos;" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists(&apos;$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props&apos;)" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<OutDir Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Release|x64&apos;">.\</OutDir>
<TargetName Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Release|x64&apos;">qtvars</TargetName>
<IgnoreImportLibrary Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Release|x64&apos;">true</IgnoreImportLibrary>
<LinkIncremental Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Release|x64&apos;">false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Release|x64&apos;">
<ClCompile>
<AdditionalIncludeDirectories>D:\Projects\Cpp\QtNovelDesc\TestWidget\release\qmake\temp;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include\QtWidgets;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include\QtGui;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include\QtANGLE;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include\QtCore;D:\Projects\Cpp\QtNovelDesc\TestWidget\release\qmake\temp;/include;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\mkspecs\win32-msvc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
<AssemblerListingLocation>.\</AssemblerListingLocation>
<BrowseInformation>false</BrowseInformation>
<DebugInformationFormat>None</DebugInformationFormat>
<ExceptionHandling>Sync</ExceptionHandling>
<ObjectFileName>.\</ObjectFileName>
<Optimization>MaxSpeed</Optimization>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;QT_NO_DEBUG;QT_WIDGETS_LIB;QT_GUI_LIB;QT_CORE_LIB;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessToFile>false</PreprocessToFile>
<ProgramDataBaseFileName></ProgramDataBaseFileName>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<WarningLevel>TurnOffAllWarnings</WarningLevel>
</ClCompile>
<Link>
<AdditionalDependencies>C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\lib\Qt5Widgets.lib;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\lib\Qt5Gui.lib;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\lib\Qt5Core.lib;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\lib\qtmain.lib;shell32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>C:\openssl\lib;C:\Utils\my_sql\mysql-5.6.11-winx64\lib;C:\Utils\postgresql\pgsql\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalOptions>&quot;/MANIFESTDEPENDENCY:type=&apos;win32&apos; name=&apos;Microsoft.Windows.Common-Controls&apos; version=&apos;6.0.0.0&apos; publicKeyToken=&apos;6595b64144ccf1df&apos; language=&apos;*&apos; processorArchitecture=&apos;*&apos;&quot; %(AdditionalOptions)</AdditionalOptions>
<DataExecutionPrevention>true</DataExecutionPrevention>
<GenerateDebugInformation>false</GenerateDebugInformation>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
<LinkIncremental>false</LinkIncremental>
<OutputFile>$(OutDir)\qtvars.exe</OutputFile>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<SubSystem>Windows</SubSystem>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Link>
<Midl>
<DefaultCharType>Unsigned</DefaultCharType>
<EnableErrorChecks>None</EnableErrorChecks>
<WarningLevel>0</WarningLevel>
</Midl>
<ResourceCompile>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;QT_NO_DEBUG;QT_WIDGETS_LIB;QT_GUI_LIB;QT_CORE_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemGroup>
<CustomBuild Include="moc_predefs.h.cbt">
<FileType>Document</FileType>
<AdditionalInputs Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Release|x64&apos;">C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\mkspecs\features\data\dummy.cpp;%(AdditionalInputs)</AdditionalInputs>
<Command Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Release|x64&apos;">cl -BxC:\Qt\Qt5.12.11\5.12.11\msvc2017_64\bin\qmake.exe -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -O2 -MD -W0 -E C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\mkspecs\features\data\dummy.cpp 2&gt;NUL &gt;moc_predefs.h</Command>
<Message Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Release|x64&apos;">Generate moc_predefs.h</Message>
<Outputs Condition="&apos;$(Configuration)|$(Platform)&apos;==&apos;Release|x64&apos;">moc_predefs.h;%(Outputs)</Outputs>
</CustomBuild>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
</Project>

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Generated Files">
<UniqueIdentifier>{71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11}</UniqueIdentifier>
<Extensions>cpp;c;cxx;moc;h;def;odl;idl;res;</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="moc_predefs.h.cbt">
<Filter>Generated Files</Filter>
</CustomBuild>
</ItemGroup>
</Project>

View File

@ -0,0 +1,59 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Qt_DEFINES_>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;QT_NO_DEBUG;QT_WIDGETS_LIB;QT_GUI_LIB;QT_CORE_LIB;NDEBUG</Qt_DEFINES_>
<Qt_INCLUDEPATH_>D:\Projects\Cpp\QtNovelDesc\TestWidget\release\qmake\temp;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include\QtWidgets;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include\QtGui;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include\QtANGLE;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include\QtCore;D:\Projects\Cpp\QtNovelDesc\TestWidget\release\qmake\temp;/include;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\mkspecs\win32-msvc</Qt_INCLUDEPATH_>
<Qt_STDCPP_></Qt_STDCPP_>
<Qt_CL_OPTIONS_>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus</Qt_CL_OPTIONS_>
<Qt_LIBS_>C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\lib\Qt5Widgets.lib;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\lib\Qt5Gui.lib;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\lib\Qt5Core.lib;C:\Qt\Qt5.12.11\5.12.11\msvc2017_64\lib\qtmain.lib;shell32.lib</Qt_LIBS_>
<Qt_LINK_OPTIONS_>"/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'"</Qt_LINK_OPTIONS_>
<QMake_QT_SYSROOT_></QMake_QT_SYSROOT_>
<QMake_QT_INSTALL_PREFIX_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64</QMake_QT_INSTALL_PREFIX_>
<QMake_QT_INSTALL_ARCHDATA_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64</QMake_QT_INSTALL_ARCHDATA_>
<QMake_QT_INSTALL_DATA_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64</QMake_QT_INSTALL_DATA_>
<QMake_QT_INSTALL_DOCS_>C:/Qt/Qt5.12.11/Docs/Qt-5.12.11</QMake_QT_INSTALL_DOCS_>
<QMake_QT_INSTALL_HEADERS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/include</QMake_QT_INSTALL_HEADERS_>
<QMake_QT_INSTALL_LIBS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/lib</QMake_QT_INSTALL_LIBS_>
<QMake_QT_INSTALL_LIBEXECS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/bin</QMake_QT_INSTALL_LIBEXECS_>
<QMake_QT_INSTALL_BINS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/bin</QMake_QT_INSTALL_BINS_>
<QMake_QT_INSTALL_TESTS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/tests</QMake_QT_INSTALL_TESTS_>
<QMake_QT_INSTALL_PLUGINS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/plugins</QMake_QT_INSTALL_PLUGINS_>
<QMake_QT_INSTALL_IMPORTS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/imports</QMake_QT_INSTALL_IMPORTS_>
<QMake_QT_INSTALL_QML_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/qml</QMake_QT_INSTALL_QML_>
<QMake_QT_INSTALL_TRANSLATIONS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/translations</QMake_QT_INSTALL_TRANSLATIONS_>
<QMake_QT_INSTALL_CONFIGURATION_></QMake_QT_INSTALL_CONFIGURATION_>
<QMake_QT_INSTALL_EXAMPLES_>C:/Qt/Qt5.12.11/Examples/Qt-5.12.11</QMake_QT_INSTALL_EXAMPLES_>
<QMake_QT_INSTALL_DEMOS_>C:/Qt/Qt5.12.11/Examples/Qt-5.12.11</QMake_QT_INSTALL_DEMOS_>
<QMake_QT_HOST_PREFIX_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64</QMake_QT_HOST_PREFIX_>
<QMake_QT_HOST_DATA_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64</QMake_QT_HOST_DATA_>
<QMake_QT_HOST_BINS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/bin</QMake_QT_HOST_BINS_>
<QMake_QT_HOST_LIBS_>C:/Qt/Qt5.12.11/5.12.11/msvc2017_64/lib</QMake_QT_HOST_LIBS_>
<QMake_QMAKE_SPEC_>win32-msvc</QMake_QMAKE_SPEC_>
<QMake_QMAKE_XSPEC_>win32-msvc</QMake_QMAKE_XSPEC_>
<QMake_QMAKE_VERSION_>3.1</QMake_QMAKE_VERSION_>
<QMake_QT_VERSION_>5.12.11</QMake_QT_VERSION_>
<Qt_INCLUDEPATH_
>$(Qt_INCLUDEPATH_);Release</Qt_INCLUDEPATH_>
<QtBkup_QtInstall
>5.12.11_msvc2017_64</QtBkup_QtInstall>
<QtBkup_QtModules
>core;gui;widgets</QtBkup_QtModules>
<QtBkup_QtPathBinaries
>bin</QtBkup_QtPathBinaries>
<QtBkup_QtPathLibraryExecutables
>bin</QtBkup_QtPathLibraryExecutables>
<QtBkup_QtHeaderSearchPath
></QtBkup_QtHeaderSearchPath>
<QtBkup_QtLibrarySearchPath
></QtBkup_QtLibrarySearchPath>
<QtBkup_QtVars
>DEFINES=/Project/ItemDefinitionGroup/ClCompile/PreprocessorDefinitions;INCLUDEPATH=/Project/ItemDefinitionGroup/ClCompile/AdditionalIncludeDirectories;STDCPP=/Project/ItemDefinitionGroup/ClCompile/LanguageStandard;CL_OPTIONS=/Project/ItemDefinitionGroup/ClCompile/AdditionalOptions;LIBS=/Project/ItemDefinitionGroup/Link/AdditionalDependencies;LINK_OPTIONS=/Project/ItemDefinitionGroup/Link/AdditionalOptions</QtBkup_QtVars>
<QtBkup_QMakeCodeLines
></QtBkup_QMakeCodeLines>
<QtBkup_QtBuildConfig
>release</QtBkup_QtBuildConfig>
<QtVersion>5.12.11</QtVersion>
<QtVersionMajor>5</QtVersionMajor>
<QtVersionMinor>12</QtVersionMinor>
<QtVersionPatch>11</QtVersionPatch>
</PropertyGroup>
</Project>

View File

@ -0,0 +1,5 @@
<!DOCTYPE RCC><RCC version="1.0">
<qresource prefix="i18n">
<file alias="TestWidget_zh_CN.qm">D:/Projects/Cpp/QtNovelDesc/TestWidget/release/TestWidget_zh_CN.qm</file>
</qresource>
</RCC>

91
TestWidget/tools.h Normal file
View File

@ -0,0 +1,91 @@
#ifndef COMNTOOLS_H
#define COMNTOOLS_H
#include "../Testpad/opstream.h"
#include <QStandardItemModel>
#include <functional>
namespace Tools {
template<class BaseType>
class ModelSyncs
{
public:
ModelSyncs(QStandardItemModel *model_base, std::function<bool(const BaseType &n, QStandardItem *p)> _equal,
std::function<void(const BaseType &n, QStandardItem *p)> sync_proc)
: model_present(model_base), sync_process(sync_proc), compare_process(_equal){}
void presentSync(std::function<QList<BaseType>(const BaseType &pnode)> items_peak)
{
auto default_pdata = BaseType();
auto datas = items_peak(default_pdata);
Operate::OpStream<QStandardItem*>([this](int &cnt, int idx)->QStandardItem*{
cnt = model_present->rowCount();
return model_present->item(idx);
}).filter([&datas, this](QStandardItem *const &it)->bool{
for(auto &d : datas)
if(compare_process(d, it))
return false;
return true;
}).forEach([this](QStandardItem *const &it){
model_present->removeRow(it->row());
});
for (auto idx = 0; idx < datas.size(); ++idx) {
if (idx >= model_present->rowCount()) {
auto ins = new QStandardItem();
ins->setEditable(false);
model_present->appendRow(ins);
}
auto &data = datas[idx];
auto item = model_present->item(idx);
sync_process(data, item);
layer_items_sync(data, item, items_peak);
}
}
private:
QStandardItemModel *model_present;
std::function<void(const BaseType &n, QStandardItem *p)> sync_process;
std::function<bool(const BaseType &n, QStandardItem *p)> compare_process;
void layer_items_sync(const BaseType &data, QStandardItem *pnode,
std::function<QList<BaseType>(const BaseType &pnode)> items_peak){
auto datas = items_peak(data);
Operate::OpStream<QStandardItem*>([pnode](int &cnt, int idx)->QStandardItem*{
cnt = pnode->rowCount();
return pnode->child(idx);
}).filter([&datas, this](QStandardItem *const &it)->bool{
for(auto &d : datas)
if(compare_process(d, it))
return false;
return true;
}).forEach([pnode](QStandardItem *const &it){
pnode->removeRow(it->row());
});
for (auto idx = 0; idx < datas.size(); ++idx) {
if (idx >= pnode->rowCount()) {
auto ins = new QStandardItem();
ins->setEditable(false);
pnode->appendRow(ins);
}
auto &data = datas[idx];
auto item = pnode->child(idx);
sync_process(data, item);
layer_items_sync(data, item, items_peak);
}
}
};
}
#endif // COMNTOOLS_H

View File

@ -1,8 +1,36 @@
#include "widget.h"
#include "tools.h"
#include <QPushButton>
#include <QTreeView>
#include <QVBoxLayout>
Widget::Widget(QWidget *parent)
: QWidget(parent)
: QWidget(parent), model(new QStandardItemModel(this))
{
auto layout = new QVBoxLayout(this);
auto widget = new QTreeView(this);
layout->addWidget(widget);
widget->setModel(model);
Tools::ModelSyncs<QString>* xmodel = new Tools::ModelSyncs<QString>(model,
[](const QString &d, QStandardItem *n){return d == n->text();},
[](const QString &d, QStandardItem *i){i->setText(d);});
model->appendRow(new QStandardItem("sldkjflkdf"));
auto button = new QPushButton("click");
layout->addWidget(button);
connect(button, &QPushButton::clicked, [this, xmodel](){
xmodel->presentSync([](const QString &x){
if(x.length() > 3)
return QList<QString>();
return QList<QString>() << x + "a" << x + "b" << x + "c" << x + "d";
});
});
}
Widget::~Widget()

View File

@ -1,6 +1,7 @@
#ifndef WIDGET_H
#define WIDGET_H
#include <QStandardItemModel>
#include <QWidget>
class Widget : public QWidget
@ -10,5 +11,8 @@ class Widget : public QWidget
public:
Widget(QWidget *parent = nullptr);
~Widget();
private:
QStandardItemModel *const model;
};
#endif // WIDGET_H

View File

@ -9,7 +9,8 @@ CONFIG -= app_bundle
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \
main.cpp
main.cpp \
opstream.cpp
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
@ -36,3 +37,6 @@ else:unix: LIBS += -L$$OUT_PWD/../libProjectManager/ -llibProjectManager
INCLUDEPATH += $$PWD/../libProjectManager
DEPENDPATH += $$PWD/../libProjectManager
HEADERS += \
opstream.h

View File

@ -2,15 +2,22 @@
#include <QDebug>
#include <xmlconfig.h>
#include <xmlprojectmanager.h>
#include <QDebug>
#include "opstream.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QRegExp exp("([^\\.]+)");
qDebug() << exp.indexIn("packagea.packageb.packagec.packaged");
qDebug() << exp.capturedTexts();
QList<QString> list;
list << "a" << "b" << "c" << "d";
qDebug() << Operate::OpStream<QString>(list)
.filter([](const QString &it){ return it > QString("b"); })
.select<QString>([](const QString n)->QString{ return n + "xx"; }).toList();
return a.exec();

2
Testpad/opstream.cpp Normal file
View File

@ -0,0 +1,2 @@
#include "opstream.h"

104
Testpad/opstream.h Normal file
View File

@ -0,0 +1,104 @@
#ifndef OPSTREAM_H
#define OPSTREAM_H
#include <QList>
#include <functional>
namespace Operate {
template<class ValueType, class TargetType>
class Result
{
public:
Result(QList<ValueType> source, std::function<bool(const ValueType&)> list_filter, std::function<TargetType(const ValueType&)> list_peaks)
: source_store(source), peak_store(list_peaks), filter_store(list_filter){}
virtual ~Result() = default;
virtual QList<TargetType> toList()
{
QList<TargetType> rets_list;
for(auto &it : source_store)
if(filter_store(it))
rets_list << peak_store(it);
return rets_list;
}
template<class Key>
QHash<Key, TargetType> toMap(std::function<Key(ValueType)> key_selector)
{
QHash<Key, TargetType> map;
for(auto &it : source_store)
if(filter_store(it))
map[key_selector(it)] = peak_store(it);
return map;
}
virtual void forEach(std::function<void(TargetType)> ex_proc)
{
auto items = toList();
for(auto &it : items)
ex_proc(it);
}
Result<ValueType, TargetType> filter(std::function<bool(const ValueType&)> filter){
auto filter_combine = [filter, this](const ValueType& it){ return filter(it) && filter_store(it); };
return Result<ValueType, TargetType>(source_store, filter_combine, peak_store);
}
template<class TargetTypeOut>
Result<TargetType, TargetTypeOut> select(std::function<TargetTypeOut(const TargetType&)> peak){
auto peak_combine = [peak, this](const TargetType &it){
auto temp = this->peak_store(it);
return peak(temp);
};
return Result<TargetType, TargetTypeOut>(source_store, filter_store, peak_combine);
}
private:
QList<ValueType> source_store;
std::function<TargetType(const ValueType&)> peak_store;
std::function<bool(const ValueType&)> filter_store;
};
template<class ValueType>
class OpStream
{
public:
OpStream(std::function<ValueType(int &cnt, int idx)> peak_proc)
{
int count = 0, index = 0;
ValueType one = peak_proc(count, index);
for(; index < count; ++index)
source_store << peak_proc(count, index);
}
OpStream(QList<ValueType> source)
: source_store(source){}
template<class TargetType>
Result<ValueType, TargetType> select(std::function<TargetType(const ValueType&)> value_selector)
{
return Result<ValueType, TargetType>(source_store, [](const ValueType& it){return true;}, value_selector);
}
Result<ValueType, ValueType> select()
{
return Result<ValueType, ValueType>(source_store, [](const ValueType& it){return true;}, [](const ValueType& it){return it;});
}
Result<ValueType, ValueType> filter(std::function<bool(const ValueType&)> filter)
{
return Result<ValueType, ValueType>(source_store, filter, [](const ValueType& it){ return it; });
}
private:
QList<ValueType> source_store;
};
}
#endif // OPSTREAM_H

View File

@ -2,6 +2,7 @@
#include <QMessageBox>
#include <QTextStream>
#include <QDebug>
using namespace MakeTools;
@ -106,15 +107,15 @@ void SensitiveCore::recompile(const QString &file_path, const QString &doc_name)
VariedTextView::VariedTextView()
: QObject(nullptr){}
void VariedTextView::setSource(Core::AppCore *core, const QFileInfo &src, const QString &name, QWidget *parent)
void VariedTextView::initSource(Core::AppCore *core, const QFileInfo &src, const QString &name, QWidget *parent)
{
this->doc_name = name;
this->setSource(core, src, parent);
this->initSource(core, src, parent);
}
QString VariedTextView::filePath() const
{
return source_x.absoluteFilePath();
return source_x;
}
void VariedTextView::save() const
@ -135,9 +136,9 @@ QString VariedTextView::docName() const
return doc_name;
}
void VariedTextView::setSource(Core::AppCore *core, const QFileInfo &src, QWidget *parent)
void VariedTextView::initSource(Core::AppCore *core, const QFileInfo &src, QWidget *parent)
{
this->source_x = src;
this->source_x = src.absoluteFilePath();
if(parent)
this->setParent(parent);
}

View File

@ -18,7 +18,7 @@ namespace MakeTools {
explicit VariedTextView();
virtual ~VariedTextView() = default;
void setSource(Core::AppCore *core, const QFileInfo &src, const QString &name, QWidget *parent=nullptr);
void initSource(Core::AppCore *core, const QFileInfo &src, const QString &name, QWidget *parent=nullptr);
QString filePath() const;
void save() const;
@ -34,10 +34,10 @@ namespace MakeTools {
void dataChanged(const QString &filePath);
protected:
virtual void setSource(Core::AppCore *core, const QFileInfo &src, QWidget *parent=nullptr);
virtual void initSource(Core::AppCore *core, const QFileInfo &src, QWidget *parent=nullptr);
private:
QFileInfo source_x;
QString source_x;
QString doc_name;
};

View File

@ -46,7 +46,7 @@ void TextContentEdit::jumpTo(const QList<QString> &path)
}
void TextContentEdit::reload(QList<Config::Configration *> configs)
void TextContentEdit::reloadConfigrations(QList<Config::Configration *> configs)
{
// TODO 设置格式
auto font_family = Config::ConfigHelper::getConfigAsDefaultSequence

View File

@ -65,7 +65,7 @@ namespace Components {
// Plugin interface
public:
virtual Core::FileExtensionFactory *factory() const override;
virtual void reload(QList<Config::Configration *> configs) override;
virtual void reloadConfigrations(QList<Config::Configration *> configs) override;
// ModeView interface
public:

View File

@ -13,7 +13,6 @@ SOURCES += \
SensitiveCore.cpp \
SourceEditView.cpp \
appcore.cpp \
conceptview.cpp \
keywordshightlighter.cpp \
main.cpp \
mainwindow.cpp \
@ -24,28 +23,32 @@ SOURCES += \
storyboardspresent.cpp \
storychainsourceeditor.cpp \
storychainspresent.cpp \
storyconceptspresent.cpp \
storyunitsourceedit.cpp \
storyunitspresent.cpp \
storyvolumesourceedit.cpp
storyvolumesourceedit.cpp \
tools.cpp
HEADERS += \
ContentPresent.h \
SensitiveCore.h \
SourceEditView.h \
appcore.h \
conceptview.h \
keywordshightlighter.h \
mainwindow.h \
messagepresent.h \
opstream.h \
projectview.h \
sourcecodeeditor.h \
storyboardsourceedit.h \
storyboardspresent.h \
storychainsourceeditor.h \
storychainspresent.h \
storyconceptspresent.h \
storyunitsourceedit.h \
storyunitspresent.h \
storyvolumesourceedit.h
storyvolumesourceedit.h \
tools.h
TRANSLATIONS += \
WordsIDE_zh_CN.ts

View File

@ -19,7 +19,7 @@ using namespace Parse::Result;
using namespace MakeTools;
AppCore::AppCore(MainWindow *win, QObject *parent)
: QObject(parent), views(win),
: QObject(parent), views_holder(win),
global_config(new Config::XMLConfig(this)),
parse_core(new ParseCore()),
make_tool(new StoryTool(parse_core)),
@ -106,30 +106,30 @@ void AppCore::openTextDocument(const QString &src, const QString &name)
if(framework->contains(src)){
auto ins = framework->queryTextComponent(QFileInfo(src));
dynamic_cast<Extension*>(ins)->resetProcsType(QFileInfo(src).suffix());
dynamic_cast<Core::Extension*>(ins)->reload(this->getConfigs(xfactorys[0]->configs()));
views->contentViewAppend(ins->textView(), name);
dynamic_cast<Core::Extension*>(ins)->reloadConfigrations(this->getConfigs(xfactorys[0]->configs()));
views_holder->contentViewAppend(ins->textView(), name);
return;
}
VariedTextView *tview = dynamic_cast<VariedTextView*>(xfactorys[0]->newInstance(this));
dynamic_cast<Extension*>(tview)->resetProcsType(QFileInfo(src).suffix());
dynamic_cast<Core::Extension*>(tview)->reload(this->getConfigs(xfactorys[0]->configs()));
this->make_tool->compile(QFileInfo(src), name);
tview->setSource(this, QFileInfo(src), name, views);
VariedTextView *tview = dynamic_cast<VariedTextView*>(xfactorys[0]->newInstance(this));
tview->initSource(this, QFileInfo(src), name, views_holder);
framework->addPerceptionList(tview);
dynamic_cast<Extension*>(tview)->resetProcsType(QFileInfo(src).suffix());
dynamic_cast<Core::Extension*>(tview)->reloadConfigrations(this->getConfigs(xfactorys[0]->configs()));
QFile fin(src);
if(!fin.open(QIODevice::ReadOnly | QIODevice::Text)){
QMessageBox::critical(views, "系统错误", QString("无法打开指定文件:%1(%2)").arg(name, src));
QMessageBox::critical(views_holder, "系统错误", QString("无法打开指定文件:%1(%2)").arg(name, src));
return;
}
QTextStream tin(&fin);
tview->textContentReset(tin.readAll());
views->contentViewAppend(tview->textView(), name);
views_holder->contentViewAppend(tview->textView(), name);
}

View File

@ -83,7 +83,7 @@ namespace Core {
* @brief
* @param configs
*/
virtual void reload(QList<Config::Configration*> configs) = 0;
virtual void reloadConfigrations(QList<Config::Configration*> configs) = 0;
};
@ -129,7 +129,7 @@ namespace Core {
void openTextDocument(const QString &src, const QString &name);
private:
MainWindow *const views;
MainWindow *const views_holder;
Config::Configration *const global_config;
Project::ProjectManager * current_project;
QList<Core::FileExtensionFactory*> extensions_list;

View File

@ -35,6 +35,9 @@ void KeywordsHightlighter::highlightBlock(const QString &text)
QList<ErrorMessage> xerrors;
if(w->host() == parse_core->unknowns()){
unknowns.setUnderlineStyle(QTextCharFormat::UnderlineStyle::WaveUnderline);
unknowns.setUnderlineColor(QColor(Qt::red));
setFormat(w->column()-1, w->toString().length(), unknowns);
}
else if(!w->host()->check(xerrors)){

View File

@ -44,7 +44,7 @@ MainWindow::MainWindow(QWidget *parent)
units_view(new StoryUnitsPresent(app_core, this)),
errors_present(new MessagePresent(app_core->getMake_tool(), this)),
boards_view(new StoryBoardsPresent(app_core, this)),
concept_view(new ConceptView(app_core, this))
concept_view(new StoryConceptsPresent(app_core, this))
{
QApplication::instance()->installEventFilter(this);
this->app_core->setCurrentProject(project_manager);
@ -343,6 +343,17 @@ MainWindow::MainWindow(QWidget *parent)
app_core->getFramework()->closeTextComponent(QFileInfo(comp->filePath()));
});
connect(project_structure, &ProjectView::aboutToBoDelete,
[this](QList<QFileInfo> infos){
for(auto &key : infos){
auto comp = app_core->getFramework()->queryTextComponent(key);
if(comp){
toggle_widget_visible(false, center_funcs, comp->textView());
app_core->getFramework()->closeTextComponent(key);
}
}
});
this->app_core->getFramework()->addProcTrigger([this](){
this->chains_view->refresh();
this->units_view->refresh();
@ -376,12 +387,11 @@ void MainWindow::contentViewAppend(QWidget *widget, const QString &name)
for(auto idx=0; idx<center_funcs->count(); ++idx){
if(center_funcs->widget(idx) == widget){
center_funcs->setCurrentWidget(widget);
return;
}
}
else {
center_funcs->addTab(widget, name);
center_funcs->setCurrentWidget(widget);
}
}
}
void MainWindow::build_internal(bool all_from_disk)
@ -419,8 +429,8 @@ void MainWindow::build_internal(bool all_from_disk)
void MainWindow::toggle_widget_visible(bool visible, QTabWidget *con, QWidget *target, const QString &title)
{
if(visible && con->indexOf(target) == -1){
con->addTab(target, title);
target->setVisible(true);
con->addTab(target, title);
}else if(!visible && con->indexOf(target) != -1){
target->setVisible(false);
con->removeTab(con->indexOf(target));
@ -449,10 +459,10 @@ void MainWindow::uilayout_save()
xvisible_save(left_funcs, "area-left");
xvisible_save(right_funcs, "area-right");
xvisible_save(bottom_funcs, "area-bottom");
// xvisible_save(project_structure, "project_tree");
// xvisible_save(errors_present, "message-view");
// xvisible_save(chains_view, "chains-sum");
// xvisible_save(units_view, "units-sum");
// xvisible_save(project_structure, "project_tree");
// xvisible_save(errors_present, "message-view");
// xvisible_save(chains_view, "chains-sum");
// xvisible_save(units_view, "units-sum");
}
void MainWindow::uilayout_load()
@ -467,10 +477,10 @@ void MainWindow::uilayout_load()
xvisible_load(left_funcs, "area-left");
xvisible_load(right_funcs, "area-right");
xvisible_load(bottom_funcs, "area-bottom");
// xvisible_load(project_structure, "project_tree");
// xvisible_load(errors_present, "message-view");
// xvisible_load(chains_view, "chains-sum");
// xvisible_load(units_view, "units-sum");
// xvisible_load(project_structure, "project_tree");
// xvisible_load(errors_present, "message-view");
// xvisible_load(chains_view, "chains-sum");
// xvisible_load(units_view, "units-sum");
auto convert = [](QStringList in)->QList<int>{
QList<int> size;

View File

@ -15,7 +15,7 @@
#include "projectview.h"
#include "ContentPresent.h"
#include "storyboardspresent.h"
#include "conceptview.h"
#include "storyconceptspresent.h"
class Run
@ -80,7 +80,7 @@ private:
Components::StoryUnitsPresent *const units_view;
Components::MessagePresent *const errors_present;
Components::StoryBoardsPresent *const boards_view;
Components::ConceptView *const concept_view;
Components::StoryConceptsPresent *const concept_view;
// 内部逻辑 ===========================================
void build_internal(bool all_from_disk = false);

104
WordsIDE/opstream.h Normal file
View File

@ -0,0 +1,104 @@
#ifndef OPSTREAM_H
#define OPSTREAM_H
#include <QList>
#include <functional>
namespace Operate {
template<class ValueType, class TargetType>
class Result
{
public:
Result(QList<ValueType> source, std::function<bool(const ValueType&)> list_filter, std::function<TargetType(const ValueType&)> list_peaks)
: source_store(source), peak_store(list_peaks), filter_store(list_filter){}
virtual ~Result() = default;
virtual QList<TargetType> toList()
{
QList<TargetType> rets_list;
for(auto &it : source_store)
if(filter_store(it))
rets_list << peak_store(it);
return rets_list;
}
template<class Key>
QHash<Key, TargetType> toMap(std::function<Key(ValueType)> key_selector)
{
QHash<Key, TargetType> map;
for(auto &it : source_store)
if(filter_store(it))
map[key_selector(it)] = peak_store(it);
return map;
}
virtual void forEach(std::function<void(TargetType)> ex_proc)
{
auto items = toList();
for(auto &it : items)
ex_proc(it);
}
Result<ValueType, TargetType> filter(std::function<bool(const ValueType&)> filter){
auto filter_combine = [filter, this](const ValueType& it){ return filter(it) && filter_store(it); };
return Result<ValueType, TargetType>(source_store, filter_combine, peak_store);
}
template<class TargetTypeOut>
Result<TargetType, TargetTypeOut> select(std::function<TargetTypeOut(const TargetType&)> peak){
auto peak_combine = [peak, this](const TargetType &it){
auto temp = this->peak_store(it);
return peak(temp);
};
return Result<TargetType, TargetTypeOut>(source_store, filter_store, peak_combine);
}
private:
QList<ValueType> source_store;
std::function<TargetType(const ValueType&)> peak_store;
std::function<bool(const ValueType&)> filter_store;
};
template<class ValueType>
class OpStream
{
public:
OpStream(std::function<ValueType(int &cnt, int idx)> peak_proc)
{
int count = 0, index = 0;
ValueType one = peak_proc(count, index);
for(; index < count; ++index)
source_store << peak_proc(count, index);
}
OpStream(QList<ValueType> source)
: source_store(source){}
template<class TargetType>
Result<ValueType, TargetType> select(std::function<TargetType(const ValueType&)> value_selector)
{
return Result<ValueType, TargetType>(source_store, [](const ValueType& it){return true;}, value_selector);
}
Result<ValueType, ValueType> select()
{
return Result<ValueType, ValueType>(source_store, [](const ValueType& it){return true;}, [](const ValueType& it){return it;});
}
Result<ValueType, ValueType> filter(std::function<bool(const ValueType&)> filter)
{
return Result<ValueType, ValueType>(source_store, filter, [](const ValueType& it){ return it; });
}
private:
QList<ValueType> source_store;
};
}
#endif // OPSTREAM_H

View File

@ -106,13 +106,27 @@ void Components::ProjectView::contexMenuPopup(const QPoint &pos)
auto root = pjtins->model()->item(0);
auto seli = pjtins->model()->itemFromIndex(idx_it);
auto query_path = [root](QStandardItem *item)->QList<QString>
{
QList<QString> paths;
while (root != seli) {
paths.insert(0, seli->text());
seli = seli->parent();
while (root != item) {
paths.insert(0, item->text());
item = item->parent();
}
return paths;
};
QList<QFileInfo> files;
for(auto &it : nodes_contained(seli)){
auto path = query_path(it);
auto info = pjtins->queryWith(path);
if(info.exists())
files << info;
}
this->pjtins->deletePath(paths);
emit this->aboutToBoDelete(files);
this->pjtins->deletePath(query_path(seli));
});
auto item = this->pjtins->model()->itemFromIndex(idx_it);
@ -147,7 +161,13 @@ void Components::ProjectView::alloc_file(const QModelIndex &idx_it, const QStrin
case -2:
QMessageBox::critical(this, "系统错误", "在文件下建立文件");
return;
case -3:
QMessageBox::critical(this, "系统错误", "指定名称重复");
return;
}
paths.append(name);
auto xinfo = this->pjtins->queryWith(paths);
emit this->activeDocument(xinfo.absoluteFilePath(), name);
}
void Components::ProjectView::project_configration()
@ -169,6 +189,20 @@ void Components::ProjectView::project_configration()
dia.exec();
}
QList<QStandardItem *> Components::ProjectView::nodes_contained(QStandardItem *root)
{
QList<QStandardItem *> coll;
coll << root;
for(auto idx=0; idx<root->rowCount(); ++idx)
{
coll << root->child(idx);
coll.append(nodes_contained(root->child(idx)));
}
return coll;
}

View File

@ -19,6 +19,7 @@ namespace Components {
signals:
void activeDocument(const QString &file_path, const QString &name);
void aboutToBoDelete(const QList<QFileInfo> &file_paths);
private:
Core::AppCore *const rtcore;
@ -29,6 +30,8 @@ namespace Components {
void alloc_file(const QModelIndex &idx_it, const QString &type, const QString &suffix);
void project_configration();
QList<QStandardItem*> nodes_contained(QStandardItem *root);
};
}

View File

@ -2,6 +2,7 @@
#include "keywordshightlighter.h"
#include <QComboBox>
#include <QMenu>
#include <QSpinBox>
#include <QVBoxLayout>
@ -14,6 +15,10 @@ SourceCodeEditor::SourceCodeEditor(Core::FileExtensionFactory *factory)
{
highlighter_ins->setDocument(this->textDocument());
this->setContexMenuProcess([this](QMenu *menu){
menu->addSeparator();
menu->addAction("刷新", [this](){highlighter_ins->rehighlight();});
});
}
void SourceCodeEditor::concept_jump(const QList<QString> &path)
@ -49,7 +54,7 @@ Core::ExtensionFactory *SourceCodeEditor::factory() const
return factory_ins;
}
void SourceCodeEditor::reload(QList<Config::Configration *> configs)
void SourceCodeEditor::reloadConfigrations(QList<Config::Configration *> configs)
{
auto family = Config::ConfigHelper::getConfigAsDefaultSequence(configs, {"sourcecodeeditor-setting", "default", "font", "family"}, "微软雅黑");
auto size = Config::ConfigHelper::getConfigAsDefaultSequence(configs, {"sourcecodeeditor-setting", "default", "font", "size"}, "20");
@ -86,10 +91,10 @@ void SourceCodeEditor::jumpTo(const QList<QString> &path)
concept_jump(path);
}
void SourceCodeEditor::setSource(Core::AppCore *core, const QFileInfo &src, QWidget *parent)
void SourceCodeEditor::initSource(Core::AppCore *core, const QFileInfo &src, QWidget *parent)
{
static_cast<KeywordsHightlighter*>(highlighter_ins)->reset(core->parseCore()->queryDocument(src));
FormattedTextEdit::setSource(core, src, parent);
FormattedTextEdit::initSource(core, src, parent);
this->core_ins = core;
}

View File

@ -37,7 +37,7 @@ namespace Components {
// Extension interface
public:
virtual Core::ExtensionFactory *factory() const override;
virtual void reload(QList<Config::Configration *> configs) override;
virtual void reloadConfigrations(QList<Config::Configration *> configs) override;
virtual void resetProcsType(const QString &suffix) override;
// ModeView interface
@ -49,7 +49,7 @@ namespace Components {
// VariedTextView interface
public:
virtual void jumpTo(const QList<QString> &path) override;
virtual void setSource(Core::AppCore *core, const QFileInfo &src, QWidget *parent) override;
virtual void initSource(Core::AppCore *core, const QFileInfo &src, QWidget *parent) override;
// FormattedTextEdit interface
protected:

View File

@ -28,7 +28,7 @@ FileExtensionFactory *StoryBoardSourceEdit::factory() const
return factory_ins;
}
void StoryBoardSourceEdit::reload(QList<Config::Configration *> configs)
void StoryBoardSourceEdit::reloadConfigrations(QList<Config::Configration *> configs)
{
// TODO 设置格式
auto font_family = Config::ConfigHelper::getConfigAsDefaultSequence
@ -60,11 +60,11 @@ QString StoryBoardSourceEdit::title() const
return source_target.fileName();
}
void StoryBoardSourceEdit::setSource(Core::AppCore *core, const QFileInfo &src, QWidget *parent)
void StoryBoardSourceEdit::initSource(Core::AppCore *core, const QFileInfo &src, QWidget *parent)
{
this->source_target = src;
this->core_temp = core;
FormattedTextEdit::setSource(core, src, parent);
FormattedTextEdit::initSource(core, src, parent);
static_cast<KeywordsHightlighter*>(words_highlighter)
->reset(core->parseCore()->queryDocument(src));
rehighlighter();

View File

@ -26,7 +26,7 @@ namespace Components {
// Plugin interface
public:
virtual Core::FileExtensionFactory *factory() const override;
virtual void reload(QList<Config::Configration *> configs) override;
virtual void reloadConfigrations(QList<Config::Configration *> configs) override;
// ModeView interface
public:
@ -37,7 +37,7 @@ namespace Components {
// VariedTextView interface
public:
virtual void setSource(Core::AppCore *core, const QFileInfo &src, QWidget *parent=nullptr) override;
virtual void initSource(Core::AppCore *core, const QFileInfo &src, QWidget *parent=nullptr) override;
virtual void jumpTo(const QList<QString> &path) override;
// FormattedTextEdit interface

View File

@ -40,9 +40,9 @@ QString StoryChainSourceEdit::title() const
return doc_ins->filePath();
}
void StoryChainSourceEdit::setSource(Core::AppCore *core, const QFileInfo &src, QWidget *parent)
void StoryChainSourceEdit::initSource(Core::AppCore *core, const QFileInfo &src, QWidget *parent)
{
FormattedTextEdit::setSource(core, src, parent);
FormattedTextEdit::initSource(core, src, parent);
this->doc_ins = core->parseCore()->queryDocument(src);
this->core_ins = core;
static_cast<Enhancement::KeywordsHightlighter*>(this->highter_ins)->reset(doc_ins);
@ -54,7 +54,7 @@ FileExtensionFactory *StoryChainSourceEdit::factory() const
return factory_ins;
}
void StoryChainSourceEdit::reload(QList<Config::Configration *> configs)
void StoryChainSourceEdit::reloadConfigrations(QList<Config::Configration *> configs)
{
// TODO 设置格式
auto font_family = Config::ConfigHelper::getConfigAsDefaultSequence

View File

@ -43,13 +43,13 @@ namespace Components {
// VariedTextView interface
public:
virtual void setSource(Core::AppCore *core, const QFileInfo &src, QWidget *parent=nullptr) override;
virtual void initSource(Core::AppCore *core, const QFileInfo &src, QWidget *parent=nullptr) override;
virtual void jumpTo(const QList<QString> &path) override;
// Plugin interface
public:
virtual Core::FileExtensionFactory *factory() const override;
virtual void reload(QList<Config::Configration *> configs) override;
virtual void reloadConfigrations(QList<Config::Configration *> configs) override;
// FormattedTextEdit interface
protected:

View File

@ -1,58 +1,65 @@
#include "conceptview.h"
#include "storyconceptspresent.h"
#include "SensitiveCore.h"
#include "opstream.h"
#include <QSplitter>
#include <QVBoxLayout>
using namespace Operate;
using namespace Components;
using namespace Core;
using namespace Parse::Result;
using namespace Tools;
ConceptView::ConceptView(Core::AppCore *core, QWidget *parent)
StoryConceptsPresent::StoryConceptsPresent(Core::AppCore *core, QWidget *parent)
: QWidget(parent), core_ins(core),
tree_view(new QTreeView(this)),
model_base(new QStandardItemModel(this)),
details_view(new QTextBrowser(this))
{
tree_view->setHeaderHidden(true);
details_view(new QTextBrowser(this)),
concept_model(new ModelSyncs<DesNode*>(
model_base,
[](DesNode* dbase, QStandardItem *it)->bool{ return static_cast<NamedNode*>(dbase)->name()[0] == it->text(); },
[](DesNode* dbase, QStandardItem *it){ it->setText(static_cast<NamedNode*>(dbase)->name()[0]); })){
tree_view->setHeaderHidden(true);
auto layout = new QVBoxLayout(this);
layout->setMargin(0);
auto layout = new QVBoxLayout(this);
layout->setMargin(0);
auto splitter = new QSplitter(Qt::Vertical, this);
layout->addWidget(splitter);
auto splitter = new QSplitter(Qt::Vertical, this);
layout->addWidget(splitter);
splitter->addWidget(tree_view);
splitter->addWidget(details_view);
splitter->addWidget(tree_view);
splitter->addWidget(details_view);
tree_view->setModel(model_base);
details_view->setReadOnly(true);
tree_view->setModel(model_base);
details_view->setReadOnly(true);
connect(tree_view, &QTreeView::clicked, this, &ConceptView::show_node_description);
connect(tree_view, &QTreeView::doubleClicked, this, &ConceptView::click_to);
connect(tree_view, &QTreeView::clicked, this, &StoryConceptsPresent::show_node_description);
connect(tree_view, &QTreeView::doubleClicked, this, &StoryConceptsPresent::click_to);
}
void ConceptView::refresh()
void StoryConceptsPresent::refresh()
{
model_base->clear();
auto units = core_ins->parseCore()->allStoryConcept();
for(auto &unit : units){
auto unit_node = new QStandardItem(static_cast<NamedNode*>(unit)->name()[0]);
unit_node->setEditable(false);
model_base->appendRow(unit_node);
auto children = unit->children();
this->concept_model->presentSync([this](DesNode *dit){
if(dit){
QList<DesNode*> rets;
auto children = dit->children();
for(auto &frag : children){
if(frag->typeValue() == NODE_STORYSTRONGPOINT){
auto frag_node = new QStandardItem(static_cast<NamedNode*>(frag)->name()[0]);
frag_node->setEditable(false);
unit_node->appendRow(frag_node);
rets << frag;
}
}
return rets;
}
else{
return core_ins->parseCore()->allStoryConcept();
}
});
}
void ConceptView::show_node_description(const QModelIndex &curr)
void StoryConceptsPresent::show_node_description(const QModelIndex &curr)
{
if(!curr.isValid())
return;
@ -80,7 +87,7 @@ void ConceptView::show_node_description(const QModelIndex &curr)
}
}
void ConceptView::click_to(const QModelIndex &curr)
void StoryConceptsPresent::click_to(const QModelIndex &curr)
{
if(!curr.isValid())
return;

View File

@ -1,7 +1,9 @@
#ifndef CONCEPTVIEW_H
#define CONCEPTVIEW_H
#ifndef STORYCONCEPTSPRESENT_H
#define STORYCONCEPTSPRESENT_H
#include "appcore.h"
#include "tools.h"
#include <libParse.h>
#include <QObject>
#include <QTextBrowser>
@ -9,10 +11,10 @@
#include <QWidget>
namespace Components {
class ConceptView : public QWidget
class StoryConceptsPresent : public QWidget
{
public:
ConceptView(Core::AppCore *core, QWidget *parent=nullptr);
StoryConceptsPresent(Core::AppCore *core, QWidget *parent=nullptr);
virtual void refresh();
@ -21,6 +23,7 @@ namespace Components {
QTreeView *const tree_view;
QStandardItemModel *const model_base;
QTextBrowser *const details_view;
Tools::ModelSyncs<Parse::Result::DesNode*> * concept_model;
void show_node_description(const QModelIndex &curr);
void click_to(const QModelIndex &curr);
@ -28,4 +31,4 @@ namespace Components {
}
#endif // CONCEPTVIEW_H
#endif // STORYCONCEPTSPRESENT_H

View File

@ -26,7 +26,7 @@ FileExtensionFactory *StoryUnitSourceEdit::factory() const
return factory_ins;
}
void StoryUnitSourceEdit::reload(QList<Config::Configration *> configs)
void StoryUnitSourceEdit::reloadConfigrations(QList<Config::Configration *> configs)
{
// TODO 设置格式
auto font_family = Config::ConfigHelper::getConfigAsDefaultSequence
@ -66,11 +66,11 @@ void StoryUnitSourceEdit::rehighlighter()
this->words_highlighter->rehighlight();
}
void StoryUnitSourceEdit::setSource(Core::AppCore *core, const QFileInfo &src, QWidget *parent)
void StoryUnitSourceEdit::initSource(Core::AppCore *core, const QFileInfo &src, QWidget *parent)
{
this->source_target = src;
this->core_ins = core;
FormattedTextEdit::setSource(core, src, parent);
FormattedTextEdit::initSource(core, src, parent);
static_cast<KeywordsHightlighter*>(words_highlighter)
->reset(core->parseCore()->queryDocument(src));
rehighlighter();

View File

@ -25,7 +25,7 @@ namespace Components {
// Plugin interface
public:
virtual Core::FileExtensionFactory *factory() const override;
virtual void reload(QList<Config::Configration *> configs) override;
virtual void reloadConfigrations(QList<Config::Configration *> configs) override;
// ModeView interface
public:
@ -40,7 +40,7 @@ namespace Components {
// VariedTextView interface
public:
virtual void setSource(Core::AppCore *core, const QFileInfo &src, QWidget *parent=nullptr) override;
virtual void initSource(Core::AppCore *core, const QFileInfo &src, QWidget *parent=nullptr) override;
private:
QSyntaxHighlighter *const words_highlighter;

View File

@ -16,7 +16,7 @@ FileExtensionFactory *StoryVolumeSourceEdit::factory() const
return factory_ins;
}
void StoryVolumeSourceEdit::reload(QList<Config::Configration *> configs)
void StoryVolumeSourceEdit::reloadConfigrations(QList<Config::Configration *> configs)
{
// TODO 设置格式
auto font_family = Config::ConfigHelper::getConfigAsDefaultSequence
@ -64,10 +64,10 @@ QString StoryVolumeSourceEdit::title() const
return source_target.fileName();
}
void StoryVolumeSourceEdit::setSource(Core::AppCore *core, const QFileInfo &src, QWidget *parent)
void StoryVolumeSourceEdit::initSource(Core::AppCore *core, const QFileInfo &src, QWidget *parent)
{
this->source_target = src;
FormattedTextEdit::setSource(core, src, parent);
FormattedTextEdit::initSource(core, src, parent);
static_cast<KeywordsHightlighter*>(words_highlighter)
->reset(core->parseCore()->queryDocument(src));
rehighlighter();

View File

@ -26,7 +26,7 @@ namespace Components {
// Extension interface
public:
virtual Core::FileExtensionFactory *factory() const override;
virtual void reload(QList<Config::Configration *> configs) override;
virtual void reloadConfigrations(QList<Config::Configration *> configs) override;
virtual void resetProcsType(const QString &suffix) override;
// ModeView interface
@ -38,7 +38,7 @@ namespace Components {
// VariedTextView interface
public:
virtual void setSource(Core::AppCore *core, const QFileInfo &src, QWidget *parent) override;
virtual void initSource(Core::AppCore *core, const QFileInfo &src, QWidget *parent) override;
// FormattedTextEdit interface
protected:

1
WordsIDE/tools.cpp Normal file
View File

@ -0,0 +1 @@
#include "tools.h"

91
WordsIDE/tools.h Normal file
View File

@ -0,0 +1,91 @@
#ifndef COMNTOOLS_H
#define COMNTOOLS_H
#include "opstream.h"
#include <QStandardItemModel>
#include <functional>
namespace Tools {
template<class BaseType>
class ModelSyncs
{
public:
ModelSyncs(QStandardItemModel *model_base, std::function<bool(const BaseType &n, QStandardItem *p)> _equal,
std::function<void(const BaseType &n, QStandardItem *p)> sync_proc)
: model_present(model_base), sync_process(sync_proc), compare_process(_equal){}
void presentSync(std::function<QList<BaseType>(const BaseType &pnode)> items_peak)
{
auto default_pdata = BaseType();
auto datas = items_peak(default_pdata);
Operate::OpStream<QStandardItem*>([this](int &cnt, int idx)->QStandardItem*{
cnt = model_present->rowCount();
return model_present->item(idx);
}).filter([&datas, this](QStandardItem *const &it)->bool{
for(auto &d : datas)
if(compare_process(d, it))
return false;
return true;
}).forEach([this](QStandardItem *const &it){
model_present->removeRow(it->row());
});
for (auto idx = 0; idx < datas.size(); ++idx) {
if (idx >= model_present->rowCount()) {
auto ins = new QStandardItem();
ins->setEditable(false);
model_present->appendRow(ins);
}
auto &data = datas[idx];
auto item = model_present->item(idx);
sync_process(data, item);
layer_items_sync(data, item, items_peak);
}
}
private:
QStandardItemModel *model_present;
std::function<void(const BaseType &n, QStandardItem *p)> sync_process;
std::function<bool(const BaseType &n, QStandardItem *p)> compare_process;
void layer_items_sync(const BaseType &data, QStandardItem *pnode,
std::function<QList<BaseType>(const BaseType &pnode)> items_peak){
auto datas = items_peak(data);
Operate::OpStream<QStandardItem*>([pnode](int &cnt, int idx)->QStandardItem*{
cnt = pnode->rowCount();
return pnode->child(idx);
}).filter([&datas, this](QStandardItem *const &it)->bool{
for(auto &d : datas)
if(compare_process(d, it))
return false;
return true;
}).forEach([pnode](QStandardItem *const &it){
pnode->removeRow(it->row());
});
for (auto idx = 0; idx < datas.size(); ++idx) {
if (idx >= pnode->rowCount()) {
auto ins = new QStandardItem();
ins->setEditable(false);
pnode->appendRow(ins);
}
auto &data = datas[idx];
auto item = pnode->child(idx);
sync_process(data, item);
layer_items_sync(data, item, items_peak);
}
}
};
}
#endif // COMNTOOLS_H

View File

@ -73,7 +73,7 @@ namespace Project {
/**
* @brief
* @param path
* @return 0,-1,-2,
* @return 0,-1,-2,;-3,
*/
virtual int createFile(const QList<QString> &path, const QString &name, const QString &suffix) = 0;

View File

@ -185,6 +185,18 @@ void XMLProjectManager::structure_severlize(ProjectNode *pnode, QDomElement &elm
int XMLProjectManager::createFile(const QList<QString> &path, const QString &name, const QString &suffix)
{
auto pnode = static_cast<ProjectNode*>(mode_holder->item(0));
auto group = node_follows(pnode, path);
if(group == nullptr)
return -1;
if(group->nodeType() == NodeType::FILE)
return -2;
for(auto idx=0; idx<group->rowCount(); ++idx)
if(group->child(idx)->text() == name)
return -3;
auto root = QFileInfo(file_path).dir();
QRandomGenerator xgen(QDateTime::currentDateTime().offsetFromUtc());
@ -198,14 +210,6 @@ int XMLProjectManager::createFile(const QList<QString> &path, const QString &nam
return -3;
tfile.close();
auto pnode = static_cast<ProjectNode*>(mode_holder->item(0));
auto group = node_follows(pnode, path);
if(group == nullptr)
return -1;
if(group->nodeType() == NodeType::FILE)
return -2;
auto filenode = new ProjectNode(NodeType::FILE, name);
filenode->setFile(filename);
group->appendRow(filenode);