[olympic/studio,nostalgia] Change Editor item name to item path, make

TileSheetEditorImGui inherit from Editor
This commit is contained in:
2023-12-13 23:15:53 -06:00
parent 960889749d
commit 819e93bb1c
11 changed files with 29 additions and 54 deletions

View File

@ -224,7 +224,7 @@ void StudioUI::drawTabs() noexcept {
if (m_activeEditor != e.get()) {
m_activeEditor = e.get();
studio::editConfig<StudioConfig>(keelCtx(m_ctx), [&](StudioConfig *config) {
config->activeTabItemName = m_activeEditor->itemName();
config->activeTabItemName = m_activeEditor->itemPath();
});
}
if (m_activeEditorUpdatePending == e.get()) {
@ -326,7 +326,7 @@ ox::Error StudioUI::openFile(ox::CRStringView path) noexcept {
ox::Error StudioUI::openFileActiveTab(ox::CRStringView path, bool makeActiveTab) noexcept {
if (m_openFiles.contains(path)) {
for (auto &e : m_editors) {
if (makeActiveTab && e->itemName() == path) {
if (makeActiveTab && e->itemPath() == path) {
m_activeEditor = e.get();
m_activeEditorUpdatePending = e.get();
break;

View File

@ -32,7 +32,7 @@ class BaseEditor: public Widget {
* Returns the name of item being edited.
*/
[[nodiscard]]
virtual ox::CStringView itemName() const noexcept = 0;
virtual ox::CStringView itemPath() const noexcept = 0;
[[nodiscard]]
virtual ox::CStringView itemDisplayName() const noexcept;
@ -98,11 +98,7 @@ class BaseEditor: public Widget {
* Returns the undo stack holding changes to the item being edited.
*/
[[nodiscard]]
virtual UndoStack *undoStack() noexcept {
return nullptr;
}
static ox::StringView pathToItemName(ox::CRStringView path) noexcept;
virtual UndoStack *undoStack() noexcept;
void setRequiresConstantRefresh(bool value) noexcept;
@ -127,15 +123,16 @@ class Editor: public studio::BaseEditor {
Editor(ox::StringView itemPath) noexcept;
[[nodiscard]]
ox::CStringView itemName() const noexcept final;
ox::CStringView itemPath() const noexcept final;
[[nodiscard]]
ox::CStringView itemDisplayName() const noexcept final;
[[nodiscard]]
UndoStack *undoStack() noexcept final;
private:
ox::Error markUnsavedChanges(const UndoCommand*) noexcept;
ox::Error markUnsavedChanges(UndoCommand const*) noexcept;
};

View File

@ -11,7 +11,7 @@
namespace studio {
ox::CStringView BaseEditor::itemDisplayName() const noexcept {
return itemName();
return itemPath();
}
void BaseEditor::cut() {
@ -37,7 +37,7 @@ bool BaseEditor::requiresConstantRefresh() const noexcept {
}
void BaseEditor::close() const {
this->closed.emit(itemName());
this->closed.emit(itemPath());
}
void BaseEditor::save() noexcept {
@ -46,9 +46,9 @@ void BaseEditor::save() noexcept {
setUnsavedChanges(false);
} else {
if constexpr(ox::defines::Debug) {
oxErrorf("Could not save file {}: {} ({}:{})", itemName(), toStr(err), err.file, err.line);
oxErrorf("Could not save file {}: {} ({}:{})", itemPath(), toStr(err), err.file, err.line);
} else {
oxErrorf("Could not save file {}: {}", itemName(), toStr(err));
oxErrorf("Could not save file {}: {}", itemPath(), toStr(err));
}
}
}
@ -102,9 +102,8 @@ ox::Error BaseEditor::saveItem() noexcept {
return OxError(0);
}
ox::StringView BaseEditor::pathToItemName(ox::CRStringView path) noexcept {
const auto lastSlash = std::find(path.rbegin(), path.rend(), '/').offset();
return substr(path, lastSlash + 1);
UndoStack *BaseEditor::undoStack() noexcept {
return nullptr;
}
void BaseEditor::setRequiresConstantRefresh(bool value) noexcept {
@ -119,7 +118,7 @@ Editor::Editor(ox::StringView itemPath) noexcept:
}
[[nodiscard]]
ox::CStringView Editor::itemName() const noexcept {
ox::CStringView Editor::itemPath() const noexcept {
return m_itemPath;
}