--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.
This commit is contained in:
mfeemster 2015-06-20 11:35:08 -07:00
parent 5f3e70c6a8
commit d80343a28b
6 changed files with 192 additions and 99 deletions

View File

@ -803,6 +803,9 @@ public:
InterpT<&Ember<T>::m_SpatialFilterRadius>(embers, coefs, size); InterpT<&Ember<T>::m_SpatialFilterRadius>(embers, coefs, size);
InterpX<Curves<T>, &Ember<T>::m_Curves>(embers, coefs, size); InterpX<Curves<T>, &Ember<T>::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. //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. //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. //First clear the xforms, and find out the max number of xforms in all of the embers in the list.

View File

@ -33,6 +33,14 @@ Fractorium::Fractorium(QWidget* p)
tabifyDockWidget(ui.XaosDockWidget, ui.PaletteDockWidget); tabifyDockWidget(ui.XaosDockWidget, ui.PaletteDockWidget);
tabifyDockWidget(ui.PaletteDockWidget, ui.InfoDockWidget); 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_FontSize = 9;
m_VarSortMode = 1;//Sort by weight by default. m_VarSortMode = 1;//Sort by weight by default.
m_PaletteSortMode = 0;//Sort by palette ascending by default. m_PaletteSortMode = 0;//Sort by palette ascending by default.
@ -137,15 +145,19 @@ Fractorium::Fractorium(QWidget* p)
//Setup pointer in the GL window to point back to here. //Setup pointer in the GL window to point back to here.
ui.GLDisplay->SetMainWindow(this); ui.GLDisplay->SetMainWindow(this);
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. 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(dockLocationChanged(Qt::DockWidgetArea)), this, SLOT(dockLocationChanged(Qt::DockWidgetArea)));
connect(ui.LibraryDockWidget, SIGNAL(topLevelChanged(bool)), this, SLOT(OnDockTopLevelChanged(bool))); connect(ui.LibraryDockWidget, SIGNAL(topLevelChanged(bool)), this, SLOT(OnDockTopLevelChanged(bool)));
//Always ensure the library tab is selected, which will show preview renders. //Always ensure the library tab is selected, which will show preview renders.
//ui.ParamsTabWidget->setCurrentIndex(0); if (!restored)
{
ui.LibraryDockWidget->raise();
ui.LibraryDockWidget->show();
ui.XformsTabWidget->setCurrentIndex(2);//Make variations tab the currently selected one under the Xforms tab. 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 //Setting certain values will completely throw off the GUI, doing everything
//from setting strange margins, to arbitrarily changing the fonts used. //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.PreMoveCombo);
w = SetTabOrder(this, w, ui.PreMoveLeftButton); w = SetTabOrder(this, w, ui.PreMoveLeftButton);
w = SetTabOrder(this, w, ui.PreMoveRightButton); 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.PreScaleDownButton);
w = SetTabOrder(this, w, ui.PreScaleCombo);
w = SetTabOrder(this, w, ui.PreScaleUpButton);
w = SetTabOrder(this, w, ui.ShowPreAffineCurrentRadio); w = SetTabOrder(this, w, ui.ShowPreAffineCurrentRadio);
w = SetTabOrder(this, w, ui.ShowPreAffineAllRadio); w = SetTabOrder(this, w, ui.ShowPreAffineAllRadio);
w = SetTabOrder(this, w, ui.PostAffineGroupBox); w = SetTabOrder(this, w, ui.PostAffineGroupBox);
@ -711,9 +723,9 @@ void Fractorium::SetTabOrders()
w = SetTabOrder(this, w, ui.PostMoveCombo); w = SetTabOrder(this, w, ui.PostMoveCombo);
w = SetTabOrder(this, w, ui.PostMoveLeftButton); w = SetTabOrder(this, w, ui.PostMoveLeftButton);
w = SetTabOrder(this, w, ui.PostMoveRightButton); 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.PostScaleDownButton);
w = SetTabOrder(this, w, ui.PostScaleCombo);
w = SetTabOrder(this, w, ui.PostScaleUpButton);
w = SetTabOrder(this, w, ui.ShowPostAffineCurrentRadio); w = SetTabOrder(this, w, ui.ShowPostAffineCurrentRadio);
w = SetTabOrder(this, w, ui.ShowPostAffineAllRadio); w = SetTabOrder(this, w, ui.ShowPostAffineAllRadio);
w = SetTabOrder(this, w, ui.LocalPivotRadio); w = SetTabOrder(this, w, ui.LocalPivotRadio);

View File

