1#ifndef YAZE_APP_CORE_PROJECT_H
2#define YAZE_APP_CORE_PROJECT_H
8#include <unordered_map>
10#include "absl/status/status.h"
11#include "absl/status/statusor.h"
37 std::vector<std::string>
tags;
100 std::unordered_map<std::string, std::unordered_map<std::string, std::string>>
resource_labels;
133 absl::Status
Create(
const std::string& project_name,
const std::string& base_path);
134 absl::Status
Open(
const std::string& project_path);
136 absl::Status
SaveAs(
const std::string& new_path);
147 std::string
GetLabel(
const std::string& resource_type,
int id,
148 const std::string& default_value =
"")
const;
169#ifdef YAZE_ENABLE_JSON_PROJECT_FORMAT
170 absl::Status LoadFromJsonFormat(
const std::string& project_path);
171 absl::Status SaveToJsonFormat();
194 const std::string& template_name,
195 const std::string& project_name,
196 const std::string& base_path);
205 const std::string& target_path,
218 void EditLabel(
const std::string& type,
const std::string& key,
219 const std::string& newValue);
221 const std::string& key,
222 const std::string& defaultValue);
223 std::string
GetLabel(
const std::string& type,
const std::string& key);
224 std::string
CreateOrGetLabel(
const std::string& type,
const std::string& key,
225 const std::string& defaultValue);
234 std::unordered_map<std::string, std::unordered_map<std::string, std::string>>
Enhanced project management with templates and validation.
static std::vector< ProjectTemplate > GetProjectTemplates()
static absl::Status ValidateProjectStructure(const YazeProject &project)
static absl::Status ConvertProject(const std::string &source_path, const std::string &target_path, ProjectFormat target_format)
static std::vector< std::string > GetRecommendedFixesForProject(const YazeProject &project)
static absl::StatusOr< YazeProject > CreateFromTemplate(const std::string &template_name, const std::string &project_name, const std::string &base_path)
static absl::Status RestoreProject(const std::string &backup_path)
static absl::Status BackupProject(const YazeProject &project)
static std::vector< std::string > FindProjectsInDirectory(const std::string &directory)
std::string GetFilePath() const
RecentFilesManager(const RecentFilesManager &)=delete
static RecentFilesManager & GetInstance()
std::vector< std::string > recent_files_
RecentFilesManager & operator=(const RecentFilesManager &)=delete
const std::vector< std::string > & GetRecentFiles() const
void AddFile(const std::string &file_path)
ProjectFormat
Supported project file formats.
const std::string kRecentFilesFilename
Main namespace for the application.
YazeProject template_project
std::string display_description
void SelectableLabelWithNameEdit(bool selected, const std::string &type, const std::string &key, const std::string &defaultValue)
bool LoadLabels(const std::string &filename)
void DisplayLabels(bool *p_open)
std::string GetLabel(const std::string &type, const std::string &key)
std::unordered_map< std::string, std::unordered_map< std::string, std::string > > labels_
void EditLabel(const std::string &type, const std::string &key, const std::string &newValue)
std::string CreateOrGetLabel(const std::string &type, const std::string &key, const std::string &defaultValue)
Consolidated workspace and UI settings.
float autosave_interval_secs
std::vector< std::string > recent_files
std::map< std::string, std::string > custom_keybindings
std::vector< std::string > saved_layouts
std::string last_layout_preset
std::map< std::string, bool > editor_visibility
std::string window_layout_data
std::string gemini_api_key
std::string custom_system_prompt
Modern project structure with comprehensive settings consolidation.
absl::Status Open(const std::string &project_path)
absl::Status SaveToYazeFormat()
absl::Status LoadAllSettings()
std::unordered_map< std::string, std::unordered_map< std::string, std::string > > resource_labels
bool project_opened() const
std::map< std::string, std::string > zscream_mappings
std::vector< std::string > additional_roms
WorkspaceSettings workspace_settings
std::string assets_folder
struct yaze::core::YazeProject::AgentSettings agent_settings
absl::Status Validate() const
std::string symbols_filename
absl::Status LoadFromYazeFormat(const std::string &project_path)
FeatureFlags::Flags feature_flags
std::string GenerateProjectId() const
std::string GetLabel(const std::string &resource_type, int id, const std::string &default_value="") const
std::string GetRelativePath(const std::string &absolute_path) const
std::string labels_filename
std::string output_folder
std::string git_repository
absl::Status RepairProject()
std::string GetDisplayName() const
absl::Status InitializeEmbeddedLabels()
absl::Status ImportFromZScreamFormat(const std::string &project_path)
std::vector< std::string > build_configurations
absl::Status Create(const std::string &project_name, const std::string &base_path)
std::vector< std::string > GetMissingFiles() const
void InitializeDefaults()
std::string GetAbsolutePath(const std::string &relative_path) const
std::string zscream_project_file
absl::Status ResetToDefaults()
absl::Status SaveAllSettings()
std::string rom_backup_folder
absl::Status ImportZScreamProject(const std::string &zscream_project_path)
absl::Status ExportForZScream(const std::string &target_path)
absl::Status SaveAs(const std::string &new_path)
std::string patches_folder