Fix dialogs being opened at OBS instead of plugin window location

This commit is contained in:
WarmUpTill
2024-01-12 22:14:09 +01:00
committed by WarmUpTill
parent a40f175af5
commit b826f10372
4 changed files with 18 additions and 3 deletions

View File

@@ -743,6 +743,11 @@ void OpenSettingsWindow()
}
}
QWidget *GetSettingsWindow()
{
return SettingsWindowIsOpened() ? AdvSceneSwitcher::window : nullptr;
}
void SetupConnectionManager();
void SetupWebsocketHelpers();

View File

@@ -412,5 +412,6 @@ public slots:
};
void OpenSettingsWindow();
QWidget *GetSettingsWindow();
} // namespace advss

View File

@@ -9,6 +9,8 @@
namespace advss {
QWidget *GetSettingsWindow();
NonModalMessageDialog::NonModalMessageDialog(const QString &message,
bool question)
: NonModalMessageDialog(message, question ? Type::QUESTION : Type::INFO)
@@ -16,7 +18,10 @@ NonModalMessageDialog::NonModalMessageDialog(const QString &message,
}
NonModalMessageDialog::NonModalMessageDialog(const QString &message, Type type)
: QDialog(static_cast<QMainWindow *>(obs_frontend_get_main_window())),
: QDialog(GetSettingsWindow()
? GetSettingsWindow()
: static_cast<QMainWindow *>(
obs_frontend_get_main_window())),
_type(type),
_answer(QMessageBox::No)
{

View File

@@ -521,6 +521,8 @@ int GetSceneItemCount(const OBSWeakSource &sceneWeakSource)
return count;
}
QWidget *GetSettingsWindow();
bool DisplayMessage(const QString &msg, bool question, bool modal)
{
if (!modal) {
@@ -529,8 +531,10 @@ bool DisplayMessage(const QString &msg, bool question, bool modal)
return (answer == QMessageBox::Yes);
} else if (question && modal) {
auto answer = QMessageBox::question(
static_cast<QMainWindow *>(
obs_frontend_get_main_window()),
GetSettingsWindow()
? GetSettingsWindow()
: static_cast<QMainWindow *>(
obs_frontend_get_main_window()),
obs_module_text("AdvSceneSwitcher.windowTitle"), msg,
QMessageBox::Yes | QMessageBox::No);
return answer == QMessageBox::Yes;