2023-03-05 14:32:20 +00:00
|
|
|
#include "command_list.h"
|
|
|
|
#include "manager_docs.h"
|
2023-03-10 13:01:19 +00:00
|
|
|
#include "route.h"
|
|
|
|
#include "DocsManager.h"
|
2023-03-05 14:32:20 +00:00
|
|
|
|
|
|
|
using namespace CommandList;
|
2023-03-10 13:01:19 +00:00
|
|
|
using namespace Core;
|
2023-08-29 04:18:41 +00:00
|
|
|
using namespace Presents;
|
2023-03-05 14:32:20 +00:00
|
|
|
|
2023-08-29 01:32:49 +00:00
|
|
|
NewProject::NewProject(const QDir &dir, const QString &name) : dir_symbo(dir), name_val(name) {}
|
|
|
|
|
|
|
|
QString NewProject::name() const { return NAME(NewProject); }
|
|
|
|
|
|
|
|
void NewProject::run(Schedule::CommandsDispatcher *core) const {
|
|
|
|
auto vmgr = core->get<DocumentsManager>(NAME(DocumentsManager));
|
|
|
|
vmgr->projectManager()->newProject(dir_symbo.absolutePath(), name_val);
|
|
|
|
}
|
|
|
|
|
|
|
|
QString NewProject::toText() const { return QString("%1:%2").arg(dir_symbo.absolutePath(), name_val); }
|
|
|
|
|
|
|
|
void NewProject::fromText(const QString &line) {
|
|
|
|
auto list = line.split(":");
|
|
|
|
dir_symbo = QDir(list[0]);
|
|
|
|
name_val = list[1];
|
|
|
|
}
|
|
|
|
|
2023-09-04 14:35:14 +00:00
|
|
|
NewPackage::NewPackage(const QString &path_string) { sequence = path_string.split("/", QString::SplitBehavior::SkipEmptyParts); }
|
2023-03-05 14:32:20 +00:00
|
|
|
|
|
|
|
QString NewPackage::name() const
|
|
|
|
{
|
|
|
|
return NAME(NewPackage);
|
|
|
|
}
|
|
|
|
|
2023-03-10 13:01:19 +00:00
|
|
|
void NewPackage::run(Schedule::CommandsDispatcher *core) const
|
2023-03-05 14:32:20 +00:00
|
|
|
{
|
2023-03-10 13:01:19 +00:00
|
|
|
auto vmgr = core->get<DocumentsManager>(NAME(DocumentsManager));
|
2023-08-15 14:14:00 +00:00
|
|
|
vmgr->createPackage(Route::collect(sequence));
|
2023-03-05 14:32:20 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
QString NewPackage::toText() const
|
|
|
|
{
|
2023-03-10 13:01:19 +00:00
|
|
|
return QStringList(sequence).join("/");
|
2023-03-05 14:32:20 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void NewPackage::fromText(const QString &line)
|
|
|
|
{
|
2023-03-10 13:01:19 +00:00
|
|
|
sequence = line.split("/");
|
|
|
|
}
|
|
|
|
|
|
|
|
NewFile::NewFile(const Route &group, const QString &name, const QString &suffix)
|
|
|
|
: name_val(name), suffix(suffix) { group_val = group.links(); }
|
|
|
|
|
|
|
|
QString NewFile::name() const
|
|
|
|
{
|
|
|
|
return NAME(NewFile);
|
|
|
|
}
|
|
|
|
|
|
|
|
void NewFile::run(Schedule::CommandsDispatcher *core) const
|
|
|
|
{
|
|
|
|
auto vmgr = core->get<DocumentsManager>(NAME(DocumentsManager));
|
2023-08-15 14:14:00 +00:00
|
|
|
vmgr->createFile(Route::collect(group_val), name_val, suffix);
|
2023-03-10 13:01:19 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
QString NewFile::toText() const
|
|
|
|
{
|
|
|
|
return (QStringList() << QStringList(group_val).join("/") << name_val << suffix).join(":");
|
|
|
|
}
|
|
|
|
|
|
|
|
void NewFile::fromText(const QString &line)
|
|
|
|
{
|
|
|
|
auto list = line.split(":", QString::SkipEmptyParts);
|
|
|
|
group_val = list[0].split("/");
|
|
|
|
name_val = list[1];
|
|
|
|
suffix = list[2];
|
|
|
|
}
|
|
|
|
|
|
|
|
SaveAll::SaveAll()
|
|
|
|
{
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
QString SaveAll::name() const
|
|
|
|
{
|
|
|
|
return NAME(SaveAll);
|
|
|
|
}
|
|
|
|
|
|
|
|
void SaveAll::run(Schedule::CommandsDispatcher *core) const
|
|
|
|
{
|
2023-09-01 22:34:06 +00:00
|
|
|
auto vmgr = core->get<DocumentsManager>(NAME(DocumentsManager));
|
|
|
|
|
|
|
|
if (vmgr->projectManager()->isOpenning()) {
|
|
|
|
vmgr->save();
|
|
|
|
vmgr->projectManager()->save();
|
|
|
|
}
|
2023-03-10 13:01:19 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
QString SaveAll::toText() const
|
|
|
|
{
|
|
|
|
return "";
|
|
|
|
}
|
|
|
|
|
2023-08-31 15:33:45 +00:00
|
|
|
void SaveAll::fromText(const QString &line) {}
|
2023-03-17 13:58:38 +00:00
|
|
|
|
2023-08-29 01:32:49 +00:00
|
|
|
OpenFile::OpenFile(const Core::Route &path_node) { path_store = path_node.links(); }
|
2023-03-10 13:01:19 +00:00
|
|
|
|
|
|
|
OpenFile::OpenFile(const QFileInfo &file_path)
|
|
|
|
{
|
|
|
|
final_file = file_path;
|
|
|
|
}
|
|
|
|
|
|
|
|
QString OpenFile::name() const
|
|
|
|
{
|
|
|
|
return NAME(OpenFile);
|
|
|
|
}
|
|
|
|
|
|
|
|
void OpenFile::run(Schedule::CommandsDispatcher *core) const
|
|
|
|
{
|
|
|
|
auto mgr = core->get<DocumentsManager>(NAME(DocumentsManager));
|
|
|
|
if(path_store.size()){
|
2023-08-16 13:48:43 +00:00
|
|
|
mgr->openFile(QList<Core::Route>() << Route::collect(path_store));
|
2023-03-10 13:01:19 +00:00
|
|
|
}
|
|
|
|
else{
|
2023-08-16 13:48:43 +00:00
|
|
|
auto index = mgr->projectManager()->queryAccess()->queryIndex(final_file);
|
|
|
|
auto route = mgr->convertPath(index);
|
2023-03-05 14:32:20 +00:00
|
|
|
|
2023-08-16 13:48:43 +00:00
|
|
|
mgr->openFile(QList<Core::Route>() << route);
|
2023-03-10 13:01:19 +00:00
|
|
|
}
|
2023-03-05 14:32:20 +00:00
|
|
|
}
|
2023-03-10 13:01:19 +00:00
|
|
|
|
|
|
|
QString OpenFile::toText() const
|
|
|
|
{
|
|
|
|
return path_store.join("/");
|
|
|
|
}
|
|
|
|
|
2023-08-29 04:31:29 +00:00
|
|
|
void OpenFile::fromText(const QString &line) { path_store = line.split("/"); }
|
2023-03-10 13:01:19 +00:00
|
|
|
|
2023-08-29 03:52:56 +00:00
|
|
|
CompVisible::CompVisible(PresentHost *host, FilePresent *target, bool state) : host_ins(host), target_ins(target), state_val(state) {
|
2023-03-17 13:58:38 +00:00
|
|
|
path = Route::collect(QList<QString>() << target->name());
|
|
|
|
}
|
|
|
|
|
|
|
|
QString CompVisible::name() const { return QString("/%1[%2]").arg(NAME(CompVisible), target_ins->name()); }
|
|
|
|
|
|
|
|
void CompVisible::run(Schedule::CommandsDispatcher *core) const {
|
|
|
|
target_ins->widget()->setVisible(state_val);
|
|
|
|
if (state_val) {
|
2023-08-16 13:48:43 +00:00
|
|
|
host_ins->append(target_ins);
|
2023-03-17 13:58:38 +00:00
|
|
|
} else {
|
2023-08-16 13:48:43 +00:00
|
|
|
host_ins->remove(target_ins);
|
2023-03-17 13:58:38 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
QString CompVisible::toText() const { return QString("%1/%2").arg(state_val).arg(path.links().join(":")); }
|
|
|
|
|
|
|
|
void CompVisible::fromText(const QString &line) {
|
|
|
|
auto list = line.split("/");
|
|
|
|
state_val = list[0].toUInt();
|
|
|
|
path = Route::collect(list[1].split(":"));
|
|
|
|
}
|
2023-08-31 15:33:45 +00:00
|
|
|
|
|
|
|
OpenProject::OpenProject(const QString &path) : project_path(path) {}
|
|
|
|
|
|
|
|
QString OpenProject::name() const { return NAME(OpenProject); }
|
|
|
|
|
|
|
|
void OpenProject::run(Schedule::CommandsDispatcher *core) const {
|
|
|
|
auto vmgr = core->get<DocumentsManager>(NAME(DocumentsManager));
|
|
|
|
vmgr->projectManager()->openProject(project_path);
|
|
|
|
}
|
|
|
|
|
|
|
|
QString OpenProject::toText() const { return project_path; }
|
|
|
|
|
|
|
|
void OpenProject::fromText(const QString &line) { project_path = line; }
|
|
|
|
|
|
|
|
CloseProject::CloseProject() {}
|
|
|
|
|
|
|
|
QString CloseProject::name() const { return NAME(CloseProject); }
|
|
|
|
|
|
|
|
void CloseProject::run(Schedule::CommandsDispatcher *core) const {
|
|
|
|
auto vmgr = core->get<DocumentsManager>(NAME(DocumentsManager));
|
|
|
|
vmgr->save();
|
|
|
|
vmgr->closeFile(vmgr->actives());
|
|
|
|
vmgr->projectManager()->save();
|
|
|
|
vmgr->projectManager()->closeProject();
|
|
|
|
}
|
|
|
|
|
|
|
|
QString CloseProject::toText() const { return ""; }
|
|
|
|
|
|
|
|
void CloseProject::fromText(const QString &line) {}
|
2023-09-04 14:35:14 +00:00
|
|
|
|
|
|
|
DeleteTarget::DeleteTarget(const Core::Route &target) : node_path(target) {}
|
|
|
|
|
|
|
|
DeleteTarget::DeleteTarget(const QModelIndex &target) : node_index(target) {}
|
|
|
|
|
|
|
|
QString DeleteTarget::name() const { return NAME(DeleteTarget); }
|
|
|
|
|
|
|
|
void DeleteTarget::run(Schedule::CommandsDispatcher *core) const {
|
|
|
|
auto vmgr = core->get<DocumentsManager>(NAME(DocumentsManager));
|
|
|
|
if (!node_index.isValid())
|
|
|
|
vmgr->deleteNode(node_path);
|
|
|
|
else {
|
|
|
|
auto node_path = vmgr->convertPath(node_index);
|
|
|
|
vmgr->deleteNode(node_path);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
QString DeleteTarget::toText() const { return node_path.links().join("/"); }
|
|
|
|
|
|
|
|
void DeleteTarget::fromText(const QString &line) { Route::collect(line.split("/", QString::SplitBehavior::SkipEmptyParts)); }
|