@ -125,6 +125,8 @@ public slots:
void OnActionCopySelectedXforms(bool checked); void OnActionCopySelectedXforms(bool checked);
void OnActionPasteSelectedXforms(bool checked); void OnActionPasteSelectedXforms(bool checked);
void OnActionResetWorkspace(bool checked);//View
void OnActionAddReflectiveSymmetry(bool checked);//Tools. void OnActionAddReflectiveSymmetry(bool checked);//Tools.
void OnActionAddRotationalSymmetry(bool checked); void OnActionAddRotationalSymmetry(bool checked);
void OnActionAddBothSymmetry(bool checked); void OnActionAddBothSymmetry(bool checked);
@ -458,6 +460,7 @@ private:
char m_CoordinateString[128]; char m_CoordinateString[128];
QColor m_XformComboColors[XFORM_COLOR_COUNT], m_FinalXformComboColor; QColor m_XformComboColors[XFORM_COLOR_COUNT], m_FinalXformComboColor;
QIcon m_XformComboIcons[XFORM_COLOR_COUNT], m_FinalXformComboIcon; QIcon m_XformComboIcons[XFORM_COLOR_COUNT], m_FinalXformComboIcon;
vector<QDockWidget*> m_Docks;
int m_FontSize; int m_FontSize;
int m_VarSortMode; int m_VarSortMode;

View File

