Files
yaze/src/app/editor/system/user_settings.h
scawful e769cea1d9 feat: Introduce Debugging and Testing Guide with enhanced startup options
- Added a new document, E5-debugging-guide.md, providing comprehensive strategies for debugging and testing the `yaze` application, including logging practices and testing frameworks.
- Updated E2-development-guide.md to include a new section on debugging and testing, detailing quick debugging methods using command-line flags for specific editors and UI cards.
- Enhanced the main application to support command-line flags for opening specific editors and cards on startup, improving the developer experience.
- Refactored the Controller class to handle startup editor and card initialization based on command-line inputs.
2025-10-09 17:19:36 -04:00

75 lines
1.9 KiB
C++

#ifndef YAZE_APP_EDITOR_SYSTEM_USER_SETTINGS_H_
#define YAZE_APP_EDITOR_SYSTEM_USER_SETTINGS_H_
#include <string>
#include "absl/status/status.h"
namespace yaze {
namespace editor {
/**
* @brief Manages user preferences and settings persistence
*/
class UserSettings {
public:
struct Preferences {
// General
float font_global_scale = 1.0f;
bool backup_rom = false;
bool save_new_auto = true;
bool autosave_enabled = true;
float autosave_interval = 300.0f;
int recent_files_limit = 10;
std::string last_rom_path;
std::string last_project_path;
bool show_welcome_on_startup = true;
bool restore_last_session = true;
// Editor Behavior
bool backup_before_save = true;
int default_editor = 0; // 0=None, 1=Overworld, 2=Dungeon, 3=Graphics
// Performance
bool vsync = true;
int target_fps = 60;
int cache_size_mb = 512;
int undo_history_size = 50;
// AI Agent
int ai_provider = 0; // 0=Ollama, 1=Gemini, 2=Mock
std::string ollama_url = "http://localhost:11434";
std::string gemini_api_key;
float ai_temperature = 0.7f;
int ai_max_tokens = 2048;
bool ai_proactive = true;
bool ai_auto_learn = true;
bool ai_multimodal = true;
// CLI Logging
int log_level = 1; // 0=Debug, 1=Info, 2=Warning, 3=Error, 4=Fatal
bool log_to_file = false;
std::string log_file_path;
bool log_ai_requests = true;
bool log_rom_operations = true;
bool log_gui_automation = true;
bool log_proposals = true;
};
UserSettings();
absl::Status Load();
absl::Status Save();
Preferences& prefs() { return prefs_; }
const Preferences& prefs() const { return prefs_; }
private:
Preferences prefs_;
std::string settings_file_path_;
};
} // namespace editor
} // namespace yaze
#endif // YAZE_APP_EDITOR_SYSTEM_USER_SETTINGS_H_