mirror of
https://github.com/WarmUpTill/SceneSwitcher.git
synced 2026-08-20 08:15:46 -05:00
Minor UI changes (#89)
* automatically scroll to new entry * fix remote file check always matching * sort combobox entries alphabetically (meida / processes / audio) * fix some visual issues on non-default OBS themes
This commit is contained in:
@@ -146,17 +146,22 @@ void AdvSceneSwitcher::populateAudioSelection(QComboBox *sel, bool addSelect)
|
||||
|
||||
auto sourceEnum = [](void *data, obs_source_t *source) -> bool /* -- */
|
||||
{
|
||||
QComboBox *combo = reinterpret_cast<QComboBox *>(data);
|
||||
std::vector<std::string> *list =
|
||||
reinterpret_cast<std::vector<std::string> *>(data);
|
||||
uint32_t flags = obs_source_get_output_flags(source);
|
||||
|
||||
if ((flags & OBS_SOURCE_AUDIO) != 0) {
|
||||
const char *name = obs_source_get_name(source);
|
||||
combo->addItem(name);
|
||||
list->push_back(obs_source_get_name(source));
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
obs_enum_sources(sourceEnum, sel);
|
||||
std::vector<std::string> audioSources;
|
||||
obs_enum_sources(sourceEnum, &audioSources);
|
||||
sort(audioSources.begin(), audioSources.end());
|
||||
for (std::string &source : audioSources) {
|
||||
sel->addItem(source.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
void AdvSceneSwitcher::populateMediaSelection(QComboBox *sel, bool addSelect)
|
||||
@@ -170,17 +175,22 @@ void AdvSceneSwitcher::populateMediaSelection(QComboBox *sel, bool addSelect)
|
||||
|
||||
auto sourceEnum = [](void *data, obs_source_t *source) -> bool /* -- */
|
||||
{
|
||||
QComboBox *combo = reinterpret_cast<QComboBox *>(data);
|
||||
std::vector<std::string> *list =
|
||||
reinterpret_cast<std::vector<std::string> *>(data);
|
||||
std::string sourceId = obs_source_get_id(source);
|
||||
if (sourceId.compare("ffmpeg_source") == 0 ||
|
||||
sourceId.compare("vlc_source") == 0) {
|
||||
const char *name = obs_source_get_name(source);
|
||||
combo->addItem(name);
|
||||
list->push_back(obs_source_get_name(source));
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
obs_enum_sources(sourceEnum, sel);
|
||||
std::vector<std::string> meidaSources;
|
||||
obs_enum_sources(sourceEnum, &meidaSources);
|
||||
sort(meidaSources.begin(), meidaSources.end());
|
||||
for (std::string &source : meidaSources) {
|
||||
sel->addItem(source.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
void AdvSceneSwitcher::populateProcessSelection(QComboBox *sel, bool addSelect)
|
||||
@@ -191,10 +201,34 @@ void AdvSceneSwitcher::populateProcessSelection(QComboBox *sel, bool addSelect)
|
||||
|
||||
QStringList processes;
|
||||
GetProcessList(processes);
|
||||
processes.sort();
|
||||
for (QString &process : processes)
|
||||
sel->addItem(process);
|
||||
}
|
||||
|
||||
void AdvSceneSwitcher::listAddClicked(QListWidget *list,
|
||||
SwitchWidget *newWidget,
|
||||
QPushButton *addButton,
|
||||
QMetaObject::Connection *addHighlight)
|
||||
{
|
||||
if (!list || !newWidget) {
|
||||
blog(LOG_WARNING,
|
||||
"listAddClicked called without valid list or widget");
|
||||
return;
|
||||
}
|
||||
|
||||
if (addButton && addHighlight)
|
||||
addButton->disconnect(*addHighlight);
|
||||
|
||||
QListWidgetItem *item;
|
||||
item = new QListWidgetItem(list);
|
||||
list->addItem(item);
|
||||
item->setSizeHint(newWidget->minimumSizeHint());
|
||||
list->setItemWidget(item, newWidget);
|
||||
|
||||
list->scrollToItem(item);
|
||||
}
|
||||
|
||||
bool AdvSceneSwitcher::listMoveUp(QListWidget *list)
|
||||
{
|
||||
int index = list->currentRow();
|
||||
|
||||
@@ -75,6 +75,9 @@ public:
|
||||
QColor = QColor(0, 0, 0, 0),
|
||||
QString specifier = "QLabel ");
|
||||
|
||||
void listAddClicked(QListWidget *list, SwitchWidget *newWidget,
|
||||
QPushButton *addButton = nullptr,
|
||||
QMetaObject::Connection *addHighlight = nullptr);
|
||||
bool listMoveUp(QListWidget *list);
|
||||
bool listMoveDown(QListWidget *list);
|
||||
|
||||
|
||||
@@ -6,18 +6,12 @@ static QMetaObject::Connection addPulse;
|
||||
|
||||
void AdvSceneSwitcher::on_audioAdd_clicked()
|
||||
{
|
||||
ui->audioAdd->disconnect(addPulse);
|
||||
|
||||
std::lock_guard<std::mutex> lock(switcher->m);
|
||||
switcher->audioSwitches.emplace_back();
|
||||
|
||||
QListWidgetItem *item;
|
||||
item = new QListWidgetItem(ui->audioSwitches);
|
||||
ui->audioSwitches->addItem(item);
|
||||
AudioSwitchWidget *sw =
|
||||
new AudioSwitchWidget(&switcher->audioSwitches.back());
|
||||
item->setSizeHint(sw->minimumSizeHint());
|
||||
ui->audioSwitches->setItemWidget(item, sw);
|
||||
listAddClicked(ui->audioSwitches,
|
||||
new AudioSwitchWidget(&switcher->audioSwitches.back()),
|
||||
ui->audioAdd, &addPulse);
|
||||
}
|
||||
|
||||
void AdvSceneSwitcher::on_audioRemove_clicked()
|
||||
@@ -352,8 +346,6 @@ AudioSwitchWidget::AudioSwitchWidget(AudioSwitch *s) : SwitchWidget(s)
|
||||
audioVolumeThreshold->setValue(s->volumeThreshold);
|
||||
}
|
||||
|
||||
setStyleSheet("* { background-color: transparent; }");
|
||||
|
||||
QHBoxLayout *switchLayout = new QHBoxLayout;
|
||||
std::unordered_map<std::string, QWidget *> widgetPlaceholders = {
|
||||
{"{{audioSources}}", audioSources},
|
||||
|
||||
@@ -5,18 +5,13 @@ static QMetaObject::Connection addPulse;
|
||||
|
||||
void AdvSceneSwitcher::on_executableAdd_clicked()
|
||||
{
|
||||
ui->executableAdd->disconnect(addPulse);
|
||||
|
||||
std::lock_guard<std::mutex> lock(switcher->m);
|
||||
switcher->executableSwitches.emplace_back();
|
||||
|
||||
QListWidgetItem *item;
|
||||
item = new QListWidgetItem(ui->executables);
|
||||
ui->executables->addItem(item);
|
||||
ExecutableSwitchWidget *sw = new ExecutableSwitchWidget(
|
||||
&switcher->executableSwitches.back());
|
||||
item->setSizeHint(sw->minimumSizeHint());
|
||||
ui->executables->setItemWidget(item, sw);
|
||||
listAddClicked(ui->executables,
|
||||
new ExecutableSwitchWidget(
|
||||
&switcher->executableSwitches.back()),
|
||||
ui->executableAdd, &addPulse);
|
||||
}
|
||||
|
||||
void AdvSceneSwitcher::on_executableRemove_clicked()
|
||||
@@ -224,8 +219,6 @@ ExecutableSwitchWidget::ExecutableSwitchWidget(ExecutableSwitch *s)
|
||||
requiresFocus->setChecked(s->inFocus);
|
||||
}
|
||||
|
||||
setStyleSheet("* { background-color: transparent; }");
|
||||
|
||||
QHBoxLayout *mainLayout = new QHBoxLayout;
|
||||
std::unordered_map<std::string, QWidget *> widgetPlaceholders = {
|
||||
{"{{processes}}", processes},
|
||||
|
||||
@@ -169,10 +169,14 @@ bool compareIgnoringLineEnding(QString &s1, QString &s2)
|
||||
while (!s1stream.atEnd() || !s2stream.atEnd()) {
|
||||
QString s1s = s1stream.readLine();
|
||||
QString s2s = s2stream.readLine();
|
||||
if (QString::compare(s1s, s2s, Qt::CaseSensitive) != 0) {
|
||||
if (s1s != s2s) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!s1stream.atEnd() && !s2stream.atEnd())
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -197,8 +201,8 @@ bool matchFileContent(QString &filedata, FileSwitch &s)
|
||||
bool checkRemoteFileContent(FileSwitch &s)
|
||||
{
|
||||
std::string data = getRemoteData(s.file);
|
||||
QString text = QString::fromStdString(s.text);
|
||||
return matchFileContent(text, s);
|
||||
QString qdata = QString::fromStdString(data);
|
||||
return matchFileContent(qdata, s);
|
||||
}
|
||||
|
||||
bool checkLocalFileContent(FileSwitch &s)
|
||||
@@ -226,6 +230,9 @@ void SwitcherData::checkFileContent(bool &match, OBSWeakSource &scene,
|
||||
OBSWeakSource &transition)
|
||||
{
|
||||
for (FileSwitch &s : fileSwitches) {
|
||||
if (!s.initialized())
|
||||
continue;
|
||||
|
||||
bool equal = false;
|
||||
if (s.remote) {
|
||||
equal = checkRemoteFileContent(s);
|
||||
@@ -250,13 +257,9 @@ void AdvSceneSwitcher::on_fileAdd_clicked()
|
||||
std::lock_guard<std::mutex> lock(switcher->m);
|
||||
switcher->fileSwitches.emplace_back();
|
||||
|
||||
QListWidgetItem *item;
|
||||
item = new QListWidgetItem(ui->fileSwitches);
|
||||
ui->fileSwitches->addItem(item);
|
||||
FileSwitchWidget *sw =
|
||||
new FileSwitchWidget(&switcher->fileSwitches.back());
|
||||
item->setSizeHint(sw->minimumSizeHint());
|
||||
ui->fileSwitches->setItemWidget(item, sw);
|
||||
listAddClicked(ui->fileSwitches,
|
||||
new FileSwitchWidget(&switcher->fileSwitches.back()),
|
||||
ui->fileAdd, &addPulse);
|
||||
}
|
||||
|
||||
void AdvSceneSwitcher::on_fileRemove_clicked()
|
||||
@@ -490,8 +493,6 @@ FileSwitchWidget::FileSwitchWidget(FileSwitch *s) : SwitchWidget(s, false)
|
||||
checkFileContent->setChecked(s->onlyMatchIfChanged);
|
||||
}
|
||||
|
||||
setStyleSheet("* { background-color: transparent; }");
|
||||
|
||||
std::unordered_map<std::string, QWidget *> widgetPlaceholders = {
|
||||
{"{{fileType}}", fileType},
|
||||
{"{{filePath}}", filePath},
|
||||
|
||||
@@ -30,6 +30,12 @@ SwitchWidget::SwitchWidget(SceneSwitcherEntry *s, bool usePreviousScene)
|
||||
scenes = new QComboBox();
|
||||
transitions = new QComboBox();
|
||||
|
||||
// Depending on selected OBS theme some widgets might have a different
|
||||
// background color than the listwidget and might look out of place
|
||||
setStyleSheet("QLabel { background-color: transparent; }\
|
||||
QSlider { background-color: transparent; }\
|
||||
QCheckBox { background-color: transparent; }");
|
||||
|
||||
QWidget::connect(scenes, SIGNAL(currentTextChanged(const QString &)),
|
||||
this, SLOT(SceneChanged(const QString &)));
|
||||
QWidget::connect(transitions,
|
||||
|
||||
@@ -8,18 +8,12 @@ constexpr auto media_any_idx = 9;
|
||||
|
||||
void AdvSceneSwitcher::on_mediaAdd_clicked()
|
||||
{
|
||||
ui->mediaAdd->disconnect(addPulse);
|
||||
|
||||
std::lock_guard<std::mutex> lock(switcher->m);
|
||||
switcher->mediaSwitches.emplace_back();
|
||||
|
||||
QListWidgetItem *item;
|
||||
item = new QListWidgetItem(ui->mediaSwitches);
|
||||
ui->mediaSwitches->addItem(item);
|
||||
MediaSwitchWidget *sw =
|
||||
new MediaSwitchWidget(&switcher->mediaSwitches.back());
|
||||
item->setSizeHint(sw->minimumSizeHint());
|
||||
ui->mediaSwitches->setItemWidget(item, sw);
|
||||
listAddClicked(ui->mediaSwitches,
|
||||
new MediaSwitchWidget(&switcher->mediaSwitches.back()),
|
||||
ui->mediaAdd, &addPulse);
|
||||
}
|
||||
|
||||
void AdvSceneSwitcher::on_mediaRemove_clicked()
|
||||
@@ -483,8 +477,6 @@ MediaSwitchWidget::MediaSwitchWidget(MediaSwitch *s) : SwitchWidget(s)
|
||||
time->setDisabled(true);
|
||||
}
|
||||
|
||||
setStyleSheet("* { background-color: transparent; }");
|
||||
|
||||
QHBoxLayout *mainLayout = new QHBoxLayout;
|
||||
std::unordered_map<std::string, QWidget *> widgetPlaceholders = {
|
||||
{"{{meidaSources}}", meidaSources},
|
||||
|
||||
@@ -7,18 +7,12 @@ static QMetaObject::Connection addPulse;
|
||||
|
||||
void AdvSceneSwitcher::on_randomAdd_clicked()
|
||||
{
|
||||
ui->randomAdd->disconnect(addPulse);
|
||||
|
||||
std::lock_guard<std::mutex> lock(switcher->m);
|
||||
switcher->randomSwitches.emplace_back();
|
||||
|
||||
QListWidgetItem *item;
|
||||
item = new QListWidgetItem(ui->randomSwitches);
|
||||
ui->randomSwitches->addItem(item);
|
||||
RandomSwitchWidget *sw =
|
||||
new RandomSwitchWidget(&switcher->randomSwitches.back());
|
||||
item->setSizeHint(sw->minimumSizeHint());
|
||||
ui->randomSwitches->setItemWidget(item, sw);
|
||||
listAddClicked(ui->randomSwitches,
|
||||
new RandomSwitchWidget(&switcher->randomSwitches.back()),
|
||||
ui->randomAdd, &addPulse);
|
||||
}
|
||||
|
||||
void AdvSceneSwitcher::on_randomRemove_clicked()
|
||||
@@ -153,8 +147,6 @@ RandomSwitchWidget::RandomSwitchWidget(RandomSwitch *s) : SwitchWidget(s, false)
|
||||
delay->setValue(s->delay);
|
||||
}
|
||||
|
||||
setStyleSheet("* { background-color: transparent; }");
|
||||
|
||||
QHBoxLayout *mainLayout = new QHBoxLayout;
|
||||
std::unordered_map<std::string, QWidget *> widgetPlaceholders = {
|
||||
{"{{scenes}}", scenes},
|
||||
|
||||
@@ -63,18 +63,13 @@ void AdvSceneSwitcher::on_screenRegionSwitches_currentRowChanged(int idx)
|
||||
|
||||
void AdvSceneSwitcher::on_screenRegionAdd_clicked()
|
||||
{
|
||||
ui->screenRegionAdd->disconnect(addPulse);
|
||||
|
||||
std::lock_guard<std::mutex> lock(switcher->m);
|
||||
switcher->screenRegionSwitches.emplace_back();
|
||||
|
||||
QListWidgetItem *item;
|
||||
item = new QListWidgetItem(ui->screenRegionSwitches);
|
||||
ui->screenRegionSwitches->addItem(item);
|
||||
ScreenRegionWidget *sw =
|
||||
new ScreenRegionWidget(&switcher->screenRegionSwitches.back());
|
||||
item->setSizeHint(sw->minimumSizeHint());
|
||||
ui->screenRegionSwitches->setItemWidget(item, sw);
|
||||
listAddClicked(
|
||||
ui->screenRegionSwitches,
|
||||
new ScreenRegionWidget(&switcher->screenRegionSwitches.back()),
|
||||
ui->screenRegionAdd, &addPulse);
|
||||
}
|
||||
|
||||
void AdvSceneSwitcher::on_screenRegionRemove_clicked()
|
||||
@@ -290,8 +285,6 @@ ScreenRegionWidget::ScreenRegionWidget(ScreenRegionSwitch *s)
|
||||
maxY->setValue(s->maxY);
|
||||
}
|
||||
|
||||
setStyleSheet("* { background-color: transparent; }");
|
||||
|
||||
QHBoxLayout *mainLayout = new QHBoxLayout;
|
||||
std::unordered_map<std::string, QWidget *> widgetPlaceholders = {
|
||||
{"{{minX}}", minX}, {"{{minY}}", minY},
|
||||
|
||||
@@ -9,18 +9,13 @@ static QMetaObject::Connection addPulse;
|
||||
|
||||
void AdvSceneSwitcher::on_sceneSequenceAdd_clicked()
|
||||
{
|
||||
ui->sceneSequenceAdd->disconnect(addPulse);
|
||||
|
||||
std::lock_guard<std::mutex> lock(switcher->m);
|
||||
switcher->sceneSequenceSwitches.emplace_back();
|
||||
|
||||
QListWidgetItem *item;
|
||||
item = new QListWidgetItem(ui->sceneSequenceSwitches);
|
||||
ui->sceneSequenceSwitches->addItem(item);
|
||||
SequenceWidget *sw =
|
||||
new SequenceWidget(&switcher->sceneSequenceSwitches.back());
|
||||
item->setSizeHint(sw->minimumSizeHint());
|
||||
ui->sceneSequenceSwitches->setItemWidget(item, sw);
|
||||
listAddClicked(
|
||||
ui->sceneSequenceSwitches,
|
||||
new SequenceWidget(&switcher->sceneSequenceSwitches.back()),
|
||||
ui->sceneSequenceAdd, &addPulse);
|
||||
}
|
||||
|
||||
void AdvSceneSwitcher::on_sceneSequenceRemove_clicked()
|
||||
@@ -353,8 +348,6 @@ SequenceWidget::SequenceWidget(SceneSequenceSwitch *s) : SwitchWidget(s)
|
||||
GetWeakSourceName(s->startScene).c_str());
|
||||
}
|
||||
|
||||
setStyleSheet("* { background-color: transparent; }");
|
||||
|
||||
QHBoxLayout *mainLayout = new QHBoxLayout;
|
||||
std::unordered_map<std::string, QWidget *> widgetPlaceholders = {
|
||||
{"{{startScenes}}", startScenes},
|
||||
|
||||
@@ -5,18 +5,12 @@ static QMetaObject::Connection addPulse;
|
||||
|
||||
void AdvSceneSwitcher::on_timeAdd_clicked()
|
||||
{
|
||||
ui->timeAdd->disconnect(addPulse);
|
||||
|
||||
std::lock_guard<std::mutex> lock(switcher->m);
|
||||
switcher->timeSwitches.emplace_back();
|
||||
|
||||
QListWidgetItem *item;
|
||||
item = new QListWidgetItem(ui->timeSwitches);
|
||||
ui->timeSwitches->addItem(item);
|
||||
TimeSwitchWidget *sw =
|
||||
new TimeSwitchWidget(&switcher->timeSwitches.back());
|
||||
item->setSizeHint(sw->minimumSizeHint());
|
||||
ui->timeSwitches->setItemWidget(item, sw);
|
||||
listAddClicked(ui->timeSwitches,
|
||||
new TimeSwitchWidget(&switcher->timeSwitches.back()),
|
||||
ui->timeAdd, &addPulse);
|
||||
}
|
||||
|
||||
void AdvSceneSwitcher::on_timeRemove_clicked()
|
||||
@@ -250,8 +244,6 @@ TimeSwitchWidget::TimeSwitchWidget(TimeSwitch *s) : SwitchWidget(s)
|
||||
time->setTime(s->time);
|
||||
}
|
||||
|
||||
setStyleSheet("* { background-color: transparent; }");
|
||||
|
||||
QHBoxLayout *mainLayout = new QHBoxLayout;
|
||||
std::unordered_map<std::string, QWidget *> widgetPlaceholders = {
|
||||
{"{{triggers}}", triggers},
|
||||
|
||||
@@ -6,13 +6,9 @@ void AdvSceneSwitcher::on_transitionsAdd_clicked()
|
||||
std::lock_guard<std::mutex> lock(switcher->m);
|
||||
switcher->sceneTransitions.emplace_back();
|
||||
|
||||
QListWidgetItem *item;
|
||||
item = new QListWidgetItem(ui->sceneTransitions);
|
||||
ui->sceneTransitions->addItem(item);
|
||||
TransitionSwitchWidget *sw =
|
||||
new TransitionSwitchWidget(&switcher->sceneTransitions.back());
|
||||
item->setSizeHint(sw->minimumSizeHint());
|
||||
ui->sceneTransitions->setItemWidget(item, sw);
|
||||
listAddClicked(
|
||||
ui->sceneTransitions,
|
||||
new TransitionSwitchWidget(&switcher->sceneTransitions.back()));
|
||||
}
|
||||
|
||||
void AdvSceneSwitcher::on_transitionsRemove_clicked()
|
||||
@@ -77,13 +73,9 @@ void AdvSceneSwitcher::on_defaultTransitionsAdd_clicked()
|
||||
std::lock_guard<std::mutex> lock(switcher->m);
|
||||
switcher->defaultSceneTransitions.emplace_back();
|
||||
|
||||
QListWidgetItem *item;
|
||||
item = new QListWidgetItem(ui->defaultTransitions);
|
||||
ui->defaultTransitions->addItem(item);
|
||||
DefTransitionSwitchWidget *sw = new DefTransitionSwitchWidget(
|
||||
&switcher->defaultSceneTransitions.back());
|
||||
item->setSizeHint(sw->minimumSizeHint());
|
||||
ui->defaultTransitions->setItemWidget(item, sw);
|
||||
listAddClicked(ui->defaultTransitions,
|
||||
new DefTransitionSwitchWidget(
|
||||
&switcher->defaultSceneTransitions.back()));
|
||||
}
|
||||
|
||||
void AdvSceneSwitcher::on_defaultTransitionsRemove_clicked()
|
||||
@@ -427,8 +419,6 @@ TransitionSwitchWidget::TransitionSwitchWidget(SceneTransition *s)
|
||||
scenes2->setCurrentText(GetWeakSourceName(s->scene2).c_str());
|
||||
}
|
||||
|
||||
setStyleSheet("* { background-color: transparent; }");
|
||||
|
||||
QHBoxLayout *mainLayout = new QHBoxLayout;
|
||||
std::unordered_map<std::string, QWidget *> widgetPlaceholders = {
|
||||
{"{{scenes}}", scenes},
|
||||
@@ -474,8 +464,6 @@ void TransitionSwitchWidget::Scene2Changed(const QString &text)
|
||||
DefTransitionSwitchWidget::DefTransitionSwitchWidget(DefaultSceneTransition *s)
|
||||
: SwitchWidget(s, false)
|
||||
{
|
||||
setStyleSheet("* { background-color: transparent; }");
|
||||
|
||||
QHBoxLayout *mainLayout = new QHBoxLayout;
|
||||
std::unordered_map<std::string, QWidget *> widgetPlaceholders = {
|
||||
{"{{scenes}}", scenes}, {"{{transitions}}", transitions}};
|
||||
|
||||
@@ -5,18 +5,12 @@ static QMetaObject::Connection addPulse;
|
||||
|
||||
void AdvSceneSwitcher::on_windowAdd_clicked()
|
||||
{
|
||||
ui->windowAdd->disconnect(addPulse);
|
||||
|
||||
std::lock_guard<std::mutex> lock(switcher->m);
|
||||
switcher->windowSwitches.emplace_back();
|
||||
|
||||
QListWidgetItem *item;
|
||||
item = new QListWidgetItem(ui->windowSwitches);
|
||||
ui->windowSwitches->addItem(item);
|
||||
WindowSwitchWidget *sw =
|
||||
new WindowSwitchWidget(&switcher->windowSwitches.back());
|
||||
item->setSizeHint(sw->minimumSizeHint());
|
||||
ui->windowSwitches->setItemWidget(item, sw);
|
||||
listAddClicked(ui->windowSwitches,
|
||||
new WindowSwitchWidget(&switcher->windowSwitches.back()),
|
||||
ui->windowAdd, &addPulse);
|
||||
}
|
||||
|
||||
void AdvSceneSwitcher::on_windowRemove_clicked()
|
||||
@@ -407,8 +401,6 @@ WindowSwitchWidget::WindowSwitchWidget(WindowSwitch *s) : SwitchWidget(s, false)
|
||||
focused->setChecked(s->focus);
|
||||
}
|
||||
|
||||
setStyleSheet("* { background-color: transparent; }");
|
||||
|
||||
QHBoxLayout *mainLayout = new QHBoxLayout;
|
||||
std::unordered_map<std::string, QWidget *> widgetPlaceholders = {
|
||||
{"{{windows}}", windows},
|
||||
|
||||
Reference in New Issue
Block a user