--User changes

-Fix stylesheets.
-Make various fields in the options window be resettable via double click.
-Get stylesheets working properly on Windows and Linux with Qt6.
-Set default style to Fusion.

--Code changes
-Get build and deployment scripts working with latest versions of Qt6, AppImage, and various library dependencies.
-Add two new macros so it would build with the latest gcc: SINGLETON_DERIVED_DECL_T and SINGLETON_DERIVED_IMPL_T.
-Small changes to opencl.hpp.
-Center progress bars on Linux.
-Proper sizing of vertical header on the xaos visualization table on Linux.
This commit is contained in:
Person 2023-06-22 19:25:53 -06:00
parent 6b641d233d
commit 484b2e3123
20 changed files with 843 additions and 765 deletions

View File

@ -124,19 +124,19 @@
<File Id="libxml2.dll" Source="$(var.SolutionDir)..\..\..\Bin\$(var.Platform)\Release\libxml2.dll" KeyPath="yes" Checksum="yes" ProcessorArchitecture="x64" ReadOnly="yes" /> <File Id="libxml2.dll" Source="$(var.SolutionDir)..\..\..\Bin\$(var.Platform)\Release\libxml2.dll" KeyPath="yes" Checksum="yes" ProcessorArchitecture="x64" ReadOnly="yes" />
</Component> </Component>
<Component Id="msvcp140.dll" Guid="8f1ffde7-c1bd-45fb-8bc8-26dde552eafd"> <Component Id="msvcp140.dll" Guid="8f1ffde7-c1bd-45fb-8bc8-26dde552eafd">
<File Id="msvcp140.dll" Source="$(var.DevEnvDir)..\..\VC\Redist\MSVC\14.34.31931\x64\Microsoft.VC143.CRT\msvcp140.dll" KeyPath="yes" Checksum="yes" ReadOnly="yes" /> <File Id="msvcp140.dll" Source="$(var.DevEnvDir)..\..\VC\Redist\MSVC\14.36.32532\x64\Microsoft.VC143.CRT\msvcp140.dll" KeyPath="yes" Checksum="yes" ReadOnly="yes" />
</Component> </Component>
<Component Id="vcruntime140.dll" Guid="50c9bc27-c547-4a03-9f6c-cd416f449dd8"> <Component Id="vcruntime140.dll" Guid="50c9bc27-c547-4a03-9f6c-cd416f449dd8">
<File Id="vcruntime140.dll" Source="$(var.DevEnvDir)..\..\VC\Redist\MSVC\14.34.31931\x64\Microsoft.VC143.CRT\vcruntime140.dll" KeyPath="yes" Checksum="yes" ReadOnly="yes" /> <File Id="vcruntime140.dll" Source="$(var.DevEnvDir)..\..\VC\Redist\MSVC\14.36.32532\x64\Microsoft.VC143.CRT\vcruntime140.dll" KeyPath="yes" Checksum="yes" ReadOnly="yes" />
</Component> </Component>
<Component Id="vcruntime140_1.dll" Guid="a02507f8-326b-45b2-b734-e5091921559f"> <Component Id="vcruntime140_1.dll" Guid="a02507f8-326b-45b2-b734-e5091921559f">
<File Id="vcruntime140_1.dll" Source="$(var.DevEnvDir)..\..\VC\Redist\MSVC\14.34.31931\x64\Microsoft.VC143.CRT\vcruntime140_1.dll" KeyPath="yes" Checksum="yes" ReadOnly="yes" /> <File Id="vcruntime140_1.dll" Source="$(var.DevEnvDir)..\..\VC\Redist\MSVC\14.36.32532\x64\Microsoft.VC143.CRT\vcruntime140_1.dll" KeyPath="yes" Checksum="yes" ReadOnly="yes" />
</Component> </Component>
<Component Id="vccorlib140.dll" Guid="affe33e7-1e64-4bb0-a062-2b56f77459b4"> <Component Id="vccorlib140.dll" Guid="affe33e7-1e64-4bb0-a062-2b56f77459b4">
<File Id="vccorlib140.dll" Source="$(var.DevEnvDir)..\..\VC\Redist\MSVC\14.34.31931\x64\Microsoft.VC143.CRT\vccorlib140.dll" KeyPath="yes" Checksum="yes" ReadOnly="yes" /> <File Id="vccorlib140.dll" Source="$(var.DevEnvDir)..\..\VC\Redist\MSVC\14.36.32532\x64\Microsoft.VC143.CRT\vccorlib140.dll" KeyPath="yes" Checksum="yes" ReadOnly="yes" />
</Component> </Component>
<Component Id="concrt140.dll" Guid="7fb716a1-1b4f-42fb-89c7-4d216ebd6e2e"> <Component Id="concrt140.dll" Guid="7fb716a1-1b4f-42fb-89c7-4d216ebd6e2e">
<File Id="concrt140.dll" Source="$(var.DevEnvDir)..\..\VC\Redist\MSVC\14.34.31931\x64\Microsoft.VC143.CRT\concrt140.dll" KeyPath="yes" Checksum="yes" ReadOnly="yes" /> <File Id="concrt140.dll" Source="$(var.DevEnvDir)..\..\VC\Redist\MSVC\14.36.32532\x64\Microsoft.VC143.CRT\concrt140.dll" KeyPath="yes" Checksum="yes" ReadOnly="yes" />
</Component> </Component>
<Component Id="flam3palettes.xml" Guid="d3adb0bb-14ef-4923-99d9-a5784b7ef04e"> <Component Id="flam3palettes.xml" Guid="d3adb0bb-14ef-4923-99d9-a5784b7ef04e">
<File Id="flam3palettes.xml" Source="$(var.SolutionDir)..\..\..\Data\flam3-palettes.xml" KeyPath="yes" Checksum="yes" ReadOnly="yes" /> <File Id="flam3palettes.xml" Source="$(var.SolutionDir)..\..\..\Data\flam3-palettes.xml" KeyPath="yes" Checksum="yes" ReadOnly="yes" />

View File

