BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
WelcomeView.h
Go to the documentation of this file.
1 // ************************************************************************************************
2 //
3 // BornAgain: simulate and fit reflection and scattering
4 //
5 //! @file GUI/coregui/Views/WelcomeView.h
6 //! @brief Defines class WelcomeView
7 //!
8 //! @homepage http://www.bornagainproject.org
9 //! @license GNU General Public License v3 or higher (see COPYING)
10 //! @copyright Forschungszentrum Jülich GmbH 2018
11 //! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS)
12 //
13 // ************************************************************************************************
14 
15 #ifndef BORNAGAIN_GUI_COREGUI_VIEWS_WELCOMEVIEW_H
16 #define BORNAGAIN_GUI_COREGUI_VIEWS_WELCOMEVIEW_H
17 
18 #include <QWidget>
19 
20 class QPushButton;
21 class MainWindow;
22 class ProjectManager;
23 class QVBoxLayout;
24 class FancyLabel;
25 class QBoxLayout;
27 class QLabel;
28 class QFrame;
29 
30 class WelcomeView : public QWidget {
31  Q_OBJECT
32 public:
33  WelcomeView(MainWindow* parent);
34 
35 public slots:
36  void onWebLinkClicked(const QUrl& url);
37  void onNewUser();
39 
40 protected:
41  void showEvent(QShowEvent*);
42 
43 private:
44  QWidget* createProjectWidget();
45  QBoxLayout* createButtonLayout();
46  QBoxLayout* createCurrentProjectLayout();
47  QBoxLayout* createRecentProjectLayout();
48  QBoxLayout* createProjectLayout();
50  QFrame* createSeparationFrame();
51 
53  QString currentProjectFancyName();
54  void setCurrentProjectName(const QString& name);
56 
58  QPushButton* m_newProjectButton;
59  QPushButton* m_openProjectButton;
60  QPushButton* m_newUsertButton;
62  QVBoxLayout* m_recentProjectLayout;
64 };
65 
66 #endif // BORNAGAIN_GUI_COREGUI_VIEWS_WELCOMEVIEW_H
The FancyLabel class is a QLabel-like class with trivial animation when text slowly appears on the sc...
Definition: FancyLabel.h:23
Handles activity related to opening/save projects.
Small on WelcomeView for notofications about updates.
QWidget * createProjectWidget()
void generateRecentProjectList()
Definition: WelcomeView.cpp:86
QBoxLayout * createProjectLayout()
WelcomeView(MainWindow *parent)
Definition: WelcomeView.cpp:41
QPushButton * m_openProjectButton
Definition: WelcomeView.h:59
QBoxLayout * createRecentProjectLayout()
void updateRecentProjectPanel()
ProjectManager * projectManager()
QPushButton * m_newProjectButton
Definition: WelcomeView.h:58
QString currentProjectFancyName()
returns current project name suited for displaying on current project layout
UpdateNotifierWidget * m_notifierWidget
Definition: WelcomeView.h:63
FancyLabel * m_currentProjectLabel
Definition: WelcomeView.h:61
MainWindow * m_mainWindow
Definition: WelcomeView.h:57
void onWebLinkClicked(const QUrl &url)
QBoxLayout * createCurrentProjectLayout()
void onNewUser()
QBoxLayout * createButtonLayout()
QVBoxLayout * m_recentProjectLayout
Definition: WelcomeView.h:62
QLabel * createNotificationLabel()
void showEvent(QShowEvent *)
QPushButton * m_newUsertButton
Definition: WelcomeView.h:60
void setCurrentProjectName(const QString &name)
updates label with current project name in picturesque manner
QFrame * createSeparationFrame()
QString const & name(EShape k)
Definition: particles.cpp:21