DolphinQt: Make disc ConvertDialog have a better minimum size, use QFormLayout, and clean up the code a bit.

This commit is contained in:
Jordan Woyak 2025-11-06 04:26:30 -06:00
parent 2170080f53
commit a7df85a626

View File

@ -5,14 +5,13 @@
#include <algorithm>
#include <filesystem>
#include <functional>
#include <future>
#include <memory>
#include <utility>
#include <QCheckBox>
#include <QComboBox>
#include <QGridLayout>
#include <QFormLayout>
#include <QGroupBox>
#include <QLabel>
#include <QList>
@ -42,8 +41,8 @@ ConvertDialog::ConvertDialog(QList<std::shared_ptr<const UICommon::GameFile>> fi
setWindowTitle(tr("Convert"));
QGridLayout* grid_layout = new QGridLayout;
grid_layout->setColumnStretch(1, 1);
auto* const form_layout = new QFormLayout;
form_layout->setFieldGrowthPolicy(QFormLayout::AllNonFixedFieldsGrow);
m_format = new QComboBox;
m_format->addItem(QStringLiteral("ISO"), static_cast<int>(DiscIO::BlobType::PLAIN));
@ -55,34 +54,23 @@ ConvertDialog::ConvertDialog(QList<std::shared_ptr<const UICommon::GameFile>> fi
{
m_format->setCurrentIndex(m_format->count() - 1);
}
grid_layout->addWidget(new QLabel(tr("Format:")), 0, 0);
grid_layout->addWidget(m_format, 0, 1);
form_layout->addRow(tr("Format:"), m_format);
m_block_size = new QComboBox;
grid_layout->addWidget(new QLabel(tr("Block Size:")), 1, 0);
grid_layout->addWidget(m_block_size, 1, 1);
form_layout->addRow(tr("Block Size:"), m_block_size);
m_compression = new QComboBox;
grid_layout->addWidget(new QLabel(tr("Compression:")), 2, 0);
grid_layout->addWidget(m_compression, 2, 1);
form_layout->addRow(tr("Compression:"), m_compression);
m_compression_level = new QComboBox;
grid_layout->addWidget(new QLabel(tr("Compression Level:")), 3, 0);
grid_layout->addWidget(m_compression_level, 3, 1);
form_layout->addRow(tr("Compression Level:"), m_compression_level);
m_scrub = new QCheckBox;
grid_layout->addWidget(new QLabel(tr("Remove Junk Data (Irreversible):")), 4, 0);
grid_layout->addWidget(m_scrub, 4, 1);
form_layout->addRow(tr("Remove Junk Data (Irreversible):"), m_scrub);
QPushButton* convert_button = new QPushButton(tr("Convert..."));
auto* const convert_button = new QPushButton(tr("Convert..."));
QVBoxLayout* options_layout = new QVBoxLayout;
options_layout->addLayout(grid_layout);
options_layout->addWidget(convert_button);
QGroupBox* options_group = new QGroupBox(tr("Options"));
options_group->setLayout(options_layout);
QLabel* info_text = new QLabel(
auto* const info_text = new QLabel(
tr("ISO: A simple and robust format which is supported by many programs. It takes up more "
"space than any other format.\n\n"
"GCZ: A basic compressed format which is compatible with most versions of Dolphin and "
@ -94,17 +82,20 @@ ConvertDialog::ConvertDialog(QList<std::shared_ptr<const UICommon::GameFile>> fi
"RVZ: An advanced compressed format which is compatible with Dolphin 5.0-12188 and later. "
"It can efficiently compress both junk data and encrypted Wii data."));
info_text->setWordWrap(true);
info_text->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
QVBoxLayout* info_layout = new QVBoxLayout;
auto* const options_group = new QGroupBox(tr("Options"));
auto* const options_layout = new QVBoxLayout{options_group};
options_layout->addLayout(form_layout);
options_layout->addWidget(convert_button);
auto* const info_group = new QGroupBox(tr("Info"));
auto* const info_layout = new QVBoxLayout{info_group};
info_layout->addWidget(info_text);
QGroupBox* info_group = new QGroupBox(tr("Info"));
info_group->setLayout(info_layout);
QVBoxLayout* main_layout = new QVBoxLayout;
auto* const main_layout = new QVBoxLayout{this};
main_layout->addWidget(options_group);
main_layout->addWidget(info_group);
setLayout(main_layout);
main_layout->addWidget(info_group, 1);
connect(m_format, &QComboBox::currentIndexChanged, this, &ConvertDialog::OnFormatChanged);
connect(m_compression, &QComboBox::currentIndexChanged, this,