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 "LogManager.h"
|
||||||
|
#include "filesystem.h"
|
||||||
#include "PluginManager.h"
|
#include "PluginManager.h"
|
||||||
#include "OpenRGBThemeManager.h"
|
#include "OpenRGBThemeManager.h"
|
||||||
|
|
||||||
|
|
@ -11,6 +12,13 @@ PluginManager::PluginManager()
|
||||||
AddPluginCallbackArg = nullptr;
|
AddPluginCallbackArg = nullptr;
|
||||||
RemovePluginCallbackVal = nullptr;
|
RemovePluginCallbackVal = nullptr;
|
||||||
RemovePluginCallbackArg = 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)
|
void PluginManager::RegisterAddPluginCallback(AddPluginCallback new_callback, void * new_callback_arg)
|
||||||
|
|
@ -27,15 +35,14 @@ void PluginManager::RegisterRemovePluginCallback(RemovePluginCallback new_callba
|
||||||
|
|
||||||
void PluginManager::ScanAndLoadPlugins()
|
void PluginManager::ScanAndLoadPlugins()
|
||||||
{
|
{
|
||||||
LOG_INFO("Loading plugins");
|
|
||||||
|
|
||||||
/*---------------------------------------------------------*\
|
/*---------------------------------------------------------*\
|
||||||
| Get the plugins directory |
|
| Get the plugins directory |
|
||||||
| |
|
| |
|
||||||
| The plugins directory is a directory named "plugins" in |
|
| The plugins directory is a directory named "plugins" in |
|
||||||
| the configuration directory |
|
| 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 |
|
| Get a list of all files in the plugins directory |
|
||||||
|
|
|
||||||
|
|
@ -52,4 +52,6 @@ private:
|
||||||
|
|
||||||
RemovePluginCallback RemovePluginCallbackVal;
|
RemovePluginCallback RemovePluginCallbackVal;
|
||||||
void * RemovePluginCallbackArg;
|
void * RemovePluginCallbackArg;
|
||||||
|
|
||||||
|
const char * plugins_path = "plugins/";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -481,13 +481,6 @@ void ResourceManager::SetupConfigurationDirectory()
|
||||||
| Create OpenRGB configuration directory if it doesn't exist |
|
| Create OpenRGB configuration directory if it doesn't exist |
|
||||||
\*-------------------------------------------------------------------------*/
|
\*-------------------------------------------------------------------------*/
|
||||||
filesystem::create_directories(config_dir);
|
filesystem::create_directories(config_dir);
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------*\
|
|
||||||
| Create OpenRGB plugins directory |
|
|
||||||
\*-------------------------------------------------------------------------*/
|
|
||||||
std::string plugins_dir = config_dir + "plugins";
|
|
||||||
|
|
||||||
filesystem::create_directories(plugins_dir);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -500,6 +493,26 @@ std::string ResourceManager::GetConfigurationDirectory()
|
||||||
return(config_dir);
|
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()
|
NetworkServer* ResourceManager::GetServer()
|
||||||
{
|
{
|
||||||
return(server);
|
return(server);
|
||||||
|
|
@ -579,15 +592,6 @@ const char *ResourceManager::GetDetectionString()
|
||||||
return (detection_string);
|
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()
|
void ResourceManager::Cleanup()
|
||||||
{
|
{
|
||||||
ResourceManager::get()->WaitForDeviceDetection();
|
ResourceManager::get()->WaitForDeviceDetection();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue