修改组件工程名称
This commit is contained in:
parent
d4136a32b4
commit
0f18bb8b43
|
|
@ -15,3 +15,7 @@ libProjectManager/release/
|
|||
/u_test/debug
|
||||
/SplitView/debug
|
||||
/u_test/release
|
||||
/GenericConsole/debug
|
||||
/x64/Debug
|
||||
/x64/Release
|
||||
/GenericConsole/debug/qmake/temp
|
||||
|
|
|
|||
|
|
@ -1,159 +0,0 @@
|
|||
<?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>{5BB4976A-6252-3E36-851D-7F17F16DF17D}</ProjectGuid>
|
||||
<RootNamespace>GenericConsole</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>DynamicLibrary</ConfigurationType>
|
||||
<IntermediateDirectory>release\</IntermediateDirectory>
|
||||
<PrimaryOutput>GenericConsole</PrimaryOutput>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<OutputDirectory>debug\</OutputDirectory>
|
||||
<ATLMinimizesCRunTimeLibraryUsage>false</ATLMinimizesCRunTimeLibraryUsage>
|
||||
<CharacterSet>NotSet</CharacterSet>
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<IntermediateDirectory>debug\</IntermediateDirectory>
|
||||
<PrimaryOutput>GenericConsole</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>GenericConsole</TargetName><IgnoreImportLibrary>true</IgnoreImportLibrary></PropertyGroup><PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"><OutDir>release\</OutDir><IntDir>release\</IntDir><TargetName>GenericConsole</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</QtModules></PropertyGroup><PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"><QtInstall>5.12.11_msvc2017_64</QtInstall><QtModules>core</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;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus /utf-8 -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;GENERICCONSOLE_LIBRARY;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>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<IgnoreImportLibrary>true</IgnoreImportLibrary>
|
||||
<LinkDLL>true</LinkDLL>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<OutputFile>$(OutDir)\GenericConsole.dll</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;GENERICCONSOLE_LIBRARY;QT_NO_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>GeneratedFiles\$(ConfigurationName);GeneratedFiles;.;debug;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus /utf-8 -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;GENERICCONSOLE_LIBRARY;%(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>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<IgnoreImportLibrary>true</IgnoreImportLibrary>
|
||||
<LinkDLL>true</LinkDLL>
|
||||
<OutputFile>$(OutDir)\GenericConsole.dll</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;GENERICCONSOLE_LIBRARY;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="commandsdispatcher.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="GenericConsole_global.h" />
|
||||
<ClInclude Include="commandsdispatcher.h" />
|
||||
</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 /utf-8 -Zi -MDd -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -E $(QTDIR)\mkspecs\features\data\dummy.cpp 2>NUL >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 /utf-8 -O2 -MD -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -E $(QTDIR)\mkspecs\features\data\dummy.cpp 2>NUL >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>
|
||||
<None Include="GenericConsole_zh_CN.ts" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /><ImportGroup Condition="Exists('$(QtMsBuild)\qt.targets')"><Import Project="$(QtMsBuild)\qt.targets" /></ImportGroup>
|
||||
<ImportGroup Label="ExtensionTargets" />
|
||||
</Project>
|
||||
|
|
@ -1,65 +0,0 @@
|
|||
<?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="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="commandsdispatcher.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="GenericConsole_global.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="commandsdispatcher.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</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>
|
||||
<None Include="GenericConsole_zh_CN.ts">
|
||||
<Filter>Translation Files</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup />
|
||||
</Project>
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
d:\projects\cpp\qtnoveldesc\genericconsole\debug\vc141.pdb
|
||||
d:\projects\cpp\qtnoveldesc\genericconsole\debug\commandsdispatcher.obj
|
||||
d:\projects\cpp\qtnoveldesc\genericconsole\debug\moc_predefs.h
|
||||
d:\projects\cpp\qtnoveldesc\genericconsole\debug\genericconsole.lib
|
||||
d:\projects\cpp\qtnoveldesc\genericconsole\debug\genericconsole.exp
|
||||
d:\projects\cpp\qtnoveldesc\genericconsole\debug\genericconsole.ilk
|
||||
d:\projects\cpp\qtnoveldesc\genericconsole\debug\genericconsole.dll
|
||||
d:\projects\cpp\qtnoveldesc\genericconsole\debug\genericconsole.pdb
|
||||
d:\projects\cpp\qtnoveldesc\genericconsole\debug\genericconsole.tlog\cl.command.1.tlog
|
||||
d:\projects\cpp\qtnoveldesc\genericconsole\debug\genericconsole.tlog\cl.read.1.tlog
|
||||
d:\projects\cpp\qtnoveldesc\genericconsole\debug\genericconsole.tlog\cl.write.1.tlog
|
||||
d:\projects\cpp\qtnoveldesc\genericconsole\debug\genericconsole.tlog\custombuild.command.1.tlog
|
||||
d:\projects\cpp\qtnoveldesc\genericconsole\debug\genericconsole.tlog\custombuild.read.1.tlog
|
||||
d:\projects\cpp\qtnoveldesc\genericconsole\debug\genericconsole.tlog\custombuild.write.1.tlog
|
||||
d:\projects\cpp\qtnoveldesc\genericconsole\debug\genericconsole.tlog\genericconsole.write.1u.tlog
|
||||
d:\projects\cpp\qtnoveldesc\genericconsole\debug\genericconsole.tlog\link.command.1.tlog
|
||||
d:\projects\cpp\qtnoveldesc\genericconsole\debug\genericconsole.tlog\link.read.1.tlog
|
||||
d:\projects\cpp\qtnoveldesc\genericconsole\debug\genericconsole.tlog\link.write.1.tlog
|
||||
Binary file not shown.
Binary file not shown.
|
|
@ -1,2 +0,0 @@
|
|||
#TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.22621.0
|
||||
Debug|x64|D:\Projects\Cpp\QtNovelDesc\|
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1 +0,0 @@
|
|||
This is a dummy file needed to create debug/moc_predefs.h
|
||||
|
|
@ -1 +0,0 @@
|
|||
This is a dummy file needed to create ./moc_predefs.h
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
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
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
CONFIG += no_fixpath
|
||||
QT += core
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
<?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>
|
||||
|
|
@ -1,839 +0,0 @@
|
|||
<?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="QUuid">
|
||||
<DisplayString>{{{data1,Xb}-{data2,Xb}-{data3,Xb}-{(data4[0]),nvoXb}{(data4[1]),nvoXb}-{(data4[2]),nvoXb}{(data4[3]),nvoXb}{(data4[4]),nvoXb}{(data4[5]),nvoXb}{(data4[6]),nvoXb}{(data4[7]),nvoXb}}}</DisplayString>
|
||||
</Type>
|
||||
|
||||
<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->size} }}</DisplayString>
|
||||
<Expand>
|
||||
<Item Name="[referenced]">d->ref.atomic._q_value</Item>
|
||||
<ArrayItems>
|
||||
<Size>d->size</Size>
|
||||
<ValuePointer>(QPoint*)((reinterpret_cast<char*>(d)) + d->offset)</ValuePointer>
|
||||
</ArrayItems>
|
||||
</Expand>
|
||||
</Type>
|
||||
|
||||
<Type Name="QPolygonF">
|
||||
<DisplayString>{{ size = {d->size} }}</DisplayString>
|
||||
<Expand>
|
||||
<Item Name="[closed]">
|
||||
d->size > 0
|
||||
&& ((((QPointF*)((reinterpret_cast<char*>(d)) + d->offset)[0]).xp
|
||||
== (((QPointF*)((reinterpret_cast<char*>(d)) + d->offset)[d->size - 1]).xp)
|
||||
&& ((((QPointF*)((reinterpret_cast<char*>(d)) + d->offset)[0]).yp
|
||||
== (((QPointF*)((reinterpret_cast<char*>(d)) + d->offset)[d->size - 1]).yp)
|
||||
</Item>
|
||||
<Item Name="[referenced]">d->ref.atomic._q_value</Item>
|
||||
<ArrayItems>
|
||||
<Size>d->size</Size>
|
||||
<ValuePointer>(QPointF*)((reinterpret_cast<char*>(d)) + d->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<Policy>(bits.horPolicy)}, vertical = {static_cast<Policy>(bits.verPolicy)}, type = {ControlType(1 << bits.ctype)} }}
|
||||
</DisplayString>
|
||||
<Expand>
|
||||
<Synthetic Name="[vertical policy]">
|
||||
<DisplayString>QSizePolicy::Policy::{static_cast<Policy>(bits.verPolicy)}</DisplayString>
|
||||
</Synthetic>
|
||||
<Synthetic Name="[horizontal policy]">
|
||||
<DisplayString>QSizePolicy::Policy::{static_cast<Policy>(bits.horPolicy)}</DisplayString>
|
||||
</Synthetic>
|
||||
<Synthetic Name="[control type]">
|
||||
<DisplayString>QSizePolicy::ControlType::{ControlType(1 << bits.ctype)}</DisplayString>
|
||||
</Synthetic>
|
||||
<Synthetic Name="[expanding directions]">
|
||||
<DisplayString
|
||||
Condition="(static_cast<Policy>(bits.verPolicy) & ExpandFlag)">
|
||||
Qt::Vertical (2)
|
||||
</DisplayString>
|
||||
<DisplayString
|
||||
Condition="(static_cast<Policy>(bits.horPolicy) & ExpandFlag)">
|
||||
Qt::Horizontal (1)
|
||||
</DisplayString>
|
||||
</Synthetic>
|
||||
<Item Name="[vertical stretch]">static_cast<int>(bits.verStretch)</Item>
|
||||
<Item Name="[horizontal stretch]">static_cast<int>(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<unsigned short*>(d)) + d->offset / 2),sub}</DisplayString>
|
||||
<StringView>((reinterpret_cast<unsigned short*>(d)) + d->offset / 2),sub</StringView>
|
||||
<Expand>
|
||||
<Item Name="[size]">d->size</Item>
|
||||
<Item Name="[referenced]">d->ref.atomic._q_value</Item>
|
||||
<ArrayItems>
|
||||
<Size>d->size</Size>
|
||||
<ValuePointer>((reinterpret_cast<unsigned short*>(d)) + d->offset / 2),c</ValuePointer>
|
||||
</ArrayItems>
|
||||
</Expand>
|
||||
</Type>
|
||||
|
||||
<Type Name="QStringRef">
|
||||
<Intrinsic Name="offset" Expression="(reinterpret_cast<char16_t*>(m_string->d))
|
||||
+ m_string->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<char*>(d)) + d->offset),sb}</DisplayString>
|
||||
<StringView>((reinterpret_cast<char*>(d)) + d->offset),sb</StringView>
|
||||
<Expand>
|
||||
<Item Name="[size]">d->size</Item>
|
||||
<Item Name="[referenced]">d->ref.atomic._q_value</Item>
|
||||
<ArrayItems>
|
||||
<Size>d->size</Size>
|
||||
<ValuePointer>((reinterpret_cast<char*>(d)) + d->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->size)">{scheme()}://{host()}{path()}</DisplayString>
|
||||
<DisplayString Condition="isEmpty(scheme().d->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->size << 3) - *((reinterpret_cast<char*>(d.d)) + d.d->offset)} }}</DisplayString>
|
||||
<Expand>
|
||||
<Item Name="[referenced]">d.d->ref.atomic._q_value</Item>
|
||||
<IndexListItems>
|
||||
<Size>(d.d->size << 3) - *((reinterpret_cast<char*>(d.d)) + d.d->offset)</Size>
|
||||
<ValueNode>
|
||||
(*(reinterpret_cast<const unsigned char*>((reinterpret_cast<char*>(d.d)) + d.d->offset) + 1
|
||||
+ ($i >> 3)) & (1 << ($i & 7))) != 0
|
||||
</ValueNode>
|
||||
</IndexListItems>
|
||||
</Expand>
|
||||
</Type>
|
||||
|
||||
<Type Name="QVarLengthArray<*>">
|
||||
<AlternativeType Name="QVarLengthArray<*, int>"/>
|
||||
<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<*>">
|
||||
<DisplayString>strong reference to shared pointer of type {"$T1"}</DisplayString>
|
||||
<Expand>
|
||||
<Item Name="[is null]">value == 0</Item>
|
||||
<Item Name="[weak referenced]">d->weakref._q_value</Item>
|
||||
<Item Name="[strong referenced]">d->strongref._q_value</Item>
|
||||
</Expand>
|
||||
</Type>
|
||||
|
||||
<Type Name="QSharedDataPointer<*>">
|
||||
<DisplayString>pointer to implicit shared object of type {"$T1"}</DisplayString>
|
||||
<Expand>
|
||||
<ExpandedItem>d</ExpandedItem>
|
||||
</Expand>
|
||||
</Type>
|
||||
|
||||
<Type Name="QExplicitlySharedDataPointer<*>">
|
||||
<DisplayString>pointer to explicit shared object of type {"$T1"}</DisplayString>
|
||||
<Expand>
|
||||
<ExpandedItem>d</ExpandedItem>
|
||||
</Expand>
|
||||
</Type>
|
||||
|
||||
<Type Name="QPointer<*>">
|
||||
<DisplayString>guarded pointer to subclass of QObject of type {"$T1"}</DisplayString>
|
||||
<Expand>
|
||||
<Item Name="[is null]">wp.d == 0 || wp.d->strongref._q_value == 0 || wp.value == 0</Item>
|
||||
</Expand>
|
||||
</Type>
|
||||
|
||||
<Type Name="QWeakPointer<*>">
|
||||
<DisplayString>weak reference to shared pointer of type {"$T1"}</DisplayString>
|
||||
<Expand>
|
||||
<Item Name="[is null]">d == 0 || d->strongref._q_value == 0 || value == 0</Item>
|
||||
<Item Name="[weak referenced]">d->weakref._q_value</Item>
|
||||
<Item Name="[strong referenced]">d->strongref._q_value</Item>
|
||||
</Expand>
|
||||
</Type>
|
||||
|
||||
<Type Name="QScopedPointer<*>">
|
||||
<DisplayString>scoped pointer to a dynamically allocated object of type {"$T1"}</DisplayString>
|
||||
<Expand>
|
||||
<Item Name="[is null]">!d</Item>
|
||||
</Expand>
|
||||
</Type>
|
||||
|
||||
<Type Name="QScopedArrayPointer<*>">
|
||||
<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<*,*>">
|
||||
<DisplayString>({first}, {second})</DisplayString>
|
||||
<Expand>
|
||||
<Item Name="[first]">first</Item>
|
||||
<Item Name="[second]">second</Item>
|
||||
</Expand>
|
||||
</Type>
|
||||
|
||||
<Type Name="QVector<*>">
|
||||
<AlternativeType Name="QStack<*>"></AlternativeType>
|
||||
<DisplayString>{{ size = {d->size} }}</DisplayString>
|
||||
<Expand>
|
||||
<Item Name="[referenced]">d->ref.atomic._q_value</Item>
|
||||
<ArrayItems>
|
||||
<Size>d->size</Size>
|
||||
<ValuePointer>($T1*)((reinterpret_cast<char*>(d)) + d->offset)</ValuePointer>
|
||||
</ArrayItems>
|
||||
</Expand>
|
||||
</Type>
|
||||
|
||||
<Type Name="QList<*>">
|
||||
<AlternativeType Name="QQueue<*>"></AlternativeType>
|
||||
<DisplayString>{{ size = {d->end - d->begin} }}</DisplayString>
|
||||
<Expand>
|
||||
<Item Name="[referenced]">d->ref.atomic._q_value</Item>
|
||||
<IndexListItems>
|
||||
<Size>d->end - d->begin</Size>
|
||||
<ValueNode>*reinterpret_cast<$T1*>((sizeof($T1) > sizeof(void*))
|
||||
? reinterpret_cast<Node*>(d->array + d->begin + $i)->v
|
||||
: reinterpret_cast<$T1*>(d->array + d->begin + $i))
|
||||
</ValueNode>
|
||||
</IndexListItems>
|
||||
</Expand>
|
||||
</Type>
|
||||
|
||||
<Type Name="QStringList">
|
||||
<DisplayString>{{ size = {d->end - d->begin} }}</DisplayString>
|
||||
<Expand>
|
||||
<Item Name="[referenced]">d->ref.atomic._q_value</Item>
|
||||
<IndexListItems>
|
||||
<Size>d->end - d->begin</Size>
|
||||
<ValueNode>
|
||||
*reinterpret_cast<QString*>((sizeof(QString) > sizeof(void*))
|
||||
? reinterpret_cast<Node*>(d->array + d->begin + $i)->v
|
||||
: reinterpret_cast<QString*>(d->array + d->begin + $i))
|
||||
</ValueNode>
|
||||
</IndexListItems>
|
||||
</Expand>
|
||||
</Type>
|
||||
|
||||
<Type Name="QList<QVariant>">
|
||||
<DisplayString>{{ size = {d->end - d->begin} }}</DisplayString>
|
||||
<Expand>
|
||||
<Item Name="[referenced]">d->ref.atomic._q_value</Item>
|
||||
<IndexListItems>
|
||||
<Size>d->end - d->begin</Size>
|
||||
<ValueNode>
|
||||
*reinterpret_cast<QVariant*>((sizeof(QVariant) > sizeof(void*))
|
||||
? reinterpret_cast<Node*>(d->array + d->begin + $i)->v
|
||||
: reinterpret_cast<QVariant*>(d->array + d->begin + $i))
|
||||
</ValueNode>
|
||||
</IndexListItems>
|
||||
</Expand>
|
||||
</Type>
|
||||
|
||||
<Type Name="QLinkedList<*>">
|
||||
<DisplayString>{{ size = {d->size} }}</DisplayString>
|
||||
<Expand>
|
||||
<Item Name="[referenced]">d->ref.atomic._q_value</Item>
|
||||
<LinkedListItems>
|
||||
<Size>d->size</Size>
|
||||
<HeadPointer>d->n</HeadPointer>
|
||||
<NextPointer>n</NextPointer>
|
||||
<ValueNode>(*(QLinkedListNode<$T1>*)this).t</ValueNode>
|
||||
</LinkedListItems>
|
||||
</Expand>
|
||||
</Type>
|
||||
|
||||
<Type Name="QMapNode<*,*>">
|
||||
<DisplayString>({key}, {value})</DisplayString>
|
||||
<Expand>
|
||||
<Item Name="[key]">key</Item>
|
||||
<Item Name="[value]">value</Item>
|
||||
</Expand>
|
||||
</Type>
|
||||
|
||||
<Type Name="QMap<*,*>">
|
||||
<AlternativeType Name="QMultiMap<*,*>"/>
|
||||
<DisplayString>{{ size = {d->size} }}</DisplayString>
|
||||
<Expand>
|
||||
<Item Name="[referenced]">d->ref.atomic._q_value</Item>
|
||||
<TreeItems>
|
||||
<Size>d->size</Size>
|
||||
<HeadPointer>d->header.left</HeadPointer>
|
||||
<LeftPointer>left</LeftPointer>
|
||||
<RightPointer>right</RightPointer>
|
||||
<ValueNode>*((QMapNode<$T1,$T2>*)this)</ValueNode>
|
||||
</TreeItems>
|
||||
</Expand>
|
||||
</Type>
|
||||
|
||||
<Type Name="QHashNode<*,*>">
|
||||
<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<*,*>">
|
||||
<AlternativeType Name="QMultiHash<*,*>"/>
|
||||
<DisplayString>{{ size = {d->size} }}</DisplayString>
|
||||
<Expand>
|
||||
<ArrayItems IncludeView="buckets">
|
||||
<Size>d->numBuckets</Size>
|
||||
<ValuePointer>reinterpret_cast<Node **>(d->buckets)</ValuePointer>
|
||||
</ArrayItems>
|
||||
<CustomListItems ExcludeView="buckets">
|
||||
<Variable Name="n" InitialValue="d->numBuckets"/>
|
||||
<Variable Name="bucket" InitialValue="d->buckets"/>
|
||||
<Variable Name="node" InitialValue="d->buckets[0]"/>
|
||||
<Variable Name="keyValuePair" InitialValue="reinterpret_cast<Node *>(0)"/>
|
||||
<Size>d->size</Size>
|
||||
<Loop>
|
||||
<Break Condition="n == 0"/>
|
||||
<Exec>node = *(bucket++)</Exec>
|
||||
<Exec>--n</Exec>
|
||||
<Loop>
|
||||
<Break Condition="!node || !node->next"/>
|
||||
<Exec>keyValuePair = reinterpret_cast<Node *>(node)</Exec>
|
||||
<Item Name="[{keyValuePair->key}]">keyValuePair->value</Item>
|
||||
<Exec>node = node->next</Exec>
|
||||
</Loop>
|
||||
</Loop>
|
||||
</CustomListItems>
|
||||
</Expand>
|
||||
</Type>
|
||||
|
||||
<Type Name="QHashNode<*,QHashDummyValue>">
|
||||
<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<*>">
|
||||
<DisplayString>{{ size = {q_hash.d->size} }}</DisplayString>
|
||||
<Expand>
|
||||
<ExpandedItem>q_hash</ExpandedItem>
|
||||
</Expand>
|
||||
</Type>
|
||||
|
||||
<Type Name="QCache<*,*>::Node">
|
||||
<DisplayString>({*keyPtr}, {*t})</DisplayString>
|
||||
<Expand>
|
||||
<Item Name="[key]">*keyPtr</Item>
|
||||
<Item Name="[value]">*t</Item>
|
||||
</Expand>
|
||||
</Type>
|
||||
|
||||
<Type Name="QCache<*,*>">
|
||||
<DisplayString>{{ size = {hash.d->size} }}</DisplayString>
|
||||
<Expand>
|
||||
<Item Name="[max coast]">mx</Item>
|
||||
<Item Name="[total coast]">total</Item>
|
||||
<Item Name="[referenced]">hash.d->ref.atomic._q_value</Item>
|
||||
<LinkedListItems>
|
||||
<Size>hash.d->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<QString,QVariant>*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))}
|
||||
</DisplayString>
|
||||
<DisplayString Condition="d.type == QMetaType::QVariantList">
|
||||
{*((QList<QVariant>*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))}
|
||||
</DisplayString>
|
||||
<DisplayString Condition="d.type == QMetaType::QString">
|
||||
{*((QString*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))}
|
||||
</DisplayString>
|
||||
<DisplayString Condition="d.type == QMetaType::QStringList">
|
||||
{*((QStringList*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))}
|
||||
</DisplayString>
|
||||
<DisplayString Condition="d.type == QMetaType::QByteArray">
|
||||
{*((QByteArray*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))}
|
||||
</DisplayString>
|
||||
<DisplayString Condition="d.type == QMetaType::QBitArray">
|
||||
{*((QBitArray*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))}
|
||||
</DisplayString>
|
||||
<DisplayString Condition="d.type == QMetaType::QDate">
|
||||
{*((QDate*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))}
|
||||
</DisplayString>
|
||||
<DisplayString Condition="d.type == QMetaType::QTime">
|
||||
{*((QTime*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&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->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))}
|
||||
</DisplayString>
|
||||
<DisplayString Condition="d.type == QMetaType::QRectF">
|
||||
{*((QRectF*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))}
|
||||
</DisplayString>
|
||||
<DisplayString Condition="d.type == QMetaType::QSize">
|
||||
{*((QSize*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))}
|
||||
</DisplayString>
|
||||
<DisplayString Condition="d.type == QMetaType::QSizeF">
|
||||
{*((QSizeF*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))}
|
||||
</DisplayString>
|
||||
<DisplayString Condition="d.type == QMetaType::QLine">
|
||||
{*((QLine*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))}
|
||||
</DisplayString>
|
||||
<DisplayString Condition="d.type == QMetaType::QLineF">
|
||||
{*((QLineF*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))}
|
||||
</DisplayString>
|
||||
<DisplayString Condition="d.type == QMetaType::QPoint">
|
||||
{*((QPoint*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))}
|
||||
</DisplayString>
|
||||
<DisplayString Condition="d.type == QMetaType::QPointF">
|
||||
{*((QPointF*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&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<QString,QVariant>*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&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->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))
|
||||
</StringView>
|
||||
|
||||
<StringView Condition="d.type == QMetaType::QByteArray">
|
||||
*((QByteArray*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))
|
||||
</StringView>
|
||||
|
||||
<!--End region DisplayView QVariant-->
|
||||
|
||||
<!--Region Expand QVariant-->
|
||||
|
||||
<Expand>
|
||||
<ExpandedItem Condition="d.type == QMetaType::QVariantMap">
|
||||
*((QMap<QString,QVariant>*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))
|
||||
</ExpandedItem>
|
||||
<ExpandedItem Condition="d.type == QMetaType::QVariantList">
|
||||
*((QList<QVariant>*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))
|
||||
</ExpandedItem>
|
||||
<ExpandedItem Condition="d.type == QMetaType::QString">
|
||||
*((QString*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))
|
||||
</ExpandedItem>
|
||||
<ExpandedItem Condition="d.type == QMetaType::QStringList">
|
||||
*((QStringList*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))
|
||||
</ExpandedItem>
|
||||
<ExpandedItem Condition="d.type == QMetaType::QByteArray">
|
||||
*((QByteArray*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))
|
||||
</ExpandedItem>
|
||||
<ExpandedItem Condition="d.type == QMetaType::QBitArray">
|
||||
*((QBitArray*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))
|
||||
</ExpandedItem>
|
||||
<ExpandedItem Condition="d.type == QMetaType::QDate">
|
||||
*((QDate*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))
|
||||
</ExpandedItem>
|
||||
<ExpandedItem Condition="d.type == QMetaType::QTime">
|
||||
*((QTime*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))
|
||||
</ExpandedItem>
|
||||
<ExpandedItem Condition="d.type == QMetaType::QRect">
|
||||
*((QRect*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))
|
||||
</ExpandedItem>
|
||||
<ExpandedItem Condition="d.type == QMetaType::QRectF">
|
||||
*((QRectF*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))
|
||||
</ExpandedItem>
|
||||
<ExpandedItem Condition="d.type == QMetaType::QSize">
|
||||
*((QSize*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))
|
||||
</ExpandedItem>
|
||||
<ExpandedItem Condition="d.type == QMetaType::QSizeF">
|
||||
*((QSizeF*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))
|
||||
</ExpandedItem>
|
||||
<ExpandedItem Condition="d.type == QMetaType::QLine">
|
||||
*((QLine*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))
|
||||
</ExpandedItem>
|
||||
<ExpandedItem Condition="d.type == QMetaType::QLineF">
|
||||
*((QLineF*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))
|
||||
</ExpandedItem>
|
||||
<ExpandedItem Condition="d.type == QMetaType::QPoint">
|
||||
*((QPoint*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))
|
||||
</ExpandedItem>
|
||||
<ExpandedItem Condition="d.type == QMetaType::QPointF">
|
||||
*((QPointF*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))
|
||||
</ExpandedItem>
|
||||
<ExpandedItem Condition="d.type == QMetaType::QVariantHash">
|
||||
*((QHash<QString,QVariant>*)(d.is_shared ? d.data.shared->ptr
|
||||
: reinterpret_cast<const void *>(&d.data.ptr)))
|
||||
</ExpandedItem>
|
||||
</Expand>
|
||||
|
||||
<!--End region Expand QVariant-->
|
||||
</Type>
|
||||
|
||||
</AutoVisualizer>
|
||||
|
|
@ -1 +0,0 @@
|
|||
This is a dummy file needed to create release/moc_predefs.h
|
||||
|
|
@ -1 +0,0 @@
|
|||
This is a dummy file needed to create ./moc_predefs.h
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
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
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
CONFIG += no_fixpath
|
||||
QT += core
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
<?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>
|
||||
|
|
@ -2,7 +2,7 @@ TEMPLATE = subdirs
|
|||
|
||||
SUBDIRS += \
|
||||
GenericConsole \
|
||||
SplitView \
|
||||
libSplitView \
|
||||
WordsIDE \
|
||||
libConfig \
|
||||
libProjectManager \
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorProject>
|
||||
<!-- Written by QtCreator 4.15.0, 2023-08-24T22:54:09. -->
|
||||
<!-- Written by QtCreator 4.15.0, 2023-08-26T20:24:52. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>EnvironmentId</variable>
|
||||
|
|
@ -85,9 +85,6 @@
|
|||
<valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/>
|
||||
<value type="bool" key="ClangTools.UseGlobalSettings">true</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="CppEditor.QuickFix">
|
||||
<value type="bool" key="UseGlobalSettings">true</value>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
|
|
@ -219,47 +216,7 @@
|
|||
<value type="int" key="QtQuickCompiler">0</value>
|
||||
<value type="int" key="SeparateDebugInfo">0</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.3">
|
||||
<value type="int" key="EnableQmlDebugging">0</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:\Projects\Cpp\build-QtNovelDesc-Desktop_Qt_5_12_11_MSVC2017_64bit-Debug2</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">D:/Projects/Cpp/build-QtNovelDesc-Desktop_Qt_5_12_11_MSVC2017_64bit-Debug2</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments">"DEFINES+=UNIT_TEST"</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">UnitTest</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">4</value>
|
||||
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
|
||||
|
|
|
|||
|
|
@ -1,70 +0,0 @@
|
|||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.33801.198
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GenericConsole", "GenericConsole\GenericConsole.vcxproj", "{5BB4976A-6252-3E36-851D-7F17F16DF17D}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SplitView", "SplitView\SplitView.vcxproj", "{DB7B1794-6682-38A2-B142-117D0E9F66E4}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{584ACAFD-87A5-3B62-B96B-4CE19B6FD6C9} = {584ACAFD-87A5-3B62-B96B-4CE19B6FD6C9}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WordsIDE", "WordsIDE\WordsIDE.vcxproj", "{E0995577-1AB9-3B93-9990-97E99093D597}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{584ACAFD-87A5-3B62-B96B-4CE19B6FD6C9} = {584ACAFD-87A5-3B62-B96B-4CE19B6FD6C9}
|
||||
{5CBE83F9-2019-33DC-8327-32F7A2AC9EF6} = {5CBE83F9-2019-33DC-8327-32F7A2AC9EF6}
|
||||
{5BB4976A-6252-3E36-851D-7F17F16DF17D} = {5BB4976A-6252-3E36-851D-7F17F16DF17D}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libConfig", "libConfig\libConfig.vcxproj", "{584ACAFD-87A5-3B62-B96B-4CE19B6FD6C9}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libProjectManager", "libProjectManager\libProjectManager.vcxproj", "{5CBE83F9-2019-33DC-8327-32F7A2AC9EF6}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{584ACAFD-87A5-3B62-B96B-4CE19B6FD6C9} = {584ACAFD-87A5-3B62-B96B-4CE19B6FD6C9}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "u_test", "u_test\u_test.vcxproj", "{2A348B24-97E4-3DE1-84FD-5A95F92CEADE}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{DB7B1794-6682-38A2-B142-117D0E9F66E4} = {DB7B1794-6682-38A2-B142-117D0E9F66E4}
|
||||
{5BB4976A-6252-3E36-851D-7F17F16DF17D} = {5BB4976A-6252-3E36-851D-7F17F16DF17D}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x64 = Debug|x64
|
||||
Release|x64 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{5BB4976A-6252-3E36-851D-7F17F16DF17D}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{5BB4976A-6252-3E36-851D-7F17F16DF17D}.Debug|x64.Build.0 = Debug|x64
|
||||
{5BB4976A-6252-3E36-851D-7F17F16DF17D}.Release|x64.ActiveCfg = Release|x64
|
||||
{5BB4976A-6252-3E36-851D-7F17F16DF17D}.Release|x64.Build.0 = Release|x64
|
||||
{DB7B1794-6682-38A2-B142-117D0E9F66E4}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{DB7B1794-6682-38A2-B142-117D0E9F66E4}.Debug|x64.Build.0 = Debug|x64
|
||||
{DB7B1794-6682-38A2-B142-117D0E9F66E4}.Release|x64.ActiveCfg = Release|x64
|
||||
{DB7B1794-6682-38A2-B142-117D0E9F66E4}.Release|x64.Build.0 = Release|x64
|
||||
{E0995577-1AB9-3B93-9990-97E99093D597}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{E0995577-1AB9-3B93-9990-97E99093D597}.Debug|x64.Build.0 = Debug|x64
|
||||
{E0995577-1AB9-3B93-9990-97E99093D597}.Release|x64.ActiveCfg = Release|x64
|
||||
{E0995577-1AB9-3B93-9990-97E99093D597}.Release|x64.Build.0 = Release|x64
|
||||
{584ACAFD-87A5-3B62-B96B-4CE19B6FD6C9}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{584ACAFD-87A5-3B62-B96B-4CE19B6FD6C9}.Debug|x64.Build.0 = Debug|x64
|
||||
{584ACAFD-87A5-3B62-B96B-4CE19B6FD6C9}.Release|x64.ActiveCfg = Release|x64
|
||||
{584ACAFD-87A5-3B62-B96B-4CE19B6FD6C9}.Release|x64.Build.0 = Release|x64
|
||||
{5CBE83F9-2019-33DC-8327-32F7A2AC9EF6}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{5CBE83F9-2019-33DC-8327-32F7A2AC9EF6}.Debug|x64.Build.0 = Debug|x64
|
||||
{5CBE83F9-2019-33DC-8327-32F7A2AC9EF6}.Release|x64.ActiveCfg = Release|x64
|
||||
{5CBE83F9-2019-33DC-8327-32F7A2AC9EF6}.Release|x64.Build.0 = Release|x64
|
||||
{2A348B24-97E4-3DE1-84FD-5A95F92CEADE}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{2A348B24-97E4-3DE1-84FD-5A95F92CEADE}.Debug|x64.Build.0 = Debug|x64
|
||||
{2A348B24-97E4-3DE1-84FD-5A95F92CEADE}.Release|x64.ActiveCfg = Release|x64
|
||||
{2A348B24-97E4-3DE1-84FD-5A95F92CEADE}.Release|x64.Build.0 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
Qt5Version = 5.12.11_msvc2017_64
|
||||
SolutionGuid = {55A4EA1C-4AF5-49EC-A1EF-A3CE53C97A13}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
|
@ -1,192 +0,0 @@
|
|||
<?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>{DB7B1794-6682-38A2-B142-117D0E9F66E4}</ProjectGuid>
|
||||
<RootNamespace>SplitView</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>DynamicLibrary</ConfigurationType>
|
||||
<IntermediateDirectory>release\</IntermediateDirectory>
|
||||
<PrimaryOutput>SplitView</PrimaryOutput>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<OutputDirectory>debug\</OutputDirectory>
|
||||
<ATLMinimizesCRunTimeLibraryUsage>false</ATLMinimizesCRunTimeLibraryUsage>
|
||||
<CharacterSet>NotSet</CharacterSet>
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<IntermediateDirectory>debug\</IntermediateDirectory>
|
||||
<PrimaryOutput>SplitView</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>$(SolutionDir)x64\Debug</OutDir>
|
||||
<IntDir>debug\</IntDir>
|
||||
<TargetName>SplitView</TargetName>
|
||||
<IgnoreImportLibrary>true</IgnoreImportLibrary>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<OutDir>release\</OutDir>
|
||||
<IntDir>release\</IntDir>
|
||||
<TargetName>SplitView</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;.;..\libConfig;release;/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus /utf-8 -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;SPLITVIEW_LIBRARY;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>libConfig.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>D:\Projects\Cpp\QtNovelDesc\libConfig\release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<IgnoreImportLibrary>true</IgnoreImportLibrary>
|
||||
<LinkDLL>true</LinkDLL>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<OutputFile>$(OutDir)\SplitView.dll</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;SPLITVIEW_LIBRARY;QT_NO_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>GeneratedFiles\$(ConfigurationName);GeneratedFiles;.;..\libConfig;debug;/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus /utf-8 -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;SPLITVIEW_LIBRARY;%(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>D:\Projects\Cpp\QtNovelDesc\libConfig\debug\libConfig.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>D:\Projects\Cpp\QtNovelDesc\libConfig\debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<IgnoreImportLibrary>true</IgnoreImportLibrary>
|
||||
<LinkDLL>true</LinkDLL>
|
||||
<OutputFile>$(OutDir)\SplitView.dll</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;SPLITVIEW_LIBRARY;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="splitview.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="SplitView_global.h" />
|
||||
<ClInclude Include="splitview.h" />
|
||||
</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 /utf-8 -Zi -MDd -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -E $(QTDIR)\mkspecs\features\data\dummy.cpp 2>NUL >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 /utf-8 -O2 -MD -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -E $(QTDIR)\mkspecs\features\data\dummy.cpp 2>NUL >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>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Condition="Exists('$(QtMsBuild)\qt.targets')">
|
||||
<Import Project="$(QtMsBuild)\qt.targets" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="ExtensionTargets" />
|
||||
</Project>
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
<?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="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>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="splitview.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="SplitView_global.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="splitview.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</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>
|
||||
</Project>
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup />
|
||||
</Project>
|
||||
|
|
@ -1,902 +0,0 @@
|
|||
#include "splitview.h"
|
||||
#include <QApplication>
|
||||
#include <QDebug>
|
||||
#include <QDrag>
|
||||
#include <QHBoxLayout>
|
||||
#include <QLineF>
|
||||
#include <QMimeData>
|
||||
#include <QPainter>
|
||||
#include <QPushButton>
|
||||
#include <QResizeEvent>
|
||||
#include <QStyleOption>
|
||||
#include <libConfig.h>
|
||||
|
||||
using namespace SplitFrame;
|
||||
using namespace Config;
|
||||
|
||||
BaseView::BaseView(const QString &title, QWidget *view, bool empty, QWidget *parent) : QWidget(parent), title_header(nullptr), parent_store(nullptr) {
|
||||
auto layout = new QVBoxLayout(this);
|
||||
layout->setMargin(0);
|
||||
layout->setSpacing(0);
|
||||
|
||||
registComp(this);
|
||||
|
||||
if (!empty) {
|
||||
title_header = new DragHeader(this);
|
||||
title_header->setText(title);
|
||||
title_header->setMaximumHeight(22);
|
||||
|
||||
layout->addWidget(title_header, 0);
|
||||
registComp(title_header);
|
||||
}
|
||||
|
||||
registComp(view);
|
||||
layout->addWidget(view, 1);
|
||||
setMouseTracking(true);
|
||||
}
|
||||
|
||||
void BaseView::setTitle(const QString &title) {
|
||||
QWidget::setWindowTitle(title);
|
||||
title_header->setText(title);
|
||||
}
|
||||
|
||||
QString BaseView::title() const {
|
||||
return this->title_header->text();
|
||||
}
|
||||
|
||||
void BaseView::setIcon(const QIcon &icon) {
|
||||
this->title_header->setIcon(icon);
|
||||
}
|
||||
|
||||
QIcon BaseView::viewIcon() const {
|
||||
return title_header->icon();
|
||||
}
|
||||
|
||||
void BaseView::registComp(QWidget *child) {
|
||||
if (this->comps_list.contains(child))
|
||||
return;
|
||||
|
||||
comps_list << child;
|
||||
|
||||
if (child != this)
|
||||
child->setParent(this);
|
||||
}
|
||||
|
||||
ViewPresent *BaseView::viewPanel() const { return parentRect()->viewPanel(); }
|
||||
|
||||
void BaseView::closeView() {
|
||||
}
|
||||
|
||||
bool BaseView::contains(QWidget *ptr) const {
|
||||
return comps_list.contains(ptr);
|
||||
}
|
||||
|
||||
QWidget *BaseView::bind() const {
|
||||
return const_cast<BaseView *>(this);
|
||||
}
|
||||
|
||||
SplitRect *BaseView::parentRect() const {
|
||||
return parent_store;
|
||||
}
|
||||
|
||||
void BaseView::setParentRect(SplitRect *pinst) {
|
||||
this->parent_store = pinst;
|
||||
|
||||
this->setParent(pinst->bind());
|
||||
}
|
||||
|
||||
QRectF BaseView::outline() const {
|
||||
return this->rect();
|
||||
}
|
||||
|
||||
void BaseView::relayout(const QRectF &outline) {
|
||||
this->setGeometry(outline.toRect());
|
||||
update();
|
||||
}
|
||||
|
||||
void BaseView::installPerceptionHandle(ViewPresent *obj) {
|
||||
for (auto &it : comps_list) {
|
||||
it->setAcceptDrops(true);
|
||||
it->removeEventFilter(obj);
|
||||
it->installEventFilter(obj);
|
||||
}
|
||||
}
|
||||
|
||||
void BaseView::paintEvent(QPaintEvent *ev) {
|
||||
QWidget::paintEvent(ev);
|
||||
}
|
||||
|
||||
AttachPanel::AttachPanel(ViewPresent *host) : QWidget(host->bind()), adjust_host(host) {
|
||||
setWindowOpacity(50);
|
||||
setAcceptDrops(true);
|
||||
}
|
||||
|
||||
void AttachPanel::bindAttachment(BaseView *widget) { this->current_target = widget; }
|
||||
|
||||
BaseView *AttachPanel::attachmentTarget() const { return this->current_target; }
|
||||
|
||||
void AttachPanel::paintEvent(QPaintEvent *event) {
|
||||
QWidget::paintEvent(event);
|
||||
|
||||
QPainter p(this);
|
||||
p.setBrush(Qt::lightGray);
|
||||
p.fillRect(this->rect(), Qt::lightGray);
|
||||
|
||||
auto rect = this->rect();
|
||||
p.setPen(QPen(Qt::black, 4));
|
||||
switch (active_comp) {
|
||||
case ActiveArea::LEFT:
|
||||
p.fillRect(QRectF(rect.topLeft(), QSizeF(rect.width() / 2, rect.height())), Qt::gray);
|
||||
break;
|
||||
case ActiveArea::RIGHT:
|
||||
p.fillRect(QRectF(rect.center() - QPointF(0, rect.height() / 2), QSizeF(rect.width() / 2, rect.height())), Qt::gray);
|
||||
break;
|
||||
case ActiveArea::TOP:
|
||||
p.fillRect(QRectF(rect.topLeft(), QSizeF(rect.width(), rect.height() / 2)), Qt::gray);
|
||||
break;
|
||||
case ActiveArea::BOTTOM:
|
||||
p.fillRect(QRectF(rect.center() - QPointF(rect.width() / 2, 0), QSizeF(rect.width(), rect.height() / 2)), Qt::gray);
|
||||
break;
|
||||
case ActiveArea::CENTER:
|
||||
p.fillRect(rect, Qt::gray);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
p.setBrush(Qt::transparent);
|
||||
|
||||
auto lt0 = rect.center() - QPoint(50, 150);
|
||||
p.drawRoundRect(QRectF(lt0, QSizeF(100, 300)));
|
||||
|
||||
auto lt1 = rect.center() - QPoint(150, 50);
|
||||
p.drawRoundRect(QRectF(lt1, QSizeF(300, 100)));
|
||||
}
|
||||
|
||||
void AttachPanel::dragMoveEvent(QDragMoveEvent *event) {
|
||||
QWidget::dragMoveEvent(event);
|
||||
|
||||
auto tuple_list = view_rects();
|
||||
if (std::get<0>(tuple_list).contains(event->pos())) {
|
||||
this->active_comp = ActiveArea::LEFT;
|
||||
}
|
||||
else if (std::get<1>(tuple_list).contains(event->pos())) {
|
||||
this->active_comp = ActiveArea::RIGHT;
|
||||
|
||||
}
|
||||
else if (std::get<2>(tuple_list).contains(event->pos())) {
|
||||
this->active_comp = ActiveArea::TOP;
|
||||
|
||||
}
|
||||
else if (std::get<3>(tuple_list).contains(event->pos())) {
|
||||
this->active_comp = ActiveArea::BOTTOM;
|
||||
|
||||
}
|
||||
else if (std::get<4>(tuple_list).contains(event->pos())) {
|
||||
this->active_comp = ActiveArea::CENTER;
|
||||
}
|
||||
else {
|
||||
this->active_comp = ActiveArea::NONE;
|
||||
}
|
||||
|
||||
this->update();
|
||||
}
|
||||
|
||||
void AttachPanel::dragEnterEvent(QDragEnterEvent *event) {
|
||||
QWidget::dragEnterEvent(event);
|
||||
|
||||
if (adjust_host->adjustState())
|
||||
event->acceptProposedAction();
|
||||
}
|
||||
|
||||
void AttachPanel::dropEvent(QDropEvent *event) {
|
||||
QWidget::dropEvent(event);
|
||||
event->acceptProposedAction();
|
||||
|
||||
auto xfrom = adjust_host->adjustView();
|
||||
auto target = this->attachmentTarget();
|
||||
|
||||
if (target != xfrom && active_comp != ActiveArea::NONE) {
|
||||
RectCom *newsplit = nullptr;
|
||||
|
||||
xfrom->parentRect()->removeComp(xfrom);
|
||||
adjust_host->objsRelateRebuild();
|
||||
|
||||
auto ptarget = target->parentRect();
|
||||
auto target_rect = target->outline();
|
||||
|
||||
switch (this->active_comp) {
|
||||
case ActiveArea::LEFT: {
|
||||
newsplit = new SplitView(xfrom, target, adjust_host);
|
||||
newsplit->relayout(target_rect);
|
||||
static_cast<SplitView *>(newsplit)->setSplitInfo(SplitType::SPLIT_H, target_rect.width() / 2, adjust_host->splitterWidth(), true);
|
||||
} break;
|
||||
case ActiveArea::RIGHT: {
|
||||
newsplit = new SplitView(target, xfrom, adjust_host);
|
||||
newsplit->relayout(target_rect);
|
||||
static_cast<SplitView *>(newsplit)->setSplitInfo(SplitType::SPLIT_H, target_rect.width() / 2, adjust_host->splitterWidth(), true);
|
||||
} break;
|
||||
case ActiveArea::TOP: {
|
||||
newsplit = new SplitView(xfrom, target, adjust_host);
|
||||
newsplit->relayout(target_rect);
|
||||
static_cast<SplitView *>(newsplit)->setSplitInfo(SplitType::SPLIT_V, target_rect.height() / 2, adjust_host->splitterWidth(), true);
|
||||
} break;
|
||||
case ActiveArea::BOTTOM: {
|
||||
newsplit = new SplitView(target, xfrom, adjust_host);
|
||||
newsplit->relayout(target_rect);
|
||||
static_cast<SplitView *>(newsplit)->setSplitInfo(SplitType::SPLIT_V, target_rect.height() / 2, adjust_host->splitterWidth(), true);
|
||||
} break;
|
||||
case ActiveArea::CENTER: {
|
||||
newsplit = xfrom;
|
||||
} break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
ptarget->replaceComp(newsplit, target);
|
||||
adjust_host->objsRelateRebuild();
|
||||
adjust_host->unusedResRelease();
|
||||
}
|
||||
|
||||
adjust_host->setViewAdjust();
|
||||
this->setVisible(false);
|
||||
}
|
||||
|
||||
std::tuple<QRectF, QRectF, QRectF, QRectF, QRectF> AttachPanel::view_rects() const {
|
||||
auto rect = this->rect();
|
||||
auto lt0 = rect.center() - QPoint(50, 150);
|
||||
auto lt1 = rect.center() - QPoint(150, 50);
|
||||
|
||||
return std::make_tuple(QRectF(lt1, QSizeF(100, 100)), QRectF(lt1 + QPoint(200, 0), QSizeF(100, 100)), QRectF(lt0, QSizeF(100, 100)),
|
||||
QRectF(lt0 + QPointF(0, 200), QSizeF(100, 100)), QRectF(lt1 + QPointF(100, 0), QSizeF(100, 100)));
|
||||
}
|
||||
|
||||
ViewPresent::ViewPresent(QWidget *parent) : QWidget(parent), accept_panel(new AttachPanel(this)) {
|
||||
accept_panel->hide();
|
||||
setMouseTracking(true);
|
||||
}
|
||||
|
||||
ViewPresent::~ViewPresent() {
|
||||
accept_panel->deleteLater();
|
||||
}
|
||||
|
||||
void ViewPresent::addListener(FreedomViewsListener *lsn) {
|
||||
if (lsn_list.contains(lsn))
|
||||
return;
|
||||
lsn_list << lsn;
|
||||
}
|
||||
|
||||
void ViewPresent::removeListener(FreedomViewsListener *lsn) {
|
||||
lsn_list.removeAll(lsn);
|
||||
}
|
||||
|
||||
void ViewPresent::registViewComp(BaseView *it) {
|
||||
if (this->all_sep_views.contains(it))
|
||||
return;
|
||||
|
||||
it->installPerceptionHandle(this);
|
||||
all_sep_views << it;
|
||||
}
|
||||
|
||||
void ViewPresent::markFreedom(BaseView *view) {
|
||||
if (!freedom_views.contains(view))
|
||||
freedom_views << view;
|
||||
}
|
||||
|
||||
// void ViewPresent::collectFreedomView(BaseView *invisible) {
|
||||
// if (!freedom_views.contains(invisible)) {
|
||||
// freedom_views << invisible;
|
||||
|
||||
// for (auto &it : lsn_list)
|
||||
// it->freedomAppended(invisible);
|
||||
// }
|
||||
|
||||
// invisible->setParentRect(nullptr);
|
||||
// invisible->bind()->setVisible(false);
|
||||
//}
|
||||
|
||||
void ViewPresent::setTempVisible(BaseView *target) {
|
||||
if (target != nullptr && !this->freedom_views.contains(target))
|
||||
throw new SimpleException<QString>("参数异常", "非闲置视图不可以设置为临时视图");
|
||||
|
||||
if (this->temp_visible_view) {
|
||||
// collectFreedomView(temp_visible_view);
|
||||
}
|
||||
|
||||
temp_visible_view = target;
|
||||
if (temp_visible_view) {
|
||||
temp_visible_view->setParentRect(this);
|
||||
temp_visible_view->bind()->setVisible(true);
|
||||
temp_visible_view->bind()->raise();
|
||||
}
|
||||
|
||||
relayout();
|
||||
}
|
||||
|
||||
void ViewPresent::setViewAdjust(BaseView *one) {
|
||||
this->adjust_view_temp = one;
|
||||
}
|
||||
|
||||
bool ViewPresent::adjustState() const {
|
||||
return this->adjust_view_temp != nullptr;
|
||||
}
|
||||
|
||||
BaseView *ViewPresent::adjustView() const {
|
||||
return this->adjust_view_temp;
|
||||
}
|
||||
|
||||
void ViewPresent::resetViews(RectCom *center, RectCom *extend) {
|
||||
view_anchors << center;
|
||||
|
||||
if (extend) {
|
||||
view_anchors << extend;
|
||||
}
|
||||
|
||||
this->objsRelateRebuild();
|
||||
this->relayout();
|
||||
}
|
||||
|
||||
bool ViewPresent::eventFilter(QObject *watched, QEvent *event) {
|
||||
auto adjust_state = adjustState();
|
||||
|
||||
if (adjust_state && event->type() == QEvent::DragEnter) {
|
||||
for (auto &v : all_sep_views) {
|
||||
if (v->contains((QWidget *)watched)) {
|
||||
auto outline = v->outline();
|
||||
QPoint gpos(v->bind()->mapToGlobal(outline.topLeft().toPoint()));
|
||||
QPoint localpos(mapFromGlobal(gpos));
|
||||
|
||||
accept_panel->raise();
|
||||
accept_panel->setGeometry(QRect(localpos, outline.size().toSize()));
|
||||
accept_panel->setVisible(true);
|
||||
|
||||
accept_panel->bindAttachment(v);
|
||||
event->accept();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (event->type() == QEvent::Drop) {
|
||||
accept_panel->hide();
|
||||
accept_panel->lower();
|
||||
}
|
||||
|
||||
if (this->temp_visible_view && event->type() == QEvent::MouseButtonPress) {
|
||||
if (!temp_visible_view->contains((QWidget *)watched)) {
|
||||
setTempVisible(nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
return QWidget::eventFilter(watched, event);
|
||||
}
|
||||
|
||||
QWidget *ViewPresent::bind() const { return const_cast<ViewPresent *>(this); }
|
||||
|
||||
bool ViewPresent::contains(QWidget *ptr) const { return false; }
|
||||
|
||||
ViewPresent *ViewPresent::viewPanel() const {
|
||||
return const_cast<ViewPresent *>(this);
|
||||
}
|
||||
|
||||
SplitRect *ViewPresent::parentRect() const { return nullptr; }
|
||||
|
||||
void ViewPresent::objsRelateRebuild() { setParentRect(nullptr); }
|
||||
|
||||
void ViewPresent::markUnused(SplitRect *item) {
|
||||
if (!this->unused_splits.contains(item))
|
||||
unused_splits << item;
|
||||
}
|
||||
|
||||
void ViewPresent::unusedResRelease() {
|
||||
for (auto &it : unused_splits)
|
||||
delete it;
|
||||
unused_splits.clear();
|
||||
}
|
||||
|
||||
void ViewPresent::setParentRect(SplitRect *) {
|
||||
auto pair = child();
|
||||
pair.first->setParentRect(this);
|
||||
if (pair.second)
|
||||
pair.second->setParentRect(this);
|
||||
}
|
||||
|
||||
std::pair<RectCom *, RectCom *> ViewPresent::child() const {
|
||||
RectCom *inst0 = nullptr, *inst1 = nullptr;
|
||||
if (view_anchors.size() > 1)
|
||||
inst1 = view_anchors[1];
|
||||
if (view_anchors.size() > 0)
|
||||
inst0 = view_anchors[0];
|
||||
|
||||
return std::make_pair(inst0, inst1);
|
||||
}
|
||||
|
||||
void ViewPresent::replaceComp(RectCom *view, RectCom *old) {
|
||||
if (!view_anchors.contains(old))
|
||||
throw new SimpleException<QString>("参数错误", "指定替换的界面不属于此界面");
|
||||
|
||||
if (view_anchors.contains(view))
|
||||
return;
|
||||
|
||||
view_anchors.replace(view_anchors.indexOf(old), view);
|
||||
objsRelateRebuild();
|
||||
update();
|
||||
}
|
||||
|
||||
float ViewPresent::splitterWidth() const {
|
||||
return std::get<2>(split_info_store);
|
||||
}
|
||||
|
||||
float ViewPresent::splitterPos() const {
|
||||
return std::get<1>(split_info_store);
|
||||
}
|
||||
|
||||
SplitType ViewPresent::splitType() const {
|
||||
return std::get<0>(split_info_store);
|
||||
}
|
||||
|
||||
void ViewPresent::setSplitInfo(SplitType type, float pos, float width, bool relayout) {
|
||||
this->split_info_store = std::make_tuple(type, pos, width);
|
||||
if (relayout)
|
||||
this->relayout();
|
||||
}
|
||||
|
||||
QRectF ViewPresent::outline() const {
|
||||
return this->rect();
|
||||
}
|
||||
|
||||
void ViewPresent::relayout(const QRectF &outline) {
|
||||
setGeometry(outline.toRect());
|
||||
}
|
||||
|
||||
void ViewPresent::paintEvent(QPaintEvent *ev) {
|
||||
QWidget::paintEvent(ev);
|
||||
|
||||
if (view_anchors.size() == 2) {
|
||||
QPainter p(this);
|
||||
auto handle_rect = handleRect();
|
||||
p.fillRect(handle_rect, QBrush(Qt::gray));
|
||||
}
|
||||
|
||||
for (auto &it : view_anchors) {
|
||||
it->bind()->setVisible(true);
|
||||
it->bind()->update();
|
||||
}
|
||||
|
||||
if (temp_visible_view) {
|
||||
temp_visible_view->bind()->setVisible(true);
|
||||
temp_visible_view->bind()->update();
|
||||
}
|
||||
|
||||
for (auto &it : freedom_views) {
|
||||
it->bind()->setVisible(false);
|
||||
it->bind()->update();
|
||||
}
|
||||
}
|
||||
|
||||
void ViewPresent::removeComp(BaseView *child_inst) {
|
||||
if (temp_visible_view == child_inst) {
|
||||
temp_visible_view = nullptr;
|
||||
|
||||
freedom_views.removeAll(child_inst);
|
||||
for (auto &lsn : lsn_list)
|
||||
lsn->freedomRemoved(static_cast<BaseView *>(child_inst));
|
||||
} else {
|
||||
if (!view_anchors.contains(child_inst))
|
||||
throw new SimpleException<QString>("参数非法", "回收的指定视图不属于本ViewPresent");
|
||||
|
||||
markFreedom(child_inst);
|
||||
view_anchors.removeAll(child_inst);
|
||||
}
|
||||
|
||||
viewPanel()->objsRelateRebuild();
|
||||
viewPanel()->unusedResRelease();
|
||||
|
||||
update();
|
||||
}
|
||||
|
||||
void ViewPresent::resizeEvent(QResizeEvent *ev) {
|
||||
QWidget::resizeEvent(ev);
|
||||
relayout();
|
||||
}
|
||||
void ViewPresent::mousePressEvent(QMouseEvent *event) {
|
||||
QWidget::mousePressEvent(event);
|
||||
|
||||
if (event->button() == Qt::MouseButton::LeftButton) {
|
||||
if (handleRect().contains(event->pos()))
|
||||
this->press_flags = true;
|
||||
}
|
||||
}
|
||||
void ViewPresent::mouseReleaseEvent(QMouseEvent *event) {
|
||||
QWidget::mouseReleaseEvent(event);
|
||||
|
||||
if (event->button() == Qt::MouseButton::LeftButton) {
|
||||
this->press_flags = false;
|
||||
}
|
||||
}
|
||||
void ViewPresent::mouseMoveEvent(QMouseEvent *event) {
|
||||
QWidget::mouseMoveEvent(event);
|
||||
|
||||
auto drag_rect = handleRect();
|
||||
if (drag_rect.contains(event->pos())) {
|
||||
if (splitType() == SplitType::SPLIT_H)
|
||||
setCursor(QCursor(Qt::CursorShape::SplitHCursor));
|
||||
else
|
||||
setCursor(QCursor(Qt::CursorShape::SplitVCursor));
|
||||
}
|
||||
else {
|
||||
setCursor(QCursor(Qt::CursorShape::ArrowCursor));
|
||||
}
|
||||
|
||||
if (this->press_flags) {
|
||||
auto pos = this->mapFromGlobal(event->globalPos());
|
||||
auto split_margin = splitterWidth();
|
||||
if (std::get<0>(split_info_store) == SplitType::SPLIT_H) {
|
||||
setSplitInfo(splitType(), pos.x() - split_margin / 2, split_margin, true);
|
||||
}
|
||||
else {
|
||||
setSplitInfo(splitType(), pos.y() - split_margin / 2, split_margin, true);
|
||||
}
|
||||
|
||||
update();
|
||||
}
|
||||
}
|
||||
|
||||
void ViewPresent::relayout() {
|
||||
auto rects = viewRects();
|
||||
|
||||
if (view_anchors.size() == 2) {
|
||||
view_anchors[0]->relayout(rects.first.toRect());
|
||||
view_anchors[1]->relayout(rects.second.toRect());
|
||||
} else if (view_anchors.size() == 1) {
|
||||
view_anchors[0]->relayout(this->rect());
|
||||
}
|
||||
|
||||
if (temp_visible_view) {
|
||||
temp_visible_view->relayout(QRectF(QPointF(), QSizeF(300, this->height())));
|
||||
}
|
||||
|
||||
update();
|
||||
}
|
||||
std::pair<QRectF, QRectF> ViewPresent::viewRects() {
|
||||
auto xrect = this->rect();
|
||||
|
||||
auto type = (int)splitType();
|
||||
if (!type) {
|
||||
auto width0 = splitterPos();
|
||||
if (width0 + splitterWidth() > xrect.width())
|
||||
width0 = xrect.width() - splitterWidth();
|
||||
if (width0 < 0)
|
||||
width0 = 0;
|
||||
|
||||
setSplitInfo(splitType(), width0, splitterWidth(), false);
|
||||
|
||||
auto rect0 = QRectF(xrect.topLeft(), QSizeF(width0, xrect.height()));
|
||||
auto rect1 = QRectF(xrect.topLeft() + QPointF(rect0.width() + splitterWidth(), 0),
|
||||
QSizeF(xrect.width() - rect0.width() - splitterWidth(), xrect.height()));
|
||||
return std::make_pair(rect0, rect1);
|
||||
}
|
||||
else {
|
||||
auto height0 = splitterPos();
|
||||
if (height0 + splitterWidth() > xrect.height())
|
||||
height0 = xrect.height() - splitterWidth();
|
||||
if (height0 < 0)
|
||||
height0 = 0;
|
||||
|
||||
setSplitInfo(splitType(), height0, splitterWidth(), false);
|
||||
|
||||
auto rect0 = QRectF(xrect.topLeft(), QSizeF(xrect.width(), height0));
|
||||
auto rect1 = QRectF(xrect.topLeft() + QPointF(0, rect0.height() + splitterWidth()),
|
||||
QSizeF(xrect.width(), xrect.height() - splitterWidth() - rect0.height()));
|
||||
return std::make_pair(rect0, rect1);
|
||||
}
|
||||
}
|
||||
QRectF ViewPresent::handleRect() const {
|
||||
QRectF rect;
|
||||
|
||||
auto width_middle = splitterWidth() - 2;
|
||||
if (splitType() == SplitType::SPLIT_H) {
|
||||
rect = QRectF(splitterPos() + 1, 0, width_middle, outline().height());
|
||||
}
|
||||
else {
|
||||
rect = QRectF(0, splitterPos() + 1, outline().width(), width_middle);
|
||||
}
|
||||
|
||||
return rect;
|
||||
}
|
||||
|
||||
SplitView::SplitView(RectCom *first, RectCom *next, QWidget *parent) : QWidget(parent) {
|
||||
this->split_info_value = std::make_tuple(SplitType::SPLIT_H, 100, 7);
|
||||
this->child_store << first;
|
||||
this->child_store << next;
|
||||
setMouseTracking(true);
|
||||
}
|
||||
|
||||
SplitFrame::SplitView::~SplitView() {
|
||||
}
|
||||
|
||||
QWidget *SplitView::bind() const {
|
||||
return const_cast<SplitView *>(this);
|
||||
}
|
||||
|
||||
ViewPresent *SplitView::viewPanel() const { return parentRect()->viewPanel(); }
|
||||
|
||||
SplitRect *SplitView::parentRect() const {
|
||||
return parent_inst;
|
||||
}
|
||||
|
||||
void SplitView::setParentRect(SplitRect *pinst) {
|
||||
QWidget::setParent(pinst->bind());
|
||||
|
||||
auto pair = child();
|
||||
pair.first->setParentRect(this);
|
||||
pair.second->setParentRect(this);
|
||||
}
|
||||
|
||||
std::pair<RectCom *, RectCom *> SplitView::child() const { return std::make_pair(child_store[0], child_store[1]); }
|
||||
|
||||
float SplitView::splitterWidth() const {
|
||||
return std::get<2>(split_info_value);
|
||||
}
|
||||
|
||||
float SplitView::splitterPos() const {
|
||||
return std::get<1>(split_info_value);
|
||||
}
|
||||
|
||||
SplitType SplitView::splitType() const {
|
||||
return std::get<0>(split_info_value);
|
||||
}
|
||||
|
||||
void SplitView::setSplitInfo(SplitType type, float pos, float width, bool relayout) {
|
||||
this->split_info_value = std::make_tuple(type, pos, width);
|
||||
if (relayout)
|
||||
this->relayout();
|
||||
}
|
||||
|
||||
void SplitView::replaceComp(RectCom *view, RectCom *old) {
|
||||
if (!child_store.contains(old) || child_store.contains(view)) {
|
||||
throw new SimpleException<QString>("参数非法", "要替换的视图不属于本构件,或者新视图本就属于本构件");
|
||||
}
|
||||
|
||||
auto index = child_store.indexOf(old);
|
||||
child_store.replace(index, view);
|
||||
|
||||
viewPanel()->objsRelateRebuild();
|
||||
}
|
||||
|
||||
QRectF SplitView::outline() const {
|
||||
return this->rect();
|
||||
}
|
||||
|
||||
void SplitView::relayout(const QRectF &outlinex) {
|
||||
this->setGeometry(outlinex.toRect());
|
||||
update();
|
||||
}
|
||||
|
||||
void SplitView::removeComp(BaseView *child_inst) {
|
||||
auto pinst = parentRect();
|
||||
|
||||
auto sib = this->child().first;
|
||||
if (child_inst == sib)
|
||||
sib = this->child().second;
|
||||
|
||||
pinst->replaceComp(sib, this);
|
||||
|
||||
viewPanel()->markUnused(this);
|
||||
viewPanel()->markFreedom(child_inst);
|
||||
|
||||
viewPanel()->objsRelateRebuild();
|
||||
viewPanel()->unusedResRelease();
|
||||
}
|
||||
|
||||
void SplitView::paintEvent(QPaintEvent *ev) {
|
||||
QWidget::paintEvent(ev);
|
||||
|
||||
QPainter p(this);
|
||||
QRectF rect = handleRect();
|
||||
p.fillRect(rect, QBrush(Qt::gray, Qt::BrushStyle::SolidPattern));
|
||||
|
||||
for (auto &it : child_store)
|
||||
it->bind()->update();
|
||||
}
|
||||
|
||||
bool SplitView::contains(QWidget *ptr) const { return false; }
|
||||
|
||||
void SplitView::resizeEvent(QResizeEvent *ev) {
|
||||
QWidget::resizeEvent(ev);
|
||||
relayout();
|
||||
}
|
||||
|
||||
void SplitView::mousePressEvent(QMouseEvent *event) {
|
||||
QWidget::mousePressEvent(event);
|
||||
|
||||
if (event->button() == Qt::MouseButton::LeftButton) {
|
||||
if (handleRect().contains(event->pos()))
|
||||
this->press_flags = true;
|
||||
}
|
||||
}
|
||||
|
||||
void SplitView::mouseReleaseEvent(QMouseEvent *event) {
|
||||
QWidget::mouseReleaseEvent(event);
|
||||
|
||||
if (event->button() == Qt::MouseButton::LeftButton) {
|
||||
this->press_flags = false;
|
||||
}
|
||||
}
|
||||
|
||||
void SplitView::mouseMoveEvent(QMouseEvent *event) {
|
||||
QWidget::mouseMoveEvent(event);
|
||||
|
||||
auto drag_rect = handleRect() + QMargins(2, 2, 2, 2);
|
||||
if (drag_rect.contains(event->pos())) {
|
||||
if (splitType() == SplitType::SPLIT_H)
|
||||
setCursor(QCursor(Qt::CursorShape::SplitHCursor));
|
||||
else
|
||||
setCursor(QCursor(Qt::CursorShape::SplitVCursor));
|
||||
|
||||
drags_flag = true;
|
||||
} else {
|
||||
setCursor(QCursor(Qt::CursorShape::ArrowCursor));
|
||||
}
|
||||
|
||||
if (this->press_flags) {
|
||||
auto pos = this->mapFromGlobal(event->globalPos());
|
||||
auto split_margin = splitterWidth();
|
||||
if (std::get<0>(split_info_value) == SplitType::SPLIT_H) {
|
||||
setSplitInfo(splitType(), pos.x() - split_margin / 2, split_margin, true);
|
||||
} else {
|
||||
setSplitInfo(splitType(), pos.y() - split_margin / 2, split_margin, true);
|
||||
}
|
||||
update();
|
||||
}
|
||||
}
|
||||
|
||||
bool SplitView::eventFilter(QObject *watched, QEvent *event) {
|
||||
if (watched != this && this->drags_flag && event->type() == QEvent::MouseMove) {
|
||||
auto x = static_cast<QMouseEvent *>(event);
|
||||
auto pos = mapFromGlobal(x->globalPos());
|
||||
if (!handleRect().contains(pos)) {
|
||||
setCursor(QCursor(Qt::CursorShape::ArrowCursor));
|
||||
this->drags_flag = false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
return QWidget::eventFilter(watched, event);
|
||||
}
|
||||
|
||||
void SplitView::relayout() {
|
||||
auto rects = viewRects();
|
||||
auto pair = child();
|
||||
|
||||
pair.first->relayout(std::get<0>(rects));
|
||||
pair.second->relayout(std::get<1>(rects));
|
||||
|
||||
update();
|
||||
}
|
||||
|
||||
std::pair<QRectF, QRectF> SplitView::viewRects() {
|
||||
auto xrect = this->rect();
|
||||
|
||||
auto type = (int)splitType();
|
||||
if (!type) {
|
||||
auto width0 = splitterPos();
|
||||
if (width0 + splitterWidth() > xrect.width())
|
||||
width0 = xrect.width() - splitterWidth();
|
||||
if (width0 < 0)
|
||||
width0 = 0;
|
||||
|
||||
setSplitInfo(splitType(), width0, splitterWidth(), false);
|
||||
|
||||
auto rect0 = QRectF(xrect.topLeft(), QSizeF(width0, xrect.height()));
|
||||
auto rect1 = QRectF(xrect.topLeft() + QPointF(rect0.width() + splitterWidth(), 0),
|
||||
QSizeF(xrect.width() - rect0.width() - splitterWidth(), xrect.height()));
|
||||
return std::make_pair(rect0, rect1);
|
||||
}
|
||||
else {
|
||||
auto height0 = splitterPos();
|
||||
if (height0 + splitterWidth() > xrect.height())
|
||||
height0 = xrect.height() - splitterWidth();
|
||||
if (height0 < 0)
|
||||
height0 = 0;
|
||||
|
||||
setSplitInfo(splitType(), height0, splitterWidth(), false);
|
||||
|
||||
auto rect0 = QRectF(xrect.topLeft(), QSizeF(xrect.width(), height0));
|
||||
auto rect1 = QRectF(xrect.topLeft() + QPointF(0, rect0.height() + splitterWidth()),
|
||||
QSizeF(xrect.width(), xrect.height() - splitterWidth() - rect0.height()));
|
||||
return std::make_pair(rect0, rect1);
|
||||
}
|
||||
}
|
||||
|
||||
QRectF SplitView::handleRect() const {
|
||||
QRectF rect;
|
||||
|
||||
auto width_middle = splitterWidth() - 2;
|
||||
if (splitType() == SplitType::SPLIT_H) {
|
||||
rect = QRectF(splitterPos() + 1, 0, width_middle, outline().height());
|
||||
}
|
||||
else {
|
||||
rect = QRectF(0, splitterPos() + 1, outline().width(), width_middle);
|
||||
}
|
||||
|
||||
return rect;
|
||||
}
|
||||
|
||||
DragHeader::DragHeader(BaseView *bind) : QFrame(bind->bind()), icon_store(new QLabel(this)), title_store(new QLabel(this)), view_core(bind) {
|
||||
setFrameShadow(QFrame::Shadow::Raised);
|
||||
setFrameShape(QFrame::Shape::Box);
|
||||
setStyleSheet("background-color: rgb(200, 200, 255);");
|
||||
|
||||
auto layout = new QHBoxLayout(this);
|
||||
layout->setMargin(1);
|
||||
layout->setSpacing(2);
|
||||
layout->addWidget(icon_store, 0);
|
||||
layout->addWidget(title_store, 1);
|
||||
|
||||
auto hide = new QPushButton("-", this);
|
||||
layout->addWidget(hide, 0);
|
||||
hide->setMaximumSize(20, 20);
|
||||
auto close = new QPushButton("X", this);
|
||||
layout->addWidget(close, 0);
|
||||
close->setMaximumSize(20, 20);
|
||||
|
||||
connect(hide, &QPushButton::clicked, [=]() {
|
||||
auto con = this->view_core->parentRect();
|
||||
con->removeComp(view_core);
|
||||
});
|
||||
|
||||
connect(close, &QPushButton::clicked, [=]() {
|
||||
hide->click();
|
||||
view_core->closeView();
|
||||
});
|
||||
}
|
||||
|
||||
void DragHeader::setIcon(const QIcon &icon) {
|
||||
icon_inst = icon;
|
||||
auto len = this->height() - 2;
|
||||
this->icon_store->setPixmap(icon.pixmap(QSize(len, len)));
|
||||
}
|
||||
|
||||
QIcon DragHeader::icon() const {
|
||||
return this->icon_inst;
|
||||
}
|
||||
|
||||
void DragHeader::setText(const QString &title) {
|
||||
this->title_store->setText(title);
|
||||
}
|
||||
|
||||
QString DragHeader::text() const {
|
||||
return title_store->text();
|
||||
}
|
||||
|
||||
void DragHeader::mousePressEvent(QMouseEvent *event) {
|
||||
if (event->button() == Qt::LeftButton && !std::get<0>(press_flag)) {
|
||||
this->press_flag = std::make_tuple(true, event->pos());
|
||||
}
|
||||
}
|
||||
|
||||
void DragHeader::mouseReleaseEvent(QMouseEvent *event) {
|
||||
if (event->button() == Qt::LeftButton) {
|
||||
this->press_flag = std::make_tuple(false, QPointF());
|
||||
}
|
||||
}
|
||||
|
||||
void DragHeader::mouseMoveEvent(QMouseEvent *event) {
|
||||
auto distance = QLineF(std::get<1>(press_flag), event->pos()).length();
|
||||
if (std::get<0>(press_flag) && distance > QApplication::startDragDistance()) {
|
||||
auto panel = view_core->viewPanel();
|
||||
panel->setViewAdjust(view_core);
|
||||
|
||||
QDrag *drag = new QDrag(this);
|
||||
auto pix = view_core->grab();
|
||||
drag->setPixmap(pix);
|
||||
drag->setHotSpot(QPoint(20, 20));
|
||||
|
||||
QMimeData *mimeData = new QMimeData;
|
||||
mimeData->setText("移动视图:" + view_core->title());
|
||||
drag->setMimeData(mimeData);
|
||||
|
||||
drag->exec();
|
||||
}
|
||||
}
|
||||
|
|
@ -1,301 +0,0 @@
|
|||
#ifndef SPLITVIEW_H
|
||||
#define SPLITVIEW_H
|
||||
|
||||
#include "SplitView_global.h"
|
||||
#include <QHash>
|
||||
#include <QIcon>
|
||||
#include <QLabel>
|
||||
#include <QWidget>
|
||||
|
||||
namespace SplitFrame {
|
||||
class SplitRect;
|
||||
class ViewPresent;
|
||||
class BaseView;
|
||||
|
||||
/**
|
||||
* @brief 承接堆放操作及设定摆放位置
|
||||
*/
|
||||
class SPLITVIEW_EXPORT AttachPanel : public QWidget {
|
||||
enum class ActiveArea { LEFT, RIGHT, TOP, BOTTOM, CENTER, NONE };
|
||||
|
||||
public:
|
||||
AttachPanel(ViewPresent *host);
|
||||
|
||||
void bindAttachment(BaseView *widget);
|
||||
BaseView *attachmentTarget() const;
|
||||
|
||||
virtual void paintEvent(QPaintEvent *event) override;
|
||||
virtual void dragMoveEvent(QDragMoveEvent *event) override;
|
||||
virtual void dragEnterEvent(QDragEnterEvent *event) override;
|
||||
virtual void dropEvent(QDropEvent *event) override;
|
||||
|
||||
private:
|
||||
ViewPresent *const adjust_host;
|
||||
BaseView *current_target;
|
||||
ActiveArea active_comp;
|
||||
|
||||
std::tuple<QRectF, QRectF, QRectF, QRectF, QRectF> view_rects() const;
|
||||
};
|
||||
|
||||
enum class SplitType { SPLIT_H = 0, SPLIT_V = 1 };
|
||||
|
||||
class RectCom {
|
||||
public:
|
||||
virtual ~RectCom() = default;
|
||||
|
||||
virtual ViewPresent *viewPanel() const = 0;
|
||||
virtual QWidget *bind() const = 0;
|
||||
virtual bool contains(QWidget *ptr) const = 0;
|
||||
|
||||
virtual QRectF outline() const = 0;
|
||||
virtual void relayout(const QRectF &outline) = 0;
|
||||
|
||||
virtual void setParentRect(SplitRect *inst) = 0;
|
||||
virtual SplitRect *parentRect() const = 0;
|
||||
|
||||
virtual void paintEvent(QPaintEvent *ev) = 0;
|
||||
};
|
||||
|
||||
class ResManager {
|
||||
public:
|
||||
virtual ~ResManager() = default;
|
||||
|
||||
virtual void objsRelateRebuild() = 0;
|
||||
|
||||
virtual void markFreedom(BaseView *view) = 0;
|
||||
virtual void markUnused(SplitRect *item) = 0;
|
||||
virtual void unusedResRelease() = 0;
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief 分裂视图规划和约束组件
|
||||
*/
|
||||
class SplitRect : public RectCom {
|
||||
public:
|
||||
virtual ~SplitRect() = default;
|
||||
|
||||
virtual std::pair<RectCom *, RectCom *> child() const = 0;
|
||||
virtual void removeComp(BaseView *child) = 0;
|
||||
virtual void replaceComp(RectCom *view, RectCom *old) = 0;
|
||||
virtual float splitterWidth() const = 0;
|
||||
virtual float splitterPos() const = 0;
|
||||
virtual SplitType splitType() const = 0;
|
||||
virtual void setSplitInfo(SplitType type, float pos, float width, bool relayout = true) = 0;
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief 分割视图
|
||||
*/
|
||||
class SPLITVIEW_EXPORT SplitView : public QWidget, public SplitRect {
|
||||
|
||||
public:
|
||||
SplitView(RectCom *first, RectCom *next, QWidget *parent = nullptr);
|
||||
virtual ~SplitView();
|
||||
|
||||
// RectCom interface
|
||||
public:
|
||||
virtual QWidget *bind() const override;
|
||||
virtual ViewPresent *viewPanel() const override;
|
||||
virtual QRectF outline() const override;
|
||||
virtual void relayout(const QRectF &outline) override;
|
||||
virtual void setParentRect(SplitRect *inst) override;
|
||||
virtual SplitRect *parentRect() const override;
|
||||
virtual void paintEvent(QPaintEvent *ev) override;
|
||||
virtual bool contains(QWidget *ptr) const override;
|
||||
|
||||
// SplitRect interface
|
||||
public:
|
||||
virtual std::pair<RectCom *, RectCom *> child() const override;
|
||||
virtual void removeComp(BaseView *child) override;
|
||||
virtual void replaceComp(RectCom *view, RectCom *old) override;
|
||||
virtual float splitterWidth() const override;
|
||||
virtual float splitterPos() const override;
|
||||
virtual SplitType splitType() const override;
|
||||
virtual void setSplitInfo(SplitType type, float pos, float width, bool relayout) override;
|
||||
|
||||
// QObject interface
|
||||
public:
|
||||
virtual bool eventFilter(QObject *watched, QEvent *event) override;
|
||||
|
||||
// QWidget interface
|
||||
protected:
|
||||
virtual void mousePressEvent(QMouseEvent *event) override;
|
||||
virtual void mouseReleaseEvent(QMouseEvent *event) override;
|
||||
virtual void mouseMoveEvent(QMouseEvent *event) override;
|
||||
virtual void resizeEvent(QResizeEvent *event) override;
|
||||
|
||||
private:
|
||||
SplitRect *parent_inst;
|
||||
QList<RectCom *> child_store;
|
||||
// type, pos, width
|
||||
std::tuple<SplitType, float, float> split_info_value;
|
||||
bool press_flags = false, drags_flag = false;
|
||||
|
||||
virtual void relayout();
|
||||
std::pair<QRectF, QRectF> viewRects();
|
||||
QRectF handleRect() const;
|
||||
};
|
||||
|
||||
class DragHeader : public QFrame {
|
||||
public:
|
||||
DragHeader(BaseView *bind);
|
||||
|
||||
void setIcon(const QIcon &icon);
|
||||
QIcon icon() const;
|
||||
void setText(const QString &title);
|
||||
QString text() const;
|
||||
|
||||
private:
|
||||
QIcon icon_inst;
|
||||
QLabel *const icon_store, *const title_store;
|
||||
BaseView *const view_core;
|
||||
std::tuple<bool, QPointF> press_flag = std::make_tuple(false, QPointF());
|
||||
|
||||
// QWidget interface
|
||||
protected:
|
||||
virtual void mousePressEvent(QMouseEvent *event) override;
|
||||
virtual void mouseReleaseEvent(QMouseEvent *event) override;
|
||||
virtual void mouseMoveEvent(QMouseEvent *event) override;
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief 基础内容视图组件
|
||||
*/
|
||||
class SPLITVIEW_EXPORT BaseView : public QWidget, public RectCom {
|
||||
friend class ViewPresent;
|
||||
|
||||
public:
|
||||
BaseView(const QString &title, QWidget *view, bool empty = false, QWidget *parent = nullptr);
|
||||
|
||||
virtual void setTitle(const QString &title);
|
||||
virtual QString title() const;
|
||||
|
||||
virtual void setIcon(const QIcon &icon);
|
||||
virtual QIcon viewIcon() const;
|
||||
|
||||
virtual void closeView();
|
||||
virtual bool contains(QWidget *inst) const override;
|
||||
|
||||
// RectCom interface
|
||||
public:
|
||||
virtual QWidget *bind() const override;
|
||||
virtual ViewPresent *viewPanel() const override;
|
||||
virtual QRectF outline() const override;
|
||||
virtual void relayout(const QRectF &outline) override;
|
||||
virtual void setParentRect(SplitRect *inst) override;
|
||||
virtual SplitRect *parentRect() const override;
|
||||
virtual void paintEvent(QPaintEvent *ev) override;
|
||||
|
||||
private:
|
||||
DragHeader *title_header;
|
||||
SplitRect *parent_store;
|
||||
QList<QWidget *> comps_list;
|
||||
|
||||
protected:
|
||||
virtual void installPerceptionHandle(ViewPresent *obj);
|
||||
virtual void registComp(QWidget *child);
|
||||
};
|
||||
|
||||
class FreedomViewsListener {
|
||||
public:
|
||||
virtual ~FreedomViewsListener() = default;
|
||||
/**
|
||||
* @brief 闲置视图增加
|
||||
* @param ins
|
||||
*/
|
||||
virtual void freedomAppended(RectCom *ins) = 0;
|
||||
/**
|
||||
* @brief 闲置视图减少
|
||||
* @param ins
|
||||
*/
|
||||
virtual void freedomRemoved(RectCom *ins) = 0;
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief 分裂视图呈现组件
|
||||
*/
|
||||
class SPLITVIEW_EXPORT ViewPresent : public QWidget, public SplitRect, public ResManager {
|
||||
public:
|
||||
ViewPresent(QWidget *parent = nullptr);
|
||||
virtual ~ViewPresent();
|
||||
|
||||
void addListener(FreedomViewsListener *lsn);
|
||||
void removeListener(FreedomViewsListener *lsn);
|
||||
//======================================================
|
||||
void registViewComp(BaseView *it);
|
||||
//======================================================
|
||||
virtual void markFreedom(BaseView *view) override;
|
||||
void setTempVisible(BaseView *target = nullptr);
|
||||
|
||||
/**
|
||||
* @brief 切换视图调整状态
|
||||
* @param state 状态开关
|
||||
*/
|
||||
void setViewAdjust(BaseView *one = nullptr);
|
||||
bool adjustState() const;
|
||||
BaseView *adjustView() const;
|
||||
|
||||
void resetViews(RectCom *center, RectCom *extend = nullptr);
|
||||
|
||||
// RectCom interface
|
||||
public:
|
||||
virtual ViewPresent *viewPanel() const override;
|
||||
virtual QWidget *bind() const override;
|
||||
virtual bool contains(QWidget *ptr) const override;
|
||||
virtual QRectF outline() const override;
|
||||
virtual void relayout(const QRectF &outline) override;
|
||||
virtual void setParentRect(SplitRect *) override;
|
||||
virtual SplitRect *parentRect() const override;
|
||||
|
||||
// ResManager interface
|
||||
public:
|
||||
virtual void objsRelateRebuild() override;
|
||||
virtual void markUnused(SplitRect *item) override;
|
||||
virtual void unusedResRelease() override;
|
||||
|
||||
// SplitRect interface
|
||||
public:
|
||||
virtual std::pair<RectCom *, RectCom *> child() const override;
|
||||
virtual void removeComp(BaseView *child) override;
|
||||
virtual void replaceComp(RectCom *view, RectCom *old) override;
|
||||
virtual float splitterWidth() const override;
|
||||
virtual float splitterPos() const override;
|
||||
virtual SplitType splitType() const override;
|
||||
virtual void setSplitInfo(SplitType type, float pos, float width, bool relayout) override;
|
||||
|
||||
// QObject interface
|
||||
public:
|
||||
virtual bool eventFilter(QObject *watched, QEvent *event) override;
|
||||
|
||||
// QWidget interface
|
||||
protected:
|
||||
virtual void paintEvent(QPaintEvent *ev) override;
|
||||
virtual void resizeEvent(QResizeEvent *ev) override;
|
||||
virtual void mousePressEvent(QMouseEvent *event) override;
|
||||
virtual void mouseReleaseEvent(QMouseEvent *event) override;
|
||||
virtual void mouseMoveEvent(QMouseEvent *event) override;
|
||||
|
||||
private:
|
||||
AttachPanel *const accept_panel;
|
||||
QList<SplitRect *> unused_splits;
|
||||
|
||||
BaseView *adjust_view_temp; // 拖拽中转
|
||||
bool press_flags = false; // 空间调整标志
|
||||
// 方向,splitter位置,splitter宽度
|
||||
std::tuple<SplitType, float, float> split_info_store = std::make_tuple(SplitType::SPLIT_H, 200, 8);
|
||||
|
||||
QList<RectCom *> view_anchors;
|
||||
QList<BaseView *> all_sep_views;
|
||||
|
||||
QList<FreedomViewsListener *> lsn_list;
|
||||
QList<RectCom *> freedom_views;
|
||||
RectCom *temp_visible_view = nullptr;
|
||||
|
||||
virtual void relayout();
|
||||
std::pair<QRectF, QRectF> viewRects();
|
||||
QRectF handleRect() const;
|
||||
};
|
||||
|
||||
} // namespace SplitFrame
|
||||
|
||||
#endif // SPLITVIEW_H
|
||||
|
|
@ -1,270 +0,0 @@
|
|||
<?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>{E0995577-1AB9-3B93-9990-97E99093D597}</ProjectGuid>
|
||||
<RootNamespace>WordsIDE</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>WordsIDE</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>WordsIDE</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>WordsIDE</TargetName><IgnoreImportLibrary>true</IgnoreImportLibrary></PropertyGroup><PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"><OutDir>release\</OutDir><IntDir>release\</IntDir><TargetName>WordsIDE</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;xml;gui;testlib;widgets</QtModules></PropertyGroup><PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"><QtInstall>5.12.11_msvc2017_64</QtInstall><QtModules>core;xml;gui;testlib;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;.;..\libConfig;..\libProjectManager;..\GenericConsole;release;/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus /utf-8 -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>_CONSOLE;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;QT_NO_DEBUG;QT_TESTCASE_BUILDDIR=".";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>libConfig.lib;libProjectManager.lib;GenericConsole.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>D:\Projects\Cpp\QtNovelDesc\libConfig\release;D:\Projects\Cpp\QtNovelDesc\libProjectManager\release;D:\Projects\Cpp\QtNovelDesc\GenericConsole\release;%(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)\WordsIDE.exe</OutputFile>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
</Link>
|
||||
<Midl>
|
||||
<DefaultCharType>Unsigned</DefaultCharType>
|
||||
<EnableErrorChecks>None</EnableErrorChecks>
|
||||
<WarningLevel>0</WarningLevel>
|
||||
</Midl>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_CONSOLE;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;QT_NO_DEBUG;QT_TESTCASE_BUILDDIR=".";%(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;.;..\libConfig;..\libProjectManager;..\GenericConsole;debug;/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus /utf-8 -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>_CONSOLE;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;QT_TESTCASE_BUILDDIR=".";%(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>D:\Projects\Cpp\QtNovelDesc\libConfig\debug\libConfig.lib;D:\Projects\Cpp\QtNovelDesc\libProjectManager\debug\libProjectManager.lib;D:\Projects\Cpp\QtNovelDesc\GenericConsole\debug\GenericConsole.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>D:\Projects\Cpp\QtNovelDesc\libConfig\debug;D:\Projects\Cpp\QtNovelDesc\libProjectManager\debug;D:\Projects\Cpp\QtNovelDesc\GenericConsole\debug;%(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)\WordsIDE.exe</OutputFile>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
</Link>
|
||||
<Midl>
|
||||
<DefaultCharType>Unsigned</DefaultCharType>
|
||||
<EnableErrorChecks>None</EnableErrorChecks>
|
||||
<WarningLevel>0</WarningLevel>
|
||||
</Midl>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_CONSOLE;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;QT_TESTCASE_BUILDDIR=".";_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
<QtRcc><InitFuncName>qmake_qmake_qm_files</InitFuncName><Compression>default</Compression><ExecutionDescription>Rcc'ing %(Identity)...</ExecutionDescription><QtRccDir>$(Configuration)</QtRccDir><QtRccFileName>qrc_%(Filename).cpp</QtRccFileName></QtRcc><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></ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="DocsManager.cpp" />
|
||||
<ClCompile Include="appcore.cpp" />
|
||||
<ClCompile Include="command_list.cpp" />
|
||||
<ClCompile Include="main.cpp" />
|
||||
<ClCompile Include="mainwindow.cpp" />
|
||||
<ClCompile Include="manager_docs.cpp" />
|
||||
<ClCompile Include="messagespresent.cpp" />
|
||||
<ClCompile Include="parsebridge.cpp" />
|
||||
<ClCompile Include="presentcontainer.cpp" />
|
||||
<ClCompile Include="projectpresent.cpp" />
|
||||
<ClCompile Include="route.cpp" />
|
||||
<ClCompile Include="srcedit_defaulttext.cpp" />
|
||||
<ClCompile Include="srcedit_storyboard.cpp" />
|
||||
<ClCompile Include="tools.cpp" />
|
||||
<ClCompile Include="welcomepanel.cpp" />
|
||||
<ClCompile Include="xapp.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<QtMoc Include="DocsManager.h">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</QtMoc>
|
||||
<ClInclude Include="appcore.h" />
|
||||
<ClInclude Include="command_list.h" />
|
||||
<QtMoc Include="mainwindow.h">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</QtMoc>
|
||||
<ClInclude Include="manager_docs.h" />
|
||||
<ClInclude Include="messagespresent.h" />
|
||||
<ClInclude Include="opstream.h" />
|
||||
<ClInclude Include="parsebridge.h" />
|
||||
<QtMoc Include="presentcontainer.h">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</QtMoc>
|
||||
<QtMoc Include="projectpresent.h">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</QtMoc>
|
||||
<ClInclude Include="route.h" />
|
||||
<ClInclude Include="srcedit_defaulttext.h" />
|
||||
<ClInclude Include="srcedit_storyboard.h" />
|
||||
<ClInclude Include="tools.h" />
|
||||
<ClInclude Include="welcomepanel.h" />
|
||||
<ClInclude Include="xapp.h" />
|
||||
</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 /utf-8 -Zi -MDd -EHsc -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -E $(QTDIR)\mkspecs\features\data\dummy.cpp 2>NUL >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 /utf-8 -O2 -MD -EHsc -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -E $(QTDIR)\mkspecs\features\data\dummy.cpp 2>NUL >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="WordsIDE_zh_CN.ts">
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">WordsIDE_zh_CN.ts;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\lrelease.exe WordsIDE_zh_CN.ts -qm release\WordsIDE_zh_CN.qm</Command>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">lrelease</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">release\WordsIDE_zh_CN.qm;%(Outputs)</Outputs>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">WordsIDE_zh_CN.ts;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\lrelease.exe WordsIDE_zh_CN.ts -qm debug\WordsIDE_zh_CN.qm</Command>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">lrelease</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">debug\WordsIDE_zh_CN.qm;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="debug\WordsIDE_zh_CN.qm">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</None>
|
||||
<None Include="release\WordsIDE_zh_CN.qm">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
</None>
|
||||
<QtRcc Include="debug\qmake_qmake_qm_files.qrc">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</QtRcc>
|
||||
<QtRcc Include="release\qmake_qmake_qm_files.qrc">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</QtRcc>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="design.md" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /><ImportGroup Condition="Exists('$(QtMsBuild)\qt.targets')"><Import Project="$(QtMsBuild)\qt.targets" /></ImportGroup>
|
||||
<ImportGroup Label="ExtensionTargets" />
|
||||
</Project>
|
||||
|
|
@ -1,201 +0,0 @@
|
|||
<?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>
|
||||
<Filter Include="Distribution Files">
|
||||
<UniqueIdentifier>{B83CAF91-C7BF-462F-B76C-EA11631F866C}</UniqueIdentifier>
|
||||
<Extensions>*</Extensions>
|
||||
<ParseFiles>false</ParseFiles>
|
||||
</Filter>
|
||||
<Filter Include="Distribution Files">
|
||||
<UniqueIdentifier>{B83CAF91-C7BF-462F-B76C-EA11631F866C}</UniqueIdentifier>
|
||||
<Extensions>*</Extensions>
|
||||
<ParseFiles>false</ParseFiles>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="DocsManager.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="appcore.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="command_list.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="main.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="mainwindow.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="manager_docs.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="messagespresent.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="parsebridge.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="presentcontainer.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="projectpresent.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="route.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="srcedit_defaulttext.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="srcedit_storyboard.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="tools.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="welcomepanel.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="xapp.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<QtMoc Include="DocsManager.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</QtMoc>
|
||||
<ClInclude Include="appcore.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="command_list.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<QtMoc Include="mainwindow.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</QtMoc>
|
||||
<ClInclude Include="manager_docs.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="messagespresent.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="opstream.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="parsebridge.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<QtMoc Include="presentcontainer.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</QtMoc>
|
||||
<QtMoc Include="projectpresent.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</QtMoc>
|
||||
<ClInclude Include="route.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="srcedit_defaulttext.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="srcedit_storyboard.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="tools.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="welcomepanel.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="xapp.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</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="WordsIDE_zh_CN.ts">
|
||||
<Filter>Translation Files</Filter>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="debug\WordsIDE_zh_CN.qm">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="release\WordsIDE_zh_CN.qm">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<QtRcc Include="debug\qmake_qmake_qm_files.qrc">
|
||||
<Filter>Resource Files</Filter>
|
||||
</QtRcc>
|
||||
<QtRcc Include="release\qmake_qmake_qm_files.qrc">
|
||||
<Filter>Resource Files</Filter>
|
||||
</QtRcc>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="design.md">
|
||||
<Filter>Distribution Files</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup />
|
||||
</Project>
|
||||
|
|
@ -1,160 +0,0 @@
|
|||
<?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>{584ACAFD-87A5-3B62-B96B-4CE19B6FD6C9}</ProjectGuid>
|
||||
<RootNamespace>libConfig</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>DynamicLibrary</ConfigurationType>
|
||||
<IntermediateDirectory>release\</IntermediateDirectory>
|
||||
<PrimaryOutput>libConfig</PrimaryOutput>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<OutputDirectory>debug\</OutputDirectory>
|
||||
<ATLMinimizesCRunTimeLibraryUsage>false</ATLMinimizesCRunTimeLibraryUsage>
|
||||
<CharacterSet>NotSet</CharacterSet>
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<IntermediateDirectory>debug\</IntermediateDirectory>
|
||||
<PrimaryOutput>libConfig</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>libConfig</TargetName><IgnoreImportLibrary>true</IgnoreImportLibrary></PropertyGroup><PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"><OutDir>release\</OutDir><IntDir>release\</IntDir><TargetName>libConfig</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;xml</QtModules></PropertyGroup><PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"><QtInstall>5.12.11_msvc2017_64</QtInstall><QtModules>core;xml</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;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus /utf-8 -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;LIBCONFIG_LIBRARY;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>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<IgnoreImportLibrary>true</IgnoreImportLibrary>
|
||||
<LinkDLL>true</LinkDLL>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<OutputFile>$(OutDir)\libConfig.dll</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;LIBCONFIG_LIBRARY;QT_NO_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>GeneratedFiles\$(ConfigurationName);GeneratedFiles;.;debug;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus /utf-8 -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;LIBCONFIG_LIBRARY;%(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>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<IgnoreImportLibrary>true</IgnoreImportLibrary>
|
||||
<LinkDLL>true</LinkDLL>
|
||||
<OutputFile>$(OutDir)\libConfig.dll</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;LIBCONFIG_LIBRARY;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="xmlconfig.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="libConfig.h" />
|
||||
<ClInclude Include="libConfig_global.h" />
|
||||
<ClInclude Include="xmlconfig.h" />
|
||||
</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 /utf-8 -Zi -MDd -EHsc -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -E $(QTDIR)\mkspecs\features\data\dummy.cpp 2>NUL >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 /utf-8 -O2 -MD -EHsc -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -E $(QTDIR)\mkspecs\features\data\dummy.cpp 2>NUL >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>
|
||||
<None Include="libConfig_zh_CN.ts" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /><ImportGroup Condition="Exists('$(QtMsBuild)\qt.targets')"><Import Project="$(QtMsBuild)\qt.targets" /></ImportGroup>
|
||||
<ImportGroup Label="ExtensionTargets" />
|
||||
</Project>
|
||||
|
|
@ -1,68 +0,0 @@
|
|||
<?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="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="xmlconfig.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="libConfig.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="libConfig_global.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="xmlconfig.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</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>
|
||||
<None Include="libConfig_zh_CN.ts">
|
||||
<Filter>Translation Files</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup />
|
||||
</Project>
|
||||
|
|
@ -1,177 +0,0 @@
|
|||
<?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>{5CBE83F9-2019-33DC-8327-32F7A2AC9EF6}</ProjectGuid>
|
||||
<RootNamespace>libProjectManager</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>DynamicLibrary</ConfigurationType>
|
||||
<IntermediateDirectory>release\</IntermediateDirectory>
|
||||
<PrimaryOutput>libProjectManager</PrimaryOutput>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<OutputDirectory>debug\</OutputDirectory>
|
||||
<ATLMinimizesCRunTimeLibraryUsage>false</ATLMinimizesCRunTimeLibraryUsage>
|
||||
<CharacterSet>NotSet</CharacterSet>
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<IntermediateDirectory>debug\</IntermediateDirectory>
|
||||
<PrimaryOutput>libProjectManager</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>libProjectManager</TargetName><IgnoreImportLibrary>true</IgnoreImportLibrary></PropertyGroup><PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"><OutDir>release\</OutDir><IntDir>release\</IntDir><TargetName>libProjectManager</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;xml;gui</QtModules></PropertyGroup><PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"><QtInstall>5.12.11_msvc2017_64</QtInstall><QtModules>core;xml;gui</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;.;..\libConfig;release;/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus /utf-8 -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;LIBPROJECTMANAGER_LIBRARY;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>libConfig.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>D:\Projects\Cpp\QtNovelDesc\libConfig\release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<IgnoreImportLibrary>true</IgnoreImportLibrary>
|
||||
<LinkDLL>true</LinkDLL>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<OutputFile>$(OutDir)\libProjectManager.dll</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;LIBPROJECTMANAGER_LIBRARY;QT_NO_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
<QtRcc><InitFuncName>icons</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;.;..\libConfig;debug;/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus /utf-8 -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;LIBPROJECTMANAGER_LIBRARY;%(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>D:\Projects\Cpp\QtNovelDesc\libConfig\debug\libConfig.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>D:\Projects\Cpp\QtNovelDesc\libConfig\debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<IgnoreImportLibrary>true</IgnoreImportLibrary>
|
||||
<LinkDLL>true</LinkDLL>
|
||||
<OutputFile>$(OutDir)\libProjectManager.dll</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;LIBPROJECTMANAGER_LIBRARY;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
<QtRcc><InitFuncName>icons</InitFuncName><Compression>default</Compression><ExecutionDescription>Rcc'ing %(Identity)...</ExecutionDescription><QtRccDir>$(Configuration)</QtRccDir><QtRccFileName>qrc_%(Filename).cpp</QtRccFileName></QtRcc></ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="xmlprojectmanager.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="libProjectManager.h" />
|
||||
<ClInclude Include="libProjectManager_global.h" />
|
||||
<ClInclude Include="xmlprojectmanager.h" />
|
||||
</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 /utf-8 -Zi -MDd -EHsc -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -E $(QTDIR)\mkspecs\features\data\dummy.cpp 2>NUL >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 /utf-8 -O2 -MD -EHsc -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -E $(QTDIR)\mkspecs\features\data\dummy.cpp 2>NUL >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>
|
||||
<None Include="libProjectManager_zh_CN.ts" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="??.png" />
|
||||
<QtRcc Include="icons.qrc">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</QtRcc>
|
||||
<None Include="toplevel.png" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /><ImportGroup Condition="Exists('$(QtMsBuild)\qt.targets')"><Import Project="$(QtMsBuild)\qt.targets" /></ImportGroup>
|
||||
<ImportGroup Label="ExtensionTargets" />
|
||||
</Project>
|
||||
|
|
@ -1,91 +0,0 @@
|
|||
<?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="xmlprojectmanager.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="libProjectManager.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="libProjectManager_global.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="xmlprojectmanager.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</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>
|
||||
<None Include="libProjectManager_zh_CN.ts">
|
||||
<Filter>Translation Files</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="??.png">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<QtRcc Include="icons.qrc">
|
||||
<Filter>Resource Files</Filter>
|
||||
</QtRcc>
|
||||
<None Include="toplevel.png">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup />
|
||||
</Project>
|
||||
|
|
@ -0,0 +1,169 @@
|
|||
#include "baseview.h"
|
||||
|
||||
#include <QApplication>
|
||||
#include <QDebug>
|
||||
#include <QDrag>
|
||||
#include <QHBoxLayout>
|
||||
#include <QMimeData>
|
||||
#include <QMouseEvent>
|
||||
#include <QPushButton>
|
||||
|
||||
using namespace SplitFrame;
|
||||
|
||||
DragHeader::DragHeader(BaseView *bind) : QFrame(bind->bind()), icon_store(new QLabel(this)), title_store(new QLabel(this)), view_core(bind) {
|
||||
setFrameShadow(QFrame::Shadow::Raised);
|
||||
setFrameShape(QFrame::Shape::Box);
|
||||
setStyleSheet("background-color: rgb(200, 200, 255);");
|
||||
|
||||
auto layout = new QHBoxLayout(this);
|
||||
layout->setMargin(1);
|
||||
layout->setSpacing(2);
|
||||
layout->addWidget(icon_store, 0);
|
||||
layout->addWidget(title_store, 1);
|
||||
|
||||
auto hide = new QPushButton("-", this);
|
||||
layout->addWidget(hide, 0);
|
||||
hide->setMaximumSize(20, 20);
|
||||
auto close = new QPushButton("X", this);
|
||||
layout->addWidget(close, 0);
|
||||
close->setMaximumSize(20, 20);
|
||||
|
||||
connect(hide, &QPushButton::clicked, [=]() { view_core->pRelease(); });
|
||||
connect(close, &QPushButton::clicked, [=]() { view_core->pClose(); });
|
||||
}
|
||||
|
||||
void DragHeader::setIcon(const QIcon &icon) {
|
||||
icon_inst = icon;
|
||||
auto len = this->height() - 2;
|
||||
this->icon_store->setPixmap(icon.pixmap(QSize(len, len)));
|
||||
}
|
||||
|
||||
QIcon DragHeader::icon() const { return this->icon_inst; }
|
||||
|
||||
void DragHeader::setText(const QString &title) { this->title_store->setText(title); }
|
||||
|
||||
QString DragHeader::text() const { return title_store->text(); }
|
||||
|
||||
void DragHeader::mousePressEvent(QMouseEvent *event) {
|
||||
if (event->button() == Qt::LeftButton && !std::get<0>(press_flag)) {
|
||||
this->press_flag = std::make_tuple(true, event->pos());
|
||||
}
|
||||
}
|
||||
|
||||
void DragHeader::mouseReleaseEvent(QMouseEvent *event) {
|
||||
if (event->button() == Qt::LeftButton) {
|
||||
this->press_flag = std::make_tuple(false, QPointF());
|
||||
}
|
||||
}
|
||||
|
||||
void DragHeader::mouseMoveEvent(QMouseEvent *event) {
|
||||
auto distance = QLineF(std::get<1>(press_flag), event->pos()).length();
|
||||
if (std::get<0>(press_flag) && distance > QApplication::startDragDistance()) {
|
||||
auto panel = view_core->viewPanel();
|
||||
panel->setAdjustView(view_core);
|
||||
|
||||
QDrag *drag = new QDrag(this);
|
||||
auto pix = view_core->bind()->grab();
|
||||
drag->setPixmap(pix);
|
||||
drag->setHotSpot(QPoint(20, 20));
|
||||
|
||||
QMimeData *mimeData = new QMimeData;
|
||||
mimeData->setText("移动视图:" + view_core->title());
|
||||
drag->setMimeData(mimeData);
|
||||
|
||||
drag->exec();
|
||||
}
|
||||
}
|
||||
|
||||
BaseView::BaseView(const QString &title, QWidget *view, bool empty, QWidget *parent) : QWidget(parent), title_header(nullptr), parent_store(nullptr) {
|
||||
auto layout = new QVBoxLayout(this);
|
||||
layout->setMargin(0);
|
||||
layout->setSpacing(0);
|
||||
|
||||
registElement(this);
|
||||
|
||||
if (!empty) {
|
||||
title_header = new DragHeader(this);
|
||||
title_header->setText(title);
|
||||
title_header->setMaximumHeight(22);
|
||||
|
||||
layout->addWidget(title_header, 0);
|
||||
registElement(title_header);
|
||||
}
|
||||
|
||||
registElement(view);
|
||||
layout->addWidget(view, 1);
|
||||
setMouseTracking(true);
|
||||
}
|
||||
|
||||
BaseView::~BaseView() { qDebug() << "view-delete" << title() << endl; }
|
||||
|
||||
void BaseView::setTitle(const QString &title) {
|
||||
QWidget::setWindowTitle(title);
|
||||
title_header->setText(title);
|
||||
}
|
||||
|
||||
QString BaseView::title() const { return this->title_header->text(); }
|
||||
|
||||
void BaseView::setIcon(const QIcon &icon) { this->title_header->setIcon(icon); }
|
||||
|
||||
QIcon BaseView::viewIcon() const { return title_header->icon(); }
|
||||
|
||||
void BaseView::registElement(QWidget *child) {
|
||||
if (this->comps_list.contains(child))
|
||||
return;
|
||||
|
||||
comps_list << child;
|
||||
|
||||
if (child != this)
|
||||
child->setParent(this);
|
||||
}
|
||||
|
||||
ViewPresent *BaseView::viewPanel() const {
|
||||
auto parent_inst = parentRes();
|
||||
return parent_inst->viewPanel();
|
||||
}
|
||||
|
||||
bool BaseView::contains(QWidget *ptr) const { return comps_list.contains(ptr); }
|
||||
|
||||
QWidget *BaseView::bind() const { return const_cast<BaseView *>(this); }
|
||||
|
||||
ViewRes *BaseView::parentRes() const { return parent_store; }
|
||||
|
||||
void BaseView::pRelease() {
|
||||
auto parent = parentRes();
|
||||
if (parent) {
|
||||
auto host_ptr = viewPanel();
|
||||
dynamic_cast<SplitRect *>(parent)->removeComp(this);
|
||||
host_ptr->markFreedom(this);
|
||||
}
|
||||
}
|
||||
|
||||
void BaseView::pClose() {
|
||||
auto ptr = viewPanel();
|
||||
pRelease();
|
||||
ptr->purge(this);
|
||||
}
|
||||
|
||||
void BaseView::setParentRes(ViewRes *pinst) {
|
||||
this->parent_store = pinst;
|
||||
|
||||
this->setParent(pinst != nullptr ? pinst->bind() : nullptr);
|
||||
}
|
||||
|
||||
QRectF BaseView::outline() const { return this->rect(); }
|
||||
|
||||
void BaseView::relayout(const QRectF &outline) {
|
||||
this->setGeometry(outline.toRect());
|
||||
update();
|
||||
}
|
||||
|
||||
void BaseView::installPerceptionHandle(ViewPresent *obj) {
|
||||
for (auto &it : comps_list) {
|
||||
it->setAcceptDrops(true);
|
||||
it->removeEventFilter(obj->globalEventFilter());
|
||||
it->installEventFilter(obj->globalEventFilter());
|
||||
}
|
||||
}
|
||||
|
||||
void BaseView::paintEvent(QPaintEvent *ev) { QWidget::paintEvent(ev); }
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
#ifndef BASEVIEW_H
|
||||
#define BASEVIEW_H
|
||||
|
||||
#include "splitpanel.h"
|
||||
#include <QFrame>
|
||||
#include <QIcon>
|
||||
#include <QLabel>
|
||||
#include <QString>
|
||||
|
||||
namespace SplitFrame {
|
||||
class BaseView;
|
||||
|
||||
/**
|
||||
* @brief 视图拖拽标题栏
|
||||
*/
|
||||
class DragHeader : public QFrame {
|
||||
public:
|
||||
DragHeader(BaseView *bind);
|
||||
|
||||
void setIcon(const QIcon &icon);
|
||||
QIcon icon() const;
|
||||
void setText(const QString &title);
|
||||
QString text() const;
|
||||
|
||||
private:
|
||||
QIcon icon_inst;
|
||||
QLabel *const icon_store, *const title_store;
|
||||
BaseView *const view_core;
|
||||
std::tuple<bool, QPointF> press_flag = std::make_tuple(false, QPointF());
|
||||
|
||||
// QWidget interface
|
||||
protected:
|
||||
virtual void mousePressEvent(QMouseEvent *event) override;
|
||||
virtual void mouseReleaseEvent(QMouseEvent *event) override;
|
||||
virtual void mouseMoveEvent(QMouseEvent *event) override;
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief 基础内容视图组件
|
||||
*/
|
||||
class SPLITVIEW_EXPORT BaseView : private QWidget, public RectCom {
|
||||
friend class ViewPresent;
|
||||
|
||||
public:
|
||||
BaseView(const QString &title, QWidget *view, bool empty = false, QWidget *parent = nullptr);
|
||||
virtual ~BaseView();
|
||||
|
||||
virtual void setTitle(const QString &title);
|
||||
virtual QString title() const;
|
||||
|
||||
virtual void setIcon(const QIcon &icon);
|
||||
virtual QIcon viewIcon() const;
|
||||
|
||||
virtual bool contains(QWidget *inst) const override;
|
||||
|
||||
// ViewRes interface
|
||||
public:
|
||||
virtual ViewPresent *viewPanel() const override;
|
||||
virtual void setParentRes(ViewRes *inst) override;
|
||||
virtual ViewRes *parentRes() const override;
|
||||
virtual void pRelease() override;
|
||||
virtual void pClose() override;
|
||||
virtual void registElement(QWidget *child) override;
|
||||
|
||||
// RectCom interface
|
||||
public:
|
||||
virtual QWidget *bind() const override;
|
||||
virtual QRectF outline() const override;
|
||||
virtual void relayout(const QRectF &outline) override;
|
||||
virtual void paintEvent(QPaintEvent *ev) override;
|
||||
|
||||
private:
|
||||
DragHeader *title_header;
|
||||
ViewRes *parent_store;
|
||||
QList<QWidget *> comps_list;
|
||||
|
||||
protected:
|
||||
virtual void installPerceptionHandle(ViewPresent *obj);
|
||||
};
|
||||
} // namespace SplitFrame
|
||||
|
||||
#endif // BASEVIEW_H
|
||||
|
|
@ -15,10 +15,14 @@ msvc{
|
|||
}
|
||||
|
||||
SOURCES += \
|
||||
baseview.cpp \
|
||||
splitpanel.cpp \
|
||||
splitview.cpp
|
||||
|
||||
HEADERS += \
|
||||
SplitView_global.h \
|
||||
baseview.h \
|
||||
splitpanel.h \
|
||||
splitpanel_global.h \
|
||||
splitview.h
|
||||
|
||||
# Default rules for deployment.
|
||||
|
|
@ -0,0 +1,586 @@
|
|||
#include "splitpanel.h"
|
||||
#include "baseview.h"
|
||||
#include "splitview.h"
|
||||
#include <QApplication>
|
||||
#include <QDebug>
|
||||
#include <QDrag>
|
||||
#include <QHBoxLayout>
|
||||
#include <QLineF>
|
||||
#include <QMimeData>
|
||||
#include <QPainter>
|
||||
#include <QPushButton>
|
||||
#include <QResizeEvent>
|
||||
#include <QStyleOption>
|
||||
#include <libConfig.h>
|
||||
|
||||
namespace SplitFrame {
|
||||
|
||||
/**
|
||||
* @brief 承接堆放操作及设定摆放位置
|
||||
*/
|
||||
class SPLITVIEW_EXPORT AttachPanel : public QWidget {
|
||||
enum class ActiveArea { LEFT, RIGHT, TOP, BOTTOM, CENTER, NONE };
|
||||
|
||||
public:
|
||||
AttachPanel(ViewPresent *host);
|
||||
|
||||
void bindAttachment(RectCom *widget);
|
||||
RectCom *attachmentTarget() const;
|
||||
|
||||
virtual void paintEvent(QPaintEvent *event) override;
|
||||
virtual void dragMoveEvent(QDragMoveEvent *event) override;
|
||||
virtual void dragEnterEvent(QDragEnterEvent *event) override;
|
||||
virtual void dropEvent(QDropEvent *event) override;
|
||||
|
||||
private:
|
||||
ViewPresent *const adjust_host;
|
||||
RectCom *current_target;
|
||||
ActiveArea active_comp;
|
||||
|
||||
std::tuple<QRectF, QRectF, QRectF, QRectF, QRectF> view_rects() const;
|
||||
};
|
||||
|
||||
} // namespace SplitFrame
|
||||
|
||||
using namespace SplitFrame;
|
||||
using namespace Config;
|
||||
|
||||
AttachPanel::AttachPanel(ViewPresent *host) : QWidget(host->bind()), adjust_host(host) {
|
||||
setWindowOpacity(50);
|
||||
setAcceptDrops(true);
|
||||
}
|
||||
|
||||
void AttachPanel::bindAttachment(RectCom *widget) { this->current_target = widget; }
|
||||
|
||||
RectCom *AttachPanel::attachmentTarget() const { return this->current_target; }
|
||||
|
||||
void AttachPanel::paintEvent(QPaintEvent *event) {
|
||||
QWidget::paintEvent(event);
|
||||
|
||||
QPainter p(this);
|
||||
p.setBrush(Qt::lightGray);
|
||||
p.fillRect(this->rect(), Qt::lightGray);
|
||||
|
||||
auto rect = this->rect();
|
||||
p.setPen(QPen(Qt::black, 4));
|
||||
switch (active_comp) {
|
||||
case ActiveArea::LEFT:
|
||||
p.fillRect(QRectF(rect.topLeft(), QSizeF(rect.width() / 2, rect.height())), Qt::gray);
|
||||
break;
|
||||
case ActiveArea::RIGHT:
|
||||
p.fillRect(QRectF(rect.center() - QPointF(0, rect.height() / 2), QSizeF(rect.width() / 2, rect.height())), Qt::gray);
|
||||
break;
|
||||
case ActiveArea::TOP:
|
||||
p.fillRect(QRectF(rect.topLeft(), QSizeF(rect.width(), rect.height() / 2)), Qt::gray);
|
||||
break;
|
||||
case ActiveArea::BOTTOM:
|
||||
p.fillRect(QRectF(rect.center() - QPointF(rect.width() / 2, 0), QSizeF(rect.width(), rect.height() / 2)), Qt::gray);
|
||||
break;
|
||||
case ActiveArea::CENTER:
|
||||
p.fillRect(rect, Qt::gray);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
p.setBrush(Qt::transparent);
|
||||
p.setPen(QPen(Qt::black, 1));
|
||||
|
||||
auto x_views = view_rects();
|
||||
QVector<QRectF> rects;
|
||||
rects << std::get<0>(x_views);
|
||||
rects << std::get<1>(x_views);
|
||||
rects << std::get<2>(x_views);
|
||||
rects << std::get<3>(x_views);
|
||||
rects << std::get<4>(x_views);
|
||||
p.drawRects(rects);
|
||||
}
|
||||
|
||||
void AttachPanel::dragMoveEvent(QDragMoveEvent *event) {
|
||||
QWidget::dragMoveEvent(event);
|
||||
|
||||
auto tuple_list = view_rects();
|
||||
if (std::get<0>(tuple_list).contains(event->pos())) {
|
||||
this->active_comp = ActiveArea::LEFT;
|
||||
} else if (std::get<1>(tuple_list).contains(event->pos())) {
|
||||
this->active_comp = ActiveArea::RIGHT;
|
||||
|
||||
} else if (std::get<2>(tuple_list).contains(event->pos())) {
|
||||
this->active_comp = ActiveArea::TOP;
|
||||
|
||||
} else if (std::get<3>(tuple_list).contains(event->pos())) {
|
||||
this->active_comp = ActiveArea::BOTTOM;
|
||||
|
||||
} else if (std::get<4>(tuple_list).contains(event->pos())) {
|
||||
this->active_comp = ActiveArea::CENTER;
|
||||
} else {
|
||||
this->active_comp = ActiveArea::NONE;
|
||||
}
|
||||
|
||||
this->update();
|
||||
}
|
||||
|
||||
void AttachPanel::dragEnterEvent(QDragEnterEvent *event) {
|
||||
QWidget::dragEnterEvent(event);
|
||||
|
||||
if (adjust_host->adjustState())
|
||||
event->acceptProposedAction();
|
||||
}
|
||||
|
||||
void AttachPanel::dropEvent(QDropEvent *event) {
|
||||
QWidget::dropEvent(event);
|
||||
event->acceptProposedAction();
|
||||
|
||||
auto xfrom = adjust_host->adjustView();
|
||||
auto target = this->attachmentTarget();
|
||||
|
||||
if (target != xfrom && active_comp != ActiveArea::NONE) {
|
||||
static_cast<SplitRect *>(xfrom->parentRes())->removeComp(xfrom);
|
||||
adjust_host->objsRelateRebuild();
|
||||
|
||||
auto ptarget = static_cast<SplitRect *>(target->parentRes());
|
||||
auto target_rect = target->outline();
|
||||
|
||||
RectCom *new_split = nullptr;
|
||||
switch (this->active_comp) {
|
||||
case ActiveArea::LEFT: {
|
||||
new_split = new SplitView(xfrom, target, adjust_host->bind());
|
||||
static_cast<SplitView *>(new_split)->setSplitInfo(SplitType::SPLIT_H, target_rect.width() / 2, adjust_host->splitterWidth(), false);
|
||||
} break;
|
||||
case ActiveArea::RIGHT: {
|
||||
new_split = new SplitView(target, xfrom, adjust_host->bind());
|
||||
static_cast<SplitView *>(new_split)->setSplitInfo(SplitType::SPLIT_H, target_rect.width() / 2, adjust_host->splitterWidth(), false);
|
||||
} break;
|
||||
case ActiveArea::TOP: {
|
||||
new_split = new SplitView(xfrom, target, adjust_host->bind());
|
||||
static_cast<SplitView *>(new_split)->setSplitInfo(SplitType::SPLIT_V, target_rect.height() / 2, adjust_host->splitterWidth(), false);
|
||||
} break;
|
||||
case ActiveArea::BOTTOM: {
|
||||
new_split = new SplitView(target, xfrom, adjust_host->bind());
|
||||
static_cast<SplitView *>(new_split)->setSplitInfo(SplitType::SPLIT_V, target_rect.height() / 2, adjust_host->splitterWidth(), false);
|
||||
} break;
|
||||
case ActiveArea::CENTER: {
|
||||
new_split = xfrom;
|
||||
adjust_host->markFreedom(target);
|
||||
} break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
ptarget->replaceComp(new_split, target);
|
||||
new_split->relayout(target_rect);
|
||||
adjust_host->objsRelateRebuild();
|
||||
}
|
||||
|
||||
adjust_host->setAdjustView();
|
||||
this->setVisible(false);
|
||||
}
|
||||
|
||||
std::tuple<QRectF, QRectF, QRectF, QRectF, QRectF> AttachPanel::view_rects() const {
|
||||
auto rect = this->rect();
|
||||
|
||||
auto boder_len = std::min(rect.width() - 4, rect.height() - 4);
|
||||
auto rect_length = std::min(boder_len * 4 / 5, 300);
|
||||
auto rect_height = rect_length / 3;
|
||||
|
||||
auto lt0 = rect.center() - QPoint(rect_height / 2, rect_length / 2);
|
||||
auto lt1 = rect.center() - QPoint(rect_length / 2, rect_height / 2);
|
||||
|
||||
return std::make_tuple(QRectF(lt1 - QPointF(3, 0), QSizeF(rect_height, rect_height)),
|
||||
QRectF(lt1 + QPoint(rect_height * 2 + 3, 0), QSizeF(rect_height, rect_height)),
|
||||
QRectF(lt0 - QPointF(0, 3), QSizeF(rect_height, rect_height)),
|
||||
QRectF(lt0 + QPointF(0, rect_height * 2 + 3), QSizeF(rect_height, rect_height)),
|
||||
QRectF(lt1 + QPointF(rect_height, 0), QSizeF(rect_height, rect_height)));
|
||||
}
|
||||
|
||||
ViewPresent::ViewPresent(QWidget *parent) : QWidget(parent), accept_panel(new AttachPanel(this)) {
|
||||
accept_panel->hide();
|
||||
setMouseTracking(true);
|
||||
}
|
||||
|
||||
ViewPresent::~ViewPresent() { accept_panel->deleteLater(); }
|
||||
|
||||
void ViewPresent::addListener(FreedomViewsListener *lsn) {
|
||||
if (lsn_list.contains(lsn))
|
||||
return;
|
||||
lsn_list << lsn;
|
||||
}
|
||||
|
||||
void ViewPresent::removeListener(FreedomViewsListener *lsn) { lsn_list.removeAll(lsn); }
|
||||
|
||||
void ViewPresent::regist_basepanel(RectCom *it) {
|
||||
if (this->all_func_views.contains(it))
|
||||
return;
|
||||
|
||||
dynamic_cast<BaseView *>(it)->installPerceptionHandle(this);
|
||||
all_func_views << it;
|
||||
}
|
||||
|
||||
void ViewPresent::markFreedom(ViewRes *view) {
|
||||
if (!view)
|
||||
return;
|
||||
|
||||
auto cinst = static_cast<RectCom *>(view);
|
||||
if (!freedom_views.contains(cinst))
|
||||
freedom_views << cinst;
|
||||
|
||||
cinst->bind()->setVisible(false);
|
||||
cinst->setParentRes(nullptr);
|
||||
}
|
||||
|
||||
void ViewPresent::purge(ViewRes *target) {
|
||||
if (!target)
|
||||
return;
|
||||
|
||||
auto cinst = static_cast<RectCom *>(target);
|
||||
if (!all_func_views.contains(cinst))
|
||||
throw new SimpleException<bool>("参数非法", "目标实例不属于本ViewPresent");
|
||||
|
||||
cinst->bind()->setVisible(false);
|
||||
target->setParentRes(nullptr);
|
||||
if (temp_visible_view == cinst)
|
||||
temp_visible_view = nullptr;
|
||||
|
||||
all_func_views.removeAll(cinst);
|
||||
freedom_views.removeAll(cinst);
|
||||
display_members.removeAll(cinst);
|
||||
objsRelateRebuild();
|
||||
|
||||
delete cinst;
|
||||
}
|
||||
|
||||
void ViewPresent::temporaryVisible(RectCom *target) {
|
||||
if (target != nullptr && !this->freedom_views.contains(target))
|
||||
throw new SimpleException<QString>("参数异常", "非闲置视图不可以设置为临时视图");
|
||||
|
||||
if (this->temp_visible_view) {
|
||||
markFreedom(temp_visible_view);
|
||||
}
|
||||
|
||||
temp_visible_view = target;
|
||||
if (temp_visible_view) {
|
||||
temp_visible_view->setParentRes(this);
|
||||
temp_visible_view->bind()->setVisible(true);
|
||||
objsRelateRebuild();
|
||||
} else
|
||||
relayout();
|
||||
}
|
||||
|
||||
void ViewPresent::setAdjustView(RectCom *one) {
|
||||
if (one) {
|
||||
this->adjust_view_temp = one;
|
||||
dynamic_cast<ViewRes *>(adjust_view_temp)->bind()->setVisible(false);
|
||||
dynamic_cast<ViewRes *>(adjust_view_temp)->bind()->repaint();
|
||||
} else {
|
||||
dynamic_cast<ViewRes *>(adjust_view_temp)->bind()->setVisible(true);
|
||||
dynamic_cast<ViewRes *>(adjust_view_temp)->bind()->repaint();
|
||||
this->adjust_view_temp = one;
|
||||
}
|
||||
}
|
||||
|
||||
bool ViewPresent::adjustState() const { return this->adjust_view_temp != nullptr; }
|
||||
|
||||
RectCom *ViewPresent::adjustView() const { return this->adjust_view_temp; }
|
||||
|
||||
QObject *ViewPresent::globalEventFilter() const { return dynamic_cast<QObject *>(const_cast<ViewPresent *>(this)); }
|
||||
|
||||
SplitRect *ViewPresent::createSplit(RectCom *first, RectCom *next, SplitType sp, float pos, float split_width) {
|
||||
auto inst = new SplitView(first, next, this);
|
||||
inst->setSplitInfo(sp, pos, split_width, false);
|
||||
return inst;
|
||||
}
|
||||
|
||||
const QList<RectCom *> ViewPresent::freedomViews() const {
|
||||
QList<RectCom *> ret_list;
|
||||
for (auto &vit : freedom_views)
|
||||
ret_list << vit;
|
||||
|
||||
return ret_list;
|
||||
}
|
||||
|
||||
void ViewPresent::resetEngross(RectCom *view) {
|
||||
for (auto &vit : all_func_views)
|
||||
vit->pRelease();
|
||||
|
||||
temp_visible_view = nullptr;
|
||||
if (display_members.size())
|
||||
display_members.clear();
|
||||
|
||||
if (freedom_views.contains(view))
|
||||
freedom_views.removeAll(view);
|
||||
|
||||
view->setParentRes(this);
|
||||
view->bind()->setVisible(true);
|
||||
display_members << view;
|
||||
|
||||
objsRelateRebuild();
|
||||
}
|
||||
|
||||
bool ViewPresent::eventFilter(QObject *watched, QEvent *event) {
|
||||
auto adjust_state = adjustState();
|
||||
|
||||
if (adjust_state && event->type() == QEvent::DragEnter) {
|
||||
for (auto &v : all_func_views) {
|
||||
if (v->contains((QWidget *)watched)) {
|
||||
auto outline = v->outline();
|
||||
QPoint gpos(v->bind()->mapToGlobal(outline.topLeft().toPoint()));
|
||||
QPoint localpos(mapFromGlobal(gpos));
|
||||
|
||||
accept_panel->raise();
|
||||
accept_panel->setGeometry(QRect(localpos, outline.size().toSize()));
|
||||
accept_panel->setVisible(true);
|
||||
|
||||
accept_panel->bindAttachment(v);
|
||||
event->accept();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (event->type() == QEvent::Drop) {
|
||||
accept_panel->hide();
|
||||
accept_panel->lower();
|
||||
}
|
||||
|
||||
if (this->temp_visible_view && event->type() == QEvent::MouseButtonPress) {
|
||||
if (!temp_visible_view->contains((QWidget *)watched)) {
|
||||
temporaryVisible(nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
return QWidget::eventFilter(watched, event);
|
||||
}
|
||||
|
||||
QWidget *ViewPresent::bind() const { return const_cast<ViewPresent *>(this); }
|
||||
|
||||
bool ViewPresent::contains(QWidget *) const { return false; }
|
||||
|
||||
ViewPresent *ViewPresent::viewPanel() const { return const_cast<ViewPresent *>(this); }
|
||||
|
||||
void ViewPresent::objsRelateRebuild() {
|
||||
setParentRes();
|
||||
|
||||
relayout();
|
||||
update();
|
||||
}
|
||||
|
||||
std::pair<RectCom *, RectCom *> ViewPresent::child() const {
|
||||
RectCom *inst0 = nullptr, *inst1 = nullptr;
|
||||
if (display_members.size() > 1)
|
||||
inst1 = display_members[1];
|
||||
if (display_members.size() > 0)
|
||||
inst0 = display_members[0];
|
||||
|
||||
return std::make_pair(inst0, inst1);
|
||||
}
|
||||
|
||||
void ViewPresent::replaceComp(RectCom *view, RectCom *old) {
|
||||
if (!display_members.contains(old))
|
||||
throw new SimpleException<QString>("参数错误", "指定替换的界面不属于此界面");
|
||||
|
||||
if (display_members.contains(view))
|
||||
return;
|
||||
|
||||
view->setParentRes(this);
|
||||
display_members.replace(display_members.indexOf(old), view);
|
||||
|
||||
objsRelateRebuild();
|
||||
}
|
||||
|
||||
float ViewPresent::splitterWidth() const { return std::get<2>(split_info_store); }
|
||||
|
||||
float ViewPresent::splitterPos() const { return std::get<1>(split_info_store); }
|
||||
|
||||
SplitType ViewPresent::splitType() const { return std::get<0>(split_info_store); }
|
||||
|
||||
void ViewPresent::setSplitInfo(SplitType type, float pos, float width, bool relayout) {
|
||||
this->split_info_store = std::make_tuple(type, pos, width);
|
||||
if (relayout)
|
||||
this->relayout();
|
||||
}
|
||||
|
||||
QRectF ViewPresent::outline() const { return this->rect(); }
|
||||
|
||||
void ViewPresent::relayout(const QRectF &outline) {
|
||||
setGeometry(outline.toRect());
|
||||
relayout();
|
||||
}
|
||||
|
||||
void ViewPresent::pRelease() { throw new SimpleException<bool>("非法操作", "不允许对ViewPanel调用pRelease"); }
|
||||
|
||||
void ViewPresent::pClose() { throw new SimpleException<bool>("非法操作", "不允许对ViewPanel调用pClose"); }
|
||||
|
||||
void ViewPresent::registElement(QWidget *) { throw new SimpleException<bool>("非法操作", "不允许对ViewPanel调用registElement"); }
|
||||
|
||||
void ViewPresent::setParentRes(ViewRes *) {
|
||||
auto pair = child();
|
||||
|
||||
if (pair.first) {
|
||||
pair.first->setParentRes(this);
|
||||
}
|
||||
if (pair.second) {
|
||||
pair.second->setParentRes(this);
|
||||
}
|
||||
if (temp_visible_view) {
|
||||
temp_visible_view->setParentRes(this);
|
||||
}
|
||||
}
|
||||
|
||||
ViewRes *ViewPresent::parentRes() const { return nullptr; }
|
||||
|
||||
void ViewPresent::paintEvent(QPaintEvent *ev) {
|
||||
QWidget::paintEvent(ev);
|
||||
|
||||
if (display_members.size() == 2) {
|
||||
QPainter p(this);
|
||||
auto handle_rect = this->handle_rect();
|
||||
p.fillRect(handle_rect, QBrush(Qt::gray));
|
||||
}
|
||||
|
||||
for (auto &it : display_members) {
|
||||
it->bind()->setVisible(true);
|
||||
it->bind()->update();
|
||||
}
|
||||
|
||||
if (temp_visible_view) {
|
||||
temp_visible_view->bind()->setVisible(true);
|
||||
temp_visible_view->bind()->update();
|
||||
}
|
||||
|
||||
for (auto &it : freedom_views) {
|
||||
if (it == temp_visible_view)
|
||||
return;
|
||||
|
||||
it->bind()->setVisible(false);
|
||||
it->bind()->update();
|
||||
}
|
||||
}
|
||||
|
||||
void ViewPresent::removeComp(RectCom *child_inst) {
|
||||
if (!child_inst)
|
||||
return;
|
||||
|
||||
if (temp_visible_view == child_inst) {
|
||||
temp_visible_view = nullptr;
|
||||
|
||||
freedom_views.removeAll(child_inst);
|
||||
for (auto &lsn : lsn_list)
|
||||
lsn->freedomRemoved(child_inst);
|
||||
} else {
|
||||
if (!display_members.contains(child_inst))
|
||||
throw new SimpleException<QString>("参数非法", "不允许移除隐藏的自由视图");
|
||||
|
||||
display_members.removeAll(child_inst);
|
||||
}
|
||||
|
||||
child_inst->setParentRes(nullptr);
|
||||
objsRelateRebuild();
|
||||
}
|
||||
|
||||
void ViewPresent::resizeEvent(QResizeEvent *ev) {
|
||||
QWidget::resizeEvent(ev);
|
||||
relayout();
|
||||
}
|
||||
void ViewPresent::mousePressEvent(QMouseEvent *event) {
|
||||
QWidget::mousePressEvent(event);
|
||||
|
||||
if (event->button() == Qt::MouseButton::LeftButton) {
|
||||
if (handle_rect().contains(event->pos()))
|
||||
this->press_flags = true;
|
||||
}
|
||||
}
|
||||
void ViewPresent::mouseReleaseEvent(QMouseEvent *event) {
|
||||
QWidget::mouseReleaseEvent(event);
|
||||
|
||||
if (event->button() == Qt::MouseButton::LeftButton) {
|
||||
this->press_flags = false;
|
||||
}
|
||||
}
|
||||
void ViewPresent::mouseMoveEvent(QMouseEvent *event) {
|
||||
QWidget::mouseMoveEvent(event);
|
||||
|
||||
auto drag_rect = handle_rect();
|
||||
if (drag_rect.contains(event->pos())) {
|
||||
if (splitType() == SplitType::SPLIT_H)
|
||||
setCursor(QCursor(Qt::CursorShape::SplitHCursor));
|
||||
else
|
||||
setCursor(QCursor(Qt::CursorShape::SplitVCursor));
|
||||
} else {
|
||||
setCursor(QCursor(Qt::CursorShape::ArrowCursor));
|
||||
}
|
||||
|
||||
if (this->press_flags) {
|
||||
auto pos = this->mapFromGlobal(event->globalPos());
|
||||
auto split_margin = splitterWidth();
|
||||
if (std::get<0>(split_info_store) == SplitType::SPLIT_H) {
|
||||
setSplitInfo(splitType(), pos.x() - split_margin / 2, split_margin, true);
|
||||
} else {
|
||||
setSplitInfo(splitType(), pos.y() - split_margin / 2, split_margin, true);
|
||||
}
|
||||
|
||||
update();
|
||||
}
|
||||
}
|
||||
|
||||
void ViewPresent::relayout() {
|
||||
auto rects = view_rects();
|
||||
|
||||
if (display_members.size() == 2) {
|
||||
display_members[0]->relayout(rects.first.toRect());
|
||||
display_members[1]->relayout(rects.second.toRect());
|
||||
} else if (display_members.size() == 1) {
|
||||
display_members[0]->relayout(this->rect());
|
||||
}
|
||||
|
||||
if (temp_visible_view) {
|
||||
temp_visible_view->relayout(QRectF(QPointF(), QSizeF(300, this->height())));
|
||||
}
|
||||
|
||||
update();
|
||||
}
|
||||
std::pair<QRectF, QRectF> ViewPresent::view_rects() {
|
||||
auto xrect = this->rect();
|
||||
|
||||
auto type = (int)splitType();
|
||||
if (!type) {
|
||||
auto width0 = splitterPos();
|
||||
if (width0 + splitterWidth() > xrect.width())
|
||||
width0 = xrect.width() - splitterWidth();
|
||||
if (width0 < 0)
|
||||
width0 = 0;
|
||||
|
||||
setSplitInfo(splitType(), width0, splitterWidth(), false);
|
||||
|
||||
auto rect0 = QRectF(xrect.topLeft(), QSizeF(width0, xrect.height()));
|
||||
auto rect1 = QRectF(xrect.topLeft() + QPointF(rect0.width() + splitterWidth(), 0),
|
||||
QSizeF(xrect.width() - rect0.width() - splitterWidth(), xrect.height()));
|
||||
return std::make_pair(rect0, rect1);
|
||||
} else {
|
||||
auto height0 = splitterPos();
|
||||
if (height0 + splitterWidth() > xrect.height())
|
||||
height0 = xrect.height() - splitterWidth();
|
||||
if (height0 < 0)
|
||||
height0 = 0;
|
||||
|
||||
setSplitInfo(splitType(), height0, splitterWidth(), false);
|
||||
|
||||
auto rect0 = QRectF(xrect.topLeft(), QSizeF(xrect.width(), height0));
|
||||
auto rect1 = QRectF(xrect.topLeft() + QPointF(0, rect0.height() + splitterWidth()),
|
||||
QSizeF(xrect.width(), xrect.height() - splitterWidth() - rect0.height()));
|
||||
return std::make_pair(rect0, rect1);
|
||||
}
|
||||
}
|
||||
QRectF ViewPresent::handle_rect() const {
|
||||
QRectF rect;
|
||||
|
||||
auto width_middle = splitterWidth() - 2;
|
||||
if (splitType() == SplitType::SPLIT_H) {
|
||||
rect = QRectF(splitterPos() + 1, 0, width_middle, outline().height());
|
||||
} else {
|
||||
rect = QRectF(0, splitterPos() + 1, outline().width(), width_middle);
|
||||
}
|
||||
|
||||
return rect;
|
||||
}
|
||||
|
||||
RectCom *ViewPresent::create_base_panel(QWidget *bview, const QString &title, bool empty_flag) { return new BaseView(title, bview, empty_flag); }
|
||||
|
|
@ -0,0 +1,227 @@
|
|||
#ifndef SPLITPANEL_H
|
||||
#define SPLITPANEL_H
|
||||
|
||||
#include "splitpanel_global.h"
|
||||
|
||||
#include <QWidget>
|
||||
#include <libConfig.h>
|
||||
|
||||
namespace SplitFrame {
|
||||
class ViewPresent;
|
||||
class AttachPanel;
|
||||
|
||||
/**
|
||||
* @brief 面板分割方向
|
||||
*/
|
||||
enum class SplitType { SPLIT_H = 0, SPLIT_V = 1 };
|
||||
/**
|
||||
* @brief 临时视图贴附方位
|
||||
*/
|
||||
enum class DockType { LEFT = 0, RIGHT, TOP, BOTTOM };
|
||||
|
||||
class ViewRes {
|
||||
public:
|
||||
virtual ~ViewRes() = default;
|
||||
|
||||
virtual void registElement(QWidget *child) = 0;
|
||||
|
||||
virtual QWidget *bind() const = 0;
|
||||
virtual ViewPresent *viewPanel() const = 0;
|
||||
/**
|
||||
* @brief 关闭视图显示,转换视图为自由(闲置)状态
|
||||
*/
|
||||
virtual void pRelease() = 0;
|
||||
/**
|
||||
* @brief 回收视图,清除内存实例
|
||||
*/
|
||||
virtual void pClose() = 0;
|
||||
|
||||
virtual void setParentRes(ViewRes *inst) = 0;
|
||||
virtual ViewRes *parentRes() const = 0;
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief 资源管理接口
|
||||
*/
|
||||
class ResManager {
|
||||
public:
|
||||
virtual ~ResManager() = default;
|
||||
|
||||
virtual ViewPresent *viewPanel() const = 0;
|
||||
virtual void objsRelateRebuild() = 0;
|
||||
virtual void markFreedom(ViewRes *view) = 0;
|
||||
virtual void purge(ViewRes *target) = 0;
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief 视图展示接口
|
||||
*/
|
||||
class RectCom : public ViewRes {
|
||||
public:
|
||||
virtual ~RectCom() = default;
|
||||
|
||||
virtual bool contains(QWidget *ptr) const = 0;
|
||||
|
||||
virtual QRectF outline() const = 0;
|
||||
virtual void relayout(const QRectF &outline) = 0;
|
||||
|
||||
virtual void paintEvent(QPaintEvent *ev) = 0;
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief 功能视图基板
|
||||
*/
|
||||
template <class FnVType, bool _blank> class FnWrap : public QWidget {
|
||||
private:
|
||||
static bool type_blank_blank;
|
||||
ViewPresent *const host_store;
|
||||
|
||||
public:
|
||||
explicit FnWrap(ViewPresent *bind, QWidget *parent = nullptr) : QWidget(parent), host_store(bind) {}
|
||||
virtual ~FnWrap() { this->closeProcess(); }
|
||||
|
||||
ViewPresent *bindHost() const { return host_store; }
|
||||
|
||||
virtual void closeProcess(){};
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief 分裂视图规划和约束组件
|
||||
*/
|
||||
class SplitRect : public RectCom {
|
||||
public:
|
||||
virtual ~SplitRect() = default;
|
||||
|
||||
virtual std::pair<RectCom *, RectCom *> child() const = 0;
|
||||
virtual void removeComp(RectCom *child) = 0;
|
||||
virtual void replaceComp(RectCom *view, RectCom *old) = 0;
|
||||
virtual float splitterWidth() const = 0;
|
||||
virtual float splitterPos() const = 0;
|
||||
virtual SplitType splitType() const = 0;
|
||||
virtual void setSplitInfo(SplitType type, float pos, float width, bool relayout = true) = 0;
|
||||
};
|
||||
|
||||
class FreedomViewsListener {
|
||||
public:
|
||||
virtual ~FreedomViewsListener() = default;
|
||||
/**
|
||||
* @brief 闲置视图增加
|
||||
* @param ins
|
||||
*/
|
||||
virtual void freedomAppended(RectCom *ins, const QIcon &icon, const QString &title) = 0;
|
||||
/**
|
||||
* @brief 闲置视图减少
|
||||
* @param ins
|
||||
*/
|
||||
virtual void freedomRemoved(RectCom *ins) = 0;
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief 分裂视图呈现组件
|
||||
*/
|
||||
class SPLITVIEW_EXPORT ViewPresent : private QWidget, public SplitRect, public ResManager {
|
||||
public:
|
||||
ViewPresent(QWidget *parent = nullptr);
|
||||
virtual ~ViewPresent();
|
||||
|
||||
void addListener(FreedomViewsListener *lsn);
|
||||
void removeListener(FreedomViewsListener *lsn);
|
||||
//======================================================
|
||||
const QList<RectCom *> freedomViews() const;
|
||||
void resetEngross(RectCom *view = nullptr);
|
||||
void temporaryVisible(RectCom *target = nullptr);
|
||||
|
||||
QObject *globalEventFilter() const;
|
||||
|
||||
/**
|
||||
* @brief 切换视图调整状态
|
||||
* @param state 状态开关
|
||||
*/
|
||||
void setAdjustView(RectCom *one = nullptr);
|
||||
bool adjustState() const;
|
||||
RectCom *adjustView() const;
|
||||
|
||||
SplitRect *createSplit(RectCom *first, RectCom *next, SplitType sp, float pos = 20, float split_width = 8);
|
||||
|
||||
template <class FnView, bool _blank> RectCom *appendView(FnWrap<FnView, _blank> *view_inst, const QString &title) {
|
||||
if (view_inst->bindHost() != this)
|
||||
throw new Config::SimpleException<QString>("非法操作", "不允许混用不同ViewPresent的成员");
|
||||
|
||||
auto panel = create_base_panel(view_inst, title, _blank);
|
||||
regist_basepanel(panel);
|
||||
|
||||
return panel;
|
||||
}
|
||||
|
||||
// RectCom interface
|
||||
public:
|
||||
virtual QWidget *bind() const override;
|
||||
virtual bool contains(QWidget *) const override;
|
||||
virtual QRectF outline() const override;
|
||||
virtual void relayout(const QRectF &outline) override;
|
||||
|
||||
// ViewRes interface
|
||||
public:
|
||||
virtual ViewPresent *viewPanel() const override;
|
||||
virtual void setParentRes(ViewRes *p = nullptr) override;
|
||||
virtual ViewRes *parentRes() const override;
|
||||
virtual void pRelease() override;
|
||||
virtual void pClose() override;
|
||||
virtual void registElement(QWidget *) override;
|
||||
|
||||
// ResManager interface
|
||||
public:
|
||||
virtual void objsRelateRebuild() override;
|
||||
virtual void markFreedom(ViewRes *view) override;
|
||||
virtual void purge(ViewRes *target) override;
|
||||
|
||||
// SplitRect interface
|
||||
public:
|
||||
virtual std::pair<RectCom *, RectCom *> child() const override;
|
||||
virtual void removeComp(RectCom *child) override;
|
||||
virtual void replaceComp(RectCom *view, RectCom *old) override;
|
||||
virtual float splitterWidth() const override;
|
||||
virtual float splitterPos() const override;
|
||||
virtual SplitType splitType() const override;
|
||||
virtual void setSplitInfo(SplitType type, float pos, float width, bool relayout) override;
|
||||
|
||||
// QObject interface
|
||||
public:
|
||||
virtual bool eventFilter(QObject *watched, QEvent *event) override;
|
||||
|
||||
// QWidget interface
|
||||
protected:
|
||||
virtual void paintEvent(QPaintEvent *ev) override;
|
||||
virtual void resizeEvent(QResizeEvent *ev) override;
|
||||
virtual void mousePressEvent(QMouseEvent *event) override;
|
||||
virtual void mouseReleaseEvent(QMouseEvent *event) override;
|
||||
virtual void mouseMoveEvent(QMouseEvent *event) override;
|
||||
|
||||
private:
|
||||
QList<FreedomViewsListener *> lsn_list;
|
||||
AttachPanel *const accept_panel;
|
||||
|
||||
// 拖拽属性===================================
|
||||
RectCom *adjust_view_temp; // 拖拽中转
|
||||
bool press_flags = false; // 空间调整标志
|
||||
// 方向,splitter位置,splitter宽度
|
||||
std::tuple<SplitType, float, float> split_info_store = std::make_tuple(SplitType::SPLIT_H, 200, 8);
|
||||
|
||||
// 视图展现堆栈===============================
|
||||
QList<RectCom *> all_func_views;
|
||||
QList<RectCom *> freedom_views;
|
||||
QList<RectCom *> display_members;
|
||||
|
||||
RectCom *temp_visible_view = nullptr;
|
||||
|
||||
std::pair<QRectF, QRectF> view_rects();
|
||||
QRectF handle_rect() const;
|
||||
|
||||
virtual void relayout();
|
||||
RectCom *create_base_panel(QWidget *bview, const QString &title, bool empty_flag = false);
|
||||
void regist_basepanel(RectCom *it);
|
||||
};
|
||||
|
||||
} // namespace SplitFrame
|
||||
|
||||
#endif // SPLITPANEL_H
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
#ifndef SPLITVIEW_GLOBAL_H
|
||||
#define SPLITVIEW_GLOBAL_H
|
||||
#ifndef SPLITPANEL_GLOBAL_H
|
||||
#define SPLITPANEL_GLOBAL_H
|
||||
|
||||
#include <QtCore/qglobal.h>
|
||||
|
||||
|
|
@ -9,4 +9,4 @@
|
|||
# define SPLITVIEW_EXPORT Q_DECL_IMPORT
|
||||
#endif
|
||||
|
||||
#endif // SPLITVIEW_GLOBAL_H
|
||||
#endif // SPLITPANEL_GLOBAL_H
|
||||
|
|
@ -0,0 +1,231 @@
|
|||
#include "splitview.h"
|
||||
#include "baseview.h"
|
||||
#include <QPainter>
|
||||
#include <libConfig.h>
|
||||
|
||||
using namespace SplitFrame;
|
||||
using namespace Config;
|
||||
|
||||
SplitView::SplitView(RectCom *first, RectCom *next, QWidget *parent) : QWidget(parent) {
|
||||
this->split_info_value = std::make_tuple(SplitType::SPLIT_H, 100, 7);
|
||||
this->child_store << first;
|
||||
this->child_store << next;
|
||||
|
||||
first->setParentRes(this);
|
||||
next->setParentRes(this);
|
||||
|
||||
setMouseTracking(true);
|
||||
}
|
||||
|
||||
SplitFrame::SplitView::~SplitView() {
|
||||
for (auto &it : children()) {
|
||||
auto widget = qobject_cast<QWidget *>(it);
|
||||
if (widget) {
|
||||
widget->setParent(nullptr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
QWidget *SplitView::bind() const { return const_cast<SplitView *>(this); }
|
||||
|
||||
ViewPresent *SplitView::viewPanel() const { return parentRes()->viewPanel(); }
|
||||
|
||||
ViewRes *SplitView::parentRes() const { return parent_inst; }
|
||||
|
||||
void SplitView::setParentRes(ViewRes *pinst) {
|
||||
this->parent_inst = pinst;
|
||||
QWidget::setParent(pinst != nullptr ? pinst->bind() : nullptr);
|
||||
|
||||
for (auto &c : child_store)
|
||||
c->setParentRes(this);
|
||||
}
|
||||
|
||||
void SplitView::registElement(QWidget *) { throw new SimpleException<bool>("非法操作", "SplitView当前不支持registElement操作"); }
|
||||
|
||||
void SplitView::pRelease() { throw new SimpleException<bool>("非法操作", "SplitView当前不支持pRelease操作"); }
|
||||
|
||||
void SplitView::pClose() { throw new SimpleException<bool>("非法操作", "SplitView当前不支持pClose操作"); }
|
||||
|
||||
std::pair<RectCom *, RectCom *> SplitView::child() const { return std::make_pair(child_store[0], child_store[1]); }
|
||||
|
||||
float SplitView::splitterWidth() const { return std::get<2>(split_info_value); }
|
||||
|
||||
float SplitView::splitterPos() const { return std::get<1>(split_info_value); }
|
||||
|
||||
SplitType SplitView::splitType() const { return std::get<0>(split_info_value); }
|
||||
|
||||
void SplitView::setSplitInfo(SplitType type, float pos, float width, bool relayout) {
|
||||
this->split_info_value = std::make_tuple(type, pos, width);
|
||||
if (relayout)
|
||||
this->relayout();
|
||||
}
|
||||
|
||||
void SplitView::replaceComp(RectCom *view, RectCom *old) {
|
||||
if (!child_store.contains(old) || child_store.contains(view)) {
|
||||
throw new SimpleException<QString>("参数非法", "要替换的视图不属于本构件,或者新视图本就属于本构件");
|
||||
}
|
||||
|
||||
auto index = child_store.indexOf(old);
|
||||
child_store.replace(index, view);
|
||||
view->setParentRes(this);
|
||||
|
||||
viewPanel()->objsRelateRebuild();
|
||||
}
|
||||
|
||||
QRectF SplitView::outline() const { return this->rect(); }
|
||||
|
||||
void SplitView::relayout(const QRectF &outlinex) {
|
||||
this->setGeometry(outlinex.toRect());
|
||||
this->relayout();
|
||||
}
|
||||
|
||||
void SplitView::removeComp(RectCom *child_inst) {
|
||||
auto pinst = parentRes();
|
||||
auto prev_childs = child();
|
||||
|
||||
prev_childs.first->setParentRes(nullptr);
|
||||
prev_childs.second->setParentRes(nullptr);
|
||||
this->child_store.clear();
|
||||
this->setParentRes(nullptr);
|
||||
|
||||
auto sib = prev_childs.first;
|
||||
if (child_inst == sib)
|
||||
sib = prev_childs.second;
|
||||
|
||||
static_cast<SplitRect *>(pinst)->replaceComp(sib, this);
|
||||
delete this;
|
||||
}
|
||||
|
||||
void SplitView::paintEvent(QPaintEvent *ev) {
|
||||
QWidget::paintEvent(ev);
|
||||
|
||||
QPainter p(this);
|
||||
QRectF rect = handle_rect();
|
||||
p.fillRect(rect, QBrush(Qt::gray, Qt::BrushStyle::SolidPattern));
|
||||
|
||||
for (auto &it : child_store) {
|
||||
it->bind()->setVisible(true);
|
||||
it->bind()->update();
|
||||
}
|
||||
}
|
||||
|
||||
bool SplitView::contains(QWidget *) const { return false; }
|
||||
|
||||
void SplitView::resizeEvent(QResizeEvent *ev) {
|
||||
QWidget::resizeEvent(ev);
|
||||
relayout();
|
||||
}
|
||||
|
||||
void SplitView::mousePressEvent(QMouseEvent *event) {
|
||||
QWidget::mousePressEvent(event);
|
||||
|
||||
if (event->button() == Qt::MouseButton::LeftButton) {
|
||||
if (handle_rect().contains(event->pos()))
|
||||
this->press_flags = true;
|
||||
}
|
||||
}
|
||||
|
||||
void SplitView::mouseReleaseEvent(QMouseEvent *event) {
|
||||
QWidget::mouseReleaseEvent(event);
|
||||
|
||||
if (event->button() == Qt::MouseButton::LeftButton) {
|
||||
this->press_flags = false;
|
||||
}
|
||||
}
|
||||
|
||||
void SplitView::mouseMoveEvent(QMouseEvent *event) {
|
||||
QWidget::mouseMoveEvent(event);
|
||||
|
||||
auto drag_rect = handle_rect() + QMargins(2, 2, 2, 2);
|
||||
if (drag_rect.contains(event->pos())) {
|
||||
if (splitType() == SplitType::SPLIT_H)
|
||||
setCursor(QCursor(Qt::CursorShape::SplitHCursor));
|
||||
else
|
||||
setCursor(QCursor(Qt::CursorShape::SplitVCursor));
|
||||
|
||||
drags_flag = true;
|
||||
} else {
|
||||
setCursor(QCursor(Qt::CursorShape::ArrowCursor));
|
||||
}
|
||||
|
||||
if (this->press_flags) {
|
||||
auto pos = this->mapFromGlobal(event->globalPos());
|
||||
auto split_margin = splitterWidth();
|
||||
if (std::get<0>(split_info_value) == SplitType::SPLIT_H) {
|
||||
setSplitInfo(splitType(), pos.x() - split_margin / 2, split_margin, true);
|
||||
} else {
|
||||
setSplitInfo(splitType(), pos.y() - split_margin / 2, split_margin, true);
|
||||
}
|
||||
update();
|
||||
}
|
||||
}
|
||||
|
||||
bool SplitView::eventFilter(QObject *watched, QEvent *event) {
|
||||
if (watched != this && this->drags_flag && event->type() == QEvent::MouseMove) {
|
||||
auto x = static_cast<QMouseEvent *>(event);
|
||||
auto pos = mapFromGlobal(x->globalPos());
|
||||
if (!handle_rect().contains(pos)) {
|
||||
setCursor(QCursor(Qt::CursorShape::ArrowCursor));
|
||||
this->drags_flag = false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
return QWidget::eventFilter(watched, event);
|
||||
}
|
||||
|
||||
void SplitView::relayout() {
|
||||
auto rects = view_rects();
|
||||
auto pair = child();
|
||||
|
||||
pair.first->relayout(std::get<0>(rects));
|
||||
pair.second->relayout(std::get<1>(rects));
|
||||
|
||||
update();
|
||||
}
|
||||
|
||||
std::pair<QRectF, QRectF> SplitView::view_rects() {
|
||||
auto xrect = this->rect();
|
||||
|
||||
auto type = (int)splitType();
|
||||
if (!type) {
|
||||
auto width0 = splitterPos();
|
||||
if (width0 + splitterWidth() > xrect.width())
|
||||
width0 = xrect.width() - splitterWidth();
|
||||
if (width0 < 0)
|
||||
width0 = 0;
|
||||
|
||||
setSplitInfo(splitType(), width0, splitterWidth(), false);
|
||||
|
||||
auto rect0 = QRectF(xrect.topLeft(), QSizeF(width0, xrect.height()));
|
||||
auto rect1 = QRectF(xrect.topLeft() + QPointF(rect0.width() + splitterWidth(), 0),
|
||||
QSizeF(xrect.width() - rect0.width() - splitterWidth(), xrect.height()));
|
||||
return std::make_pair(rect0, rect1);
|
||||
} else {
|
||||
auto height0 = splitterPos();
|
||||
if (height0 + splitterWidth() > xrect.height())
|
||||
height0 = xrect.height() - splitterWidth();
|
||||
if (height0 < 0)
|
||||
height0 = 0;
|
||||
|
||||
setSplitInfo(splitType(), height0, splitterWidth(), false);
|
||||
|
||||
auto rect0 = QRectF(xrect.topLeft(), QSizeF(xrect.width(), height0));
|
||||
auto rect1 = QRectF(xrect.topLeft() + QPointF(0, rect0.height() + splitterWidth()),
|
||||
QSizeF(xrect.width(), xrect.height() - splitterWidth() - rect0.height()));
|
||||
return std::make_pair(rect0, rect1);
|
||||
}
|
||||
}
|
||||
|
||||
QRectF SplitView::handle_rect() const {
|
||||
QRectF rect;
|
||||
|
||||
auto width_middle = splitterWidth() - 2;
|
||||
if (splitType() == SplitType::SPLIT_H) {
|
||||
rect = QRectF(splitterPos() + 1, 0, width_middle, outline().height());
|
||||
} else {
|
||||
rect = QRectF(0, splitterPos() + 1, outline().width(), width_middle);
|
||||
}
|
||||
|
||||
return rect;
|
||||
}
|
||||
|
|
@ -0,0 +1,69 @@
|
|||
#ifndef SPLITVIEW_H
|
||||
#define SPLITVIEW_H
|
||||
|
||||
#include "splitpanel.h"
|
||||
|
||||
namespace SplitFrame {
|
||||
|
||||
/**
|
||||
* @brief 分割视图
|
||||
*/
|
||||
class SPLITVIEW_EXPORT SplitView : private QWidget, public SplitRect {
|
||||
|
||||
public:
|
||||
SplitView(RectCom *first, RectCom *next, QWidget *parent = nullptr);
|
||||
virtual ~SplitView();
|
||||
|
||||
// ViewRes interface
|
||||
public:
|
||||
virtual QWidget *bind() const override;
|
||||
virtual ViewPresent *viewPanel() const override;
|
||||
virtual void setParentRes(ViewRes *inst) override;
|
||||
virtual ViewRes *parentRes() const override;
|
||||
virtual void registElement(QWidget *child) override;
|
||||
virtual void pRelease() override;
|
||||
virtual void pClose() override;
|
||||
|
||||
// RectCom interface
|
||||
public:
|
||||
virtual QRectF outline() const override;
|
||||
virtual void relayout(const QRectF &outline) override;
|
||||
virtual void paintEvent(QPaintEvent *ev) override;
|
||||
virtual bool contains(QWidget *) const override;
|
||||
|
||||
// SplitRect interface
|
||||
public:
|
||||
virtual std::pair<RectCom *, RectCom *> child() const override;
|
||||
virtual void removeComp(RectCom *child) override;
|
||||
virtual void replaceComp(RectCom *view, RectCom *old) override;
|
||||
virtual float splitterWidth() const override;
|
||||
virtual float splitterPos() const override;
|
||||
virtual SplitType splitType() const override;
|
||||
virtual void setSplitInfo(SplitType type, float pos, float width, bool relayout) override;
|
||||
|
||||
// QObject interface
|
||||
public:
|
||||
virtual bool eventFilter(QObject *watched, QEvent *event) override;
|
||||
|
||||
// QWidget interface
|
||||
protected:
|
||||
virtual void mousePressEvent(QMouseEvent *event) override;
|
||||
virtual void mouseReleaseEvent(QMouseEvent *event) override;
|
||||
virtual void mouseMoveEvent(QMouseEvent *event) override;
|
||||
virtual void resizeEvent(QResizeEvent *event) override;
|
||||
|
||||
private:
|
||||
ViewRes *parent_inst;
|
||||
QList<RectCom *> child_store;
|
||||
// type, pos, width
|
||||
std::tuple<SplitType, float, float> split_info_value;
|
||||
bool press_flags = false, drags_flag = false;
|
||||
|
||||
virtual void relayout();
|
||||
std::pair<QRectF, QRectF> view_rects();
|
||||
QRectF handle_rect() const;
|
||||
};
|
||||
|
||||
} // namespace SplitFrame
|
||||
|
||||
#endif // SPLITVIEW_H
|
||||
|
|
@ -9,6 +9,8 @@
|
|||
#include <QPushButton>
|
||||
#include <QStyle>
|
||||
#include <QToolBar>
|
||||
#include <baseview.h>
|
||||
#include <splitpanel.h>
|
||||
#include <splitview.h>
|
||||
|
||||
using namespace SplitFrame;
|
||||
|
|
@ -16,14 +18,6 @@ using namespace SplitFrame;
|
|||
int main(int argc, char *argv[]) {
|
||||
QApplication a(argc, argv);
|
||||
|
||||
// auto z = new QWidget();
|
||||
|
||||
// auto v = new XWidget();
|
||||
// v->setParent(z);
|
||||
// v->setGeometry(0, 50, 200, 100);
|
||||
|
||||
// z->show();
|
||||
|
||||
auto win = new QMainWindow();
|
||||
win->setMinimumSize(800, 600);
|
||||
win->menuBar()->addMenu("文件");
|
||||
|
|
@ -31,45 +25,34 @@ int main(int argc, char *argv[]) {
|
|||
win->addToolBar(Qt::ToolBarArea::LeftToolBarArea, tbar);
|
||||
auto b = tbar->addAction("添加");
|
||||
|
||||
auto aview = new BaseView("hello", new QWidget);
|
||||
auto bview = new BaseView("world", new QWidget);
|
||||
auto cview = new BaseView("everyone", new QWidget);
|
||||
auto dview = new BaseView("forth", new XWidget);
|
||||
|
||||
auto conv0 = new SplitView(aview, bview);
|
||||
conv0->setSplitInfo(SplitType::SPLIT_V, 100, 8, true);
|
||||
auto conv = new ViewPresent();
|
||||
win->setCentralWidget(conv);
|
||||
conv->resetViews(conv0, cview);
|
||||
auto aview = new XWidget(conv, Qt::black);
|
||||
auto bview = new XWidget(conv, Qt::green);
|
||||
auto cview = new XWidget(conv, Qt::yellow);
|
||||
auto dview = new YWidget(conv);
|
||||
|
||||
conv->registViewComp(aview);
|
||||
conv->registViewComp(bview);
|
||||
conv->registViewComp(cview);
|
||||
conv->registViewComp(dview);
|
||||
conv->markFreedom(dview);
|
||||
auto rect0 = conv->appendView(aview, "hello0");
|
||||
auto rect1 = conv->appendView(bview, "hello1");
|
||||
auto rect2 = conv->appendView(cview, "hello2");
|
||||
auto rect3 = conv->appendView(dview, "hello3");
|
||||
conv->markFreedom(rect0);
|
||||
conv->markFreedom(rect1);
|
||||
conv->markFreedom(rect2);
|
||||
conv->markFreedom(rect3);
|
||||
|
||||
conv->objsRelateRebuild();
|
||||
conv->resetEngross(static_cast<RectCom *>(rect3));
|
||||
|
||||
win->setCentralWidget(conv->bind());
|
||||
|
||||
b->setCheckable(true);
|
||||
win->connect(b, &QAction::triggered, [=](bool v) {
|
||||
if (v)
|
||||
conv->setTempVisible(dview);
|
||||
else
|
||||
conv->setTempVisible(nullptr);
|
||||
auto items = conv->freedomViews();
|
||||
if (items.size()) {
|
||||
conv->temporaryVisible(items.last());
|
||||
}
|
||||
});
|
||||
|
||||
win->show();
|
||||
|
||||
// auto w = new QWidget();
|
||||
// QLabel w0, w1;
|
||||
// w0.setPixmap(a.style()->standardIcon(QStyle::StandardPixmap::SP_ArrowUp).pixmap(QSize(20, 20)));
|
||||
// w1.setText("hello");
|
||||
// auto v = new QHBoxLayout(w);
|
||||
// v->setMargin(0);
|
||||
// v->setSpacing(1);
|
||||
// v->addWidget(&w0, 0);
|
||||
// v->addWidget(&w1, 1);
|
||||
// w->show();
|
||||
|
||||
return a.exec();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,11 @@ CONFIG -= app_bundle
|
|||
# In order to do so, uncomment the following line.
|
||||
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
||||
|
||||
msvc{
|
||||
QMAKE_CFLAGS += /utf-8
|
||||
QMAKE_CXXFLAGS += /utf-8
|
||||
}
|
||||
|
||||
SOURCES += \
|
||||
main.cpp \
|
||||
unnnn.cpp
|
||||
|
|
@ -21,12 +26,12 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin
|
|||
HEADERS += \
|
||||
unnnn.h
|
||||
|
||||
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../SplitView/release/ -lSplitView
|
||||
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../SplitView/debug/ -lSplitView
|
||||
else:unix: LIBS += -L$$OUT_PWD/../SplitView/ -lSplitView
|
||||
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../libSplitView/release/ -llibSplitView
|
||||
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../libSplitView/debug/ -llibSplitView
|
||||
else:unix: LIBS += -L$$OUT_PWD/../libSplitView/ -llibSplitView
|
||||
|
||||
INCLUDEPATH += $$PWD/../SplitView
|
||||
DEPENDPATH += $$PWD/../SplitView
|
||||
INCLUDEPATH += $$PWD/../libSplitView
|
||||
DEPENDPATH += $$PWD/../libSplitView
|
||||
|
||||
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../GenericConsole/release/ -lGenericConsole
|
||||
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../GenericConsole/debug/ -lGenericConsole
|
||||
|
|
@ -34,3 +39,10 @@ else:unix: LIBS += -L$$OUT_PWD/../GenericConsole/ -lGenericConsole
|
|||
|
||||
INCLUDEPATH += $$PWD/../GenericConsole
|
||||
DEPENDPATH += $$PWD/../GenericConsole
|
||||
|
||||
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../libConfig/release/ -llibConfig
|
||||
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../libConfig/debug/ -llibConfig
|
||||
else:unix: LIBS += -L$$OUT_PWD/../libConfig/ -llibConfig
|
||||
|
||||
INCLUDEPATH += $$PWD/../libConfig
|
||||
DEPENDPATH += $$PWD/../libConfig
|
||||
|
|
|
|||
|
|
@ -1,193 +0,0 @@
|
|||
<?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>{2A348B24-97E4-3DE1-84FD-5A95F92CEADE}</ProjectGuid>
|
||||
<RootNamespace>u_test</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>u_test</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>u_test</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>$(SolutionDir)x64\Debug</OutDir>
|
||||
<IntDir>debug\</IntDir>
|
||||
<TargetName>u_test</TargetName>
|
||||
<IgnoreImportLibrary>true</IgnoreImportLibrary>
|
||||
<LibraryPath>$(SolutionDir)x64\Debug;$(LibraryPath)</LibraryPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<OutDir>release\</OutDir>
|
||||
<IntDir>release\</IntDir>
|
||||
<TargetName>u_test</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;xml;gui;widgets</QtModules>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<QtInstall>5.12.11_msvc2017_64</QtInstall>
|
||||
<QtModules>core;xml;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;.;..\SplitView;..\GenericConsole;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>_CONSOLE;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>SplitView.lib;GenericConsole.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>D:\Projects\Cpp\QtNovelDesc\SplitView\release;D:\Projects\Cpp\QtNovelDesc\GenericConsole\release;%(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)\u_test.exe</OutputFile>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
</Link>
|
||||
<Midl>
|
||||
<DefaultCharType>Unsigned</DefaultCharType>
|
||||
<EnableErrorChecks>None</EnableErrorChecks>
|
||||
<WarningLevel>0</WarningLevel>
|
||||
</Midl>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_CONSOLE;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;QT_NO_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>GeneratedFiles\$(ConfigurationName);GeneratedFiles;.;..\SplitView;..\GenericConsole;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>_CONSOLE;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>SplitView.lib;D:\Projects\Cpp\QtNovelDesc\GenericConsole\debug\GenericConsole.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>D:\Projects\Cpp\QtNovelDesc\SplitView\debug;D:\Projects\Cpp\QtNovelDesc\GenericConsole\debug;%(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)\u_test.exe</OutputFile>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
</Link>
|
||||
<Midl>
|
||||
<DefaultCharType>Unsigned</DefaultCharType>
|
||||
<EnableErrorChecks>None</EnableErrorChecks>
|
||||
<WarningLevel>0</WarningLevel>
|
||||
</Midl>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_CONSOLE;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="main.cpp" />
|
||||
<ClCompile Include="unnnn.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="unnnn.h" />
|
||||
</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>NUL >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>NUL >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>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Condition="Exists('$(QtMsBuild)\qt.targets')">
|
||||
<Import Project="$(QtMsBuild)\qt.targets" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="ExtensionTargets" />
|
||||
</Project>
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
<?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="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>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="main.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="unnnn.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="unnnn.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</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>
|
||||
</Project>
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup />
|
||||
</Project>
|
||||
|
|
@ -1,10 +1,22 @@
|
|||
#include "unnnn.h"
|
||||
|
||||
#include <QPainter>
|
||||
using namespace SplitFrame;
|
||||
|
||||
XWidget::XWidget(QWidget *parent) : QWidget(parent) {}
|
||||
XWidget::XWidget(ViewPresent *host, Qt::GlobalColor c, QWidget *parent) : FnWrap<XWidget, false>(host, parent), c_store(c) {}
|
||||
|
||||
void XWidget::paintEvent(QPaintEvent *ev) {
|
||||
QPainter p(this);
|
||||
p.fillRect(this->rect(), Qt::red);
|
||||
p.fillRect(this->rect(), c_store);
|
||||
}
|
||||
|
||||
void XWidget::closeProcess() {}
|
||||
|
||||
YWidget::YWidget(ViewPresent *host, QWidget *parent) : FnWrap<XWidget, true>(host, parent) {}
|
||||
|
||||
void YWidget::paintEvent(QPaintEvent *ev) {
|
||||
QPainter p(this);
|
||||
p.fillRect(this->rect(), Qt::blue);
|
||||
}
|
||||
|
||||
void YWidget::closeProcess() {}
|
||||
|
|
|
|||
|
|
@ -3,11 +3,28 @@
|
|||
|
||||
#include <QString>
|
||||
#include <QWidget>
|
||||
#include <splitpanel.h>
|
||||
|
||||
class XWidget : public QWidget {
|
||||
class XWidget : public SplitFrame::FnWrap<XWidget, false> {
|
||||
public:
|
||||
XWidget(QWidget *parent = nullptr);
|
||||
virtual void paintEvent(QPaintEvent *ev);
|
||||
XWidget(SplitFrame::ViewPresent *host, Qt::GlobalColor c, QWidget *parent = nullptr);
|
||||
virtual void paintEvent(QPaintEvent *ev) override;
|
||||
|
||||
// FnWrap interface
|
||||
public:
|
||||
virtual void closeProcess() override;
|
||||
|
||||
private:
|
||||
Qt::GlobalColor c_store;
|
||||
};
|
||||
|
||||
class YWidget : public SplitFrame::FnWrap<XWidget, true> {
|
||||
public:
|
||||
YWidget(SplitFrame::ViewPresent *host, QWidget *parent = nullptr);
|
||||
virtual void paintEvent(QPaintEvent *ev) override;
|
||||
// FnWrap interface
|
||||
public:
|
||||
virtual void closeProcess() override;
|
||||
};
|
||||
|
||||
#endif // UNNNN_H
|
||||
|
|
|
|||
Loading…
Reference in New Issue