UI: Add scene grid mode to view menu

Makes toggling of the scene list grid mode also available in the
view menu.
This commit is contained in:
cg2121 2023-02-08 03:57:51 -06:00 committed by Lain
parent 17cb966c62
commit 3a53882675
4 changed files with 56 additions and 0 deletions

View file

@ -113,6 +113,8 @@ SourceProperties="Open Source Properties"
SourceFilters="Open Source Filters"
MixerToolbarMenu="Audio Mixer Menu"
SceneFilters="Open Scene Filters"
List="List"
Grid="Grid"
# warning for plugin load failures
PluginsFailedToLoad.Title="Plugin Load Error"
@ -794,6 +796,7 @@ Basic.MainMenu.View.StatusBar="&Status Bar"
Basic.MainMenu.View.Fullscreen.Interface="Fullscreen Interface"
Basic.MainMenu.View.ResetUI="&Reset UI"
Basic.MainMenu.View.AlwaysOnTop="&Always On Top"
Basic.MainMenu.View.SceneListMode="Scene List Mode"
#basic mode docks menu

View file

@ -667,6 +667,13 @@
<property name="title">
<string>Basic.MainMenu.View</string>
</property>
<widget class="QMenu" name="sceneListModeMenu">
<property name="title">
<string>Basic.MainMenu.View.SceneListMode</string>
</property>
<addaction name="actionSceneListMode"/>
<addaction name="actionSceneGridMode"/>
</widget>
<action name="resetUI">
<property name="text">
<string>Basic.MainMenu.View.ResetUI</string>
@ -683,6 +690,7 @@
<addaction name="resetUI"/>
<addaction name="actionFullscreenInterface"/>
<addaction name="separator"/>
<addaction name="sceneListModeMenu"/>
<addaction name="toggleListboxToolbars"/>
<addaction name="toggleContextBar"/>
<addaction name="toggleSourceIcons"/>
@ -2300,6 +2308,22 @@
<string>filtersIcon</string>
</property>
</action>
<action name="actionSceneGridMode">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text">
<string>Grid</string>
</property>
</action>
<action name="actionSceneListMode">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text">
<string>List</string>
</property>
</action>
</widget>
<customwidgets>
<customwidget>

View file

@ -34,6 +34,7 @@
#include <QSizePolicy>
#include <QScrollBar>
#include <QTextStream>
#include <QActionGroup>
#include <util/dstr.h>
#include <util/util.hpp>
@ -352,6 +353,11 @@ OBSBasic::OBSBasic(QWidget *parent)
"gridMode");
ui->scenes->SetGridMode(sceneGrid);
if (sceneGrid)
ui->actionSceneGridMode->setChecked(true);
else
ui->actionSceneListMode->setChecked(true);
ui->scenes->setItemDelegate(new SceneRenameDelegate(ui->scenes));
auto displayResize = [this]() {
@ -517,6 +523,10 @@ OBSBasic::OBSBasic(QWidget *parent)
connect(App(), &OBSApp::StyleChanged, this,
&OBSBasic::ResetProxyStyleSliders);
QActionGroup *actionGroup = new QActionGroup(this);
actionGroup->addAction(ui->actionSceneListMode);
actionGroup->addAction(ui->actionSceneGridMode);
UpdatePreviewSafeAreas();
UpdatePreviewSpacingHelpers();
UpdatePreviewOverflowSettings();
@ -5464,10 +5474,25 @@ void OBSBasic::on_scenes_customContextMenuRequested(const QPoint &pos)
popup.exec(QCursor::pos());
}
void OBSBasic::on_actionSceneListMode_triggered()
{
ui->scenes->SetGridMode(false);
}
void OBSBasic::on_actionSceneGridMode_triggered()
{
ui->scenes->SetGridMode(true);
}
void OBSBasic::GridActionClicked()
{
bool gridMode = !ui->scenes->GetGridMode();
ui->scenes->SetGridMode(gridMode);
if (gridMode)
ui->actionSceneGridMode->setChecked(true);
else
ui->actionSceneListMode->setChecked(true);
}
void OBSBasic::on_actionAddScene_triggered()
@ -9346,6 +9371,8 @@ void OBSBasic::on_resetUI_triggered()
ui->toggleContextBar->setChecked(true);
ui->toggleSourceIcons->setChecked(true);
ui->toggleStatusBar->setChecked(true);
ui->scenes->SetGridMode(false);
ui->actionSceneListMode->setChecked(true);
}
void OBSBasic::on_multiviewProjectorWindowed_triggered()

View file

@ -1062,6 +1062,8 @@ private slots:
QListWidgetItem *prev);
void on_scenes_customContextMenuRequested(const QPoint &pos);
void GridActionClicked();
void on_actionSceneListMode_triggered();
void on_actionSceneGridMode_triggered();
void on_actionAddScene_triggered();
void on_actionRemoveScene_triggered();
void on_actionSceneUp_triggered();