mirror of
https://github.com/GoldenCheetah/GoldenCheetah.git
synced 2026-02-13 16:18:42 +00:00
remove global mainwindwo ptr from save dialogs
Also, allocate dialogs on stack to make free explicit. I find Qt::WA_DeleteOnClose to be really non-intuitive for modal dialogs.
This commit is contained in:
@@ -78,8 +78,8 @@ MainWindow::saveRideSingleDialog(RideItem *rideItem)
|
||||
|
||||
// either prompt etc, or just save that file away!
|
||||
if (currentType != "GC" && warnOnConvert() == true) {
|
||||
SaveSingleDialogWidget *dialog = new SaveSingleDialogWidget(this, rideItem);
|
||||
dialog->exec();
|
||||
SaveSingleDialogWidget dialog(this, rideItem);
|
||||
dialog.exec();
|
||||
return true;
|
||||
} else {
|
||||
// go for it, the user doesn't want warnings!
|
||||
@@ -106,8 +106,8 @@ MainWindow::saveRideExitDialog()
|
||||
|
||||
// we have some files to save...
|
||||
if (dirtyList.count() > 0) {
|
||||
SaveOnExitDialogWidget *dialog = new SaveOnExitDialogWidget(this, dirtyList);
|
||||
int result = dialog->exec();
|
||||
SaveOnExitDialogWidget dialog(this, dirtyList);
|
||||
int result = dialog.exec();
|
||||
if (result == QDialog::Rejected) return false; // cancel that closeEvent!
|
||||
}
|
||||
|
||||
@@ -166,10 +166,9 @@ MainWindow::saveSilent(RideItem *rideItem)
|
||||
//----------------------------------------------------------------------
|
||||
// Save Single File Dialog Widget
|
||||
//----------------------------------------------------------------------
|
||||
SaveSingleDialogWidget::SaveSingleDialogWidget(QWidget *parent, RideItem *rideItem) : QDialog(parent, Qt::Dialog)
|
||||
SaveSingleDialogWidget::SaveSingleDialogWidget(MainWindow *mainWindow, RideItem *rideItem) :
|
||||
QDialog(mainWindow, Qt::Dialog), mainWindow(mainWindow), rideItem(rideItem)
|
||||
{
|
||||
this->rideItem = rideItem;
|
||||
setAttribute(Qt::WA_DeleteOnClose);
|
||||
setWindowTitle("Save and Conversion");
|
||||
QVBoxLayout *mainLayout = new QVBoxLayout(this);
|
||||
|
||||
@@ -202,7 +201,7 @@ SaveSingleDialogWidget::SaveSingleDialogWidget(QWidget *parent, RideItem *rideIt
|
||||
void
|
||||
SaveSingleDialogWidget::saveClicked()
|
||||
{
|
||||
mainwindow->saveSilent(rideItem);
|
||||
mainWindow->saveSilent(rideItem);
|
||||
accept();
|
||||
}
|
||||
|
||||
@@ -229,10 +228,9 @@ SaveSingleDialogWidget::warnSettingClicked()
|
||||
// Save on Exit File Dialog Widget
|
||||
//----------------------------------------------------------------------
|
||||
|
||||
SaveOnExitDialogWidget::SaveOnExitDialogWidget(QWidget *parent, QList<RideItem *>dirtyList) : QDialog(parent, Qt::Dialog)
|
||||
SaveOnExitDialogWidget::SaveOnExitDialogWidget(MainWindow *mainWindow, QList<RideItem *>dirtyList) :
|
||||
QDialog(mainWindow, Qt::Dialog), mainWindow(mainWindow), dirtyList(dirtyList)
|
||||
{
|
||||
this->dirtyList = dirtyList;
|
||||
setAttribute(Qt::WA_DeleteOnClose);
|
||||
setWindowTitle("Save Changes");
|
||||
QVBoxLayout *mainLayout = new QVBoxLayout(this);
|
||||
|
||||
@@ -296,7 +294,7 @@ SaveOnExitDialogWidget::saveClicked()
|
||||
for (int i=0; i<dirtyList.count(); i++) {
|
||||
QCheckBox *c = (QCheckBox *)dirtyFiles->cellWidget(i,0);
|
||||
if (c->isChecked()) {
|
||||
mainwindow->saveRideSingleDialog(dirtyList.at(i));
|
||||
mainWindow->saveRideSingleDialog(dirtyList.at(i));
|
||||
}
|
||||
}
|
||||
accept();
|
||||
|
||||
@@ -30,8 +30,7 @@ class SaveSingleDialogWidget : public QDialog
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
SaveSingleDialogWidget(QWidget *, RideItem *);
|
||||
// QWidget *parent;
|
||||
SaveSingleDialogWidget(MainWindow *, RideItem *);
|
||||
|
||||
public slots:
|
||||
void saveClicked();
|
||||
@@ -41,6 +40,7 @@ class SaveSingleDialogWidget : public QDialog
|
||||
|
||||
private:
|
||||
|
||||
MainWindow *mainWindow;
|
||||
RideItem *rideItem;
|
||||
QPushButton *saveButton, *abandonButton, *cancelButton;
|
||||
QCheckBox *warnCheckBox;
|
||||
@@ -52,7 +52,7 @@ class SaveOnExitDialogWidget : public QDialog
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
SaveOnExitDialogWidget(QWidget *, QList<RideItem*>);
|
||||
SaveOnExitDialogWidget(MainWindow *, QList<RideItem*>);
|
||||
|
||||
public slots:
|
||||
void saveClicked();
|
||||
@@ -61,6 +61,7 @@ class SaveOnExitDialogWidget : public QDialog
|
||||
void warnSettingClicked();
|
||||
|
||||
private:
|
||||
MainWindow *mainWindow;
|
||||
QList<RideItem *>dirtyList;
|
||||
QPushButton *saveButton, *abandonButton, *cancelButton;
|
||||
QCheckBox *exitWarnCheckBox;
|
||||
|
||||
Reference in New Issue
Block a user