diff --git a/Builds/MSVC/Installer/FractoriumInstaller.wixproj b/Builds/MSVC/Installer/FractoriumInstaller.wixproj
index ac72ce1..780446d 100644
--- a/Builds/MSVC/Installer/FractoriumInstaller.wixproj
+++ b/Builds/MSVC/Installer/FractoriumInstaller.wixproj
@@ -6,7 +6,7 @@
3.7
{c8096c47-e358-438c-a520-146d46b0637d}
2.0
- Fractorium_1.0.0.11
+ Fractorium_1.0.0.12
Package
$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets
$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets
diff --git a/Builds/MSVC/Installer/Product.wxs b/Builds/MSVC/Installer/Product.wxs
index eaadca9..b03ef33 100644
--- a/Builds/MSVC/Installer/Product.wxs
+++ b/Builds/MSVC/Installer/Product.wxs
@@ -1,6 +1,6 @@
-
+
@@ -13,7 +13,7 @@
-
+
-
+
-
+
-
+
-
+
diff --git a/Builds/MSVC/VS2017/Ember.rc b/Builds/MSVC/VS2017/Ember.rc
index 04c5970..c84f4a7 100644
Binary files a/Builds/MSVC/VS2017/Ember.rc and b/Builds/MSVC/VS2017/Ember.rc differ
diff --git a/Builds/MSVC/VS2017/EmberAnimate.rc b/Builds/MSVC/VS2017/EmberAnimate.rc
index 6a41d62..af8c4d5 100644
--- a/Builds/MSVC/VS2017/EmberAnimate.rc
+++ b/Builds/MSVC/VS2017/EmberAnimate.rc
@@ -49,8 +49,8 @@
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1, 0, 0, 11
- PRODUCTVERSION 1, 0, 0, 11
+ FILEVERSION 1, 0, 0, 12
+ PRODUCTVERSION 1, 0, 0, 12
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -67,12 +67,12 @@
BEGIN
VALUE "CompanyName", "Open Source"
VALUE "FileDescription", "Renders fractal flames as animations with motion blur"
- VALUE "FileVersion", "1.0.0.11"
+ VALUE "FileVersion", "1.0.0.12"
VALUE "InternalName", "EmberAnimate.exe"
VALUE "LegalCopyright", "Copyright (C) Matt Feemster 2018, GPL v3"
VALUE "OriginalFilename", "EmberAnimate.exe"
VALUE "ProductName", "Ember Animate"
- VALUE "ProductVersion", "1.0.0.11"
+ VALUE "ProductVersion", "1.0.0.12"
END
END
BLOCK "VarFileInfo"
diff --git a/Builds/MSVC/VS2017/EmberCL.rc b/Builds/MSVC/VS2017/EmberCL.rc
index eb0385e..5ab1e11 100644
Binary files a/Builds/MSVC/VS2017/EmberCL.rc and b/Builds/MSVC/VS2017/EmberCL.rc differ
diff --git a/Builds/MSVC/VS2017/EmberGenome.rc b/Builds/MSVC/VS2017/EmberGenome.rc
index 96dab2f..3f4e5f6 100644
--- a/Builds/MSVC/VS2017/EmberGenome.rc
+++ b/Builds/MSVC/VS2017/EmberGenome.rc
@@ -49,8 +49,8 @@
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1, 0, 0, 11
- PRODUCTVERSION 1, 0, 0, 11
+ FILEVERSION 1, 0, 0, 12
+ PRODUCTVERSION 1, 0, 0, 12
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -67,12 +67,12 @@
BEGIN
VALUE "CompanyName", "Open Source"
VALUE "FileDescription", "Manipulates fractal flames parameter files"
- VALUE "FileVersion", "1.0.0.11"
+ VALUE "FileVersion", "1.0.0.12"
VALUE "InternalName", "EmberGenome.exe"
VALUE "LegalCopyright", "Copyright (C) Matt Feemster 2018, GPL v3"
VALUE "OriginalFilename", "EmberGenome.exe"
VALUE "ProductName", "Ember Genome"
- VALUE "ProductVersion", "1.0.0.11"
+ VALUE "ProductVersion", "1.0.0.12"
END
END
BLOCK "VarFileInfo"
diff --git a/Builds/MSVC/VS2017/EmberRender.rc b/Builds/MSVC/VS2017/EmberRender.rc
index 0ab0382..761ef3c 100644
--- a/Builds/MSVC/VS2017/EmberRender.rc
+++ b/Builds/MSVC/VS2017/EmberRender.rc
@@ -49,8 +49,8 @@
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1, 0, 0, 11
- PRODUCTVERSION 1, 0, 0, 11
+ FILEVERSION 1, 0, 0, 12
+ PRODUCTVERSION 1, 0, 0, 12
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -67,12 +67,12 @@
BEGIN
VALUE "CompanyName", "Open Source"
VALUE "FileDescription", "Renders fractal flames as single images"
- VALUE "FileVersion", "1.0.0.11"
+ VALUE "FileVersion", "1.0.0.12"
VALUE "InternalName", "EmberRender.exe"
VALUE "LegalCopyright", "Copyright (C) Matt Feemster 2018, GPL v3"
VALUE "OriginalFilename", "EmberRender.exe"
VALUE "ProductName", "Ember Render"
- VALUE "ProductVersion", "1.0.0.11"
+ VALUE "ProductVersion", "1.0.0.12"
END
END
BLOCK "VarFileInfo"
diff --git a/Builds/MSVC/VS2017/Fractorium.rc b/Builds/MSVC/VS2017/Fractorium.rc
index 8712c7e..3ebf9cb 100644
Binary files a/Builds/MSVC/VS2017/Fractorium.rc and b/Builds/MSVC/VS2017/Fractorium.rc differ
diff --git a/Builds/QtCreator/defaults.pri b/Builds/QtCreator/defaults.pri
index cb623ad..3cc8d55 100644
--- a/Builds/QtCreator/defaults.pri
+++ b/Builds/QtCreator/defaults.pri
@@ -1,4 +1,4 @@
-VERSION = 1.0.0.11
+VERSION = 1.0.0.12
win32:CONFIG += skip_target_version_ext
CONFIG += c++14
diff --git a/Data/Amphibole_Supergroup.ugr b/Data/Amphibole_Supergroup.ugr
index e7ee9cb..3c8f557 100644
--- a/Data/Amphibole_Supergroup.ugr
+++ b/Data/Amphibole_Supergroup.ugr
@@ -4976,9 +4976,9 @@ gradient:
}
-Ferro-ferri-nybøite {
+Ferro-ferri-nyboite {
gradient:
- title="Ferro-ferri-nybøite" smooth=no
+ title="Ferro-ferri-nyboite" smooth=no
index=0 color=3032133
index=2 color=2372156
index=3 color=2239542
@@ -14670,9 +14670,9 @@ gradient:
}
-Raw_Nybøite {
+Raw_Nyboite {
gradient:
- title="Raw_Nybøite" smooth=no
+ title="Raw_Nyboite" smooth=no
index=0 color=5076103
index=2 color=3825246
index=3 color=2970712
diff --git a/Data/Version History.txt b/Data/Version History.txt
index 3b5ab3f..971353d 100644
--- a/Data/Version History.txt
+++ b/Data/Version History.txt
@@ -1,3 +1,17 @@
+1.0.0.12 9/30/2018
+--User changes
+ -Add a button to swap the pre and post affine values for all selected xforms.
+
+--Bug fixes
+ -Remove the ability to change spinner values with +=-=, it was conflicting with other things and added no real value.
+ -All file dialog opening in Linux would freeze. No longer using native file dialogs, they are broken.
+ -Set default open path to the desktop if there is no settings file present, which will be the case on the first run.
+ -Amphibole_Supergroup.ugr palette had an invalid character in two of the palette names.
+
+--Code changes
+ -Change some table header padding styles to work with new Qt. Qss reload is required.
+ -Ensure the open folder path setting always has a valid string in it before opening a folder.
+
1.0.0.11 9/27/2018
--User changes
-Double clicking on width or height spinner now resizes both, but scales to the one double clicked.
diff --git a/Data/dark_linux.qss b/Data/dark_linux.qss
index fc7f74d..1638c0e 100644
--- a/Data/dark_linux.qss
+++ b/Data/dark_linux.qss
@@ -101,7 +101,7 @@ QDoubleSpinBox
padding-right: 0px;
color: darkgray;
selection-background-color: darkgray;
- font: 9pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
+ font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
}
QCheckBox
@@ -322,7 +322,7 @@ QTreeView
{
border: 1px solid gray;
background-color: rgb(53, 53, 53);
- font: 9pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
+ font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
}
/*Setting this gives a more consistent look. Also, by omitting color and background color, it allows us to set it above with VariationTreeColorNonZero etc...*/
@@ -378,7 +378,7 @@ QTableView
color: darkgray;
selection-color: darkgray;
selection-background-color: rgb(53, 53, 53);
- font: 9pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
+ font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
}
QTableView QTableCornerButton::section:enabled
@@ -409,8 +409,9 @@ QHeaderView::section::vertical:enabled
background-color: gray;
border: none;
border-bottom: 1px solid gray;
- padding: 4px;
- font: 9pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
+ padding-left: 5px;
+ padding-right: 0px;
+ font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
}
QHeaderView::section::horizontal:enabled
@@ -419,8 +420,10 @@ QHeaderView::section::horizontal:enabled
background-color: darkgray;
border: 0px solid darkgray;
border-right: 1px solid gray;
- padding: 4px;
- font: 9pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
+ padding-top: 0px;
+ padding-bottom: 0px;
+ padding-left: 3px;
+ font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
}
QHeaderView::section::vertical:disabled
@@ -429,8 +432,9 @@ QHeaderView::section::vertical:disabled
background-color: rgb(53, 53, 53);
border: 0px none darkgray;
border-bottom: 1px solid rgb(53, 53, 53);
- padding: 4px;
- font: 9pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
+ padding-left: 5px;
+ padding-right: 0px;
+ font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
}
QHeaderView::section::horizontal:disabled
@@ -439,8 +443,10 @@ QHeaderView::section::horizontal:disabled
background-color: rgb(53, 53, 53);
border: 0px none darkgray;
border-right: 1px solid rgb(53, 53, 53);
- padding: 4px;
- font: 9pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
+ padding-top: 0px;
+ padding-bottom: 0px;
+ padding-left: 3px;
+ font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
}
QScrollBar::vertical
diff --git a/Data/dark_mac.qss b/Data/dark_mac.qss
index 11b0347..85adb9b 100644
--- a/Data/dark_mac.qss
+++ b/Data/dark_mac.qss
@@ -101,7 +101,7 @@ QDoubleSpinBox
padding-right: 0px;
color: darkgray;
selection-background-color: darkgray;
- font: 9pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
+ font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
}
QCheckBox
@@ -322,7 +322,7 @@ QTreeView
{
border: 1px solid gray;
background-color: rgb(53, 53, 53);
- font: 9pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
+ font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
}
@@ -379,7 +379,7 @@ QTableView
color: darkgray;
selection-color: darkgray;
selection-background-color: rgb(53, 53, 53);
- font: 9pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
+ font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
}
QTableView QTableCornerButton::section:enabled
@@ -410,8 +410,9 @@ QHeaderView::section::vertical:enabled
background-color: gray;
border: none;
border-bottom: 1px solid gray;
- padding: 4px;
- font: 9pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
+ padding-left: 5px;
+ padding-right: 0px;
+ font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
}
QHeaderView::section::horizontal:enabled
@@ -420,8 +421,10 @@ QHeaderView::section::horizontal:enabled
background-color: darkgray;
border: 0px solid darkgray;
border-right: 1px solid gray;
- padding: 4px;
- font: 9pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
+ padding-top: 0px;
+ padding-bottom: 0px;
+ padding-left: 3px;
+ font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
}
QHeaderView::section::vertical:disabled
@@ -430,8 +433,9 @@ QHeaderView::section::vertical:disabled
background-color: rgb(53, 53, 53);
border: 0px none darkgray;
border-bottom: 1px solid rgb(53, 53, 53);
- padding: 4px;
- font: 9pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
+ padding-left: 5px;
+ padding-right: 0px;
+ font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
}
QHeaderView::section::horizontal:disabled
@@ -440,8 +444,10 @@ QHeaderView::section::horizontal:disabled
background-color: rgb(53, 53, 53);
border: 0px none darkgray;
border-right: 1px solid rgb(53, 53, 53);
- padding: 4px;
- font: 9pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
+ padding-top: 0px;
+ padding-bottom: 0px;
+ padding-left: 3px;
+ font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
}
QScrollBar::vertical
diff --git a/Data/dark_windows.qss b/Data/dark_windows.qss
index b5c604a..1638c0e 100644
--- a/Data/dark_windows.qss
+++ b/Data/dark_windows.qss
@@ -409,7 +409,8 @@ QHeaderView::section::vertical:enabled
background-color: gray;
border: none;
border-bottom: 1px solid gray;
- padding: 4px;
+ padding-left: 5px;
+ padding-right: 0px;
font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
}
@@ -419,7 +420,9 @@ QHeaderView::section::horizontal:enabled
background-color: darkgray;
border: 0px solid darkgray;
border-right: 1px solid gray;
- padding: 4px;
+ padding-top: 0px;
+ padding-bottom: 0px;
+ padding-left: 3px;
font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
}
@@ -429,7 +432,8 @@ QHeaderView::section::vertical:disabled
background-color: rgb(53, 53, 53);
border: 0px none darkgray;
border-bottom: 1px solid rgb(53, 53, 53);
- padding: 4px;
+ padding-left: 5px;
+ padding-right: 0px;
font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
}
@@ -439,7 +443,9 @@ QHeaderView::section::horizontal:disabled
background-color: rgb(53, 53, 53);
border: 0px none darkgray;
border-right: 1px solid rgb(53, 53, 53);
- padding: 4px;
+ padding-top: 0px;
+ padding-bottom: 0px;
+ padding-left: 3px;
font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
}
diff --git a/Source/Ember/EmberDefines.h b/Source/Ember/EmberDefines.h
index 0499562..b80adc7 100644
--- a/Source/Ember/EmberDefines.h
+++ b/Source/Ember/EmberDefines.h
@@ -37,7 +37,7 @@ static void sincos(float x, float* s, float* c)
namespace EmberNs
{
-#define EMBER_VERSION "1.0.0.11"
+#define EMBER_VERSION "1.0.0.12"
#define EPS6 T(1e-6)
#define EPS std::numeric_limits::epsilon()//Apoplugin.h uses -20, but it's more mathematically correct to do it this way.
#define ISAAC_SIZE 4
diff --git a/Source/Fractorium/AboutDialog.ui b/Source/Fractorium/AboutDialog.ui
index 295c3cc..114b15c 100644
--- a/Source/Fractorium/AboutDialog.ui
+++ b/Source/Fractorium/AboutDialog.ui
@@ -58,7 +58,7 @@
QFrame::NoFrame
- <html><head/><body><p align="center">Fractorium 1.0.0.11</p><p align="center"><span style=" font-size:10pt;">A Qt-based fractal flame editor which uses a C++ re-write of the flam3 algorithm named Ember and a GPU capable version named EmberCL which implements a portion of the cuburn algorithm in OpenCL.</span></p><p align="center"><a href="http://fractorium.com"><span style=" text-decoration: underline; color:#0000ff;">fractorium.com</span></a></p></body></html>
+ <html><head/><body><p align="center">Fractorium 1.0.0.12</p><p align="center"><span style=" font-size:10pt;">A Qt-based fractal flame editor which uses a C++ re-write of the flam3 algorithm named Ember and a GPU capable version named EmberCL which implements a portion of the cuburn algorithm in OpenCL.</span></p><p align="center"><a href="http://fractorium.com"><span style=" text-decoration: underline; color:#0000ff;">fractorium.com</span></a></p></body></html>
Qt::RichText
diff --git a/Source/Fractorium/DoubleSpinBox.cpp b/Source/Fractorium/DoubleSpinBox.cpp
index 027ceed..578a717 100644
--- a/Source/Fractorium/DoubleSpinBox.cpp
+++ b/Source/Fractorium/DoubleSpinBox.cpp
@@ -245,8 +245,14 @@ bool DoubleSpinBox::eventFilter(QObject* o, QEvent* e)
setValue(value() - (ctrl ? m_Step * 10 : m_Step));
}
}
+
+ return true;
}
}
+ else if (dynamic_cast(e))
+ {
+ return true;
+ }
}
return QDoubleSpinBox::eventFilter(o, e);
@@ -263,7 +269,7 @@ void DoubleSpinBox::keyPressEvent(QKeyEvent* ke)
bool shift = QGuiApplication::keyboardModifiers().testFlag(Qt::ShiftModifier);
bool ctrl = QGuiApplication::keyboardModifiers().testFlag(Qt::ControlModifier);
- if (ke->key() == Qt::Key_Plus || ke->key() == Qt::Key_Equal || ke->key() == Qt::Key_Up)
+ if (ke->key() == Qt::Key_Up)
{
if (shift)
{
@@ -275,8 +281,10 @@ void DoubleSpinBox::keyPressEvent(QKeyEvent* ke)
setSingleStep(m_Step);
setValue(value() + (ctrl ? m_Step * 10 : m_Step));
}
+
+ ke->accept();
}
- else if (ke->key() == Qt::Key_Minus || ke->key() == Qt::Key_Underscore || ke->key() == Qt::Key_Down)
+ else if (ke->key() == Qt::Key_Down)
{
if (shift)
{
@@ -288,6 +296,8 @@ void DoubleSpinBox::keyPressEvent(QKeyEvent* ke)
setSingleStep(m_Step);
setValue(value() - (ctrl ? m_Step * 10 : m_Step));
}
+
+ ke->accept();
}
else
QDoubleSpinBox::keyPressEvent(ke);
diff --git a/Source/Fractorium/Fractorium.cpp b/Source/Fractorium/Fractorium.cpp
index aef020e..8378971 100644
--- a/Source/Fractorium/Fractorium.cpp
+++ b/Source/Fractorium/Fractorium.cpp
@@ -398,37 +398,42 @@ bool Fractorium::eventFilter(QObject* o, QEvent* e)
}
else if (o == this)
{
- unsigned int index = combo->currentIndex();
+ auto focusedctrl = dynamic_cast(this->focusWidget());
- if (ke->key() == Qt::Key_Plus || ke->key() == Qt::Key_Equal)
+ if (!focusedctrl)//Doesn't seem to matter, but just to be safe.
{
- xfupcount++;
+ unsigned int index = combo->currentIndex();
- if (xfupcount >= 3)
+ if (ke->key() == Qt::Key_Plus || ke->key() == Qt::Key_Equal)
{
- xfupcount = 0;
- combo->setCurrentIndex((index + 1) % combo->count());
- //qDebug() << "global arrow plus key press: " << ke->key() << " " << o->metaObject()->className() << " " << o->objectName();
+ xfupcount++;
+
+ if (xfupcount >= 3)
+ {
+ xfupcount = 0;
+ combo->setCurrentIndex((index + 1) % combo->count());
+ //qDebug() << "global arrow plus key press: " << ke->key() << " " << o->metaObject()->className() << " " << o->objectName();
+ }
+
+ return true;
}
-
- return true;
- }
- else if (ke->key() == Qt::Key_Minus || ke->key() == Qt::Key_Underscore)
- {
- xfdncount++;
-
- if (xfdncount >= 3)
+ else if (ke->key() == Qt::Key_Minus || ke->key() == Qt::Key_Underscore)
{
- xfdncount = 0;
+ xfdncount++;
- if (index == 0)
- index = combo->count();
+ if (xfdncount >= 3)
+ {
+ xfdncount = 0;
- combo->setCurrentIndex((index - 1) % combo->count());
- //qDebug() << "global arrow minus key press: " << ke->key() << " " << o->metaObject()->className() << " " << o->objectName();
+ if (index == 0)
+ index = combo->count();
+
+ combo->setCurrentIndex((index - 1) % combo->count());
+ //qDebug() << "global arrow minus key press: " << ke->key() << " " << o->metaObject()->className() << " " << o->objectName();
+ }
+
+ return true;
}
-
- return true;
}
}
}
@@ -594,6 +599,7 @@ QStringList Fractorium::SetupOpenXmlDialog()
{
m_FileDialog = new QFileDialog(this);
m_FileDialog->setViewMode(QFileDialog::List);
+ m_FileDialog->setOption(QFileDialog::DontUseNativeDialog, true);
}
QStringList filenames;
@@ -642,6 +648,7 @@ QString Fractorium::SetupSaveXmlDialog(const QString& defaultFilename)
{
m_FileDialog = new QFileDialog(this);
m_FileDialog->setViewMode(QFileDialog::List);
+ m_FileDialog->setOption(QFileDialog::DontUseNativeDialog, true);
}
QString filename;
@@ -687,6 +694,7 @@ QString Fractorium::SetupSaveImageDialog(const QString& defaultFilename)
{
m_FileDialog = new QFileDialog(this);
m_FileDialog->setViewMode(QFileDialog::List);
+ m_FileDialog->setOption(QFileDialog::DontUseNativeDialog, true);
}
QString filename;
@@ -702,7 +710,6 @@ QString Fractorium::SetupSaveImageDialog(const QString& defaultFilename)
m_FileDialog->selectFile(defaultFilename);
m_FileDialog->setFileMode(QFileDialog::AnyFile);
m_FileDialog->setOption(QFileDialog::ShowDirsOnly, false);
- m_FileDialog->setOption(QFileDialog::DontUseNativeDialog, false);
#ifdef _WIN32
m_FileDialog->setNameFilter(".bmp;;.jpg;;.png;;.exr");
#else
@@ -738,6 +745,7 @@ QString Fractorium::SetupSaveFolderDialog()
{
m_FolderDialog = new QFileDialog(this);
m_FolderDialog->setViewMode(QFileDialog::List);
+ m_FolderDialog->setOption(QFileDialog::DontUseNativeDialog, true);
}
QString filename;
@@ -893,6 +901,7 @@ void Fractorium::SetTabOrders()
w = SetTabOrder(this, w, ui.PreRandomButton);
w = SetTabOrder(this, w, ui.ShowPreAffineCurrentRadio);
w = SetTabOrder(this, w, ui.ShowPreAffineAllRadio);
+ w = SetTabOrder(this, w, ui.SwapAffinesButton);
w = SetTabOrder(this, w, ui.PostAffineGroupBox);
w = SetTabOrder(this, w, m_PostX1Spin);
w = SetTabOrder(this, w, m_PostX2Spin);
diff --git a/Source/Fractorium/Fractorium.h b/Source/Fractorium/Fractorium.h
index a7f4faf..f86f930 100644
--- a/Source/Fractorium/Fractorium.h
+++ b/Source/Fractorium/Fractorium.h
@@ -286,6 +286,7 @@ public slots:
void OnCopyAffineButtonClicked(bool checked);
void OnPasteAffineButtonClicked(bool checked);
void OnRandomAffineButtonClicked(bool checked);
+ void OnSwapAffinesButtonClicked(bool checked);
void OnAffineGroupBoxToggled(bool on);
void OnAffineDrawAllCurrentRadioButtonToggled(bool checked);
diff --git a/Source/Fractorium/Fractorium.ui b/Source/Fractorium/Fractorium.ui
index 8762e33..05bdc6d 100644
--- a/Source/Fractorium/Fractorium.ui
+++ b/Source/Fractorium/Fractorium.ui
@@ -466,7 +466,7 @@
Geometry
- AlignHCenter|AlignTop
+ AlignCenter
@@ -547,7 +547,7 @@
Iteration
- AlignHCenter|AlignTop
+ AlignCenter
@@ -637,7 +637,7 @@
Color
- AlignHCenter|AlignTop
+ AlignCenter
@@ -734,7 +734,7 @@
Filter
- AlignHCenter|AlignTop
+ AlignCenter
@@ -1624,7 +1624,7 @@
Animation
- AlignHCenter|AlignTop
+ AlignCenter
@@ -3040,13 +3040,13 @@
- 58
+ 62
24
- 58
+ 62
24
@@ -3181,18 +3181,30 @@
Weight
+
+ AlignCenter
+
Name
+
+ AlignCenter
+
-
+
+
+
AlignLeading|AlignVCenter
-
+
+
+
AlignLeading|AlignVCenter
@@ -4684,6 +4696,16 @@
+ -
+
+
+ <html><head/><body><p>Swap the values of the pre and post affines</p></body></html>
+
+
+ Swap
+
+
+
-
diff --git a/Source/Fractorium/FractoriumCommon.h b/Source/Fractorium/FractoriumCommon.h
index 7bcba3c..ce8d84a 100644
--- a/Source/Fractorium/FractoriumCommon.h
+++ b/Source/Fractorium/FractoriumCommon.h
@@ -517,7 +517,10 @@ static QString BaseStyle()
"\tbackground-color: lightgray;\n"
"\tborder: none;\n"
"\tborder-bottom: 1px solid gray;\n"
- "\tpadding: 4px;\n"
+ "\tpadding-left: 5px;\n"
+ "\tpadding-right: 0px;\n"
+ "\tpadding-top: 0px;\n"
+ "\tpadding-bottom: 0px;\n"
"\tfont: 8pt \"MS Shell Dlg 2\";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/\n"
"}\n"
"\n"
@@ -527,7 +530,9 @@ static QString BaseStyle()
"\tbackground-color: lightgray;\n"
"\tborder: 0px solid darkgray;\n"
"\tborder-right: 1px solid gray;\n"
- "\tpadding: 4px;\n"
+ "\tpadding-top: 0px;\n"
+ "\tpadding-bottom: 0px;\n"
+ "\tpadding-left: 3px;\n"
"\tfont: 8pt \"MS Shell Dlg 2\";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/\n"
"}\n"
"\n"
@@ -537,7 +542,10 @@ static QString BaseStyle()
"\tbackground-color: rgb(53, 53, 53);\n"
"\tborder: 0px none darkgray;\n"
"\tborder-bottom: 1px solid rgb(53, 53, 53);\n"
- "\tpadding: 4px;\n"
+ "\tpadding-left: 5px;\n"
+ "\tpadding-right: 0px;\n"
+ "\tpadding-top: 0px;\n"
+ "\tpadding-bottom: 0px;\n"
"\tfont: 8pt \"MS Shell Dlg 2\";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/\n"
"}\n"
"\n"
@@ -547,7 +555,9 @@ static QString BaseStyle()
"\tbackground-color: rgb(53, 53, 53);\n"
"\tborder: 0px none darkgray;\n"
"\tborder-right: 0px solid rgb(53, 53, 53);\n"
- "\tpadding: 4px;\n"
+ "\tpadding-top: 0px;\n"
+ "\tpadding-bottom: 0px;\n"
+ "\tpadding-left: 3px;\n"
"\tfont: 8pt \"MS Shell Dlg 2\";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/\n"
"}\n"
;
diff --git a/Source/Fractorium/FractoriumEmberController.h b/Source/Fractorium/FractoriumEmberController.h
index e979326..e494818 100644
--- a/Source/Fractorium/FractoriumEmberController.h
+++ b/Source/Fractorium/FractoriumEmberController.h
@@ -198,6 +198,7 @@ public:
virtual void PasteXformsAffine(bool pre) { }
virtual void RandomXformsAffine(bool pre) { }
virtual void FillBothAffines() { }
+ virtual void SwapAffines() { }
double LockedScale() { return m_LockedScale; }
double LockedX() { return m_LockedX; }
double LockedY() { return m_LockedY; }
@@ -475,6 +476,7 @@ public:
virtual void PasteXformsAffine(bool pre) override;
virtual void RandomXformsAffine(bool pre) override;
virtual void FillBothAffines() override;
+ virtual void SwapAffines() override;
virtual void InitLockedScale() override;
void FillAffineWithXform(Xform* xform, bool pre);
void ChangeLockedScale(T value);
diff --git a/Source/Fractorium/FractoriumSettings.cpp b/Source/Fractorium/FractoriumSettings.cpp
index becf893..552733c 100644
--- a/Source/Fractorium/FractoriumSettings.cpp
+++ b/Source/Fractorium/FractoriumSettings.cpp
@@ -85,9 +85,20 @@ void FractoriumSettings::EnsureDefaults()
)
FinalExt("png");
- auto s = SaveFolder();
+ auto s = OpenFolder();
QDir dir(s);
+ if (s.isEmpty() || !dir.exists())
+ {
+ QStringList paths = QStandardPaths::standardLocations(QStandardPaths::DesktopLocation);
+
+ if (!paths.empty())
+ OpenFolder(paths[0]);
+ }
+
+ s = SaveFolder();
+ dir = QDir(s);
+
if (s.isEmpty() || !dir.exists())
{
QStringList paths = QStandardPaths::standardLocations(QStandardPaths::DesktopLocation);
diff --git a/Source/Fractorium/FractoriumXformsAffine.cpp b/Source/Fractorium/FractoriumXformsAffine.cpp
index b4bb07a..6a752c0 100644
--- a/Source/Fractorium/FractoriumXformsAffine.cpp
+++ b/Source/Fractorium/FractoriumXformsAffine.cpp
@@ -95,6 +95,7 @@ void Fractorium::InitXformsAffineUI()
connect(ui.PostRandomButton, SIGNAL(clicked(bool)), this, SLOT(OnRandomAffineButtonClicked(bool)), Qt::QueuedConnection);
connect(ui.PreAffineGroupBox, SIGNAL(toggled(bool)), this, SLOT(OnAffineGroupBoxToggled(bool)), Qt::QueuedConnection);
connect(ui.PostAffineGroupBox, SIGNAL(toggled(bool)), this, SLOT(OnAffineGroupBoxToggled(bool)), Qt::QueuedConnection);
+ connect(ui.SwapAffinesButton, SIGNAL(clicked(bool)), this, SLOT(OnSwapAffinesButtonClicked(bool)), Qt::QueuedConnection);
connect(ui.ShowPreAffineAllRadio, SIGNAL(toggled(bool)), this, SLOT(OnAffineDrawAllCurrentRadioButtonToggled(bool)), Qt::QueuedConnection);
connect(ui.ShowPreAffineCurrentRadio, SIGNAL(toggled(bool)), this, SLOT(OnAffineDrawAllCurrentRadioButtonToggled(bool)), Qt::QueuedConnection);
connect(ui.ShowPreAffineSelectedRadio, SIGNAL(toggled(bool)), this, SLOT(OnAffineDrawAllCurrentRadioButtonToggled(bool)), Qt::QueuedConnection);
@@ -704,6 +705,27 @@ void Fractorium::OnAffineGroupBoxToggled(bool on)
ui.GLDisplay->update();
}
+///
+/// Swap the values of the pre and post affines for the selected xforms.
+///
+template
+void FractoriumEmberController::SwapAffines()
+{
+ UpdateXform([&](Xform* xform, size_t xfindex, size_t selIndex)
+ {
+ auto pre = xform->m_Affine;
+ auto post = xform->m_Post;
+ xform->m_Affine = post;
+ xform->m_Post = pre;
+ }, eXformUpdate::UPDATE_SELECTED);
+ FillBothAffines();
+}
+
+void Fractorium::OnSwapAffinesButtonClicked(bool checked)
+{
+ m_Controller->SwapAffines();
+}
+
///
/// Trigger a redraw which will show all, or only the current, circle affine transforms
/// based on which radio buttons are selected.
diff --git a/Source/Fractorium/OptionsDialog.ui b/Source/Fractorium/OptionsDialog.ui
index 9f6d7ce..222d0ce 100644
--- a/Source/Fractorium/OptionsDialog.ui
+++ b/Source/Fractorium/OptionsDialog.ui
@@ -224,16 +224,25 @@
Use
+
+ AlignCenter
+
Primary
+
+ AlignCenter
+
Device
+
+ AlignCenter
+
diff --git a/Source/Fractorium/PaletteEditor/PaletteEditor.cpp b/Source/Fractorium/PaletteEditor/PaletteEditor.cpp
index 0a430d1..4aa8617 100644
--- a/Source/Fractorium/PaletteEditor/PaletteEditor.cpp
+++ b/Source/Fractorium/PaletteEditor/PaletteEditor.cpp
@@ -510,6 +510,7 @@ QStringList PaletteEditor::SetupOpenImagesDialog()
m_FileDialog->setViewMode(QFileDialog::List);
m_FileDialog->setFileMode(QFileDialog::ExistingFile);
m_FileDialog->setAcceptMode(QFileDialog::AcceptOpen);
+ m_FileDialog->setOption(QFileDialog::DontUseNativeDialog, true);
#ifdef _WIN32
m_FileDialog->setNameFilter("Image Files (*.png *.jpg *.bmp)");
#else
diff --git a/Source/Fractorium/QssDialog.cpp b/Source/Fractorium/QssDialog.cpp
index 01ba933..57bb08c 100644
--- a/Source/Fractorium/QssDialog.cpp
+++ b/Source/Fractorium/QssDialog.cpp
@@ -636,8 +636,9 @@ void QssDialog::SetupFileDialog()
if (!m_FileDialog)
{
m_FileDialog = new QFileDialog(this);
- m_FileDialog->setDirectory(m_Parent->m_SettingsPath);
m_FileDialog->setViewMode(QFileDialog::List);
+ m_FileDialog->setDirectory(m_Parent->m_SettingsPath);
+ m_FileDialog->setOption(QFileDialog::DontUseNativeDialog, true);
}
#endif
diff --git a/Source/Fractorium/SpinBox.cpp b/Source/Fractorium/SpinBox.cpp
index 838b4ae..90387a8 100644
--- a/Source/Fractorium/SpinBox.cpp
+++ b/Source/Fractorium/SpinBox.cpp
@@ -242,6 +242,10 @@ bool SpinBox::eventFilter(QObject* o, QEvent* e)
}
}
}
+ else if (dynamic_cast(e))
+ {
+ return true;
+ }
}
}
@@ -259,7 +263,7 @@ void SpinBox::keyPressEvent(QKeyEvent* ke)
bool shift = QGuiApplication::keyboardModifiers().testFlag(Qt::ShiftModifier);
bool ctrl = QGuiApplication::keyboardModifiers().testFlag(Qt::ControlModifier);
- if (ke->key() == Qt::Key_Plus || ke->key() == Qt::Key_Equal || ke->key() == Qt::Key_Up)
+ if (ke->key() == Qt::Key_Up)
{
if (shift)
{
@@ -271,8 +275,10 @@ void SpinBox::keyPressEvent(QKeyEvent* ke)
setSingleStep(m_Step);
setValue(value() + (ctrl ? m_Step * 10 : m_Step));
}
+
+ ke->accept();
}
- else if (ke->key() == Qt::Key_Minus || ke->key() == Qt::Key_Underscore || ke->key() == Qt::Key_Down)
+ else if (ke->key() == Qt::Key_Down)
{
if (shift)
{
@@ -284,6 +290,8 @@ void SpinBox::keyPressEvent(QKeyEvent* ke)
setSingleStep(m_Step);
setValue(value() - (ctrl ? m_Step * 10 : m_Step));
}
+
+ ke->accept();
}
else
QSpinBox::keyPressEvent(ke);
diff --git a/debian/changelog b/debian/changelog
index 1ea63ee..d5f46f8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+fractorium (1.0.0.12-0ubuntu1) cosmic; urgency=low
+
+ * release 1.0.0.12
+
+ -- Matt Feemster Sun, 30 Sep 2018 10:35:26 -0700
+
fractorium (1.0.0.11d-0ubuntu1) cosmic; urgency=low
* release 1.0.0.11
diff --git a/makedeps.bat b/makedeps.bat
index f34090b..f00f3f4 100644
--- a/makedeps.bat
+++ b/makedeps.bat
@@ -14,7 +14,7 @@ REM libjpeg
copy fractorium\Builds\MSVC\WIN32.MAK libjpeg
cd libjpeg
nmake /f makefile.vc setup-v15 CPU=i386
-nmake nodebug=1 /f makefile.vc all CPU=i386
+nmake nodebug=1 /f makefile.vc libjpeg.lib CPU=i386
copy libjpeg.lib ..\fractorium\Deps
cd ..