From eec6c5b4f035168c0c5c6a63d1713665c6e66acd Mon Sep 17 00:00:00 2001 From: Lukas W Date: Fri, 19 Feb 2016 12:04:36 +1300 Subject: [PATCH 1/2] Clean up some path separator mess --- plugins/stk/mallets/mallets.cpp | 3 +-- src/core/ConfigManager.cpp | 30 ++++++++++++------------------ src/gui/SetupDialog.cpp | 16 ++++++++-------- 3 files changed, 21 insertions(+), 28 deletions(-) diff --git a/plugins/stk/mallets/mallets.cpp b/plugins/stk/mallets/mallets.cpp index 632f88fd556..44b43830a64 100644 --- a/plugins/stk/mallets/mallets.cpp +++ b/plugins/stk/mallets/mallets.cpp @@ -79,8 +79,7 @@ malletsInstrument::malletsInstrument( InstrumentTrack * _instrument_track ): m_presetsModel(this), m_spreadModel(0, 0, 255, 1, this, tr( "Spread" )), m_filesMissing( !QDir( ConfigManager::inst()->stkDir() ).exists() || - !QFileInfo( ConfigManager::inst()->stkDir() + QDir::separator() - + "sinewave.raw" ).exists() ) + !QFileInfo( ConfigManager::inst()->stkDir() + "/sinewave.raw" ).exists() ) { // ModalBar m_presetsModel.addItem( tr( "Marimba" ) ); diff --git a/src/core/ConfigManager.cpp b/src/core/ConfigManager.cpp index 85125ed59be..89128aa826f 100644 --- a/src/core/ConfigManager.cpp +++ b/src/core/ConfigManager.cpp @@ -36,13 +36,13 @@ #include "GuiApplication.h" -static inline QString ensureTrailingSlash( const QString & _s ) +static inline QString ensureTrailingSlash( const QString & s ) { - if( _s.right( 1 ) != QDir::separator() ) + if(s.at(s.length()-1) != '/') { - return _s + QDir::separator(); + return s + '/'; } - return _s; + return s; } @@ -50,13 +50,11 @@ ConfigManager * ConfigManager::s_instanceOfMe = NULL; ConfigManager::ConfigManager() : - m_lmmsRcFile( QDir::home().absolutePath() + QDir::separator() + - ".lmmsrc.xml" ), - m_workingDir( QDir::home().absolutePath() + QDir::separator() + - "lmms" + QDir::separator() ), + m_lmmsRcFile( QDir::home().absolutePath() +"/.lmmsrc.xml" ), + m_workingDir( QDir::home().absolutePath() + "/lmms/"), m_dataDir( "data:/" ), m_artworkDir( defaultArtworkDir() ), - m_vstDir( m_workingDir + "vst" + QDir::separator() ), + m_vstDir( m_workingDir + "vst/" ), m_flDir( QDir::home().absolutePath() ), m_gigDir( m_workingDir + GIG_PATH ), m_sf2Dir( m_workingDir + SF2_PATH ), @@ -400,11 +398,7 @@ void ConfigManager::loadConfigFile() { m_artworkDir = defaultArtworkDir(); } - if( m_artworkDir.right( 1 ) != - QDir::separator() ) - { - m_artworkDir += QDir::separator(); - } + m_artworkDir = ensureTrailingSlash(m_artworkDir); } setWorkingDir( value( "paths", "workingdir" ) ); @@ -433,18 +427,18 @@ void ConfigManager::loadConfigFile() } - if( m_vstDir.isEmpty() || m_vstDir == QDir::separator() || + if( m_vstDir.isEmpty() || m_vstDir == QDir::separator() || m_vstDir == "/" || !QDir( m_vstDir ).exists() ) { #ifdef LMMS_BUILD_WIN32 QString programFiles = QString::fromLocal8Bit( getenv( "ProgramFiles" ) ); - m_vstDir = programFiles + QDir::separator() + "VstPlugins" + QDir::separator(); + m_vstDir = programFiles + "/VstPlugins/"; #else m_vstDir = m_workingDir + "plugins/vst/"; #endif } - if( m_flDir.isEmpty() || m_flDir == QDir::separator() ) + if( m_flDir.isEmpty() || m_flDir == QDir::separator() || m_flDir == "/") { m_flDir = ensureTrailingSlash( QDir::home().absolutePath() ); } @@ -455,7 +449,7 @@ void ConfigManager::loadConfigFile() } #ifdef LMMS_HAVE_STK - if( m_stkDir.isEmpty() || m_stkDir == QDir::separator() || + if( m_stkDir.isEmpty() || m_stkDir == QDir::separator() || m_stkDir == "/" || !QDir( m_stkDir ).exists() ) { #if defined(LMMS_BUILD_WIN32) diff --git a/src/gui/SetupDialog.cpp b/src/gui/SetupDialog.cpp index b894a0fe3e8..4c64fac1173 100644 --- a/src/gui/SetupDialog.cpp +++ b/src/gui/SetupDialog.cpp @@ -1003,18 +1003,18 @@ void SetupDialog::accept() ConfigManager::inst()->setValue( "app", "language", m_lang ); - ConfigManager::inst()->setWorkingDir( m_workingDir ); - ConfigManager::inst()->setVSTDir( m_vstDir ); - ConfigManager::inst()->setGIGDir( m_gigDir ); - ConfigManager::inst()->setSF2Dir( m_sf2Dir ); - ConfigManager::inst()->setArtworkDir( m_artworkDir ); - ConfigManager::inst()->setFLDir( m_flDir ); - ConfigManager::inst()->setLADSPADir( m_ladDir ); + ConfigManager::inst()->setWorkingDir(QDir::fromNativeSeparators(m_workingDir)); + ConfigManager::inst()->setVSTDir(QDir::fromNativeSeparators(m_vstDir)); + ConfigManager::inst()->setGIGDir(QDir::fromNativeSeparators(m_gigDir)); + ConfigManager::inst()->setSF2Dir(QDir::fromNativeSeparators(m_sf2Dir)); + ConfigManager::inst()->setArtworkDir(QDir::fromNativeSeparators(m_artworkDir)); + ConfigManager::inst()->setFLDir(QDir::fromNativeSeparators(m_flDir)); + ConfigManager::inst()->setLADSPADir(QDir::fromNativeSeparators(m_ladDir)); #ifdef LMMS_HAVE_FLUIDSYNTH ConfigManager::inst()->setDefaultSoundfont( m_defaultSoundfont ); #endif #ifdef LMMS_HAVE_STK - ConfigManager::inst()->setSTKDir( m_stkDir ); + ConfigManager::inst()->setSTKDir(QDir::fromNativeSeparators(m_stkDir)); #endif ConfigManager::inst()->setBackgroundArtwork( m_backgroundArtwork ); From d88902e95bc88ae77e6c75aee40ac945a0c5f324 Mon Sep 17 00:00:00 2001 From: tresf Date: Tue, 23 Feb 2016 01:08:08 -0500 Subject: [PATCH 2/2] Fix rawwaves directory on Windows Per #2577 --- plugins/stk/mallets/mallets.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/stk/mallets/mallets.cpp b/plugins/stk/mallets/mallets.cpp index 44b43830a64..d99c36820c7 100644 --- a/plugins/stk/mallets/mallets.cpp +++ b/plugins/stk/mallets/mallets.cpp @@ -532,7 +532,7 @@ malletsSynth::malletsSynth( const StkFloat _pitch, try { Stk::setSampleRate( _sample_rate ); - Stk::setRawwavePath( ConfigManager::inst()->stkDir() + Stk::setRawwavePath( QDir( ConfigManager::inst()->stkDir() ).absolutePath() .toLatin1().constData() ); m_voice = new ModalBar(); @@ -579,7 +579,7 @@ malletsSynth::malletsSynth( const StkFloat _pitch, try { Stk::setSampleRate( _sample_rate ); - Stk::setRawwavePath( ConfigManager::inst()->stkDir() + Stk::setRawwavePath( QDir( ConfigManager::inst()->stkDir() ).absolutePath() .toLatin1().constData() ); m_voice = new TubeBell(); @@ -624,7 +624,7 @@ malletsSynth::malletsSynth( const StkFloat _pitch, try { Stk::setSampleRate( _sample_rate ); - Stk::setRawwavePath( ConfigManager::inst()->stkDir() + Stk::setRawwavePath( QDir( ConfigManager::inst()->stkDir() ).absolutePath() .toLatin1().constData() ); m_voice = new BandedWG();