frontend: Adjust scene collection importer

This commit is contained in:
Warchamp7 2025-02-23 00:05:16 -05:00 committed by Ryan Foster
parent 3906fece61
commit cd6bb523ae
5 changed files with 58 additions and 25 deletions

View File

@ -1443,7 +1443,7 @@ ResizeOutputSizeOfSource.Continue="Do you want to continue?"
PreviewTransition="Preview Transition"
# Import Dialog
Importer="Scene Collection Importer"
Importer="Import Scene Collection"
Importer.SelectCollection="Select a Scene Collection"
Importer.Collection="Scene Collection"
Importer.HelpText="Add files to this window to import collections from OBS or other supported programs."
@ -1451,6 +1451,7 @@ Importer.Path="Collection Path"
Importer.Program="Detected Application"
Importer.AutomaticCollectionPrompt="Automatically Search for Scene Collections"
Importer.AutomaticCollectionText="OBS can automatically find importable scene collections from supported third-party programs. Would you like OBS to automatically find collections for you?\n\nYou can change this later in Settings > General > Importers."
Importer.SelectFile="Browse..."
# Importers
OBSStudio="OBS Studio"

View File

@ -1555,7 +1555,8 @@ OBSBasicSettings {
/* Checkboxes */
QCheckBox::indicator,
QGroupBox::indicator {
QGroupBox::indicator,
QTableView::indicator {
width: var(--icon_base);
height: var(--icon_base);
}
@ -1565,33 +1566,39 @@ QGroupBox::indicator {
}
QCheckBox::indicator:unchecked,
QGroupBox::indicator:unchecked {
QGroupBox::indicator:unchecked,
QTableView::indicator:unchecked {
image: url(theme:Yami/checkbox_unchecked.svg);
}
QCheckBox::indicator:unchecked:hover,
QGroupBox::indicator:unchecked:hover {
QGroupBox::indicator:unchecked:hover,
QTableView::indicator:unchecked:hover {
border: none;
image: url(theme:Yami/checkbox_unchecked_focus.svg);
}
QCheckBox::indicator:checked,
QGroupBox::indicator:checked {
QGroupBox::indicator:checked,
QTableView::indicator:checked {
image: url(theme:Yami/checkbox_checked.svg);
}
QCheckBox::indicator:checked:hover,
QGroupBox::indicator:checked:hover {
QGroupBox::indicator:checked:hover,
QTableView::indicator:checked:hover {
image: url(theme:Yami/checkbox_checked_focus.svg);
}
QCheckBox::indicator:checked:disabled,
QGroupBox::indicator:checked:disabled {
QGroupBox::indicator:checked:disabled,
QTableView::indicator:checked:disabled {
image: url(theme:Yami/checkbox_checked_disabled.svg);
}
QCheckBox::indicator:unchecked:disabled,
QGroupBox::indicator:unchecked:disabled {
QGroupBox::indicator:unchecked:disabled,
QTableView::indicator:unchecked:disabled {
image: url(theme:Yami/checkbox_unchecked_disabled.svg);
}

View File

@ -157,32 +157,38 @@ OBSBasicSettings {
}
QCheckBox::indicator:unchecked,
QGroupBox::indicator:unchecked {
QGroupBox::indicator:unchecked,
QTableView::indicator:unchecked {
image: url(theme:Light/checkbox_unchecked.svg);
}
QCheckBox::indicator:unchecked:hover,
QGroupBox::indicator:unchecked:hover {
QGroupBox::indicator:unchecked:hover,
QTableView::indicator:unchecked:hover {
image: url(theme:Light/checkbox_unchecked_focus.svg);
}
QCheckBox::indicator:checked,
QGroupBox::indicator:checked {
QGroupBox::indicator:checked,
QTableView::indicator:checked {
image: url(theme:Light/checkbox_checked.svg);
}
QCheckBox::indicator:checked:hover,
QGroupBox::indicator:checked:hover {
QGroupBox::indicator:checked:hover,
QTableView::indicator:checked:hover {
image: url(theme:Light/checkbox_checked_focus.svg);
}
QCheckBox::indicator:checked:disabled,
QGroupBox::indicator:checked:disabled {
QGroupBox::indicator:checked:disabled,
QTableView::indicator:checked:disabled {
image: url(theme:Light/checkbox_checked_disabled.svg);
}
QCheckBox::indicator:unchecked:disabled,
QGroupBox::indicator:unchecked:disabled {
QGroupBox::indicator:unchecked:disabled,
QTableView::indicator:unchecked:disabled {
image: url(theme:Light/checkbox_unchecked_disabled.svg);
}

View File

@ -17,27 +17,34 @@
<bool>true</bool>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Importer.HelpText</string>
</property>
</widget>
</item>
<item row="2" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_4">
<property name="spacing">
<number>6</number>
</property>
<item>
<widget class="QPushButton" name="importerSelectFiles">
<property name="text">
<string>Importer.SelectFile</string>
</property>
</widget>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="standardButtons">
<set>QDialogButtonBox::Close|QDialogButtonBox::Ok|QDialogButtonBox::Open</set>
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Importer.HelpText</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QTableView" name="tableView">
<property name="selectionMode">

View File

@ -42,6 +42,7 @@ OBSImporter::OBSImporter(QWidget *parent) : QDialog(parent), optionsModel(new Im
ui->tableView->setModel(optionsModel);
ui->tableView->setItemDelegateForColumn(ImporterColumn::Path, new ImporterEntryPathItemDelegate());
ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeMode::ResizeToContents);
ui->tableView->horizontalHeader()->setSectionResizeMode(ImporterColumn::Name, QHeaderView::ResizeMode::Stretch);
ui->tableView->horizontalHeader()->setSectionResizeMode(ImporterColumn::Path, QHeaderView::ResizeMode::Stretch);
connect(optionsModel, &ImporterModel::dataChanged, this, &OBSImporter::dataChanged);
@ -49,12 +50,11 @@ OBSImporter::OBSImporter(QWidget *parent) : QDialog(parent), optionsModel(new Im
ui->tableView->setEditTriggers(QAbstractItemView::EditTrigger::CurrentChanged);
ui->buttonBox->button(QDialogButtonBox::Ok)->setText(QTStr("Import"));
ui->buttonBox->button(QDialogButtonBox::Open)->setText(QTStr("Add"));
connect(ui->buttonBox->button(QDialogButtonBox::Ok), &QPushButton::clicked, this,
&OBSImporter::importCollections);
connect(ui->buttonBox->button(QDialogButtonBox::Open), &QPushButton::clicked, this, &OBSImporter::browseImport);
connect(ui->buttonBox->button(QDialogButtonBox::Close), &QPushButton::clicked, this, &OBSImporter::close);
connect(ui->importerSelectFiles, &QPushButton::clicked, this, &OBSImporter::browseImport);
connect(ui->buttonBox->button(QDialogButtonBox::Cancel), &QPushButton::clicked, this, &OBSImporter::close);
ImportersInit();
@ -229,4 +229,16 @@ void OBSImporter::importCollections()
void OBSImporter::dataChanged()
{
ui->tableView->resizeColumnToContents(ImporterColumn::Name);
bool enableImportButton = false;
for (int i = 0; i < optionsModel->rowCount() - 1; i++) {
int selected = optionsModel->index(i, ImporterColumn::Selected).data(Qt::CheckStateRole).value<int>();
if (selected == Qt::Checked) {
enableImportButton = true;
break;
}
}
ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(enableImportButton);
}