Qt: Fix horrific memory leak

This commit is contained in:
Jeffrey Pfau 2016-09-06 12:36:52 -07:00
parent 87d4dad893
commit c0689783da
2 changed files with 11 additions and 8 deletions

View File

@ -71,7 +71,6 @@ Window::Window(ConfigController* config, int playerId, QWidget* parent)
#endif
, m_mruMenu(nullptr)
, m_shortcutController(new ShortcutController(this))
, m_playerId(playerId)
, m_fullscreenOnStart(false)
, m_autoresume(false)
{
@ -380,14 +379,10 @@ void Window::selectSave(bool temporary) {
}
void Window::multiplayerChanged() {
disconnect(nullptr, this, SLOT(multiplayerChanged()));
int attached = 1;
MultiplayerController* multiplayer = m_controller->multiplayerController();
if (multiplayer) {
attached = multiplayer->attached();
connect(multiplayer, SIGNAL(gameAttached()), this, SLOT(multiplayerChanged()));
connect(multiplayer, SIGNAL(gameDetached()), this, SLOT(multiplayerChanged()));
m_playerId = multiplayer->playerId(m_controller);
}
if (m_controller->isLoaded()) {
for (QAction* action : m_nonMpActions) {
@ -842,7 +837,14 @@ void Window::updateTitle(float fps) {
}
MultiplayerController* multiplayer = m_controller->multiplayerController();
if (multiplayer && multiplayer->attached() > 1) {
title += tr(" - Player %1 of %2").arg(m_playerId + 1).arg(multiplayer->attached());
title += tr(" - Player %1 of %2").arg(multiplayer->playerId(m_controller) + 1).arg(multiplayer->attached());
for (QAction* action : m_nonMpActions) {
action->setDisabled(true);
}
} else if (m_controller->isLoaded()) {
for (QAction* action : m_nonMpActions) {
action->setDisabled(false);
}
}
m_controller->threadContinue();
if (title.isNull()) {
@ -1055,7 +1057,6 @@ void Window::setupMenu(QMenuBar* menubar) {
frameAdvance->setShortcut(tr("Ctrl+N"));
connect(frameAdvance, SIGNAL(triggered()), m_controller, SLOT(frameAdvance()));
m_gameActions.append(frameAdvance);
m_nonMpActions.append(frameAdvance);
addControlledAction(emulationMenu, frameAdvance, "frameAdvance");
emulationMenu->addSeparator();
@ -1511,6 +1512,9 @@ void Window::updateMRU() {
if (!m_mruMenu) {
return;
}
for (QAction* action : m_mruMenu->actions()) {
delete action;
}
m_mruMenu->clear();
int i = 0;
for (const QString& file : m_mruFiles) {

View File

@ -173,7 +173,6 @@ private:
QMenu* m_mruMenu;
ShortcutController* m_shortcutController;
ShaderSelector* m_shaderView;
int m_playerId;
bool m_fullscreenOnStart;
QTimer m_focusCheck;
bool m_autoresume;