From 5f3e70c6a8f7fd099aabf50f4a54087df93fb8af Mon Sep 17 00:00:00 2001 From: mfeemster Date: Wed, 17 Jun 2015 20:05:53 -0700 Subject: [PATCH 1/2] --User changes Allow for detaching of top level tabs in the dock widget so workspaces can be customized. Save workspace between runs. Only correct variation names/params during parsing when the source of the Xml file is not from Ember/Fractorium. --- Source/Ember/Renderer.cpp | 2 + Source/Ember/XmlToEmber.h | 26 +- Source/EmberAnimate/EmberAnimate.cpp | 2 +- Source/EmberCommon/EmberOptions.h | 18 +- Source/EmberRender/EmberRender.cpp | 2 +- Source/Fractorium/FinalRenderDialog.cpp | 25 +- Source/Fractorium/FinalRenderDialog.h | 2 +- .../Fractorium/FinalRenderEmberController.cpp | 2 +- .../Fractorium/FinalRenderEmberController.h | 2 +- Source/Fractorium/Fractorium.cpp | 23 +- Source/Fractorium/Fractorium.ui | 10968 ++++++++-------- Source/Fractorium/FractoriumSettings.cpp | 6 +- Source/Fractorium/FractoriumSettings.h | 2 +- Source/Fractorium/FractoriumXformsAffine.cpp | 4 +- 14 files changed, 5502 insertions(+), 5582 deletions(-) diff --git a/Source/Ember/Renderer.cpp b/Source/Ember/Renderer.cpp index cb6c723..4231533 100644 --- a/Source/Ember/Renderer.cpp +++ b/Source/Ember/Renderer.cpp @@ -1217,6 +1217,8 @@ EmberStats Renderer::Iterate(size_t iterCount, size_t temporalSample #endif #ifdef WIN32 SetThreadPriority(GetCurrentThread(), m_Priority); +#else + pthread_setschedprio(pthread_self(), (int)m_Priority); #endif //Timing t; IterParams params; diff --git a/Source/Ember/XmlToEmber.h b/Source/Ember/XmlToEmber.h index d8c44fc..078389d 100644 --- a/Source/Ember/XmlToEmber.h +++ b/Source/Ember/XmlToEmber.h @@ -239,7 +239,7 @@ public: m_BadVariationNames.push_back(make_pair(make_pair(string("post_dcztransl"), string("post_dc_ztransl")), badParams)); badParams.clear(); - m_BadVariationNames.push_back(make_pair(make_pair(string("pre_blur"), string("pre_gaussian_blur")), badParams)); + m_BadVariationNames.push_back(make_pair(make_pair(string("pre_blur"), string("pre_gaussian_blur")), badParams));//No other special params for these. m_BadVariationNames.push_back(make_pair(make_pair(string("pre_spin_z"), string("pre_rotate_z")), badParams)); m_BadVariationNames.push_back(make_pair(make_pair(string("post_spin_z"), string("post_rotate_z")), badParams)); @@ -546,6 +546,7 @@ private: bool ParseEmberElement(xmlNode* emberNode, Ember& currentEmber) { bool ret = true; + bool fromEmber = false; uint newLinear = 0; char* attStr; const char* loc = __FUNCTION__; @@ -639,6 +640,11 @@ private: currentEmber.m_Name = string(attStr); std::replace(currentEmber.m_Name.begin(), currentEmber.m_Name.end(), ' ', '_'); } + else if (!Compare(curAtt->name, "version")) + { + if (ToLower(string(attStr)).find_first_of("ember") != string::npos) + fromEmber = true; + } else if (!Compare(curAtt->name, "size")) { if (sscanf_s(attStr, "%lu %lu", ¤tEmber.m_FinalRasW, ¤tEmber.m_FinalRasH) != 2) @@ -931,7 +937,7 @@ private: { Xform finalXform; - if (!ParseXform(childNode, finalXform, false)) + if (!ParseXform(childNode, finalXform, false, fromEmber)) { m_ErrorReport.push_back(string(loc) + " : Error parsing final xform"); } @@ -951,7 +957,7 @@ private: { Xform xform; - if (!ParseXform(childNode, xform, false)) + if (!ParseXform(childNode, xform, false, fromEmber)) { m_ErrorReport.push_back(string(loc) + " : Error parsing xform"); } @@ -977,7 +983,7 @@ private: { Xform xform(false);//Will only have valid values in fields parsed for motion, all others will be EMPTYFIELD. - if (!ParseXform(motionNode, xform, true)) + if (!ParseXform(motionNode, xform, true, fromEmber)) m_ErrorReport.push_back(string(loc) + " : Error parsing motion xform"); else theXform->m_Motion.push_back(xform); @@ -1011,7 +1017,7 @@ private: /// The newly constructed xform based on what was parsed /// True if this xform is a motion within a parent xform, else false /// True if there were no errors, else false. - bool ParseXform(xmlNode* childNode, Xform& xform, bool motion) + bool ParseXform(xmlNode* childNode, Xform& xform, bool motion, bool fromEmber) { bool success = true; char* attStr; @@ -1145,7 +1151,8 @@ private: } else { - string s = GetCorrectedVariationName(m_BadVariationNames, curAtt); + //Only correct names if it came from an outside source. Names originating from this library are always considered correct. + string s = fromEmber ? string(CCX(curAtt->name)) : GetCorrectedVariationName(m_BadVariationNames, curAtt); if (Variation* var = m_VariationList.GetVariation(s)) { @@ -1164,7 +1171,7 @@ private: } //Handle var1. - for (curAtt = attPtr; curAtt; curAtt = curAtt->next) + for (curAtt = attPtr; curAtt; curAtt = curAtt->next)//Legacy fields, most likely not used. { bool var1 = false; @@ -1195,7 +1202,7 @@ private: } //Handle var. - for (curAtt = attPtr; curAtt; curAtt = curAtt->next) + for (curAtt = attPtr; curAtt; curAtt = curAtt->next)//Legacy fields, most likely not used. { bool var = false; @@ -1226,7 +1233,8 @@ private: { for (curAtt = attPtr; curAtt; curAtt = curAtt->next) { - string s = GetCorrectedParamName(m_BadParamNames, CCX(curAtt->name)); + //Only correct names if it came from an outside source. Names originating from this library are always considered correct. + string s = fromEmber ? string(CCX(curAtt->name)) : GetCorrectedParamName(m_BadParamNames, CCX(curAtt->name)); const char* name = s.c_str(); if (parVar->ContainsParam(name)) diff --git a/Source/EmberAnimate/EmberAnimate.cpp b/Source/EmberAnimate/EmberAnimate.cpp index 74ac525..b79ef83 100644 --- a/Source/EmberAnimate/EmberAnimate.cpp +++ b/Source/EmberAnimate/EmberAnimate.cpp @@ -258,7 +258,7 @@ bool EmberAnimate(EmberOptions& opt) renderer->Transparency(opt.Transparency()); renderer->NumChannels(channels); renderer->BytesPerChannel(opt.BitsPerChannel() / 8); - renderer->Priority((eThreadPriority)Clamp((uint)eThreadPriority::LOWEST, (uint)eThreadPriority::HIGHEST, opt.Priority())); + renderer->Priority((eThreadPriority)Clamp((int)eThreadPriority::LOWEST, (int)eThreadPriority::HIGHEST, opt.Priority())); renderer->Callback(opt.DoProgress() ? progress.get() : nullptr); std::function saveFunc = [&](uint threadVecIndex) diff --git a/Source/EmberCommon/EmberOptions.h b/Source/EmberCommon/EmberOptions.h index 0b83f1d..047af08 100644 --- a/Source/EmberCommon/EmberOptions.h +++ b/Source/EmberCommon/EmberOptions.h @@ -326,9 +326,16 @@ public: INITBOOLOPTION(DumpKernel, Eob(OPT_USE_RENDER, OPT_DUMP_KERNEL, _T("--dump_kernel"), false, SO_NONE, "\t--dump_kernel Print the iteration kernel string when using OpenCL (ignored for CPU) [default: false].\n")); //Int. - INITINTOPTION(Symmetry, Eoi(OPT_USE_GENOME, OPT_SYMMETRY, _T("--symmetry"), 0, SO_REQ_SEP, "\t--symmetry= Set symmetry of result [default: 0].\n")); - INITINTOPTION(SheepGen, Eoi(OPT_USE_GENOME, OPT_SHEEP_GEN, _T("--sheep_gen"), -1, SO_REQ_SEP, "\t--sheep_gen= Sheep generation of this flame [default: -1].\n")); - INITINTOPTION(SheepId, Eoi(OPT_USE_GENOME, OPT_SHEEP_ID, _T("--sheep_id"), -1, SO_REQ_SEP, "\t--sheep_id= Sheep ID of this flame [default: -1].\n")); + INITINTOPTION(Symmetry, Eoi(OPT_USE_GENOME, OPT_SYMMETRY, _T("--symmetry"), 0, SO_REQ_SEP, "\t--symmetry= Set symmetry of result [default: 0].\n")); + INITINTOPTION(SheepGen, Eoi(OPT_USE_GENOME, OPT_SHEEP_GEN, _T("--sheep_gen"), -1, SO_REQ_SEP, "\t--sheep_gen= Sheep generation of this flame [default: -1].\n")); + INITINTOPTION(SheepId, Eoi(OPT_USE_GENOME, OPT_SHEEP_ID, _T("--sheep_id"), -1, SO_REQ_SEP, "\t--sheep_id= Sheep ID of this flame [default: -1].\n")); +#ifdef _WIN32 + INITINTOPTION(Priority, Eoi(OPT_RENDER_ANIM, OPT_PRIORITY, _T("--priority"), eThreadPriority::NORMAL, SO_REQ_SEP, "\t--priority= The priority of the CPU rendering threads from -2 - 2. This does not apply to OpenCL rendering.\n")); +#else + INITINTOPTION(Priority, Eoi(OPT_RENDER_ANIM, OPT_PRIORITY, _T("--priority"), eThreadPriority::NORMAL, SO_REQ_SEP, "\t--priority= The priority of the CPU rendering threads, 1, 25, 50, 75, 99. This does not apply to OpenCL rendering.\n")); +#endif + + //Uint. INITUINTOPTION(Platform, Eou(OPT_USE_ALL, OPT_OPENCL_PLATFORM, _T("--platform"), 0, SO_REQ_SEP, "\t--platform The OpenCL platform index to use [default: 0].\n")); INITUINTOPTION(Device, Eou(OPT_USE_ALL, OPT_OPENCL_DEVICE, _T("--device"), 0, SO_REQ_SEP, "\t--device The OpenCL device index within the specified platform to use [default: 0].\n")); INITUINTOPTION(Seed, Eou(OPT_USE_ALL, OPT_SEED, _T("--seed"), 0, SO_REQ_SEP, "\t--seed= Integer seed to use for the random number generator [default: random].\n")); @@ -354,7 +361,6 @@ public: INITUINTOPTION(Repeat, Eou(OPT_USE_GENOME, OPT_REPEAT, _T("--repeat"), 1, SO_REQ_SEP, "\t--repeat= Number of new flames to create. Ignored if sequence, inter or rotate were specified [default: 1].\n")); INITUINTOPTION(Tries, Eou(OPT_USE_GENOME, OPT_TRIES, _T("--tries"), 10, SO_REQ_SEP, "\t--tries= Number times to try creating a flame that meets the specified constraints. Ignored if sequence, inter or rotate were specified [default: 10].\n")); INITUINTOPTION(MaxXforms, Eou(OPT_USE_GENOME, OPT_MAX_XFORMS, _T("--maxxforms"), UINT_MAX, SO_REQ_SEP, "\t--maxxforms= The maximum number of xforms allowed in the final output.\n")); - INITUINTOPTION(Priority, Eou(OPT_RENDER_ANIM, OPT_PRIORITY, _T("--priority"), eThreadPriority::NORMAL, SO_REQ_SEP, "\t--priority= The priority of the CPU rendering threads from -2 - 2. This does not apply to OpenCL rendering.\n")); //Double. INITDOUBLEOPTION(SizeScale, Eod(OPT_RENDER_ANIM, OPT_SS, _T("--ss"), 1, SO_REQ_SEP, "\t--ss= Size scale. All dimensions are scaled by this amount [default: 1.0].\n")); @@ -463,6 +469,7 @@ public: PARSEINTOPTION(OPT_SYMMETRY, Symmetry);//Int args PARSEINTOPTION(OPT_SHEEP_GEN, SheepGen); PARSEINTOPTION(OPT_SHEEP_ID, SheepId); + PARSEINTOPTION(OPT_PRIORITY, Priority); PARSEUINTOPTION(OPT_OPENCL_PLATFORM, Platform);//uint args. PARSEUINTOPTION(OPT_OPENCL_DEVICE, Device); PARSEUINTOPTION(OPT_SEED, Seed); @@ -484,7 +491,6 @@ public: PARSEUINTOPTION(OPT_REPEAT, Repeat); PARSEUINTOPTION(OPT_TRIES, Tries); PARSEUINTOPTION(OPT_MAX_XFORMS, MaxXforms); - PARSEUINTOPTION(OPT_PRIORITY, Priority); PARSEDOUBLEOPTION(OPT_SS, SizeScale);//Float args. PARSEDOUBLEOPTION(OPT_QS, QualityScale); @@ -679,6 +685,7 @@ public: EmberOptionEntry Symmetry;//Value int. EmberOptionEntry SheepGen; EmberOptionEntry SheepId; + EmberOptionEntry Priority; EmberOptionEntry Platform;//Value uint. EmberOptionEntry Device; EmberOptionEntry Seed; @@ -700,7 +707,6 @@ public: EmberOptionEntry Repeat; EmberOptionEntry Tries; EmberOptionEntry MaxXforms; - EmberOptionEntry Priority; EmberOptionEntry SizeScale;//Value double. EmberOptionEntry QualityScale; diff --git a/Source/EmberRender/EmberRender.cpp b/Source/EmberRender/EmberRender.cpp index 1a686da..e0b5822 100644 --- a/Source/EmberRender/EmberRender.cpp +++ b/Source/EmberRender/EmberRender.cpp @@ -154,7 +154,7 @@ bool EmberRender(EmberOptions& opt) renderer->Transparency(opt.Transparency()); renderer->NumChannels(channels); renderer->BytesPerChannel(opt.BitsPerChannel() / 8); - renderer->Priority((eThreadPriority)Clamp((uint)eThreadPriority::LOWEST, (uint)eThreadPriority::HIGHEST, opt.Priority())); + renderer->Priority((eThreadPriority)Clamp((int)eThreadPriority::LOWEST, (int)eThreadPriority::HIGHEST, opt.Priority())); renderer->Callback(opt.DoProgress() ? progress.get() : nullptr); for (i = 0; i < embers.size(); i++) diff --git a/Source/Fractorium/FinalRenderDialog.cpp b/Source/Fractorium/FinalRenderDialog.cpp index fe4eaaa..4ecd453 100644 --- a/Source/Fractorium/FinalRenderDialog.cpp +++ b/Source/Fractorium/FinalRenderDialog.cpp @@ -118,7 +118,18 @@ FractoriumFinalRenderDialog::FractoriumFinalRenderDialog(FractoriumSettings* set ui.FinalRenderDoSequenceCheckBox->setChecked( m_Settings->FinalDoSequence()); ui.FinalRenderKeepAspectCheckBox->setChecked( m_Settings->FinalKeepAspect()); ui.FinalRenderThreadCountSpin->setValue( m_Settings->FinalThreadCount()); +#ifdef _WIN32 ui.FinalRenderThreadPriorityComboBox->setCurrentIndex(m_Settings->FinalThreadPriority() + 2); +#else + auto tpc = ui.FinalRenderThreadPriorityComboBox->count() - 1; + + if (m_Settings->FinalThreadPriority() == THREAD_PRIORITY_LOWEST) + ui.FinalRenderThreadPriorityComboBox->setCurrentIndex(0); + else if (m_Settings->FinalThreadPriority() == THREAD_PRIORITY_HIGHEST) + ui.FinalRenderThreadPriorityComboBox->setCurrentIndex(tpc); + else + ui.FinalRenderThreadPriorityComboBox->setCurrentIndex(Clamp(0, tpc, m_Settings->FinalThreadPriority() / 25)); +#endif m_QualitySpin->setValue(m_Settings->FinalQuality()); m_TemporalSamplesSpin->setValue(m_Settings->FinalTemporalSamples()); @@ -206,7 +217,19 @@ uint FractoriumFinalRenderDialog::Current() { return ui.FinalRenderCurrentSpin-> uint FractoriumFinalRenderDialog::PlatformIndex() { return ui.FinalRenderPlatformCombo->currentIndex(); } uint FractoriumFinalRenderDialog::DeviceIndex() { return ui.FinalRenderDeviceCombo->currentIndex(); } uint FractoriumFinalRenderDialog::ThreadCount() { return ui.FinalRenderThreadCountSpin->value(); } -uint FractoriumFinalRenderDialog::ThreadPriority() { return ui.FinalRenderThreadPriorityComboBox->currentIndex() - 2; } +#ifdef _WIN32 +int FractoriumFinalRenderDialog::ThreadPriority() { return ui.FinalRenderThreadPriorityComboBox->currentIndex() - 2; } +#else +int FractoriumFinalRenderDialog::ThreadPriority() +{ + if (ui.FinalRenderThreadPriorityComboBox->currentIndex() == 0) + return THREAD_PRIORITY_LOWEST; + else if (ui.FinalRenderThreadPriorityComboBox->currentIndex() == (ui.FinalRenderThreadPriorityComboBox->count() - 1)) + return THREAD_PRIORITY_HIGHEST; + else + return ui.FinalRenderThreadPriorityComboBox->currentIndex() * 25; +} +#endif double FractoriumFinalRenderDialog::WidthScale() { return m_WidthScaleSpin->value(); } double FractoriumFinalRenderDialog::HeightScale() { return m_HeightScaleSpin->value(); } double FractoriumFinalRenderDialog::Quality() { return m_QualitySpin->value(); } diff --git a/Source/Fractorium/FinalRenderDialog.h b/Source/Fractorium/FinalRenderDialog.h index 7eaab89..732febc 100644 --- a/Source/Fractorium/FinalRenderDialog.h +++ b/Source/Fractorium/FinalRenderDialog.h @@ -68,7 +68,7 @@ public: uint PlatformIndex(); uint DeviceIndex(); uint ThreadCount(); - uint ThreadPriority(); + int ThreadPriority(); double WidthScale(); double HeightScale(); double Quality(); diff --git a/Source/Fractorium/FinalRenderEmberController.cpp b/Source/Fractorium/FinalRenderEmberController.cpp index 163d619..f7169c2 100644 --- a/Source/Fractorium/FinalRenderEmberController.cpp +++ b/Source/Fractorium/FinalRenderEmberController.cpp @@ -174,7 +174,7 @@ FinalRenderEmberController::FinalRenderEmberController(FractoriumFinalRenderD m_Renderer->Transparency(m_GuiState.m_Transparency); m_Renderer->m_ProgressParameter = reinterpret_cast(¤tStripForProgress); - if (path.endsWith(".png", Qt::CaseInsensitive) || m_Renderer->RendererType() == OPENCL_RENDERER)//This is creating the wrong thing.//TODO + if (path.endsWith(".png", Qt::CaseInsensitive) || m_Renderer->RendererType() == OPENCL_RENDERER) m_Renderer->NumChannels(4); else m_Renderer->NumChannels(3); diff --git a/Source/Fractorium/FinalRenderEmberController.h b/Source/Fractorium/FinalRenderEmberController.h index 440236a..597d946 100644 --- a/Source/Fractorium/FinalRenderEmberController.h +++ b/Source/Fractorium/FinalRenderEmberController.h @@ -38,7 +38,7 @@ struct FinalRenderGuiState uint m_PlatformIndex; uint m_DeviceIndex; uint m_ThreadCount; - uint m_ThreadPriority; + int m_ThreadPriority; double m_WidthScale; double m_HeightScale; double m_Quality; diff --git a/Source/Fractorium/Fractorium.cpp b/Source/Fractorium/Fractorium.cpp index ad10e7f..2b0c371 100644 --- a/Source/Fractorium/Fractorium.cpp +++ b/Source/Fractorium/Fractorium.cpp @@ -23,7 +23,16 @@ Fractorium::Fractorium(QWidget* p) qRegisterMetaType>("QVector");//For previews. qRegisterMetaType>("vector"); qRegisterMetaType("EmberTreeWidgetItemBase*"); - + + setDockOptions(DockOption::AllowNestedDocks | DockOption::AllowTabbedDocks); + setTabPosition(Qt::AllDockWidgetAreas, QTabWidget::TabPosition::North); + setTabShape(QTabWidget::TabShape::Triangular); + tabifyDockWidget(ui.LibraryDockWidget, ui.FlameDockWidget); + tabifyDockWidget(ui.FlameDockWidget, ui.XformsDockWidget); + tabifyDockWidget(ui.XformsDockWidget, ui.XaosDockWidget); + tabifyDockWidget(ui.XaosDockWidget, ui.PaletteDockWidget); + tabifyDockWidget(ui.PaletteDockWidget, ui.InfoDockWidget); + m_FontSize = 9; m_VarSortMode = 1;//Sort by weight by default. m_PaletteSortMode = 0;//Sort by palette ascending by default. @@ -128,14 +137,14 @@ Fractorium::Fractorium(QWidget* p) //Setup pointer in the GL window to point back to here. ui.GLDisplay->SetMainWindow(this); - + restoreState(m_Settings->value("windowState").toByteArray()); showMaximized();//This won't fully set things up and show them until after this constructor exits. - connect(ui.DockWidget, SIGNAL(dockLocationChanged(Qt::DockWidgetArea)), this, SLOT(dockLocationChanged(Qt::DockWidgetArea))); - connect(ui.DockWidget, SIGNAL(topLevelChanged(bool)), this, SLOT(OnDockTopLevelChanged(bool))); + connect(ui.LibraryDockWidget, SIGNAL(dockLocationChanged(Qt::DockWidgetArea)), this, SLOT(dockLocationChanged(Qt::DockWidgetArea))); + connect(ui.LibraryDockWidget, SIGNAL(topLevelChanged(bool)), this, SLOT(OnDockTopLevelChanged(bool))); //Always ensure the library tab is selected, which will show preview renders. - ui.ParamsTabWidget->setCurrentIndex(0); + //ui.ParamsTabWidget->setCurrentIndex(0); ui.XformsTabWidget->setCurrentIndex(2);//Make variations tab the currently selected one under the Xforms tab. //Setting certain values will completely throw off the GUI, doing everything @@ -159,6 +168,7 @@ Fractorium::Fractorium(QWidget* p) SetCoordinateStatus(0, 0, 0, 0); SetTabOrders(); + //At this point, everything has been setup except the renderer. Shortly after //this constructor exits, GLWidget::InitGL() will create the initial flock and start the rendering timer //which executes whenever the program is idle. Upon starting the timer, the renderer @@ -172,6 +182,7 @@ Fractorium::Fractorium(QWidget* p) /// Fractorium::~Fractorium() { + m_Settings->setValue("windowState", saveState()); m_Settings->sync(); } @@ -718,6 +729,8 @@ void Fractorium::SetTabOrders() w = SetTabOrder(this, w, m_PaletteBlurSpin); w = SetTabOrder(this, w, m_PaletteBrightnessSpin); w = SetTabOrder(this, w, m_PaletteFrequencySpin); + w = SetTabOrder(this, w, ui.PaletteFilterLineEdit); + w = SetTabOrder(this, w, ui.PaletteFilterClearButton); w = SetTabOrder(this, w, ui.PaletteListTable); w = SetTabOrder(this, ui.InfoBoundsGroupBox, ui.InfoBoundsFrame);//Info. diff --git a/Source/Fractorium/Fractorium.ui b/Source/Fractorium/Fractorium.ui index 3a06e6a..76d6e49 100644 --- a/Source/Fractorium/Fractorium.ui +++ b/Source/Fractorium/Fractorium.ui @@ -6,8 +6,8 @@ 0 0 - 1214 - 983 + 1418 + 926 @@ -74,8 +74,8 @@ 0 0 - 926 - 942 + 1130 + 885 @@ -96,6 +96,5375 @@ Qt::WheelFocus + + + + 0 + 0 + 211 + 881 + + + + true + + + QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable + + + Qt::BottomDockWidgetArea|Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea + + + Flame + + + + + 0 + + + 5 + + + 5 + + + 5 + + + 4 + + + + + QFrame::NoFrame + + + QFrame::Raised + + + true + + + + + 0 + 0 + 201 + 850 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + true + + + + 0 + 0 + + + + + 0 + 22 + + + + + 16777215 + 22 + + + + Qt::NoFocus + + + QFrame::Panel + + + QFrame::Plain + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + false + + + false + + + false + + + 15 + + + false + + + 15 + + + true + + + false + + + 15 + + + false + + + 15 + + + + Filter + + + AlignHCenter|AlignTop + + + + + + + + true + + + + 0 + 0 + + + + + 0 + 22 + + + + + 16777215 + 22 + + + + Qt::NoFocus + + + QFrame::Panel + + + QFrame::Plain + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + QAbstractItemView::ScrollPerItem + + + QAbstractItemView::ScrollPerItem + + + false + + + false + + + false + + + 15 + + + false + + + 15 + + + true + + + false + + + 15 + + + false + + + 15 + + + + Color + + + AlignHCenter|AlignTop + + + + + + + + + 0 + 0 + + + + + 0 + 156 + + + + + 16777215 + 156 + + + + Qt::NoFocus + + + false + + + QFrame::Panel + + + QFrame::Plain + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + QAbstractItemView::NoEditTriggers + + + false + + + false + + + QAbstractItemView::NoSelection + + + QAbstractItemView::SelectItems + + + QAbstractItemView::ScrollPerPixel + + + QAbstractItemView::ScrollPerPixel + + + true + + + Qt::SolidLine + + + false + + + false + + + 2 + + + false + + + false + + + 110 + + + false + + + 35 + + + true + + + false + + + 22 + + + false + + + 22 + + + false + + + + Brightness + + + + + Gamma + + + + + Gamma Threshold + + + + + Vibrancy + + + + + Highlight Power + + + + + Background + + + + + Palette Mode + + + + + Field + + + + + + + + + + Brightness + + + + + 0 + + + + + Gamma + + + + + 0 + + + + + Gamma Threshold + + + + + 0 + + + + + Vibrancy + + + + + 0 + + + + + Highlight Power + + + + + 0 + + + + + Background + + + + + 0 + + + + + Palette Mode + + + + + 0 + + + + + + + + + 0 + 0 + + + + + 0 + 156 + + + + + 16777215 + 156 + + + + Qt::NoFocus + + + QFrame::Panel + + + QFrame::Plain + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + QAbstractItemView::NoEditTriggers + + + false + + + false + + + QAbstractItemView::NoSelection + + + QAbstractItemView::ScrollPerPixel + + + QAbstractItemView::ScrollPerPixel + + + true + + + Qt::SolidLine + + + false + + + 2 + + + false + + + false + + + 110 + + + false + + + 35 + + + true + + + false + + + 22 + + + false + + + 22 + + + false + + + + Sub Batch Size + + + + + Fuse Count + + + + + Quality + + + + + Supersample + + + + + Temporal Samples + + + + + Affine Interpolation + + + + + Interpolation + + + + + Field + + + + + + + + + + Sub Batch Size + + + + + 0 + + + + + Fuse Count + + + + + 0 + + + + + Quality + + + + + 0 + + + + + Supersample + + + + + 0 + + + + + Temporal Samples + + + + + 0 + + + + + Affine Interpolation + + + + + 0 + + + + + Interpolation + + + + + 0 + + + + + + + + true + + + + 0 + 0 + + + + + 0 + 22 + + + + + 16777215 + 22 + + + + Qt::NoFocus + + + QFrame::Panel + + + QFrame::Plain + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + false + + + false + + + false + + + 15 + + + false + + + 15 + + + true + + + false + + + 15 + + + false + + + 15 + + + + Geometry + + + AlignHCenter|AlignTop + + + + + + + + true + + + + 0 + 0 + + + + + 0 + 22 + + + + + 16777215 + 22 + + + + Qt::NoFocus + + + QFrame::Panel + + + QFrame::Plain + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + false + + + false + + + false + + + 15 + + + false + + + 15 + + + true + + + false + + + 15 + + + false + + + 15 + + + + Iteration + + + AlignHCenter|AlignTop + + + + + + + + + 0 + 0 + + + + + 0 + 156 + + + + + 16777215 + 156 + + + + Qt::NoFocus + + + QFrame::Panel + + + QFrame::Plain + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + QAbstractItemView::NoEditTriggers + + + false + + + false + + + QAbstractItemView::NoSelection + + + QAbstractItemView::ScrollPerPixel + + + QAbstractItemView::ScrollPerPixel + + + true + + + Qt::SolidLine + + + false + + + 2 + + + false + + + false + + + 125 + + + false + + + 35 + + + true + + + false + + + 22 + + + false + + + 22 + + + false + + + + Spatial Filter Width + + + + + Spatial Filter Type + + + + + Temporal Filter Width + + + + + Temporal Filter Type + + + + + DE Filter Min Radius + + + + + DE Filter Max Radius + + + + + DE Curve + + + + + Field + + + + + + + + + + Spatial Filter Width + + + + + 0 + + + + + Spatial Filter Type + + + + + 0 + + + + + Temporal Filter Width + + + + + 0 + + + + + Temporal Filter Type + + + + + 0 + + + + + DE Filter Min Radius + + + + + 0 + + + + + DE Filter Max Radius + + + + + 0 + + + + + DE Curve + + + + + 0 + + + + + + + + Qt::Vertical + + + QSizePolicy::Minimum + + + + 20 + 5 + + + + + + + + Qt::Vertical + + + QSizePolicy::Minimum + + + + 20 + 5 + + + + + + + + + 0 + 0 + + + + + 0 + 266 + + + + + 16777215 + 266 + + + + Qt::NoFocus + + + QFrame::Panel + + + QFrame::Plain + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + QAbstractItemView::NoEditTriggers + + + false + + + false + + + QAbstractItemView::NoSelection + + + QAbstractItemView::ScrollPerPixel + + + QAbstractItemView::ScrollPerPixel + + + true + + + Qt::SolidLine + + + false + + + 2 + + + false + + + false + + + 110 + + + false + + + 35 + + + true + + + false + + + 22 + + + false + + + 22 + + + false + + + + Width + + + + + Height + + + + + Center X + + + + + Center Y + + + + + Scale + + + + + Zoom + + + + + Rotate + + + + + Z Pos + + + + + Perspective + + + + + Pitch + + + + + Yaw + + + + + Depth Blur + + + + + Field + + + + + + + + + + Width + + + + + 0 + + + + + Height + + + + + 0 + + + + + Center X + + + + + 0 + + + + + Center Y + + + + + 0 + + + + + Scale + + + + + 0 + + + + + Zoom + + + + + 0 + + + + + Rotate + + + + + 0 + + + + + Z Pos + + + + + 0 + + + + + Perspective + + + + + 0 + + + + + Pitch + + + + + 0 + + + + + Yaw + + + + + 0 + + + + + Depth Blur + + + + + 0 + + + + + + + + Qt::Vertical + + + QSizePolicy::Minimum + + + + 20 + 5 + + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 20 + 300 + + + + + + + + + + + + + + + 485 + 0 + 181 + 871 + + + + QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable + + + Qt::BottomDockWidgetArea|Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea + + + Xaos + + + + + 4 + + + 5 + + + 5 + + + 5 + + + 4 + + + + + + + Set all xaos values in all xforms to 1 + + + Clear Xaos + + + + + + + Randomize all xaos values in all xforms + + + Random Xaos + + + + + + + + + + 0 + 0 + + + + + 0 + 67 + + + + + 16777215 + 16777215 + + + + + true + + + + Qt::NoFocus + + + + + + QFrame::Panel + + + QFrame::Plain + + + 1 + + + Qt::ScrollBarAsNeeded + + + Qt::ScrollBarAsNeeded + + + QAbstractScrollArea::AdjustToContents + + + true + + + QAbstractItemView::CurrentChanged|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed|QAbstractItemView::SelectedClicked + + + true + + + false + + + false + + + false + + + QAbstractItemView::SingleSelection + + + QAbstractItemView::ScrollPerPixel + + + QAbstractItemView::ScrollPerPixel + + + true + + + Qt::SolidLine + + + false + + + false + + + false + + + 35 + + + false + + + 35 + + + false + + + 22 + + + false + + + 22 + + + + + + + + + + 666 + 0 + 205 + 871 + + + + QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable + + + Qt::BottomDockWidgetArea|Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea + + + Palette + + + + + 5 + + + 5 + + + 5 + + + 4 + + + + + + + + + 2 + 0 + + + + + 0 + 67 + + + + + 16777215 + 67 + + + + Qt::NoFocus + + + QFrame::Panel + + + QFrame::Plain + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + false + + + QAbstractItemView::NoEditTriggers + + + false + + + QAbstractItemView::NoSelection + + + QAbstractItemView::ScrollPerPixel + + + QAbstractItemView::ScrollPerPixel + + + false + + + false + + + 3 + + + 4 + + + false + + + 62 + + + 62 + + + true + + + false + + + 22 + + + false + + + 22 + + + + + + + + + + + Hue + + + + + Contrast + + + + + Saturation + + + + + Blur + + + + + Brightness + + + + + + + + + + Frequency + + + + + + + + 4 + + + 0 + + + 0 + + + + + + 0 + 24 + + + + + 16777215 + 24 + + + + Select a random palette from the list + + + Random Palette + + + + + + + + 0 + 24 + + + + + 16777215 + 24 + + + + Apply a random adjustment to the current palette + + + Random Adjustment + + + false + + + + + + + + + + 0 + 0 + + + + + 0 + 22 + + + + + 16777215 + 22 + + + + Qt::NoFocus + + + QFrame::Panel + + + QFrame::Plain + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + false + + + QAbstractItemView::NoEditTriggers + + + QAbstractItemView::NoSelection + + + QAbstractItemView::ScrollPerPixel + + + QAbstractItemView::ScrollPerPixel + + + false + + + false + + + 1 + + + 2 + + + false + + + 27 + + + true + + + false + + + 20 + + + 20 + + + + + + + + + + 5 + + + QLayout::SetDefaultConstraint + + + 0 + + + 0 + + + 0 + + + + + + + + + 30 + 0 + + + + + 30 + 16777215 + + + + X + + + false + + + + + + + + + Qt::StrongFocus + + + QFrame::Panel + + + QFrame::Plain + + + Qt::ScrollBarAsNeeded + + + false + + + QAbstractItemView::NoEditTriggers + + + false + + + QAbstractItemView::NoSelection + + + QAbstractItemView::ScrollPerPixel + + + false + + + 2 + + + false + + + true + + + false + + + 16 + + + false + + + 16 + + + false + + + + Name + + + AlignLeft|AlignVCenter + + + + + Palette + + + AlignLeft|AlignVCenter + + + + + + + + + + + 211 + 0 + 274 + 861 + + + + QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable + + + Xforms + + + + + 5 + + + 4 + + + 5 + + + 4 + + + 4 + + + + + 2 + + + + + + 0 + 22 + + + + + 60 + 22 + + + + + 60 + 16777215 + + + + Current xform + + + false + + + 12 + + + + 9 + 9 + + + + true + + + + + + + + 0 + 0 + + + + + 25 + 24 + + + + + 16777215 + 24 + + + + Add xform + + + + + + + :/Fractorium/Icons/add.png:/Fractorium/Icons/add.png + + + + + + + + 0 + 0 + + + + + 25 + 24 + + + + + 16777215 + 24 + + + + Duplicate selected xforms + + + + + + + :/Fractorium/Icons/editraise.png:/Fractorium/Icons/editraise.png + + + + + + + + 0 + 0 + + + + + 25 + 24 + + + + + 16777215 + 24 + + + + Clear selected xforms' variations + + + + + + + :/Fractorium/Icons/eraser.png:/Fractorium/Icons/eraser.png + + + + + + + + 0 + 0 + + + + + 25 + 24 + + + + + 16777215 + 24 + + + + Delete selected xforms + + + + + + + :/Fractorium/Icons/del.png:/Fractorium/Icons/del.png + + + + + + + + 0 + 0 + + + + + 58 + 24 + + + + + 58 + 24 + + + + + 0 + 0 + + + + Add final xform + + + Qt::LeftToRight + + + Final + + + + :/Fractorium/Icons/add.png:/Fractorium/Icons/add.png + + + + + + + + + + 2 + 0 + + + + + 0 + 45 + + + + + 16777215 + 45 + + + + + true + + + + Qt::StrongFocus + + + false + + + QFrame::Panel + + + QFrame::Plain + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + false + + + QAbstractItemView::DoubleClicked|QAbstractItemView::SelectedClicked + + + false + + + QAbstractItemView::NoSelection + + + QAbstractItemView::ScrollPerPixel + + + QAbstractItemView::ScrollPerPixel + + + false + + + false + + + 1 + + + 2 + + + false + + + false + + + 27 + + + true + + + false + + + 21 + + + false + + + 21 + + + + + Weight + + + + + Name + + + + + AlignLeft|AlignVCenter + + + + + AlignLeft|AlignVCenter + + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + + MS Shell Dlg 2 + + + + + + + true + + + QTabWidget::pane +{ + border: 1px solid #898C95; + font: 9pt "Segoe UI"; +} + +QTabWidget::tab-bar +{ + bottom: -1px; +} + +DoubleSpinBox +{ + font: 9pt "Segoe UI"; +} + +SpinBox +{ + font: 9pt "Segoe UI"; +} + + + + QTabWidget::Triangular + + + 2 + + + + + 0 + 0 + + + + + + + Color + + + Color palette index for the current xform, and curve adjustment + + + + QFormLayout::AllNonFixedFieldsGrow + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 0 + 0 + + + + + 0 + 22 + + + + + 16777215 + 22 + + + + + true + + + + Qt::NoFocus + + + false + + + + + + QFrame::Panel + + + QFrame::Plain + + + 1 + + + 0 + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + QAbstractItemView::NoEditTriggers + + + false + + + QAbstractItemView::NoSelection + + + QAbstractItemView::ScrollPerPixel + + + QAbstractItemView::ScrollPerPixel + + + true + + + false + + + false + + + 1 + + + 2 + + + false + + + false + + + 27 + + + true + + + false + + + 21 + + + false + + + 21 + + + false + + + + + + + + + + AlignLeft|AlignVCenter + + + + + + + + + 0 + 0 + + + + + 0 + 19 + + + + + 16777215 + 19 + + + + Qt::NoFocus + + + QFrame::Panel + + + QFrame::Plain + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + QAbstractItemView::NoEditTriggers + + + false + + + QAbstractItemView::NoSelection + + + QAbstractItemView::ScrollPerPixel + + + QAbstractItemView::ScrollPerPixel + + + false + + + false + + + false + + + 1 + + + 1 + + + false + + + 256 + + + true + + + false + + + 19 + + + false + + + + + + + + + NoItemFlags + + + + + + + + + 0 + 0 + + + + + 162 + 18 + + + + + 16777215 + 18 + + + + Qt::NoFocus + + + 0 + + + 255 + + + 1 + + + 10 + + + 128 + + + true + + + Qt::Horizontal + + + false + + + false + + + + + + + + 0 + 0 + + + + + 0 + 45 + + + + + 16777215 + 68 + + + + + true + + + + Qt::NoFocus + + + + + + QFrame::Panel + + + QFrame::Plain + + + 1 + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + false + + + QAbstractItemView::NoEditTriggers + + + false + + + false + + + false + + + false + + + QAbstractItemView::NoSelection + + + QAbstractItemView::ScrollPerPixel + + + QAbstractItemView::ScrollPerPixel + + + true + + + Qt::SolidLine + + + false + + + false + + + 2 + + + false + + + false + + + 110 + + + false + + + 27 + + + true + + + false + + + 22 + + + false + + + 22 + + + false + + + + Color Speed + + + + + Opacity + + + + + Direct Color + + + + + Field + + + + + + + + + + Color Speed + + + + + 0 + + + + true + + + + AlignLeft|AlignVCenter + + + + + Opacity + + + + + 0 + + + + + Direct Color + + + + + 0 + + + + + + + + Solo + + + + + + + + 0 + 0 + + + + + 245 + 245 + + + + + 245 + 245 + + + + true + + + false + + + QFrame::NoFrame + + + QFrame::Plain + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + + + 219 + 219 + 219 + + + + + + 0.000000000000000 + 0.000000000000000 + 245.000000000000000 + 245.000000000000000 + + + + QGraphicsView::NoAnchor + + + QGraphicsView::FullViewportUpdate + + + + + + + Curve + + + + 6 + + + 2 + + + 6 + + + 6 + + + + + All + + + true + + + + + + + Red + + + + + + + Green + + + + + + + Blue + + + + + + + + + + + 0 + 0 + + + + Reset Curves + + + + + + + + + 0 + 0 + + + + + + + true + + + Affine + + + Affine transforms for the current xform + + + + 5 + + + 6 + + + 5 + + + 6 + + + 5 + + + + + true + + + QFrame::NoFrame + + + QFrame::Raised + + + true + + + + + 0 + 0 + 233 + 618 + + + + true + + + + 4 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + + 100 + 270 + + + + + 16777215 + 270 + + + + true + + + Pre Affine Transform + + + false + + + true + + + + 4 + + + 6 + + + 4 + + + 6 + + + 6 + + + + + + 2 + 0 + + + + + 0 + 90 + + + + + 10000 + 90 + + + + Qt::NoFocus + + + QFrame::Panel + + + QFrame::Plain + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + false + + + QAbstractItemView::NoEditTriggers + + + false + + + QAbstractItemView::NoSelection + + + QAbstractItemView::ScrollPerPixel + + + QAbstractItemView::ScrollPerPixel + + + true + + + false + + + false + + + 3 + + + 2 + + + false + + + 100 + + + false + + + 40 + + + true + + + false + + + false + + + 22 + + + false + + + 22 + + + false + + + + X + + + + + Y + + + + + O + + + + + 1 (A, B, C) + + + + + 2 (D, E, F) + + + + + + + + QLayout::SetDefaultConstraint + + + 0 + + + 4 + + + + + Rotate xform 90 degrees counter clockwise + + + + + + + :/Fractorium/Icons/arrow_turn_left.png:/Fractorium/Icons/arrow_turn_left.png + + + + + + + Rotate xform 90 degrees clockwise + + + + + + + :/Fractorium/Icons/arrow_turn_right.png:/Fractorium/Icons/arrow_turn_right.png + + + + + + + Scale xform x percent up + + + + + + + :/Fractorium/Icons/arrow_out.png:/Fractorium/Icons/arrow_out.png + + + + + + + Move xform x units right + + + + + + + :/Fractorium/Icons/arrow_right.png:/Fractorium/Icons/arrow_right.png + + + + + + + + 0 + 0 + + + + + 75 + 22 + + + + true + + + true + + + + 110 + + + + + 125 + + + + + 150 + + + + + 175 + + + + + 200 + + + + + + + + Move xform x units up + + + + + + + :/Fractorium/Icons/arrow_up.png:/Fractorium/Icons/arrow_up.png + + + + + + + Move xform x units down + + + + + + + :/Fractorium/Icons/arrow_down.png:/Fractorium/Icons/arrow_down.png + + + + + + + + 0 + 0 + + + + + 75 + 22 + + + + true + + + true + + + + 1 + + + + + + + + Move xform x units left + + + + + + + :/Fractorium/Icons/arrow_left.png:/Fractorium/Icons/arrow_left.png + + + + + + + + 0 + 0 + + + + + 75 + 22 + + + + true + + + QComboBox::NoInsert + + + QComboBox::AdjustToContents + + + true + + + + 5 + + + + + 15 + + + + + 30 + + + + + 45 + + + + + 60 + + + + + 90 + + + + + 120 + + + + + 180 + + + + + + + + Rotate xform x degrees counter clockwise + + + + + + + :/Fractorium/Icons/arrow_rotate_anticlockwise.png:/Fractorium/Icons/arrow_rotate_anticlockwise.png + + + + + + + Rotate xform x degrees clockwise + + + + + + + :/Fractorium/Icons/arrow_rotate_clockwise.png:/Fractorium/Icons/arrow_rotate_clockwise.png + + + + + + + Scale xform x percent down + + + + + + + :/Fractorium/Icons/arrow_in.png:/Fractorium/Icons/arrow_in.png + + + + + + + + 0 + 0 + + + + Flip xform vertically + + + + + + + :/Fractorium/Icons/shape_flip_vertical.png:/Fractorium/Icons/shape_flip_vertical.png + + + + + + + + 0 + 0 + + + + + 75 + 0 + + + + Reset xform to the identity matrix + + + Reset + + + + + + + + 0 + 0 + + + + Flip xform horizontally + + + + + + + :/Fractorium/Icons/shape_flip_horizontal.png:/Fractorium/Icons/shape_flip_horizontal.png + + + + + + + + + true + + + Show + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + false + + + false + + + + 6 + + + 6 + + + 2 + + + 6 + + + 6 + + + + + Current + + + + + + + All + + + true + + + + + + + + + + + + + + 0 + 0 + + + + + 100 + 270 + + + + + 16777215 + 270 + + + + true + + + Post Affine Transform + + + false + + + true + + + true + + + + 4 + + + 6 + + + 4 + + + 6 + + + 6 + + + + + true + + + + 2 + 0 + + + + + 0 + 90 + + + + + 10000 + 90 + + + + Qt::NoFocus + + + QFrame::Panel + + + QFrame::Plain + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + false + + + QAbstractItemView::NoEditTriggers + + + false + + + QAbstractItemView::NoSelection + + + QAbstractItemView::ScrollPerPixel + + + QAbstractItemView::ScrollPerPixel + + + true + + + false + + + false + + + 3 + + + 2 + + + false + + + 100 + + + false + + + 40 + + + true + + + false + + + false + + + 22 + + + false + + + 22 + + + false + + + + X + + + + + Y + + + + + O + + + + + 1 (A, B, C) + + + + + 2 (D, E, F) + + + + + + + + QLayout::SetDefaultConstraint + + + 0 + + + 4 + + + + + true + + + Rotate xform 90 degrees counter clockwise + + + + + + + :/Fractorium/Icons/arrow_turn_left.png:/Fractorium/Icons/arrow_turn_left.png + + + + + + + true + + + Rotate xform 90 degrees clockwise + + + + + + + :/Fractorium/Icons/arrow_turn_right.png:/Fractorium/Icons/arrow_turn_right.png + + + + + + + true + + + Scale xform x percent up + + + + + + + :/Fractorium/Icons/arrow_out.png:/Fractorium/Icons/arrow_out.png + + + + + + + true + + + Move xform x units right + + + + + + + :/Fractorium/Icons/arrow_right.png:/Fractorium/Icons/arrow_right.png + + + + + + + true + + + + 0 + 0 + + + + + 75 + 22 + + + + true + + + true + + + + 110 + + + + + 125 + + + + + 150 + + + + + 175 + + + + + 200 + + + + + + + + true + + + Move xform x units up + + + + + + + :/Fractorium/Icons/arrow_up.png:/Fractorium/Icons/arrow_up.png + + + + + + + true + + + Move xform x units down + + + + + + + :/Fractorium/Icons/arrow_down.png:/Fractorium/Icons/arrow_down.png + + + + + + + true + + + + 0 + 0 + + + + + 75 + 22 + + + + true + + + true + + + + 1 + + + + + + + + true + + + Move xform x units left + + + + + + + :/Fractorium/Icons/arrow_left.png:/Fractorium/Icons/arrow_left.png + + + + + + + true + + + + 0 + 0 + + + + + 75 + 22 + + + + true + + + QComboBox::NoInsert + + + QComboBox::AdjustToContents + + + true + + + + 5 + + + + + 15 + + + + + 30 + + + + + 45 + + + + + 60 + + + + + 90 + + + + + 120 + + + + + 180 + + + + + + + + true + + + Rotate xform x degrees counter clockwise + + + + + + + :/Fractorium/Icons/arrow_rotate_anticlockwise.png:/Fractorium/Icons/arrow_rotate_anticlockwise.png + + + + + + + true + + + Rotate xform x degrees clockwise + + + + + + + :/Fractorium/Icons/arrow_rotate_clockwise.png:/Fractorium/Icons/arrow_rotate_clockwise.png + + + + + + + true + + + Scale xform x percent down + + + + + + + :/Fractorium/Icons/arrow_in.png:/Fractorium/Icons/arrow_in.png + + + + + + + true + + + Flip xform horizontally + + + + + + + :/Fractorium/Icons/shape_flip_horizontal.png:/Fractorium/Icons/shape_flip_horizontal.png + + + + + + + true + + + Flip xform vertically + + + + + + + :/Fractorium/Icons/shape_flip_vertical.png:/Fractorium/Icons/shape_flip_vertical.png + + + + + + + true + + + + 0 + 0 + + + + + 75 + 0 + + + + Reset xform to the identity matrix + + + Reset + + + + + + + + + true + + + true + + + Show + + + + 6 + + + 2 + + + 6 + + + 6 + + + + + true + + + Current + + + true + + + + + + + true + + + All + + + + + + + + + + + + + Polar + + + + + + + true + + + Pivot + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + false + + + + 6 + + + 2 + + + 6 + + + 6 + + + + + Local + + + true + + + + + + + World + + + + + + + + + + Qt::Vertical + + + QSizePolicy::MinimumExpanding + + + + 20 + 5 + + + + + + + + + + + + + + + + Variations + + + Full list of available variations and their weights for the currently selected xform + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + 5 + + + QLayout::SetDefaultConstraint + + + 0 + + + 0 + + + 0 + + + + + + + + + 30 + 0 + + + + + 30 + 16777215 + + + + X + + + false + + + + + + + + + + 0 + 0 + + + + Qt::WheelFocus + + + Qt::DefaultContextMenu + + + QFrame::Panel + + + QFrame::Plain + + + 1 + + + QAbstractItemView::NoEditTriggers + + + QAbstractItemView::NoSelection + + + QAbstractItemView::SelectItems + + + 12 + + + false + + + true + + + false + + + false + + + 2 + + + 70 + + + true + + + 10 + + + true + + + true + + + + Variation + + + + + Weight + + + + + Spherical + + + 0 + + + ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled + + + + + Sinusoidal + + + 0 + + + ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled + + + + + Pdj + + + 0 + + + ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled + + + + pdj_d + + + 1 + + + ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled + + + + + pdj_c + + + 2 + + + ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled + + + + + pdj_b + + + 1.5 + + + ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled + + + + + pdj_a + + + 1 + + + ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled + + + + + + Linear + + + 0 + + + ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled + + + + + + + + + + + + true + + + Select + + + Select multiple xforms to apply operations to + + + + 3 + + + 5 + + + 4 + + + 5 + + + 4 + + + + + Select All + + + + + + + Select None + + + + + + + + 0 + 0 + + + + true + + + Select Xforms + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + true + + + QFrame::NoFrame + + + QFrame::Plain + + + QAbstractScrollArea::AdjustToContents + + + true + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + 0 + 0 + 250 + 520 + + + + + 0 + 0 + + + + + 6 + + + 6 + + + 6 + + + 6 + + + 6 + + + + + DeleteMeCheckBox + + + + + + + CheckBox + + + + + + + + + + + + + + + + + + + + + 871 + 0 + 241 + 881 + + + + QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable + + + Qt::BottomDockWidgetArea|Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea + + + Info + + + + + 6 + + + 5 + + + 4 + + + 5 + + + 4 + + + + + QFrame::NoFrame + + + QFrame::Plain + + + 1 + + + true + + + + + 0 + 0 + 231 + 851 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + + 0 + 250 + + + + + 16777215 + 250 + + + + + 0 + 0 + + + + Qt::StrongFocus + + + false + + + Histogram Bounds + + + + 4 + + + 6 + + + 4 + + + 6 + + + 6 + + + + + + 0 + 0 + + + + + 0 + 173 + + + + + 16777215 + 173 + + + + false + + + QFrame::Box + + + QFrame::Plain + + + + 2 + + + 2 + + + 2 + + + 2 + + + 2 + + + + + QFrame::Box + + + QFrame::Plain + + + UL: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + + + QFrame::Box + + + LR: + + + Qt::AlignBottom|Qt::AlignRight|Qt::AlignTrailing + + + + + + + QFrame::Box + + + UR: + + + Qt::AlignRight|Qt::AlignTop|Qt::AlignTrailing + + + + + + + QFrame::Box + + + W x H: + + + Qt::AlignCenter + + + + + + + QFrame::Box + + + LL: + + + Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft + + + + + + + + + + + 0 + 0 + + + + + 0 + 46 + + + + + 16777215 + 46 + + + + + true + + + + Qt::NoFocus + + + + + + QFrame::Panel + + + QFrame::Plain + + + 1 + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + false + + + QAbstractItemView::NoEditTriggers + + + false + + + false + + + false + + + QAbstractItemView::NoSelection + + + QAbstractItemView::ScrollPerPixel + + + QAbstractItemView::ScrollPerPixel + + + true + + + Qt::SolidLine + + + false + + + false + + + 2 + + + false + + + false + + + 110 + + + false + + + 27 + + + true + + + false + + + 22 + + + false + + + 22 + + + false + + + + Gutter + + + + + DE Box Dimensions + + + + + Field + + + + + + + + + + Gutter + + + + + 0 + + + + + DE Box Dimensions + + + + + 0 + + + + true + + + + AlignLeft|AlignVCenter + + + + + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + Qt::StrongFocus + + + File Opening + + + + 4 + + + 6 + + + 4 + + + 6 + + + 6 + + + + + + 0 + 0 + + + + Qt::StrongFocus + + + true + + + + + + + + + + + 0 + 0 + + + + Qt::StrongFocus + + + Rendering + + + + 4 + + + 6 + + + 4 + + + 6 + + + 6 + + + + + + 0 + 0 + + + + Qt::StrongFocus + + + true + + + true + + + Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse + + + + + + + + + + + + + @@ -103,7 +5472,7 @@ 0 0 - 1214 + 1418 21 @@ -184,7 +5553,7 @@ true - + 0 @@ -194,7 +5563,7 @@ 287 - 561 + 636 @@ -213,10 +5582,10 @@ QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable - Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea + Qt::AllDockWidgetAreas - Parameters + Library 1 @@ -327,5504 +5696,72 @@ - - - - 0 - 0 - + + + QFrame::NoFrame - - - 250 - 500 - + + QFrame::Raised - - - 16777215 - 16777215 - + + 1 - - false - - - QTabWidget::North - - - QTabWidget::Triangular - - - 0 - - + true - - - true + + + + 0 + 0 + 275 + 824 + - - Library - - - All flames in the currently opened file or randomly generated flock - - + - 5 + 0 - 5 + 0 - 5 + 0 - 4 + 0 - - - - QFrame::NoFrame - - - QFrame::Raised - - - 1 - - - true - - - - - 0 - 0 - 259 - 852 - - - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - Qt::WheelFocus - - - Qt::CustomContextMenu - - - QFrame::Panel - - - QFrame::Plain - - - QAbstractItemView::SelectedClicked - - - 10 - - - false - - - - Current Flame File - - - - - - - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - true - - - Flame - - - General flame parameters - - 0 - - 5 - - - 5 - - - 5 - - - 4 - - - - - QFrame::NoFrame - - - QFrame::Raised - - - true - - - - - 0 - 0 - 259 - 852 - - - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - true - - - - 0 - 0 - - - - - 0 - 22 - - - - - 16777215 - 22 - - - - Qt::NoFocus - - - QFrame::Panel - - - QFrame::Plain - - - Qt::ScrollBarAlwaysOff - - - Qt::ScrollBarAlwaysOff - - - false - - - false - - - false - - - 15 - - - false - - - 15 - - - true - - - false - - - 15 - - - false - - - 15 - - - - Filter - - - AlignHCenter|AlignTop - - - - - - - - true - - - - 0 - 0 - - - - - 0 - 22 - - - - - 16777215 - 22 - - - - Qt::NoFocus - - - QFrame::Panel - - - QFrame::Plain - - - Qt::ScrollBarAlwaysOff - - - Qt::ScrollBarAlwaysOff - - - QAbstractItemView::ScrollPerItem - - - QAbstractItemView::ScrollPerItem - - - false - - - false - - - false - - - 15 - - - false - - - 15 - - - true - - - false - - - 15 - - - false - - - 15 - - - - Color - - - AlignHCenter|AlignTop - - - - - - - - - 0 - 0 - - - - - 0 - 156 - - - - - 16777215 - 156 - - - - Qt::NoFocus - - - false - - - QFrame::Panel - - - QFrame::Plain - - - Qt::ScrollBarAlwaysOff - - - Qt::ScrollBarAlwaysOff - - - QAbstractItemView::NoEditTriggers - - - false - - - false - - - QAbstractItemView::NoSelection - - - QAbstractItemView::SelectItems - - - QAbstractItemView::ScrollPerPixel - - - QAbstractItemView::ScrollPerPixel - - - true - - - Qt::SolidLine - - - false - - - false - - - 2 - - - false - - - false - - - 110 - - - false - - - 35 - - - true - - - false - - - 22 - - - false - - - 22 - - - false - - - - Brightness - - - - - Gamma - - - - - Gamma Threshold - - - - - Vibrancy - - - - - Highlight Power - - - - - Background - - - - - Palette Mode - - - - - Field - - - - - - - - - - Brightness - - - - - 0 - - - - - Gamma - - - - - 0 - - - - - Gamma Threshold - - - - - 0 - - - - - Vibrancy - - - - - 0 - - - - - Highlight Power - - - - - 0 - - - - - Background - - - - - 0 - - - - - Palette Mode - - - - - 0 - - - - - - - - - 0 - 0 - - - - - 0 - 156 - - - - - 16777215 - 156 - - - - Qt::NoFocus - - - QFrame::Panel - - - QFrame::Plain - - - Qt::ScrollBarAlwaysOff - - - Qt::ScrollBarAlwaysOff - - - QAbstractItemView::NoEditTriggers - - - false - - - false - - - QAbstractItemView::NoSelection - - - QAbstractItemView::ScrollPerPixel - - - QAbstractItemView::ScrollPerPixel - - - true - - - Qt::SolidLine - - - false - - - 2 - - - false - - - false - - - 110 - - - false - - - 35 - - - true - - - false - - - 22 - - - false - - - 22 - - - false - - - - Sub Batch Size - - - - - Fuse Count - - - - - Quality - - - - - Supersample - - - - - Temporal Samples - - - - - Affine Interpolation - - - - - Interpolation - - - - - Field - - - - - - - - - - Sub Batch Size - - - - - 0 - - - - - Fuse Count - - - - - 0 - - - - - Quality - - - - - 0 - - - - - Supersample - - - - - 0 - - - - - Temporal Samples - - - - - 0 - - - - - Affine Interpolation - - - - - 0 - - - - - Interpolation - - - - - 0 - - - - - - - - true - - - - 0 - 0 - - - - - 0 - 22 - - - - - 16777215 - 22 - - - - Qt::NoFocus - - - QFrame::Panel - - - QFrame::Plain - - - Qt::ScrollBarAlwaysOff - - - Qt::ScrollBarAlwaysOff - - - false - - - false - - - false - - - 15 - - - false - - - 15 - - - true - - - false - - - 15 - - - false - - - 15 - - - - Geometry - - - AlignHCenter|AlignTop - - - - - - - - true - - - - 0 - 0 - - - - - 0 - 22 - - - - - 16777215 - 22 - - - - Qt::NoFocus - - - QFrame::Panel - - - QFrame::Plain - - - Qt::ScrollBarAlwaysOff - - - Qt::ScrollBarAlwaysOff - - - false - - - false - - - false - - - 15 - - - false - - - 15 - - - true - - - false - - - 15 - - - false - - - 15 - - - - Iteration - - - AlignHCenter|AlignTop - - - - - - - - - 0 - 0 - - - - - 0 - 156 - - - - - 16777215 - 156 - - - - Qt::NoFocus - - - QFrame::Panel - - - QFrame::Plain - - - Qt::ScrollBarAlwaysOff - - - Qt::ScrollBarAlwaysOff - - - QAbstractItemView::NoEditTriggers - - - false - - - false - - - QAbstractItemView::NoSelection - - - QAbstractItemView::ScrollPerPixel - - - QAbstractItemView::ScrollPerPixel - - - true - - - Qt::SolidLine - - - false - - - 2 - - - false - - - false - - - 125 - - - false - - - 35 - - - true - - - false - - - 22 - - - false - - - 22 - - - false - - - - Spatial Filter Width - - - - - Spatial Filter Type - - - - - Temporal Filter Width - - - - - Temporal Filter Type - - - - - DE Filter Min Radius - - - - - DE Filter Max Radius - - - - - DE Curve - - - - - Field - - - - - - - - - - Spatial Filter Width - - - - - 0 - - - - - Spatial Filter Type - - - - - 0 - - - - - Temporal Filter Width - - - - - 0 - - - - - Temporal Filter Type - - - - - 0 - - - - - DE Filter Min Radius - - - - - 0 - - - - - DE Filter Max Radius - - - - - 0 - - - - - DE Curve - - - - - 0 - - - - - - - - Qt::Vertical - - - QSizePolicy::Minimum - - - - 20 - 5 - - - - - - - - Qt::Vertical - - - QSizePolicy::Minimum - - - - 20 - 5 - - - - - - - - - 0 - 0 - - - - - 0 - 266 - - - - - 16777215 - 266 - - - - Qt::NoFocus - - - QFrame::Panel - - - QFrame::Plain - - - Qt::ScrollBarAlwaysOff - - - Qt::ScrollBarAlwaysOff - - - QAbstractItemView::NoEditTriggers - - - false - - - false - - - QAbstractItemView::NoSelection - - - QAbstractItemView::ScrollPerPixel - - - QAbstractItemView::ScrollPerPixel - - - true - - - Qt::SolidLine - - - false - - - 2 - - - false - - - false - - - 110 - - - false - - - 35 - - - true - - - false - - - 22 - - - false - - - 22 - - - false - - - - Width - - - - - Height - - - - - Center X - - - - - Center Y - - - - - Scale - - - - - Zoom - - - - - Rotate - - - - - Z Pos - - - - - Perspective - - - - - Pitch - - - - - Yaw - - - - - Depth Blur - - - - - Field - - - - - - - - - - Width - - - - - 0 - - - - - Height - - - - - 0 - - - - - Center X - - - - - 0 - - - - - Center Y - - - - - 0 - - - - - Scale - - - - - 0 - - - - - Zoom - - - - - 0 - - - - - Rotate - - - - - 0 - - - - - Z Pos - - - - - 0 - - - - - Perspective - - - - - 0 - - - - - Pitch - - - - - 0 - - - - - Yaw - - - - - 0 - - - - - Depth Blur - - - - - 0 - - - - - - - - Qt::Vertical - - - QSizePolicy::Minimum - - - - 20 - 5 - - - - - - - - Qt::Vertical - - - QSizePolicy::Expanding - - - - 20 - 300 - - - - - - - - - - - - - - 0 - 0 - - - - true - - - - - - Xforms - - - Xforms in the current flame - - - - 5 - - - 4 - - - 5 - - - 4 - - - 4 - - - - - - 0 - 0 - - - - - 0 - 0 - - - - - MS Shell Dlg 2 - - - - - - - true - - - QTabWidget::pane -{ - border: 1px solid #898C95; - font: 9pt "Segoe UI"; -} - -QTabWidget::tab-bar -{ - bottom: -1px; -} - -DoubleSpinBox -{ - font: 9pt "Segoe UI"; -} - -SpinBox -{ - font: 9pt "Segoe UI"; -} - - - - QTabWidget::Triangular - - - 2 - - - - - 0 - 0 - - - - - - - Color - - - Color palette index for the current xform, and curve adjustment - - - - QFormLayout::AllNonFixedFieldsGrow - - - 6 - - - 6 - - - 6 - - - 6 - - - - - - 0 - 0 - - - - - 0 - 22 - - - - - 16777215 - 22 - - - - - true - - - - Qt::NoFocus - - - false - - - - - - QFrame::Panel - - - QFrame::Plain - - - 1 - - - 0 - - - Qt::ScrollBarAlwaysOff - - - Qt::ScrollBarAlwaysOff - - - QAbstractItemView::NoEditTriggers - - - false - - - QAbstractItemView::NoSelection - - - QAbstractItemView::ScrollPerPixel - - - QAbstractItemView::ScrollPerPixel - - - true - - - false - - - false - - - 1 - - - 2 - - - false - - - false - - - 27 - - - true - - - false - - - 21 - - - false - - - 21 - - - false - - - - - - - - - - AlignLeft|AlignVCenter - - - - - - - - - 0 - 0 - - - - - 0 - 19 - - - - - 16777215 - 19 - - - - Qt::NoFocus - - - QFrame::Panel - - - QFrame::Plain - - - Qt::ScrollBarAlwaysOff - - - Qt::ScrollBarAlwaysOff - - - QAbstractItemView::NoEditTriggers - - - false - - - QAbstractItemView::NoSelection - - - QAbstractItemView::ScrollPerPixel - - - QAbstractItemView::ScrollPerPixel - - - false - - - false - - - false - - - 1 - - - 1 - - - false - - - 256 - - - true - - - false - - - 19 - - - false - - - - - - - - - NoItemFlags - - - - - - - - - 0 - 0 - - - - - 162 - 18 - - - - - 16777215 - 18 - - - - Qt::NoFocus - - - 0 - - - 255 - - - 1 - - - 10 - - - 128 - - - true - - - Qt::Horizontal - - - false - - - false - - - - - - - - 0 - 0 - - - - - 0 - 45 - - - - - 16777215 - 68 - - - - - true - - - - Qt::NoFocus - - - - - - QFrame::Panel - - - QFrame::Plain - - - 1 - - - Qt::ScrollBarAlwaysOff - - - Qt::ScrollBarAlwaysOff - - - false - - - QAbstractItemView::NoEditTriggers - - - false - - - false - - - false - - - false - - - QAbstractItemView::NoSelection - - - QAbstractItemView::ScrollPerPixel - - - QAbstractItemView::ScrollPerPixel - - - true - - - Qt::SolidLine - - - false - - - false - - - 2 - - - false - - - false - - - 110 - - - false - - - 27 - - - true - - - false - - - 22 - - - false - - - 22 - - - false - - - - Color Speed - - - - - Opacity - - - - - Direct Color - - - - - Field - - - - - - - - - - Color Speed - - - - - 0 - - - - true - - - - AlignLeft|AlignVCenter - - - - - Opacity - - - - - 0 - - - - - Direct Color - - - - - 0 - - - - - - - - Solo - - - - - - - - 0 - 0 - - - - - 245 - 245 - - - - - 245 - 245 - - - - true - - - false - - - QFrame::NoFrame - - - QFrame::Plain - - - Qt::ScrollBarAlwaysOff - - - Qt::ScrollBarAlwaysOff - - - - - 219 - 219 - 219 - - - - - - 0.000000000000000 - 0.000000000000000 - 245.000000000000000 - 245.000000000000000 - - - - QGraphicsView::NoAnchor - - - QGraphicsView::FullViewportUpdate - - - - - - - Curve - - - - 6 - - - 2 - - - 6 - - - 6 - - - - - All - - - true - - - - - - - Red - - - - - - - Green - - - - - - - Blue - - - - - - - - - - - 0 - 0 - - - - Reset Curves - - - - - - - - - 0 - 0 - - - - - - - true - - - Affine - - - Affine transforms for the current xform - - - - 5 - - - 6 - - - 5 - - - 6 - - - 5 - - - - - true - - - QFrame::NoFrame - - - QFrame::Raised - - - true - - - - - 0 - 0 - 118 - 618 - - - - true - - - - 4 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 0 - 0 - - - - - 100 - 270 - - - - - 16777215 - 270 - - - - true - - - Pre Affine Transform - - - false - - - true - - - - 4 - - - 6 - - - 4 - - - 6 - - - 6 - - - - - - 2 - 0 - - - - - 0 - 90 - - - - - 10000 - 90 - - - - Qt::NoFocus - - - QFrame::Panel - - - QFrame::Plain - - - Qt::ScrollBarAlwaysOff - - - Qt::ScrollBarAlwaysOff - - - false - - - QAbstractItemView::NoEditTriggers - - - false - - - QAbstractItemView::NoSelection - - - QAbstractItemView::ScrollPerPixel - - - QAbstractItemView::ScrollPerPixel - - - true - - - false - - - false - - - 3 - - - 2 - - - false - - - 100 - - - false - - - 40 - - - true - - - false - - - false - - - 22 - - - false - - - 22 - - - false - - - - X - - - - - Y - - - - - O - - - - - 1 (A, B, C) - - - - - 2 (D, E, F) - - - - - - - - QLayout::SetDefaultConstraint - - - 0 - - - 4 - - - - - Rotate xform 90 degrees counter clockwise - - - - - - - :/Fractorium/Icons/arrow_turn_left.png:/Fractorium/Icons/arrow_turn_left.png - - - - - - - Rotate xform 90 degrees clockwise - - - - - - - :/Fractorium/Icons/arrow_turn_right.png:/Fractorium/Icons/arrow_turn_right.png - - - - - - - Scale xform x percent up - - - - - - - :/Fractorium/Icons/arrow_out.png:/Fractorium/Icons/arrow_out.png - - - - - - - Move xform x units right - - - - - - - :/Fractorium/Icons/arrow_right.png:/Fractorium/Icons/arrow_right.png - - - - - - - - 0 - 0 - - - - - 75 - 22 - - - - true - - - true - - - - 110 - - - - - 125 - - - - - 150 - - - - - 175 - - - - - 200 - - - - - - - - Move xform x units up - - - - - - - :/Fractorium/Icons/arrow_up.png:/Fractorium/Icons/arrow_up.png - - - - - - - Move xform x units down - - - - - - - :/Fractorium/Icons/arrow_down.png:/Fractorium/Icons/arrow_down.png - - - - - - - - 0 - 0 - - - - - 75 - 22 - - - - true - - - true - - - - 1 - - - - - - - - Move xform x units left - - - - - - - :/Fractorium/Icons/arrow_left.png:/Fractorium/Icons/arrow_left.png - - - - - - - - 0 - 0 - - - - - 75 - 22 - - - - true - - - QComboBox::NoInsert - - - QComboBox::AdjustToContents - - - true - - - - 5 - - - - - 15 - - - - - 30 - - - - - 45 - - - - - 60 - - - - - 90 - - - - - 120 - - - - - 180 - - - - - - - - Rotate xform x degrees counter clockwise - - - - - - - :/Fractorium/Icons/arrow_rotate_anticlockwise.png:/Fractorium/Icons/arrow_rotate_anticlockwise.png - - - - - - - Rotate xform x degrees clockwise - - - - - - - :/Fractorium/Icons/arrow_rotate_clockwise.png:/Fractorium/Icons/arrow_rotate_clockwise.png - - - - - - - Scale xform x percent down - - - - - - - :/Fractorium/Icons/arrow_in.png:/Fractorium/Icons/arrow_in.png - - - - - - - - 0 - 0 - - - - Flip xform vertically - - - - - - - :/Fractorium/Icons/shape_flip_vertical.png:/Fractorium/Icons/shape_flip_vertical.png - - - - - - - - 0 - 0 - - - - - 75 - 0 - - - - Reset xform to the identity matrix - - - Reset - - - - - - - - 0 - 0 - - - - Flip xform horizontally - - - - - - - :/Fractorium/Icons/shape_flip_horizontal.png:/Fractorium/Icons/shape_flip_horizontal.png - - - - - - - - - true - - - Show - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - false - - - false - - - - 6 - - - 6 - - - 2 - - - 6 - - - 6 - - - - - Current - - - - - - - All - - - true - - - - - - - - - - - - - - 0 - 0 - - - - - 100 - 270 - - - - - 16777215 - 270 - - - - true - - - Post Affine Transform - - - false - - - true - - - true - - - - 4 - - - 6 - - - 4 - - - 6 - - - 6 - - - - - true - - - - 2 - 0 - - - - - 0 - 90 - - - - - 10000 - 90 - - - - Qt::NoFocus - - - QFrame::Panel - - - QFrame::Plain - - - Qt::ScrollBarAlwaysOff - - - Qt::ScrollBarAlwaysOff - - - false - - - QAbstractItemView::NoEditTriggers - - - false - - - QAbstractItemView::NoSelection - - - QAbstractItemView::ScrollPerPixel - - - QAbstractItemView::ScrollPerPixel - - - true - - - false - - - false - - - 3 - - - 2 - - - false - - - 100 - - - false - - - 40 - - - true - - - false - - - false - - - 22 - - - false - - - 22 - - - false - - - - X - - - - - Y - - - - - O - - - - - 1 (A, B, C) - - - - - 2 (D, E, F) - - - - - - - - QLayout::SetDefaultConstraint - - - 0 - - - 4 - - - - - true - - - Rotate xform 90 degrees counter clockwise - - - - - - - :/Fractorium/Icons/arrow_turn_left.png:/Fractorium/Icons/arrow_turn_left.png - - - - - - - true - - - Rotate xform 90 degrees clockwise - - - - - - - :/Fractorium/Icons/arrow_turn_right.png:/Fractorium/Icons/arrow_turn_right.png - - - - - - - true - - - Scale xform x percent up - - - - - - - :/Fractorium/Icons/arrow_out.png:/Fractorium/Icons/arrow_out.png - - - - - - - true - - - Move xform x units right - - - - - - - :/Fractorium/Icons/arrow_right.png:/Fractorium/Icons/arrow_right.png - - - - - - - true - - - - 0 - 0 - - - - - 75 - 22 - - - - true - - - true - - - - 110 - - - - - 125 - - - - - 150 - - - - - 175 - - - - - 200 - - - - - - - - true - - - Move xform x units up - - - - - - - :/Fractorium/Icons/arrow_up.png:/Fractorium/Icons/arrow_up.png - - - - - - - true - - - Move xform x units down - - - - - - - :/Fractorium/Icons/arrow_down.png:/Fractorium/Icons/arrow_down.png - - - - - - - true - - - - 0 - 0 - - - - - 75 - 22 - - - - true - - - true - - - - 1 - - - - - - - - true - - - Move xform x units left - - - - - - - :/Fractorium/Icons/arrow_left.png:/Fractorium/Icons/arrow_left.png - - - - - - - true - - - - 0 - 0 - - - - - 75 - 22 - - - - true - - - QComboBox::NoInsert - - - QComboBox::AdjustToContents - - - true - - - - 5 - - - - - 15 - - - - - 30 - - - - - 45 - - - - - 60 - - - - - 90 - - - - - 120 - - - - - 180 - - - - - - - - true - - - Rotate xform x degrees counter clockwise - - - - - - - :/Fractorium/Icons/arrow_rotate_anticlockwise.png:/Fractorium/Icons/arrow_rotate_anticlockwise.png - - - - - - - true - - - Rotate xform x degrees clockwise - - - - - - - :/Fractorium/Icons/arrow_rotate_clockwise.png:/Fractorium/Icons/arrow_rotate_clockwise.png - - - - - - - true - - - Scale xform x percent down - - - - - - - :/Fractorium/Icons/arrow_in.png:/Fractorium/Icons/arrow_in.png - - - - - - - true - - - Flip xform horizontally - - - - - - - :/Fractorium/Icons/shape_flip_horizontal.png:/Fractorium/Icons/shape_flip_horizontal.png - - - - - - - true - - - Flip xform vertically - - - - - - - :/Fractorium/Icons/shape_flip_vertical.png:/Fractorium/Icons/shape_flip_vertical.png - - - - - - - true - - - - 0 - 0 - - - - - 75 - 0 - - - - Reset xform to the identity matrix - - - Reset - - - - - - - - - true - - - true - - - Show - - - - 6 - - - 2 - - - 6 - - - 6 - - - - - true - - - Current - - - true - - - - - - - true - - - All - - - - - - - - - - - - - Polar - - - - - - - true - - - Pivot - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop - - - false - - - - 6 - - - 2 - - - 6 - - - 6 - - - - - Local - - - true - - - - - - - World - - - - - - - - - - Qt::Vertical - - - QSizePolicy::MinimumExpanding - - - - 20 - 5 - - - - - - - - - - - - - - - - Variations - - - Full list of available variations and their weights for the currently selected xform - - - - 6 - - - 6 - - - 6 - - - 6 - - - - - 5 - - - QLayout::SetDefaultConstraint - - - 0 - - - 0 - - - 0 - - - - - - - - - 30 - 0 - - - - - 30 - 16777215 - - - - X - - - false - - - - - - - - - - 0 - 0 - - - - Qt::WheelFocus - - - Qt::DefaultContextMenu - - - QFrame::Panel - - - QFrame::Plain - - - 1 - - - QAbstractItemView::NoEditTriggers - - - QAbstractItemView::NoSelection - - - QAbstractItemView::SelectItems - - - 12 - - - false - - - true - - - false - - - false - - - 2 - - - 70 - - - true - - - 10 - - - true - - - true - - - - Variation - - - - - Weight - - - - - Spherical - - - 0 - - - ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled - - - - - Sinusoidal - - - 0 - - - ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled - - - - - Pdj - - - 0 - - - ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled - - - - pdj_d - - - 1 - - - ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled - - - - - pdj_c - - - 2 - - - ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled - - - - - pdj_b - - - 1.5 - - - ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled - - - - - pdj_a - - - 1 - - - ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled - - - - - - Linear - - - 0 - - - ItemIsSelectable|ItemIsEditable|ItemIsDragEnabled|ItemIsUserCheckable|ItemIsEnabled - - - - - - - - - - - - true - - - Select - - - Select multiple xforms to apply operations to - - - - 3 - - - 5 - - - 4 - - - 5 - - - 4 - - - - - Select All - - - - - - - Select None - - - - - - - - 0 - 0 - - - - true - - - Select Xforms - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop - - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 0 - 0 - - - - true - - - QFrame::NoFrame - - - QFrame::Plain - - - QAbstractScrollArea::AdjustToContents - - - true - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop - - - - - 0 - 0 - 133 - 52 - - - - - 0 - 0 - - - - - 6 - - - 6 - - - 6 - - - 6 - - - 6 - - - - - DeleteMeCheckBox - - - - - - - CheckBox - - - - - - - - - - - - - - - - - - 2 - - - - - - 0 - 22 - - - - - 60 - 22 - - - - - 60 - 16777215 - - - - Current xform - - - false - - - 12 - - - - 9 - 9 - - - - true - - - - - - - - 0 - 0 - - - - - 25 - 24 - - - - - 16777215 - 24 - - - - Add xform - - - - - - - :/Fractorium/Icons/add.png:/Fractorium/Icons/add.png - - - - - - - - 0 - 0 - - - - - 25 - 24 - - - - - 16777215 - 24 - - - - Duplicate selected xforms - - - - - - - :/Fractorium/Icons/editraise.png:/Fractorium/Icons/editraise.png - - - - - - - - 0 - 0 - - - - - 25 - 24 - - - - - 16777215 - 24 - - - - Clear selected xforms' variations - - - - - - - :/Fractorium/Icons/eraser.png:/Fractorium/Icons/eraser.png - - - - - - - - 0 - 0 - - - - - 25 - 24 - - - - - 16777215 - 24 - - - - Delete selected xforms - - - - - - - :/Fractorium/Icons/del.png:/Fractorium/Icons/del.png - - - - - - - - 0 - 0 - - - - - 58 - 24 - - - - - 58 - 24 - - - - - 0 - 0 - - - - Add final xform - - - Qt::LeftToRight - - - Final - - - - :/Fractorium/Icons/add.png:/Fractorium/Icons/add.png - - - - - - - - - - 2 - 0 - - - - - 0 - 45 - - - - - 16777215 - 45 - - - - - true - - - - Qt::StrongFocus - - - false - - - QFrame::Panel - - - QFrame::Plain - - - Qt::ScrollBarAlwaysOff - - - Qt::ScrollBarAlwaysOff - - - false - - - QAbstractItemView::DoubleClicked|QAbstractItemView::SelectedClicked - - - false - - - QAbstractItemView::NoSelection - - - QAbstractItemView::ScrollPerPixel - - - QAbstractItemView::ScrollPerPixel - - - false - - - false - - - 1 - - - 2 - - - false - - - false - - - 27 - - - true - - - false - - - 21 - - - false - - - 21 - - - - - Weight - - - - - Name - - - - - AlignLeft|AlignVCenter - - - - - AlignLeft|AlignVCenter - - - - - - - - - true - - - Xaos - - - Xaos weights between xforms - - - - 4 - - - 5 - - - 5 - - - 5 - - - 4 - - - - - - 0 - 0 - - - - - 0 - 67 - - - - - 16777215 - 16777215 - - - - - true - - - - Qt::NoFocus - - - - - - QFrame::Panel - - - QFrame::Plain - - - 1 - - - Qt::ScrollBarAsNeeded - - - Qt::ScrollBarAsNeeded - - - QAbstractScrollArea::AdjustToContents - - - true - - - QAbstractItemView::CurrentChanged|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed|QAbstractItemView::SelectedClicked - - - true - - - false - - - false - - - false - - - QAbstractItemView::SingleSelection - - - QAbstractItemView::ScrollPerPixel - - - QAbstractItemView::ScrollPerPixel - - - true - - - Qt::SolidLine - - - false - - - false - - - false - - - 35 - - - false - - - 35 - - - false - - - 22 - - - false - - - 22 - - - - - - - - - Set all xaos values in all xforms to 1 - - - Clear Xaos - - - - - - - Randomize all xaos values in all xforms - - - Random Xaos - - - - - - - - - - true - - - Palette - - - List of available palette files and their palettes - - - - QLayout::SetDefaultConstraint - - - 5 - - - 5 - - - 5 - - - 4 - - - 6 - - - - - - 0 - 0 - - - - - 0 - 19 - - - - - 16777215 - 19 - - - - Qt::NoFocus - - - QFrame::Panel - - - QFrame::Plain - - - Qt::ScrollBarAlwaysOff - - - Qt::ScrollBarAlwaysOff - - - false - - - QAbstractItemView::NoEditTriggers - - - QAbstractItemView::NoSelection - - - QAbstractItemView::ScrollPerPixel - - - QAbstractItemView::ScrollPerPixel - - - false - - - false - - - 1 - - - 2 - - - false - - - true - - - false - - - 19 - - - 19 - - - - - - - - - - - 2 - 0 - - - - - 0 - 67 - - - - - 16777215 - 67 - - - - Qt::NoFocus - - - QFrame::Panel - - - QFrame::Plain - - - Qt::ScrollBarAlwaysOff - - - Qt::ScrollBarAlwaysOff - - - false - - - QAbstractItemView::NoEditTriggers - - - false - - - QAbstractItemView::NoSelection - - - QAbstractItemView::ScrollPerPixel - - - QAbstractItemView::ScrollPerPixel - - - false - - - false - - - 3 - - - 4 - - - false - - - 62 - - - 62 - - - true - - - false - - - 22 - - - false - - - 22 - - - - - - - - - - - Hue - - - - - Contrast - - - - - Saturation - - - - - Blur - - - - - Brightness - - - - - - - - - - Frequency - - - - - - - - Qt::StrongFocus - - - QFrame::Panel - - - QFrame::Plain - - - Qt::ScrollBarAsNeeded - - - false - - - QAbstractItemView::NoEditTriggers - - - false - - - QAbstractItemView::NoSelection - - - QAbstractItemView::ScrollPerPixel - - - false - - - 2 - - - false - - - true - - - false - - - 16 - - - false - - - 16 - - - false - - - - Name - - - AlignLeft|AlignVCenter - - - - - Palette - - - AlignLeft|AlignVCenter - - - - - - - - 4 - - - 0 - - - 0 - - - - - - 0 - 24 - - - - - 16777215 - 24 - - - - Select a random palette from the list - - - Random Palette - - - - - - - - 0 - 24 - - - - - 16777215 - 24 - - - - Apply a random adjustment to the current palette - - - Random Adjustment - - - false - - - - - - - - - - - 5 + + + Qt::WheelFocus - - QLayout::SetDefaultConstraint - - - 0 - - - 0 - - - 0 - - - - - - - - - 30 - 0 - - - - - 30 - 16777215 - - - - X - - - false - - - - - - - - - - - 0 - 0 - - - - true - - - Info - - - Diagnostic information of engineering interest - - - - 6 - - - 5 - - - 4 - - - 5 - - - 4 - - - - - - 0 - 0 - - - - false + + Qt::CustomContextMenu - QFrame::NoFrame + QFrame::Panel - QFrame::Raised + QFrame::Plain - - 1 + + QAbstractItemView::SelectedClicked - - true + + 10 - - - - 0 - 0 - 259 - 853 - + + false + + + + Current Flame File - - - 0 - 0 - - - - true - - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 6 - - - - - - 0 - 0 - - - - - 0 - 250 - - - - - 16777215 - 250 - - - - - 0 - 0 - - - - Qt::StrongFocus - - - false - - - Histogram Bounds - - - - 4 - - - 6 - - - 4 - - - 6 - - - 6 - - - - - - 0 - 0 - - - - - 0 - 173 - - - - - 16777215 - 173 - - - - false - - - QFrame::Box - - - QFrame::Plain - - - - 2 - - - 2 - - - 2 - - - 2 - - - 2 - - - - - QFrame::Box - - - QFrame::Plain - - - UL: - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop - - - - - - - QFrame::Box - - - LR: - - - Qt::AlignBottom|Qt::AlignRight|Qt::AlignTrailing - - - - - - - QFrame::Box - - - UR: - - - Qt::AlignRight|Qt::AlignTop|Qt::AlignTrailing - - - - - - - QFrame::Box - - - W x H: - - - Qt::AlignCenter - - - - - - - QFrame::Box - - - LL: - - - Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft - - - - - - - - - - - 0 - 0 - - - - - 0 - 46 - - - - - 16777215 - 46 - - - - - true - - - - Qt::NoFocus - - - - - - QFrame::Panel - - - QFrame::Plain - - - 1 - - - Qt::ScrollBarAlwaysOff - - - Qt::ScrollBarAlwaysOff - - - false - - - QAbstractItemView::NoEditTriggers - - - false - - - false - - - false - - - QAbstractItemView::NoSelection - - - QAbstractItemView::ScrollPerPixel - - - QAbstractItemView::ScrollPerPixel - - - true - - - Qt::SolidLine - - - false - - - false - - - 2 - - - false - - - false - - - 110 - - - false - - - 27 - - - true - - - false - - - 22 - - - false - - - 22 - - - false - - - - Gutter - - - - - DE Box Dimensions - - - - - Field - - - - - - - - - - Gutter - - - - - 0 - - - - - DE Box Dimensions - - - - - 0 - - - - true - - - - AlignLeft|AlignVCenter - - - - - - - - - - - - 0 - 0 - - - - Qt::StrongFocus - - - Rendering - - - - 4 - - - 6 - - - 4 - - - 6 - - - 6 - - - - - - 0 - 0 - - - - Qt::StrongFocus - - - true - - - true - - - Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse - - - - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - Qt::StrongFocus - - - File Opening - - - - 4 - - - 6 - - - 4 - - - 6 - - - 6 - - - - - - 0 - 0 - - - - Qt::StrongFocus - - - true - - - - - - - - + @@ -6179,79 +6116,10 @@ SpinBox - DockWidget + LibraryDockWidget SaveCurrentAsXmlButton SaveEntireFileAsXmlButton SaveCurrentToOpenedFileButton - ParamsTabWidget - LibraryTree - FlameTabScrollArea - CurrentXformCombo - AddXformButton - DuplicateXformButton - ClearXformButton - DeleteXformButton - AddFinalXformButton - XformWeightNameTable - XformsTabWidget - XformColorIndexTable - XformColorScroll - XformColorValuesTable - SoloXformCheckBox - AffineTabScrollArea - PreAffineTable - PreFlipVerticalButton - PreResetButton - PreRotate90CcButton - PreRotateCcButton - PreRotateCombo - PreRotateCButton - PreRotate90CButton - PreMoveUpButton - PreMoveDownButton - PreMoveCombo - PreMoveLeftButton - PreMoveRightButton - PreScaleUpButton - PreScaleCombo - PreScaleDownButton - ShowPreAffineCurrentRadio - ShowPreAffineAllRadio - PostAffineGroupBox - PostAffineTable - PostFlipVerticalButton - PostResetButton - PostFlipHorizontalButton - PostRotate90CcButton - PostRotateCcButton - PostRotateCombo - PostRotateCButton - PostRotate90CButton - PostMoveUpButton - PostMoveDownButton - PostMoveCombo - PostMoveLeftButton - PostMoveRightButton - PostScaleUpButton - PostScaleCombo - PostScaleDownButton - ShowPostAffineCurrentRadio - ShowPostAffineAllRadio - LocalPivotRadio - WorldPivotRadio - VariationsFilterLineEdit - VariationsFilterClearButton - VariationsTree - PaletteAdjustTable - PaletteListTable - InfoTabScrollArea - InfoFileOpeningGroupBox - InfoFileOpeningTextEdit - InfoRenderingGroupBox - InfoRenderingTextEdit - PreAffineGroupBox - LibraryTabScrollArea - InfoBoundsGroupBox diff --git a/Source/Fractorium/FractoriumSettings.cpp b/Source/Fractorium/FractoriumSettings.cpp index a0a1845..9219431 100644 --- a/Source/Fractorium/FractoriumSettings.cpp +++ b/Source/Fractorium/FractoriumSettings.cpp @@ -44,7 +44,7 @@ void FractoriumSettings::EnsureDefaults() if (FinalThreadCount() == 0 || FinalThreadCount() > Timing::ProcessorCount()) FinalThreadCount(Timing::ProcessorCount()); - FinalThreadPriority(Clamp((uint)eThreadPriority::LOWEST, (uint)eThreadPriority::HIGHEST, FinalThreadPriority())); + FinalThreadPriority(Clamp((int)eThreadPriority::LOWEST, (int)eThreadPriority::HIGHEST, FinalThreadPriority())); if (CpuSubBatch() < 1) CpuSubBatch(1); @@ -186,8 +186,8 @@ void FractoriumSettings::FinalDeviceIndex(uint i) { setValue(FINALDEVICEINDE uint FractoriumSettings::FinalThreadCount() { return value(FINALTHREADCOUNT).toUInt(); } void FractoriumSettings::FinalThreadCount(uint i) { setValue(FINALTHREADCOUNT, i); } -uint FractoriumSettings::FinalThreadPriority() { return value(FINALTHREADPRIORITY).toUInt(); } -void FractoriumSettings::FinalThreadPriority(uint i) { setValue(FINALTHREADPRIORITY, i); } +uint FractoriumSettings::FinalThreadPriority() { return value(FINALTHREADPRIORITY).toInt(); } +void FractoriumSettings::FinalThreadPriority(int i) { setValue(FINALTHREADPRIORITY, i); } uint FractoriumSettings::FinalQuality() { return value(FINALQUALITY).toUInt(); } void FractoriumSettings::FinalQuality(uint i) { setValue(FINALQUALITY, i); } diff --git a/Source/Fractorium/FractoriumSettings.h b/Source/Fractorium/FractoriumSettings.h index 1475029..39500c5 100644 --- a/Source/Fractorium/FractoriumSettings.h +++ b/Source/Fractorium/FractoriumSettings.h @@ -153,7 +153,7 @@ public: void FinalThreadCount(uint b); uint FinalThreadPriority(); - void FinalThreadPriority(uint b); + void FinalThreadPriority(int b); uint FinalQuality(); void FinalQuality(uint i); diff --git a/Source/Fractorium/FractoriumXformsAffine.cpp b/Source/Fractorium/FractoriumXformsAffine.cpp index 082e350..fcb40e3 100644 --- a/Source/Fractorium/FractoriumXformsAffine.cpp +++ b/Source/Fractorium/FractoriumXformsAffine.cpp @@ -150,8 +150,8 @@ void Fractorium::InitXformsAffineUI() //Further, the size of the dock widget won't be properly adjusted until the xforms tab is shown. //So show it here and it will be switched back in Fractorium's constructor. - ui.ParamsTabWidget->setCurrentIndex(2); - ui.DockWidget->update(); + //ui.ParamsTabWidget->setCurrentIndex(2); + //ui.DockWidget->update(); #endif //Placing pointers to the spin boxes in arrays makes them easier to access in various places. From d80343a28be8424f3b13546c52a2be4fb80b094e Mon Sep 17 00:00:00 2001 From: mfeemster Date: Sat, 20 Jun 2015 11:35:08 -0700 Subject: [PATCH 2/2] --User changes -Better default/min/max sizes for docks/tabs. -Add a reset workspace menu item. --Bug fixes -Order of affine scale up/down buttons was reversed from what's intuitive. -Projection was not properly being set when animating flames with 3D parameters. --- Source/Ember/Ember.h | 3 + Source/Ember/Renderer.cpp | 2 +- Source/Fractorium/Fractorium.cpp | 26 ++- Source/Fractorium/Fractorium.h | 3 + Source/Fractorium/Fractorium.ui | 227 +++++++++++++++----------- Source/Fractorium/FractoriumMenus.cpp | 30 ++++ 6 files changed, 192 insertions(+), 99 deletions(-) diff --git a/Source/Ember/Ember.h b/Source/Ember/Ember.h index c93bd77..6e3e3ee 100644 --- a/Source/Ember/Ember.h +++ b/Source/Ember/Ember.h @@ -803,6 +803,9 @@ public: InterpT<&Ember::m_SpatialFilterRadius>(embers, coefs, size); InterpX, &Ember::m_Curves>(embers, coefs, size); + //Normally done in assignment, must manually do here. + SetProjFunc(); + //An extra step needed here due to the OOD that was not needed in the original. //A small price to pay for the conveniences it affords us elsewhere. //First clear the xforms, and find out the max number of xforms in all of the embers in the list. diff --git a/Source/Ember/Renderer.cpp b/Source/Ember/Renderer.cpp index 4231533..8bc9fab 100644 --- a/Source/Ember/Renderer.cpp +++ b/Source/Ember/Renderer.cpp @@ -1218,7 +1218,7 @@ EmberStats Renderer::Iterate(size_t iterCount, size_t temporalSample #ifdef WIN32 SetThreadPriority(GetCurrentThread(), m_Priority); #else - pthread_setschedprio(pthread_self(), (int)m_Priority); + pthread_setschedprio(pthread_self(), (int)m_Priority); #endif //Timing t; IterParams params; diff --git a/Source/Fractorium/Fractorium.cpp b/Source/Fractorium/Fractorium.cpp index 2b0c371..c4eb5ad 100644 --- a/Source/Fractorium/Fractorium.cpp +++ b/Source/Fractorium/Fractorium.cpp @@ -32,6 +32,14 @@ Fractorium::Fractorium(QWidget* p) tabifyDockWidget(ui.XformsDockWidget, ui.XaosDockWidget); tabifyDockWidget(ui.XaosDockWidget, ui.PaletteDockWidget); tabifyDockWidget(ui.PaletteDockWidget, ui.InfoDockWidget); + + m_Docks.reserve(8); + m_Docks.push_back(ui.LibraryDockWidget); + m_Docks.push_back(ui.FlameDockWidget); + m_Docks.push_back(ui.XformsDockWidget); + m_Docks.push_back(ui.XaosDockWidget); + m_Docks.push_back(ui.PaletteDockWidget); + m_Docks.push_back(ui.InfoDockWidget); m_FontSize = 9; m_VarSortMode = 1;//Sort by weight by default. @@ -137,15 +145,19 @@ Fractorium::Fractorium(QWidget* p) //Setup pointer in the GL window to point back to here. ui.GLDisplay->SetMainWindow(this); - restoreState(m_Settings->value("windowState").toByteArray()); + bool restored = restoreState(m_Settings->value("windowState").toByteArray()); showMaximized();//This won't fully set things up and show them until after this constructor exits. connect(ui.LibraryDockWidget, SIGNAL(dockLocationChanged(Qt::DockWidgetArea)), this, SLOT(dockLocationChanged(Qt::DockWidgetArea))); connect(ui.LibraryDockWidget, SIGNAL(topLevelChanged(bool)), this, SLOT(OnDockTopLevelChanged(bool))); //Always ensure the library tab is selected, which will show preview renders. - //ui.ParamsTabWidget->setCurrentIndex(0); - ui.XformsTabWidget->setCurrentIndex(2);//Make variations tab the currently selected one under the Xforms tab. + if (!restored) + { + ui.LibraryDockWidget->raise(); + ui.LibraryDockWidget->show(); + ui.XformsTabWidget->setCurrentIndex(2);//Make variations tab the currently selected one under the Xforms tab. + } //Setting certain values will completely throw off the GUI, doing everything //from setting strange margins, to arbitrarily changing the fonts used. @@ -686,9 +698,9 @@ void Fractorium::SetTabOrders() w = SetTabOrder(this, w, ui.PreMoveCombo); w = SetTabOrder(this, w, ui.PreMoveLeftButton); w = SetTabOrder(this, w, ui.PreMoveRightButton); - w = SetTabOrder(this, w, ui.PreScaleUpButton); - w = SetTabOrder(this, w, ui.PreScaleCombo); w = SetTabOrder(this, w, ui.PreScaleDownButton); + w = SetTabOrder(this, w, ui.PreScaleCombo); + w = SetTabOrder(this, w, ui.PreScaleUpButton); w = SetTabOrder(this, w, ui.ShowPreAffineCurrentRadio); w = SetTabOrder(this, w, ui.ShowPreAffineAllRadio); w = SetTabOrder(this, w, ui.PostAffineGroupBox); @@ -711,9 +723,9 @@ void Fractorium::SetTabOrders() w = SetTabOrder(this, w, ui.PostMoveCombo); w = SetTabOrder(this, w, ui.PostMoveLeftButton); w = SetTabOrder(this, w, ui.PostMoveRightButton); - w = SetTabOrder(this, w, ui.PostScaleUpButton); - w = SetTabOrder(this, w, ui.PostScaleCombo); w = SetTabOrder(this, w, ui.PostScaleDownButton); + w = SetTabOrder(this, w, ui.PostScaleCombo); + w = SetTabOrder(this, w, ui.PostScaleUpButton); w = SetTabOrder(this, w, ui.ShowPostAffineCurrentRadio); w = SetTabOrder(this, w, ui.ShowPostAffineAllRadio); w = SetTabOrder(this, w, ui.LocalPivotRadio); diff --git a/Source/Fractorium/Fractorium.h b/Source/Fractorium/Fractorium.h index 12dc284..6a4d469 100644 --- a/Source/Fractorium/Fractorium.h +++ b/Source/Fractorium/Fractorium.h @@ -125,6 +125,8 @@ public slots: void OnActionCopySelectedXforms(bool checked); void OnActionPasteSelectedXforms(bool checked); + void OnActionResetWorkspace(bool checked);//View + void OnActionAddReflectiveSymmetry(bool checked);//Tools. void OnActionAddRotationalSymmetry(bool checked); void OnActionAddBothSymmetry(bool checked); @@ -458,6 +460,7 @@ private: char m_CoordinateString[128]; QColor m_XformComboColors[XFORM_COLOR_COUNT], m_FinalXformComboColor; QIcon m_XformComboIcons[XFORM_COLOR_COUNT], m_FinalXformComboIcon; + vector m_Docks; int m_FontSize; int m_VarSortMode; diff --git a/Source/Fractorium/Fractorium.ui b/Source/Fractorium/Fractorium.ui index 76d6e49..8ded213 100644 --- a/Source/Fractorium/Fractorium.ui +++ b/Source/Fractorium/Fractorium.ui @@ -74,7 +74,7 @@ 0 0 - 1130 + 1217 885 @@ -99,12 +99,18 @@ - 0 + 40 0 - 211 + 240 881 + + + 150 + 200 + + true @@ -112,7 +118,7 @@ QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable - Qt::BottomDockWidgetArea|Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea + Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea Flame @@ -150,7 +156,7 @@ 0 0 - 201 + 230 850 @@ -1518,17 +1524,23 @@ - 485 + 550 0 - 181 - 871 + 240 + 881 + + + 240 + 200 + + QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable - Qt::BottomDockWidgetArea|Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea + Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea Xaos @@ -1694,17 +1706,23 @@ - 666 + 790 0 - 205 - 871 + 240 + 881 + + + 240 + 200 + + QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable - Qt::BottomDockWidgetArea|Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea + Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea Palette @@ -2128,15 +2146,24 @@ - 211 + 300 0 - 274 - 861 + 240 + 881 + + + 240 + 613 + + QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable + + Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea + Xforms @@ -3225,8 +3252,8 @@ SpinBox 0 0 - 233 - 618 + 216 + 745 @@ -3463,20 +3490,6 @@ SpinBox - - - - Scale xform x percent up - - - - - - - :/Fractorium/Icons/arrow_out.png:/Fractorium/Icons/arrow_out.png - - - @@ -3703,20 +3716,6 @@ SpinBox - - - - Scale xform x percent down - - - - - - - :/Fractorium/Icons/arrow_in.png:/Fractorium/Icons/arrow_in.png - - - @@ -3779,6 +3778,34 @@ SpinBox + + + + Scale xform x percent down + + + + + + + :/Fractorium/Icons/arrow_in.png:/Fractorium/Icons/arrow_in.png + + + + + + + Scale xform x percent up + + + + + + + :/Fractorium/Icons/arrow_out.png:/Fractorium/Icons/arrow_out.png + + + @@ -4064,23 +4091,6 @@ SpinBox - - - - true - - - Scale xform x percent up - - - - - - - :/Fractorium/Icons/arrow_out.png:/Fractorium/Icons/arrow_out.png - - - @@ -4334,23 +4344,6 @@ SpinBox - - - - true - - - Scale xform x percent down - - - - - - - :/Fractorium/Icons/arrow_in.png:/Fractorium/Icons/arrow_in.png - - - @@ -4410,6 +4403,40 @@ SpinBox + + + + true + + + Scale xform x percent up + + + + + + + :/Fractorium/Icons/arrow_out.png:/Fractorium/Icons/arrow_out.png + + + + + + + true + + + Scale xform x percent down + + + + + + + :/Fractorium/Icons/arrow_in.png:/Fractorium/Icons/arrow_in.png + + + @@ -4882,8 +4909,8 @@ SpinBox 0 0 - 250 - 520 + 216 + 680 @@ -4939,17 +4966,23 @@ SpinBox - 871 + 1030 0 - 241 + 200 881 + + + 80 + 200 + + QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable - Qt::BottomDockWidgetArea|Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea + Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea Info @@ -4990,7 +5023,7 @@ SpinBox 0 0 - 231 + 190 851 @@ -5543,8 +5576,15 @@ SpinBox + + + &View + + + + @@ -5562,13 +5602,13 @@ SpinBox - 287 - 636 + 150 + 200 - 330 + 524287 524287 @@ -5582,7 +5622,7 @@ SpinBox QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable - Qt::AllDockWidgetAreas + Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea Library @@ -5714,7 +5754,7 @@ SpinBox 0 0 - 275 + 188 824 @@ -6095,6 +6135,11 @@ SpinBox Ctrl+W + + + &Reset Workspace + + diff --git a/Source/Fractorium/FractoriumMenus.cpp b/Source/Fractorium/FractoriumMenus.cpp index 0e80710..852d678 100644 --- a/Source/Fractorium/FractoriumMenus.cpp +++ b/Source/Fractorium/FractoriumMenus.cpp @@ -29,6 +29,9 @@ void Fractorium::InitMenusUI() connect(ui.ActionPasteSelectedXforms, SIGNAL(triggered(bool)), this, SLOT(OnActionPasteSelectedXforms(bool)), Qt::QueuedConnection); ui.ActionPasteSelectedXforms->setEnabled(false); + //View menu. + connect(ui.ActionResetWorkspace, SIGNAL(triggered(bool)), this, SLOT(OnActionResetWorkspace(bool)), Qt::QueuedConnection); + //Tools menu. connect(ui.ActionAddReflectiveSymmetry, SIGNAL(triggered(bool)), this, SLOT(OnActionAddReflectiveSymmetry(bool)), Qt::QueuedConnection); connect(ui.ActionAddRotationalSymmetry, SIGNAL(triggered(bool)), this, SLOT(OnActionAddRotationalSymmetry(bool)), Qt::QueuedConnection); @@ -663,6 +666,33 @@ void Fractorium::OnActionPasteSelectedXforms(bool checked) m_Controller->PasteSelectedXforms(); } +/// +/// Reset dock widgets and tabs to their default position. +/// Note that there is a bug in Qt, where it will only move them all to the left side if at least +/// one is on the left side, or they are all floating. If one or more are docked right, and none are docked +/// left, then it will put them all on the right side. Hopefully this isn't too much of a problem. +/// +void Fractorium::OnActionResetWorkspace(bool checked) +{ + QDockWidget* firstDock = nullptr; + + for (auto dock : m_Docks) + { + dock->setFloating(true); + dock->setGeometry(QRect(100, 100, dock->width(), dock->height()));//Doesn't seem to have an effect. + dock->setFloating(false); + dock->show(); + + if (firstDock) + tabifyDockWidget(firstDock, dock); + + firstDock = dock; + } + + ui.LibraryDockWidget->raise(); + ui.LibraryDockWidget->show(); +} + /// /// Add reflective symmetry to the current ember. /// Resets the rendering process.