From 49017137f81ba32128bf61541054ff8fb94a009e Mon Sep 17 00:00:00 2001 From: Michel Mastriani Date: Thu, 5 Mar 2020 21:39:17 -0300 Subject: [PATCH] OpenExamples added Fractorium.cpp Code --- Source/Fractorium/Fractorium.cpp | 44 ++++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 10 deletions(-) diff --git a/Source/Fractorium/Fractorium.cpp b/Source/Fractorium/Fractorium.cpp index 42ec445..97d8900 100644 --- a/Source/Fractorium/Fractorium.cpp +++ b/Source/Fractorium/Fractorium.cpp @@ -797,8 +797,9 @@ void Fractorium::SetFixedTableHeader(QHeaderView* header, QHeaderView::ResizeMod /// Setup and show the open XML dialog. /// This will perform lazy instantiation. /// +/// true to open files in examples folder /// The list of filenames selected -QStringList Fractorium::SetupOpenXmlDialog() +QStringList Fractorium::SetupOpenXmlDialog(bool openExamples) { #ifndef __APPLE__ @@ -817,24 +818,47 @@ QStringList Fractorium::SetupOpenXmlDialog() } QStringList filenames; - m_OpenFileDialog->setDirectory(m_Settings->OpenFolder()); - m_OpenFileDialog->selectNameFilter(m_Settings->OpenXmlExt()); + + if(openExamples) + { + m_OpenFileDialog->selectFile("*"); + m_OpenFileDialog->setDirectory(QCoreApplication::applicationDirPath() + "/FlameExamples"); + m_OpenFileDialog->selectNameFilter("flame (*.flame)"); + } + else + { + m_OpenFileDialog->setDirectory(m_Settings->OpenFolder()); + m_OpenFileDialog->selectNameFilter(m_Settings->OpenXmlExt()); + } if (m_OpenFileDialog->exec() == QDialog::Accepted) { filenames = m_OpenFileDialog->selectedFiles(); - if (!filenames.empty()) + if (!openExamples && !filenames.empty()) m_Settings->OpenFolder(QFileInfo(filenames[0]).canonicalPath()); - } + else + m_OpenFileDialog->selectFile("*"); + } #else - auto defaultFilter(m_Settings->OpenXmlExt()); - auto filenames = QFileDialog::getOpenFileNames(this, tr("Open Flame"), m_Settings->OpenFolder(), tr("flam3(*.flam3);; flame(*.flame);; xml(*.xml);; chaos (*.chaos)"), &defaultFilter); - m_Settings->OpenXmlExt(defaultFilter); + QString defaultFilter; + QStringList filenames; - if (!filenames.empty()) - m_Settings->OpenFolder(QFileInfo(filenames[0]).canonicalPath()); + if(openExamples) + { + defaultFilter = "flame (*.flame)"; + filenames = QFileDialog::getOpenFileNames(this, tr("Open Flame"), QCoreApplication::applicationDirPath() + "/FlameExamples", tr("flame(*.flame)"), &defaultFilter); + } + else + { + defaultFilter = m_Settings->OpenXmlExt(); + filenames = QFileDialog::getOpenFileNames(this, tr("Open Flame"), m_Settings->OpenFolder(), tr("flam3(*.flam3);; flame(*.flame);; xml(*.xml);; chaos (*.chaos)"), &defaultFilter); + m_Settings->OpenXmlExt(defaultFilter); + + if (!filenames.empty()) + m_Settings->OpenFolder(QFileInfo(filenames[0]).canonicalPath()); + } #endif return filenames;