qt: Change default disk type to dynamic vhd
This commit is contained in:
@@ -31,6 +31,12 @@ FileField::FileField(QWidget *parent)
|
|||||||
fileName_ = ui->label->text();
|
fileName_ = ui->label->text();
|
||||||
emit fileSelected(ui->label->text(), true);
|
emit fileSelected(ui->label->text(), true);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
connect(ui->label, &QLineEdit::textChanged, this, [this]() {
|
||||||
|
fileName_ = ui->label->text();
|
||||||
|
emit fileTextEntered(ui->label->text(), true);
|
||||||
|
});
|
||||||
|
|
||||||
this->setFixedWidth(this->sizeHint().width() + ui->pushButton->sizeHint().width());
|
this->setFixedWidth(this->sizeHint().width() + ui->pushButton->sizeHint().width());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -19,12 +19,14 @@ public:
|
|||||||
|
|
||||||
void setFilter(const QString &filter) { filter_ = filter; }
|
void setFilter(const QString &filter) { filter_ = filter; }
|
||||||
QString selectedFilter() const { return selectedFilter_; }
|
QString selectedFilter() const { return selectedFilter_; }
|
||||||
|
void setselectedFilter(const QString &selectedFilter) { selectedFilter_ = selectedFilter; }
|
||||||
|
|
||||||
void setCreateFile(bool createFile) { createFile_ = createFile; }
|
void setCreateFile(bool createFile) { createFile_ = createFile; }
|
||||||
bool createFile() { return createFile_; }
|
bool createFile() { return createFile_; }
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void fileSelected(const QString &fileName, bool precheck = false);
|
void fileSelected(const QString &fileName, bool precheck = false);
|
||||||
|
void fileTextEntered(const QString &fileName, bool precheck = false);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void on_pushButton_clicked();
|
void on_pushButton_clicked();
|
||||||
|
@@ -84,6 +84,13 @@ HarddiskDialog::HarddiskDialog(bool existing, QWidget *parent)
|
|||||||
ui->lineEditSize->setValidator(new QIntValidator());
|
ui->lineEditSize->setValidator(new QIntValidator());
|
||||||
ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
|
ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
|
||||||
|
|
||||||
|
filters = QStringList({ tr("Raw image") % util::DlgFilter({ "img" }, true),
|
||||||
|
tr("HDI image") % util::DlgFilter({ "hdi" }, true),
|
||||||
|
tr("HDX image") % util::DlgFilter({ "hdx" }, true),
|
||||||
|
tr("Fixed-size VHD") % util::DlgFilter({ "vhd" }, true),
|
||||||
|
tr("Dynamic-size VHD") % util::DlgFilter({ "vhd" }, true),
|
||||||
|
tr("Differencing VHD") % util::DlgFilter({ "vhd" }, true) });
|
||||||
|
|
||||||
if (existing) {
|
if (existing) {
|
||||||
ui->fileField->setFilter(tr("Hard disk images") % util::DlgFilter({ "hd?", "im?", "vhd" }) % tr("All files") % util::DlgFilter({ "*" }, true));
|
ui->fileField->setFilter(tr("Hard disk images") % util::DlgFilter({ "hd?", "im?", "vhd" }) % tr("All files") % util::DlgFilter({ "*" }, true));
|
||||||
|
|
||||||
@@ -99,24 +106,26 @@ HarddiskDialog::HarddiskDialog(bool existing, QWidget *parent)
|
|||||||
|
|
||||||
connect(ui->fileField, &FileField::fileSelected, this, &HarddiskDialog::onExistingFileSelected);
|
connect(ui->fileField, &FileField::fileSelected, this, &HarddiskDialog::onExistingFileSelected);
|
||||||
} else {
|
} else {
|
||||||
QStringList filters({ tr("Raw image") % util::DlgFilter({ "img" }, true),
|
|
||||||
tr("HDI image") % util::DlgFilter({ "hdi" }, true),
|
|
||||||
tr("HDX image") % util::DlgFilter({ "hdx" }, true),
|
|
||||||
tr("Fixed-size VHD") % util::DlgFilter({ "vhd" }, true),
|
|
||||||
tr("Dynamic-size VHD") % util::DlgFilter({ "vhd" }, true),
|
|
||||||
tr("Differencing VHD") % util::DlgFilter({ "vhd" }, true) });
|
|
||||||
|
|
||||||
ui->fileField->setFilter(filters.join(";;"));
|
ui->fileField->setFilter(filters.join(";;"));
|
||||||
|
|
||||||
setWindowTitle(tr("Add New Hard Disk"));
|
setWindowTitle(tr("Add New Hard Disk"));
|
||||||
ui->fileField->setCreateFile(true);
|
ui->fileField->setCreateFile(true);
|
||||||
|
|
||||||
connect(ui->fileField, &FileField::fileSelected, this, [this, filters] {
|
// Enable the OK button as long as the filename length is non-zero
|
||||||
|
connect(ui->fileField, &FileField::fileTextEntered, this, [this] {
|
||||||
|
ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled((this->fileName().length() > 0));
|
||||||
|
});
|
||||||
|
|
||||||
|
connect(ui->fileField, &FileField::fileSelected, this, [this] {
|
||||||
int filter = filters.indexOf(ui->fileField->selectedFilter());
|
int filter = filters.indexOf(ui->fileField->selectedFilter());
|
||||||
if (filter > -1)
|
if (filter > -1)
|
||||||
ui->comboBoxFormat->setCurrentIndex(filter);
|
ui->comboBoxFormat->setCurrentIndex(filter);
|
||||||
ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true);
|
ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true);
|
||||||
});
|
});
|
||||||
|
// Set the default format to Dynamic-size VHD. Do it last after everything is set up
|
||||||
|
// so the currentIndexChanged signal can do what is needed
|
||||||
|
ui->comboBoxFormat->setCurrentIndex(DEFAULT_DISK_FORMAT);
|
||||||
|
ui->fileField->setselectedFilter(filters.value(DEFAULT_DISK_FORMAT));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -179,6 +188,7 @@ HarddiskDialog::on_comboBoxFormat_currentIndexChanged(int index)
|
|||||||
ui->comboBoxBlockSize->show();
|
ui->comboBoxBlockSize->show();
|
||||||
ui->labelBlockSize->show();
|
ui->labelBlockSize->show();
|
||||||
}
|
}
|
||||||
|
ui->fileField->setselectedFilter(filters.value(index));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If the disk geometry requested in the 86Box GUI is not compatible with the internal VHD geometry,
|
/* If the disk geometry requested in the 86Box GUI is not compatible with the internal VHD geometry,
|
||||||
|
@@ -52,6 +52,11 @@ private:
|
|||||||
|
|
||||||
bool disallowSizeModifications = false;
|
bool disallowSizeModifications = false;
|
||||||
|
|
||||||
|
QStringList filters;
|
||||||
|
// "Dynamic-size VHD" is number 4 in the `filters` list and the
|
||||||
|
// comboBoxFormat model
|
||||||
|
const uint8_t DEFAULT_DISK_FORMAT = 4;
|
||||||
|
|
||||||
bool checkAndAdjustCylinders();
|
bool checkAndAdjustCylinders();
|
||||||
bool checkAndAdjustHeads();
|
bool checkAndAdjustHeads();
|
||||||
bool checkAndAdjustSectors();
|
bool checkAndAdjustSectors();
|
||||||
|
Reference in New Issue
Block a user