UI: Destroy save timer before closing main window

This prevents the save timer from unexpectedly going off during the
middle of the save process.
master
jp9000 2015-03-18 06:19:18 -07:00
parent 7014076169
commit c4ef2522ad
2 changed files with 10 additions and 5 deletions

View File

@ -653,15 +653,13 @@ void OBSBasic::OBSInit()
TimedCheckForUpdates();
loaded = true;
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(SaveProject()));
timer->start(20000);
saveTimer = new QTimer(this);
connect(saveTimer, SIGNAL(timeout()), this, SLOT(SaveProject()));
saveTimer->start(20000);
}
OBSBasic::~OBSBasic()
{
SaveProject();
/* XXX: any obs data must be released before calling obs_shutdown.
* currently, we can't automate this with C++ RAII because of the
* delicate nature of obs_shutdown needing to be freed before the UI
@ -1659,6 +1657,11 @@ void OBSBasic::closeEvent(QCloseEvent *event)
// remove draw callback in case our drawable surfaces go away before
// the destructor gets called
obs_remove_draw_callback(OBSBasic::RenderMain, this);
/* Delete the save timer so it doesn't trigger after this point while
* the program data is being freed */
delete saveTimer;
SaveProject();
}
void OBSBasic::changeEvent(QEvent *event)

View File

@ -61,6 +61,8 @@ private:
bool loaded = false;
QPointer<QTimer> saveTimer;
QPointer<OBSBasicInteraction> interaction;
QPointer<OBSBasicProperties> properties;
QPointer<OBSBasicTransform> transformWindow;