Compare commits
3 Commits
6c858e0c4e
...
8eb1ac215b
Author | SHA1 | Date | |
---|---|---|---|
8eb1ac215b | |||
e132f2fd1b | |||
12f6b22c8b |
@@ -1,19 +1,6 @@
|
|||||||
target_sources(
|
|
||||||
NostalgiaCore-Studio PRIVATE
|
|
||||||
commands/addcolorcommand.cpp
|
|
||||||
commands/addpagecommand.cpp
|
|
||||||
commands/applycolorallpagescommand.cpp
|
|
||||||
commands/duplicatepagecommand.cpp
|
|
||||||
commands/movecolorcommand.cpp
|
|
||||||
commands/movepagecommand.cpp
|
|
||||||
commands/removecolorcommand.cpp
|
|
||||||
commands/removepagecommand.cpp
|
|
||||||
commands/renamepagecommand.cpp
|
|
||||||
commands/updatecolorcommand.cpp
|
|
||||||
commands/updatecolorinfocommand.cpp
|
|
||||||
)
|
|
||||||
|
|
||||||
target_sources(
|
target_sources(
|
||||||
NostalgiaCore-Studio-ImGui PRIVATE
|
NostalgiaCore-Studio-ImGui PRIVATE
|
||||||
paletteeditor-imgui.cpp
|
paletteeditor-imgui.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
|
add_subdirectory(commands)
|
@@ -0,0 +1,15 @@
|
|||||||
|
|
||||||
|
target_sources(
|
||||||
|
NostalgiaCore-Studio PRIVATE
|
||||||
|
addcolorcommand.cpp
|
||||||
|
addpagecommand.cpp
|
||||||
|
applycolorallpagescommand.cpp
|
||||||
|
duplicatepagecommand.cpp
|
||||||
|
movecolorcommand.cpp
|
||||||
|
movepagecommand.cpp
|
||||||
|
removecolorcommand.cpp
|
||||||
|
removepagecommand.cpp
|
||||||
|
renamepagecommand.cpp
|
||||||
|
updatecolorcommand.cpp
|
||||||
|
updatecolorinfocommand.cpp
|
||||||
|
)
|
@@ -495,11 +495,15 @@ ox::Error StudioUI::queueFileMove(ox::StringParam src, ox::StringParam dst) noex
|
|||||||
|
|
||||||
void StudioUI::procFileMoves() noexcept {
|
void StudioUI::procFileMoves() noexcept {
|
||||||
for (auto const &m : m_queuedMoves) {
|
for (auto const &m : m_queuedMoves) {
|
||||||
oxLogError(m_project->moveItem(m.a, m.b));
|
if (!m_project->exists(m.b)) {
|
||||||
|
oxLogError(m_project->moveItem(m.a, m.b));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
m_queuedMoves.clear();
|
m_queuedMoves.clear();
|
||||||
for (auto const &m : m_queuedDirMoves) {
|
for (auto const &m : m_queuedDirMoves) {
|
||||||
oxLogError(m_project->moveDir(m.a, m.b));
|
if (!m_project->exists(m.b)) {
|
||||||
|
oxLogError(m_project->moveDir(m.a, m.b));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
m_queuedDirMoves.clear();
|
m_queuedDirMoves.clear();
|
||||||
}
|
}
|
||||||
|
@@ -46,6 +46,10 @@ static ox::Result<ox::Vector<ox::String>> listAllRecursive(ox::FileSystem &fs, o
|
|||||||
return std::move(out);
|
return std::move(out);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[[nodiscard]]
|
||||||
|
static constexpr bool isParentOf(ox::StringViewCR parent, ox::StringViewCR child) noexcept {
|
||||||
|
return beginsWith(child, parent);
|
||||||
|
}
|
||||||
|
|
||||||
Project::Project(keel::Context &ctx, ox::String path, ox::StringViewCR projectDataDir):
|
Project::Project(keel::Context &ctx, ox::String path, ox::StringViewCR projectDataDir):
|
||||||
m_kctx(ctx),
|
m_kctx(ctx),
|
||||||
@@ -99,6 +103,9 @@ ox::Error Project::moveItem(ox::StringViewCR src, ox::StringViewCR dest) noexcep
|
|||||||
}
|
}
|
||||||
|
|
||||||
ox::Error Project::moveDir(ox::StringViewCR src, ox::StringViewCR dest) noexcept {
|
ox::Error Project::moveDir(ox::StringViewCR src, ox::StringViewCR dest) noexcept {
|
||||||
|
if (isParentOf(src, dest)) {
|
||||||
|
return ox::Error{1, "cannot move parent to a child directory"};
|
||||||
|
}
|
||||||
OX_REQUIRE(files, listAllRecursive(m_fs, src));
|
OX_REQUIRE(files, listAllRecursive(m_fs, src));
|
||||||
OX_RETURN_ERROR(m_fs.move(src, dest));
|
OX_RETURN_ERROR(m_fs.move(src, dest));
|
||||||
fileMoved.emit(src, dest, ox::UUID{});
|
fileMoved.emit(src, dest, ox::UUID{});
|
||||||
|
Reference in New Issue
Block a user