From 361235447e10ec9a6f57a44d56448f133c74f2e9 Mon Sep 17 00:00:00 2001 From: Tobias Doerffel Date: Thu, 28 Sep 2006 13:49:38 +0000 Subject: [PATCH] support for compressed project files git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@418 0778d3d1-df1d-0410-868b-ea421aaaa00d --- ChangeLog | 8 ++++++ data/locale/de.qm | Bin 107874 -> 108015 bytes data/locale/de.ts | 16 +++++++++-- include/setup_dialog.h | 2 ++ src/core/main_window.cpp | 10 +++---- src/core/setup_dialog.cpp | 24 +++++++++++++++- src/lib/mmp.cpp | 58 +++++++++++++++++++++++++++++++------- 7 files changed, 100 insertions(+), 18 deletions(-) diff --git a/ChangeLog b/ChangeLog index 53d841594..ddb8636e8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2006-09-28 Tobias Doerffel + * include/setup_dialog.h: + * src/core/main_window.cpp: + * src/core/setup_dialog.cpp: + * src/lib/mmp.cpp: + added support for compressed project ("mmpz"-extension), files are + compressed if extension given to multimediaProject::writeFile() is + mmpz or (if none given) user enabled compression as default + * data/locale/de.ts: updated German translation (still incomplete (mainly for mallets-plugin)) diff --git a/data/locale/de.qm b/data/locale/de.qm index f1b106dc9f8d8c74ea0580406764dd0ae1658ae5..400f8c6ae3444bfcdae352ec55a16225134cc0ce 100644 GIT binary patch delta 6103 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 RH21(ar}RYkG-ib6{{Y9SUZ(&6 delta 5963 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 diff --git a/data/locale/de.ts b/data/locale/de.ts index ee8cc48ed..7a8186bed 100755 --- a/data/locale/de.ts +++ b/data/locale/de.ts @@ -2181,7 +2181,7 @@ Double clicking any of the plugins will bring up information on the ports. MultiMedia Project (*.mmp *.xml) - MultiMedia-Projekt (*.mmp *.xml) + MultiMedia-Projekt (*.mmp *.xml) Save project @@ -2189,7 +2189,7 @@ Double clicking any of the plugins will bring up information on the ports. MultiMedia Project (*.mmp);;MultiMedia Project Template (*.mpt) - MultiMedia-Projekt (*.mmp);;MultiMedia-Projekt-Vorlage (*.mpt) + MultiMedia-Projekt (*.mmp);;MultiMedia-Projekt-Vorlage (*.mpt) Help not available @@ -2237,6 +2237,14 @@ Bitte besuchen Sie http://wiki.mindrules.net für Dokumentationen über LMMS.LADSPA Plugins... LADSPA-Plugins... + + MultiMedia Project (*.mmp *.mmpz *.xml) + MultiMedia Projekt (*.mmp *.mmpz *.xml) + + + MultiMedia Project (*.mmp *.mmpz);;MultiMedia Project Template (*.mpt) + MultiMedia Projekt (*.mmp *.mmpz);;MultiMedia Projekt-Vorlage (*.mpt) + mallets @@ -3410,6 +3418,10 @@ Please note that in some cases parallelizing won't work with small buffer-s Wenn Sie einen Computer mit mehr als einem Prozessor besitzen (z.B. Dual-Core-Systeme), sollten Sie einen Parallelisierungs-Level größer 1 wählen. Das bedeutet, dass LMMS versuchen wird, die Sound-Verarbeitung in mehrere Threads aufzuteilen, welche dann vom Betriebsystem auf unterschiedlichen Kernen ausgeführt werden sollten. Bitte beachten Sie, dass in einigen Fällen Parallelisierung nicht mit kleinen Puffergrößen funktionieren wird. Wenn Probleme auftreten (z.B. viele XRuns), versuchen Sie die Puffergröße zu erhöhen. + + Do not compress project files per default + Projektdateien nicht standardmäßig komprimieren + setupWidget diff --git a/include/setup_dialog.h b/include/setup_dialog.h index e4c5d3ffd..2afcb997d 100644 --- a/include/setup_dialog.h +++ b/include/setup_dialog.h @@ -101,6 +101,7 @@ private slots: void toggleNoWizard( bool _enabled ); void toggleNoMsgAfterSetup( bool _enabled ); void toggleDisplaydBV( bool _enabled ); + void toggleNoMMPZ( bool _enabled ); void openWorkingDir( void ); void openVSTDir( void ); @@ -127,6 +128,7 @@ private: bool m_noWizard; bool m_noMsgAfterSetup; bool m_displaydBV; + bool m_noMMPZ; QLineEdit * m_wdLineEdit; diff --git a/src/core/main_window.cpp b/src/core/main_window.cpp index 033e21f98..383322e78 100644 --- a/src/core/main_window.cpp +++ b/src/core/main_window.cpp @@ -132,7 +132,7 @@ mainWindow::mainWindow( engine * _engine ) : side_bar->appendTab( new fileBrowser( configManager::inst()->factoryProjectsDir() + "*" + configManager::inst()->userProjectsDir(), - "*.mmp *.xml *.mid *.flp", + "*.mmp *.mmpz *.xml *.mid *.flp", tr( "My projects" ), embed::getIconPixmap( "project_file" ), splitter, eng() ), @@ -710,10 +710,10 @@ void mainWindow::openProject( void ) { #ifdef QT4 QFileDialog ofd( this, tr( "Open project" ), "", - tr( "MultiMedia Project (*.mmp *.xml)" ) ); + tr( "MultiMedia Project (*.mmp *.mmpz *.xml)" ) ); #else QFileDialog ofd( QString::null, - tr( "MultiMedia Project (*.mmp *.xml)" ), + tr( "MultiMedia Project (*.mmp *.mmpz *.xml)" ), this, "", TRUE ); ofd.setWindowTitle( tr( "Open project" ) ); #endif @@ -751,11 +751,11 @@ bool mainWindow::saveProjectAs( void ) { #ifdef QT4 QFileDialog sfd( this, tr( "Save project" ), "", - tr( "MultiMedia Project (*.mmp);;" + tr( "MultiMedia Project (*.mmp *.mmpz);;" "MultiMedia Project Template (*.mpt)" ) ); #else QFileDialog sfd( QString::null, - tr( "MultiMedia Project (*.mmp);;" + tr( "MultiMedia Project (*.mmp *.mmpz);;" "MultiMedia Project Template (*.mpt)" ), this, "", TRUE ); sfd.setWindowTitle( tr( "Save project" ) ); diff --git a/src/core/setup_dialog.cpp b/src/core/setup_dialog.cpp index 54741418a..3c0756570 100644 --- a/src/core/setup_dialog.cpp +++ b/src/core/setup_dialog.cpp @@ -113,6 +113,8 @@ setupDialog::setupDialog( engine * _engine, configTabs _tab_to_open ) : "nomsgaftersetup" ).toInt() ), m_displaydBV( configManager::inst()->value( "app", "displaydbv" ).toInt() ), + m_noMMPZ( configManager::inst()->value( "app", + "nommpz" ).toInt() ), m_workingDir( configManager::inst()->workingDir() ), m_vstDir( configManager::inst()->vstDir() ), m_artworkDir( configManager::inst()->artworkDir() ), @@ -198,7 +200,7 @@ setupDialog::setupDialog( engine * _engine, configTabs _tab_to_open ) : tabWidget * misc_tw = new tabWidget( tr( "MISC" ), general ); - misc_tw->setFixedHeight( 128 ); + misc_tw->setFixedHeight( 150 ); ledCheckBox * disable_tooltips = new ledCheckBox( tr( "Disable tooltips (no spurious " @@ -257,6 +259,16 @@ setupDialog::setupDialog( engine * _engine, configTabs _tab_to_open ) : connect( dbv, SIGNAL( toggled( bool ) ), this, SLOT( toggleDisplaydBV( bool ) ) ); + + ledCheckBox * no_mmpz = new ledCheckBox( + tr( "Do not compress project files per default" ), + misc_tw, NULL, eng(), NULL ); + no_mmpz->move( 10, 126 ); + no_mmpz->setChecked( m_noMMPZ ); + connect( no_mmpz, SIGNAL( toggled( bool ) ), + this, SLOT( toggleNoMMPZ( bool ) ) ); + + gen_layout->addWidget( bufsize_tw ); gen_layout->addSpacing( 10 ); gen_layout->addWidget( misc_tw ); @@ -741,6 +753,8 @@ void setupDialog::accept( void ) QString::number( m_noMsgAfterSetup ) ); configManager::inst()->setValue( "app", "displaydbv", QString::number( m_displaydBV ) ); + configManager::inst()->setValue( "app", "nommpz", + QString::number( m_noMMPZ ) ); configManager::inst()->setValue( "ui", "disablechannelactivityindicators", QString::number( m_disableChActInd ) ); @@ -888,6 +902,14 @@ void setupDialog::toggleDisplaydBV( bool _enabled ) +void setupDialog::toggleNoMMPZ( bool _enabled ) +{ + m_noMMPZ = _enabled; +} + + + + void setupDialog::toggleDisableChActInd( bool _disabled ) { m_disableChActInd = _disabled; diff --git a/src/lib/mmp.cpp b/src/lib/mmp.cpp index 01591cf1d..d556ed4ea 100644 --- a/src/lib/mmp.cpp +++ b/src/lib/mmp.cpp @@ -41,12 +41,12 @@ #ifdef HAVE_CONFIG_H #include -#endif +#endif #include "mmp.h" #include "song_editor.h" - +#include "config_mgr.h" multimediaProject::typeDescStruct @@ -126,7 +126,18 @@ multimediaProject::multimediaProject( const QString & _in_file_name, int col; if( _is_filename == TRUE ) { - if( !setContent( &in_file, &error_msg, &line, &col ) ) + bool error = FALSE; + if( _in_file_name.section( '.', -1 ) == "mmpz" ) + { + QString data = qUncompress( in_file.readAll() ); + error = !setContent( data, &error_msg, &line, &col ); + } + else + { + error = !setContent( &in_file, &error_msg, &line, + &col ); + } + if( error ) { QMessageBox::critical( NULL, songEditor::tr( "Error in " "multimedia-project" ), @@ -188,6 +199,7 @@ bool multimediaProject::writeFile( const QString & _fn, bool _overwrite_check ) { bool clean_meta_nodes = FALSE; QString fn = _fn; + bool compress = FALSE; if( type() == INSTRUMENT_TRACK_SETTINGS ) { if( fn.section( '.', -2, -1 ) != "cs.xml" ) @@ -199,9 +211,23 @@ bool multimediaProject::writeFile( const QString & _fn, bool _overwrite_check ) else if( type() == SONG_PROJECT ) { if( fn.section( '.', -1 ) != "mmp" && - fn.section( '.', -1 ) != "mpt" ) + fn.section( '.', -1 ) != "mpt" && + fn.section( '.', -1 ) != "mmpz" ) { - fn += ".mmp"; + compress = configManager::inst()->value( "app", + "nommpz" ).toInt() == 0; + if( compress ) + { + fn += ".mmpz"; + } + else + { + fn += ".mmp"; + } + } + else + { + compress = ( fn.section( '.', -1 ) == "mmpz" ); } clean_meta_nodes = TRUE; } @@ -263,15 +289,27 @@ bool multimediaProject::writeFile( const QString & _fn, bool _overwrite_check ) } QString xml = "\n" + toString( #if QT_VERSION >= 0x030100 - 0 + 1 #endif ); -#ifdef QT4 - outfile.write( xml.toUtf8().constData(), xml.length() ); + if( compress ) + { +#ifndef QT3 + outfile.write( qCompress( xml.toAscii() ) ); #else - QCString xml_utf8 = xml.utf8(); - outfile.writeBlock( xml_utf8.data(), xml_utf8.length() ); + outfile.writeBlock( qCompress( + (const uchar *) xml.ascii(), xml.length() ) ); #endif + } + else + { +#ifdef QT4 + outfile.write( xml.toUtf8().constData(), xml.length() ); +#else + QCString xml_utf8 = xml.utf8(); + outfile.writeBlock( xml_utf8.data(), xml_utf8.length() ); +#endif + } outfile.close(); return( TRUE );