Merge pull request #642 from RytoEX/scenesw-regex

Prevent crash when adding an invalid regex to Automatic Scene Switcher
This commit is contained in:
Jim
2016-10-02 21:13:36 -07:00
committed by GitHub
2 changed files with 16 additions and 7 deletions

View File

@@ -3,6 +3,7 @@
#include <obs.hpp>
#include <util/util.hpp>
#include <QMainWindow>
#include <QMessageBox>
#include <QAction>
#include "auto-scene-switcher.hpp"
@@ -231,13 +232,19 @@ void SceneSwitcher::on_add_clicked()
int idx = FindByData(windowName);
if (idx == -1) {
QListWidgetItem *item = new QListWidgetItem(text,
ui->switches);
item->setData(Qt::UserRole, v);
lock_guard<mutex> lock(switcher->m);
switcher->switches.emplace_back(source,
windowName.toUtf8().constData());
try {
lock_guard<mutex> lock(switcher->m);
switcher->switches.emplace_back(source,
windowName.toUtf8().constData());
QListWidgetItem *item = new QListWidgetItem(text,
ui->switches);
item->setData(Qt::UserRole, v);
} catch (const regex_error &) {
QMessageBox::warning(this,
obs_module_text("InvalidRegex.Title"),
obs_module_text("InvalidRegex.Text"));
}
} else {
QListWidgetItem *item = ui->switches->item(idx);
item->setText(text);

View File

@@ -4,6 +4,8 @@ SceneSwitcher.OnNoMatch.DontSwitch="Don't switch"
SceneSwitcher.OnNoMatch.SwitchTo="Switch to:"
SceneSwitcher.CheckInterval="Check active window title every:"
SceneSwitcher.ActiveOrNotActive="Scene Switcher is:"
InvalidRegex.Title="Invalid Regular Expression"
InvalidRegex.Text="The regular expression that you entered is invalid."
Active="Active"
Inactive="Inactive"
Start="Start"