traverso-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Traverso-commit] traverso/src core/ReadSource.cpp traverso/Inter...


From: Remon Sijrier
Subject: [Traverso-commit] traverso/src core/ReadSource.cpp traverso/Inter...
Date: Mon, 15 Oct 2007 10:00:15 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Remon Sijrier <r_sijrier>       07/10/15 10:00:14

Modified files:
        src/core       : ReadSource.cpp 
        src/traverso   : Interface.cpp Interface.h traverso.pro 
Added files:
        src/traverso/dialogs: ExportDialog.cpp ExportDialog.h 
        src/traverso/ui: ExportDialog.ui 

Log message:
        * Split export to harddisk part from ExportWidget and move to newly 
created ExportDialog

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ReadSource.cpp?cvsroot=traverso&r1=1.74&r2=1.75
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/dialogs/ExportDialog.cpp?cvsroot=traverso&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/dialogs/ExportDialog.h?cvsroot=traverso&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/Interface.cpp?cvsroot=traverso&r1=1.101&r2=1.102
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/Interface.h?cvsroot=traverso&r1=1.43&r2=1.44
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/traverso.pro?cvsroot=traverso&r1=1.74&r2=1.75
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/ui/ExportDialog.ui?cvsroot=traverso&rev=1.1

Patches:
Index: core/ReadSource.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/ReadSource.cpp,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -b -r1.74 -r1.75
--- core/ReadSource.cpp 13 Oct 2007 21:47:01 -0000      1.74
+++ core/ReadSource.cpp 15 Oct 2007 10:00:12 -0000      1.75
@@ -643,7 +643,6 @@
        set_output_rate(m_diskio->get_output_rate());
        prepare_rt_buffers();
        if (m_audioReader) {
-               printf("setting resample decode buffer\n");
                
m_audioReader->set_resample_decode_buffer(m_diskio->get_resample_decode_buffer());
        }
        

Index: traverso/Interface.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/Interface.cpp,v
retrieving revision 1.101
retrieving revision 1.102
diff -u -b -r1.101 -r1.102
--- traverso/Interface.cpp      10 Oct 2007 16:41:57 -0000      1.101
+++ traverso/Interface.cpp      15 Oct 2007 10:00:13 -0000      1.102
@@ -33,6 +33,7 @@
 #include <QMessageBox>
 #include <QDesktopServices>
 #include <QTextStream>
+#include <QStackedWidget>
 
 #include "Interface.h"
 #include "BusMonitor.h"
@@ -41,7 +42,6 @@
 #include "FadeCurve.h"
 #include "Config.h"
 #include "Plugin.h"
-#include "ExportWidget.h"
 #include "CorrelationMeterWidget.h"
 #include "SpectralMeterWidget.h"
                
@@ -65,6 +65,7 @@
 #include "dialogs/InsertSilenceDialog.h"
 #include "dialogs/RestoreProjectBackupDialog.h"
 #include "dialogs/ProjectConverterDialog.h"
+#include "dialogs/ExportDialog.h"
 
 // Always put me below _all_ includes, this is needed
 // in case we run with memory leak detection enabled!
@@ -166,7 +167,7 @@
        
        // Some default values.
        currentSongWidget = 0;
-       exportWidget = 0;
+       m_exportDialog = 0;
        m_settingsdialog = 0;
        m_projectManagerDialog = 0;
        m_openProjectDialog = 0;
