limit to 4 windows, and disable 'new window' menu item when that amount is reached

This commit is contained in:
Arisotura 2024-10-27 16:26:29 +01:00
parent d79d45a117
commit 238c552599
2 changed files with 16 additions and 1 deletions

View File

@ -203,6 +203,12 @@ void EmuInstance::createWindow()
// if creating a secondary window, we may need to initialize its OpenGL context here
if (win->hasOpenGL() && (id != 0))
emuThread->initContext(id);
bool enable = (numWindows < kMaxWindows);
doOnAllWindows([=](MainWindow* win)
{
win->actNewWindow->setEnabled(enable);
});
}
void EmuInstance::deleteWindow(int id, bool close)
@ -232,6 +238,14 @@ void EmuInstance::deleteWindow(int id, bool close)
// if the main window is closed, Qt will take care of closing any secondary windows
deleteEmuInstance(instanceID);
}
else
{
bool enable = (numWindows < kMaxWindows);
doOnAllWindows([=](MainWindow* win)
{
win->actNewWindow->setEnabled(enable);
});
}
}
void EmuInstance::deleteAllWindows()

View File

@ -28,7 +28,7 @@
#include "Config.h"
#include "SaveManager.h"
const int kMaxWindows = 16;
const int kMaxWindows = 4;
enum
{
@ -87,6 +87,7 @@ public:
melonDS::NDS* getNDS() { return nds; }
MainWindow* getMainWindow() { return mainWindow; }
int getNumWindows() { return numWindows; }
MainWindow* getWindow(int id) { return windowList[id]; }
void doOnAllWindows(std::function<void(MainWindow*)> func, int exclude = -1);