cleanup: un-singletonize ShiftTimesDialog

There is no reason that this dialog is a singleton. Since it is modal,
it can be created on demand. Apart from removing superfluous global state,
this simplifies code, because preparing the widget can now be done in
the constructor instead of overriding the showEvent() function.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2020-05-27 14:13:15 +02:00 committed by Dirk Hohndel
parent 25f1bc488f
commit 7417f865cd
3 changed files with 3 additions and 13 deletions

View file

@ -860,7 +860,8 @@ void DiveListView::contextMenuEvent(QContextMenuEvent *event)
void DiveListView::shiftTimes()
{
ShiftTimesDialog::instance()->show();
ShiftTimesDialog dialog(MainWindow::instance());
dialog.exec();
}
void DiveListView::loadImages()

View file

@ -179,12 +179,6 @@ SetpointDialog::SetpointDialog(struct dive *dIn, int dcNrIn, int seconds) : QDia
connect(quit, &QShortcut::activated, MainWindow::instance(), &QWidget::close);
}
ShiftTimesDialog *ShiftTimesDialog::instance()
{
static ShiftTimesDialog *self = new ShiftTimesDialog(MainWindow::instance());
return self;
}
void ShiftTimesDialog::buttonClicked(QAbstractButton *button)
{
int amount;
@ -196,10 +190,7 @@ void ShiftTimesDialog::buttonClicked(QAbstractButton *button)
if (amount != 0)
Command::shiftTime(getDiveSelection(), amount);
}
}
void ShiftTimesDialog::showEvent(QShowEvent*)
{
ui.timeEdit->setTime(QTime(0, 0, 0, 0));
when = get_times(); //get time of first selected dive
ui.currentTime->setText(get_dive_date_string(when));

View file

@ -78,15 +78,13 @@ private:
class ShiftTimesDialog : public QDialog {
Q_OBJECT
public:
static ShiftTimesDialog *instance();
void showEvent(QShowEvent *event);
explicit ShiftTimesDialog(QWidget *parent);
private
slots:
void buttonClicked(QAbstractButton *button);
void changeTime();
private:
explicit ShiftTimesDialog(QWidget *parent);
int64_t when;
Ui::ShiftTimesDialog ui;
};