@ -74,7 +74,7 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>1130</width> <width>1217</width>
<height>885</height> <height>885</height>
</rect> </rect>
</property> </property>
@ -99,12 +99,18 @@
<widget class="QDockWidget" name="FlameDockWidget"> <widget class="QDockWidget" name="FlameDockWidget">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>40</x>
<y>0</y> <y>0</y>
<width>211</width> <width>240</width>
<height>881</height> <height>881</height>
</rect> </rect>
</property> </property>
<property name="minimumSize">
<size>
<width>150</width>
<height>200</height>
</size>
</property>
<property name="floating"> <property name="floating">
<bool>true</bool> <bool>true</bool>
</property> </property>
@ -112,7 +118,7 @@
<set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set> <set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set>
</property> </property>
<property name="allowedAreas"> <property name="allowedAreas">
<set>Qt::BottomDockWidgetArea|Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea</set> <set>Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea</set>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>Flame</string> <string>Flame</string>
@ -150,7 +156,7 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>201</width> <width>230</width>
<height>850</height> <height>850</height>
</rect> </rect>
</property> </property>
@ -1518,17 +1524,23 @@
<widget class="QDockWidget" name="XaosDockWidget"> <widget class="QDockWidget" name="XaosDockWidget">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>485</x> <x>550</x>
<y>0</y> <y>0</y>
<width>181</width> <width>240</width>
<height>871</height> <height>881</height>
</rect> </rect>
</property> </property>
<property name="minimumSize">
<size>
<width>240</width>
<height>200</height>
</size>
</property>
<property name="features"> <property name="features">
<set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set> <set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set>
</property> </property>
<property name="allowedAreas"> <property name="allowedAreas">
<set>Qt::BottomDockWidgetArea|Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea</set> <set>Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea</set>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>Xaos</string> <string>Xaos</string>
@ -1694,17 +1706,23 @@
<widget class="QDockWidget" name="PaletteDockWidget"> <widget class="QDockWidget" name="PaletteDockWidget">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>666</x> <x>790</x>
<y>0</y> <y>0</y>
<width>205</width> <width>240</width>
<height>871</height> <height>881</height>
</rect> </rect>
</property> </property>
<property name="minimumSize">
<size>
<width>240</width>
<height>200</height>
</size>
</property>
<property name="features"> <property name="features">
<set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set> <set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set>
</property> </property>
<property name="allowedAreas"> <property name="allowedAreas">
<set>Qt::BottomDockWidgetArea|Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea</set> <set>Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea</set>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>Palette</string> <string>Palette</string>
@ -2128,15 +2146,24 @@
<widget class="QDockWidget" name="XformsDockWidget"> <widget class="QDockWidget" name="XformsDockWidget">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>211</x> <x>300</x>
<y>0</y> <y>0</y>
<width>274</width> <width>240</width>
<height>861</height> <height>881</height>
</rect> </rect>
</property> </property>
<property name="minimumSize">
<size>
<width>240</width>
<height>613</height>
</size>
</property>
<property name="features"> <property name="features">
<set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set> <set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set>
</property> </property>
<property name="allowedAreas">
<set>Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea</set>
</property>
<property name="windowTitle"> <property name="windowTitle">
<string>Xforms</string> <string>Xforms</string>
</property> </property>
@ -3225,8 +3252,8 @@ SpinBox
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>233</width> <width>216</width>
<height>618</height> <height>745</height>
</rect> </rect>
</property> </property>
<property name="autoFillBackground"> <property name="autoFillBackground">
@ -3463,20 +3490,6 @@ SpinBox
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="1">
<widget class="QPushButton" name="PreScaleUpButton">
<property name="toolTip">
<string>Scale xform x percent up</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="Fractorium.qrc">
<normaloff>:/Fractorium/Icons/arrow_out.png</normaloff>:/Fractorium/Icons/arrow_out.png</iconset>
</property>
</widget>
</item>
<item row="2" column="4"> <item row="2" column="4">
<widget class="QPushButton" name="PreMoveRightButton"> <widget class="QPushButton" name="PreMoveRightButton">
<property name="toolTip"> <property name="toolTip">
@ -3703,20 +3716,6 @@ SpinBox
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="3">
<widget class="QPushButton" name="PreScaleDownButton">
<property name="toolTip">
<string>Scale xform x percent down</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="Fractorium.qrc">
<normaloff>:/Fractorium/Icons/arrow_in.png</normaloff>:/Fractorium/Icons/arrow_in.png</iconset>
</property>
</widget>
</item>
<item row="0" column="1"> <item row="0" column="1">
<widget class="QPushButton" name="PreFlipVerticalButton"> <widget class="QPushButton" name="PreFlipVerticalButton">
<property name="sizePolicy"> <property name="sizePolicy">
@ -3779,6 +3778,34 @@ SpinBox
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="1">
<widget class="QPushButton" name="PreScaleDownButton">
<property name="toolTip">
<string>Scale xform x percent down</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="Fractorium.qrc">
<normaloff>:/Fractorium/Icons/arrow_in.png</normaloff>:/Fractorium/Icons/arrow_in.png</iconset>
</property>
</widget>
</item>
<item row="3" column="3">
<widget class="QPushButton" name="PreScaleUpButton">
<property name="toolTip">
<string>Scale xform x percent up</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="Fractorium.qrc">
<normaloff>:/Fractorium/Icons/arrow_out.png</normaloff>:/Fractorium/Icons/arrow_out.png</iconset>
</property>
</widget>
</item>
</layout> </layout>
</item> </item>
<item> <item>
@ -4064,23 +4091,6 @@ SpinBox
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="1">
<widget class="QPushButton" name="PostScaleUpButton">
<property name="enabled">
<bool>true</bool>
</property>
<property name="toolTip">
<string>Scale xform x percent up</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="Fractorium.qrc">
<normaloff>:/Fractorium/Icons/arrow_out.png</normaloff>:/Fractorium/Icons/arrow_out.png</iconset>
</property>
</widget>
</item>
<item row="2" column="4"> <item row="2" column="4">
<widget class="QPushButton" name="PostMoveRightButton"> <widget class="QPushButton" name="PostMoveRightButton">
<property name="enabled"> <property name="enabled">
@ -4334,23 +4344,6 @@ SpinBox
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="3">
<widget class="QPushButton" name="PostScaleDownButton">
<property name="enabled">
<bool>true</bool>
</property>
<property name="toolTip">
<string>Scale xform x percent down</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="Fractorium.qrc">
<normaloff>:/Fractorium/Icons/arrow_in.png</normaloff>:/Fractorium/Icons/arrow_in.png</iconset>
</property>
</widget>
</item>
<item row="0" column="3"> <item row="0" column="3">
<widget class="QPushButton" name="PostFlipHorizontalButton"> <widget class="QPushButton" name="PostFlipHorizontalButton">
<property name="enabled"> <property name="enabled">
@ -4410,6 +4403,40 @@ SpinBox
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="3">
<widget class="QPushButton" name="PostScaleUpButton">
<property name="enabled">
<bool>true</bool>
</property>
<property name="toolTip">
<string>Scale xform x percent up</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="Fractorium.qrc">
<normaloff>:/Fractorium/Icons/arrow_out.png</normaloff>:/Fractorium/Icons/arrow_out.png</iconset>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QPushButton" name="PostScaleDownButton">
<property name="enabled">
<bool>true</bool>
</property>
<property name="toolTip">
<string>Scale xform x percent down</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="Fractorium.qrc">
<normaloff>:/Fractorium/Icons/arrow_in.png</normaloff>:/Fractorium/Icons/arrow_in.png</iconset>
</property>
</widget>
</item>
</layout> </layout>
</item> </item>
<item> <item>
@ -4882,8 +4909,8 @@ SpinBox
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>250</width> <width>216</width>
<height>520</height> <height>680</height>
</rect> </rect>
</property> </property>
<property name="sizePolicy"> <property name="sizePolicy">
@ -4939,17 +4966,23 @@ SpinBox
<widget class="QDockWidget" name="InfoDockWidget"> <widget class="QDockWidget" name="InfoDockWidget">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>871</x> <x>1030</x>
<y>0</y> <y>0</y>
<width>241</width> <width>200</width>
<height>881</height> <height>881</height>
</rect> </rect>
</property> </property>
<property name="minimumSize">
<size>
<width>80</width>
<height>200</height>
</size>
</property>
<property name="features"> <property name="features">
<set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set> <set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set>
</property> </property>
<property name="allowedAreas"> <property name="allowedAreas">
<set>Qt::BottomDockWidgetArea|Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea</set> <set>Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea</set>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>Info</string> <string>Info</string>
@ -4990,7 +5023,7 @@ SpinBox
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>231</width> <width>190</width>
<height>851</height> <height>851</height>
</rect> </rect>
</property> </property>
@ -5543,8 +5576,15 @@ SpinBox
<addaction name="ActionCopySelectedXforms"/> <addaction name="ActionCopySelectedXforms"/>
<addaction name="ActionPasteSelectedXforms"/> <addaction name="ActionPasteSelectedXforms"/>
</widget> </widget>
<widget class="QMenu" name="MenuView">
<property name="title">
<string>&amp;View</string>
</property>
<addaction name="ActionResetWorkspace"/>
</widget>
<addaction name="MenuFile"/> <addaction name="MenuFile"/>
<addaction name="MenuEdit"/> <addaction name="MenuEdit"/>
<addaction name="MenuView"/>
<addaction name="MenuTools"/> <addaction name="MenuTools"/>
<addaction name="MenuHelp"/> <addaction name="MenuHelp"/>
</widget> </widget>
@ -5562,13 +5602,13 @@ SpinBox
</property> </property>
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>287</width> <width>150</width>
<height>636</height> <height>200</height>
</size> </size>
</property> </property>
<property name="maximumSize"> <property name="maximumSize">
<size> <size>
<width>330</width> <width>524287</width>
<height>524287</height> <height>524287</height>
</size> </size>
</property> </property>
@ -5582,7 +5622,7 @@ SpinBox
<set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set> <set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set>
</property> </property>
<property name="allowedAreas"> <property name="allowedAreas">
<set>Qt::AllDockWidgetAreas</set> <set>Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea</set>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>Library</string> <string>Library</string>
@ -5714,7 +5754,7 @@ SpinBox
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>275</width> <width>188</width>
<height>824</height> <height>824</height>
</rect> </rect>
</property> </property>
@ -6095,6 +6135,11 @@ SpinBox
<string>Ctrl+W</string> <string>Ctrl+W</string>
</property> </property>
</action> </action>
<action name="ActionResetWorkspace">
<property name="text">
<string>&amp;Reset Workspace</string>
</property>
</action>
</widget> </widget>
<layoutdefault spacing="6" margin="11"/> <layoutdefault spacing="6" margin="11"/>
<customwidgets> <customwidgets>

