Added ripcd to optional features, deleted ui_ripcd on destruction, added a warning in case cdio_open returns NULL

This commit is contained in:
asiviero 2014-01-22 01:44:56 -02:00
parent 2859d826ae
commit 7cebf23bba
4 changed files with 43 additions and 18 deletions

View File

@ -351,7 +351,6 @@ set(SOURCES
ui/organiseerrordialog.cpp ui/organiseerrordialog.cpp
ui/playbacksettingspage.cpp ui/playbacksettingspage.cpp
ui/qtsystemtrayicon.cpp ui/qtsystemtrayicon.cpp
ui/ripcd.cpp
ui/screensaver.cpp ui/screensaver.cpp
ui/settingsdialog.cpp ui/settingsdialog.cpp
ui/settingspage.cpp ui/settingspage.cpp
@ -630,7 +629,6 @@ set(HEADERS
ui/organiseerrordialog.h ui/organiseerrordialog.h
ui/playbacksettingspage.h ui/playbacksettingspage.h
ui/qtsystemtrayicon.h ui/qtsystemtrayicon.h
ui/ripcd.h
ui/settingsdialog.h ui/settingsdialog.h
ui/settingspage.h ui/settingspage.h
ui/standarditemiconloader.h ui/standarditemiconloader.h
@ -753,7 +751,6 @@ set(UI
ui/organisedialog.ui ui/organisedialog.ui
ui/organiseerrordialog.ui ui/organiseerrordialog.ui
ui/playbacksettingspage.ui ui/playbacksettingspage.ui
ui/ripcd.ui
ui/settingsdialog.ui ui/settingsdialog.ui
ui/trackselectiondialog.ui ui/trackselectiondialog.ui
@ -1030,9 +1027,13 @@ optional_source(HAVE_AUDIOCD
SOURCES SOURCES
devices/cddadevice.cpp devices/cddadevice.cpp
devices/cddalister.cpp devices/cddalister.cpp
ui/ripcd.cpp
HEADERS HEADERS
devices/cddadevice.h devices/cddadevice.h
devices/cddalister.h devices/cddalister.h
ui/ripcd.h
UI
ui/ripcd.ui
) )
# mtp device # mtp device

View File

@ -1676,7 +1676,12 @@ void MainWindow::OpenRipCD() {
if (!rip_cd_) { if (!rip_cd_) {
rip_cd_.reset(new RipCD); rip_cd_.reset(new RipCD);
} }
rip_cd_->show(); if(rip_cd_->CDIOIsValid()) {
rip_cd_->show();
} else {
QMessageBox cdio_fail(QMessageBox::Critical, tr("Error"), tr("Failed reading CD drive"));
cdio_fail.exec();
}
} }
void MainWindow::AddCDTracks() { void MainWindow::AddCDTracks() {

View File

@ -73,7 +73,8 @@ RipCD::RipCD(QWidget* parent) :
finished_failed_(0), finished_failed_(0),
ui_(new Ui_RipCD) ui_(new Ui_RipCD)
{ {
// Init
// Init
ui_->setupUi(this); ui_->setupUi(this);
cancel_button_ = ui_->button_box->button(QDialogButtonBox::Cancel); cancel_button_ = ui_->button_box->button(QDialogButtonBox::Cancel);
@ -93,19 +94,26 @@ RipCD::RipCD(QWidget* parent) :
setWindowTitle(tr("Rip CD")); setWindowTitle(tr("Rip CD"));
cdio_ = cdio_open(NULL, DRIVER_UNKNOWN); cdio_ = cdio_open(NULL, DRIVER_UNKNOWN);
i_tracks = cdio_get_num_tracks(cdio_); if(!cdio_) {
ui_->tableWidget->setRowCount(i_tracks); qLog(Error) << "Failed to read CD drive";
return;
for (int i = 1; i <= i_tracks; i++) { } else {
QCheckBox *checkbox_i = new QCheckBox(ui_->tableWidget); i_tracks = cdio_get_num_tracks(cdio_);
checkbox_i->setCheckState(Qt::Checked); ui_->tableWidget->setRowCount(i_tracks);
checkboxes_.append(checkbox_i); for (int i = 1; i <= i_tracks; i++) {
ui_->tableWidget->setCellWidget(i - 1, kCheckboxColumn, checkbox_i); QCheckBox *checkbox_i = new QCheckBox(ui_->tableWidget);
ui_->tableWidget->setCellWidget(i - 1, kTrackNumberColumn, new QLabel(QString::number(i))); checkbox_i->setCheckState(Qt::Checked);
QString track_title = QString("Track %1").arg(i); checkboxes_.append(checkbox_i);
QLineEdit *line_edit_track_title_i = new QLineEdit(track_title,ui_->tableWidget); ui_->tableWidget->setCellWidget(i - 1, kCheckboxColumn, checkbox_i);
track_names_.append(line_edit_track_title_i); ui_->tableWidget->setCellWidget(i - 1, kTrackNumberColumn,
ui_->tableWidget->setCellWidget(i - 1, kTrackTitleColumn, line_edit_track_title_i); 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();
@ -134,6 +142,11 @@ RipCD::RipCD(QWidget* parent) :
ui_->progress_bar->setMaximum(100); ui_->progress_bar->setMaximum(100);
} }
RipCD::~RipCD() {
delete ui_;
}
/* /*
* WAV Header documentation * WAV Header documentation
* as taken from: * as taken from:
@ -369,3 +382,7 @@ void RipCD::AddDestination() {
void RipCD::Cancel() { void RipCD::Cancel() {
transcoder_->Cancel(); transcoder_->Cancel();
} }
bool RipCD::CDIOIsValid() const {
return (cdio_);
}

View File

@ -35,6 +35,8 @@ class RipCD: public QDialog {
public: public:
explicit RipCD(QWidget* parent = 0); explicit RipCD(QWidget* parent = 0);
~RipCD();
bool CDIOIsValid() const;
private: private:
static const char* kSettingsGroup; static const char* kSettingsGroup;