@ -94,7 +94,10 @@ win32 {
LIBS += -ljpeg LIBS += -ljpeg
LIBS += -lpng LIBS += -lpng
LIBS += -lpthread LIBS += -lpthread
LIBS += -lOpenEXR LIBS += -lIlmImf
LIBS += -lHalf
LIBS += -lImath
LIBS += -lIex
unix:!macx { unix:!macx {
LIBS += -lxml2 LIBS += -lxml2

View File

@ -4,12 +4,12 @@ You should keep this at the top of whatever custom style you make to ensure the
/* /*
QTabBar::tab { height: 4ex; } QTabBar::tab { height: 4ex; }
*/ */
/* /*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
* *
{ {
font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/ font: 8pt "MS Shell Dlg 2";
} }
*/
/*This is needed to give the labels on the status bar some padding.*/ /*This is needed to give the labels on the status bar some padding.*/
QStatusBar QLabel { padding-left: 2px; padding-right: 2px; } QStatusBar QLabel { padding-left: 2px; padding-right: 2px; }
@ -135,7 +135,7 @@ QCheckBox::indicator:enabled:checked,
QTableView::indicator:enabled:checked QTableView::indicator:enabled:checked
{ {
background-color: lightgray; background-color: lightgray;
image: url(:/Fractorium/Icons/checkbox_checked.png); image: url(:/Fractorium/Icons/checkbox_checked.png);
} }
QCheckBox::indicator:disabled:unchecked, QCheckBox::indicator:disabled:unchecked,
@ -149,7 +149,7 @@ QCheckBox::indicator:disabled:checked,
QTableView::indicator:disabled:checked QTableView::indicator:disabled:checked
{ {
background-color: gray; background-color: gray;
image: none; image: none;
} }
QRadioButton::indicator:checked QRadioButton::indicator:checked
@ -215,9 +215,9 @@ QComboBox::item:selected
QComboBox QAbstractItemView QComboBox QAbstractItemView
{ {
border: 1px solid gray; border: 1px solid gray;
outline: none; outline: none;
selection-background-color: darkgray; selection-background-color: darkgray;
} }
QTableView QComboBox QTableView QComboBox
@ -244,9 +244,9 @@ QProgressBar
{ {
color: black; color: black;
background-color: gray; background-color: gray;
border: 0px none gray; border: 0px none gray;
border-radius: 3px; border-radius: 3px;
text-align: center; text-align: center center;
} }
QProgressBar::chunk QProgressBar::chunk
@ -297,8 +297,8 @@ QGroupBox
{ {
padding-top: 3px; padding-top: 3px;
border: 2px solid gray; border: 2px solid gray;
border-radius: 4px; border-radius: 4px;
margin-top: 3ex; margin-top: 3ex;
} }
QGroupBox::title QGroupBox::title
@ -353,7 +353,7 @@ QTreeView::item:selected
QTreeView::branch:!has-children QTreeView::branch:!has-children
{ {
background: rgb(53, 53, 53); background: rgb(53, 53, 53);
} }
QTreeView::branch:has-children:closed QTreeView::branch:has-children:closed
@ -459,7 +459,7 @@ QScrollBar::vertical
QScrollBar::handle::vertical QScrollBar::handle::vertical
{ {
background-color: gray; background-color: gray;
border-top: 1px solid darkgray; border-top: 1px solid darkgray;
border-bottom: 1px solid darkgray; border-bottom: 1px solid darkgray;
min-height: 20px; min-height: 20px;
@ -485,15 +485,15 @@ QScrollBar::sub-line::vertical
QScrollBar::up-arrow::vertical, QScrollBar::down-arrow::vertical QScrollBar::up-arrow::vertical, QScrollBar::down-arrow::vertical
{ {
border: 2px solid darkgray; border: 2px solid darkgray;
width: 5px; width: 5px;
height: 12px; height: 12px;
background-color: gray; background-color: gray;
} }
QScrollBar::add-page::vertical, QScrollBar::sub-page::vertical, QScrollBar::add-page::horizontal, QScrollBar::sub-page::horizontal QScrollBar::add-page::vertical, QScrollBar::sub-page::vertical, QScrollBar::add-page::horizontal, QScrollBar::sub-page::horizontal
{ {
background-color: darkgray; background-color: darkgray;
} }
QScrollBar::horizontal QScrollBar::horizontal
@ -532,10 +532,10 @@ QScrollBar::sub-line::horizontal
QScrollBar::left-arrow::horizontal, QScrollBar::right-arrow::horizontal QScrollBar::left-arrow::horizontal, QScrollBar::right-arrow::horizontal
{ {
border: 2px solid darkgray; border: 2px solid darkgray;
width: 12px; width: 12px;
height: 5px; height: 5px;
background-color: gray; background-color: gray;
} }
QMenu::separator QMenu::separator

View File

@ -4,12 +4,11 @@ You should keep this at the top of whatever custom style you make to ensure the
/* /*
QTabBar::tab { height: 4ex; } QTabBar::tab { height: 4ex; }
*/ */
/* /*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
* *
{ {
font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/ font: 8pt "MS Shell Dlg 2";
} }
*/
/*Specific styles below this line*/ /*Specific styles below this line*/
Fractorium Fractorium
@ -132,7 +131,7 @@ QCheckBox::indicator:enabled:checked,
QTableView::indicator:enabled:checked QTableView::indicator:enabled:checked
{ {
background-color: lightgray; background-color: lightgray;
image: url(:/Fractorium/Icons/checkbox_checked.png); image: url(:/Fractorium/Icons/checkbox_checked.png);
} }
QCheckBox::indicator:disabled:unchecked, QCheckBox::indicator:disabled:unchecked,
@ -146,7 +145,7 @@ QCheckBox::indicator:disabled:checked,
QTableView::indicator:disabled:checked QTableView::indicator:disabled:checked
{ {
background-color: gray; background-color: gray;
image: none; image: none;
} }
QRadioButton::indicator:checked QRadioButton::indicator:checked
@ -212,9 +211,9 @@ QComboBox::item:selected
QComboBox QAbstractItemView QComboBox QAbstractItemView
{ {
border: 1px solid gray; border: 1px solid gray;
outline: none; outline: none;
selection-background-color: darkgray; selection-background-color: darkgray;
} }
QTableView QComboBox QTableView QComboBox
@ -241,9 +240,9 @@ QProgressBar
{ {
color: black; color: black;
background-color: gray; background-color: gray;
border: 0px none gray; border: 0px none gray;
border-radius: 3px; border-radius: 3px;
text-align: center; text-align: center center;
} }
QProgressBar::chunk QProgressBar::chunk
@ -294,8 +293,8 @@ QGroupBox
{ {
padding-top: 3px; padding-top: 3px;
border: 2px solid gray; border: 2px solid gray;
border-radius: 4px; border-radius: 4px;
margin-top: 3ex; margin-top: 3ex;
} }
QGroupBox::title QGroupBox::title
@ -483,15 +482,15 @@ QScrollBar::sub-line::vertical
QScrollBar::up-arrow::vertical, QScrollBar::down-arrow::vertical QScrollBar::up-arrow::vertical, QScrollBar::down-arrow::vertical
{ {
border: 2px solid darkgray; border: 2px solid darkgray;
width: 5px; width: 5px;
height: 12px; height: 12px;
background-color: gray; background-color: gray;
} }
QScrollBar::add-page::vertical, QScrollBar::sub-page::vertical, QScrollBar::add-page::horizontal, QScrollBar::sub-page::horizontal QScrollBar::add-page::vertical, QScrollBar::sub-page::vertical, QScrollBar::add-page::horizontal, QScrollBar::sub-page::horizontal
{ {
background-color: darkgray; background-color: darkgray;
} }
QScrollBar::horizontal QScrollBar::horizontal
@ -530,10 +529,10 @@ QScrollBar::sub-line::horizontal
QScrollBar::left-arrow::horizontal, QScrollBar::right-arrow::horizontal QScrollBar::left-arrow::horizontal, QScrollBar::right-arrow::horizontal
{ {
border: 2px solid darkgray; border: 2px solid darkgray;
width: 12px; width: 12px;
height: 5px; height: 5px;
background-color: gray; background-color: gray;
} }
QMenu::separator QMenu::separator

View File

@ -133,7 +133,7 @@ QCheckBox::indicator:enabled:checked,
QTableView::indicator:enabled:checked QTableView::indicator:enabled:checked
{ {
background-color: lightgray; background-color: lightgray;
image: url(:/Fractorium/Icons/checkbox_checked.png); image: url(:/Fractorium/Icons/checkbox_checked.png);
} }
QCheckBox::indicator:disabled:unchecked, QCheckBox::indicator:disabled:unchecked,
@ -147,7 +147,7 @@ QCheckBox::indicator:disabled:checked,
QTableView::indicator:disabled:checked QTableView::indicator:disabled:checked
{ {
background-color: gray; background-color: gray;
image: none; image: none;
} }
QRadioButton::indicator:checked QRadioButton::indicator:checked
@ -242,15 +242,15 @@ QProgressBar
{ {
color: black; color: black;
background-color: gray; background-color: gray;
border: 0px none gray; border: 0px none gray;
border-radius: 3px; border-radius: 3px;
text-align: center; text-align: center center;
} }
QProgressBar::chunk QProgressBar::chunk
{ {
border-radius: 3px; border-radius: 3px;
background-color: lightgray; background-color: lightgray;
} }
QStatusBar QProgressBar QStatusBar QProgressBar
@ -295,8 +295,8 @@ QGroupBox
{ {
padding-top: 3px; padding-top: 3px;
border: 2px solid gray; border: 2px solid gray;
border-radius: 4px; border-radius: 4px;
margin-top: 3ex; margin-top: 3ex;
} }
QGroupBox::title QGroupBox::title
@ -351,7 +351,7 @@ QTreeView::item:selected
QTreeView::branch:!has-children QTreeView::branch:!has-children
{ {
background: rgb(53, 53, 53); background: rgb(53, 53, 53);
} }
QTreeView::branch:has-children:closed QTreeView::branch:has-children:closed
@ -457,7 +457,7 @@ QScrollBar::vertical
QScrollBar::handle::vertical QScrollBar::handle::vertical
{ {
background-color: gray; background-color: gray;
border-top: 1px solid darkgray; border-top: 1px solid darkgray;
border-bottom: 1px solid darkgray; border-bottom: 1px solid darkgray;
min-height: 20px; min-height: 20px;
@ -483,15 +483,15 @@ QScrollBar::sub-line::vertical
QScrollBar::up-arrow::vertical, QScrollBar::down-arrow::vertical QScrollBar::up-arrow::vertical, QScrollBar::down-arrow::vertical
{ {
border: 2px solid darkgray; border: 2px solid darkgray;
width: 5px; width: 5px;
height: 12px; height: 12px;
background-color: gray; background-color: gray;
} }
QScrollBar::add-page::vertical, QScrollBar::sub-page::vertical, QScrollBar::add-page::horizontal, QScrollBar::sub-page::horizontal QScrollBar::add-page::vertical, QScrollBar::sub-page::vertical, QScrollBar::add-page::horizontal, QScrollBar::sub-page::horizontal
{ {
background-color: darkgray; background-color: darkgray;
} }
QScrollBar::horizontal QScrollBar::horizontal
@ -530,10 +530,10 @@ QScrollBar::sub-line::horizontal
QScrollBar::left-arrow::horizontal, QScrollBar::right-arrow::horizontal QScrollBar::left-arrow::horizontal, QScrollBar::right-arrow::horizontal
{ {
border: 2px solid darkgray; border: 2px solid darkgray;
width: 12px; width: 12px;
height: 5px; height: 5px;
background-color: gray; background-color: gray;
} }
QMenu::separator QMenu::separator

View File

@ -4,9 +4,10 @@ You should keep this at the top of whatever custom style you make to ensure the
/* /*
QTabBar::tab { height: 4ex; } QTabBar::tab { height: 4ex; }
*/ */
/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
* *
{ {
font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/ font: 8pt "MS Shell Dlg 2";
} }
QObject QObject
@ -41,42 +42,40 @@ QTableView
/*For some reason, Qt does not draw table headers correctly, so the style must always be manually specified.*/ /*For some reason, Qt does not draw table headers correctly, so the style must always be manually specified.*/
QHeaderView::section::vertical:enabled QHeaderView::section::vertical:enabled
{ {
width: 12px;
color: black; color: black;
background-color: lightgray; background-color: lightgray;
border: none; border: none;
padding: 0px; padding: 0px;
padding-left: 4px; padding-left: 4px;
} }
QHeaderView::section::horizontal:enabled QHeaderView::section::horizontal:enabled
{ {
height: 18px; height: 18px;
color: black; color: black;
background-color: lightgray; background-color: lightgray;
border: none; border: none;
padding: 0px; padding: 0px;
padding-left: 4px; padding-left: 4px;
} }
QHeaderView::section::vertical:disabled QHeaderView::section::vertical:disabled
{ {
width: 12px;
color: rgb(35, 35, 35); color: rgb(35, 35, 35);
background-color: rgb(53, 53, 53); background-color: rgb(53, 53, 53);
border: none; border: none;
padding: 0px; padding: 0px;
padding-left: 4px; padding-left: 4px;
} }
QHeaderView::section::horizontal:disabled QHeaderView::section::horizontal:disabled
{ {
height: 18px; height: 18px;
color:rgb(35, 35, 35); color:rgb(35, 35, 35);
background-color: rgb(53, 53, 53); background-color: rgb(53, 53, 53);
border: none; border: none;
padding: 0px; padding: 0px;
padding-left: 4px; padding-left: 4px;
} }
QTableView QTableView
@ -89,13 +88,13 @@ QTableView
QTableView QTableCornerButton::section:enabled QTableView QTableCornerButton::section:enabled
{ {
border: none; border: none;
background-color: lightgray; background-color: lightgray;
} }
QTableView QTableCornerButton::section:disabled QTableView QTableCornerButton::section:disabled
{ {
border: none; border: none;
background-color: rgb(53, 53, 53); background-color: rgb(53, 53, 53);
} }
@ -154,12 +153,20 @@ QScrollBar::sub-line::vertical
subcontrol-origin: margin; subcontrol-origin: margin;
} }
QScrollBar::up-arrow::vertical, QScrollBar::down-arrow::vertical QScrollBar::up-arrow::vertical
{ {
border: 2px solid darkgray; border: 2px solid darkgray;
width: 5px; width: 5px;
height: 12px; height: 12px;
background-color: gray; background-color: gray;
}
QScrollBar::down-arrow::vertical
{
border: 2px solid darkgray;
width: 5px;
height: 12px;
background-color: gray;
} }
QScrollBar::add-page::vertical, QScrollBar::add-page::vertical,
@ -167,7 +174,7 @@ QScrollBar::sub-page::vertical,
QScrollBar::add-page::horizontal, QScrollBar::add-page::horizontal,
QScrollBar::sub-page::horizontal QScrollBar::sub-page::horizontal
{ {
background-color: darkgray; background-color: darkgray;
} }
QScrollBar::horizontal QScrollBar::horizontal
@ -204,13 +211,20 @@ QScrollBar::sub-line::horizontal
subcontrol-origin: margin; subcontrol-origin: margin;
} }
QScrollBar::left-arrow::horizontal, QScrollBar::left-arrow::horizontal
{
border: 2px solid darkgray;
width: 12px;
height: 5px;
background-color: gray;
}
QScrollBar::right-arrow::horizontal QScrollBar::right-arrow::horizontal
{ {
border: 2px solid darkgray; border: 2px solid darkgray;
width: 12px; width: 12px;
height: 5px; height: 5px;
background-color: gray; background-color: gray;
} }
/*================================================================================================== /*==================================================================================================
@ -368,7 +382,7 @@ QDockWidget QTabBar
QDialog QTabBar QDialog QTabBar
{ {
border-color: transparent; /* set color for QTabBars inside Preferences dialog */ border-color: transparent; /* set color for QTabBars inside Preferences dialog */
} }
/* end fix */ /* end fix */
@ -377,15 +391,15 @@ QTabBar::tab
background-color: transparent; background-color: transparent;
border: 1px solid transparent; border: 1px solid transparent;
padding: 4px 4px 4px 4px; padding: 4px 4px 4px 4px;
margin: 0px; margin: 0px;
} }
QDialog QTabBar::tab:top QDialog QTabBar::tab:top
{ {
background-color: transparent; background-color: transparent;
border: 1px solid transparent; border: 1px solid transparent;
padding: 4px 4px 4px 4px; padding: 4px 4px 4px 4px;
min-width: 20ex; min-width: 20ex;
} }
QTabBar::tab:left, QTabBar::tab:left,
@ -462,28 +476,28 @@ QToolBar
QToolBar > QToolButton QToolBar > QToolButton
{ {
margin: 1px; margin: 1px;
padding: 1px; padding: 1px;
border-radius: 3px; border-radius: 3px;
border: 1px solid #5e5e5e; border: 1px solid #5e5e5e;
position: relative; position: relative;
subcontrol-position: right; subcontrol-position: right;
subcontrol-origin: margin; subcontrol-origin: margin;
} }
QDialog > QToolBar > QToolButton QDialog > QToolBar > QToolButton
{ {
width: 95px; width: 95px;
margin: 0px; margin: 0px;
padding: 0px; padding: 0px;
border-radius: 3px; border-radius: 3px;
border: 1px solid #5e5e5e; border: 1px solid #5e5e5e;
} }
QDialog > QToolBar > QToolButton::menu-button QDialog > QToolBar > QToolButton::menu-button
{ {
left: -2px; left: -2px;
border-radius: 3px; border-radius: 3px;
border: 1px solid #5e5e5e; border: 1px solid #5e5e5e;
} }
@ -523,11 +537,13 @@ QPushButton
{ {
margin: 1px; margin: 1px;
padding: 4px; padding: 4px;
color: white;
background-color: gray;
} }
QPushButton:pressed QPushButton:pressed
{ {
background-color: gray; background-color: darkgray;
} }
QPushButton:focus QPushButton:focus
@ -574,7 +590,7 @@ QTableView::indicator:enabled:checked,
QGroupBox::indicator:enabled:checked QGroupBox::indicator:enabled:checked
{ {
background-color: lightgray; background-color: lightgray;
image: url(:/Fractorium/Icons/checkbox_checked.png); image: url(:/Fractorium/Icons/checkbox_checked.png);
} }
QCheckBox::indicator:disabled:unchecked, QCheckBox::indicator:disabled:unchecked,
@ -590,7 +606,7 @@ QTableView::indicator:disabled:checked,
QGroupBox::indicator:disabled:checked QGroupBox::indicator:disabled:checked
{ {
background-color: gray; background-color: gray;
image: none; image: none;
} }
QRadioButton::indicator:checked QRadioButton::indicator:checked
@ -657,15 +673,15 @@ QProgressBar
{ {
color: black; color: black;
background-color: gray; background-color: gray;
border: 0px none gray; border: 0px none gray;
border-radius: 3px; border-radius: 3px;
text-align: center; text-align: center center;
} }
QProgressBar::chunk QProgressBar::chunk
{ {
border-radius: 3px; border-radius: 3px;
background-color: lightgray; background-color: lightgray;
} }
QStatusBar QProgressBar QStatusBar QProgressBar
@ -679,8 +695,8 @@ QGroupBox
{ {
padding-top: 8px; padding-top: 8px;
border: 2px solid gray; border: 2px solid gray;
border-radius: 4px; border-radius: 4px;
margin-top: 3ex; margin-top: 3ex;
} }
QGroupBox::title QGroupBox::title
@ -751,16 +767,9 @@ QTableView#FinalRenderParamsTable QPushButton
margin-bottom: 2px; margin-bottom: 2px;
} }
QTableView#XaosTableView QHeaderView::section::vertical,
QTableView#XaosDistVizTableWidget QHeaderView::section::vertical,
QTableView#XaosAppliedTableView QHeaderView::section::vertical
{
width: 19px;
}
QTableView#SummaryTable QHeaderView::section::vertical QTableView#SummaryTable QHeaderView::section::vertical
{ {
width: 69px; width: 69px;
} }
QssDialog QssTextEdit#QssEdit QssDialog QssTextEdit#QssEdit

