QtNovelUI/WordsIDE/xapp.cpp

58 lines
1.7 KiB
C++
Raw Normal View History

2023-03-17 13:58:38 +00:00
#include "xapp.h"
#include "command_list.h"
2023-02-26 14:44:00 +00:00
#include <QDebug>
#include <iostream>
2023-08-27 14:09:46 +00:00
#include <xmlconfig.h>
#include <xmlprojectmanager.h>
2023-02-26 14:44:00 +00:00
2023-03-17 13:58:38 +00:00
using namespace Schedule;
2023-08-27 14:09:46 +00:00
using namespace Config;
using namespace bridge;
using namespace Core;
using namespace Project;
2023-02-26 14:44:00 +00:00
XApp::XApp(int argc, char **argv)
: QApplication(argc, argv),
parse_service(new ParseBridge()),
project_manager(new XMLProjectManager(this)),
2024-02-14 05:27:15 +00:00
active_docscollect(new DocumentsManager(this)),
disp_core(new CommandsDispatcher(QDir("./"), true)),
gconfig(new XMLConfig)
{
gconfig->loadFile("./software.config");
init_commands(disp_core);
XApp::disp_core->registerMember(active_docscollect);
}
2023-02-26 14:44:00 +00:00
2023-03-17 13:58:38 +00:00
bool XApp::notify(QObject *receiver, QEvent *event) {
2023-02-26 14:44:00 +00:00
try {
return QApplication::notify(receiver, event);
} catch (std::exception *x) {
std::cout << QString("XApplication::").toLocal8Bit().toStdString() << x->what() << std::endl;
delete x;
}
return false;
}
2023-03-17 13:58:38 +00:00
ParseBridge *XApp::parseService() const { return parse_service; }
ProjectManager *XApp::pjtManager() const { return project_manager; }
2024-02-14 05:27:15 +00:00
DocumentsManager *XApp::docsPort() const { return active_docscollect; }
using namespace CommandList;
void XApp::init_commands(Schedule::CommandsDispatcher *host) {
host->registerCommand(new CloseProject());
host->registerCommand(new NewFile(Route(), "", "txt"));
host->registerCommand(new NewPackage(""));
host->registerCommand(new NewProject(QDir(), ""));
host->registerCommand(new OpenFile(Route()));
host->registerCommand(new OpenProject(""));
host->registerCommand(new SaveAll());
host->registerCommand(new DeleteTarget(Route()));
}