mirror of
https://bitbucket.org/mfeemster/fractorium.git
synced 2025-01-21 21:20:07 -05:00
8a4127d5d7
-Add a palette editor. -Add support for reading .ugr/.gradient/.gradients palette files. -Allow toggling on spinners whose minimum value is not zero. -Allow toggling display of image, affines and grid. -Add new variations: cylinder2, circlesplit, tile_log, truchet_fill, waves2_radial. --Bug fixes -cpow2 was wrong. -Palettes with rapid changes in color would produce slightly different outputs from Apo/Chaotica. This was due to a long standing bug from flam3. -Use exec() on Apple and show() on all other OSes for dialog boxes. -Trying to render a sequence with no frames would crash. -Selecting multiple xforms and rotating them would produce the wrong rotation. -Better handling when parsing flames using different encoding, such as unicode and UTF-8. -Switching between SP/DP didn't reselect the selected flame in the Library tab. --Code changes -Make all types concerning palettes be floats, including PaletteTableWidgetItem. -PaletteTableWidgetItem is no longer templated because all palettes are float. -Include the source colors for user created gradients. -Change parallel_for() calls to work with very old versions of TBB which are lingering on some systems. -Split conditional out of accumulation loop on the CPU for better performance. -Vectorize summing when doing density filter for better performance. -Make all usage of palettes be of type float, double is pointless. -Allow palettes to reside in multiple folders, while ensuring only one of each name is added. -Refactor some palette path searching code. -Make ReadFile() throw and catch an exception if the file operation fails. -A little extra safety in foci and foci3D with a call to Zeps(). -Cast to (real_t) in the OpenCL string for the w variation, which was having trouble compiling on Mac. -Fixing missing comma between paths in InitPaletteList(). -Move Xml and PaletteList classes into cpp to shorten build times when working on them. -Remove default param values for IterOpenCLKernelCreator<T>::SharedDataIndexDefines in cpp file. -Change more NULL to nullptr.
358 lines
10 KiB
XML
358 lines
10 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<ui version="4.0">
|
|
<class>PaletteEditor</class>
|
|
<widget class="QDialog" name="PaletteEditor">
|
|
<property name="geometry">
|
|
<rect>
|
|
<x>0</x>
|
|
<y>0</y>
|
|
<width>942</width>
|
|
<height>542</height>
|
|
</rect>
|
|
</property>
|
|
<property name="windowTitle">
|
|
<string>Palette Editor</string>
|
|
</property>
|
|
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
|
<property name="leftMargin">
|
|
<number>6</number>
|
|
</property>
|
|
<property name="topMargin">
|
|
<number>6</number>
|
|
</property>
|
|
<property name="rightMargin">
|
|
<number>6</number>
|
|
</property>
|
|
<property name="bottomMargin">
|
|
<number>6</number>
|
|
</property>
|
|
<item>
|
|
<layout class="QVBoxLayout" name="LeftSideVertialLayout">
|
|
<property name="spacing">
|
|
<number>4</number>
|
|
</property>
|
|
<item>
|
|
<layout class="QHBoxLayout" name="LeftTopHorizontalLayout">
|
|
<item>
|
|
<widget class="QPushButton" name="NewPaletteFileButton">
|
|
<property name="text">
|
|
<string>New Palette File...</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QPushButton" name="CopyPaletteFileButton">
|
|
<property name="text">
|
|
<string>Copy Palette File</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
<item>
|
|
<widget class="QComboBox" name="PaletteFilenameCombo"/>
|
|
</item>
|
|
<item>
|
|
<widget class="QTableWidget" name="PaletteListTable">
|
|
<property name="frameShape">
|
|
<enum>QFrame::Panel</enum>
|
|
</property>
|
|
<property name="frameShadow">
|
|
<enum>QFrame::Plain</enum>
|
|
</property>
|
|
<property name="autoScroll">
|
|
<bool>false</bool>
|
|
</property>
|
|
<property name="editTriggers">
|
|
<set>QAbstractItemView::AllEditTriggers</set>
|
|
</property>
|
|
<property name="tabKeyNavigation">
|
|
<bool>false</bool>
|
|
</property>
|
|
<property name="selectionMode">
|
|
<enum>QAbstractItemView::NoSelection</enum>
|
|
</property>
|
|
<property name="selectionBehavior">
|
|
<enum>QAbstractItemView::SelectItems</enum>
|
|
</property>
|
|
<property name="horizontalScrollMode">
|
|
<enum>QAbstractItemView::ScrollPerPixel</enum>
|
|
</property>
|
|
<property name="cornerButtonEnabled">
|
|
<bool>false</bool>
|
|
</property>
|
|
<property name="columnCount">
|
|
<number>2</number>
|
|
</property>
|
|
<attribute name="horizontalHeaderHighlightSections">
|
|
<bool>false</bool>
|
|
</attribute>
|
|
<attribute name="horizontalHeaderStretchLastSection">
|
|
<bool>true</bool>
|
|
</attribute>
|
|
<attribute name="verticalHeaderVisible">
|
|
<bool>false</bool>
|
|
</attribute>
|
|
<attribute name="verticalHeaderDefaultSectionSize">
|
|
<number>16</number>
|
|
</attribute>
|
|
<attribute name="verticalHeaderHighlightSections">
|
|
<bool>false</bool>
|
|
</attribute>
|
|
<attribute name="verticalHeaderMinimumSectionSize">
|
|
<number>16</number>
|
|
</attribute>
|
|
<column>
|
|
<property name="text">
|
|
<string>Name</string>
|
|
</property>
|
|
</column>
|
|
<column>
|
|
<property name="text">
|
|
<string>Palette</string>
|
|
</property>
|
|
</column>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<layout class="QHBoxLayout" name="LeftBottomHorizontalLayout">
|
|
<item>
|
|
<widget class="QPushButton" name="AppendPaletteButton">
|
|
<property name="text">
|
|
<string>Append Palette</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QPushButton" name="OverwritePaletteButton">
|
|
<property name="text">
|
|
<string>Overwrite Palette</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QPushButton" name="DeletePaletteButton">
|
|
<property name="text">
|
|
<string>Delete Palette</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
<item>
|
|
<layout class="QVBoxLayout" name="MainVerticalLayout">
|
|
<item>
|
|
<widget class="QGroupBox" name="ColorViewGroupBox">
|
|
<property name="title">
|
|
<string>Palette</string>
|
|
</property>
|
|
<property name="flat">
|
|
<bool>false</bool>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QGroupBox" name="ColorPickerGroupBox">
|
|
<property name="sizePolicy">
|
|
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
|
<horstretch>0</horstretch>
|
|
<verstretch>0</verstretch>
|
|
</sizepolicy>
|
|
</property>
|
|
<property name="autoFillBackground">
|
|
<bool>false</bool>
|
|
</property>
|
|
<property name="title">
|
|
<string>Color Picker</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QGroupBox" name="ControlsGroupBox">
|
|
<property name="title">
|
|
<string>Adjustment Controls</string>
|
|
</property>
|
|
<layout class="QHBoxLayout" name="horizontalLayout" stretch="1,4">
|
|
<property name="spacing">
|
|
<number>6</number>
|
|
</property>
|
|
<property name="leftMargin">
|
|
<number>6</number>
|
|
</property>
|
|
<property name="topMargin">
|
|
<number>6</number>
|
|
</property>
|
|
<property name="rightMargin">
|
|
<number>6</number>
|
|
</property>
|
|
<property name="bottomMargin">
|
|
<number>6</number>
|
|
</property>
|
|
<item>
|
|
<layout class="QGridLayout" name="AdjustmentLeftGridLayout">
|
|
<item row="0" column="0">
|
|
<widget class="QCheckBox" name="SyncCheckBox">
|
|
<property name="layoutDirection">
|
|
<enum>Qt::LeftToRight</enum>
|
|
</property>
|
|
<property name="text">
|
|
<string>Sync</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="2" column="0">
|
|
<widget class="QSpinBox" name="ArrowsSpinBox">
|
|
<property name="sizePolicy">
|
|
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
|
|
<horstretch>0</horstretch>
|
|
<verstretch>0</verstretch>
|
|
</sizepolicy>
|
|
</property>
|
|
<property name="buttonSymbols">
|
|
<enum>QAbstractSpinBox::NoButtons</enum>
|
|
</property>
|
|
<property name="suffix">
|
|
<string/>
|
|
</property>
|
|
<property name="prefix">
|
|
<string>Arrows: </string>
|
|
</property>
|
|
<property name="minimum">
|
|
<number>1</number>
|
|
</property>
|
|
<property name="maximum">
|
|
<number>256</number>
|
|
</property>
|
|
<property name="value">
|
|
<number>1</number>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="1" column="0">
|
|
<widget class="QCheckBox" name="AutoDistributeCheckBox">
|
|
<property name="text">
|
|
<string>Auto Distribute</string>
|
|
</property>
|
|
<property name="checked">
|
|
<bool>true</bool>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
<item>
|
|
<layout class="QGridLayout" name="AdjustmentRightGridLayout">
|
|
<item row="1" column="2">
|
|
<widget class="QPushButton" name="CreatePaletteFromImageButton">
|
|
<property name="text">
|
|
<string>Create From Image</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="1" column="1">
|
|
<widget class="QPushButton" name="ResetColorsButton">
|
|
<property name="text">
|
|
<string>Reset</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="0" column="3">
|
|
<widget class="QPushButton" name="RandomColorsButton">
|
|
<property name="text">
|
|
<string>Random Colors</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="0" column="1">
|
|
<widget class="QPushButton" name="RemoveColorButton">
|
|
<property name="text">
|
|
<string>Remove Color</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="1" column="0">
|
|
<widget class="QPushButton" name="DistributeColorsButton">
|
|
<property name="text">
|
|
<string>Distribute Colors</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="0" column="0">
|
|
<widget class="QPushButton" name="AddColorButton">
|
|
<property name="text">
|
|
<string>Add Color</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="0" column="2">
|
|
<widget class="QPushButton" name="InvertColorsButton">
|
|
<property name="text">
|
|
<string>Invert Colors</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="1" column="3">
|
|
<widget class="QPushButton" name="CreatePaletteAgainFromImageButton">
|
|
<property name="text">
|
|
<string>Create Again From Image</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<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>
|
|
</layout>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
<resources/>
|
|
<connections>
|
|
<connection>
|
|
<sender>buttonBox</sender>
|
|
<signal>accepted()</signal>
|
|
<receiver>PaletteEditor</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>PaletteEditor</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>
|