36 , m_mainWindow(parent)
37 , m_newAction(nullptr)
38 , m_openAction(nullptr)
39 , m_saveAction(nullptr)
40 , m_saveAsAction(nullptr)
41 , m_exitAction(nullptr)
42 , m_aboutAction(nullptr)
45 , m_settingsMenu(nullptr)
47 , m_recentProjectsMenu(nullptr)
49 , m_importMenu(nullptr)
50 , m_runSimulationShortcut(nullptr)
75 connect(
m_openAction, &QAction::triggered, projectManager,
76 [projectManager]() { projectManager->
openProject(); });
82 m_saveAction->setShortcutContext(Qt::ApplicationShortcut);
83 connect(
m_saveAction, &QAction::triggered, projectManager,
84 [projectManager]() { projectManager->
saveProject(); });
127 QAction* action =
m_importMenu->addAction(
"&Import from Python script (experimental)");
128 action->setToolTip(
"Import sample from Python script.\n The script should contain a function "
129 "returning a valid multi-layer.");
131 #ifdef BORNAGAIN_PYTHON
135 action->setEnabled(
false);
174 bool hasRecentProjects =
false;
177 hasRecentProjects =
true;
180 actionText = QString(
"&%1 ").arg(orderNr) + actionText;
182 action->setData(QVariant::fromValue(file));
188 if (hasRecentProjects) {
202 QAction* action =
m_settingsMenu->addAction(
"&Check for Updates");
203 action->setToolTip(
"Checks for updates available on GUI startup.");
204 action->setCheckable(
true);
211 action->setToolTip(
"Additional developer's view will appear in left control tab bar");
212 action->setCheckable(
true);
218 action->setToolTip(
"Project will be saved periodically in project's autosave directory.\n"
219 "When opening project, recover option will be suggested, if possible.");
220 action->setCheckable(
true);
233 if (
auto sampleView =
dynamic_cast<SampleView*
>(view); sampleView !=
nullptr)
235 if (
auto jobView =
dynamic_cast<JobView*
>(view); jobView !=
nullptr)
267 #ifdef BORNAGAIN_PYTHON
Defines the macro ASSERT.
#define ASSERT(condition)
Defines class DocksController.
Defines class ActionManager.
Defines class MainWindow.
Defines class ProjectManager.
Implements class PyImportAssistant.
Defines class SampleView.
Defines various stuff in namespace Utils.
Implements class UpdateNotifier.
Defines class AboutApplicationDialog.
ActionManager(MainWindow *parent)
MainWindow * m_mainWindow
void onCurrentViewChanged()
void createGlobalShortcuts()
void onAboutToShowViewMenu()
void onAboutToShowFileMenu()
void onAboutToShowSettingsMenu()
void onAboutApplication()
void toggleCheckForUpdates(bool status)
QMenu * m_recentProjectsMenu
void setSessionModelViewActive(bool status)
QShortcut * m_runSimulationShortcut
void onImportFromPythonScript()
The JobView class is a main view to show list of jobs, job results and widgets for real time and fitt...
QWidget * currentView() const
UpdateNotifier * updateNotifier()
void onSessionModelViewActive(bool isActive)
Inserts/removes developers SessionModelView on the left tabbar.
void onRunSimulationShortcut()
void currentViewChanged(ViewId newView)
ProjectManager * projectManager()
Handles activity related to opening/save projects.
bool saveProject(QString projectFileName="")
Processes save project request.
void clearRecentProjects()
Clears list of recent projects.
void setAutosaveEnabled(bool value)
void openProject(QString fileName="")
Opens existing project. If fileName is empty, will popup file selection dialog.
bool isAutosaveEnabled() const
void newProject()
Processes new project request (close old project, rise dialog for project name, create project).
bool saveProjectAs()
Processes 'save project as' request.
QStringList recentProjects()
Returns list of recent projects, validates if projects still exists on disk.
Assists in importing Python object to GUI models.
void setCheckUpdatesFlag(bool flag)
Defines namespace Constants.
const char S_CHECKFORUPDATES[]
const char S_SESSIONMODELVIEW[]
const char S_VIEWISACTIVE[]
QString withTildeHomePath(const QString &path)
std::string getenv(const std::string &name)
Returns environment variable.
Defines functions from Utils namespace.