[olympic] Cleanup
This commit is contained in:
@ -11,7 +11,7 @@
|
||||
namespace studio {
|
||||
|
||||
struct StudioContext {
|
||||
ox::SignalHandler *ui = nullptr;
|
||||
class StudioUI *ui = nullptr;
|
||||
Project *project = nullptr;
|
||||
};
|
||||
|
||||
|
@ -56,7 +56,7 @@ class Project {
|
||||
ox::HashMap<ox::String, ox::Vector<ox::String>> m_fileExtFileMap;
|
||||
|
||||
public:
|
||||
explicit Project(keel::Context &ctx, ox::String path, ox::CRStringView projectDataDir) noexcept;
|
||||
explicit Project(keel::Context &ctx, ox::String path, ox::CRStringView projectDataDir);
|
||||
|
||||
ox::Error create() noexcept;
|
||||
|
||||
@ -91,7 +91,7 @@ class Project {
|
||||
[[nodiscard]]
|
||||
ox::Vector<ox::String> const&fileList(ox::CRStringView ext) noexcept;
|
||||
|
||||
ox::Error writeAllTypeDescriptors() noexcept;
|
||||
ox::Error writeTypeStore() noexcept;
|
||||
|
||||
private:
|
||||
void buildFileIndex() noexcept;
|
||||
@ -131,8 +131,8 @@ ox::Error Project::writeObj(ox::CRStringView path, T const&obj, ox::ClawFormat f
|
||||
}
|
||||
oxRequire(desc, m_typeStore.get<T>());
|
||||
auto const descExists = m_fs.stat(ox::sfmt("{}/{}", m_typeDescPath, buildTypeId(*desc))).error != 0;
|
||||
if (!descExists || ox::defines::Debug) {
|
||||
oxReturnError(writeAllTypeDescriptors());
|
||||
if (!descExists) {
|
||||
oxReturnError(writeTypeStore());
|
||||
}
|
||||
oxReturnError(keel::setAsset(m_ctx, path, obj));
|
||||
fileUpdated.emit(path);
|
||||
|
@ -26,7 +26,7 @@ static void generateTypes(ox::TypeStore &ts) noexcept {
|
||||
}
|
||||
}
|
||||
|
||||
Project::Project(keel::Context &ctx, ox::String path, ox::CRStringView projectDataDir) noexcept:
|
||||
Project::Project(keel::Context &ctx, ox::String path, ox::CRStringView projectDataDir):
|
||||
m_ctx(ctx),
|
||||
m_path(std::move(path)),
|
||||
m_projectDataDir(projectDataDir),
|
||||
@ -35,6 +35,9 @@ Project::Project(keel::Context &ctx, ox::String path, ox::CRStringView projectDa
|
||||
m_fs(*m_ctx.rom) {
|
||||
oxTracef("studio", "Project: {}", m_path);
|
||||
generateTypes(m_typeStore);
|
||||
if (ox::defines::Debug) {
|
||||
oxThrowError(writeTypeStore());
|
||||
}
|
||||
buildFileIndex();
|
||||
}
|
||||
|
||||
@ -70,7 +73,7 @@ ox::Vector<ox::String> const&Project::fileList(ox::CRStringView ext) noexcept {
|
||||
return m_fileExtFileMap[ext];
|
||||
}
|
||||
|
||||
ox::Error Project::writeAllTypeDescriptors() noexcept {
|
||||
ox::Error Project::writeTypeStore() noexcept {
|
||||
// write all descriptors because we don't know which types T depends on
|
||||
oxReturnError(mkdir(m_typeDescPath));
|
||||
for (auto const &t: m_typeStore.typeList()) {
|
||||
|
Reference in New Issue
Block a user