ソースを参照

frontend: Adjust scene collection importer

Warchamp7 7 ヶ月 前
コミット
cd6bb523ae

+ 2 - 1
frontend/data/locale/en-US.ini

@@ -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"

+ 14 - 7
frontend/data/themes/Yami.obt

@@ -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);
 }
 

+ 12 - 6
frontend/data/themes/Yami_Light.ovt

@@ -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);
 }
 

+ 15 - 8
frontend/forms/OBSImporter.ui

@@ -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">

+ 15 - 3
frontend/importer/OBSImporter.cpp

@@ -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);
 }