/* * Copyright 2016 - 2025 Gary Talent (gary@drinkingtea.net). All rights reserved. */ #pragma once #include #include #include namespace studio { class ProjectExplorer final: public FileExplorer { public: // slots ox::Signal fileChosen; ox::Signal addItem; ox::Signal addDir; ox::Signal deleteItem; ox::Signal renameItem; ox::Signal moveDir; ox::Signal moveItem; explicit ProjectExplorer(keel::Context &kctx) noexcept; ox::Error refreshProjectTreeModel(ox::StringViewCR = {}) noexcept; protected: void fileOpened(ox::StringViewCR path) const noexcept override; void fileDeleted(ox::StringViewCR path) const noexcept override; void fileMoved(ox::StringViewCR src, ox::StringViewCR dst) const noexcept override; void dirMoved(ox::StringViewCR src, ox::StringViewCR dst) const noexcept override; void fileContextMenu(ox::StringViewCR path) const noexcept override; void dirContextMenu(ox::StringViewCR path) const noexcept override; }; }