33#include " CreationDialog.hpp"
44#include " LoadDialog.hpp"
55#include " WindowManager.hpp"
6+ #include " LaunchWidget.hpp"
67
7- LaunchWidget::LaunchWidget (Languages lngType, QWidget* parent) : QStackedWidget(parent)
8+ LaunchWidget::LaunchWidget (QWidget* parent) : QStackedWidget(parent)
89{
910 // MainLaunchWidget settings
1011 setFixedSize (795 , 440 );
1112 setWindowFlags (windowFlags () | Qt::MSWindowsFixedSizeDialogHint);
1213 setWindowFlags (windowFlags () & ~Qt::WindowMaximizeButtonHint &
1314 ~Qt::WindowMinimizeButtonHint);
1415
15- WINDOW_MANAGER->SetTranslator (lngType);
16- pStartWidget = new GreetingWidget{lngType};
17- addWidget (pStartWidget);
18- UpdateConnectionsToSignals ();
16+ pGreetingWidget = new GreetingWidget (this );
17+ addWidget (pGreetingWidget);
18+ AttachConnections ();
19+ }
20+
21+ void LaunchWidget::AttachConnections ()
22+ {
23+ connect (pGreetingWidget, &GreetingWidget::languageChanged,
24+ this , &LaunchWidget::GreetingWidget_LanguageChanged);
25+
26+ connect (pGreetingWidget, &GreetingWidget::pressed,
27+ this , &LaunchWidget::BtnNewProjectOrBtnLoadProject_Clicked);
1928}
2029
21- void LaunchWidget::UpdateConnectionsToSignals ()
30+ void LaunchWidget::DetachConnections ()
2231{
23- connect (pStartWidget, &GreetingWidget::languageChanged,
24- this , &LaunchWidget::OnChangeLanguage);
25- connect (pStartWidget, &GreetingWidget::pressed,
26- this , &LaunchWidget::OnStartButtonClicked);
32+ disconnect (pGreetingWidget, &GreetingWidget::languageChanged,
33+ this , &LaunchWidget::GreetingWidget_LanguageChanged);
34+
35+ disconnect (pGreetingWidget, &GreetingWidget::pressed,
36+ this , &LaunchWidget::BtnNewProjectOrBtnLoadProject_Clicked);
2737}
2838
29- void LaunchWidget::OnChangeLanguage (int intLngIndex)
39+ void LaunchWidget::GreetingWidget_LanguageChanged (int intLngIndex)
3040{
3141 // Find language type by its code.
3242 Languages lngType = static_cast <Languages>(intLngIndex);
@@ -35,13 +45,17 @@ void LaunchWidget::OnChangeLanguage(int intLngIndex)
3545 WINDOW_MANAGER->SetTranslator (lngType);
3646
3747 // Recreate StartWidget and update connections.
38- pStartWidget->deleteLater ();
39- pStartWidget = new GreetingWidget{lngType};
40- addWidget (pStartWidget);
41- UpdateConnectionsToSignals ();
48+ DetachConnections ();
49+ removeWidget (pGreetingWidget);
50+ pGreetingWidget->deleteLater ();
51+
52+ pGreetingWidget = new GreetingWidget (this );
53+ addWidget (pGreetingWidget);
54+ setCurrentWidget (pGreetingWidget);
55+ AttachConnections ();
4256}
4357
44- void LaunchWidget::OnStartButtonClicked (GreetingWidget::StandartButtons standartButton)
58+ void LaunchWidget::BtnNewProjectOrBtnLoadProject_Clicked (GreetingWidget::StandartButtons standartButton)
4559{
4660 BaseConfigurationDialog* pConfigurationWidget = nullptr ;
4761
@@ -61,5 +75,7 @@ void LaunchWidget::OnStartButtonClicked(GreetingWidget::StandartButtons standart
6175 setCurrentWidget (pConfigurationWidget); // next window (creator)
6276
6377 // if accepted -> send signal with configuration
64- connect (pConfigurationWidget, &CreationDialog::AcceptedConfiguration , this , &LaunchWidget::AcceptedConfiguration );
78+ connect (pConfigurationWidget, &CreationDialog::acceptConfiguration , this , &LaunchWidget::CreationDialog_AcceptConfiguration );
6579}
80+
81+ void LaunchWidget::CreationDialog_AcceptConfiguration (const QVariant& cfg) { WINDOW_MANAGER->LaunchWidget_AcceptConfiguration (cfg); }
0 commit comments