Normalising config directory to ensure it has trailing path separator resolving #2552
* Moved Setter next to Getter * Set `config_dir` to ensure consistent directory for all files resolving #2551 * Changed PluginManager loading log message to include directory
This commit is contained in:
parent
663b28508c
commit
2770206a8d
3 changed files with 32 additions and 19 deletions
|
|
@ -1,4 +1,5 @@
|
|||
#include "LogManager.h"
|
||||
#include "filesystem.h"
|
||||
#include "PluginManager.h"
|
||||
#include "OpenRGBThemeManager.h"
|
||||
|
||||
|
|
@ -11,6 +12,13 @@ PluginManager::PluginManager()
|
|||
AddPluginCallbackArg = nullptr;
|
||||
RemovePluginCallbackVal = nullptr;
|
||||
RemovePluginCallbackArg = nullptr;
|
||||
|
||||
/*-------------------------------------------------------------------------*\
|
||||
| Create OpenRGB plugins directory |
|
||||
\*-------------------------------------------------------------------------*/
|
||||
std::string plugins_dir = ResourceManager::get()->GetConfigurationDirectory() + plugins_path;
|
||||
|
||||
filesystem::create_directories(plugins_dir);
|
||||
}
|
||||
|
||||
void PluginManager::RegisterAddPluginCallback(AddPluginCallback new_callback, void * new_callback_arg)
|
||||
|
|
@ -27,15 +35,14 @@ void PluginManager::RegisterRemovePluginCallback(RemovePluginCallback new_callba
|
|||
|
||||
void PluginManager::ScanAndLoadPlugins()
|
||||
{
|
||||
LOG_INFO("Loading plugins");
|
||||
|
||||
/*---------------------------------------------------------*\
|
||||
| Get the plugins directory |
|
||||
| |
|
||||
| The plugins directory is a directory named "plugins" in |
|
||||
| the configuration directory |
|
||||
\*---------------------------------------------------------*/
|
||||
const QDir plugins_dir = QString().fromStdString(ResourceManager::get()->GetConfigurationDirectory()) + "plugins/";
|
||||
const QDir plugins_dir = QString(ResourceManager::get()->GetConfigurationDirectory().c_str()).append(plugins_path);
|
||||
LOG_INFO("[PluginManager] Scanning plugin directory: %s", plugins_dir.absolutePath().toStdString().c_str());
|
||||
|
||||
/*---------------------------------------------------------*\
|
||||
| Get a list of all files in the plugins directory |
|
||||
|
|
|
|||
|
|
@ -52,4 +52,6 @@ private:
|
|||
|
||||
RemovePluginCallback RemovePluginCallbackVal;
|
||||
void * RemovePluginCallbackArg;
|
||||
|
||||
const char * plugins_path = "plugins/";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -481,13 +481,6 @@ void ResourceManager::SetupConfigurationDirectory()
|
|||
| Create OpenRGB configuration directory if it doesn't exist |
|
||||
\*-------------------------------------------------------------------------*/
|
||||
filesystem::create_directories(config_dir);
|
||||
|
||||
/*-------------------------------------------------------------------------*\
|
||||
| Create OpenRGB plugins directory |
|
||||
\*-------------------------------------------------------------------------*/
|
||||
std::string plugins_dir = config_dir + "plugins";
|
||||
|
||||
filesystem::create_directories(plugins_dir);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -500,6 +493,26 @@ std::string ResourceManager::GetConfigurationDirectory()
|
|||
return(config_dir);
|
||||
}
|
||||
|
||||
void ResourceManager::SetConfigurationDirectory(std::string directory)
|
||||
{
|
||||
/*-----------------------------------------------------*\
|
||||
| Ensure the directory string has a trailing slash |
|
||||
\*-----------------------------------------------------*/
|
||||
const char separator = filesystem::path::preferred_separator;
|
||||
|
||||
if(directory[directory.size() - 1] != separator)
|
||||
{
|
||||
directory += separator;
|
||||
}
|
||||
|
||||
config_dir = directory;
|
||||
settings_manager->LoadSettings(directory + "OpenRGB.json");
|
||||
profile_manager->SetConfigurationDirectory(directory);
|
||||
|
||||
rgb_controllers_sizes.clear();
|
||||
rgb_controllers_sizes = profile_manager->LoadProfileToList("sizes", true);
|
||||
}
|
||||
|
||||
NetworkServer* ResourceManager::GetServer()
|
||||
{
|
||||
return(server);
|
||||
|
|
@ -579,15 +592,6 @@ const char *ResourceManager::GetDetectionString()
|
|||
return (detection_string);
|
||||
}
|
||||
|
||||
void ResourceManager::SetConfigurationDirectory(std::string directory)
|
||||
{
|
||||
settings_manager->LoadSettings(directory + "OpenRGB.json");
|
||||
profile_manager->SetConfigurationDirectory(directory);
|
||||
|
||||
rgb_controllers_sizes.clear();
|
||||
rgb_controllers_sizes = profile_manager->LoadProfileToList("sizes", true);
|
||||
}
|
||||
|
||||
void ResourceManager::Cleanup()
|
||||
{
|
||||
ResourceManager::get()->WaitForDeviceDetection();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue