Checks for CD before opening window (addresses #4165)
This commit is contained in:
parent
fc728f9bfc
commit
4251fd4331
@ -1684,7 +1684,8 @@ void MainWindow::OpenRipCD() {
|
|||||||
if (!rip_cd_) {
|
if (!rip_cd_) {
|
||||||
rip_cd_.reset(new RipCD);
|
rip_cd_.reset(new RipCD);
|
||||||
}
|
}
|
||||||
if(rip_cd_->CDIOIsValid()) {
|
if(rip_cd_->CheckCDIOIsValid()) {
|
||||||
|
rip_cd_->BuildTrackListTable();
|
||||||
rip_cd_->show();
|
rip_cd_->show();
|
||||||
} else {
|
} else {
|
||||||
QMessageBox cdio_fail(QMessageBox::Critical, tr("Error"), tr("Failed reading CD drive"));
|
QMessageBox cdio_fail(QMessageBox::Critical, tr("Error"), tr("Failed reading CD drive"));
|
||||||
|
@ -117,28 +117,6 @@ RipCD::RipCD(QWidget* parent) :
|
|||||||
setWindowTitle(tr("Rip CD"));
|
setWindowTitle(tr("Rip CD"));
|
||||||
AddDestinationDirectory(QDir::homePath());
|
AddDestinationDirectory(QDir::homePath());
|
||||||
|
|
||||||
cdio_ = cdio_open(NULL, DRIVER_UNKNOWN);
|
|
||||||
if(!cdio_) {
|
|
||||||
qLog(Error) << "Failed to read CD drive";
|
|
||||||
return;
|
|
||||||
} else {
|
|
||||||
i_tracks_ = cdio_get_num_tracks(cdio_);
|
|
||||||
ui_->tableWidget->setRowCount(i_tracks_);
|
|
||||||
for (int i = 1; i <= i_tracks_; i++) {
|
|
||||||
QCheckBox *checkbox_i = new QCheckBox(ui_->tableWidget);
|
|
||||||
checkbox_i->setCheckState(Qt::Checked);
|
|
||||||
checkboxes_.append(checkbox_i);
|
|
||||||
ui_->tableWidget->setCellWidget(i - 1, kCheckboxColumn, checkbox_i);
|
|
||||||
ui_->tableWidget->setCellWidget(i - 1, kTrackNumberColumn,
|
|
||||||
new QLabel(QString::number(i)));
|
|
||||||
QString track_title = QString("Track %1").arg(i);
|
|
||||||
QLineEdit *line_edit_track_title_i = new QLineEdit(track_title,
|
|
||||||
ui_->tableWidget);
|
|
||||||
track_names_.append(line_edit_track_title_i);
|
|
||||||
ui_->tableWidget->setCellWidget(i - 1, kTrackTitleColumn,
|
|
||||||
line_edit_track_title_i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Get presets
|
// Get presets
|
||||||
QList <TranscoderPreset> presets = Transcoder::GetAllPresets();
|
QList <TranscoderPreset> presets = Transcoder::GetAllPresets();
|
||||||
qSort(presets.begin(), presets.end(), ComparePresetsByName);
|
qSort(presets.begin(), presets.end(), ComparePresetsByName);
|
||||||
@ -418,7 +396,8 @@ void RipCD::Cancel() {
|
|||||||
SetWorking(false);
|
SetWorking(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool RipCD::CDIOIsValid() const {
|
bool RipCD::CheckCDIOIsValid() {
|
||||||
|
cdio_ = cdio_open(NULL, DRIVER_UNKNOWN);
|
||||||
return (cdio_);
|
return (cdio_);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -458,3 +437,23 @@ void RipCD::RemoveTemporaryDirectory() {
|
|||||||
Utilities::RemoveRecursive(temporary_directory_);
|
Utilities::RemoveRecursive(temporary_directory_);
|
||||||
temporary_directory_.clear();
|
temporary_directory_.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RipCD::BuildTrackListTable() {
|
||||||
|
ui_->tableWidget->clear();
|
||||||
|
i_tracks_ = cdio_get_num_tracks(cdio_);
|
||||||
|
ui_->tableWidget->setRowCount(i_tracks_);
|
||||||
|
for (int i = 1; i <= i_tracks_; i++) {
|
||||||
|
QCheckBox *checkbox_i = new QCheckBox(ui_->tableWidget);
|
||||||
|
checkbox_i->setCheckState(Qt::Checked);
|
||||||
|
checkboxes_.append(checkbox_i);
|
||||||
|
ui_->tableWidget->setCellWidget(i - 1, kCheckboxColumn, checkbox_i);
|
||||||
|
ui_->tableWidget->setCellWidget(i - 1, kTrackNumberColumn,
|
||||||
|
new QLabel(QString::number(i)));
|
||||||
|
QString track_title = QString("Track %1").arg(i);
|
||||||
|
QLineEdit *line_edit_track_title_i = new QLineEdit(track_title,
|
||||||
|
ui_->tableWidget);
|
||||||
|
track_names_.append(line_edit_track_title_i);
|
||||||
|
ui_->tableWidget->setCellWidget(i - 1, kTrackTitleColumn,
|
||||||
|
line_edit_track_title_i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -36,7 +36,8 @@ class RipCD: public QDialog {
|
|||||||
public:
|
public:
|
||||||
explicit RipCD(QWidget* parent = 0);
|
explicit RipCD(QWidget* parent = 0);
|
||||||
~RipCD();
|
~RipCD();
|
||||||
bool CDIOIsValid() const;
|
bool CheckCDIOIsValid();
|
||||||
|
void BuildTrackListTable();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static const char* kSettingsGroup;
|
static const char* kSettingsGroup;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user