UI: Clear global signals in closeEvent

This commit is contained in:
Palana 2015-06-27 09:29:17 +02:00
parent f8c5c7f55f
commit 4b003947b8
2 changed files with 11 additions and 6 deletions

View file

@ -622,17 +622,18 @@ bool OBSBasic::InitBasicConfig()
void OBSBasic::InitOBSCallbacks()
{
signal_handler_connect(obs_get_signal_handler(), "source_add",
signalHandlers.reserve(signalHandlers.size() + 6);
signalHandlers.emplace_back(obs_get_signal_handler(), "source_add",
OBSBasic::SourceAdded, this);
signal_handler_connect(obs_get_signal_handler(), "source_remove",
signalHandlers.emplace_back(obs_get_signal_handler(), "source_remove",
OBSBasic::SourceRemoved, this);
signal_handler_connect(obs_get_signal_handler(), "channel_change",
signalHandlers.emplace_back(obs_get_signal_handler(), "channel_change",
OBSBasic::ChannelChanged, this);
signal_handler_connect(obs_get_signal_handler(), "source_activate",
signalHandlers.emplace_back(obs_get_signal_handler(), "source_activate",
OBSBasic::SourceActivated, this);
signal_handler_connect(obs_get_signal_handler(), "source_deactivate",
signalHandlers.emplace_back(obs_get_signal_handler(), "source_deactivate",
OBSBasic::SourceDeactivated, this);
signal_handler_connect(obs_get_signal_handler(), "source_rename",
signalHandlers.emplace_back(obs_get_signal_handler(), "source_rename",
OBSBasic::SourceRenamed, this);
}
@ -1974,6 +1975,8 @@ void OBSBasic::closeEvent(QCloseEvent *event)
if (logUploadThread)
logUploadThread->wait();
signalHandlers.clear();
/* Check all child dialogs and ensure they run their proper closeEvent
* methods before exiting the application. Otherwise Qt doesn't send
* the proper QCloseEvent messages. */

View file

@ -66,6 +66,8 @@ private:
std::vector<VolControl*> volumes;
std::vector<OBSSignal> signalHandlers;
bool loaded = false;
QPointer<QTimer> saveTimer;