BornAgain
1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Handles activity related to opening/save projects. More...
Classes | |
struct | ProjectManagerImpl |
Public Slots | |
void | clearRecentProjects () |
Clears list of recent projects. More... | |
bool | closeCurrentProject () |
Processes close current project request. More... | |
void | newProject () |
Processes new project request (close old project, rise dialog for project name, create project). More... | |
void | onDocumentModified () |
Updates title of main window when the project was modified. More... | |
void | openProject (QString fileName="") |
Opens existing project. If fileName is empty, will popup file selection dialog. More... | |
bool | saveProject (QString projectFileName="") |
Processes save project request. More... | |
bool | saveProjectAs () |
Processes 'save project as' request. More... | |
void | setAutosaveEnabled (bool value) |
Signals | |
void | modified () |
Public Member Functions | |
ProjectManager (MainWindow *parent) | |
virtual | ~ProjectManager () |
ProjectDocument * | document () |
bool | isAutosaveEnabled () const |
QString | projectDir () const |
Returns name of the current project directory. More... | |
void | readSettings () |
Reads settings of ProjectManager from global settings. More... | |
QString | recentlyUsedImportFilter1D () const |
QString | recentlyUsedImportFilter2D () const |
QStringList | recentProjects () |
Returns list of recent projects, validates if projects still exists on disk. More... | |
void | setImportDir (const QString &dirname) |
Sets user import directory in system settings. More... | |
void | setImportDirFromFilePath (const QString &filePath) |
Sets user import directory in system settings. More... | |
void | setRecentlyUsedImportFilter1D (const QString &filter) |
void | setRecentlyUsedImportFilter2D (const QString &filter) |
QString | userExportDir () const |
Returns directory name suitable for saving plots. More... | |
QString | userImportDir () const |
Returns directory name which was used by the user to import files. More... | |
void | writeSettings () |
Saves settings of ProjectManager in global settings. More... | |
Private Member Functions | |
QString | acquireProjectFileName (bool forSaveAs) |
Returns project file name from dialog. Returns empty string if dialog was canceled. More... | |
void | addToRecentProjects () |
Add name of the current project to the name of recent projects. More... | |
void | createNewProject () |
Calls dialog window to define project path and name. More... | |
void | deleteCurrentProject () |
void | loadProject (const QString &projectFileName) |
Load project data from file name. If autosave info exists, opens dialog for project restore. More... | |
bool | restoreProjectDialog (const QString &projectFileName) |
Rises dialog if the project should be restored from autosave. Returns true, if yes. More... | |
void | riseProjectLoadFailedDialog () |
void | riseProjectLoadWarningDialog () |
QString | untitledProjectName () |
Will return 'Untitled' if the directory with such name doesn't exist in project path. More... | |
QString | workingDirectory () |
Returns default project path. More... | |
Private Attributes | |
QString | m_importDirectory |
QString | m_importFilter1D |
Recently used import filter for 1D files. More... | |
QString | m_importFilter2D |
Recently used import filter for 2D files. More... | |
MainWindow * | m_mainWindow |
MessageService * | m_messageService |
ProjectDocument * | m_project_document |
Name of directory where project directory was created. More... | |
QStringList | m_recentProjects |
SaveService * | m_saveService |
QString | m_workingDirectory |
Name of directory from there user prefer to import files. More... | |
Handles activity related to opening/save projects.
Definition at line 28 of file projectmanager.h.
ProjectManager::ProjectManager | ( | MainWindow * | parent | ) |
Definition at line 45 of file projectmanager.cpp.
References createNewProject(), and AppSvc::subscribe().
|
virtual |
Definition at line 56 of file projectmanager.cpp.
References m_messageService, m_project_document, and AppSvc::unsubscribe().
|
private |
Returns project file name from dialog. Returns empty string if dialog was canceled.
Definition at line 395 of file projectmanager.cpp.
References NewProjectDialog::CREATE, NewProjectDialog::getProjectFileName(), NewProjectDialog::getWorkingDirectory(), m_mainWindow, m_workingDirectory, NewProjectDialog::SAVE, untitledProjectName(), and workingDirectory().
Referenced by newProject(), saveProject(), and saveProjectAs().
|
private |
Add name of the current project to the name of recent projects.
Definition at line 411 of file projectmanager.cpp.
References m_project_document, m_recentProjects, Constants::MAX_RECENT_PROJECTS, and ProjectDocument::projectFileName().
Referenced by openProject(), and saveProject().
|
slot |
Clears list of recent projects.
Definition at line 213 of file projectmanager.cpp.
References m_recentProjects, and modified().
Referenced by ActionManager::onAboutToShowFileMenu().
|
slot |
Processes close current project request.
Call save/discard/cancel dialog, if necessary. Returns false if saving was canceled.
Definition at line 236 of file projectmanager.cpp.
References deleteCurrentProject(), ProjectDocument::isModified(), m_project_document, and saveProject().
Referenced by MainWindow::closeEvent(), newProject(), and openProject().
|
private |
Calls dialog window to define project path and name.
Definition at line 349 of file projectmanager.cpp.
References MessageService::clear(), m_mainWindow, m_messageService, m_project_document, m_saveService, MainWindow::models(), ProjectDocument::modified(), onDocumentModified(), ProjectDocument::setApplicationModels(), SaveService::setDocument(), ProjectDocument::setLogger(), and ProjectDocument::setProjectName().
Referenced by ProjectManager(), newProject(), and openProject().
|
private |
Definition at line 366 of file projectmanager.cpp.
References m_mainWindow, m_project_document, m_saveService, MainWindow::models(), ApplicationModels::resetModels(), and SaveService::stopService().
Referenced by closeCurrentProject(), and openProject().
ProjectDocument * ProjectManager::document | ( | ) |
Definition at line 107 of file projectmanager.cpp.
References m_project_document.
bool ProjectManager::isAutosaveEnabled | ( | ) | const |
Definition at line 188 of file projectmanager.cpp.
References SaveService::isAutosaveEnabled(), and m_saveService.
Referenced by ActionManager::onAboutToShowSettingsMenu().
|
private |
Load project data from file name. If autosave info exists, opens dialog for project restore.
Definition at line 377 of file projectmanager.cpp.
References ProjectUtils::autosaveName(), ProjectUtils::hasAutosavedData(), ProjectDocument::load(), m_project_document, m_saveService, restoreProjectDialog(), ProjectDocument::setModified(), and ProjectDocument::setProjectFileName().
Referenced by openProject().
|
signal |
Referenced by WelcomeView::WelcomeView(), clearRecentProjects(), openProject(), and saveProject().
|
slot |
Processes new project request (close old project, rise dialog for project name, create project).
Definition at line 221 of file projectmanager.cpp.
References acquireProjectFileName(), closeCurrentProject(), createNewProject(), and saveProject().
Referenced by WelcomeView::WelcomeView(), and ActionManager::createActions().
|
slot |
Updates title of main window when the project was modified.
Definition at line 202 of file projectmanager.cpp.
References ProjectDocument::isModified(), m_mainWindow, m_project_document, and ProjectDocument::projectName().
Referenced by createNewProject().
|
slot |
Opens existing project. If fileName is empty, will popup file selection dialog.
Definition at line 317 of file projectmanager.cpp.
References addToRecentProjects(), closeCurrentProject(), createNewProject(), deleteCurrentProject(), ProjectDocument::hasErrors(), ProjectDocument::hasWarnings(), ProjectDocument::isReady(), loadProject(), m_mainWindow, m_project_document, modified(), riseProjectLoadFailedDialog(), riseProjectLoadWarningDialog(), and workingDirectory().
Referenced by WelcomeView::WelcomeView(), ActionManager::createActions(), WelcomeView::generateRecentProjectList(), and MainWindow::openRecentProject().
QString ProjectManager::projectDir | ( | ) | const |
Returns name of the current project directory.
Definition at line 128 of file projectmanager.cpp.
References ProjectDocument::hasValidNameAndPath(), m_project_document, and ProjectDocument::projectDir().
Referenced by SimulationSetupWidget::onExportToPythonScript(), untitledProjectName(), and userExportDir().
void ProjectManager::readSettings | ( | ) |
Reads settings of ProjectManager from global settings.
Definition at line 65 of file projectmanager.cpp.
References m_importDirectory, m_importFilter1D, m_importFilter2D, m_recentProjects, m_workingDirectory, and setAutosaveEnabled().
Referenced by MainWindow::readSettings().
QString ProjectManager::recentlyUsedImportFilter1D | ( | ) | const |
Definition at line 154 of file projectmanager.cpp.
References m_importFilter1D.
Referenced by RealDataSelectorWidget::importData().
QString ProjectManager::recentlyUsedImportFilter2D | ( | ) | const |
Definition at line 159 of file projectmanager.cpp.
References m_importFilter2D.
Referenced by RealDataSelectorWidget::importData().
QStringList ProjectManager::recentProjects | ( | ) |
Returns list of recent projects, validates if projects still exists on disk.
Definition at line 114 of file projectmanager.cpp.
References m_recentProjects.
Referenced by ActionManager::onAboutToShowFileMenu().
|
private |
Rises dialog if the project should be restored from autosave. Returns true, if yes.
Definition at line 472 of file projectmanager.cpp.
References ProjectUtils::autosaveName(), ProjectUtils::lastModified(), m_mainWindow, ProjectUtils::projectName(), and GUIHelpers::question().
Referenced by loadProject().
|
private |
Definition at line 449 of file projectmanager.cpp.
References MessageService::errorDescriptionList(), m_mainWindow, m_messageService, m_project_document, ProjectDocument::projectFileName(), and GUIHelpers::warning().
Referenced by openProject().
|
private |
Definition at line 460 of file projectmanager.cpp.
References ASSERT, ProjectDocument::documentVersion(), m_mainWindow, m_messageService, and m_project_document.
Referenced by openProject().
|
slot |
Processes save project request.
Definition at line 274 of file projectmanager.cpp.
References acquireProjectFileName(), addToRecentProjects(), ProjectDocument::hasValidNameAndPath(), m_mainWindow, m_project_document, m_saveService, modified(), ProjectDocument::projectFileName(), SaveService::save(), and GUIHelpers::warning().
Referenced by closeCurrentProject(), ActionManager::createActions(), newProject(), and saveProjectAs().
|
slot |
Processes 'save project as' request.
Definition at line 305 of file projectmanager.cpp.
References acquireProjectFileName(), and saveProject().
Referenced by ActionManager::createActions().
|
slot |
Definition at line 193 of file projectmanager.cpp.
References m_saveService, and SaveService::setAutosaveEnabled().
Referenced by ActionManager::onAboutToShowSettingsMenu(), and readSettings().
void ProjectManager::setImportDir | ( | const QString & | dirname | ) |
Sets user import directory in system settings.
Definition at line 166 of file projectmanager.cpp.
References m_importDirectory.
Referenced by RealDataSelectorWidget::importData(), and PyImportAssistant::saveImportDir().
void ProjectManager::setImportDirFromFilePath | ( | const QString & | filePath | ) |
Sets user import directory in system settings.
Definition at line 173 of file projectmanager.cpp.
References m_importDirectory.
void ProjectManager::setRecentlyUsedImportFilter1D | ( | const QString & | filter | ) |
Definition at line 178 of file projectmanager.cpp.
References m_importFilter1D.
Referenced by RealDataSelectorWidget::importData().
void ProjectManager::setRecentlyUsedImportFilter2D | ( | const QString & | filter | ) |
Definition at line 183 of file projectmanager.cpp.
References m_importFilter2D.
Referenced by RealDataSelectorWidget::importData().
|
private |
Will return 'Untitled' if the directory with such name doesn't exist in project path.
Otherwise will return Untitled1, Untitled2 etc.
Definition at line 430 of file projectmanager.cpp.
References projectDir(), and workingDirectory().
Referenced by acquireProjectFileName().
QString ProjectManager::userExportDir | ( | ) | const |
Returns directory name suitable for saving plots.
Definition at line 138 of file projectmanager.cpp.
References projectDir().
Referenced by IntensityDataCanvas::onSavePlotAction(), SpecularDataCanvas::onSavePlotAction(), MaskEditorCanvas::onSavePlotRequest(), RealSpaceCanvas::savePicture(), ProjectUtils::userExportDir(), and userImportDir().
QString ProjectManager::userImportDir | ( | ) | const |
Returns directory name which was used by the user to import files.
Definition at line 149 of file projectmanager.cpp.
References m_importDirectory, and userExportDir().
Referenced by PyImportAssistant::fileNameToOpen(), and RealDataSelectorWidget::importData().
|
private |
Returns default project path.
Definition at line 422 of file projectmanager.cpp.
References m_workingDirectory.
Referenced by acquireProjectFileName(), openProject(), and untitledProjectName().
void ProjectManager::writeSettings | ( | ) |
Saves settings of ProjectManager in global settings.
Definition at line 92 of file projectmanager.cpp.
References m_importDirectory, m_importFilter1D, m_importFilter2D, m_recentProjects, and m_workingDirectory.
Referenced by MainWindow::writeSettings().
|
private |
Definition at line 86 of file projectmanager.h.
Referenced by readSettings(), setImportDir(), setImportDirFromFilePath(), userImportDir(), and writeSettings().
|
private |
Recently used import filter for 1D files.
Definition at line 89 of file projectmanager.h.
Referenced by readSettings(), recentlyUsedImportFilter1D(), setRecentlyUsedImportFilter1D(), and writeSettings().
|
private |
Recently used import filter for 2D files.
Definition at line 92 of file projectmanager.h.
Referenced by readSettings(), recentlyUsedImportFilter2D(), setRecentlyUsedImportFilter2D(), and writeSettings().
|
private |
Definition at line 79 of file projectmanager.h.
Referenced by acquireProjectFileName(), createNewProject(), deleteCurrentProject(), onDocumentModified(), openProject(), restoreProjectDialog(), riseProjectLoadFailedDialog(), riseProjectLoadWarningDialog(), and saveProject().
|
private |
Definition at line 95 of file projectmanager.h.
Referenced by ~ProjectManager(), createNewProject(), riseProjectLoadFailedDialog(), and riseProjectLoadWarningDialog().
|
private |
Name of directory where project directory was created.
Definition at line 80 of file projectmanager.h.
Referenced by ~ProjectManager(), addToRecentProjects(), closeCurrentProject(), createNewProject(), deleteCurrentProject(), document(), loadProject(), onDocumentModified(), openProject(), projectDir(), riseProjectLoadFailedDialog(), riseProjectLoadWarningDialog(), and saveProject().
|
private |
Definition at line 94 of file projectmanager.h.
Referenced by addToRecentProjects(), clearRecentProjects(), readSettings(), recentProjects(), and writeSettings().
|
private |
Definition at line 96 of file projectmanager.h.
Referenced by createNewProject(), deleteCurrentProject(), isAutosaveEnabled(), loadProject(), saveProject(), and setAutosaveEnabled().
|
private |
Name of directory from there user prefer to import files.
Definition at line 83 of file projectmanager.h.
Referenced by acquireProjectFileName(), readSettings(), workingDirectory(), and writeSettings().