View File

@ -4,9 +4,10 @@ You should keep this at the top of whatever custom style you make to ensure the
/* /*
QTabBar::tab { height: 4ex; } QTabBar::tab { height: 4ex; }
*/ */
/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
* *
{ {
font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/ font: 8pt "MS Shell Dlg 2";
} }
QObject QObject
@ -45,7 +46,6 @@ QTableView
/*For some reason, Qt does not draw table headers correctly, so the style must always be manually specified.*/ /*For some reason, Qt does not draw table headers correctly, so the style must always be manually specified.*/
QHeaderView::section::vertical:enabled QHeaderView::section::vertical:enabled
{ {
width: 12px;
color: black; color: black;
background-color: rgb(176, 204, 177); background-color: rgb(176, 204, 177);
border: none; border: none;
@ -65,7 +65,6 @@ QHeaderView::section::horizontal:enabled
QHeaderView::section::vertical:disabled QHeaderView::section::vertical:disabled
{ {
width: 12px;
color: rgb(35, 35, 35); color: rgb(35, 35, 35);
background-color: rgb(53, 53, 53); background-color: rgb(53, 53, 53);
border: none; border: none;
@ -174,12 +173,20 @@ QScrollBar::sub-line::vertical
subcontrol-origin: margin; subcontrol-origin: margin;
} }
QScrollBar::up-arrow::vertical, QScrollBar::down-arrow::vertical QScrollBar::up-arrow::vertical
{ {
border: 2px solid rgb(124, 232, 0); border: 2px solid rgb(124, 232, 0);
width: 5px; width: 5px;
height: 12px; height: 12px;
background-color: gray; background-color: gray;
}
QScrollBar::down-arrow::vertical
{
border: 2px solid rgb(124, 232, 0);
width: 5px;
height: 12px;
background-color: gray;
} }
QScrollBar::add-page::vertical, QScrollBar::add-page::vertical,
@ -187,12 +194,12 @@ QScrollBar::sub-page::vertical,
QScrollBar::add-page::horizontal, QScrollBar::add-page::horizontal,
QScrollBar::sub-page::horizontal QScrollBar::sub-page::horizontal
{ {
background-color: rgb(115, 133, 116); background-color: rgb(115, 133, 116);
} }
QScrollBar::horizontal QScrollBar::horizontal
{ {
background-color: rgb(176, 204, 177); background-color: rgb(115, 133, 116);
border: 0px solid darkgray; border: 0px solid darkgray;
height: 15px; height: 15px;
margin: 0px 20px 0 20px; margin: 0px 20px 0 20px;
@ -224,7 +231,14 @@ QScrollBar::sub-line::horizontal
subcontrol-origin: margin; subcontrol-origin: margin;
} }
QScrollBar::left-arrow::horizontal, QScrollBar::left-arrow::horizontal
{
border: 2px solid rgb(124, 232, 0);
width: 12px;
height: 5px;
background-color: gray;
}
QScrollBar::right-arrow::horizontal QScrollBar::right-arrow::horizontal
{ {
border: 2px solid rgb(124, 232, 0); border: 2px solid rgb(124, 232, 0);
@ -718,7 +732,7 @@ QProgressBar
background-color: gray; background-color: gray;
border: 0px none gray; border: 0px none gray;
border-radius: 3px; border-radius: 3px;
text-align: center; text-align: center center;
} }
QProgressBar::chunk QProgressBar::chunk
@ -832,13 +846,6 @@ QTableView#FinalRenderParamsTable QPushButton
margin-bottom: 2px; margin-bottom: 2px;
} }
QTableView#XaosTableView QHeaderView::section::vertical,
QTableView#XaosDistVizTableWidget QHeaderView::section::vertical,
QTableView#XaosAppliedTableView QHeaderView::section::vertical
{
width: 19px;
}
QTableView#SummaryTable QHeaderView::section::vertical QTableView#SummaryTable QHeaderView::section::vertical
{ {
width: 69px; width: 69px;

View File

@ -49,7 +49,7 @@ public:
bool IsModifiable(const string& filename); bool IsModifiable(const string& filename);
const map<string, vector<Palette<T>>>& Palettes() const; const map<string, vector<Palette<T>>>& Palettes() const;
SINGLETON_DERIVED_DECL(PaletteList<T>); SINGLETON_DERIVED_DECL_T(PaletteList, T);
private: private:
PaletteList(); PaletteList();
bool Save(const string& filename); bool Save(const string& filename);

View File

@ -277,6 +277,14 @@ protected:
x(const x& other) = delete; \ x(const x& other) = delete; \
const x& operator=(const x& other) = delete//Semicolon deliberately omitted to force it on the caller. const x& operator=(const x& other) = delete//Semicolon deliberately omitted to force it on the caller.
//Use this if the body of the destructor will be implemented in a cpp file and the type is templated.
#define SINGLETON_DERIVED_DECL_T(x, T) \
friend class Singleton<x<T>>; \
public: \
~x(); \
x(const x& other) = delete; \
const x& operator=(const x& other) = delete//Semicolon deliberately omitted to force it on the caller.
//Use this if the body of the destructor is empty and is will be implemented inline in the header file. //Use this if the body of the destructor is empty and is will be implemented inline in the header file.
#define SINGLETON_DERIVED_IMPL(x) \ #define SINGLETON_DERIVED_IMPL(x) \
friend class Singleton<x>; \ friend class Singleton<x>; \
@ -285,6 +293,14 @@ protected:
x(const x& other) = delete; \ x(const x& other) = delete; \
const x& operator=(const x& other) = delete const x& operator=(const x& other) = delete
//Use this if the body of the destructor is empty and is will be implemented inline in the header file and the type is templated.
#define SINGLETON_DERIVED_IMPL_T(x, T) \
friend class Singleton<x<T>>; \
public: \
~x(){} \
x(const x& other) = delete; \
const x& operator=(const x& other) = delete
/// <summary> /// <summary>
/// The calculations in some variations were changed from what they were in flam3/Apophysis to match Chaotica. /// The calculations in some variations were changed from what they were in flam3/Apophysis to match Chaotica.
/// Some users prefer the old functionality, so provide an option to retain it. /// Some users prefer the old functionality, so provide an option to retain it.

View File

@ -709,7 +709,7 @@ public:
} }
} }
SINGLETON_DERIVED_IMPL(VarFuncs<T>); SINGLETON_DERIVED_IMPL_T(VarFuncs, T);
private: private:
/// <summary> /// <summary>

