mirror of
https://bitbucket.org/mfeemster/fractorium.git
synced 2025-01-21 21:20:07 -05:00
Merge branch 'master' into travis
This commit is contained in:
commit
e81dfc3000
@ -343,6 +343,7 @@ xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\flam3-palettes.xml" "$(OutDir)"</
|
|||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='ReleaseNvidia|x64'">Create</PrecompiledHeader>
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='ReleaseNvidia|x64'">Create</PrecompiledHeader>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\Source\Fractorium\VariationsDialog.cpp" />
|
||||||
<ClCompile Include="GeneratedFiles\Debug\moc_AboutDialog.cpp">
|
<ClCompile Include="GeneratedFiles\Debug\moc_AboutDialog.cpp">
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseNvidia|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseNvidia|Win32'">true</ExcludedFromBuild>
|
||||||
@ -421,6 +422,12 @@ xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\flam3-palettes.xml" "$(OutDir)"</
|
|||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseNvidia|x64'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseNvidia|x64'">true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="GeneratedFiles\Debug\moc_VariationsDialog.cpp">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseNvidia|Win32'">true</ExcludedFromBuild>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseNvidia|x64'">true</ExcludedFromBuild>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="GeneratedFiles\qrc_Fractorium.cpp">
|
<ClCompile Include="GeneratedFiles\qrc_Fractorium.cpp">
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
@ -513,6 +520,12 @@ xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\flam3-palettes.xml" "$(OutDir)"</
|
|||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="GeneratedFiles\ReleaseNvidia\moc_VariationsDialog.cpp">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="GeneratedFiles\Release\moc_AboutDialog.cpp">
|
<ClCompile Include="GeneratedFiles\Release\moc_AboutDialog.cpp">
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseNvidia|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseNvidia|Win32'">true</ExcludedFromBuild>
|
||||||
@ -591,8 +604,41 @@ xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\flam3-palettes.xml" "$(OutDir)"</
|
|||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseNvidia|x64'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseNvidia|x64'">true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="GeneratedFiles\Release\moc_VariationsDialog.cpp">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseNvidia|Win32'">true</ExcludedFromBuild>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseNvidia|x64'">true</ExcludedFromBuild>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<CustomBuild Include="..\..\..\Source\Fractorium\VariationsDialog.h">
|
||||||
|
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
|
||||||
|
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Moc%27ing VariationsDialog.h...</Message>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/VariationsDialog.h" -DUNICODE -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\glew\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)include" "-I.\GeneratedFiles\$(ConfigurationName)\."</Command>
|
||||||
|
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
|
||||||
|
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing VariationsDialog.h...</Message>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/VariationsDialog.h" -DUNICODE -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\glew\include" "-I$(AMDAPPSDKROOT)\include" "-I.\GeneratedFiles\$(ConfigurationName)\."</Command>
|
||||||
|
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
|
||||||
|
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Moc%27ing VariationsDialog.h...</Message>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/VariationsDialog.h" -DUNICODE -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\glew\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)include" "-I.\GeneratedFiles\$(ConfigurationName)\."</Command>
|
||||||
|
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
|
||||||
|
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing VariationsDialog.h...</Message>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/VariationsDialog.h" -DUNICODE -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\glew\include" "-I$(AMDAPPSDKROOT)\include" "-I.\GeneratedFiles\$(ConfigurationName)\."</Command>
|
||||||
|
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='ReleaseNvidia|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
|
||||||
|
<Message Condition="'$(Configuration)|$(Platform)'=='ReleaseNvidia|x64'">Moc%27ing VariationsDialog.h...</Message>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='ReleaseNvidia|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='ReleaseNvidia|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/VariationsDialog.h" -DUNICODE -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\glew\include" "-I$(CUDA_PATH)include" "-I.\GeneratedFiles\$(ConfigurationName)\."</Command>
|
||||||
|
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='ReleaseNvidia|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
|
||||||
|
<Message Condition="'$(Configuration)|$(Platform)'=='ReleaseNvidia|Win32'">Moc%27ing VariationsDialog.h...</Message>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='ReleaseNvidia|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='ReleaseNvidia|Win32'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/VariationsDialog.h" -DUNICODE -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\glew\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)include" "-I.\GeneratedFiles\$(ConfigurationName)\."</Command>
|
||||||
|
</CustomBuild>
|
||||||
|
<ClInclude Include="GeneratedFiles\ui_VariationsDialog.h" />
|
||||||
<CustomBuild Include="..\..\..\Source\Fractorium\OptionsDialog.h">
|
<CustomBuild Include="..\..\..\Source\Fractorium\OptionsDialog.h">
|
||||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath);%(AdditionalInputs)</AdditionalInputs>
|
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath);%(AdditionalInputs)</AdditionalInputs>
|
||||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Moc%27ing OptionsDialog.h...</Message>
|
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Moc%27ing OptionsDialog.h...</Message>
|
||||||
@ -1207,6 +1253,32 @@ xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\flam3-palettes.xml" "$(OutDir)"</
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="..\..\..\Source\Fractorium\Icons\Fractorium.ico" />
|
<None Include="..\..\..\Source\Fractorium\Icons\Fractorium.ico" />
|
||||||
|
<CustomBuild Include="..\..\..\Source\Fractorium\VariationsDialog.ui">
|
||||||
|
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||||
|
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Uic%27ing %(Identity)...</Message>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
|
||||||
|
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||||
|
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Uic%27ing %(Identity)...</Message>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
|
||||||
|
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||||
|
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Uic%27ing %(Identity)...</Message>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
|
||||||
|
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||||
|
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Uic%27ing %(Identity)...</Message>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
|
||||||
|
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='ReleaseNvidia|x64'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||||
|
<Message Condition="'$(Configuration)|$(Platform)'=='ReleaseNvidia|x64'">Uic%27ing %(Identity)...</Message>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='ReleaseNvidia|x64'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='ReleaseNvidia|x64'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
|
||||||
|
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='ReleaseNvidia|Win32'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||||
|
<Message Condition="'$(Configuration)|$(Platform)'=='ReleaseNvidia|Win32'">Uic%27ing %(Identity)...</Message>
|
||||||
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='ReleaseNvidia|Win32'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
|
||||||
|
<Command Condition="'$(Configuration)|$(Platform)'=='ReleaseNvidia|Win32'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
|
||||||
|
</CustomBuild>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
@ -256,6 +256,18 @@
|
|||||||
<ClCompile Include="GeneratedFiles\ReleaseNvidia\moc_DoubleSpinBoxTableItemDelegate.cpp">
|
<ClCompile Include="GeneratedFiles\ReleaseNvidia\moc_DoubleSpinBoxTableItemDelegate.cpp">
|
||||||
<Filter>Generated Files\ReleaseNvidia</Filter>
|
<Filter>Generated Files\ReleaseNvidia</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\Source\Fractorium\VariationsDialog.cpp">
|
||||||
|
<Filter>Dialogs</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="GeneratedFiles\Debug\moc_VariationsDialog.cpp">
|
||||||
|
<Filter>Generated Files\Debug</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="GeneratedFiles\Release\moc_VariationsDialog.cpp">
|
||||||
|
<Filter>Generated Files\Release</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="GeneratedFiles\ReleaseNvidia\moc_VariationsDialog.cpp">
|
||||||
|
<Filter>Generated Files\ReleaseNvidia</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="GeneratedFiles\ui_Fractorium.h">
|
<ClInclude Include="GeneratedFiles\ui_Fractorium.h">
|
||||||
@ -300,6 +312,9 @@
|
|||||||
<ClInclude Include="..\..\..\Source\Fractorium\PaletteTableWidgetItem.h">
|
<ClInclude Include="..\..\..\Source\Fractorium\PaletteTableWidgetItem.h">
|
||||||
<Filter>Widgets</Filter>
|
<Filter>Widgets</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="GeneratedFiles\ui_VariationsDialog.h">
|
||||||
|
<Filter>Generated Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<CustomBuild Include="..\..\..\Source\Fractorium\Fractorium.qrc">
|
<CustomBuild Include="..\..\..\Source\Fractorium\Fractorium.qrc">
|
||||||
@ -362,6 +377,12 @@
|
|||||||
<CustomBuild Include="..\..\..\Source\Fractorium\DoubleSpinBoxTableItemDelegate.h">
|
<CustomBuild Include="..\..\..\Source\Fractorium\DoubleSpinBoxTableItemDelegate.h">
|
||||||
<Filter>Widgets</Filter>
|
<Filter>Widgets</Filter>
|
||||||
</CustomBuild>
|
</CustomBuild>
|
||||||
|
<CustomBuild Include="..\..\..\Source\Fractorium\VariationsDialog.ui">
|
||||||
|
<Filter>Form Files</Filter>
|
||||||
|
</CustomBuild>
|
||||||
|
<CustomBuild Include="..\..\..\Source\Fractorium\VariationsDialog.h">
|
||||||
|
<Filter>Dialogs</Filter>
|
||||||
|
</CustomBuild>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceCompile Include="..\..\..\Source\Fractorium\Fractorium.rc">
|
<ResourceCompile Include="..\..\..\Source\Fractorium\Fractorium.rc">
|
||||||
|
@ -47,6 +47,7 @@ SOURCES += \
|
|||||||
../../../Source/Fractorium/GLWidget.cpp \
|
../../../Source/Fractorium/GLWidget.cpp \
|
||||||
../../../Source/Fractorium/Main.cpp \
|
../../../Source/Fractorium/Main.cpp \
|
||||||
../../../Source/Fractorium/OptionsDialog.cpp \
|
../../../Source/Fractorium/OptionsDialog.cpp \
|
||||||
|
../../../Source/Fractorium/VariationsDialog.cpp \
|
||||||
../../../Source/Fractorium/SpinBox.cpp
|
../../../Source/Fractorium/SpinBox.cpp
|
||||||
|
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
@ -75,12 +76,14 @@ HEADERS += \
|
|||||||
../../../Source/EmberCommon/EmberCommonPch.h \
|
../../../Source/EmberCommon/EmberCommonPch.h \
|
||||||
../../../Source/Fractorium/FractoriumCommon.h \
|
../../../Source/Fractorium/FractoriumCommon.h \
|
||||||
../../../Source/Fractorium/DoubleSpinBoxTableItemDelegate.h \
|
../../../Source/Fractorium/DoubleSpinBoxTableItemDelegate.h \
|
||||||
../../../Source/Fractorium/PaletteTableWidgetItem.h
|
../../../Source/Fractorium/PaletteTableWidgetItem.h \
|
||||||
|
../../../Source/Fractorium/VariationsDialog.h
|
||||||
|
|
||||||
FORMS += \
|
FORMS += \
|
||||||
../../../Source/Fractorium/AboutDialog.ui \
|
../../../Source/Fractorium/AboutDialog.ui \
|
||||||
../../../Source/Fractorium/FinalRenderDialog.ui \
|
../../../Source/Fractorium/FinalRenderDialog.ui \
|
||||||
../../../Source/Fractorium/Fractorium.ui \
|
../../../Source/Fractorium/Fractorium.ui \
|
||||||
|
../../../Source/Fractorium/VariationsDialog.ui \
|
||||||
../../../Source/Fractorium/OptionsDialog.ui
|
../../../Source/Fractorium/OptionsDialog.ui
|
||||||
|
|
||||||
OTHER_FILES += \
|
OTHER_FILES += \
|
||||||
|
@ -70,8 +70,8 @@ public:
|
|||||||
template <typename U>
|
template <typename U>
|
||||||
MotionParam &operator = (const MotionParam<U>& other)
|
MotionParam &operator = (const MotionParam<U>& other)
|
||||||
{
|
{
|
||||||
first = other.first;
|
this->first = other.first;
|
||||||
second = T(other.second);
|
this->second = T(other.second);
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@ FractoriumFinalRenderDialog::FractoriumFinalRenderDialog(FractoriumSettings* set
|
|||||||
QTableWidget* table = ui.FinalRenderParamsTable;
|
QTableWidget* table = ui.FinalRenderParamsTable;
|
||||||
QTableWidgetItem* item = nullptr;
|
QTableWidgetItem* item = nullptr;
|
||||||
|
|
||||||
m_Fractorium = dynamic_cast<Fractorium*>(p);
|
m_Fractorium = qobject_cast<Fractorium*>(p);
|
||||||
m_Settings = settings;
|
m_Settings = settings;
|
||||||
ui.FinalRenderThreadCountSpin->setRange(1, Timing::ProcessorCount());
|
ui.FinalRenderThreadCountSpin->setRange(1, Timing::ProcessorCount());
|
||||||
connect(ui.FinalRenderEarlyClipCheckBox, SIGNAL(stateChanged(int)), this, SLOT(OnEarlyClipCheckBoxStateChanged(int)), Qt::QueuedConnection);
|
connect(ui.FinalRenderEarlyClipCheckBox, SIGNAL(stateChanged(int)), this, SLOT(OnEarlyClipCheckBoxStateChanged(int)), Qt::QueuedConnection);
|
||||||
|
@ -77,7 +77,7 @@ public:
|
|||||||
uint Strips();
|
uint Strips();
|
||||||
FinalRenderGuiState State();
|
FinalRenderGuiState State();
|
||||||
|
|
||||||
public Q_SLOTS:
|
public slots:
|
||||||
void MoveCursorToEnd();
|
void MoveCursorToEnd();
|
||||||
void OnEarlyClipCheckBoxStateChanged(int state);
|
void OnEarlyClipCheckBoxStateChanged(int state);
|
||||||
void OnYAxisUpCheckBoxStateChanged(int state);
|
void OnYAxisUpCheckBoxStateChanged(int state);
|
||||||
@ -104,10 +104,10 @@ public Q_SLOTS:
|
|||||||
void OnFinalRenderSuffixChanged(const QString& s);
|
void OnFinalRenderSuffixChanged(const QString& s);
|
||||||
void OnRenderClicked(bool checked);
|
void OnRenderClicked(bool checked);
|
||||||
void OnCancelRenderClicked(bool checked);
|
void OnCancelRenderClicked(bool checked);
|
||||||
|
virtual void reject() override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void reject();
|
virtual void showEvent(QShowEvent* e) override;
|
||||||
virtual void showEvent(QShowEvent* e);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool CreateControllerFromGUI(bool createRenderer);
|
bool CreateControllerFromGUI(bool createRenderer);
|
||||||
|
Binary file not shown.
@ -51,6 +51,7 @@ Fractorium::Fractorium(QWidget* p)
|
|||||||
m_FolderDialog = nullptr;
|
m_FolderDialog = nullptr;
|
||||||
m_FinalRenderDialog = new FractoriumFinalRenderDialog(m_Settings, this);
|
m_FinalRenderDialog = new FractoriumFinalRenderDialog(m_Settings, this);
|
||||||
m_OptionsDialog = new FractoriumOptionsDialog(m_Settings, this);
|
m_OptionsDialog = new FractoriumOptionsDialog(m_Settings, this);
|
||||||
|
m_VarDialog = new FractoriumVariationsDialog(m_Settings, this);
|
||||||
m_AboutDialog = new FractoriumAboutDialog(this);
|
m_AboutDialog = new FractoriumAboutDialog(this);
|
||||||
|
|
||||||
//Put the about dialog in the screen center.
|
//Put the about dialog in the screen center.
|
||||||
@ -198,6 +199,7 @@ Fractorium::Fractorium(QWidget* p)
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
Fractorium::~Fractorium()
|
Fractorium::~Fractorium()
|
||||||
{
|
{
|
||||||
|
m_VarDialog->SyncSettings();
|
||||||
m_Settings->setValue("windowState", saveState());
|
m_Settings->setValue("windowState", saveState());
|
||||||
m_Settings->sync();
|
m_Settings->sync();
|
||||||
}
|
}
|
||||||
@ -776,13 +778,13 @@ void Fractorium::ToggleTableRow(QTableView* table, int logicalIndex)
|
|||||||
auto model = table->model();
|
auto model = table->model();
|
||||||
int cols = model->columnCount();
|
int cols = model->columnCount();
|
||||||
bool shift = QGuiApplication::keyboardModifiers().testFlag(Qt::ShiftModifier);
|
bool shift = QGuiApplication::keyboardModifiers().testFlag(Qt::ShiftModifier);
|
||||||
auto tableWidget = dynamic_cast<QTableWidget*>(table);
|
auto tableWidget = qobject_cast<QTableWidget*>(table);
|
||||||
|
|
||||||
if (tableWidget)
|
if (tableWidget)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < cols; i++)
|
for (int i = 0; i < cols; i++)
|
||||||
{
|
{
|
||||||
if (auto* spinBox = dynamic_cast<DoubleSpinBox*>(tableWidget->cellWidget(logicalIndex, i)))
|
if (auto* spinBox = qobject_cast<DoubleSpinBox*>(tableWidget->cellWidget(logicalIndex, i)))
|
||||||
{
|
{
|
||||||
if (!IsNearZero(spinBox->value()))
|
if (!IsNearZero(spinBox->value()))
|
||||||
{
|
{
|
||||||
@ -798,7 +800,7 @@ void Fractorium::ToggleTableRow(QTableView* table, int logicalIndex)
|
|||||||
double val = allZero ? 1.0 : 0.0;
|
double val = allZero ? 1.0 : 0.0;
|
||||||
|
|
||||||
for (int i = 0; i < cols; i++)
|
for (int i = 0; i < cols; i++)
|
||||||
if (auto* spinBox = dynamic_cast<DoubleSpinBox*>(tableWidget->cellWidget(logicalIndex, i)))
|
if (auto* spinBox = qobject_cast<DoubleSpinBox*>(tableWidget->cellWidget(logicalIndex, i)))
|
||||||
spinBox->setValue(val);
|
spinBox->setValue(val);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -838,13 +840,13 @@ void Fractorium::ToggleTableCol(QTableView* table, int logicalIndex)
|
|||||||
int rows = model->rowCount();
|
int rows = model->rowCount();
|
||||||
bool shift = QGuiApplication::keyboardModifiers().testFlag(Qt::ShiftModifier);
|
bool shift = QGuiApplication::keyboardModifiers().testFlag(Qt::ShiftModifier);
|
||||||
|
|
||||||
auto tableWidget = dynamic_cast<QTableWidget*>(table);
|
auto tableWidget = qobject_cast<QTableWidget*>(table);
|
||||||
|
|
||||||
if (tableWidget)
|
if (tableWidget)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < rows; i++)
|
for (int i = 0; i < rows; i++)
|
||||||
{
|
{
|
||||||
if (auto* spinBox = dynamic_cast<DoubleSpinBox*>(tableWidget->cellWidget(i, logicalIndex)))
|
if (auto* spinBox = qobject_cast<DoubleSpinBox*>(tableWidget->cellWidget(i, logicalIndex)))
|
||||||
{
|
{
|
||||||
if (!IsNearZero(spinBox->value()))
|
if (!IsNearZero(spinBox->value()))
|
||||||
{
|
{
|
||||||
@ -860,7 +862,7 @@ void Fractorium::ToggleTableCol(QTableView* table, int logicalIndex)
|
|||||||
double val = allZero ? 1.0 : 0.0;
|
double val = allZero ? 1.0 : 0.0;
|
||||||
|
|
||||||
for (int i = 0; i < rows; i++)
|
for (int i = 0; i < rows; i++)
|
||||||
if (auto* spinBox = dynamic_cast<DoubleSpinBox*>(tableWidget->cellWidget(i, logicalIndex)))
|
if (auto* spinBox = qobject_cast<DoubleSpinBox*>(tableWidget->cellWidget(i, logicalIndex)))
|
||||||
spinBox->setValue(val);
|
spinBox->setValue(val);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
#include "TableWidget.h"
|
#include "TableWidget.h"
|
||||||
#include "FinalRenderDialog.h"
|
#include "FinalRenderDialog.h"
|
||||||
#include "OptionsDialog.h"
|
#include "OptionsDialog.h"
|
||||||
|
#include "VariationsDialog.h"
|
||||||
#include "AboutDialog.h"
|
#include "AboutDialog.h"
|
||||||
#include "CurvesGraphicsView.h"
|
#include "CurvesGraphicsView.h"
|
||||||
#include "DoubleSpinBoxTableItemDelegate.h"
|
#include "DoubleSpinBoxTableItemDelegate.h"
|
||||||
@ -19,6 +20,7 @@
|
|||||||
|
|
||||||
class GLWidget;
|
class GLWidget;
|
||||||
class FractoriumOptionsDialog;
|
class FractoriumOptionsDialog;
|
||||||
|
class FractoriumVariationsDialog;
|
||||||
class FractoriumFinalRenderDialog;
|
class FractoriumFinalRenderDialog;
|
||||||
class FractoriumAboutDialog;
|
class FractoriumAboutDialog;
|
||||||
class GLEmberControllerBase;
|
class GLEmberControllerBase;
|
||||||
@ -138,6 +140,7 @@ public slots:
|
|||||||
void OnActionFinalRender(bool checked);
|
void OnActionFinalRender(bool checked);
|
||||||
void OnFinalRenderClose(int result);
|
void OnFinalRenderClose(int result);
|
||||||
void OnActionOptions(bool checked);
|
void OnActionOptions(bool checked);
|
||||||
|
void OnActionVariationsDialog(bool checked);
|
||||||
|
|
||||||
void OnActionAbout(bool checked);//Help.
|
void OnActionAbout(bool checked);//Help.
|
||||||
|
|
||||||
@ -333,6 +336,8 @@ private:
|
|||||||
//Xforms Affine.
|
//Xforms Affine.
|
||||||
|
|
||||||
//Xforms Variations.
|
//Xforms Variations.
|
||||||
|
void Filter();
|
||||||
|
void Filter(const QString& text);
|
||||||
|
|
||||||
//Xforms Selection.
|
//Xforms Selection.
|
||||||
void ClearXformsSelections();
|
void ClearXformsSelections();
|
||||||
@ -364,6 +369,7 @@ private:
|
|||||||
QColorDialog* m_ColorDialog;
|
QColorDialog* m_ColorDialog;
|
||||||
FractoriumFinalRenderDialog* m_FinalRenderDialog;
|
FractoriumFinalRenderDialog* m_FinalRenderDialog;
|
||||||
FractoriumOptionsDialog* m_OptionsDialog;
|
FractoriumOptionsDialog* m_OptionsDialog;
|
||||||
|
FractoriumVariationsDialog* m_VarDialog;
|
||||||
FractoriumAboutDialog* m_AboutDialog;
|
FractoriumAboutDialog* m_AboutDialog;
|
||||||
|
|
||||||
//Params.
|
//Params.
|
||||||
|
@ -38,10 +38,11 @@
|
|||||||
<file>Icons/infomation.png</file>
|
<file>Icons/infomation.png</file>
|
||||||
<file>Icons/del.png</file>
|
<file>Icons/del.png</file>
|
||||||
<file>Icons/add.png</file>
|
<file>Icons/add.png</file>
|
||||||
<file>Icons/link-add.png</file>
|
<file>Icons/link-add.png</file>
|
||||||
<file>Icons/eraser.png</file>
|
<file>Icons/eraser.png</file>
|
||||||
<file>Icons/editraise.png</file>
|
<file>Icons/editraise.png</file>
|
||||||
<file>Icons/square.png</file>
|
<file>Icons/square.png</file>
|
||||||
<file>Icons/cube.png</file>
|
<file>Icons/cube.png</file>
|
||||||
|
<file>Icons/table_gear.png</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
@ -6198,6 +6198,7 @@ SpinBox
|
|||||||
<addaction name="separator"/>
|
<addaction name="separator"/>
|
||||||
<addaction name="ActionOptions"/>
|
<addaction name="ActionOptions"/>
|
||||||
<addaction name="separator"/>
|
<addaction name="separator"/>
|
||||||
|
<addaction name="ActionVariationsDialog"/>
|
||||||
</widget>
|
</widget>
|
||||||
<action name="ActionNewFlock">
|
<action name="ActionNewFlock">
|
||||||
<property name="icon">
|
<property name="icon">
|
||||||
@ -6528,6 +6529,18 @@ SpinBox
|
|||||||
<string>&Reset Workspace</string>
|
<string>&Reset Workspace</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
|
<action name="ActionVariationsDialog">
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="Fractorium.qrc">
|
||||||
|
<normaloff>:/Fractorium/Icons/table_gear.png</normaloff>:/Fractorium/Icons/table_gear.png</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Variations</string>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Show variations filter window</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
</widget>
|
</widget>
|
||||||
<layoutdefault spacing="6" margin="11"/>
|
<layoutdefault spacing="6" margin="11"/>
|
||||||
<customwidgets>
|
<customwidgets>
|
||||||
|
@ -256,7 +256,7 @@ void FractoriumEmberController<T>::UpdateXform(std::function<void(Xform<T>*)> fu
|
|||||||
{
|
{
|
||||||
if (QLayoutItem* child = m_Fractorium->m_XformsSelectionLayout->itemAt(i))
|
if (QLayoutItem* child = m_Fractorium->m_XformsSelectionLayout->itemAt(i))
|
||||||
{
|
{
|
||||||
if (auto* w = dynamic_cast<QCheckBox*>(child->widget()))
|
if (auto* w = qobject_cast<QCheckBox*>(child->widget()))
|
||||||
{
|
{
|
||||||
if (w->isChecked())
|
if (w->isChecked())
|
||||||
{
|
{
|
||||||
|
@ -181,6 +181,7 @@ public:
|
|||||||
virtual QColor ColorIndexToQColor(double d) { return QColor(); }
|
virtual QColor ColorIndexToQColor(double d) { return QColor(); }
|
||||||
|
|
||||||
//Xforms Variations.
|
//Xforms Variations.
|
||||||
|
virtual void Filter(const QString& text) { }
|
||||||
virtual void SetupVariationTree() { }
|
virtual void SetupVariationTree() { }
|
||||||
virtual void ClearVariationsTree() { }
|
virtual void ClearVariationsTree() { }
|
||||||
virtual void VariationSpinBoxValueChanged(double d) { }
|
virtual void VariationSpinBoxValueChanged(double d) { }
|
||||||
@ -418,6 +419,7 @@ public:
|
|||||||
void FillColorWithXform(Xform<T>* xform);
|
void FillColorWithXform(Xform<T>* xform);
|
||||||
|
|
||||||
//Xforms Variations.
|
//Xforms Variations.
|
||||||
|
virtual void Filter(const QString& text) override;
|
||||||
virtual void SetupVariationTree() override;
|
virtual void SetupVariationTree() override;
|
||||||
virtual void ClearVariationsTree() override;
|
virtual void ClearVariationsTree() override;
|
||||||
virtual void VariationSpinBoxValueChanged(double d) override;
|
virtual void VariationSpinBoxValueChanged(double d) override;
|
||||||
|
@ -107,6 +107,7 @@ void FractoriumEmberController<T>::FillSummary()
|
|||||||
QString linked = (linkedIndex != -1) ? (" Linked to " + QString::number(linkedIndex + 1)) : "";
|
QString linked = (linkedIndex != -1) ? (" Linked to " + QString::number(linkedIndex + 1)) : "";
|
||||||
auto index = m_Ember.GetXformIndex(xform);
|
auto index = m_Ember.GetXformIndex(xform);
|
||||||
m_Ember.CalcNormalizedWeights(m_NormalizedWeights);
|
m_Ember.CalcNormalizedWeights(m_NormalizedWeights);
|
||||||
|
xform->SetPrecalcFlags();//Needed for HasPost() below.
|
||||||
|
|
||||||
if (!m_Ember.IsFinalXform(xform) && index != -1)
|
if (!m_Ember.IsFinalXform(xform) && index != -1)
|
||||||
{
|
{
|
||||||
|
@ -230,7 +230,7 @@ void FractoriumEmberController<T>::EmberTreeItemChanged(QTreeWidgetItem* item, i
|
|||||||
tree->blockSignals(false);
|
tree->blockSignals(false);
|
||||||
FillSummary();
|
FillSummary();
|
||||||
}
|
}
|
||||||
else if (QTreeWidgetItem* parentItem = dynamic_cast<QTreeWidgetItem*>(item))
|
else if (auto parentItem = dynamic_cast<QTreeWidgetItem*>(item))
|
||||||
{
|
{
|
||||||
QString text = parentItem->text(0);
|
QString text = parentItem->text(0);
|
||||||
|
|
||||||
|
@ -250,3 +250,6 @@ void FractoriumSettings::SaveImageExt(const QString& s) { setValue(SAVEIMAGEE
|
|||||||
|
|
||||||
bool FractoriumSettings::SaveAutoUnique() { return value(AUTOUNIQUE).toBool(); }
|
bool FractoriumSettings::SaveAutoUnique() { return value(AUTOUNIQUE).toBool(); }
|
||||||
void FractoriumSettings::SaveAutoUnique(bool b) { setValue(AUTOUNIQUE, b); }
|
void FractoriumSettings::SaveAutoUnique(bool b) { setValue(AUTOUNIQUE, b); }
|
||||||
|
|
||||||
|
QMap<QString, QVariant> FractoriumSettings::Variations() { return value(UIVARIATIONS).toMap(); }
|
||||||
|
void FractoriumSettings::Variations(const QMap<QString, QVariant>& m) { setValue(UIVARIATIONS, m); }
|
@ -60,6 +60,8 @@
|
|||||||
#define IDENTITYURL "identity/url"
|
#define IDENTITYURL "identity/url"
|
||||||
#define IDENTITYNICK "identity/nick"
|
#define IDENTITYNICK "identity/nick"
|
||||||
|
|
||||||
|
#define UIVARIATIONS "ui/variations"
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Class for preserving various program options between
|
/// Class for preserving various program options between
|
||||||
/// runs of Fractorium. Each of these generally corresponds
|
/// runs of Fractorium. Each of these generally corresponds
|
||||||
@ -209,4 +211,7 @@ public:
|
|||||||
|
|
||||||
QString Nick();
|
QString Nick();
|
||||||
void Nick(const QString& s);
|
void Nick(const QString& s);
|
||||||
|
|
||||||
|
QMap<QString, QVariant> Variations();
|
||||||
|
void Variations(const QMap<QString, QVariant>& m);
|
||||||
};
|
};
|
||||||
|
@ -97,7 +97,7 @@ void FractoriumEmberController<T>::XaosChanged(int x, int y, double val)
|
|||||||
|
|
||||||
void Fractorium::OnXaosChanged(double d)
|
void Fractorium::OnXaosChanged(double d)
|
||||||
{
|
{
|
||||||
if (auto* senderSpinBox = dynamic_cast<DoubleSpinBox*>(this->sender()))
|
if (auto* senderSpinBox = qobject_cast<DoubleSpinBox*>(this->sender()))
|
||||||
{
|
{
|
||||||
auto p = senderSpinBox->property("tableindex").toPoint();
|
auto p = senderSpinBox->property("tableindex").toPoint();
|
||||||
|
|
||||||
|
@ -77,7 +77,7 @@ void Fractorium::ForEachXformCheckbox(std::function<void(int, QCheckBox*)> func)
|
|||||||
|
|
||||||
while (QLayoutItem* child = m_XformsSelectionLayout->itemAt(i))
|
while (QLayoutItem* child = m_XformsSelectionLayout->itemAt(i))
|
||||||
{
|
{
|
||||||
if (auto* w = dynamic_cast<QCheckBox*>(child->widget()))
|
if (auto* w = qobject_cast<QCheckBox*>(child->widget()))
|
||||||
{
|
{
|
||||||
func(i, w);
|
func(i, w);
|
||||||
}
|
}
|
||||||
@ -97,7 +97,7 @@ bool FractoriumEmberController<T>::XformCheckboxAt(int i, std::function<void(QCh
|
|||||||
{
|
{
|
||||||
if (QLayoutItem* child = m_Fractorium->m_XformsSelectionLayout->itemAt(i))
|
if (QLayoutItem* child = m_Fractorium->m_XformsSelectionLayout->itemAt(i))
|
||||||
{
|
{
|
||||||
if (auto* w = dynamic_cast<QCheckBox*>(child->widget()))
|
if (auto* w = qobject_cast<QCheckBox*>(child->widget()))
|
||||||
{
|
{
|
||||||
func(w);
|
func(w);
|
||||||
return true;
|
return true;
|
||||||
|
@ -13,12 +13,70 @@ void Fractorium::InitXformsVariationsUI()
|
|||||||
connect(tree->header(), SIGNAL(sectionClicked(int)), this, SLOT(OnTreeHeaderSectionClicked(int)));
|
connect(tree->header(), SIGNAL(sectionClicked(int)), this, SLOT(OnTreeHeaderSectionClicked(int)));
|
||||||
connect(ui.VariationsFilterLineEdit, SIGNAL(textChanged(const QString&)), this, SLOT(OnVariationsFilterLineEditTextChanged(const QString&)));
|
connect(ui.VariationsFilterLineEdit, SIGNAL(textChanged(const QString&)), this, SLOT(OnVariationsFilterLineEditTextChanged(const QString&)));
|
||||||
connect(ui.VariationsFilterClearButton, SIGNAL(clicked(bool)), this, SLOT(OnVariationsFilterClearButtonClicked(bool)));
|
connect(ui.VariationsFilterClearButton, SIGNAL(clicked(bool)), this, SLOT(OnVariationsFilterClearButtonClicked(bool)));
|
||||||
|
connect(ui.ActionVariationsDialog, SIGNAL(triggered(bool)), this, SLOT(OnActionVariationsDialog(bool)), Qt::QueuedConnection);
|
||||||
|
|
||||||
//Setting dimensions in the designer with a layout is futile, so must hard code here.
|
//Setting dimensions in the designer with a layout is futile, so must hard code here.
|
||||||
tree->setColumnWidth(0, 160);
|
tree->setColumnWidth(0, 160);
|
||||||
tree->setColumnWidth(1, 23);
|
tree->setColumnWidth(1, 23);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Show the variations filter dialog.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="checked">Ignored</param>
|
||||||
|
void Fractorium::OnActionVariationsDialog(bool checked)
|
||||||
|
{
|
||||||
|
if (m_VarDialog->exec())
|
||||||
|
Filter();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Apply the text passed in, in conjuction with the selections from
|
||||||
|
/// the variations filter dialog to only show variations whose names
|
||||||
|
/// contain the substring and are selected.
|
||||||
|
/// Called when the user types in the variation filter text box and
|
||||||
|
/// when the variations dialog exits.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="text">The text to filter on</param>
|
||||||
|
template <typename T>
|
||||||
|
void FractoriumEmberController<T>::Filter(const QString& text)
|
||||||
|
{
|
||||||
|
auto& ids = m_Fractorium->m_VarDialog->Map();
|
||||||
|
auto tree = m_Fractorium->ui.VariationsTree;
|
||||||
|
auto xform = CurrentXform();
|
||||||
|
|
||||||
|
tree->setUpdatesEnabled(false);
|
||||||
|
|
||||||
|
for (uint i = 0; i < uint(tree->topLevelItemCount()); i++)
|
||||||
|
{
|
||||||
|
if (auto item = dynamic_cast<VariationTreeWidgetItem*>(tree->topLevelItem(i)))
|
||||||
|
{
|
||||||
|
auto varName = item->text(0);
|
||||||
|
|
||||||
|
if (xform && xform->GetVariationById(item->Id()))//If it's present then show it no matter what the filter is.
|
||||||
|
{
|
||||||
|
item->setHidden(false);
|
||||||
|
}
|
||||||
|
else if (ids.contains(varName))//If the varation is the map of all variations, which is should always be, consider it as well as the filter text.
|
||||||
|
{
|
||||||
|
item->setHidden(!varName.contains(text, Qt::CaseInsensitive) || !ids[varName].toBool());
|
||||||
|
}
|
||||||
|
else//Wasn't present, which should never happen, so just consider filter text.
|
||||||
|
{
|
||||||
|
item->setHidden(!varName.contains(text, Qt::CaseInsensitive));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
m_Fractorium->OnTreeHeaderSectionClicked(m_Fractorium->m_VarSortMode);//Must re-sort every time the filter changes.
|
||||||
|
tree->setUpdatesEnabled(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Fractorium::Filter()
|
||||||
|
{
|
||||||
|
m_Controller->Filter(ui.VariationsFilterLineEdit->text());
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Dynamically populate the variation tree widget with VariationTreeWidgetItem and VariationTreeDoubleSpinBox
|
/// Dynamically populate the variation tree widget with VariationTreeWidgetItem and VariationTreeDoubleSpinBox
|
||||||
/// templated with the correct type.
|
/// templated with the correct type.
|
||||||
@ -94,6 +152,7 @@ void FractoriumEmberController<T>::SetupVariationTree()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Filter("");
|
||||||
tree->blockSignals(false);
|
tree->blockSignals(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -223,6 +282,7 @@ void FractoriumEmberController<T>::FillVariationTreeWithXform(Xform<T>* xform)
|
|||||||
auto tree = m_Fractorium->ui.VariationsTree;
|
auto tree = m_Fractorium->ui.VariationsTree;
|
||||||
|
|
||||||
tree->blockSignals(true);
|
tree->blockSignals(true);
|
||||||
|
m_Fractorium->Filter();
|
||||||
|
|
||||||
for (uint i = 0; i < tree->topLevelItemCount(); i++)
|
for (uint i = 0; i < tree->topLevelItemCount(); i++)
|
||||||
{
|
{
|
||||||
@ -233,6 +293,9 @@ void FractoriumEmberController<T>::FillVariationTreeWithXform(Xform<T>* xform)
|
|||||||
|
|
||||||
if (auto spinBox = dynamic_cast<VariationTreeDoubleSpinBox*>(tree->itemWidget(item, 1)))//Get the widget for the item, and cast the widget to the VariationTreeDoubleSpinBox type.
|
if (auto spinBox = dynamic_cast<VariationTreeDoubleSpinBox*>(tree->itemWidget(item, 1)))//Get the widget for the item, and cast the widget to the VariationTreeDoubleSpinBox type.
|
||||||
{
|
{
|
||||||
|
if (var)//Ensure it's visible, even if it's supposed to be filtered.
|
||||||
|
item->setHidden(false);
|
||||||
|
|
||||||
spinBox->SetValueStealth(var ? var->m_Weight : 0);//If the variation was present, set the spin box to its weight, else zero.
|
spinBox->SetValueStealth(var ? var->m_Weight : 0);//If the variation was present, set the spin box to its weight, else zero.
|
||||||
item->setBackgroundColor(0, var ? QColor(200, 200, 200) : QColor(255, 255, 255));//Ensure background is always white if the value goes to zero, else gray if var present.
|
item->setBackgroundColor(0, var ? QColor(200, 200, 200) : QColor(255, 255, 255));//Ensure background is always white if the value goes to zero, else gray if var present.
|
||||||
|
|
||||||
@ -290,20 +353,7 @@ void Fractorium::OnTreeHeaderSectionClicked(int logicalIndex)
|
|||||||
/// <param name="text">The text to filter on</param>
|
/// <param name="text">The text to filter on</param>
|
||||||
void Fractorium::OnVariationsFilterLineEditTextChanged(const QString& text)
|
void Fractorium::OnVariationsFilterLineEditTextChanged(const QString& text)
|
||||||
{
|
{
|
||||||
QTreeWidget* tree = ui.VariationsTree;
|
Filter();
|
||||||
|
|
||||||
tree->setUpdatesEnabled(false);
|
|
||||||
|
|
||||||
for (uint i = 0; i < uint(tree->topLevelItemCount()); i++)
|
|
||||||
{
|
|
||||||
QTreeWidgetItem* item = tree->topLevelItem(i);
|
|
||||||
QString varName = item->text(0);
|
|
||||||
|
|
||||||
item->setHidden(!varName.contains(text, Qt::CaseInsensitive));
|
|
||||||
}
|
|
||||||
|
|
||||||
OnTreeHeaderSectionClicked(m_VarSortMode);//Must re-sort every time the filter changes.
|
|
||||||
tree->setUpdatesEnabled(true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
BIN
Source/Fractorium/Icons/table_gear.png
Normal file
BIN
Source/Fractorium/Icons/table_gear.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 644 B |
@ -29,8 +29,8 @@ public:
|
|||||||
public slots:
|
public slots:
|
||||||
void OnOpenCLCheckBoxStateChanged(int state);
|
void OnOpenCLCheckBoxStateChanged(int state);
|
||||||
void OnPlatformComboCurrentIndexChanged(int index);
|
void OnPlatformComboCurrentIndexChanged(int index);
|
||||||
virtual void accept();
|
virtual void accept() override;
|
||||||
virtual void reject();
|
virtual void reject() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool EarlyClip();
|
bool EarlyClip();
|
||||||
|
242
Source/Fractorium/VariationsDialog.cpp
Normal file
242
Source/Fractorium/VariationsDialog.cpp
Normal file
@ -0,0 +1,242 @@
|
|||||||
|
#include "FractoriumPch.h"
|
||||||
|
#include "VariationsDialog.h"
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Constructor that takes a parent widget and passes it to the base, then
|
||||||
|
/// sets up the GUI.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="settings">Pointer to the global settings object to use</param>
|
||||||
|
/// <param name="p">The parent widget. Default: nullptr.</param>
|
||||||
|
/// <param name="f">The window flags. Default: 0.</param>
|
||||||
|
FractoriumVariationsDialog::FractoriumVariationsDialog(FractoriumSettings* settings, QWidget* p, Qt::WindowFlags f)
|
||||||
|
: QDialog(p, f),
|
||||||
|
m_Settings(settings)
|
||||||
|
{
|
||||||
|
ui.setupUi(this);
|
||||||
|
|
||||||
|
auto table = ui.VariationsTable;
|
||||||
|
|
||||||
|
m_Vars = m_Settings->Variations();
|
||||||
|
Populate();
|
||||||
|
OnSelectAllButtonClicked(true);
|
||||||
|
table->verticalHeader()->setSectionsClickable(true);
|
||||||
|
table->horizontalHeader()->setSectionsClickable(true);
|
||||||
|
table->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
|
||||||
|
connect(table, SIGNAL(itemChanged(QTableWidgetItem*)), this, SLOT(OnVariationsTableItemChanged(QTableWidgetItem*)), Qt::QueuedConnection);
|
||||||
|
connect(ui.SelectAllButton, SIGNAL(clicked(bool)), this, SLOT(OnSelectAllButtonClicked(bool)), Qt::QueuedConnection);
|
||||||
|
connect(ui.InvertSelectionButton, SIGNAL(clicked(bool)), this, SLOT(OnInvertSelectionButtonClicked(bool)), Qt::QueuedConnection);
|
||||||
|
connect(ui.SelectNoneButton, SIGNAL(clicked(bool)), this, SLOT(OnSelectNoneButtonClicked(bool)), Qt::QueuedConnection);
|
||||||
|
connect(ui.ButtonBox, SIGNAL(accepted()), this, SLOT(Accept()));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Copy the values of the checkboxes to the map.
|
||||||
|
/// </summary>
|
||||||
|
void FractoriumVariationsDialog::SyncSettings()
|
||||||
|
{
|
||||||
|
QMap<QString, QVariant> m;
|
||||||
|
|
||||||
|
ForEachCell([&](QTableWidgetItem* cb)
|
||||||
|
{
|
||||||
|
if (!cb->text().isEmpty())
|
||||||
|
m[cb->text()] = cb->checkState() == Qt::CheckState::Checked;
|
||||||
|
});
|
||||||
|
|
||||||
|
m_Settings->Variations(m);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// A wrapper to iterate over every table widget item and perform the passed in function on it.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="func">Function to call on each object</param>
|
||||||
|
void FractoriumVariationsDialog::ForEachCell(std::function<void(QTableWidgetItem* cb)> func)
|
||||||
|
{
|
||||||
|
auto table = ui.VariationsTable;
|
||||||
|
auto rows = table->rowCount();
|
||||||
|
auto cols = table->columnCount();
|
||||||
|
|
||||||
|
table->model()->blockSignals(true);
|
||||||
|
|
||||||
|
for (auto row = 0; row < rows; row++)
|
||||||
|
for (auto col = 0; col < cols; col++)
|
||||||
|
if (auto cb = table->item(row, col))
|
||||||
|
func(cb);
|
||||||
|
|
||||||
|
table->model()->blockSignals(false);
|
||||||
|
table->model()->layoutChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// A wrapper to iterate over every selected table widget item and perform the passed in function on it.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="func">Function to call on each object</param>
|
||||||
|
void FractoriumVariationsDialog::ForEachSelectedCell(std::function<void(QTableWidgetItem* cb)> func)
|
||||||
|
{
|
||||||
|
auto table = ui.VariationsTable;
|
||||||
|
QList<QTableWidgetItem*> selectedItems = table->selectedItems();
|
||||||
|
|
||||||
|
table->model()->blockSignals(true);
|
||||||
|
|
||||||
|
foreach(QTableWidgetItem* item, selectedItems)
|
||||||
|
if (item)
|
||||||
|
func(item);
|
||||||
|
|
||||||
|
table->model()->blockSignals(false);
|
||||||
|
table->model()->layoutChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Check all of the checkboxes.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="checked">Ignored</param>
|
||||||
|
void FractoriumVariationsDialog::OnSelectAllButtonClicked(bool checked)
|
||||||
|
{
|
||||||
|
ForEachCell([&](QTableWidgetItem* cb) { cb->setCheckState(Qt::CheckState::Checked); });
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Invert the selection state of the checkboxes.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="checked">Ignored</param>
|
||||||
|
void FractoriumVariationsDialog::OnInvertSelectionButtonClicked(bool checked)
|
||||||
|
{
|
||||||
|
ForEachCell([&](QTableWidgetItem* cb)
|
||||||
|
{
|
||||||
|
if (cb->checkState() != Qt::CheckState::Checked)
|
||||||
|
cb->setCheckState(Qt::CheckState::Checked);
|
||||||
|
else
|
||||||
|
cb->setCheckState(Qt::CheckState::Unchecked);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Uncheck all of the checkboxes.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="checked">Ignored</param>
|
||||||
|
void FractoriumVariationsDialog::OnSelectNoneButtonClicked(bool checked)
|
||||||
|
{
|
||||||
|
ForEachCell([&](QTableWidgetItem* cb) { cb->setCheckState(Qt::CheckState::Unchecked); });
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Create all checkboxes and check them according to the map.
|
||||||
|
/// </summary>
|
||||||
|
void FractoriumVariationsDialog::Populate()
|
||||||
|
{
|
||||||
|
auto table = ui.VariationsTable;
|
||||||
|
auto size = std::max<size_t>(std::max<size_t>(m_VariationList.RegSize(), m_VariationList.PreSize()), m_VariationList.PostSize());
|
||||||
|
|
||||||
|
table->setRowCount(size);
|
||||||
|
|
||||||
|
for (size_t i = 0; i < size; i++)
|
||||||
|
{
|
||||||
|
if (auto pre = m_VariationList.GetVariation(i, eVariationType::VARTYPE_PRE))
|
||||||
|
{
|
||||||
|
auto cb = new QTableWidgetItem(pre->Name().c_str());
|
||||||
|
table->setItem(i, 0, cb);
|
||||||
|
SetCheckFromMap(cb, pre);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (auto reg = m_VariationList.GetVariation(i, eVariationType::VARTYPE_REG))
|
||||||
|
{
|
||||||
|
auto cb = new QTableWidgetItem(reg->Name().c_str());
|
||||||
|
table->setItem(i, 1, cb);
|
||||||
|
SetCheckFromMap(cb, reg);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (auto post = m_VariationList.GetVariation(i, eVariationType::VARTYPE_POST))
|
||||||
|
{
|
||||||
|
auto cb = new QTableWidgetItem(post->Name().c_str());
|
||||||
|
table->setItem(i, 2, cb);
|
||||||
|
SetCheckFromMap(cb, post);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Called when a checkbox changes state.
|
||||||
|
/// There is a slight hack here to apply the change to all selected checkboxes
|
||||||
|
/// if ctrl is pressed.
|
||||||
|
/// Otherwise it will only apply to the checkbox that was clicked.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="item"></param>
|
||||||
|
void FractoriumVariationsDialog::OnVariationsTableItemChanged(QTableWidgetItem* item)
|
||||||
|
{
|
||||||
|
bool ctrl = QGuiApplication::keyboardModifiers().testFlag(Qt::ControlModifier);
|
||||||
|
|
||||||
|
if (ctrl)
|
||||||
|
ForEachSelectedCell([&](QTableWidgetItem* cb) { cb->setCheckState(item->checkState()); });
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Called when the user clicks ok.
|
||||||
|
/// Copy the state of the checkboxes to the map.
|
||||||
|
/// </summary>
|
||||||
|
void FractoriumVariationsDialog::Accept()
|
||||||
|
{
|
||||||
|
CheckBoxesToMap();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Return a const reference to the map.
|
||||||
|
/// This will contains the state of the checkboxes after
|
||||||
|
/// the user clicks ok.
|
||||||
|
/// </summary>
|
||||||
|
const QMap<QString, QVariant>& FractoriumVariationsDialog::Map()
|
||||||
|
{
|
||||||
|
return m_Vars;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Copy the state of the map to the checkboxes and show the dialog.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="e">Event, passed to base.</param>
|
||||||
|
void FractoriumVariationsDialog::showEvent(QShowEvent* e)
|
||||||
|
{
|
||||||
|
MapToCheckBoxes();
|
||||||
|
QDialog::showEvent(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Set the state of the passed in table item checkbox based on the boolean contained
|
||||||
|
/// in the map for the passed in variation.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="cb">The checkbox to check</param>
|
||||||
|
/// <param name="var">That variation to be looked up in the map</param>
|
||||||
|
void FractoriumVariationsDialog::SetCheckFromMap(QTableWidgetItem* cb, const Variation<float>* var)
|
||||||
|
{
|
||||||
|
if (!m_Vars.contains(var->Name().c_str()))
|
||||||
|
{
|
||||||
|
cb->setCheckState(Qt::Checked);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bool chk = m_Vars[var->Name().c_str()].toBool();
|
||||||
|
|
||||||
|
cb->setCheckState(chk ? Qt::Checked : Qt::Unchecked);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Copy the values in the map to the state of the checkboxes.
|
||||||
|
/// </summary>
|
||||||
|
void FractoriumVariationsDialog::MapToCheckBoxes()
|
||||||
|
{
|
||||||
|
ForEachCell([&](QTableWidgetItem* cb)
|
||||||
|
{
|
||||||
|
if (auto var = m_VariationList.GetVariation(cb->text().toStdString()))
|
||||||
|
SetCheckFromMap(cb, var);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Copy the state of the checkboxes to the map.
|
||||||
|
/// </summary>
|
||||||
|
void FractoriumVariationsDialog::CheckBoxesToMap()
|
||||||
|
{
|
||||||
|
ForEachCell([&](QTableWidgetItem* cb)
|
||||||
|
{
|
||||||
|
if (auto var = m_VariationList.GetVariation(cb->text().toStdString()))
|
||||||
|
m_Vars[cb->text()] = (cb->checkState() == Qt::Checked);
|
||||||
|
});
|
||||||
|
}
|
47
Source/Fractorium/VariationsDialog.h
Normal file
47
Source/Fractorium/VariationsDialog.h
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "ui_VariationsDialog.h"
|
||||||
|
#include "FractoriumSettings.h"
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// FractoriumVariationsDialog class.
|
||||||
|
/// </summary>
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The variations filter dialog displays several columns
|
||||||
|
/// with the different types of variations shown as checkboxes.
|
||||||
|
/// This is used to filter the variations that are shown in the main window
|
||||||
|
/// because the list is very long.
|
||||||
|
/// The results are stored in a map and returned.
|
||||||
|
/// These are used in conjunction with the filter edit box to filter what's shown.
|
||||||
|
/// </summary>
|
||||||
|
class FractoriumVariationsDialog : public QDialog
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
FractoriumVariationsDialog(FractoriumSettings* settings, QWidget* p = nullptr, Qt::WindowFlags f = nullptr);
|
||||||
|
const QMap<QString, QVariant>& Map();
|
||||||
|
void ForEachCell(std::function<void(QTableWidgetItem* cb)> func);
|
||||||
|
void ForEachSelectedCell(std::function<void(QTableWidgetItem* cb)> func);
|
||||||
|
void SyncSettings();
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
void OnSelectAllButtonClicked(bool checked);
|
||||||
|
void OnInvertSelectionButtonClicked(bool checked);
|
||||||
|
void OnSelectNoneButtonClicked(bool checked);
|
||||||
|
void Accept();
|
||||||
|
void OnVariationsTableItemChanged(QTableWidgetItem* item);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void showEvent(QShowEvent* e) override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
void MapToCheckBoxes();
|
||||||
|
void CheckBoxesToMap();
|
||||||
|
void Populate();
|
||||||
|
void SetCheckFromMap(QTableWidgetItem* cb, const Variation<float>* var);
|
||||||
|
VariationList<float> m_VariationList;
|
||||||
|
QMap<QString, QVariant> m_Vars;
|
||||||
|
FractoriumSettings* m_Settings;
|
||||||
|
Ui::VariationsDialog ui;
|
||||||
|
};
|
162
Source/Fractorium/VariationsDialog.ui
Normal file
162
Source/Fractorium/VariationsDialog.ui
Normal file
@ -0,0 +1,162 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>VariationsDialog</class>
|
||||||
|
<widget class="QDialog" name="VariationsDialog">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>585</width>
|
||||||
|
<height>517</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Variations Filter</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>5</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>4</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>5</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>5</number>
|
||||||
|
</property>
|
||||||
|
<property name="spacing">
|
||||||
|
<number>4</number>
|
||||||
|
</property>
|
||||||
|
<item row="4" column="0">
|
||||||
|
<widget class="QDialogButtonBox" name="ButtonBox">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="standardButtons">
|
||||||
|
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0">
|
||||||
|
<widget class="QTableWidget" name="VariationsTable">
|
||||||
|
<property name="mouseTracking">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="editTriggers">
|
||||||
|
<set>QAbstractItemView::NoEditTriggers</set>
|
||||||
|
</property>
|
||||||
|
<property name="showDropIndicator" stdset="0">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="dragEnabled">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="selectionMode">
|
||||||
|
<enum>QAbstractItemView::ExtendedSelection</enum>
|
||||||
|
</property>
|
||||||
|
<property name="columnCount">
|
||||||
|
<number>3</number>
|
||||||
|
</property>
|
||||||
|
<attribute name="horizontalHeaderVisible">
|
||||||
|
<bool>true</bool>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="horizontalHeaderCascadingSectionResizes">
|
||||||
|
<bool>true</bool>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="horizontalHeaderDefaultSectionSize">
|
||||||
|
<number>190</number>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="horizontalHeaderHighlightSections">
|
||||||
|
<bool>false</bool>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="horizontalHeaderStretchLastSection">
|
||||||
|
<bool>true</bool>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="verticalHeaderVisible">
|
||||||
|
<bool>true</bool>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="verticalHeaderDefaultSectionSize">
|
||||||
|
<number>19</number>
|
||||||
|
</attribute>
|
||||||
|
<column>
|
||||||
|
<property name="text">
|
||||||
|
<string>Pre</string>
|
||||||
|
</property>
|
||||||
|
</column>
|
||||||
|
<column>
|
||||||
|
<property name="text">
|
||||||
|
<string>Regular</string>
|
||||||
|
</property>
|
||||||
|
</column>
|
||||||
|
<column>
|
||||||
|
<property name="text">
|
||||||
|
<string>Post</string>
|
||||||
|
</property>
|
||||||
|
</column>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="SelectAllButton">
|
||||||
|
<property name="text">
|
||||||
|
<string>Select All</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="InvertSelectionButton">
|
||||||
|
<property name="text">
|
||||||
|
<string>Invert Selection</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="SelectNoneButton">
|
||||||
|
<property name="text">
|
||||||
|
<string>Select None</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections>
|
||||||
|
<connection>
|
||||||
|
<sender>ButtonBox</sender>
|
||||||
|
<signal>accepted()</signal>
|
||||||
|
<receiver>VariationsDialog</receiver>
|
||||||
|
<slot>accept()</slot>
|
||||||
|
<hints>
|
||||||
|
<hint type="sourcelabel">
|
||||||
|
<x>248</x>
|
||||||
|
<y>254</y>
|
||||||
|
</hint>
|
||||||
|
<hint type="destinationlabel">
|
||||||
|
<x>157</x>
|
||||||
|
<y>274</y>
|
||||||
|
</hint>
|
||||||
|
</hints>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>ButtonBox</sender>
|
||||||
|
<signal>rejected()</signal>
|
||||||
|
<receiver>VariationsDialog</receiver>
|
||||||
|
<slot>reject()</slot>
|
||||||
|
<hints>
|
||||||
|
<hint type="sourcelabel">
|
||||||
|
<x>316</x>
|
||||||
|
<y>260</y>
|
||||||
|
</hint>
|
||||||
|
<hint type="destinationlabel">
|
||||||
|
<x>286</x>
|
||||||
|
<y>274</y>
|
||||||
|
</hint>
|
||||||
|
</hints>
|
||||||
|
</connection>
|
||||||
|
</connections>
|
||||||
|
</ui>
|
Loading…
Reference in New Issue
Block a user