mirror of
https://bitbucket.org/mfeemster/fractorium.git
synced 2025-01-21 21:20:07 -05:00
1.0.0.14 Release
--Bug fixes -File saving was broken. --Code changes -File saving and opening dialogs were shared between a single object which was causing trouble. Make them all use their own objects.
This commit is contained in:
parent
6d548a0023
commit
2089363bb0
@ -2,6 +2,9 @@
|
|||||||
--Bug fixes
|
--Bug fixes
|
||||||
-File saving was broken.
|
-File saving was broken.
|
||||||
|
|
||||||
|
--Code changes
|
||||||
|
-File saving and opening dialogs were shared between a single object which was causing trouble. Make them all use their own objects.
|
||||||
|
|
||||||
1.0.0.13 10/9/2018
|
1.0.0.13 10/9/2018
|
||||||
--User changes
|
--User changes
|
||||||
-Disable Start button in final render dialog when Pause is clicked.
|
-Disable Start button in final render dialog when Pause is clicked.
|
||||||
|
@ -595,26 +595,25 @@ QStringList Fractorium::SetupOpenXmlDialog()
|
|||||||
#ifndef __APPLE__
|
#ifndef __APPLE__
|
||||||
|
|
||||||
//Lazy instantiate since it takes a long time.
|
//Lazy instantiate since it takes a long time.
|
||||||
if (!m_FileDialog)
|
if (!m_OpenFileDialog)
|
||||||
{
|
{
|
||||||
m_FileDialog = new QFileDialog(this);
|
m_OpenFileDialog = new QFileDialog(this);
|
||||||
m_FileDialog->setViewMode(QFileDialog::List);
|
m_OpenFileDialog->setViewMode(QFileDialog::List);
|
||||||
m_FileDialog->setOption(QFileDialog::DontUseNativeDialog, true);
|
m_OpenFileDialog->setOption(QFileDialog::DontUseNativeDialog, true);
|
||||||
|
connect(m_OpenFileDialog, &QFileDialog::filterSelected, [&](const QString & filter) { m_Settings->OpenXmlExt(filter); });
|
||||||
|
m_OpenFileDialog->setFileMode(QFileDialog::ExistingFiles);
|
||||||
|
m_OpenFileDialog->setAcceptMode(QFileDialog::AcceptOpen);
|
||||||
|
m_OpenFileDialog->setNameFilter("flam3 (*.flam3);;flame (*.flame);;xml (*.xml)");
|
||||||
|
m_OpenFileDialog->setWindowTitle("Open Flame");
|
||||||
}
|
}
|
||||||
|
|
||||||
QStringList filenames;
|
QStringList filenames;
|
||||||
m_FileDialog->disconnect(SIGNAL(filterSelected(const QString&)));
|
m_OpenFileDialog->setDirectory(m_Settings->OpenFolder());
|
||||||
connect(m_FileDialog, &QFileDialog::filterSelected, [&](const QString & filter) { m_Settings->OpenXmlExt(filter); });
|
m_OpenFileDialog->selectNameFilter(m_Settings->OpenXmlExt());
|
||||||
m_FileDialog->setFileMode(QFileDialog::ExistingFiles);
|
|
||||||
m_FileDialog->setAcceptMode(QFileDialog::AcceptOpen);
|
|
||||||
m_FileDialog->setNameFilter("Flam3 (*.flam3);;Flame (*.flame);;Xml (*.xml)");
|
|
||||||
m_FileDialog->setWindowTitle("Open Flame");
|
|
||||||
m_FileDialog->setDirectory(m_Settings->OpenFolder());
|
|
||||||
m_FileDialog->selectNameFilter(m_Settings->OpenXmlExt());
|
|
||||||
|
|
||||||
if (m_FileDialog->exec() == QDialog::Accepted)
|
if (m_OpenFileDialog->exec() == QDialog::Accepted)
|
||||||
{
|
{
|
||||||
filenames = m_FileDialog->selectedFiles();
|
filenames = m_OpenFileDialog->selectedFiles();
|
||||||
|
|
||||||
if (!filenames.empty())
|
if (!filenames.empty())
|
||||||
m_Settings->OpenFolder(QFileInfo(filenames[0]).canonicalPath());
|
m_Settings->OpenFolder(QFileInfo(filenames[0]).canonicalPath());
|
||||||
@ -622,7 +621,7 @@ QStringList Fractorium::SetupOpenXmlDialog()
|
|||||||
|
|
||||||
#else
|
#else
|
||||||
auto defaultFilter(m_Settings->OpenXmlExt());
|
auto defaultFilter(m_Settings->OpenXmlExt());
|
||||||
auto filenames = QFileDialog::getOpenFileNames(this, tr("Open Flame"), m_Settings->OpenFolder(), tr("Flam3(*.flam3);; Flame(*.flame);; Xml(*.xml)"), &defaultFilter);
|
auto filenames = QFileDialog::getOpenFileNames(this, tr("Open Flame"), m_Settings->OpenFolder(), tr("flam3(*.flam3);; flame(*.flame);; fml(*.xml)"), &defaultFilter);
|
||||||
m_Settings->OpenXmlExt(defaultFilter);
|
m_Settings->OpenXmlExt(defaultFilter);
|
||||||
|
|
||||||
if (!filenames.empty())
|
if (!filenames.empty())
|
||||||
@ -644,41 +643,41 @@ QString Fractorium::SetupSaveXmlDialog(const QString& defaultFilename)
|
|||||||
|
|
||||||
//Lazy instantiate since it takes a long time.
|
//Lazy instantiate since it takes a long time.
|
||||||
//QS
|
//QS
|
||||||
if (!m_FileDialog)
|
if (!m_SaveFileDialog)
|
||||||
{
|
{
|
||||||
m_FileDialog = new QFileDialog(this);
|
m_SaveFileDialog = new QFileDialog(this);
|
||||||
m_FileDialog->setViewMode(QFileDialog::List);
|
m_SaveFileDialog->setViewMode(QFileDialog::List);
|
||||||
m_FileDialog->setOption(QFileDialog::DontUseNativeDialog, true);
|
m_SaveFileDialog->setFileMode(QFileDialog::FileMode::AnyFile);
|
||||||
|
m_SaveFileDialog->setOption(QFileDialog::DontUseNativeDialog, true);
|
||||||
|
//This must be done once here because clears various internal states which allow the file text to be properly set.
|
||||||
|
//This is most likely a bug in QFileDialog.
|
||||||
|
m_SaveFileDialog->setAcceptMode(QFileDialog::AcceptSave);
|
||||||
|
connect(m_SaveFileDialog, &QFileDialog::filterSelected, [&](const QString & filter)
|
||||||
|
{
|
||||||
|
m_Settings->SaveXmlExt(filter);
|
||||||
|
m_SaveFileDialog->setDefaultSuffix(filter);
|
||||||
|
});
|
||||||
|
m_SaveFileDialog->setNameFilter("flam3 (*.flam3);;flame (*.flame);;xml (*.xml)");
|
||||||
|
m_SaveFileDialog->setWindowTitle("Save flame as xml");
|
||||||
}
|
}
|
||||||
|
|
||||||
QString filename;
|
QString filename;
|
||||||
m_FileDialog->disconnect(SIGNAL(filterSelected(const QString&)));
|
m_SaveFileDialog->selectFile(defaultFilename);
|
||||||
connect(m_FileDialog, &QFileDialog::filterSelected, [&](const QString & filter)
|
m_SaveFileDialog->setDirectory(m_Settings->SaveFolder());
|
||||||
{
|
m_SaveFileDialog->selectNameFilter(m_Settings->SaveXmlExt());
|
||||||
m_Settings->SaveXmlExt(filter);
|
m_SaveFileDialog->setDefaultSuffix(m_Settings->SaveXmlExt());
|
||||||
m_FileDialog->setDefaultSuffix(filter);
|
|
||||||
});
|
|
||||||
//This must come first because it clears various internal states which allow the file text to be properly set.
|
|
||||||
//This is most likely a bug in QFileDialog.
|
|
||||||
m_FileDialog->setAcceptMode(QFileDialog::AcceptSave);
|
|
||||||
m_FileDialog->selectFile(defaultFilename);
|
|
||||||
m_FileDialog->setNameFilter("flam3 (*.flam3);;flame (*.flame);;xml (*.xml)");
|
|
||||||
m_FileDialog->setWindowTitle("Save flame as xml");
|
|
||||||
m_FileDialog->setDirectory(m_Settings->SaveFolder());
|
|
||||||
m_FileDialog->selectNameFilter(m_Settings->SaveXmlExt());
|
|
||||||
m_FileDialog->setDefaultSuffix(m_Settings->SaveXmlExt());
|
|
||||||
|
|
||||||
if (m_FileDialog->exec() == QDialog::Accepted)
|
if (m_SaveFileDialog->exec() == QDialog::Accepted)
|
||||||
{
|
{
|
||||||
filename = m_FileDialog->selectedFiles().value(0);
|
filename = m_SaveFileDialog->selectedFiles().value(0);
|
||||||
auto filenames = filename.split(" (*");//This is a total hack, but Qt has the unfortunate behavior of including the description with the extension. It's probably a bug.
|
auto filenames = filename.split(" (*");//This is a total hack, but Qt has the unfortunate behavior of including the description with the extension. It's probably a bug.
|
||||||
filename = filenames[0];
|
filename = filenames[0];
|
||||||
m_Settings->SaveXmlExt(m_FileDialog->selectedNameFilter());
|
m_Settings->SaveXmlExt(m_SaveFileDialog->selectedNameFilter());
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
auto defaultFilter(m_Settings->SaveXmlExt());
|
auto defaultFilter(m_Settings->SaveXmlExt());
|
||||||
auto filename = QFileDialog::getSaveFileName(this, tr("Save flame as xml"), m_Settings->SaveFolder() + "/" + defaultFilename, tr("Flam3 (*.flam3);;Flame (*.flame);;Xml (*.xml)"), &defaultFilter);
|
auto filename = QFileDialog::getSaveFileName(this, tr("Save flame as xml"), m_Settings->SaveFolder() + "/" + defaultFilename, tr("flam3 (*.flam3);;flame (*.flame);;xml (*.xml)"), &defaultFilter);
|
||||||
m_Settings->SaveXmlExt(defaultFilter);
|
m_Settings->SaveXmlExt(defaultFilter);
|
||||||
#endif
|
#endif
|
||||||
return filename;
|
return filename;
|
||||||
@ -695,38 +694,36 @@ QString Fractorium::SetupSaveImageDialog(const QString& defaultFilename)
|
|||||||
#ifndef __APPLE__
|
#ifndef __APPLE__
|
||||||
|
|
||||||
//Lazy instantiate since it takes a long time.
|
//Lazy instantiate since it takes a long time.
|
||||||
if (!m_FileDialog)
|
if (!m_SaveImageDialog)
|
||||||
{
|
{
|
||||||
m_FileDialog = new QFileDialog(this);
|
m_SaveImageDialog = new QFileDialog(this);
|
||||||
m_FileDialog->setViewMode(QFileDialog::List);
|
m_SaveImageDialog->setViewMode(QFileDialog::List);
|
||||||
m_FileDialog->setOption(QFileDialog::DontUseNativeDialog, true);
|
m_SaveImageDialog->setFileMode(QFileDialog::FileMode::AnyFile);
|
||||||
|
m_SaveImageDialog->setOption(QFileDialog::DontUseNativeDialog, true);
|
||||||
|
//This must be done once here because clears various internal states which allow the file text to be properly set.
|
||||||
|
//This is most likely a bug in QFileDialog.
|
||||||
|
m_SaveImageDialog->setAcceptMode(QFileDialog::AcceptSave);
|
||||||
|
connect(m_SaveImageDialog, &QFileDialog::filterSelected, [&](const QString & filter)
|
||||||
|
{
|
||||||
|
m_Settings->SaveImageExt(filter);
|
||||||
|
m_SaveImageDialog->setDefaultSuffix(filter);
|
||||||
|
});
|
||||||
|
#ifdef _WIN32
|
||||||
|
m_SaveImageDialog->setNameFilter(".bmp;;.jpg;;.png;;.exr");
|
||||||
|
#else
|
||||||
|
m_SaveImageDialog->setNameFilter(".jpg;;.png;;.exr");
|
||||||
|
#endif
|
||||||
|
m_SaveImageDialog->setWindowTitle("Save image");
|
||||||
}
|
}
|
||||||
|
|
||||||
QString filename;
|
QString filename;
|
||||||
m_FileDialog->disconnect(SIGNAL(filterSelected(const QString&)));
|
m_SaveImageDialog->selectFile(defaultFilename);
|
||||||
connect(m_FileDialog, &QFileDialog::filterSelected, [&](const QString & filter)
|
m_SaveImageDialog->setDirectory(m_Settings->SaveFolder());
|
||||||
{
|
m_SaveImageDialog->selectNameFilter(m_Settings->SaveImageExt());
|
||||||
m_Settings->SaveImageExt(filter);
|
m_SaveImageDialog->setDefaultSuffix(m_Settings->SaveImageExt());
|
||||||
m_FileDialog->setDefaultSuffix(filter);
|
|
||||||
});
|
|
||||||
//This must come first because it clears various internal states which allow the file text to be properly set.
|
|
||||||
//This is most likely a bug in QFileDialog.
|
|
||||||
m_FileDialog->setAcceptMode(QFileDialog::AcceptSave);
|
|
||||||
m_FileDialog->selectFile(defaultFilename);
|
|
||||||
m_FileDialog->setFileMode(QFileDialog::AnyFile);
|
|
||||||
m_FileDialog->setOption(QFileDialog::ShowDirsOnly, false);
|
|
||||||
#ifdef _WIN32
|
|
||||||
m_FileDialog->setNameFilter(".bmp;;.jpg;;.png;;.exr");
|
|
||||||
#else
|
|
||||||
m_FileDialog->setNameFilter(".jpg;;.png;;.exr");
|
|
||||||
#endif
|
|
||||||
m_FileDialog->setWindowTitle("Save image");
|
|
||||||
m_FileDialog->setDirectory(m_Settings->SaveFolder());
|
|
||||||
m_FileDialog->selectNameFilter(m_Settings->SaveImageExt());
|
|
||||||
m_FileDialog->setDefaultSuffix(m_Settings->SaveImageExt());
|
|
||||||
|
|
||||||
if (m_FileDialog->exec() == QDialog::Accepted)
|
if (m_SaveImageDialog->exec() == QDialog::Accepted)
|
||||||
filename = m_FileDialog->selectedFiles().value(0);
|
filename = m_SaveImageDialog->selectedFiles().value(0);
|
||||||
|
|
||||||
#else
|
#else
|
||||||
auto defaultFilter(m_Settings->SaveImageExt());
|
auto defaultFilter(m_Settings->SaveImageExt());
|
||||||
@ -751,17 +748,16 @@ QString Fractorium::SetupSaveFolderDialog()
|
|||||||
m_FolderDialog = new QFileDialog(this);
|
m_FolderDialog = new QFileDialog(this);
|
||||||
m_FolderDialog->setViewMode(QFileDialog::List);
|
m_FolderDialog->setViewMode(QFileDialog::List);
|
||||||
m_FolderDialog->setOption(QFileDialog::DontUseNativeDialog, true);
|
m_FolderDialog->setOption(QFileDialog::DontUseNativeDialog, true);
|
||||||
}
|
|
||||||
|
|
||||||
QString filename;
|
|
||||||
//This must come first because it clears various internal states which allow the file text to be properly set.
|
//This must come first because it clears various internal states which allow the file text to be properly set.
|
||||||
//This is most likely a bug in QFileDialog.
|
//This is most likely a bug in QFileDialog.
|
||||||
m_FolderDialog->setAcceptMode(QFileDialog::AcceptSave);
|
m_FolderDialog->setAcceptMode(QFileDialog::AcceptSave);
|
||||||
m_FolderDialog->setFileMode(QFileDialog::Directory);
|
m_FolderDialog->setFileMode(QFileDialog::Directory);
|
||||||
m_FolderDialog->setOption(QFileDialog::ShowDirsOnly, true);
|
m_FolderDialog->setOption(QFileDialog::ShowDirsOnly, true);
|
||||||
m_FolderDialog->setOption(QFileDialog::DontUseNativeDialog, true);
|
|
||||||
m_FolderDialog->selectFile("");
|
|
||||||
m_FolderDialog->setWindowTitle("Save to folder");
|
m_FolderDialog->setWindowTitle("Save to folder");
|
||||||
|
}
|
||||||
|
|
||||||
|
QString filename;
|
||||||
|
m_FolderDialog->selectFile("");
|
||||||
m_FolderDialog->setDirectory(m_Settings->SaveFolder());
|
m_FolderDialog->setDirectory(m_Settings->SaveFolder());
|
||||||
|
|
||||||
if (m_FolderDialog->exec() == QDialog::Accepted)
|
if (m_FolderDialog->exec() == QDialog::Accepted)
|
||||||
|
@ -554,7 +554,9 @@ private:
|
|||||||
|
|
||||||
//Files.
|
//Files.
|
||||||
#ifndef __APPLE__
|
#ifndef __APPLE__
|
||||||
QFileDialog* m_FileDialog = nullptr;
|
QFileDialog* m_SaveFileDialog = nullptr;
|
||||||
|
QFileDialog* m_SaveImageDialog = nullptr;
|
||||||
|
QFileDialog* m_OpenFileDialog = nullptr;
|
||||||
QFileDialog* m_FolderDialog = nullptr;
|
QFileDialog* m_FolderDialog = nullptr;
|
||||||
#endif
|
#endif
|
||||||
QssDialog* m_QssDialog = nullptr;
|
QssDialog* m_QssDialog = nullptr;
|
||||||
|
Loading…
Reference in New Issue
Block a user