mirror of
https://github.com/WarmUpTill/SceneSwitcher.git
synced 2026-04-20 00:57:22 -05:00
Show currently active virtual desktop
This commit is contained in:
parent
d691492a31
commit
e9d6067db2
|
|
@ -123,7 +123,9 @@ AdvSceneSwitcher.condition.pluginState="Plugin state"
|
|||
AdvSceneSwitcher.condition.pluginState.state.sceneSwitched="Automated scene change was triggered in this interval"
|
||||
AdvSceneSwitcher.condition.pluginState.entry="{{condition}}"
|
||||
AdvSceneSwitcher.condition.virtDesktop="Virtual desktop"
|
||||
AdvSceneSwitcher.condition.virtDesktop.entry="Currently active virtual desktop is {{virtDesktops}}"
|
||||
AdvSceneSwitcher.condition.virtDesktop.notAvailable="Not availbale"
|
||||
AdvSceneSwitcher.condition.virtDesktop.entry.line1="Active virtual desktop is {{virtDesktops}}"
|
||||
AdvSceneSwitcher.condition.virtDesktop.entry.line2="Current: {{currentDesktop}}"
|
||||
|
||||
; Macro Actions
|
||||
AdvSceneSwitcher.action.switchScene="Switch scene"
|
||||
|
|
|
|||
|
|
@ -39,9 +39,11 @@ public:
|
|||
|
||||
private slots:
|
||||
void DesktopChanged(int value);
|
||||
void UpdateCurrentDesktop();
|
||||
|
||||
protected:
|
||||
QComboBox *_virtDesktops;
|
||||
QLabel *_currentDesktop;
|
||||
std::shared_ptr<MacroConditionVirtDesktop> _entryData;
|
||||
|
||||
private:
|
||||
|
|
|
|||
|
|
@ -46,20 +46,37 @@ MacroConditionVirtDesktopEdit::MacroConditionVirtDesktopEdit(
|
|||
QWidget *parent, std::shared_ptr<MacroConditionVirtDesktop> entryData)
|
||||
: QWidget(parent)
|
||||
{
|
||||
_currentDesktop = new QLabel();
|
||||
_currentDesktop->setTextInteractionFlags(Qt::TextSelectableByMouse);
|
||||
_virtDesktops = new QComboBox();
|
||||
QWidget::connect(_virtDesktops, SIGNAL(currentIndexChanged(int)), this,
|
||||
SLOT(DesktopChanged(int)));
|
||||
populateVirtualDesktopSelection(_virtDesktops);
|
||||
|
||||
QHBoxLayout *mainLayout = new QHBoxLayout;
|
||||
QVBoxLayout *mainLayout = new QVBoxLayout;
|
||||
QHBoxLayout *line1Layout = new QHBoxLayout;
|
||||
QHBoxLayout *line2Layout = new QHBoxLayout;
|
||||
std::unordered_map<std::string, QWidget *> widgetPlaceholders = {
|
||||
{"{{virtDesktops}}", _virtDesktops},
|
||||
{"{{currentDesktop}}", _currentDesktop},
|
||||
};
|
||||
placeWidgets(
|
||||
obs_module_text("AdvSceneSwitcher.condition.virtDesktop.entry"),
|
||||
mainLayout, widgetPlaceholders);
|
||||
obs_module_text(
|
||||
"AdvSceneSwitcher.condition.virtDesktop.entry.line1"),
|
||||
line1Layout, widgetPlaceholders);
|
||||
placeWidgets(
|
||||
obs_module_text(
|
||||
"AdvSceneSwitcher.condition.virtDesktop.entry.line2"),
|
||||
line2Layout, widgetPlaceholders);
|
||||
mainLayout->addLayout(line1Layout);
|
||||
mainLayout->addLayout(line2Layout);
|
||||
setLayout(mainLayout);
|
||||
|
||||
// Current virtual desktop position
|
||||
QTimer *timer = new QTimer(this);
|
||||
connect(timer, SIGNAL(timeout()), this, SLOT(UpdateCurrentDesktop()));
|
||||
timer->start(1000);
|
||||
|
||||
_entryData = entryData;
|
||||
UpdateEntryData();
|
||||
_loading = false;
|
||||
|
|
@ -83,3 +100,14 @@ void MacroConditionVirtDesktopEdit::UpdateEntryData()
|
|||
|
||||
_virtDesktops->setCurrentIndex(_entryData->_desktop);
|
||||
}
|
||||
|
||||
void MacroConditionVirtDesktopEdit::UpdateCurrentDesktop()
|
||||
{
|
||||
long curDesktop;
|
||||
if (GetCurrentVirtualDesktop(curDesktop)) {
|
||||
_currentDesktop->setText(QString::number(curDesktop));
|
||||
} else {
|
||||
_currentDesktop->setText(obs_module_text(
|
||||
"AdvSceneSwitcher.condition.virtDesktop.notAvailable"));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user