[studio] Cleanup
This commit is contained in:
parent
3c3d53b40c
commit
3e78ec3fe5
@ -18,9 +18,9 @@
|
|||||||
|
|
||||||
namespace studio {
|
namespace studio {
|
||||||
|
|
||||||
static ox::Vector<studio::Module const*> modules;
|
static ox::Vector<Module const*> modules;
|
||||||
|
|
||||||
void registerModule(studio::Module const*mod) noexcept {
|
void registerModule(Module const*mod) noexcept {
|
||||||
if (mod) {
|
if (mod) {
|
||||||
modules.emplace_back(mod);
|
modules.emplace_back(mod);
|
||||||
}
|
}
|
||||||
@ -63,7 +63,7 @@ StudioUI::StudioUI(turbine::Context &ctx, ox::StringParam projectDataDir) noexce
|
|||||||
auto const openProjErr = openProjectPath(config.projectPath);
|
auto const openProjErr = openProjectPath(config.projectPath);
|
||||||
if (!openProjErr) {
|
if (!openProjErr) {
|
||||||
for (auto const&f: config.openFiles) {
|
for (auto const&f: config.openFiles) {
|
||||||
auto openFileErr = openFileActiveTab(f, config.activeTabItemName == f);
|
auto const openFileErr = openFileActiveTab(f, config.activeTabItemName == f);
|
||||||
if (openFileErr) {
|
if (openFileErr) {
|
||||||
oxErrorf("\nCould not open editor for file:\n\t{}\nReason:\n\t{}\n", f, toStr(openFileErr));
|
oxErrorf("\nCould not open editor for file:\n\t{}\nReason:\n\t{}\n", f, toStr(openFileErr));
|
||||||
continue;
|
continue;
|
||||||
@ -238,13 +238,13 @@ void StudioUI::drawTabs() noexcept {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void StudioUI::loadEditorMaker(studio::EditorMaker const&editorMaker) noexcept {
|
void StudioUI::loadEditorMaker(EditorMaker const&editorMaker) noexcept {
|
||||||
for (auto const&ext : editorMaker.fileTypes) {
|
for (auto const&ext : editorMaker.fileTypes) {
|
||||||
m_editorMakers[ext] = editorMaker.make;
|
m_editorMakers[ext] = editorMaker.make;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void StudioUI::loadModule(studio::Module const&mod) noexcept {
|
void StudioUI::loadModule(Module const&mod) noexcept {
|
||||||
for (auto const&editorMaker : mod.editors(m_sctx)) {
|
for (auto const&editorMaker : mod.editors(m_sctx)) {
|
||||||
loadEditorMaker(editorMaker);
|
loadEditorMaker(editorMaker);
|
||||||
}
|
}
|
||||||
@ -261,20 +261,20 @@ void StudioUI::loadModules() noexcept {
|
|||||||
|
|
||||||
void StudioUI::toggleProjectExplorer() noexcept {
|
void StudioUI::toggleProjectExplorer() noexcept {
|
||||||
m_showProjectExplorer = !m_showProjectExplorer;
|
m_showProjectExplorer = !m_showProjectExplorer;
|
||||||
studio::editConfig<StudioConfig>(keelCtx(m_ctx), [&](StudioConfig &config) {
|
editConfig<StudioConfig>(keelCtx(m_ctx), [&](StudioConfig &config) {
|
||||||
config.showProjectExplorer = m_showProjectExplorer;
|
config.showProjectExplorer = m_showProjectExplorer;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void StudioUI::redo() noexcept {
|
void StudioUI::redo() noexcept {
|
||||||
auto undoStack = m_activeEditor ? m_activeEditor->undoStack() : nullptr;
|
auto const undoStack = m_activeEditor ? m_activeEditor->undoStack() : nullptr;
|
||||||
if (undoStack && undoStack->canRedo()) {
|
if (undoStack && undoStack->canRedo()) {
|
||||||
oxLogError(m_activeEditor->undoStack()->redo());
|
oxLogError(m_activeEditor->undoStack()->redo());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void StudioUI::undo() noexcept {
|
void StudioUI::undo() noexcept {
|
||||||
auto undoStack = m_activeEditor ? m_activeEditor->undoStack() : nullptr;
|
auto const undoStack = m_activeEditor ? m_activeEditor->undoStack() : nullptr;
|
||||||
if (undoStack && undoStack->canUndo()) {
|
if (undoStack && undoStack->canUndo()) {
|
||||||
oxLogError(m_activeEditor->undoStack()->undo());
|
oxLogError(m_activeEditor->undoStack()->undo());
|
||||||
}
|
}
|
||||||
@ -350,9 +350,9 @@ ox::Error StudioUI::openProjectPath(ox::StringParam path) noexcept {
|
|||||||
OX_REQUIRE_M(fs, keel::loadRomFs(path.view()));
|
OX_REQUIRE_M(fs, keel::loadRomFs(path.view()));
|
||||||
OX_RETURN_ERROR(keel::setRomFs(keelCtx(m_ctx), std::move(fs)));
|
OX_RETURN_ERROR(keel::setRomFs(keelCtx(m_ctx), std::move(fs)));
|
||||||
OX_RETURN_ERROR(
|
OX_RETURN_ERROR(
|
||||||
ox::make_unique_catch<studio::Project>(keelCtx(m_ctx), std::move(path), m_projectDataDir)
|
ox::make_unique_catch<Project>(keelCtx(m_ctx), std::move(path), m_projectDataDir)
|
||||||
.moveTo(m_project));
|
.moveTo(m_project));
|
||||||
auto const sctx = applicationData<studio::StudioContext>(m_ctx);
|
auto const sctx = applicationData<StudioContext>(m_ctx);
|
||||||
sctx->project = m_project.get();
|
sctx->project = m_project.get();
|
||||||
turbine::setWindowTitle(m_ctx, ox::sfmt("{} - {}", keelCtx(m_ctx).appName, m_project->projectPath()));
|
turbine::setWindowTitle(m_ctx, ox::sfmt("{} - {}", keelCtx(m_ctx).appName, m_project->projectPath()));
|
||||||
m_project->fileAdded.connect(&m_projectExplorer, &ProjectExplorer::refreshProjectTreeModel);
|
m_project->fileAdded.connect(&m_projectExplorer, &ProjectExplorer::refreshProjectTreeModel);
|
||||||
@ -370,7 +370,7 @@ ox::Error StudioUI::openFile(ox::StringViewCR path) noexcept {
|
|||||||
return openFileActiveTab(path, true);
|
return openFileActiveTab(path, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
ox::Error StudioUI::openFileActiveTab(ox::StringViewCR path, bool makeActiveTab) noexcept {
|
ox::Error StudioUI::openFileActiveTab(ox::StringViewCR path, bool const makeActiveTab) noexcept {
|
||||||
if (!m_project) {
|
if (!m_project) {
|
||||||
return ox::Error(1, "No project open to open a file from");
|
return ox::Error(1, "No project open to open a file from");
|
||||||
}
|
}
|
||||||
@ -384,7 +384,7 @@ ox::Error StudioUI::openFileActiveTab(ox::StringViewCR path, bool makeActiveTab)
|
|||||||
}
|
}
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
OX_REQUIRE(ext, studio::fileExt(path));
|
OX_REQUIRE(ext, fileExt(path));
|
||||||
// create Editor
|
// create Editor
|
||||||
BaseEditor *editor = nullptr;
|
BaseEditor *editor = nullptr;
|
||||||
auto const err = m_editorMakers.contains(ext) ?
|
auto const err = m_editorMakers.contains(ext) ?
|
||||||
|
@ -24,23 +24,23 @@ class StudioUI: public ox::SignalHandler {
|
|||||||
friend class StudioUIDrawer;
|
friend class StudioUIDrawer;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
studio::StudioContext m_sctx;
|
StudioContext m_sctx;
|
||||||
turbine::Context &m_ctx;
|
turbine::Context &m_ctx;
|
||||||
ox::String m_projectDataDir;
|
ox::String m_projectDataDir;
|
||||||
ox::UPtr<studio::Project> m_project;
|
ox::UPtr<Project> m_project;
|
||||||
studio::TaskRunner m_taskRunner;
|
TaskRunner m_taskRunner;
|
||||||
ox::Vector<ox::UPtr<studio::BaseEditor>> m_editors;
|
ox::Vector<ox::UPtr<BaseEditor>> m_editors;
|
||||||
ox::Vector<ox::UPtr<studio::Widget>> m_widgets;
|
ox::Vector<ox::UPtr<Widget>> m_widgets;
|
||||||
ox::HashMap<ox::String, studio::EditorMaker::Func> m_editorMakers;
|
ox::HashMap<ox::String, EditorMaker::Func> m_editorMakers;
|
||||||
ProjectExplorer m_projectExplorer;
|
ProjectExplorer m_projectExplorer;
|
||||||
ox::Vector<ox::String> m_openFiles;
|
ox::Vector<ox::String> m_openFiles;
|
||||||
studio::BaseEditor *m_activeEditorOnLastDraw = nullptr;
|
BaseEditor *m_activeEditorOnLastDraw = nullptr;
|
||||||
studio::BaseEditor *m_activeEditor = nullptr;
|
BaseEditor *m_activeEditor = nullptr;
|
||||||
studio::BaseEditor *m_activeEditorUpdatePending = nullptr;
|
BaseEditor *m_activeEditorUpdatePending = nullptr;
|
||||||
NewMenu m_newMenu;
|
NewMenu m_newMenu;
|
||||||
NewProject m_newProject;
|
NewProject m_newProject;
|
||||||
AboutPopup m_aboutPopup;
|
AboutPopup m_aboutPopup;
|
||||||
ox::Array<studio::Popup*, 3> const m_popups = {
|
ox::Array<Popup*, 3> const m_popups = {
|
||||||
&m_newMenu,
|
&m_newMenu,
|
||||||
&m_newProject,
|
&m_newProject,
|
||||||
&m_aboutPopup
|
&m_aboutPopup
|
||||||
@ -53,7 +53,7 @@ class StudioUI: public ox::SignalHandler {
|
|||||||
void handleKeyEvent(turbine::Key, bool down) noexcept;
|
void handleKeyEvent(turbine::Key, bool down) noexcept;
|
||||||
|
|
||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
constexpr studio::Project *project() noexcept {
|
constexpr Project *project() noexcept {
|
||||||
return m_project.get();
|
return m_project.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -67,9 +67,9 @@ class StudioUI: public ox::SignalHandler {
|
|||||||
|
|
||||||
void drawTabs() noexcept;
|
void drawTabs() noexcept;
|
||||||
|
|
||||||
void loadEditorMaker(studio::EditorMaker const&editorMaker) noexcept;
|
void loadEditorMaker(EditorMaker const&editorMaker) noexcept;
|
||||||
|
|
||||||
void loadModule(studio::Module const&mod) noexcept;
|
void loadModule(Module const&mod) noexcept;
|
||||||
|
|
||||||
void loadModules() noexcept;
|
void loadModules() noexcept;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user