Merge pull request #2602 from LMMS/iss-2577

Fix some Windows data directory resolve issues
This commit is contained in:
Lukas W
2016-02-23 20:06:12 +13:00
3 changed files with 24 additions and 31 deletions

View File

@@ -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" ) );
@@ -533,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();
@@ -580,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();
@@ -625,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();

View File

@@ -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)

View File

@@ -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 );