1#ifndef YAZE_APP_EDITOR_SYSTEM_PROJECT_MANAGER_H_
2#define YAZE_APP_EDITOR_SYSTEM_PROJECT_MANAGER_H_
8#include "absl/status/status.h"
40 absl::Status
OpenProject(
const std::string& filename =
"");
64 const std::string& project_name);
87 const std::string& project_path);
113 static std::vector<project::ProjectManager::ProjectTemplate>
GetZsoTemplates();
Handles all project file operations with ROM-first workflow.
std::string GenerateProjectFilename(const std::string &project_name) const
absl::Status FinalizeProjectCreation(const std::string &project_name, const std::string &project_path)
Complete project creation after ROM is loaded.
absl::Status SaveProjectAs(const std::string &filename="")
absl::Status ExportProject(const std::string &export_path)
absl::Status RepairCurrentProject()
std::vector< std::string > GetAvailableTemplates() const
ToastManager * toast_manager_
bool HasActiveProject() const
std::string GetProjectPath() const
absl::Status ApplyZsoPreset(const std::string &preset_name)
Apply a ZSO preset to the current project.
absl::Status ValidateProject()
bool pending_rom_selection_
bool IsValidProjectFile(const std::string &filename) const
absl::Status SaveProject()
absl::Status SetProjectRom(const std::string &rom_path)
Set the ROM for the current project.
const project::YazeProject & GetCurrentProject() const
absl::Status CreateNewProject(const std::string &template_name="")
project::YazeProject current_project_
absl::Status OpenProject(const std::string &filename="")
void RequestRomSelection()
Request ROM selection (triggers callback)
static std::vector< project::ProjectManager::ProjectTemplate > GetZsoTemplates()
Get ZSO-specific project templates.
void CancelPendingProject()
Cancel pending project creation.
ProjectManager(ToastManager *toast_manager)
bool IsPendingRomSelection() const
Check if project is waiting for ROM selection.
absl::Status ImportProject(const std::string &project_path)
std::function< void()> rom_selection_callback_
~ProjectManager()=default
absl::Status LoadProjectFromFile(const std::string &filename)
std::string pending_template_name_
absl::Status InitializeProjectStructure(const std::string &project_path)
absl::Status CreateFromTemplate(const std::string &template_name, const std::string &project_name)
project::YazeProject & GetCurrentProject()
absl::Status SaveProjectToFile(const std::string &filename)
std::string GetProjectName() const
void SetRomSelectionCallback(std::function< void()> callback)
Set callback for when ROM selection is needed.
Modern project structure with comprehensive settings consolidation.