@@ -353,12 +354,12 @@
 
 Command * Interface::show_export_widget( )
 {
-       if (! exportWidget) {
-               exportWidget = new ExportWidget(this);
+       if (! m_exportDialog) {
+               m_exportDialog = new ExportDialog(this);
        }
-       if (exportWidget->isHidden()) {
-               exportWidget->set_was_closed();
-               exportWidget->show();
+       if (m_exportDialog->isHidden()) {
+//             m_exportDialog->set_was_closed();
+               m_exportDialog->show();
        }
        return (Command*) 0;
 }

Index: traverso/Interface.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/Interface.h,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -b -r1.43 -r1.44
--- traverso/Interface.h        10 Oct 2007 16:41:58 -0000      1.43
+++ traverso/Interface.h        15 Oct 2007 10:00:13 -0000      1.44
@@ -36,7 +36,7 @@
 class Command;
 
 class QLabel;
-class ExportWidget;
+class ExportDialog;
 class QStackedWidget;
 class QHBoxLayout;
 class QVBoxLayout;
@@ -100,7 +100,7 @@
        SongWidget*             currentSongWidget;
        QList<ViewPort* >       currentProjectViewPortList;
        QHash<QString, QMenu*>  m_contextMenus;
-       ExportWidget*           exportWidget;
+       ExportDialog*           m_exportDialog;
        QUndoView*              historyWidget;
        QDockWidget*            historyDW;
        QDockWidget*            busMonitorDW;

Index: traverso/traverso.pro
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/traverso.pro,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -b -r1.74 -r1.75
--- traverso/traverso.pro       11 Oct 2007 13:01:55 -0000      1.74
+++ traverso/traverso.pro       15 Oct 2007 10:00:13 -0000      1.75
@@ -55,7 +55,8 @@
        widgets/ResourcesWidget.h \
        dialogs/AudioClipEditDialog.h \
        dialogs/RestoreProjectBackupDialog.h \
-       dialogs/ProjectConverterDialog.h 
+       dialogs/ProjectConverterDialog.h  \
+       dialogs/ExportDialog.h
 SOURCES += \
        Traverso.cpp \
        BusMonitor.cpp \
@@ -86,7 +87,8 @@
        widgets/ResourcesWidget.cpp \
        dialogs/AudioClipEditDialog.cpp \
        dialogs/RestoreProjectBackupDialog.cpp \
-       dialogs/ProjectConverterDialog.cpp
+       dialogs/ProjectConverterDialog.cpp \
+       dialogs/ExportDialog.cpp
 FORMS += ui/ExportWidget.ui \
        ui/AudioSourcesManagerWidget.ui \
        ui/SpectralMeterConfigWidget.ui \
@@ -112,7 +114,8 @@
        ui/InsertSilenceDialog.ui \
        ui/AudioClipEditWidget.ui \
        ui/RestoreProjectBackupDialog.ui \
-       ui/ProjectConverterDialog.ui
+       ui/ProjectConverterDialog.ui \
+       ui/ExportDialog.ui
 
 INCLUDEPATH +=         ../core \
                ../commands \

Index: traverso/dialogs/ExportDialog.cpp
===================================================================
RCS file: traverso/dialogs/ExportDialog.cpp
diff -N traverso/dialogs/ExportDialog.cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ traverso/dialogs/ExportDialog.cpp   15 Oct 2007 10:00:13 -0000      1.1
@@ -0,0 +1,486 @@
+/**
+    Copyright (C) 2005-2007 Remon Sijrier 
+ 
+    This file is part of Traverso
+ 
+    Traverso is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+ 
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
+
+*/
+
+#include "ExportDialog.h"
+#include "ui_ExportDialog.h"
+
+#include "libtraversocore.h"
+
+#include <QFileDialog>
+#include <QByteArray>
+#include <QMessageBox>
+#include <QDebug>
+
+#include "Export.h"
+#include "Config.h"
+#include <AudioDevice.h>
+
+
+RELAYTOOL_WAVPACK
+RELAYTOOL_FLAC
+RELAYTOOL_MP3LAME
+RELAYTOOL_VORBISENC
+
+// Always put me below _all_ includes, this is needed
+// in case we run with memory leak detection enabled!
+#include "Debugger.h"
+
+
+
+ExportDialog::ExportDialog( QWidget * parent )
+       : QDialog(parent)
+       , m_exportSpec(0)
+{
+        setupUi(this);
+
+       abortButton->hide();
+       QIcon icon = 
QApplication::style()->standardIcon(QStyle::SP_DirClosedIcon);
+       fileSelectButton->setIcon(icon);
+       
+       set_project(pm().get_project());
+       
+       //bitdepthComboBox->addItem("8", 8);
+       bitdepthComboBox->addItem("16", 16);
+       bitdepthComboBox->addItem("24", 24);
+       bitdepthComboBox->addItem("32", 32);
+       bitdepthComboBox->addItem("32 (float)", 1);
+       
+       channelComboBox->addItem("Mono", 1);
+       channelComboBox->addItem("Stereo", 2);
+       
+       sampleRateComboBox->addItem("8.000 Hz", 8000);
+       sampleRateComboBox->addItem("11.025 Hz", 11025);
+       sampleRateComboBox->addItem("22.050 Hz", 22050);
+       sampleRateComboBox->addItem("44.100 Hz", 44100);
+       sampleRateComboBox->addItem("48.000 Hz", 48000);
+       sampleRateComboBox->addItem("88.200 Hz", 88200);
+       sampleRateComboBox->addItem("96.000 Hz", 96000);
+       
+       audioTypeComboBox->addItem("WAV", "wav");
+       audioTypeComboBox->addItem("AIFF", "aiff");
+       if (libFLAC_is_present) {
+               audioTypeComboBox->addItem("FLAC", "flac");
+       }
+       if (libwavpack_is_present) {
+               audioTypeComboBox->addItem("WAVPACK", "wavpack");
+       }
+       if (libmp3lame_is_present) {
+               audioTypeComboBox->addItem("MP3", "mp3");
+       }
+       if (libvorbisenc_is_present) {
+               audioTypeComboBox->addItem("OGG", "ogg");
+       }
+       
+       bitdepthComboBox->setCurrentIndex(bitdepthComboBox->findData(16));
+       channelComboBox->setCurrentIndex(channelComboBox->findData(2));
+       
+       int rateIndex = 
sampleRateComboBox->findData(audiodevice().get_sample_rate());
+       if (rateIndex == -1) {
+               rateIndex = 0;
+       }
+       sampleRateComboBox->setCurrentIndex(rateIndex);
+       resampleQualityComboBox->setCurrentIndex(1);
+       
+       connect(closeButton, SIGNAL(clicked()), this, SLOT(hide()));
+       connect(&pm(), SIGNAL(projectLoaded(Project*)), this, 
SLOT(set_project(Project*)));
+       connect(audioTypeComboBox, SIGNAL(currentIndexChanged(int)), this, 
SLOT(audio_type_changed(int)));
+       
+       
+       // Mp3 Options Setup
+       mp3MethodComboBox->addItem("Constant Bitrate", "cbr");
+       mp3MethodComboBox->addItem("Average Bitrate", "abr");
+       mp3MethodComboBox->addItem("Variable Bitrate", "vbr-new");
+       
+       mp3MinBitrateComboBox->addItem("32 - recommended", "32");
+       mp3MinBitrateComboBox->addItem("64", "64");
+       mp3MinBitrateComboBox->addItem("96", "96");
+       mp3MinBitrateComboBox->addItem("128", "128");
+       mp3MinBitrateComboBox->addItem("160", "160");
+       mp3MinBitrateComboBox->addItem("192", "192");
+       mp3MinBitrateComboBox->addItem("256", "256");
+       mp3MinBitrateComboBox->addItem("320", "320");
+       
+       mp3MaxBitrateComboBox->addItem("32", "32");
+       mp3MaxBitrateComboBox->addItem("64", "64");
+       mp3MaxBitrateComboBox->addItem("96", "96");
+       mp3MaxBitrateComboBox->addItem("128", "128");
+       mp3MaxBitrateComboBox->addItem("160", "160");
+       mp3MaxBitrateComboBox->addItem("192", "192");
+       mp3MaxBitrateComboBox->addItem("256", "256");
+       mp3MaxBitrateComboBox->addItem("320", "320");
+       
+       
mp3MethodComboBox->setCurrentIndex(mp3MethodComboBox->findData("vbr-new"));
+       
mp3MinBitrateComboBox->setCurrentIndex(mp3MinBitrateComboBox->findData("32"));
+       
mp3MaxBitrateComboBox->setCurrentIndex(mp3MaxBitrateComboBox->findData("192"));
+       
+       mp3OptionsGroupBox->hide();
+       connect(mp3MethodComboBox, SIGNAL(currentIndexChanged(int)), this, 
SLOT(mp3_method_changed(int)));
+       
+       
+       // Ogg Options Setup
+       oggMethodComboBox->addItem("Constant Bitrate", "manual");
+       oggMethodComboBox->addItem("Variable Bitrate", "vbr");
+       
+       oggBitrateComboBox->addItem("45", "45");
+       oggBitrateComboBox->addItem("64", "64");
+       oggBitrateComboBox->addItem("96", "96");
+       oggBitrateComboBox->addItem("112", "112");
+       oggBitrateComboBox->addItem("128", "128");
+       oggBitrateComboBox->addItem("160", "160");
+       oggBitrateComboBox->addItem("192", "192");
+       oggBitrateComboBox->addItem("224", "224");
+       oggBitrateComboBox->addItem("256", "256");
+       oggBitrateComboBox->addItem("320", "320");
+       oggBitrateComboBox->addItem("400", "400");
+       
+       oggMethodComboBox->setCurrentIndex(oggMethodComboBox->findData("vbr"));
+       
oggBitrateComboBox->setCurrentIndex(oggBitrateComboBox->findData("160"));
+       ogg_method_changed(oggMethodComboBox->findData("vbr"));
+       
+       oggOptionsGroupBox->hide();
+       connect(oggMethodComboBox, SIGNAL(currentIndexChanged(int)), this, 
SLOT(ogg_method_changed(int)));
+       
+       
+       // WavPack option
+       wacpackGroupBox->hide();
+       wavpackCompressionComboBox->addItem("Very high", "very_high");
+       wavpackCompressionComboBox->addItem("High", "high");
+       wavpackCompressionComboBox->addItem("Fast", "fast");
+       
+       audio_type_changed(0);
+       
+       setMaximumSize(400, 250);
+}
+
+ExportDialog::~ ExportDialog( )
+{}
+
+
+bool ExportDialog::is_safe_to_export()
+{
+       PENTER;
+       if (m_project->is_recording()) {
+               info().warning(tr("Export during recording is not supported!"));
+               return false;
+       }
+       
+       QDir exportDir;
+       QString dirName = exportDirName->text();
+       
+       if (!dirName.isEmpty() && !exportDir.exists(dirName)) {
+               if (!exportDir.mkpath(dirName)) {
+                       info().warning(tr("Unable to create export directory! 
Please check permissions for this directory: %1").arg(dirName));
+                       return false;
+               }
+       }
+       
+       return true;
+}
+
+
+void ExportDialog::audio_type_changed(int index)
+{
+       QString newType = audioTypeComboBox->itemData(index).toString();
+       
+       if (newType == "mp3") {
+//             extraEncodingGroupBox->show();
+               mp3OptionsGroupBox->show();
+               oggOptionsGroupBox->hide();
+               wacpackGroupBox->hide();
+       }
+       else if (newType == "ogg") {
+//             extraEncodingGroupBox->show();
+               oggOptionsGroupBox->show();
+               mp3OptionsGroupBox->hide();
+               wacpackGroupBox->hide();
+       }
+       else if (newType == "wavpack") {
+//             extraEncodingGroupBox->show();
+               wacpackGroupBox->show();
+               mp3OptionsGroupBox->hide();
+               oggOptionsGroupBox->hide();
+       }
+       else {
+//             extraEncodingGroupBox->hide();
+               mp3OptionsGroupBox->hide();
+               wacpackGroupBox->hide();
+               oggOptionsGroupBox->hide();
+       }
+       
+       if (newType == "mp3" || newType == "ogg" || newType == "flac") {
+               
bitdepthComboBox->setCurrentIndex(bitdepthComboBox->findData(16));
+               bitdepthComboBox->setDisabled(true);
+       }
+       else {
+               bitdepthComboBox->setEnabled(true);
+       }
+}
+
+
+void ExportDialog::mp3_method_changed(int index)
+{
+       QString method = mp3MethodComboBox->itemData(index).toString();
+       
+       if (method == "cbr") {
+               mp3MinBitrateComboBox->hide();
+               mp3MinBitrateLabel->hide();
+               mp3MaxBitrateLabel->setText(tr("Bitrate"));
+       }
+       else if (method == "abr") {
+               mp3MinBitrateComboBox->hide();
+               mp3MinBitrateLabel->hide();
+               mp3MaxBitrateLabel->setText(tr("Average Bitrate"));
+       }
+       else {
+//             VBR new or VBR old
+               mp3MinBitrateComboBox->show();
+               mp3MinBitrateLabel->show();
+               mp3MaxBitrateLabel->setText(tr("Maximum Bitrate"));
+       }
+}
+
+
+void ExportDialog::ogg_method_changed(int index)
+{
+       QString method = oggMethodComboBox->itemData(index).toString();
+       
+       if (method == "manual") {
+               oggBitrateComboBox->show();
+               oggBitrateLabel->show();
+               oggQualitySlider->hide();
+               oggQualityLabel->hide();
+       }
+       else {
+               // VBR
+               oggQualitySlider->show();
+               oggQualityLabel->show();
+               oggBitrateComboBox->hide();
+               oggBitrateLabel->hide();
+       }
+}
+
+
+void ExportDialog::on_startButton_clicked( )
+{
+       if (!is_safe_to_export()) {
+               return;
+       }
+       
+       // clear extraformats, it might be different now from previous runs!
+       m_exportSpec->extraFormat.clear();
+       
+       
+       QString audioType = 
audioTypeComboBox->itemData(audioTypeComboBox->currentIndex()).toString();
+       if (audioType == "wav") {
+               m_exportSpec->writerType = "sndfile";
+               m_exportSpec->extraFormat["filetype"] = "wav";
+       }
+       else if (audioType == "aiff") {
+               m_exportSpec->writerType = "sndfile";
+               m_exportSpec->extraFormat["filetype"] = "aiff";
+       }
+       else if (audioType == "flac") {
+               m_exportSpec->writerType = "flac";
+       }
+       else if (audioType == "wavpack") {
+               m_exportSpec->writerType = "wavpack";
+               m_exportSpec->extraFormat["quality"] = 
wavpackCompressionComboBox->itemData(wavpackCompressionComboBox->currentIndex()).toString();
+               m_exportSpec->extraFormat["skip_wvx"] = 
wavpackUseAlmostLosslessCheckBox->isChecked() ? "true" : "false";
+       }
+       else if (audioType == "mp3") {
+               m_exportSpec->writerType = "lame";
+               m_exportSpec->extraFormat["method"] = 
mp3MethodComboBox->itemData(mp3MethodComboBox->currentIndex()).toString();
+               m_exportSpec->extraFormat["minBitrate"] = 
mp3MinBitrateComboBox->itemData(mp3MinBitrateComboBox->currentIndex()).toString();
+               m_exportSpec->extraFormat["maxBitrate"] = 
mp3MaxBitrateComboBox->itemData(mp3MaxBitrateComboBox->currentIndex()).toString();
+               m_exportSpec->extraFormat["quality"] = 
QString::number(mp3QualitySlider->value());
+       }
+       else if (audioType == "ogg") {
+               m_exportSpec->writerType = "vorbis";
+               m_exportSpec->extraFormat["mode"] = 
oggMethodComboBox->itemData(oggMethodComboBox->currentIndex()).toString();
+               if (m_exportSpec->extraFormat["mode"] == "manual") {
+                       m_exportSpec->extraFormat["bitrateNominal"] = 
oggBitrateComboBox->itemData(oggBitrateComboBox->currentIndex()).toString();
+                       m_exportSpec->extraFormat["bitrateUpper"] = 
oggBitrateComboBox->itemData(oggBitrateComboBox->currentIndex()).toString();
+               }
+               else {
+                       m_exportSpec->extraFormat["vbrQuality"] = 
QString::number(oggQualitySlider->value());
+               }
+       }
+       
+       m_exportSpec->data_width = 
bitdepthComboBox->itemData(bitdepthComboBox->currentIndex()).toInt();
+       m_exportSpec->channels = 
channelComboBox->itemData(channelComboBox->currentIndex()).toInt();
+       m_exportSpec->sample_rate = 
sampleRateComboBox->itemData(sampleRateComboBox->currentIndex()).toInt();
+       m_exportSpec->src_quality = resampleQualityComboBox->currentIndex();
+       
+       //TODO Make a ComboBox for this one too!
+       m_exportSpec->dither_type = GDitherTri;
+       
+       
+       if (allSongsButton->isChecked()) {
+                m_exportSpec->allSongs = true;
+       } else {
+                m_exportSpec->allSongs = false;
+       }
+       
+       m_exportSpec->exportdir = exportDirName->text();
+       if (m_exportSpec->exportdir.size() > 1 && 
(m_exportSpec->exportdir.at(m_exportSpec->exportdir.size()-1).decomposition() 
!= "/")) {
+               m_exportSpec->exportdir = m_exportSpec->exportdir.append("/");
+       }
+       QString name = m_exportSpec->exportdir;
+       QFileInfo fi(m_exportSpec->name);
+       name += fi.completeBaseName() + ".toc";
+       m_exportSpec->tocFileName = name;
+
+       m_exportSpec->normalize = normalizeCheckBox->isChecked();
+       m_exportSpec->isRecording = false;
+       m_project->export_project(m_exportSpec);
+       
+       startButton->hide();
+       closeButton->hide();
+       abortButton->show();
+}
+
+
+void ExportDialog::on_closeButton_clicked()
+{
+       hide();
+}
+
+
+void ExportDialog::on_abortButton_clicked( )
+{
+       m_exportSpec->stop = true;
+       m_exportSpec->breakout = true;
+}
+
+
+void ExportDialog::on_fileSelectButton_clicked( )
+{
+       if (!m_project) {
+               info().information(tr("No project loaded, to export a project, 
load it first!"));
+               return;
+       }
+       
+       QString dirName = QFileDialog::getExistingDirectory(this, 
tr("Choose/create an export directory"), m_exportSpec->exportdir);
+       
+       if (!dirName.isEmpty()) {
+               exportDirName->setText(dirName);
+       }
+}
+
+
+void ExportDialog::update_song_progress( int progress )
+{
+       songProgressBar->setValue(progress);
+}
+
+void ExportDialog::update_overall_progress( int progress )
+{
+//     overalProgressBar->setValue(progress);
+}
+
+void ExportDialog::render_finished( )
+{
+       songProgressBar->setValue(0);
+//     overalProgressBar->setValue(0);
+       startButton->show();
+       closeButton->show();
+       abortButton->hide();
+
+//     on_closeButton_clicked();
+}
+
+void ExportDialog::set_exporting_song( Song * song )
+{
+       QString name = tr("Progress of Sheet ") + 
+               QString::number(m_project->get_song_index(song->get_id())) + ": 
" +
+               song->get_title();
+       
+       currentProcessingSongName->setText(name);
+}
+
+void ExportDialog::set_project(Project * project)
+{
+       m_project = project;
+       if (! m_project) {
+               info().information(tr("No project loaded, to export a project, 
load it first!"));
+               setEnabled(false);
+               if (m_exportSpec) {
+                       delete m_exportSpec;
+                       m_exportSpec = 0;
+               }
+       } else {
+               setEnabled(true);
+               if (m_exportSpec) {
+                       delete m_exportSpec;
+                       m_exportSpec = 0;
+               }
+               m_exportSpec = new ExportSpecification;
+               m_exportSpec->exportdir = m_project->get_root_dir() + 
"/Export/";
+               m_exportSpec->renderfinished = false;
+               exportDirName->setText(m_exportSpec->exportdir);
+               
+               connect(m_project, SIGNAL(songExportProgressChanged(int)), 
this, SLOT(update_song_progress(int)));
+               connect(m_project, SIGNAL(overallExportProgressChanged(int)), 
this, SLOT(update_overall_progress(int)));
+               connect(m_project, SIGNAL(exportFinished()), this, 
SLOT(render_finished()));
+               connect(m_project, SIGNAL(exportStartedForSong(Song*)), this, 
SLOT (set_exporting_song(Song*)));
+       }
+}
+
+
+
+void ExportDialog::closeEvent(QCloseEvent * event)
+{
+/*     if (m_writingState != NO_STATE || !buttonBox->isEnabled()) {
+               event->setAccepted(false);
+               return;
+       }*/
+       QDialog::closeEvent(event);
+}
+
+void ExportDialog::reject()
+{
+/*     if (m_writingState == NO_STATE && buttonBox->isEnabled()) {
+               hide();
+       }*/
+}
+
+void ExportDialog::disable_ui_interaction()
+{
+/*     closeButton->setEnabled(false);
+       exportWidget->setEnabled(false);
+       optionsGroupBox->setEnabled(false);
+       burnGroupBox->setEnabled(false);
+       startButton->hide();
+       abortButton->show();*/
+}
+
+void ExportDialog::enable_ui_interaction()
+{
+/*     m_writingState = NO_STATE;
+       exportWidget->setEnabled(true);
+       optionsGroupBox->setEnabled(true);
+       burnGroupBox->setDisabled(cdDiskExportOnlyCheckBox->isChecked());
+       closeButton->setEnabled(true);
+       startButton->show();
+       abortButton->hide();
+       abortButton->setEnabled(true);
+       progressBar->setValue(0);*/
+}

Index: traverso/dialogs/ExportDialog.h
===================================================================
RCS file: traverso/dialogs/ExportDialog.h
diff -N traverso/dialogs/ExportDialog.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ traverso/dialogs/ExportDialog.h     15 Oct 2007 10:00:13 -0000      1.1
@@ -0,0 +1,80 @@
+/*
+    Copyright (C) 2005-2007 Remon Sijrier 
+ 
+    This file is part of Traverso
+ 
+    Traverso is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+ 
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
+ 
+*/
+
+#ifndef EXPORT_DIALOG_H
+#define EXPORT_DIALOG_H
+
+#include "ui_ExportDialog.h"
+
+#include <QDialog>
+
+class Project;
+class Song;
+struct ExportSpecification;
+
+class ExportDialog : public QDialog, protected Ui::ExportDialog
+{
+       Q_OBJECT
+
+public:
+       ExportDialog(QWidget* parent = 0);
+       ~ExportDialog();
+
+       void set_was_closed();
+
+protected:
+       void closeEvent(QCloseEvent* event);
+
+private:
+       Project* m_project;
+       ExportSpecification*    m_exportSpec;
+
+       bool is_safe_to_export();
+       void disable_ui_interaction();
+       void enable_ui_interaction();
+
+       int m_lastSheetExported;
+       bool m_wasClosed;
+       int m_copyNumber;
+
+private slots:
+       void set_project(Project* project);
+       void update_song_progress(int progress);
+       void update_overall_progress(int progress);
+       void render_finished();
+       void set_exporting_song(Song* song);
+
+       void on_fileSelectButton_clicked();
+       void on_startButton_clicked();
+       void on_abortButton_clicked();
+       void on_closeButton_clicked();
+
+       void audio_type_changed(int index);
+       void mp3_method_changed(int index);
+       void ogg_method_changed(int index);
+       void reject();
+};
+
+#endif
+
+//eof
+
+

Index: traverso/ui/ExportDialog.ui
===================================================================
RCS file: traverso/ui/ExportDialog.ui
diff -N traverso/ui/ExportDialog.ui
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ traverso/ui/ExportDialog.ui 15 Oct 2007 10:00:13 -0000      1.1
@@ -0,0 +1,922 @@
+<ui version="4.0" >
+ <class>ExportDialog</class>
+ <widget class="QDialog" name="ExportDialog" >
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>946</width>
+    <height>642</height>
+   </rect>
+  </property>
+  <property name="sizePolicy" >
+   <sizepolicy>
+    <hsizetype>4</hsizetype>
+    <vsizetype>4</vsizetype>
+    <horstretch>0</horstretch>
+    <verstretch>1</verstretch>
+   </sizepolicy>
+  </property>
+  <property name="windowTitle" >
+   <string>Export</string>
+  </property>
+  <layout class="QVBoxLayout" >
+   <property name="margin" >
+    <number>9</number>
+   </property>
+   <property name="spacing" >
+    <number>9</number>
+   </property>
+   <item>
+    <widget class="QGroupBox" name="generalOptionsGroupBox" >
+     <property name="sizePolicy" >
+      <sizepolicy>
+       <hsizetype>5</hsizetype>
+       <vsizetype>4</vsizetype>
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="maximumSize" >
+      <size>
+       <width>16777215</width>
+       <height>350</height>
+      </size>
+     </property>
+     <property name="title" >
+      <string>General Options</string>
+     </property>
+     <layout class="QVBoxLayout" >
+      <property name="margin" >
+       <number>9</number>
+      </property>
+      <property name="spacing" >
+       <number>6</number>
+      </property>
+      <item>
+       <layout class="QHBoxLayout" >
+        <property name="margin" >
+         <number>0</number>
+        </property>
+        <property name="spacing" >
+         <number>6</number>
+        </property>
+        <item>
+         <widget class="QRadioButton" name="currentSongButton" >
+          <property name="text" >
+           <string>Render current Sheet</string>
+          </property>
+          <property name="checked" >
+           <bool>true</bool>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QRadioButton" name="allSongsButton" >
+          <property name="text" >
+           <string>Render whole Project</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <spacer>
+          <property name="orientation" >
+           <enum>Qt::Horizontal</enum>
+          </property>
+          <property name="sizeHint" >
+           <size>
+            <width>40</width>
+            <height>20</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <layout class="QHBoxLayout" >
+        <property name="margin" >
+         <number>0</number>
+        </property>
+        <property name="spacing" >
+         <number>6</number>
+        </property>
+        <item>
+         <widget class="QLabel" name="label" >
+          <property name="text" >
+           <string>Export directory</string>
+          </property>
+          <property name="alignment" >
+           <set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QLineEdit" name="exportDirName" >
+          <property name="sizePolicy" >
+           <sizepolicy>
+            <hsizetype>7</hsizetype>
+            <vsizetype>0</vsizetype>
+            <horstretch>5</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QPushButton" name="fileSelectButton" >
+          <property name="text" >
+           <string/>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QGroupBox" name="exportSpecificationsGroupBox" >
+     <property name="sizePolicy" >
+      <sizepolicy>
+       <hsizetype>5</hsizetype>
+       <vsizetype>4</vsizetype>
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="title" >
+      <string>Format Options</string>
+     </property>
+     <layout class="QVBoxLayout" >
+      <property name="margin" >
+       <number>9</number>
+      </property>
+      <property name="spacing" >
+       <number>9</number>
+      </property>
+      <item>
+       <widget class="QGroupBox" name="groupBox_2" >
+        <property name="title" >
+         <string>Encoding</string>
+        </property>
+        <layout class="QVBoxLayout" >
+         <property name="margin" >
+          <number>9</number>
+         </property>
+         <property name="spacing" >
+          <number>12</number>
+         </property>
+         <item>
+          <layout class="QHBoxLayout" >
+           <property name="margin" >
+            <number>0</number>
+           </property>
+           <property name="spacing" >
+            <number>18</number>
+           </property>
+           <item>
+            <layout class="QVBoxLayout" >
+             <property name="margin" >
+              <number>0</number>
+             </property>
+             <property name="spacing" >
+              <number>6</number>
+             </property>
+             <item>
+              <widget class="QLabel" name="label_2" >
+               <property name="text" >
+                <string>Encoding</string>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <widget class="QLabel" name="label_4" >
+               <property name="text" >
+                <string>Channels</string>
+               </property>
+               <property name="alignment" >
+                <set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
+               </property>
+              </widget>
+             </item>
+            </layout>
+           </item>
+           <item>
+            <layout class="QVBoxLayout" >
+             <property name="margin" >
+              <number>0</number>
+             </property>
+             <property name="spacing" >
+              <number>6</number>
+             </property>
+             <item>
+              <widget class="QComboBox" name="audioTypeComboBox" >
+               <property name="sizePolicy" >
+                <sizepolicy>
+                 <hsizetype>5</hsizetype>
+                 <vsizetype>0</vsizetype>
+                 <horstretch>4</horstretch>
+                 <verstretch>0</verstretch>
+                </sizepolicy>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <widget class="QComboBox" name="channelComboBox" />
+             </item>
+            </layout>
+           </item>
+           <item>
+            <layout class="QVBoxLayout" >
+             <property name="margin" >
+              <number>0</number>
+             </property>
+             <property name="spacing" >
+              <number>6</number>
+             </property>
+             <item>
+              <widget class="QCheckBox" name="normalizeCheckBox" >
+               <property name="sizePolicy" >
+                <sizepolicy>
+                 <hsizetype>5</hsizetype>
+                 <vsizetype>0</vsizetype>
+                 <horstretch>0</horstretch>
+                 <verstretch>0</verstretch>
+                </sizepolicy>
+               </property>
+               <property name="text" >
+                <string>Normalize Audio</string>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <layout class="QHBoxLayout" >
+               <property name="margin" >
+                <number>0</number>
+               </property>
+               <property name="spacing" >
+                <number>6</number>
+               </property>
+               <item>
+                <widget class="QLabel" name="label_3" >
+                 <property name="sizePolicy" >
+                  <sizepolicy>
+                   <hsizetype>5</hsizetype>
+                   <vsizetype>5</vsizetype>
+                   <horstretch>0</horstretch>
+                   <verstretch>0</verstretch>
+                  </sizepolicy>
+                 </property>
+                 <property name="text" >
+                  <string>Bitdepth</string>
+                 </property>
+                 <property name="alignment" >
+                  <set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
+                 </property>
+                </widget>
+               </item>
+               <item>
+                <widget class="QComboBox" name="bitdepthComboBox" />
+               </item>
+              </layout>
+             </item>
+            </layout>
+           </item>
+           <item>
+            <spacer>
+             <property name="orientation" >
+              <enum>Qt::Horizontal</enum>
+             </property>
+             <property name="sizeHint" >
+              <size>
+               <width>40</width>
+               <height>20</height>
+              </size>
+             </property>
+            </spacer>
+           </item>
+          </layout>
+         </item>
+         <item>
+          <layout class="QHBoxLayout" >
+           <property name="margin" >
+            <number>0</number>
+           </property>
+           <property name="spacing" >
+            <number>6</number>
+           </property>
+           <item>
+            <widget class="QGroupBox" name="wacpackGroupBox" >
+             <property name="sizePolicy" >
+              <sizepolicy>
+               <hsizetype>5</hsizetype>
+               <vsizetype>4</vsizetype>
+               <horstretch>0</horstretch>
+               <verstretch>0</verstretch>
+              </sizepolicy>
+             </property>
+             <property name="title" >
+              <string>WavPack options</string>
+             </property>
+             <layout class="QVBoxLayout" >
+              <property name="margin" >
+               <number>9</number>
+              </property>
+              <property name="spacing" >
+               <number>6</number>
+              </property>
+              <item>
+               <layout class="QHBoxLayout" >
+                <property name="margin" >
+                 <number>0</number>
+                </property>
+                <property name="spacing" >
+                 <number>6</number>
+                </property>
+                <item>
+                 <widget class="QLabel" name="label_17" >
+                  <property name="text" >
+                   <string>Compression type</string>
+                  </property>
+                 </widget>
+                </item>
+                <item>
+                 <widget class="QComboBox" name="wavpackCompressionComboBox" />
+                </item>
+               </layout>
+              </item>
+              <item>
+               <widget class="QCheckBox" 
name="wavpackUseAlmostLosslessCheckBox" >
+                <property name="text" >
+                 <string>Use almost lossless compression</string>
+                </property>
+               </widget>
+              </item>
+             </layout>
+            </widget>
+           </item>
+           <item>
+            <widget class="QGroupBox" name="oggOptionsGroupBox" >
+             <property name="sizePolicy" >
+              <sizepolicy>
+               <hsizetype>5</hsizetype>
+               <vsizetype>4</vsizetype>
+               <horstretch>0</horstretch>
+               <verstretch>0</verstretch>
+              </sizepolicy>
+             </property>
+             <property name="title" >
+              <string>Ogg Options</string>
+             </property>
+             <layout class="QGridLayout" >
+              <property name="margin" >
+               <number>9</number>
+              </property>
+              <property name="spacing" >
+               <number>9</number>
+              </property>
+              <item row="2" column="0" >
+               <widget class="QLabel" name="oggBitrateLabel" >
+                <property name="sizePolicy" >
+                 <sizepolicy>
+                  <hsizetype>5</hsizetype>
+                  <vsizetype>5</vsizetype>
+                  <horstretch>4</horstretch>
+                  <verstretch>0</verstretch>
+                 </sizepolicy>
+                </property>
+                <property name="text" >
+                 <string>Bitrate</string>
+                </property>
+                <property name="alignment" >
+                 <set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
+                </property>
+               </widget>
+              </item>
+              <item row="2" column="1" >
+               <widget class="QComboBox" name="oggBitrateComboBox" >
+                <property name="sizePolicy" >
+                 <sizepolicy>
+                  <hsizetype>7</hsizetype>
+                  <vsizetype>0</vsizetype>
+                  <horstretch>5</horstretch>
+                  <verstretch>0</verstretch>
+                 </sizepolicy>
+                </property>
+               </widget>
+              </item>
+              <item row="1" column="1" >
+               <widget class="QSlider" name="oggQualitySlider" >
+                <property name="layoutDirection" >
+                 <enum>Qt::LeftToRight</enum>
+                </property>
+                <property name="autoFillBackground" >
+                 <bool>false</bool>
+                </property>
+                <property name="minimum" >
+                 <number>0</number>
+                </property>
+                <property name="maximum" >
+                 <number>10</number>
+                </property>
+                <property name="pageStep" >
+                 <number>1</number>
+                </property>
+                <property name="value" >
+                 <number>7</number>
+                </property>
+                <property name="tracking" >
+                 <bool>true</bool>
+                </property>
+                <property name="orientation" >
+                 <enum>Qt::Horizontal</enum>
+                </property>
+                <property name="invertedAppearance" >
+                 <bool>false</bool>
+                </property>
+                <property name="invertedControls" >
+                 <bool>false</bool>
+                </property>
+                <property name="tickPosition" >
+                 <enum>QSlider::TicksAbove</enum>
+                </property>
+                <property name="tickInterval" >
+                 <number>1</number>
+                </property>
+               </widget>
+              </item>
+              <item row="0" column="1" >
+               <widget class="QComboBox" name="oggMethodComboBox" >
+                <property name="sizePolicy" >
+                 <sizepolicy>
+                  <hsizetype>7</hsizetype>
+                  <vsizetype>0</vsizetype>
+                  <horstretch>5</horstretch>
+                  <verstretch>0</verstretch>
+                 </sizepolicy>
+                </property>
+               </widget>
+              </item>
+              <item row="1" column="0" >
+               <widget class="QLabel" name="oggQualityLabel" >
+                <property name="sizePolicy" >
+                 <sizepolicy>
+                  <hsizetype>5</hsizetype>
+                  <vsizetype>5</vsizetype>
+                  <horstretch>4</horstretch>
+                  <verstretch>0</verstretch>
+                 </sizepolicy>
+                </property>
+                <property name="text" >
+                 <string>Quality (Smallest &lt;-> Best)</string>
+                </property>
+                <property name="alignment" >
+                 <set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
+                </property>
+               </widget>
+              </item>
+              <item row="0" column="0" >
+               <widget class="QLabel" name="label_18" >
+                <property name="sizePolicy" >
+                 <sizepolicy>
+                  <hsizetype>5</hsizetype>
+                  <vsizetype>5</vsizetype>
+                  <horstretch>4</horstretch>
+                  <verstretch>0</verstretch>
+                 </sizepolicy>
+                </property>
+                <property name="text" >
+                 <string>Encoding Method</string>
+                </property>
+                <property name="alignment" >
+                 <set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
+                </property>
+               </widget>
+              </item>
+             </layout>
+            </widget>
+           </item>
+           <item>
+            <widget class="QGroupBox" name="mp3OptionsGroupBox" >
+             <property name="sizePolicy" >
+              <sizepolicy>
+               <hsizetype>5</hsizetype>
+               <vsizetype>4</vsizetype>
+               <horstretch>0</horstretch>
+               <verstretch>0</verstretch>
+              </sizepolicy>
+             </property>
+             <property name="title" >
+              <string>MP3 Options</string>
+             </property>
+             <layout class="QGridLayout" >
+              <property name="margin" >
+               <number>9</number>
+              </property>
+              <property name="spacing" >
+               <number>9</number>
+              </property>
+              <item row="0" column="0" >
+               <widget class="QLabel" name="label_15" >
+                <property name="sizePolicy" >
+                 <sizepolicy>
+                  <hsizetype>5</hsizetype>
+                  <vsizetype>5</vsizetype>
+                  <horstretch>4</horstretch>
+                  <verstretch>0</verstretch>
+                 </sizepolicy>
+                </property>
+                <property name="text" >
+                 <string>Encoding Method</string>
+                </property>
+                <property name="alignment" >
+                 <set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
+                </property>
+               </widget>
+              </item>
+              <item row="3" column="0" >
+               <widget class="QLabel" name="mp3MaxBitrateLabel" >
+                <property name="sizePolicy" >
+                 <sizepolicy>
+                  <hsizetype>5</hsizetype>
+                  <vsizetype>5</vsizetype>
+                  <horstretch>4</horstretch>
+                  <verstretch>0</verstretch>
+                 </sizepolicy>
+                </property>
+                <property name="text" >
+                 <string>Maximum Bitrate</string>
+                </property>
+                <property name="alignment" >
+                 <set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
+                </property>
+               </widget>
+              </item>
+              <item row="2" column="0" >
+               <widget class="QLabel" name="mp3MinBitrateLabel" >
+                <property name="sizePolicy" >
+                 <sizepolicy>
+                  <hsizetype>5</hsizetype>
+                  <vsizetype>5</vsizetype>
+                  <horstretch>4</horstretch>
+                  <verstretch>0</verstretch>
+                 </sizepolicy>
+                </property>
+                <property name="text" >
+                 <string>Minimum Bitrate</string>
+                </property>
+                <property name="alignment" >
+                 <set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
+                </property>
+               </widget>
+              </item>
+              <item row="1" column="0" >
+               <widget class="QLabel" name="label_16" >
+                <property name="sizePolicy" >
+                 <sizepolicy>
+                  <hsizetype>5</hsizetype>
+                  <vsizetype>5</vsizetype>
+                  <horstretch>4</horstretch>
+                  <verstretch>0</verstretch>
+                 </sizepolicy>
+                </property>
+                <property name="text" >
+                 <string>Quality (Fastest &lt;-> Best)</string>
+                </property>
+                <property name="alignment" >
+                 <set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
+                </property>
+               </widget>
+              </item>
+              <item row="3" column="1" >
+               <widget class="QComboBox" name="mp3MaxBitrateComboBox" >
+                <property name="sizePolicy" >
+                 <sizepolicy>
+                  <hsizetype>7</hsizetype>
+                  <vsizetype>0</vsizetype>
+                  <horstretch>5</horstretch>
+                  <verstretch>0</verstretch>
+                 </sizepolicy>
+                </property>
+               </widget>
+              </item>
+              <item row="2" column="1" >
+               <widget class="QComboBox" name="mp3MinBitrateComboBox" >
+                <property name="sizePolicy" >
+                 <sizepolicy>
+                  <hsizetype>7</hsizetype>
+                  <vsizetype>0</vsizetype>
+                  <horstretch>5</horstretch>
+                  <verstretch>0</verstretch>
+                 </sizepolicy>
+                </property>
+               </widget>
+              </item>
+              <item row="0" column="1" >
+               <widget class="QComboBox" name="mp3MethodComboBox" >
+                <property name="sizePolicy" >
+                 <sizepolicy>
+                  <hsizetype>7</hsizetype>
+                  <vsizetype>0</vsizetype>
+                  <horstretch>5</horstretch>
+                  <verstretch>0</verstretch>
+                 </sizepolicy>
+                </property>
+               </widget>
+              </item>
+              <item row="1" column="1" >
+               <widget class="QSlider" name="mp3QualitySlider" >
+                <property name="layoutDirection" >
+                 <enum>Qt::LeftToRight</enum>
+                </property>
+                <property name="autoFillBackground" >
+                 <bool>false</bool>
+                </property>
+                <property name="minimum" >
+                 <number>1</number>
+                </property>
+                <property name="maximum" >
+                 <number>9</number>
+                </property>
+                <property name="pageStep" >
+                 <number>1</number>
+                </property>
+                <property name="value" >
+                 <number>3</number>
+                </property>
+                <property name="tracking" >
+                 <bool>true</bool>
+                </property>
+                <property name="orientation" >
+                 <enum>Qt::Horizontal</enum>
+                </property>
+                <property name="invertedAppearance" >
+                 <bool>true</bool>
+                </property>
+                <property name="invertedControls" >
+                 <bool>false</bool>
+                </property>
+                <property name="tickPosition" >
+                 <enum>QSlider::TicksAbove</enum>
+                </property>
+                <property name="tickInterval" >
+                 <number>1</number>
+                </property>
+               </widget>
+              </item>
+             </layout>
+            </widget>
+           </item>
+          </layout>
+         </item>
+        </layout>
+       </widget>
+      </item>
+      <item>
+       <widget class="QGroupBox" name="groupBox" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>5</hsizetype>
+          <vsizetype>5</vsizetype>
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="title" >
+         <string>Sample Rate</string>
+        </property>
+        <layout class="QHBoxLayout" >
+         <property name="margin" >
+          <number>9</number>
+         </property>
+         <property name="spacing" >
+          <number>12</number>
+         </property>
+         <item>
+          <layout class="QHBoxLayout" >
+           <property name="margin" >
+            <number>0</number>
+           </property>
+           <property name="spacing" >
+            <number>18</number>
+           </property>
+           <item>
+            <widget class="QLabel" name="label_7" >
+             <property name="sizePolicy" >
+              <sizepolicy>
+               <hsizetype>4</hsizetype>
+               <vsizetype>5</vsizetype>
+               <horstretch>0</horstretch>
+               <verstretch>0</verstretch>
+              </sizepolicy>
+             </property>
+             <property name="text" >
+              <string>Sample Rate</string>
+             </property>
+            </widget>
+           </item>
+           <item>
+            <widget class="QComboBox" name="sampleRateComboBox" >
+             <property name="sizePolicy" >
+              <sizepolicy>
+               <hsizetype>5</hsizetype>
+               <vsizetype>0</vsizetype>
+               <horstretch>0</horstretch>
+               <verstretch>0</verstretch>
+              </sizepolicy>
+             </property>
+            </widget>
+           </item>
+           <item>
+            <widget class="QLabel" name="label_8" >
+             <property name="sizePolicy" >
+              <sizepolicy>
+               <hsizetype>4</hsizetype>
+               <vsizetype>5</vsizetype>
+               <horstretch>0</horstretch>
+               <verstretch>0</verstretch>
+              </sizepolicy>
+             </property>
+             <property name="text" >
+              <string>Conversion quality</string>
+             </property>
+            </widget>
+           </item>
+           <item>
+            <widget class="QComboBox" name="resampleQualityComboBox" >
+             <property name="sizePolicy" >
+              <sizepolicy>
+               <hsizetype>5</hsizetype>
+               <vsizetype>0</vsizetype>
+               <horstretch>0</horstretch>
+               <verstretch>0</verstretch>
+              </sizepolicy>
+             </property>
+             <item>
+              <property name="text" >
+               <string>Best</string>
+              </property>
+             </item>
+             <item>
+              <property name="text" >
+               <string>High</string>
+              </property>
+             </item>
+             <item>
+              <property name="text" >
+               <string>Medium</string>
+              </property>
+             </item>
+             <item>
+              <property name="text" >
+               <string>Fast</string>
+              </property>
+             </item>
+            </widget>
+           </item>
+           <item>
+            <spacer>
+             <property name="orientation" >
+              <enum>Qt::Horizontal</enum>
+             </property>
+             <property name="sizeHint" >
+              <size>
+               <width>40</width>
+               <height>20</height>
+              </size>
+             </property>
+            </spacer>
+           </item>
+          </layout>
+         </item>
+        </layout>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QGroupBox" name="ExportStateGroupBox" >
+     <property name="sizePolicy" >
+      <sizepolicy>
+       <hsizetype>5</hsizetype>
+       <vsizetype>4</vsizetype>
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="title" >
+      <string>Export status</string>
+     </property>
+     <layout class="QVBoxLayout" >
+      <property name="margin" >
+       <number>9</number>
+      </property>
+      <property name="spacing" >
+       <number>6</number>
+      </property>
+      <item>
+       <layout class="QHBoxLayout" >
+        <property name="margin" >
+         <number>0</number>
+        </property>
+        <property name="spacing" >
+         <number>6</number>
+        </property>
+        <item>
+         <widget class="QLabel" name="currentProcessingSongName" >
+          <property name="text" >
+           <string>-</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <spacer>
+          <property name="orientation" >
+           <enum>Qt::Horizontal</enum>
+          </property>
+          <property name="sizeHint" >
+           <size>
+            <width>40</width>
+            <height>20</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <widget class="QProgressBar" name="songProgressBar" >
+        <property name="value" >
+         <number>0</number>
+        </property>
+        <property name="orientation" >
+         <enum>Qt::Horizontal</enum>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <layout class="QHBoxLayout" >
+     <property name="margin" >
+      <number>0</number>
+     </property>
+     <property name="spacing" >
+      <number>6</number>
+     </property>
+     <item>
+      <spacer>
+       <property name="orientation" >
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" >
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+     <item>
+      <widget class="QPushButton" name="abortButton" >
+       <property name="minimumSize" >
+        <size>
+         <width>200</width>
+         <height>0</height>
+        </size>
+       </property>
+       <property name="text" >
+        <string>Abort Export</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QPushButton" name="startButton" >
+       <property name="minimumSize" >
+        <size>
+         <width>140</width>
+         <height>0</height>
+        </size>
+       </property>
+       <property name="text" >
+        <string>Start Export</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QPushButton" name="closeButton" >
+       <property name="text" >
+        <string>Close</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>




reply via email to

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