mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-04-15 20:17:41 -04:00
Implement context menu on 'sources' box
This commit is contained in:
@@ -88,6 +88,12 @@ OBSBasic::OBSBasic(QWidget *parent)
|
||||
this,
|
||||
SLOT(SceneItemNameEdited(QWidget*,
|
||||
QAbstractItemDelegate::EndEditHint)));
|
||||
|
||||
removeItemAction = new QAction(QTStr("Remove"), this);
|
||||
removeItemAction->setShortcut(QKeySequence(Qt::Key_Delete));
|
||||
connect(removeItemAction, SIGNAL(triggered()),
|
||||
this, SLOT(RemoveSelectedItem()));
|
||||
addAction(removeItemAction);
|
||||
}
|
||||
|
||||
static void SaveAudioDevice(const char *name, int channel, obs_data_t parent)
|
||||
@@ -786,6 +792,25 @@ void OBSBasic::DeactivateAudioSource(OBSSource source)
|
||||
}
|
||||
}
|
||||
|
||||
void OBSBasic::RemoveSelectedItem()
|
||||
{
|
||||
OBSSceneItem item = GetCurrentSceneItem();
|
||||
if (item) {
|
||||
obs_source_t source = obs_sceneitem_getsource(item);
|
||||
const char *name = obs_source_getname(source);
|
||||
|
||||
QString text = QTStr("ConfirmRemove.Text");
|
||||
text.replace("$1", QT_UTF8(name));
|
||||
|
||||
QMessageBox::StandardButton button;
|
||||
button = QMessageBox::question(this,
|
||||
QTStr("ConfirmRemove.Remove"), text);
|
||||
|
||||
if (button == QMessageBox::Yes)
|
||||
obs_sceneitem_remove(item);
|
||||
}
|
||||
}
|
||||
|
||||
/* OBS Callbacks */
|
||||
|
||||
void OBSBasic::SceneItemAdded(void *data, calldata_t params)
|
||||
@@ -1211,6 +1236,11 @@ void OBSBasic::on_scenes_currentItemChanged(QListWidgetItem *current,
|
||||
UNUSED_PARAMETER(prev);
|
||||
}
|
||||
|
||||
void OBSBasic::EditSceneName()
|
||||
{
|
||||
ui->scenes->editItem(ui->scenes->currentItem());
|
||||
}
|
||||
|
||||
void OBSBasic::on_scenes_customContextMenuRequested(const QPoint &pos)
|
||||
{
|
||||
/* TODO */
|
||||
@@ -1315,10 +1345,34 @@ void OBSBasic::on_sources_currentItemChanged(QListWidgetItem *current,
|
||||
UNUSED_PARAMETER(prev);
|
||||
}
|
||||
|
||||
void OBSBasic::EditSceneItemName()
|
||||
{
|
||||
ui->sources->editItem(ui->sources->currentItem());
|
||||
}
|
||||
|
||||
void OBSBasic::on_sources_customContextMenuRequested(const QPoint &pos)
|
||||
{
|
||||
/* TODO */
|
||||
UNUSED_PARAMETER(pos);
|
||||
QListWidgetItem *item = ui->sources->itemAt(pos);
|
||||
|
||||
QMenu popup;
|
||||
QPointer<QMenu> addSourceMenu = CreateAddSourcePopupMenu();
|
||||
if (addSourceMenu)
|
||||
popup.addMenu(addSourceMenu);
|
||||
|
||||
if (item) {
|
||||
if (addSourceMenu)
|
||||
popup.addSeparator();
|
||||
|
||||
popup.addAction(QTStr("Rename"), this,
|
||||
SLOT(EditSceneItemName()));
|
||||
popup.addAction(removeItemAction);
|
||||
popup.addMenu(ui->transformMenu);
|
||||
popup.addSeparator();
|
||||
popup.addAction(QTStr("Properties"), this,
|
||||
SLOT(on_actionSourceProperties_triggered()));
|
||||
}
|
||||
|
||||
popup.exec(QCursor::pos());
|
||||
}
|
||||
|
||||
void OBSBasic::AddSource(const char *id)
|
||||
|
||||
Reference in New Issue
Block a user