Browse Source

Added NewSim to embedded widgets

The NewSimDialog is now also embedded into the LogbookTableEditWidget
Felix Turowsky 1 year ago
parent
commit
b197abfcab

+ 13 - 7
mainwindow.cpp

@@ -173,8 +173,10 @@ void MainWindow::connectWidgets()
     QObject::connect(settingsWidget, &SettingsWidget::settingChanged,
                      this,           &MainWindow::onStyleChanged);
 
-    QObject::connect(this,			 &MainWindow::addFlightRequested,
+    QObject::connect(this,			 &MainWindow::addFlightEntryRequested,
                      logbookWidget,  &LogbookTableEditWidget::addEntryRequested);
+    QObject::connect(this,			 &MainWindow::addSimulatorEntryRequested,
+                     logbookWidget,  &LogbookTableEditWidget::addSimulatorEntryRequested);
 }
 
 void MainWindow::onDatabaseInvalid()
@@ -228,7 +230,15 @@ void MainWindow::on_actionHome_triggered()
 void MainWindow::on_actionNewFlight_triggered()
 {
     ui->stackedWidget->setCurrentWidget(logbookWidget);
-    emit addFlightRequested();
+    emit addFlightEntryRequested();
+}
+
+void MainWindow::on_actionNewSim_triggered()
+{
+    // auto nsd = NewSimDialog(this);
+    // nsd.exec();
+    ui->stackedWidget->setCurrentWidget(logbookWidget);
+    emit addSimulatorEntryRequested();
 }
 
 void MainWindow::on_actionLogbook_triggered()
@@ -267,8 +277,4 @@ void MainWindow::on_actionDebug_triggered()
     ui->stackedWidget->setCurrentWidget(debugWidget);
 }
 
-void MainWindow::on_actionNewSim_triggered()
-{
-    auto nsd = NewSimDialog(this);
-    nsd.exec();
-}
+

+ 2 - 1
mainwindow.h

@@ -182,7 +182,8 @@ protected:
     }
 
 signals:
-    void addFlightRequested();
+    void addFlightEntryRequested();
+    void addSimulatorEntryRequested();
     //void closeEvent(QCloseEvent *event) override; //TODO check and prompt for creation of backup?
 };
 #endif // MAINWINDOW_H

+ 12 - 21
src/gui/widgets/logbooktableeditwidget.cpp

@@ -79,27 +79,6 @@ EntryEditDialog *LogbookTableEditWidget::getEntryEditDialog(QWidget *parent)
 void LogbookTableEditWidget::filterTextChanged(const QString &filterString)
 {}
 
-void LogbookTableEditWidget::addEntryRequested()
-{
-    // close open edit dialog(s), if present
-    if(m_stackedWidget->count() > 2) {
-        while (m_stackedWidget->count() > 2) {
-            m_stackedWidget->removeWidget(m_stackedWidget->widget(2));
-        }
-    }
-
-    showEditWidget();
-
-    auto nfd = NewFlightDialog(this);
-    m_stackedWidget->addWidget(&nfd);
-    m_stackedWidget->setCurrentWidget(&nfd);
-    nfd.exec();
-
-    hideEditWidget();
-    // auto nfd = NewFlightDialog(this);
-    // nfd.exec();
-}
-
 void LogbookTableEditWidget::editEntryRequested(const QModelIndex &selectedIndex)
 {
     showEditWidget();
@@ -154,6 +133,18 @@ void LogbookTableEditWidget::deleteEntryRequested()
 
 // private implementations
 
+void LogbookTableEditWidget::addSimulatorEntryRequested()
+{
+        showEditWidget();
+
+        auto nsd = NewSimDialog(this);
+        m_stackedWidget->addWidget(&nsd);
+        m_stackedWidget->setCurrentWidget(&nsd);
+        nsd.exec();
+
+        hideEditWidget();
+}
+
 void LogbookTableEditWidget::viewSelectionChanged(SettingsWidget::SettingSignal widget)
 {
     for(auto i = m_defaultDelegates.constBegin(); i != m_defaultDelegates.constEnd(); i++) {

+ 8 - 1
src/gui/widgets/logbooktableeditwidget.h

@@ -52,9 +52,16 @@ public slots:
 
 public slots:
     virtual void filterTextChanged(const QString &filterString) override;
-    virtual void addEntryRequested() override;
+
     virtual void editEntryRequested(const QModelIndex &selectedIndex) override;
     virtual void deleteEntryRequested() override;
+
+    /*!
+     * \brief add a new Simulator Entry to the datbase
+     * \details The Primary Entry handled by the LogbookTableEditWidget are Flights, which are stored in the flights table.
+     * However, this widget also handles adding simulator tables which are stored in the simulators table.
+     */
+    void addSimulatorEntryRequested();
 };
 
 #endif // LOGBOOKTABLEEDITWIDGET_H

+ 2 - 2
src/gui/widgets/tableeditwidget.cpp

@@ -90,8 +90,8 @@ void TableEditWidget::setupFilterWidget()
 
     // one row, three columns
     layout->addWidget(new QLabel(tr("Filter"), this), 0, 0);
-    layout->addWidget(m_filterLineEdit,				  0, 1);
-    layout->addWidget(m_filterSelectionComboBox,		  0, 2);
+    layout->addWidget(m_filterLineEdit,               0, 1);
+    layout->addWidget(m_filterSelectionComboBox,      0, 2);
 
     m_filterWidget = widget;
 }