View File

@ -29,6 +29,9 @@ void Fractorium::InitMenusUI()
connect(ui.ActionPasteSelectedXforms, SIGNAL(triggered(bool)), this, SLOT(OnActionPasteSelectedXforms(bool)), Qt::QueuedConnection); connect(ui.ActionPasteSelectedXforms, SIGNAL(triggered(bool)), this, SLOT(OnActionPasteSelectedXforms(bool)), Qt::QueuedConnection);
ui.ActionPasteSelectedXforms->setEnabled(false); ui.ActionPasteSelectedXforms->setEnabled(false);
//View menu.
connect(ui.ActionResetWorkspace, SIGNAL(triggered(bool)), this, SLOT(OnActionResetWorkspace(bool)), Qt::QueuedConnection);
//Tools menu. //Tools menu.
connect(ui.ActionAddReflectiveSymmetry, SIGNAL(triggered(bool)), this, SLOT(OnActionAddReflectiveSymmetry(bool)), Qt::QueuedConnection); connect(ui.ActionAddReflectiveSymmetry, SIGNAL(triggered(bool)), this, SLOT(OnActionAddReflectiveSymmetry(bool)), Qt::QueuedConnection);
connect(ui.ActionAddRotationalSymmetry, SIGNAL(triggered(bool)), this, SLOT(OnActionAddRotationalSymmetry(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(); m_Controller->PasteSelectedXforms();
} }
/// <summary>
/// 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.
/// </summary>
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();
}
/// <summary> /// <summary>
/// Add reflective symmetry to the current ember. /// Add reflective symmetry to the current ember.
/// Resets the rendering process. /// Resets the rendering process.