View File

@ -49,7 +49,7 @@ public:
const vector<const Variation<T>*>& NonParametricVariations() const; const vector<const Variation<T>*>& NonParametricVariations() const;
const vector<const ParametricVariation<T>*>& ParametricVariations() const; const vector<const ParametricVariation<T>*>& ParametricVariations() const;
SINGLETON_DERIVED_DECL(VariationList<T>); SINGLETON_DERIVED_DECL_T(VariationList, T);
private: private:
VariationList(); VariationList();

File diff suppressed because it is too large Load Diff

View File

@ -25,6 +25,10 @@ FractoriumFinalRenderDialog::FractoriumFinalRenderDialog(QWidget* p, Qt::WindowF
m_Info = OpenCLInfo::Instance(); m_Info = OpenCLInfo::Instance();
m_Fractorium = qobject_cast<Fractorium*>(p); m_Fractorium = qobject_cast<Fractorium*>(p);
m_Settings = FractoriumSettings::DefInstance(); m_Settings = FractoriumSettings::DefInstance();
ui.FinalRenderIterationProgress->setAlignment(Qt::AlignCenter);
ui.FinalRenderFilteringProgress->setAlignment(Qt::AlignCenter);
ui.FinalRenderAccumProgress->setAlignment(Qt::AlignCenter);
ui.FinalRenderTotalProgress->setAlignment(Qt::AlignCenter);
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);
connect(ui.FinalRenderYAxisUpCheckBox, SIGNAL(stateChanged(int)), this, SLOT(OnYAxisUpCheckBoxStateChanged(int)), Qt::QueuedConnection); connect(ui.FinalRenderYAxisUpCheckBox, SIGNAL(stateChanged(int)), this, SLOT(OnYAxisUpCheckBoxStateChanged(int)), Qt::QueuedConnection);
@ -44,7 +48,7 @@ FractoriumFinalRenderDialog::FractoriumFinalRenderDialog(QWidget* p, Qt::WindowF
SetupSpinner<SpinBox, int>(ui.FinalRenderSizeTable, this, row, -1, m_WidthSpin, spinHeight, 10, std::numeric_limits<int>::max(), 10, SIGNAL(valueChanged(int)), SLOT(OnWidthChanged(int)), true, 1920, 1920, 1920); SetupSpinner<SpinBox, int>(ui.FinalRenderSizeTable, this, row, -1, m_WidthSpin, spinHeight, 10, std::numeric_limits<int>::max(), 10, SIGNAL(valueChanged(int)), SLOT(OnWidthChanged(int)), true, 1920, 1920, 1920);
SetupSpinner<DoubleSpinBox, double>(ui.FinalRenderSizeTable, this, row, -1, m_HeightScaleSpin, spinHeight, 0.001, 99.99, 0.1, SIGNAL(valueChanged(double)), SLOT(OnHeightScaleChanged(double)), true, 1.0, 1.0, 1.0); SetupSpinner<DoubleSpinBox, double>(ui.FinalRenderSizeTable, this, row, -1, m_HeightScaleSpin, spinHeight, 0.001, 99.99, 0.1, SIGNAL(valueChanged(double)), SLOT(OnHeightScaleChanged(double)), true, 1.0, 1.0, 1.0);
SetupSpinner<SpinBox, int>(ui.FinalRenderSizeTable, this, row, -1, m_HeightSpin, spinHeight, 10, std::numeric_limits<int>::max(), 10, SIGNAL(valueChanged(int)), SLOT(OnHeightChanged(int)), true, 1080, 1080, 1080); SetupSpinner<SpinBox, int>(ui.FinalRenderSizeTable, this, row, -1, m_HeightSpin, spinHeight, 10, std::numeric_limits<int>::max(), 10, SIGNAL(valueChanged(int)), SLOT(OnHeightChanged(int)), true, 1080, 1080, 1080);
m_SubBatchPctSpin = (DoubleSpinBox*)ui.FinalRenderOpenCLSubBatchPctSpin; m_SubBatchPctSpin = ui.FinalRenderOpenCLSubBatchPctSpin;
m_SubBatchPctSpin->DoubleClick(true); m_SubBatchPctSpin->DoubleClick(true);
m_SubBatchPctSpin->DoubleClickZero(0.025); m_SubBatchPctSpin->DoubleClickZero(0.025);
m_SubBatchPctSpin->DoubleClickNonZero(0.025); m_SubBatchPctSpin->DoubleClickNonZero(0.025);

View File

@ -296,15 +296,15 @@
<attribute name="verticalHeaderVisible"> <attribute name="verticalHeaderVisible">
<bool>false</bool> <bool>false</bool>
</attribute> </attribute>
<attribute name="verticalHeaderMinimumSectionSize">
<number>22</number>
</attribute>
<attribute name="verticalHeaderDefaultSectionSize"> <attribute name="verticalHeaderDefaultSectionSize">
<number>22</number> <number>22</number>
</attribute> </attribute>
<attribute name="verticalHeaderHighlightSections"> <attribute name="verticalHeaderHighlightSections">
<bool>false</bool> <bool>false</bool>
</attribute> </attribute>
<attribute name="verticalHeaderMinimumSectionSize">
<number>22</number>
</attribute>
<row> <row>
<property name="text"> <property name="text">
<string>AMD</string> <string>AMD</string>
@ -419,7 +419,7 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="DoubleSpinBox" name="FinalRenderOpenCLSubBatchPctSpin"> <widget class="DoubleSpinBox" name="FinalRenderOpenCLSubBatchPctSpin" native="true">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed"> <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch> <horstretch>0</horstretch>
@ -441,22 +441,22 @@
<property name="toolTip"> <property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The percentage of a sub batch to execute on each thread per kernel call when using OpenCL. Default: 0.025 (256 iters with a 10k sub batch size).&lt;/p&gt;&lt;p&gt;Increase this number for slightly faster render times.&lt;/p&gt;&lt;p&gt;Note that this can cause a crash and subsequent restart of the graphics driver if each kernel call takes too long. So reduce the value if you encounter such a problem.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The percentage of a sub batch to execute on each thread per kernel call when using OpenCL. Default: 0.025 (256 iters with a 10k sub batch size).&lt;/p&gt;&lt;p&gt;Increase this number for slightly faster render times.&lt;/p&gt;&lt;p&gt;Note that this can cause a crash and subsequent restart of the graphics driver if each kernel call takes too long. So reduce the value if you encounter such a problem.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
<property name="prefix"> <property name="prefix" stdset="0">
<string>OpenCL sub batch % per thread </string> <string>OpenCL sub batch % per thread </string>
</property> </property>
<property name="decimals"> <property name="decimals" stdset="0">
<number>3</number> <number>3</number>
</property> </property>
<property name="minimum"> <property name="minimum" stdset="0">
<double>0.010000000000000</double> <double>0.010000000000000</double>
</property> </property>
<property name="maximum"> <property name="maximum" stdset="0">
<double>1.000000000000000</double> <double>1.000000000000000</double>
</property> </property>
<property name="singleStep"> <property name="singleStep" stdset="0">
<double>0.010000000000000</double> <double>0.010000000000000</double>
</property> </property>
<property name="value"> <property name="value" stdset="0">
<double>0.250000000000000</double> <double>0.250000000000000</double>
</property> </property>
</widget> </widget>
@ -593,30 +593,30 @@
<attribute name="horizontalHeaderVisible"> <attribute name="horizontalHeaderVisible">
<bool>false</bool> <bool>false</bool>
</attribute> </attribute>
<attribute name="horizontalHeaderMinimumSectionSize">
<number>35</number>
</attribute>
<attribute name="horizontalHeaderDefaultSectionSize"> <attribute name="horizontalHeaderDefaultSectionSize">
<number>85</number> <number>85</number>
</attribute> </attribute>
<attribute name="horizontalHeaderHighlightSections"> <attribute name="horizontalHeaderHighlightSections">
<bool>false</bool> <bool>false</bool>
</attribute> </attribute>
<attribute name="horizontalHeaderMinimumSectionSize">
<number>35</number>
</attribute>
<attribute name="horizontalHeaderStretchLastSection"> <attribute name="horizontalHeaderStretchLastSection">
<bool>true</bool> <bool>true</bool>
</attribute> </attribute>
<attribute name="verticalHeaderVisible"> <attribute name="verticalHeaderVisible">
<bool>false</bool> <bool>false</bool>
</attribute> </attribute>
<attribute name="verticalHeaderMinimumSectionSize">
<number>22</number>
</attribute>
<attribute name="verticalHeaderDefaultSectionSize"> <attribute name="verticalHeaderDefaultSectionSize">
<number>22</number> <number>22</number>
</attribute> </attribute>
<attribute name="verticalHeaderHighlightSections"> <attribute name="verticalHeaderHighlightSections">
<bool>false</bool> <bool>false</bool>
</attribute> </attribute>
<attribute name="verticalHeaderMinimumSectionSize">
<number>22</number>
</attribute>
<row> <row>
<property name="text"> <property name="text">
<string>Width Scale</string> <string>Width Scale</string>
@ -811,30 +811,30 @@
<attribute name="horizontalHeaderCascadingSectionResizes"> <attribute name="horizontalHeaderCascadingSectionResizes">
<bool>false</bool> <bool>false</bool>
</attribute> </attribute>
<attribute name="horizontalHeaderMinimumSectionSize">
<number>35</number>
</attribute>
<attribute name="horizontalHeaderDefaultSectionSize"> <attribute name="horizontalHeaderDefaultSectionSize">
<number>110</number> <number>110</number>
</attribute> </attribute>
<attribute name="horizontalHeaderHighlightSections"> <attribute name="horizontalHeaderHighlightSections">
<bool>false</bool> <bool>false</bool>
</attribute> </attribute>
<attribute name="horizontalHeaderMinimumSectionSize">
<number>35</number>
</attribute>
<attribute name="horizontalHeaderStretchLastSection"> <attribute name="horizontalHeaderStretchLastSection">
<bool>true</bool> <bool>true</bool>
</attribute> </attribute>
<attribute name="verticalHeaderVisible"> <attribute name="verticalHeaderVisible">
<bool>false</bool> <bool>false</bool>
</attribute> </attribute>
<attribute name="verticalHeaderMinimumSectionSize">
<number>22</number>
</attribute>
<attribute name="verticalHeaderDefaultSectionSize"> <attribute name="verticalHeaderDefaultSectionSize">
<number>22</number> <number>22</number>
</attribute> </attribute>
<attribute name="verticalHeaderHighlightSections"> <attribute name="verticalHeaderHighlightSections">
<bool>false</bool> <bool>false</bool>
</attribute> </attribute>
<attribute name="verticalHeaderMinimumSectionSize">
<number>22</number>
</attribute>
<attribute name="verticalHeaderStretchLastSection"> <attribute name="verticalHeaderStretchLastSection">
<bool>false</bool> <bool>false</bool>
</attribute> </attribute>
@ -1055,6 +1055,9 @@
<property name="value"> <property name="value">
<number>0</number> <number>0</number>
</property> </property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget> </widget>
</item> </item>
<item row="1" column="0"> <item row="1" column="0">
@ -1094,6 +1097,9 @@
<property name="value"> <property name="value">
<number>0</number> <number>0</number>
</property> </property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget> </widget>
</item> </item>
<item row="3" column="1"> <item row="3" column="1">
@ -1107,6 +1113,9 @@
<property name="value"> <property name="value">
<number>0</number> <number>0</number>
</property> </property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget> </widget>
</item> </item>
<item row="2" column="0"> <item row="2" column="0">
@ -1146,6 +1155,9 @@
<property name="value"> <property name="value">
<number>0</number> <number>0</number>
</property> </property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget> </widget>
</item> </item>
</layout> </layout>
@ -1293,6 +1305,13 @@
</item> </item>
</layout> </layout>
</widget> </widget>
<customwidgets>
<customwidget>
<class>DoubleSpinBox</class>
<extends>QWidget</extends>
<header>doublespinbox.h</header>
</customwidget>
</customwidgets>
<tabstops> <tabstops>
<tabstop>FinalRenderEarlyClipCheckBox</tabstop> <tabstop>FinalRenderEarlyClipCheckBox</tabstop>
<tabstop>FinalRenderDoublePrecisionCheckBox</tabstop> <tabstop>FinalRenderDoublePrecisionCheckBox</tabstop>

View File

@ -148,6 +148,7 @@ Fractorium::Fractorium(QWidget* p)
m_ProgressBar->setMaximumHeight(progressBarHeight); m_ProgressBar->setMaximumHeight(progressBarHeight);
m_ProgressBar->setMinimumWidth(progressBarWidth); m_ProgressBar->setMinimumWidth(progressBarWidth);
m_ProgressBar->setMaximumWidth(progressBarWidth); m_ProgressBar->setMaximumWidth(progressBarWidth);
m_ProgressBar->setAlignment(Qt::AlignCenter);
ui.StatusBar->addPermanentWidget(m_ProgressBar); ui.StatusBar->addPermanentWidget(m_ProgressBar);
//Setup pointer in the GL window to point back to here. //Setup pointer in the GL window to point back to here.
ui.GLDisplay->SetMainWindow(this); ui.GLDisplay->SetMainWindow(this);
@ -197,8 +198,24 @@ Fractorium::Fractorium(QWidget* p)
{ {
if (!QStyleFactory::keys().empty()) if (!QStyleFactory::keys().empty())
{ {
m_Theme = QStyleFactory::create(qApp->style()->objectName()); auto foundFusion = false;
setStyle(m_Theme);
for (auto& s : QStyleFactory::keys())
{
if (s.compare("fusion", Qt::CaseInsensitive) == 0)//Default to fusion if it exists and the style has not been set yet.
{
m_Theme = QStyleFactory::create(s);
setStyle(m_Theme);
foundFusion = true;
break;
}
}
if (!foundFusion)
{
m_Theme = QStyleFactory::create(qApp->style()->objectName());
setStyle(m_Theme);
}
} }
} }

View File

@ -77,8 +77,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>1279</width> <width>1280</width>
<height>980</height> <height>985</height>
</rect> </rect>
</property> </property>
<property name="sizePolicy"> <property name="sizePolicy">
@ -170,7 +170,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>230</width> <width>230</width>
<height>931</height> <height>926</height>
</rect> </rect>
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
@ -480,9 +480,6 @@
<property name="text"> <property name="text">
<string>Geometry</string> <string>Geometry</string>
</property> </property>
<property name="textAlignment">
<set>AlignCenter</set>
</property>
</column> </column>
</widget> </widget>
</item> </item>
@ -561,9 +558,6 @@
<property name="text"> <property name="text">
<string>Iteration</string> <string>Iteration</string>
</property> </property>
<property name="textAlignment">
<set>AlignCenter</set>
</property>
</column> </column>
</widget> </widget>
</item> </item>
@ -661,9 +655,6 @@
<property name="text"> <property name="text">
<string>Filter</string> <string>Filter</string>
</property> </property>
<property name="textAlignment">
<set>AlignCenter</set>
</property>
</column> </column>
</widget> </widget>
</item> </item>
@ -1324,9 +1315,6 @@
<property name="text"> <property name="text">
<string>Animation</string> <string>Animation</string>
</property> </property>
<property name="textAlignment">
<set>AlignCenter</set>
</property>
</column> </column>
</widget> </widget>
</item> </item>
@ -1864,9 +1852,6 @@
<property name="text"> <property name="text">
<string>Color</string> <string>Color</string>
</property> </property>
<property name="textAlignment">
<set>AlignCenter</set>
</property>
</column> </column>
</widget> </widget>
</item> </item>
@ -1895,7 +1880,7 @@
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>310</width> <width>310</width>
<height>439</height> <height>444</height>
</size> </size>
</property> </property>
<property name="floating"> <property name="floating">
@ -2465,8 +2450,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>285</width> <width>307</width>
<height>675</height> <height>674</height>
</rect> </rect>
</property> </property>
<property name="sizePolicy"> <property name="sizePolicy">
@ -3155,7 +3140,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>291</width> <width>291</width>
<height>874</height> <height>869</height>
</rect> </rect>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_16"> <layout class="QVBoxLayout" name="verticalLayout_16">
@ -3533,33 +3518,21 @@
<property name="text"> <property name="text">
<string>Weight</string> <string>Weight</string>
</property> </property>
<property name="textAlignment">
<set>AlignCenter</set>
</property>
</column> </column>
<column> <column>
<property name="text"> <property name="text">
<string>Name</string> <string>Name</string>
</property> </property>
<property name="textAlignment">
<set>AlignCenter</set>
</property>
</column> </column>
<item row="0" column="0"> <item row="0" column="0">
<property name="text"> <property name="text">
<string/> <string/>
</property> </property>
<property name="textAlignment">
<set>AlignLeading|AlignVCenter</set>
</property>
</item> </item>
<item row="0" column="1"> <item row="0" column="1">
<property name="text"> <property name="text">
<string/> <string/>
</property> </property>
<property name="textAlignment">
<set>AlignLeading|AlignVCenter</set>
</property>
</item> </item>
</widget> </widget>
</item> </item>
@ -3761,9 +3734,6 @@
<property name="toolTip"> <property name="toolTip">
<string/> <string/>
</property> </property>
<property name="textAlignment">
<set>AlignLeading|AlignVCenter</set>
</property>
</item> </item>
</widget> </widget>
</item> </item>
@ -3845,7 +3815,7 @@
<bool>false</bool> <bool>false</bool>
</attribute> </attribute>
<attribute name="verticalHeaderDefaultSectionSize"> <attribute name="verticalHeaderDefaultSectionSize">
<number>21</number> <number>24</number>
</attribute> </attribute>
<attribute name="verticalHeaderHighlightSections"> <attribute name="verticalHeaderHighlightSections">
<bool>false</bool> <bool>false</bool>
@ -4124,9 +4094,6 @@
<kerning>true</kerning> <kerning>true</kerning>
</font> </font>
</property> </property>
<property name="textAlignment">
<set>AlignLeading|AlignVCenter</set>
</property>
</item> </item>
<item row="1" column="0"> <item row="1" column="0">
<property name="text"> <property name="text">
@ -4156,6 +4123,19 @@
</item> </item>
</widget> </widget>
</item> </item>
<item row="6" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="5" column="0"> <item row="5" column="0">
<widget class="QCheckBox" name="SoloXformCheckBox"> <widget class="QCheckBox" name="SoloXformCheckBox">
<property name="toolTip"> <property name="toolTip">
@ -6279,8 +6259,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>267</width> <width>269</width>
<height>656</height> <height>650</height>
</rect> </rect>
</property> </property>
<property name="sizePolicy"> <property name="sizePolicy">
@ -6410,7 +6390,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>291</width> <width>291</width>
<height>854</height> <height>849</height>
</rect> </rect>
</property> </property>
<property name="sizePolicy"> <property name="sizePolicy">
@ -7153,9 +7133,6 @@
<kerning>true</kerning> <kerning>true</kerning>
</font> </font>
</property> </property>
<property name="textAlignment">
<set>AlignLeading|AlignVCenter</set>
</property>
</item> </item>
</widget> </widget>
</item> </item>
@ -7291,7 +7268,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>1712</width> <width>1712</width>
<height>21</height> <height>22</height>
</rect> </rect>
</property> </property>
<widget class="QMenu" name="MenuFile"> <widget class="QMenu" name="MenuFile">
@ -7524,8 +7501,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>422</width> <width>418</width>
<height>587</height> <height>631</height>
</rect> </rect>
</property> </property>
<property name="sizePolicy"> <property name="sizePolicy">
@ -7534,7 +7511,7 @@
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_10" stretch="3,0,8"> <layout class="QVBoxLayout" name="verticalLayout_10" stretch="3,0,8,0">
<property name="spacing"> <property name="spacing">
<number>4</number> <number>4</number>
</property> </property>
@ -8081,12 +8058,12 @@
<property name="prefix"> <property name="prefix">
<string>Animation FPS: </string> <string>Animation FPS: </string>
</property> </property>
<property name="maximum">
<number>200</number>
</property>
<property name="minimum"> <property name="minimum">
<number>1</number> <number>1</number>
</property> </property>
<property name="maximum">
<number>200</number>
</property>
<property name="value"> <property name="value">
<number>30</number> <number>30</number>
</property> </property>
@ -8140,9 +8117,9 @@
</widget> </widget>
</item> </item>
</layout> </layout>
</item> </item>
<item> <item>
<layout class="QHBoxLayout" name="SequenceAnimateButtonsHLayout" stretch="0,0,0,0"> <layout class="QHBoxLayout" name="SequenceAnimateButtonsHLayout" stretch="0,0">
<property name="spacing"> <property name="spacing">
<number>2</number> <number>2</number>
</property> </property>

View File

@ -176,16 +176,16 @@ void Fractorium::FillXaosTable()
m_AppliedXaosTableModel->setVerticalHeaderLabels(vl); m_AppliedXaosTableModel->setVerticalHeaderLabels(vl);
ui.XaosDistVizTableWidget->setRowCount(1); ui.XaosDistVizTableWidget->setRowCount(1);
ui.XaosDistVizTableWidget->setColumnCount(count); ui.XaosDistVizTableWidget->setColumnCount(count);
ui.XaosDistVizTableWidget->setHorizontalHeaderLabels(hl);
ui.XaosDistVizTableWidget->setVerticalHeaderLabels(blanks);
ui.XaosDistVizTableWidget->verticalHeader()->setSectionsClickable(false); ui.XaosDistVizTableWidget->verticalHeader()->setSectionsClickable(false);
ui.XaosDistVizTableWidget->horizontalHeader()->setSectionsClickable(false); ui.XaosDistVizTableWidget->horizontalHeader()->setSectionsClickable(false);
ui.XaosTableView->setModel(m_XaosTableModel); ui.XaosTableView->setModel(m_XaosTableModel);
ui.XaosAppliedTableView->setModel(m_AppliedXaosTableModel); ui.XaosAppliedTableView->setModel(m_AppliedXaosTableModel);
ui.XaosTableView->setItemDelegate(m_XaosTableItemDelegate);//No need for a delegate on the applied table because it's read-only. ui.XaosTableView->setItemDelegate(m_XaosTableItemDelegate);//No need for a delegate on the applied table because it's read-only.
ui.XaosDistVizTableWidget->verticalHeader()->setFixedWidth(ui.XaosTableView->verticalHeader()->width());
SetTabOrder(this, ui.ClearXaosButton, ui.RandomXaosButton);
ui.XaosDistVizTableWidget->setRowHeight(0, ui.XaosTableView->rowHeight(0) * count); ui.XaosDistVizTableWidget->setRowHeight(0, ui.XaosTableView->rowHeight(0) * count);
ui.XaosDistVizTableWidget->setHorizontalHeaderLabels(hl);
ui.XaosDistVizTableWidget->setVerticalHeaderLabels(vl);
SetTabOrder(this, ui.ClearXaosButton, ui.RandomXaosButton);
ui.XaosDistVizTableWidget->verticalHeader()->setStyleSheet("QHeaderView::section::vertical { color: rgba(0, 0, 0, 0); }");
m_Controller->FillXaos(); m_Controller->FillXaos();
m_Controller->FillAppliedXaos(); m_Controller->FillAppliedXaos();
//Needed to get the dark stylesheet to correctly color the top left corner button. //Needed to get the dark stylesheet to correctly color the top left corner button.

View File

@ -20,15 +20,39 @@ FractoriumOptionsDialog::FractoriumOptionsDialog(QWidget* p, Qt::WindowFlags f)
ui.ThreadCountSpin->setRange(1, Timing::ProcessorCount()); ui.ThreadCountSpin->setRange(1, Timing::ProcessorCount());
connect(ui.OpenCLCheckBox, SIGNAL(stateChanged(int)), this, SLOT(OnOpenCLCheckBoxStateChanged(int)), Qt::QueuedConnection); connect(ui.OpenCLCheckBox, SIGNAL(stateChanged(int)), this, SLOT(OnOpenCLCheckBoxStateChanged(int)), Qt::QueuedConnection);
connect(ui.DeviceTable, SIGNAL(cellChanged(int, int)), this, SLOT(OnDeviceTableCellChanged(int, int)), Qt::QueuedConnection); connect(ui.DeviceTable, SIGNAL(cellChanged(int, int)), this, SLOT(OnDeviceTableCellChanged(int, int)), Qt::QueuedConnection);
SetupSpinner<SpinBox, int>(table, this, row, 1, m_XmlTemporalSamplesSpin, spinHeight, 1, 1000, 100, "", "", true, 1000); SetupSpinner<SpinBox, int>(table, this, row, 1, m_XmlTemporalSamplesSpin, spinHeight, 1, 100000, 100, "", "", true, 300, 100, 100);
SetupSpinner<SpinBox, int>(table, this, row, 1, m_XmlQualitySpin, spinHeight, 1, 200000, 50, "", "", true, 1000); SetupSpinner<SpinBox, int>(table, this, row, 1, m_XmlQualitySpin, spinHeight, 1, 200000, 50, "", "", true, 1000, 1000, 1000);
SetupSpinner<SpinBox, int>(table, this, row, 1, m_XmlSupersampleSpin, spinHeight, 1, 4, 1, "", "", true, 2); SetupSpinner<SpinBox, int>(table, this, row, 1, m_XmlSupersampleSpin, spinHeight, 1, 4, 1, "", "", true, 2, 2, 2);
m_IdEdit = new QLineEdit(ui.OptionsIdentityTable); m_IdEdit = new QLineEdit(ui.OptionsIdentityTable);
ui.OptionsIdentityTable->setCellWidget(0, 1, m_IdEdit); ui.OptionsIdentityTable->setCellWidget(0, 1, m_IdEdit);
m_UrlEdit = new QLineEdit(ui.OptionsIdentityTable); m_UrlEdit = new QLineEdit(ui.OptionsIdentityTable);
ui.OptionsIdentityTable->setCellWidget(1, 1, m_UrlEdit); ui.OptionsIdentityTable->setCellWidget(1, 1, m_UrlEdit);
m_NickEdit = new QLineEdit(ui.OptionsIdentityTable); m_NickEdit = new QLineEdit(ui.OptionsIdentityTable);
ui.OptionsIdentityTable->setCellWidget(2, 1, m_NickEdit); ui.OptionsIdentityTable->setCellWidget(2, 1, m_NickEdit);
auto dspin = ui.OpenCLSubBatchPctSpin;
dspin->DoubleClick(true);
dspin->DoubleClickZero(0.025);
dspin->DoubleClickNonZero(0.025);
auto spin = ui.CpuQualitySpin;
spin->DoubleClick(true);
spin->DoubleClickZero(10);
spin->DoubleClickNonZero(10);
spin = ui.OpenCLQualitySpin;
spin->DoubleClick(true);
spin->DoubleClickZero(30);
spin->DoubleClickNonZero(30);
spin = ui.CpuSubBatchSpin;
spin->DoubleClick(true);
spin->DoubleClickZero(1);
spin->DoubleClickNonZero(1);
spin = ui.OpenCLSubBatchSpin;
spin->DoubleClick(true);
spin->DoubleClickZero(1);
spin->DoubleClickNonZero(1);
spin = ui.RandomCountSpin;
spin->DoubleClick(true);
spin->DoubleClickZero(1);
spin->DoubleClickNonZero(1);
table->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents); table->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
ui.OptionsIdentityTable->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents); ui.OptionsIdentityTable->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
table = ui.DeviceTable; table = ui.DeviceTable;

