[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Traverso-commit] traverso/src/traverso ExportWidget.cpp ExportWi...
From: |
Remon Sijrier |
Subject: |
[Traverso-commit] traverso/src/traverso ExportWidget.cpp ExportWi... |
Date: |
Tue, 15 May 2007 12:33:55 +0000 |
CVSROOT: /sources/traverso
Module name: traverso
Changes by: Remon Sijrier <r_sijrier> 07/05/15 12:33:55
Modified files:
src/traverso : ExportWidget.cpp ExportWidget.h
Log message:
* added enable/disable user interface functions
* show abort button when render song(s) start, and stop rendering when
clicked.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/ExportWidget.cpp?cvsroot=traverso&r1=1.27&r2=1.28
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/ExportWidget.h?cvsroot=traverso&r1=1.8&r2=1.9
Patches:
Index: ExportWidget.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/ExportWidget.cpp,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -b -r1.27 -r1.28
--- ExportWidget.cpp 15 May 2007 00:14:05 -0000 1.27
+++ ExportWidget.cpp 15 May 2007 12:33:55 -0000 1.28
@@ -378,12 +378,10 @@
printf("query_devices: burnprocess still running!\n");
return;
}
- cdDeviceComboBox->clear();
- printf("quering devices...\n");
+
m_writingState = QUERY_DEVICE;
- QStringList args;
- args << "drive-info";
- m_burnprocess->start(CDRDAO_BIN, args);
+ cdDeviceComboBox->clear();
+ m_burnprocess->start(CDRDAO_BIN, QStringList() << "drive-info");
}
void ExportWidget::unlock_device()
@@ -410,11 +408,17 @@
{
PENTER;
+ if (m_writingState == RENDER) {
+ update_cdburn_status(tr("Aborting Render process ..."),
NORMAL_MESSAGE);
+ m_exportSpec->stop = true;
+ m_exportSpec->breakout = true;
+ }
+ if (m_writingState == BURNING) {
update_cdburn_status(tr("Aborting CD Burn process ..."),
NORMAL_MESSAGE);
-
m_burnprocess->terminate();
-
m_writingState = ABORT_BURN;
+ }
+
stopButton->setEnabled(false);
}
@@ -428,7 +432,6 @@
}
cd_render();
- closeButton->setEnabled(false);
}
@@ -451,15 +454,10 @@
if (m_writingState == ABORT_BURN) {
update_cdburn_status(tr("CD Burn process stopped on user
request."), NORMAL_MESSAGE);
- startButton->show();
- stopButton->hide();
- stopButton->setEnabled(true);
}
if (m_writingState == BURNING) {
update_cdburn_status(tr("CD Writing process finished!"),
NORMAL_MESSAGE);
- startButton->show();
- stopButton->hide();
}
if (exitstatus == QProcess::CrashExit || m_writingState == ABORT_BURN) {
@@ -469,20 +467,13 @@
progressBar->setMaximum(100);
progressBar->setValue(0);
- closeButton->setEnabled(true);
-
- m_writingState = NO_STATE;
- exportWidget->setEnabled(true);
- optionsGroupBox->setEnabled(true);
+ enable_ui_interaction();
}
void ExportWidget::cd_render()
{
PENTER;
- exportWidget->setEnabled(false);
- optionsGroupBox->setEnabled(false);
-
update_cdburn_status(tr("Rendering Song(s)"), NORMAL_MESSAGE);
m_exportSpec->extension = ".wav";
@@ -499,15 +490,20 @@
} else {
m_exportSpec->allSongs = false;
}
-
m_exportSpec->normalize = cdNormalizeCheckBox->isChecked();
m_exportSpec->isRecording = false;
+ m_exportSpec->stop = false;
+ m_exportSpec->breakout = false;
if (m_project->create_cdrdao_toc(m_exportSpec) < 0) {
info().warning(tr("Creating CDROM table of contents failed,
unable to write CD"));
return;
}
+ m_writingState = RENDER;
+
+ disable_ui_interaction();
+
connect(m_project, SIGNAL(overallExportProgressChanged(int)), this,
SLOT(cd_export_progress(int)));
connect(m_project, SIGNAL(exportFinished()), this,
SLOT(cd_export_finished()));
@@ -518,24 +514,19 @@
{
PENTER;
if ( ! (m_burnprocess->state() == QProcess::NotRunning) ) {
- m_writingState = NO_STATE;
info().critical(tr("Burn process is still running, cannot start
it twice!!"));
return;
}
m_writingState = BURNING;
-
- startButton->hide();
- stopButton->show();
-
progressBar->setValue(0);
int index = cdDeviceComboBox->currentIndex();
if (index == -1) {
QMessageBox::information( 0, tr("No Burn Device"),
- tr("No burn Device available!"),
+ tr("No burn Device selected or
available!"),
QMessageBox::Ok);
- m_writingState = NO_STATE;
+ enable_ui_interaction();
return;
}
@@ -565,9 +556,13 @@
if (cdDiskExportOnlyCheckBox->isChecked()) {
update_cdburn_status(tr("Export to disk finished!"),
NORMAL_MESSAGE);
- exportWidget->setEnabled(true);
- closeButton->setEnabled(true);
- optionsGroupBox->setEnabled(true);
+ enable_ui_interaction();
+ return;
+ }
+
+ if (m_exportSpec->breakout) {
+ update_cdburn_status(tr("Render process stopped on user
request."), NORMAL_MESSAGE);
+ enable_ui_interaction();
return;
}
@@ -718,3 +713,24 @@
}
QDialog::closeEvent(event);
}
+
+void ExportWidget::disable_ui_interaction()
+{
+ closeButton->setEnabled(false);
+ exportWidget->setEnabled(false);
+ optionsGroupBox->setEnabled(false);
+ startButton->hide();
+ stopButton->show();
+}
+
+void ExportWidget::enable_ui_interaction()
+{
+ m_writingState = NO_STATE;
+ exportWidget->setEnabled(true);
+ optionsGroupBox->setEnabled(true);
+ closeButton->setEnabled(true);
+ startButton->show();
+ stopButton->hide();
+ stopButton->setEnabled(true);
+ progressBar->setValue(0);
+}
Index: ExportWidget.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/ExportWidget.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- ExportWidget.h 11 May 2007 11:16:32 -0000 1.8
+++ ExportWidget.h 15 May 2007 12:33:55 -0000 1.9
@@ -54,11 +54,14 @@
bool is_save_to_export();
void cd_render();
void write_to_cd();
+ void disable_ui_interaction();
+ void enable_ui_interaction();
void update_cdburn_status(const QString& message, int type);
enum {
NO_STATE,
+ RENDER,
BURNING,
ABORT_BURN,
QUERY_DEVICE,