QtNovelUI/WordsIDE/command_list.h

137 lines
4.0 KiB
C++

#ifndef COMMAND_LIST_H
#define COMMAND_LIST_H
#include "route.h"
#include <commandsdispatcher.h>
namespace Components {
class PresentHost;
class FilePresent;
}
namespace CommandList {
class NewProject : public Schedule::GeCommand {
public:
NewProject(const QDir &dir, const QString &name);
// GeCommand interface
public:
virtual QString name() const override;
virtual void run(Schedule::CommandsDispatcher *core) const override;
virtual QString toText() const override;
virtual void fromText(const QString &line) override;
private:
QDir dir_symbo;
QString name_val;
};
class OpenProject : public Schedule::GeCommand {
public:
OpenProject(const QString &path);
// GeCommand interface
public:
virtual QString name() const override;
virtual void run(Schedule::CommandsDispatcher *core) const override;
virtual QString toText() const override;
virtual void fromText(const QString &line) override;
private:
QString project_path;
};
class CloseProject : public Schedule::GeCommand {
public:
CloseProject();
// GeCommand interface
public:
virtual QString name() const override;
virtual void run(Schedule::CommandsDispatcher *core) const override;
virtual QString toText() const override;
virtual void fromText(const QString &line) override;
};
class NewPackage : public Schedule::GeCommand {
public:
NewPackage(const QString &path_string);
// GeCommand interface
public:
virtual QString name() const override;
virtual void run(Schedule::CommandsDispatcher *core) const override;
virtual QString toText() const override;
virtual void fromText(const QString &line) override;
private:
QList<QString> sequence;
};
class NewFile : public Schedule::GeCommand {
public:
NewFile(const Core::Route &group, const QString &name,
const QString &suffix);
private:
QList<QString> group_val;
QString name_val, suffix;
// GeCommand interface
public:
virtual QString name() const override;
virtual void run(Schedule::CommandsDispatcher *core) const override;
virtual QString toText() const override;
virtual void fromText(const QString &line) override;
};
class OpenFile : public Schedule::GeCommand {
public:
OpenFile(const Core::Route &path_node);
OpenFile(const QFileInfo &f);
private:
QList<QString> path_store;
QFileInfo final_file;
// GeCommand interface
public:
virtual QString name() const override;
virtual void run(Schedule::CommandsDispatcher *core) const override;
virtual QString toText() const override;
virtual void fromText(const QString &line) override;
};
class SaveAll : public Schedule::GeCommand {
public:
SaveAll();
// GeCommand interface
public:
virtual QString name() const override;
virtual void run(Schedule::CommandsDispatcher *core) const override;
virtual QString toText() const override;
virtual void fromText(const QString &line) override;
};
// 切换视图组件 ================================================================
class CompVisible : public Schedule::GeCommand {
public:
CompVisible(Components::PresentHost *host, Components::FilePresent *target, bool state);
// GeCommand interface
public:
virtual QString name() const override;
virtual void run(Schedule::CommandsDispatcher *core) const override;
virtual QString toText() const override;
virtual void fromText(const QString &line) override;
private:
Components::PresentHost *host_ins;
Components::FilePresent *target_ins;
Core::Route path;
bool state_val;
};
} // namespace CommandList
#endif // COMMAND_LIST_H