/
breton75
/
modus2
Обзор
Документация
Войти
/
breton75
/
modus2
Код
Запросы
0
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
utils/mdeditor/src/main.cpp
76 строк
3 KB
breton75
Update master_logger.cpp, io.pro, and 558 more files...
16 июл 2025, 18:45
16 июл 2025, 18:45
7270658
Код
Авторство
О чём код?
#include "mainwindow.h" #include <QApplication> #include <iostream> #include "../../../framework/global/defs.h" #include "../../../../../svlib/Auxiliary/1.0/auxiliary.h" #define P_READ_ONLY "readonly" #define P_MDMODE "mdmode" #define P_PROJECT_FILE "project_file" const OptionStructList AppOptions = { {{QString(P_FILE)}, "Имя файла для редактирования","Файл", "", ""}, {{QString(P_PATH)}, "Путь поиска, если задан относительный путь к файлу","Путь", "", ""}, {{QString(P_READ_ONLY)}, "Специальный режим работы редактора без возможности редактирования, только просмотр","", "", ""}, {{QString(P_MDMODE)}, "Специальный режим работы редактора в составе Модуса без возможности открытия и создания файлов","", "", ""}, {{QString(P_PROJECT_FILE)}, "Путь к файлу проекта с настройками пользователей","Файл", "", ""} }; int parse_cmd_line(const QStringList& args, SvTextEditor::Params& params); int main(int argc, char *argv[]) { QApplication a(argc, argv); SvTextEditor::Params params; int i = parse_cmd_line(a.arguments(), params); if(i) return i; SvTextEditor w(params); w.show(); return a.exec(); } int parse_cmd_line(const QStringList& args, SvTextEditor::Params& params) { try { /** разбираем операцию **/ SvCommandLineParser cmd_parser; cmd_parser.addOptionStructList(AppOptions); cmd_parser.setSingleDashWordOptionMode(QCommandLineParser::ParseAsLongOptions); cmd_parser.addHelpOption(); cmd_parser.addVersionOption(); if (!cmd_parser.parse(args)) throw SvException(SvException::SomeError, QString("Ошибка разбора командной строки:\n\%1\n\n%2").arg(cmd_parser.errorText()).arg(cmd_parser.helpText()), -1); if (cmd_parser.isSetVersionOption()) throw SvException(SvException::NoError, QString("Тектовый редактор из состава комплекса Modus v.%1\n").arg(APP_VERSION), 1); if (cmd_parser.isSetHelpOption()) throw SvException(SvException::NoError, cmd_parser.helpText(), 2); params.readonly = cmd_parser.isSet(P_READ_ONLY); params.mdmode = cmd_parser.isSet(P_MDMODE); params.file = cmd_parser.isSet(P_FILE) ? cmd_parser.value(P_FILE) : ""; params.project_file = cmd_parser.isSet(P_PROJECT_FILE) ? cmd_parser.value(P_PROJECT_FILE) : ""; params.search_path = cmd_parser.isSet(P_PATH) ? QDir(cmd_parser.value(P_PATH)) : QDir(qApp->applicationDirPath()); return 0; } catch(SvException &e) { std::cout << e.error.toStdString() << "\n"; return e.code; } }