MetaImGUI 1.0.0
ImGui Application Template for C++20
Loading...
Searching...
No Matches
MetaImGUI::ConfigManager Class Reference

Configuration manager for persistent application settings. More...

#include <ConfigManager.h>

Classes

struct  Impl
 

Public Member Functions

 ConfigManager ()
 
 ~ConfigManager ()
 
 ConfigManager (const ConfigManager &)=delete
 
ConfigManageroperator= (const ConfigManager &)=delete
 
 ConfigManager (ConfigManager &&)=default
 
ConfigManageroperator= (ConfigManager &&)=default
 
bool Load ()
 Load configuration from disk.
 
bool Save ()
 Save configuration to disk.
 
void Reset ()
 Reset configuration to defaults.
 
bool ConfigFileExists () const
 Check if configuration file exists.
 
std::filesystem::path GetConfigPath () const
 Get configuration file path.
 
void SetWindowPosition (int x, int y)
 
void SetWindowSize (int width, int height)
 
std::optional< std::pair< int, int > > GetWindowPosition () const
 
std::optional< std::pair< int, int > > GetWindowSize () const
 
void SetWindowMaximized (bool maximized)
 
bool GetWindowMaximized () const
 
void SetTheme (const std::string &theme)
 
std::string GetTheme () const
 
void AddRecentFile (const std::string &filepath)
 
std::vector< std::string > GetRecentFiles () const
 
void ClearRecentFiles ()
 
void SetMaxRecentFiles (size_t max)
 
void SetString (const std::string &key, const std::string &value)
 
std::optional< std::string > GetString (const std::string &key) const
 
void SetInt (const std::string &key, int value)
 
std::optional< int > GetInt (const std::string &key) const
 
void SetBool (const std::string &key, bool value)
 
std::optional< bool > GetBool (const std::string &key) const
 
void SetFloat (const std::string &key, float value)
 
std::optional< float > GetFloat (const std::string &key) const
 
bool HasKey (const std::string &key) const
 
void RemoveKey (const std::string &key)
 
std::vector< std::string > GetAllKeys () const
 

Detailed Description

Configuration manager for persistent application settings.

ConfigManager handles loading, saving, and accessing application configuration using JSON format. Settings are stored in the user's config directory.

Supported platforms:

  • Linux: ~/.config/MetaImGUI/
  • Windows: APPDATA%/MetaImGUI/
  • macOS: ~/Library/Application Support/MetaImGUI/

Definition at line 41 of file ConfigManager.h.

Constructor & Destructor Documentation

◆ ConfigManager() [1/3]

MetaImGUI::ConfigManager::ConfigManager ( )

Definition at line 53 of file ConfigManager.cpp.

References GetConfigPath(), and Reset().

◆ ~ConfigManager()

MetaImGUI::ConfigManager::~ConfigManager ( )
default

◆ ConfigManager() [2/3]

MetaImGUI::ConfigManager::ConfigManager ( const ConfigManager )
delete

◆ ConfigManager() [3/3]

MetaImGUI::ConfigManager::ConfigManager ( ConfigManager &&  )
default

Member Function Documentation

◆ AddRecentFile()

void MetaImGUI::ConfigManager::AddRecentFile ( const std::string &  filepath)

Definition at line 199 of file ConfigManager.cpp.

◆ ClearRecentFiles()

void MetaImGUI::ConfigManager::ClearRecentFiles ( )

Definition at line 237 of file ConfigManager.cpp.

◆ ConfigFileExists()

bool MetaImGUI::ConfigManager::ConfigFileExists ( ) const

Check if configuration file exists.

Definition at line 120 of file ConfigManager.cpp.

Referenced by Load().

◆ GetAllKeys()

std::vector< std::string > MetaImGUI::ConfigManager::GetAllKeys ( ) const

Definition at line 329 of file ConfigManager.cpp.

References LOG_WARNING.

◆ GetBool()

std::optional< bool > MetaImGUI::ConfigManager::GetBool ( const std::string &  key) const

Definition at line 290 of file ConfigManager.cpp.

References LOG_WARNING.

◆ GetConfigPath()

std::filesystem::path MetaImGUI::ConfigManager::GetConfigPath ( ) const

Get configuration file path.

Definition at line 124 of file ConfigManager.cpp.

Referenced by ConfigManager().

◆ GetFloat()