View File

@ -193,15 +193,15 @@
<attribute name="verticalHeaderVisible"> <attribute name="verticalHeaderVisible">
<bool>false</bool> <bool>false</bool>
</attribute> </attribute>
<attribute name="verticalHeaderMinimumSectionSize">
<number>22</number>
</attribute>
<attribute name="verticalHeaderDefaultSectionSize"> <attribute name="verticalHeaderDefaultSectionSize">
<number>22</number> <number>22</number>
</attribute> </attribute>
<attribute name="verticalHeaderHighlightSections"> <attribute name="verticalHeaderHighlightSections">
<bool>false</bool> <bool>false</bool>
</attribute> </attribute>
<attribute name="verticalHeaderMinimumSectionSize">
<number>22</number>
</attribute>
<row> <row>
<property name="text"> <property name="text">
<string>AMD</string> <string>AMD</string>
@ -221,25 +221,16 @@
<property name="text"> <property name="text">
<string>Use</string> <string>Use</string>
</property> </property>
<property name="textAlignment">
<set>AlignCenter</set>
</property>
</column> </column>
<column> <column>
<property name="text"> <property name="text">
<string>Primary</string> <string>Primary</string>
</property> </property>
<property name="textAlignment">
<set>AlignCenter</set>
</property>
</column> </column>
<column> <column>
<property name="text"> <property name="text">
<string>Device</string> <string>Device</string>
</property> </property>
<property name="textAlignment">
<set>AlignCenter</set>
</property>
</column> </column>
</widget> </widget>
</item> </item>
@ -290,36 +281,36 @@
</widget> </widget>
</item> </item>
<item row="1" column="1"> <item row="1" column="1">
<widget class="QSpinBox" name="OpenCLQualitySpin"> <widget class="SpinBox" name="OpenCLQualitySpin" native="true">
<property name="toolTip"> <property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The default quality per device to use for the interactive renderer when using OpenCL.&lt;/p&gt;&lt;p&gt;30 is a good number for this, but you can use a larger value if you have a faster GPU.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The default quality per device to use for the interactive renderer when using OpenCL.&lt;/p&gt;&lt;p&gt;30 is a good number for this, but you can use a larger value if you have a faster GPU.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
<property name="prefix"> <property name="prefix" stdset="0">
<string>OpenCL Quality </string> <string>OpenCL Quality </string>
</property> </property>
<property name="minimum"> <property name="minimum" stdset="0">
<number>1</number> <number>1</number>
</property> </property>
<property name="maximum"> <property name="maximum" stdset="0">
<number>99999</number> <number>99999</number>
</property> </property>
<property name="value"> <property name="value" stdset="0">
<number>30</number> <number>30</number>
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="0"> <item row="3" column="0">
<widget class="QSpinBox" name="OpenCLSubBatchSpin"> <widget class="SpinBox" name="OpenCLSubBatchSpin" native="true">
<property name="toolTip"> <property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The number of ~8M iteration chunks ran using OpenCL in interactive mode for each mouse movement.&lt;/p&gt;&lt;p&gt;Increase this number for a higher quality image on each mouse movement, at the expense of responsiveness.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The number of ~8M iteration chunks ran using OpenCL in interactive mode for each mouse movement.&lt;/p&gt;&lt;p&gt;Increase this number for a higher quality image on each mouse movement, at the expense of responsiveness.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
<property name="prefix"> <property name="prefix" stdset="0">
<string>OpenCL chunks per mouse movement </string> <string>OpenCL chunks per mouse movement </string>
</property> </property>
<property name="minimum"> <property name="minimum" stdset="0">
<number>1</number> <number>1</number>
</property> </property>
<property name="maximum"> <property name="maximum" stdset="0">
<number>100</number> <number>100</number>
</property> </property>
</widget> </widget>
@ -372,93 +363,93 @@
</widget> </widget>
</item> </item>
<item row="0" column="1"> <item row="0" column="1">
<widget class="QSpinBox" name="CpuSubBatchSpin"> <widget class="SpinBox" name="CpuSubBatchSpin" native="true">
<property name="toolTip"> <property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The number of ~10,000 iteration chunks ran per thread on the CPU in interactive mode for each mouse movement.&lt;/p&gt;&lt;p&gt;Increase this number for a higher quality image on each mouse movement, at the expense of responsiveness.&lt;/p&gt;&lt;p&gt;The number of iterations done in each chunk is controlled by the Sub Batch Size field in the Flame tab.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The number of ~10,000 iteration chunks ran per thread on the CPU in interactive mode for each mouse movement.&lt;/p&gt;&lt;p&gt;Increase this number for a higher quality image on each mouse movement, at the expense of responsiveness.&lt;/p&gt;&lt;p&gt;The number of iterations done in each chunk is controlled by the Sub Batch Size field in the Flame tab.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
<property name="prefix"> <property name="prefix" stdset="0">
<string>CPU chunks per mouse movement </string> <string>CPU chunks per mouse movement </string>
</property> </property>
<property name="minimum"> <property name="minimum" stdset="0">
<number>1</number> <number>1</number>
</property> </property>
<property name="maximum"> <property name="maximum" stdset="0">
<number>100</number> <number>100</number>
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="0"> <item row="0" column="0">
<widget class="QSpinBox" name="ThreadCountSpin"> <widget class="SpinBox" name="ThreadCountSpin" native="true">
<property name="toolTip"> <property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The number of threads to use with CPU rendering.&lt;/p&gt;&lt;p&gt;Decrease for more responsive editing, increase for better performance.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The number of threads to use with CPU rendering.&lt;/p&gt;&lt;p&gt;Decrease for more responsive editing, increase for better performance.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
<property name="prefix"> <property name="prefix" stdset="0">
<string>Threads </string> <string>Threads </string>
</property> </property>
<property name="minimum"> <property name="minimum" stdset="0">
<number>1</number> <number>1</number>
</property> </property>
<property name="maximum"> <property name="maximum" stdset="0">
<number>64</number> <number>64</number>
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="0"> <item row="1" column="0">
<widget class="QSpinBox" name="RandomCountSpin"> <widget class="SpinBox" name="RandomCountSpin" native="true">
<property name="toolTip"> <property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The number of random flames to generate on startup.&lt;/p&gt;&lt;p&gt;These are usually of low quality, so leave the count as 1 unless you are searching for good randoms.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The number of random flames to generate on startup.&lt;/p&gt;&lt;p&gt;These are usually of low quality, so leave the count as 1 unless you are searching for good randoms.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
<property name="prefix"> <property name="prefix" stdset="0">
<string>Randoms </string> <string>Randoms </string>
</property> </property>
<property name="minimum"> <property name="minimum" stdset="0">
<number>1</number> <number>1</number>
</property> </property>
<property name="maximum"> <property name="maximum" stdset="0">
<number>99999</number> <number>99999</number>
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="0"> <item row="2" column="0">
<widget class="QDoubleSpinBox" name="OpenCLSubBatchPctSpin"> <widget class="DoubleSpinBox" name="OpenCLSubBatchPctSpin" native="true">
<property name="toolTip"> <property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The percentage of a sub batch to execute on each thread per kernel call when using OpenCL in interactive mode. Default: 0.025 (256 iters).&lt;/p&gt;&lt;p&gt;Increase this number for a higher quality image on each mouse movement, at the expense of responsiveness.&lt;/p&gt;&lt;p&gt;Note that this can cause a crash and subsequent restart of the graphics driver if each kernel call takes too long. So reduce the value if you encounter such a problem.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The percentage of a sub batch to execute on each thread per kernel call when using OpenCL in interactive mode. Default: 0.025 (256 iters).&lt;/p&gt;&lt;p&gt;Increase this number for a higher quality image on each mouse movement, at the expense of responsiveness.&lt;/p&gt;&lt;p&gt;Note that this can cause a crash and subsequent restart of the graphics driver if each kernel call takes too long. So reduce the value if you encounter such a problem.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
<property name="prefix"> <property name="prefix" stdset="0">
<string>OpenCL sub batch percent per thread </string> <string>OpenCL sub batch percent per thread </string>
</property> </property>
<property name="decimals"> <property name="decimals" stdset="0">
<number>3</number> <number>3</number>
</property> </property>
<property name="minimum"> <property name="minimum" stdset="0">
<double>0.010000000000000</double> <double>0.010000000000000</double>
</property> </property>
<property name="maximum"> <property name="maximum" stdset="0">
<double>1.000000000000000</double> <double>1.000000000000000</double>
</property> </property>
<property name="singleStep"> <property name="singleStep" stdset="0">
<double>0.010000000000000</double> <double>0.010000000000000</double>
</property> </property>
<property name="value"> <property name="value" stdset="0">
<double>0.025000000000000</double> <double>0.025000000000000</double>
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="1"> <item row="2" column="1">
<widget class="QSpinBox" name="CpuQualitySpin"> <widget class="SpinBox" name="CpuQualitySpin" native="true">
<property name="toolTip"> <property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The default quality to use for the interactive renderer when using the CPU.&lt;/p&gt;&lt;p&gt;10 is a good number for this, but you can use a larger value if you have a faster system.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The default quality to use for the interactive renderer when using the CPU.&lt;/p&gt;&lt;p&gt;10 is a good number for this, but you can use a larger value if you have a faster system.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
<property name="prefix"> <property name="prefix" stdset="0">
<string>CPU Quality </string> <string>CPU Quality </string>
</property> </property>
<property name="minimum"> <property name="minimum" stdset="0">
<number>1</number> <number>1</number>
</property> </property>
<property name="maximum"> <property name="maximum" stdset="0">
<number>99999</number> <number>99999</number>
</property> </property>
<property name="value"> <property name="value" stdset="0">
<number>10</number> <number>10</number>
</property> </property>
</widget> </widget>
@ -638,30 +629,30 @@
<attribute name="horizontalHeaderCascadingSectionResizes"> <attribute name="horizontalHeaderCascadingSectionResizes">
<bool>false</bool> <bool>false</bool>
</attribute> </attribute>
<attribute name="horizontalHeaderMinimumSectionSize">
<number>35</number>
</attribute>
<attribute name="horizontalHeaderDefaultSectionSize"> <attribute name="horizontalHeaderDefaultSectionSize">
<number>110</number> <number>110</number>
</attribute> </attribute>
<attribute name="horizontalHeaderHighlightSections"> <attribute name="horizontalHeaderHighlightSections">
<bool>false</bool> <bool>false</bool>
</attribute> </attribute>
<attribute name="horizontalHeaderMinimumSectionSize">
<number>35</number>
</attribute>
<attribute name="horizontalHeaderStretchLastSection"> <attribute name="horizontalHeaderStretchLastSection">
<bool>true</bool> <bool>true</bool>
</attribute> </attribute>
<attribute name="verticalHeaderVisible"> <attribute name="verticalHeaderVisible">
<bool>false</bool> <bool>false</bool>
</attribute> </attribute>
<attribute name="verticalHeaderMinimumSectionSize">
<number>22</number>
</attribute>
<attribute name="verticalHeaderDefaultSectionSize"> <attribute name="verticalHeaderDefaultSectionSize">
<number>22</number> <number>22</number>
</attribute> </attribute>
<attribute name="verticalHeaderHighlightSections"> <attribute name="verticalHeaderHighlightSections">
<bool>false</bool> <bool>false</bool>
</attribute> </attribute>
<attribute name="verticalHeaderMinimumSectionSize">
<number>22</number>
</attribute>
<attribute name="verticalHeaderStretchLastSection"> <attribute name="verticalHeaderStretchLastSection">
<bool>false</bool> <bool>false</bool>
</attribute> </attribute>
@ -831,30 +822,30 @@
<attribute name="horizontalHeaderCascadingSectionResizes"> <attribute name="horizontalHeaderCascadingSectionResizes">
<bool>false</bool> <bool>false</bool>
</attribute> </attribute>
<attribute name="horizontalHeaderMinimumSectionSize">
<number>35</number>
</attribute>
<attribute name="horizontalHeaderDefaultSectionSize"> <attribute name="horizontalHeaderDefaultSectionSize">
<number>110</number> <number>110</number>
</attribute> </attribute>
<attribute name="horizontalHeaderHighlightSections"> <attribute name="horizontalHeaderHighlightSections">
<bool>false</bool> <bool>false</bool>
</attribute> </attribute>
<attribute name="horizontalHeaderMinimumSectionSize">
<number>35</number>
</attribute>
<attribute name="horizontalHeaderStretchLastSection"> <attribute name="horizontalHeaderStretchLastSection">
<bool>true</bool> <bool>true</bool>
</attribute> </attribute>
<attribute name="verticalHeaderVisible"> <attribute name="verticalHeaderVisible">
<bool>false</bool> <bool>false</bool>
</attribute> </attribute>
<attribute name="verticalHeaderMinimumSectionSize">
<number>22</number>
</attribute>
<attribute name="verticalHeaderDefaultSectionSize"> <attribute name="verticalHeaderDefaultSectionSize">
<number>22</number> <number>22</number>
</attribute> </attribute>
<attribute name="verticalHeaderHighlightSections"> <attribute name="verticalHeaderHighlightSections">
<bool>false</bool> <bool>false</bool>
</attribute> </attribute>
<attribute name="verticalHeaderMinimumSectionSize">
<number>22</number>
</attribute>
<attribute name="verticalHeaderStretchLastSection"> <attribute name="verticalHeaderStretchLastSection">
<bool>false</bool> <bool>false</bool>
</attribute> </attribute>
@ -952,6 +943,18 @@
</item> </item>
</layout> </layout>
</widget> </widget>
<customwidgets>
<customwidget>
<class>SpinBox</class>
<extends>QWidget</extends>
<header>spinbox.h</header>
</customwidget>
<customwidget>
<class>DoubleSpinBox</class>
<extends>QWidget</extends>
<header>doublespinbox.h</header>
</customwidget>
</customwidgets>
<tabstops> <tabstops>
<tabstop>EarlyClipCheckBox</tabstop> <tabstop>EarlyClipCheckBox</tabstop>
<tabstop>OpenCLCheckBox</tabstop> <tabstop>OpenCLCheckBox</tabstop>

