BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
gui2::WelcomeView Class Reference

Welcome view. Main widget on first tab of MainWindow. More...

Inheritance diagram for gui2::WelcomeView:
[legend]
Collaboration diagram for gui2::WelcomeView:
[legend]

Public Slots

void onClearRecentProjectsList ()
 
void onCreateNewProject ()
 
void onOpenExistingProject (const QString &dirname={})
 
void onSaveCurrentProject ()
 
void onSaveProjectAs ()
 

Signals

void recentProjectsListModified (const QStringList &projects)
 

Public Member Functions

 WelcomeView (ApplicationModels *models, QWidget *parent=nullptr)
 
 ~WelcomeView ()
 
bool canCloseProject () const
 Returns 'true' if current project can be closed. More...
 
void updateNames ()
 

Private Member Functions

void setup_connections ()
 
void update_current_project_name ()
 
void update_recent_project_names ()
 

Private Attributes

ApplicationModelsm_models {nullptr}
 
OpenProjectWidgetm_openProjectWidget {nullptr}
 
ProjectHandlerm_projectHandler {nullptr}
 
RecentProjectWidgetm_recentProjectWidget {nullptr}
 

Detailed Description

Welcome view. Main widget on first tab of MainWindow.

Definition at line 32 of file welcomeview.h.

Constructor & Destructor Documentation

◆ WelcomeView()

WelcomeView::WelcomeView ( ApplicationModels models,
QWidget *  parent = nullptr 
)

Definition at line 29 of file welcomeview.cpp.

30  : QWidget(parent)
31  , m_models(models)
32  , m_projectHandler(new ProjectHandler(models, this))
33  , m_recentProjectWidget(new RecentProjectWidget)
34  , m_openProjectWidget(new OpenProjectWidget)
35 {
36  QPalette palette;
37  palette.setColor(QPalette::Window, Qt::white);
38  setAutoFillBackground(true);
39  setPalette(palette);
40 
41  auto layout = new QHBoxLayout(this);
42  layout->addSpacing(50);
43  layout->addWidget(m_recentProjectWidget, 38);
44  layout->addWidget(m_openProjectWidget, 62);
45  layout->addSpacing(50);
46 
48 }
OpenProjectWidget * m_openProjectWidget
Definition: welcomeview.h:61
ApplicationModels * m_models
Definition: welcomeview.h:58
RecentProjectWidget * m_recentProjectWidget
Definition: welcomeview.h:60
void setup_connections()
Definition: welcomeview.cpp:90
ProjectHandler * m_projectHandler
Definition: welcomeview.h:59

References m_openProjectWidget, m_recentProjectWidget, and setup_connections().

Here is the call graph for this function:

◆ ~WelcomeView()

WelcomeView::~WelcomeView ( )
default

Member Function Documentation

◆ canCloseProject()

bool WelcomeView::canCloseProject ( ) const

Returns 'true' if current project can be closed.

Internally will perform check for unsaved data, and proceed via save/discard/cancel dialog.

Definition at line 55 of file welcomeview.cpp.

56 {
58 }
bool canCloseProject() const
Returns 'true' if current project can be closed.

References gui2::ProjectHandler::canCloseProject(), and m_projectHandler.

Referenced by gui2::MainWindow::closeEvent().

Here is the call graph for this function:

◆ onClearRecentProjectsList

void WelcomeView::onClearRecentProjectsList ( )
slot

Definition at line 85 of file welcomeview.cpp.

References gui2::ProjectHandler::clearRecentProjectsList(), and m_projectHandler.

Referenced by gui2::MainWindow::init_connections().

Here is the call graph for this function:

◆ onCreateNewProject

void WelcomeView::onCreateNewProject ( )
slot

Definition at line 65 of file welcomeview.cpp.

References m_projectHandler, and gui2::ProjectHandler::onCreateNewProject().

Referenced by gui2::MainWindow::init_connections(), and setup_connections().

Here is the call graph for this function:

◆ onOpenExistingProject

void WelcomeView::onOpenExistingProject ( const QString &  dirname = {})
slot

