traverso-commit
[Top][All Lists]
Advanced

[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,




reply via email to

[Prev in Thread] Current Thread [Next in Thread]