View File

@ -12,9 +12,9 @@ FRACTORIUM_RPM_PACKAGE=$BUILD_PATH/../Bin/rpmbuild
EXTRA_LIBS=/usr/lib/x86_64-linux-gnu EXTRA_LIBS=/usr/lib/x86_64-linux-gnu
# replace 5.12.8 by your QT version, and ensure the installation path is the same # replace 5.12.8 by your QT version, and ensure the installation path is the same
QT_PATH=/home/$USER/Dev/Qt/5.12.8/gcc_64/bin QT_PATH=/home/$USER/Dev/Qt/6.5.1/gcc_64/bin
LINUX_DEPLOY_QT=/home/$USER/Dev/linuxdeployqt-6-x86_64.AppImage LINUX_DEPLOY_QT=/home/$USER/Dev/linuxdeployqt-continuous-x86_64.AppImage
APP_IMAGE_TOOL=/home/$USER/Dev/appimagetool-x86_64.AppImage APP_IMAGE_TOOL=/home/$USER/Dev/appimagetool-x86_64.AppImage
####################### #######################
@ -84,12 +84,12 @@ cp $FRACTORIUM_RELEASE_ROOT/ember* $FRACTORIUM_BIN
cp $FRACTORIUM_RELEASE_ROOT/fractorium $FRACTORIUM_BIN cp $FRACTORIUM_RELEASE_ROOT/fractorium $FRACTORIUM_BIN
cp $FRACTORIUM_RELEASE_ROOT/lib* $FRACTORIUM_LIB cp $FRACTORIUM_RELEASE_ROOT/lib* $FRACTORIUM_LIB
cp $EXTRA_LIBS/libHalf.so.12 $FRACTORIUM_LIB cp $EXTRA_LIBS/libHalf.so $FRACTORIUM_LIB
cp $EXTRA_LIBS/libIex-2_2.so.12 $FRACTORIUM_LIB cp $EXTRA_LIBS/libIex.so $FRACTORIUM_LIB
cp $EXTRA_LIBS/libIexMath-2_2.so.12 $FRACTORIUM_LIB cp $EXTRA_LIBS/libIexMath.so $FRACTORIUM_LIB
cp $EXTRA_LIBS/libIlmImf-2_2.so.22 $FRACTORIUM_LIB cp $EXTRA_LIBS/libIlmImf.so $FRACTORIUM_LIB
cp $EXTRA_LIBS/libIlmThread-2_2.so.12 $FRACTORIUM_LIB cp $EXTRA_LIBS/libIlmThread.so $FRACTORIUM_LIB
cp $EXTRA_LIBS/libImath-2_2.so.12 $FRACTORIUM_LIB cp $EXTRA_LIBS/libImath.so $FRACTORIUM_LIB
cp $EXTRA_LIBS/libjpeg.so.8 $FRACTORIUM_LIB cp $EXTRA_LIBS/libjpeg.so.8 $FRACTORIUM_LIB
cp $EXTRA_LIBS/libpng16.so.16 $FRACTORIUM_LIB cp $EXTRA_LIBS/libpng16.so.16 $FRACTORIUM_LIB
cp $EXTRA_LIBS/libOpenCL.so.1 $FRACTORIUM_LIB cp $EXTRA_LIBS/libOpenCL.so.1 $FRACTORIUM_LIB