std::optional< float > MetaImGUI::ConfigManager::GetFloat ( const std::string &  key) const

Definition at line 308 of file ConfigManager.cpp.

References LOG_WARNING.

◆ GetInt()

std::optional< int > MetaImGUI::ConfigManager::GetInt ( const std::string &  key) const

Definition at line 272 of file ConfigManager.cpp.

References LOG_WARNING.

◆ GetRecentFiles()

std::vector< std::string > MetaImGUI::ConfigManager::GetRecentFiles ( ) const

Definition at line 223 of file ConfigManager.cpp.

References LOG_WARNING.

◆ GetString()

std::optional< std::string > MetaImGUI::ConfigManager::GetString ( const std::string &  key) const

Definition at line 254 of file ConfigManager.cpp.

References LOG_WARNING.

◆ GetTheme()

std::string MetaImGUI::ConfigManager::GetTheme ( ) const

◆ GetWindowMaximized()

bool MetaImGUI::ConfigManager::GetWindowMaximized ( ) const

Definition at line 169 of file ConfigManager.cpp.

References LOG_WARNING.

◆ GetWindowPosition()

std::optional< std::pair< int, int > > MetaImGUI::ConfigManager::GetWindowPosition ( ) const

Definition at line 140 of file ConfigManager.cpp.

References LOG_WARNING.

◆ GetWindowSize()

std::optional< std::pair< int, int > > MetaImGUI::ConfigManager::GetWindowSize ( ) const

Definition at line 152 of file ConfigManager.cpp.

References LOG_WARNING.

◆ HasKey()

bool MetaImGUI::ConfigManager::HasKey ( const std::string &  key) const

Definition at line 319 of file ConfigManager.cpp.

◆ Load()

bool MetaImGUI::ConfigManager::Load ( )

Load configuration from disk.

Returns
true if configuration was loaded successfully

Definition at line 60 of file ConfigManager.cpp.

References ConfigFileExists(), LOG_ERROR, LOG_INFO, and Reset().

◆ operator=() [1/2]

ConfigManager & MetaImGUI::ConfigManager::operator= ( ConfigManager &&  )
default

◆ operator=() [2/2]

ConfigManager & MetaImGUI::ConfigManager::operator= ( const ConfigManager )
delete

◆ RemoveKey()

void MetaImGUI::ConfigManager::RemoveKey ( const std::string &  key)

Definition at line 323 of file ConfigManager.cpp.

◆ Reset()

void MetaImGUI::ConfigManager::Reset ( )

◆ Save()

bool MetaImGUI::ConfigManager::Save ( )

Save configuration to disk.

Returns
true if configuration was saved successfully

Definition at line 86 of file ConfigManager.cpp.

References LOG_ERROR, and LOG_INFO.

◆ SetBool()

void MetaImGUI::ConfigManager::SetBool ( const std::string &  key,
bool  value 
)

Definition at line 283 of file ConfigManager.cpp.

◆ SetFloat()

void MetaImGUI::ConfigManager::SetFloat ( const std::string &  key,
float  value 
)

Definition at line 301 of file ConfigManager.cpp.

◆ SetInt()

void MetaImGUI::ConfigManager::SetInt ( const std::string &  key,
int  value 
)

Definition at line 265 of file ConfigManager.cpp.

◆ SetMaxRecentFiles()

void MetaImGUI::ConfigManager::SetMaxRecentFiles ( size_t  max)

Definition at line 241 of file ConfigManager.cpp.

◆ SetString()

void MetaImGUI::ConfigManager::SetString ( const std::string &  key,
const std::string &  value 
)

Definition at line 247 of file ConfigManager.cpp.

◆ SetTheme()

void MetaImGUI::ConfigManager::SetTheme ( const std::string &  theme)

Definition at line 182 of file ConfigManager.cpp.

◆ SetWindowMaximized()

void MetaImGUI::ConfigManager::SetWindowMaximized ( bool  maximized)

Definition at line 165 of file ConfigManager.cpp.

◆ SetWindowPosition()

void MetaImGUI::ConfigManager::SetWindowPosition ( int  x,
int  y 
)

Definition at line 130 of file ConfigManager.cpp.

◆ SetWindowSize()

void MetaImGUI::ConfigManager::SetWindowSize ( int  width,
int  height 
)

Definition at line 135 of file ConfigManager.cpp.


The documentation for this class was generated from the following files: