vlc | branch: master | Hannes Domani <[email protected]> | Thu Mar 5 19:38:12 2015 +0100| [f92239f0410ce696dee5874c9cd69d8b782c6e31] | committer: Jean-Baptiste Kempf
Portable windows build If a portable/ folder is next to the libvlccore.dll binary, it will use it for most configuration and other files. Close #9751, #2114 and #12679 Signed-off-by: Jean-Baptiste Kempf <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f92239f0410ce696dee5874c9cd69d8b782c6e31 --- modules/gui/qt4/qt4.cpp | 9 +++++++++ src/win32/dirs.c | 15 +++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/modules/gui/qt4/qt4.cpp b/modules/gui/qt4/qt4.cpp index f0d5891..7b0b795 100644 --- a/modules/gui/qt4/qt4.cpp +++ b/modules/gui/qt4/qt4.cpp @@ -483,6 +483,15 @@ static void *Thread( void *obj ) /* All the settings are in the .conf/.ini style */ +#ifdef _WIN32 + char *cConfigDir = config_GetUserDir( VLC_CONFIG_DIR ); + QString configDir = cConfigDir; + free( cConfigDir ); + if( configDir.endsWith( "\\vlc" ) ) + configDir.chop( 4 ); /* the "\vlc" dir is added again by QSettings */ + QSettings::setPath( QSettings::IniFormat, QSettings::UserScope, configDir ); +#endif + p_intf->p_sys->mainSettings = new QSettings( #ifdef _WIN32 QSettings::IniFormat, diff --git a/src/win32/dirs.c b/src/win32/dirs.c index fbb48b6..7a62bfc 100644 --- a/src/win32/dirs.c +++ b/src/win32/dirs.c @@ -87,6 +87,21 @@ static char *config_GetShellDir (int csidl) static char *config_GetAppDir (void) { + /* if portable directory exists, use it */ + TCHAR path[MAX_PATH]; + if (GetModuleFileName (NULL, path, MAX_PATH)) + { + TCHAR *lastDir = _tcsrchr (path, '\\'); + if (lastDir) + { + _tcscpy (lastDir + 1, TEXT("portable")); + DWORD attrib = GetFileAttributes (path); + if (attrib != INVALID_FILE_ATTRIBUTES && + (attrib & FILE_ATTRIBUTE_DIRECTORY)) + return FromT (path); + } + } + char *psz_dir; char *psz_parent = config_GetShellDir (CSIDL_APPDATA); _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