Definition at line 70 of file welcomeview.cpp.

71 {
72  return m_projectHandler->onOpenExistingProject(dirname);
73 }
void onOpenExistingProject(const QString &dirname={})

References m_projectHandler, and gui2::ProjectHandler::onOpenExistingProject().

Referenced by gui2::MainWindow::init_connections(), and setup_connections().

Here is the call graph for this function:

◆ onSaveCurrentProject

void WelcomeView::onSaveCurrentProject ( )
slot

Definition at line 75 of file welcomeview.cpp.

76 {
78 }

References m_projectHandler, and gui2::ProjectHandler::onSaveCurrentProject().

Referenced by gui2::MainWindow::init_connections().

Here is the call graph for this function:

◆ onSaveProjectAs

void WelcomeView::onSaveProjectAs ( )
slot

Definition at line 80 of file welcomeview.cpp.

81 {
83 }

References m_projectHandler, and gui2::ProjectHandler::onSaveProjectAs().

Referenced by gui2::MainWindow::init_connections().

Here is the call graph for this function:

◆ recentProjectsListModified

void gui2::WelcomeView::recentProjectsListModified ( const QStringList &  projects)
signal

◆ setup_connections()

void WelcomeView::setup_connections ( )
private

Definition at line 90 of file welcomeview.cpp.

91 {
92  // connect buttons of OpenProjectWidget with this slots.
93  auto open_existing_project = [this]() { onOpenExistingProject(); };
95  open_existing_project);
98 
99  // connect RecentProjectWidget panels with this slots.
102 
103  // connect ProjectHandler with RecentProjectWidget
110 }
void recentProjectsListModified(const QStringList &projects)
void currentProjectModified(const QString &project_dir, bool is_modified)
void setRecentProjectsList(const QStringList &projects)
Set name of all recent projects to appropriate widgets.
void setCurrentProject(const QString &project_dir, bool is_modified)
Set current project title and label on appropriate widget.
void projectSelected(const QString &project_dir)
void onCreateNewProject()
Definition: welcomeview.cpp:65
void recentProjectsListModified(const QStringList &projects)
void onOpenExistingProject(const QString &dirname={})
Definition: welcomeview.cpp:70

References gui2::OpenProjectWidget::createNewProjectRequest(), gui2::ProjectHandler::currentProjectModified(), m_openProjectWidget, m_projectHandler, m_recentProjectWidget, onCreateNewProject(), onOpenExistingProject(), gui2::OpenProjectWidget::openExistingProjectRequest(), gui2::RecentProjectWidget::projectSelected(), gui2::ProjectHandler::recentProjectsListModified(), recentProjectsListModified(), gui2::RecentProjectWidget::setCurrentProject(), and gui2::RecentProjectWidget::setRecentProjectsList().

Referenced by WelcomeView().

Here is the call graph for this function:

◆ update_current_project_name()

void gui2::WelcomeView::update_current_project_name ( )
private

◆ update_recent_project_names()

void gui2::WelcomeView::update_recent_project_names ( )
private

◆ updateNames()

void WelcomeView::updateNames ( )

Definition at line 60 of file welcomeview.cpp.

61 {
63 }
void updateNames()
Update names (name of the current project, recent project name list, notifies the world).

References m_projectHandler, and gui2::ProjectHandler::updateNames().

Referenced by gui2::MainWindow::init_connections().

Here is the call graph for this function:

Member Data Documentation

◆ m_models

ApplicationModels* gui2::WelcomeView::m_models {nullptr}
private

Definition at line 58 of file welcomeview.h.

◆ m_openProjectWidget

OpenProjectWidget* gui2::WelcomeView::m_openProjectWidget {nullptr}
private

Definition at line 61 of file welcomeview.h.

Referenced by WelcomeView(), and setup_connections().

◆ m_projectHandler

◆ m_recentProjectWidget

RecentProjectWidget* gui2::WelcomeView::m_recentProjectWidget {nullptr}
private

Definition at line 60 of file welcomeview.h.

Referenced by WelcomeView(), and setup_connections().


The documentation for this class was generated from the following files: