├── icons ├── studio.ico ├── studio.icns ├── database.icns ├── gamsicon_16x16.png ├── gamsworld_16x16.gif ├── bookmark.svg ├── solid │ ├── bookmark.svg │ ├── play.svg │ ├── stop.svg │ ├── ban.svg │ ├── sort-down.svg │ ├── sort-up.svg │ ├── file.svg │ ├── triangle-down.svg │ ├── triangle-left.svg │ ├── triangle-right.svg │ ├── user.svg │ ├── folder-open-bw.svg │ ├── arrow-left.svg │ ├── arrow-right.svg │ ├── scroll.svg │ ├── copy.svg │ ├── menu.svg │ ├── sort.svg │ ├── pen-alt.svg │ ├── search.svg │ ├── terminal.svg │ ├── comment-alt-lines.svg │ ├── undo.svg │ ├── redo.svg │ ├── kill.svg │ ├── door-open.svg │ ├── save.svg │ ├── minus.svg │ ├── paste.svg │ ├── envelope.svg │ ├── hammer.svg │ ├── out.svg │ ├── remove.svg │ ├── search-minus.svg │ ├── move-up.svg │ ├── move-down.svg │ ├── play-engine.svg │ ├── play-neos.svg │ ├── external-link.svg │ ├── angle-double-down.svg │ ├── angle-double-up.svg │ ├── lock.svg │ ├── cut.svg │ ├── sort-x-dn.svg │ ├── sort-x-up.svg │ ├── book.svg │ ├── question-square.svg │ ├── code.svg │ ├── home.svg │ ├── search-off.svg │ ├── lock-open.svg │ ├── sort-u.svg │ ├── truck.svg │ ├── play-neos-l.svg │ ├── play-gdx.svg │ ├── inst-single.svg │ ├── sort-n.svg │ ├── search-plus.svg │ ├── split-v.svg │ ├── split-h.svg │ ├── sort-t.svg │ ├── out-in.svg │ ├── step.svg │ ├── gdxdiff.svg │ ├── clipboard-list.svg │ ├── books.svg │ ├── plus.svg │ ├── update.svg │ ├── pause.svg │ ├── cog.svg │ ├── link.svg │ ├── new.svg │ ├── code-gdx.svg │ ├── sort-n-up.svg │ ├── sort-u-dn.svg │ ├── sort-u-up.svg │ ├── sort-n-dn.svg │ ├── sort-t-dn.svg │ ├── sort-t-up.svg │ └── insert.svg ├── engine-g.svg ├── folder.svg ├── trex-on.svg ├── square-gray.svg ├── square-yellow.svg ├── square-darkyellow.svg ├── square-red.svg ├── square-green.svg ├── engine.svg ├── miro.svg ├── filter.svg ├── gamslogo.svg ├── trex-off.svg ├── gams-w24.svg ├── miro-h.svg ├── folder-open.svg ├── tlock.svg ├── filter-off.svg ├── square-gray-yellow.svg ├── gams-w.svg ├── square-red-yellow.svg ├── tlock-open.svg ├── square-green-yellow.svg ├── so-icon.svg ├── exclam-circle-r.svg ├── gams-prj.svg ├── style.css ├── gams-prj1.svg ├── tremove.svg ├── gams-w-run.svg ├── file-alt.svg ├── err-ref.svg ├── gams-prj2.svg ├── gams-prj3.svg ├── gams-prj4.svg ├── gams-prj5.svg ├── gams-prj6.svg ├── err-ref-missing.svg ├── file-param.svg ├── ref-file.svg ├── neos-g.svg ├── university.svg ├── file-edit.svg └── file-connect.svg ├── fonts ├── Cousine-Bold.ttf ├── FiraCode-Bold.ttf ├── Cousine-Italic.ttf ├── Cousine-Regular.ttf ├── FiraCode-Regular.ttf ├── Cousine-BoldItalic.ttf ├── JetBrainsMono-Bold.ttf ├── SourceCodePro-Bold.ttf ├── JetBrainsMono-Italic.ttf ├── JetBrainsMono-Regular.ttf ├── SourceCodePro-Regular.ttf ├── JetBrainsMono-SemiBold.ttf ├── JetBrainsMono-BoldItalic.ttf └── fonts.qrc ├── extern ├── dtoaloc │ ├── dtoaloc.pri │ └── README.md ├── engineapi │ ├── Config.cmake.in │ └── README.md └── yaml-cpp │ ├── null.cpp │ ├── depthguard.cpp │ ├── node.cpp │ ├── directives.cpp │ ├── contrib │ ├── graphbuilder.cpp │ ├── yaml-cpp.natvis.md │ └── anchordict.h │ ├── anchor.h │ ├── emitterstyle.h │ ├── node │ ├── type.h │ ├── detail │ │ ├── iterator_fwd.h │ │ └── memory.h │ ├── ptr.h │ ├── emit.h │ └── iterator.h │ ├── emitterdef.h │ ├── emit.cpp │ ├── noexcept.h │ ├── memory.cpp │ ├── scantag.h │ ├── directives.h │ ├── tag.h │ ├── yaml.h │ ├── null.h │ ├── mark.h │ ├── exceptions.cpp │ ├── LICENSE │ ├── indentation.h │ ├── regex_yaml.cpp │ ├── collectionstack.h │ └── tag.cpp ├── ci ├── skipfile.txt ├── .gitlab-ci-0-quality-gate.yml ├── codechecker.sh ├── license-update.sh ├── .gitlab-ci-5-analyze.yml └── .gitlab-ci-4-deploy.yml ├── gams-studio.pro ├── platform ├── linux │ └── gamsstudio.desktop └── macos │ ├── studio.entitlements.plist │ ├── webengine.entitlements.plist │ └── macospathfinder.h ├── tests ├── testreference │ ├── testreference.pro │ └── testreference.h ├── testsearchcommon │ └── testsearchcommon.pro ├── testmiro │ └── testmiro.pro ├── testcommonpaths │ └── testcommonpaths.pro ├── testeditors │ ├── testeditors.pro │ ├── .gitignore │ └── testcodeedit.h ├── testservicelocators │ ├── testservicelocators.pro │ └── testsysloglocator.h ├── testconnect │ └── testconnect.pro ├── testblockcode │ ├── testblockcode.pro │ └── testblockcode.h ├── testdoclocation │ └── testdoclocation.pro ├── testoptionapi │ └── testoptionapi.pro ├── testsolverconfiginfo │ └── testsolverconfiginfo.pro ├── testgamslicenseinfo │ └── testgamslicenseinfo.pro ├── testgamsuserconfig │ └── testgamsuserconfig.pro ├── testdialogfilefilter │ ├── testdialogfilefilter.pro │ └── testdialogfilefilter.h ├── tests.pri ├── testsettings │ └── testsettings.pro ├── testgamsoption │ └── testgamsoption.pro ├── testgamsaboutprocess │ └── testgamsaboutprocess.pro ├── testgamsgetkeyprocess │ └── testgamsgetkeyprocess.pro ├── testmemorymapper │ └── testmemorymapper.pro ├── testoptionfile │ └── testoptionfile.pro ├── testfilemapper │ └── testfilemapper.pro ├── testabstractprocess │ └── testabstractprocess.pro ├── testgamsprobeprocess │ └── testgamsprobeprocess.pro ├── testversioninfoloader │ └── testversioninfoloader.pro ├── tests.pro └── testcompleter │ ├── syntaxsimulator.cpp │ ├── syntaxsimulator.h │ └── testcompleter.pro ├── .gitlab ├── issue_templates │ └── issue.md └── merge_request_templates │ └── merge_request.md ├── .pre-commit-config.yaml ├── CONTRIBUTING.md ├── .gitignore ├── src ├── process.h ├── common.cpp ├── syntax.h ├── option │ └── gamsconfigeditor.ui ├── editors │ ├── defaultsystemlogger.cpp │ ├── defaultsystemlogger.h │ ├── navigationhistorylocator.cpp │ ├── sysloglocator.h │ ├── navigationhistorylocator.h │ ├── abstractsystemlogger.h │ └── sysloglocator.cpp ├── syntax │ └── syntaxcommon.h ├── networkmanager.cpp ├── file.h ├── search │ ├── searchlocator.cpp │ └── searchlocator.h ├── connect │ ├── connecterror.cpp │ └── connecterror.h ├── reference │ └── filereferencewidget.ui ├── process │ ├── gamslibprocess.h │ ├── gamsprocess.h │ ├── connectprocess.h │ └── gamslibprocess.cpp ├── engine │ └── efieditor.ui ├── file │ └── fileicon.h ├── lxiviewer │ └── lxiviewer.ui ├── numerics │ └── doubleFormat.h ├── tabdialog.ui └── welcome │ └── overview.h ├── version └── .gitlab-ci.yml /icons/studio.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GAMS-dev/studio/HEAD/icons/studio.ico -------------------------------------------------------------------------------- /icons/studio.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GAMS-dev/studio/HEAD/icons/studio.icns -------------------------------------------------------------------------------- /icons/database.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GAMS-dev/studio/HEAD/icons/database.icns -------------------------------------------------------------------------------- /fonts/Cousine-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GAMS-dev/studio/HEAD/fonts/Cousine-Bold.ttf -------------------------------------------------------------------------------- /fonts/FiraCode-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GAMS-dev/studio/HEAD/fonts/FiraCode-Bold.ttf -------------------------------------------------------------------------------- /extern/dtoaloc/dtoaloc.pri: -------------------------------------------------------------------------------- 1 | 2 | HEADERS += $${PWD}/dtoaLoc.h 3 | 4 | SOURCES += $${PWD}/dtoaLoc.c 5 | -------------------------------------------------------------------------------- /fonts/Cousine-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GAMS-dev/studio/HEAD/fonts/Cousine-Italic.ttf -------------------------------------------------------------------------------- /fonts/Cousine-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GAMS-dev/studio/HEAD/fonts/Cousine-Regular.ttf -------------------------------------------------------------------------------- /fonts/FiraCode-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GAMS-dev/studio/HEAD/fonts/FiraCode-Regular.ttf -------------------------------------------------------------------------------- /icons/gamsicon_16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GAMS-dev/studio/HEAD/icons/gamsicon_16x16.png -------------------------------------------------------------------------------- /icons/gamsworld_16x16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GAMS-dev/studio/HEAD/icons/gamsworld_16x16.gif -------------------------------------------------------------------------------- /fonts/Cousine-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GAMS-dev/studio/HEAD/fonts/Cousine-BoldItalic.ttf -------------------------------------------------------------------------------- /fonts/JetBrainsMono-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GAMS-dev/studio/HEAD/fonts/JetBrainsMono-Bold.ttf -------------------------------------------------------------------------------- /fonts/SourceCodePro-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GAMS-dev/studio/HEAD/fonts/SourceCodePro-Bold.ttf -------------------------------------------------------------------------------- /ci/skipfile.txt: -------------------------------------------------------------------------------- 1 | +*/platform/* 2 | +*/src/* 3 | +*/tests/* 4 | -*/extern/* 5 | -*/gamsdist/* 6 | -/opt/Qt/* 7 | -------------------------------------------------------------------------------- /fonts/JetBrainsMono-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GAMS-dev/studio/HEAD/fonts/JetBrainsMono-Italic.ttf -------------------------------------------------------------------------------- /fonts/JetBrainsMono-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GAMS-dev/studio/HEAD/fonts/JetBrainsMono-Regular.ttf -------------------------------------------------------------------------------- /fonts/SourceCodePro-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GAMS-dev/studio/HEAD/fonts/SourceCodePro-Regular.ttf -------------------------------------------------------------------------------- /fonts/JetBrainsMono-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GAMS-dev/studio/HEAD/fonts/JetBrainsMono-SemiBold.ttf -------------------------------------------------------------------------------- /fonts/JetBrainsMono-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GAMS-dev/studio/HEAD/fonts/JetBrainsMono-BoldItalic.ttf -------------------------------------------------------------------------------- /gams-studio.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = subdirs 2 | 3 | SUBDIRS += src \ 4 | tests 5 | 6 | src.file = src/studio.pro 7 | tests.depends = src 8 | -------------------------------------------------------------------------------- /extern/engineapi/Config.cmake.in: -------------------------------------------------------------------------------- 1 | @PACKAGE_INIT@ 2 | 3 | include(${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake) 4 | 5 | check_required_components("@PROJECT_NAME@") 6 | -------------------------------------------------------------------------------- /platform/linux/gamsstudio.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Name=GAMS Studio 4 | TryExec=studio 5 | Exec=studio %F 6 | Icon=gamslogo 7 | Terminal=false 8 | Categories=Development;IDE; 9 | -------------------------------------------------------------------------------- /tests/testreference/testreference.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | 3 | include(../tests.pri) 4 | 5 | INCLUDEPATH += \ 6 | $$SRCPATH 7 | 8 | HEADERS += \ 9 | testreference.h 10 | 11 | SOURCES += \ 12 | testreference.cpp 13 | -------------------------------------------------------------------------------- /tests/testsearchcommon/testsearchcommon.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | 3 | include(../tests.pri) 4 | 5 | INCLUDEPATH += $$SRCPATH/search 6 | 7 | SOURCES += tst_testsearchcommon.cpp \ 8 | $$SRCPATH/search/searchcommon.cpp 9 | -------------------------------------------------------------------------------- /icons/bookmark.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/bookmark.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /tests/testmiro/testmiro.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | 3 | include(../tests.pri) 4 | 5 | INCLUDEPATH += $$SRCPATH 6 | 7 | HEADERS += \ 8 | testmirocommon.h 9 | 10 | SOURCES += \ 11 | testmirocommon.cpp \ 12 | $$SRCPATH/miro/mirocommon.cpp 13 | -------------------------------------------------------------------------------- /icons/solid/play.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /extern/yaml-cpp/null.cpp: -------------------------------------------------------------------------------- 1 | #include "yaml-cpp/null.h" 2 | 3 | namespace YAML { 4 | _Null Null; 5 | 6 | bool IsNullString(const std::string& str) { 7 | return str.empty() || str == "~" || str == "null" || str == "Null" || 8 | str == "NULL"; 9 | } 10 | } // namespace YAML 11 | -------------------------------------------------------------------------------- /icons/solid/stop.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /ci/.gitlab-ci-0-quality-gate.yml: -------------------------------------------------------------------------------- 1 | quality-gate: 2 | stage: quality 3 | tags: [linux] 4 | image: 5 | name: $GAMS_CONTAINER_REGISTRY/qt-machines/leg/analyzer-${QT_IMAGE_VERSION}:latest 6 | entrypoint: [""] # prevent startup.sh 7 | script: 8 | - SKIP=end-of-file-fixer pre-commit run -a 9 | -------------------------------------------------------------------------------- /tests/testcommonpaths/testcommonpaths.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | 3 | include(../tests.pri) 4 | 5 | INCLUDEPATH += $$SRCPATH 6 | 7 | HEADERS += \ 8 | testcommonpaths.h 9 | 10 | SOURCES += \ 11 | testcommonpaths.cpp \ 12 | $$SRCPATH/commonpaths.cpp \ 13 | $$SRCPATH/exception.cpp 14 | -------------------------------------------------------------------------------- /tests/testeditors/testeditors.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | 3 | include(../tests.pri) 4 | 5 | INCLUDEPATH += $$SRCPATH 6 | 7 | HEADERS += \ 8 | testcodeedit.h \ 9 | $$SRCPATH/editors/editorhelper.h 10 | 11 | SOURCES += \ 12 | testcodeedit.cpp \ 13 | $$SRCPATH/editors/editorhelper.cpp 14 | -------------------------------------------------------------------------------- /extern/yaml-cpp/depthguard.cpp: -------------------------------------------------------------------------------- 1 | #include "yaml-cpp/depthguard.h" 2 | 3 | namespace YAML { 4 | 5 | DeepRecursion::DeepRecursion(int depth, const Mark& mark_, 6 | const std::string& msg_) 7 | : ParserException(mark_, msg_), m_depth(depth) {} 8 | 9 | } // namespace YAML 10 | -------------------------------------------------------------------------------- /icons/engine-g.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /extern/yaml-cpp/node.cpp: -------------------------------------------------------------------------------- 1 | #include "yaml-cpp/node/node.h" 2 | #include "nodebuilder.h" 3 | #include "nodeevents.h" 4 | 5 | namespace YAML { 6 | Node Clone(const Node& node) { 7 | NodeEvents events(node); 8 | NodeBuilder builder; 9 | events.Emit(builder); 10 | return builder.Root(); 11 | } 12 | } // namespace YAML 13 | -------------------------------------------------------------------------------- /icons/folder.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/ban.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /tests/testservicelocators/testservicelocators.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | 3 | include(../tests.pri) 4 | 5 | INCLUDEPATH += $$SRCPATH 6 | 7 | HEADERS += \ 8 | testsysloglocator.h 9 | 10 | SOURCES += \ 11 | testsysloglocator.cpp \ 12 | $$SRCPATH/editors/sysloglocator.cpp \ 13 | $$SRCPATH/editors/defaultsystemlogger.cpp 14 | -------------------------------------------------------------------------------- /icons/solid/sort-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/sort-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/file.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /.gitlab/issue_templates/issue.md: -------------------------------------------------------------------------------- 1 | **Description** 2 | 3 | t.b.d. 4 | 5 | **Steps** 6 | - [ ] t.b.d. 7 | - [ ] Update CHANGELOG 8 | - [ ] Update GAMS documentation 9 | - [ ] Code documentation 10 | - [ ] Quality enhancements 11 | - [ ] Clazy 12 | - [ ] clang-tidy 13 | - [ ] Memory checks, e.g. valgrind 14 | - [ ] Profiling 15 | - [ ] Unit Tests 16 | -------------------------------------------------------------------------------- /icons/solid/triangle-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/triangle-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/triangle-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /tests/testconnect/testconnect.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | 3 | include(../tests.pri) 4 | 5 | INCLUDEPATH += \ 6 | $$SRCPATH \ 7 | $$SRCPATH/connect 8 | 9 | HEADERS += \ 10 | testconnect.h \ 11 | $$SRCPATH/connect/connectdataitem.h 12 | 13 | SOURCES += \ 14 | testconnect.cpp \ 15 | $$SRCPATH/connect/connectdataitem.cpp 16 | -------------------------------------------------------------------------------- /icons/solid/user.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /tests/testblockcode/testblockcode.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | 3 | include(../tests.pri) 4 | 5 | INCLUDEPATH += $$SRCPATH \ 6 | $$SRCPATH/syntax 7 | 8 | HEADERS += \ 9 | testblockcode.h \ 10 | $$SRCPATH/syntax/blockcode.h \ 11 | $$SRCPATH/syntax/syntaxformats.h 12 | 13 | SOURCES += \ 14 | testblockcode.cpp \ 15 | $$SRCPATH/logger.cpp 16 | -------------------------------------------------------------------------------- /icons/solid/folder-open-bw.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/trex-on.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /icons/solid/arrow-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/arrow-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/scroll.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/copy.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/menu.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /platform/macos/studio.entitlements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.cs.disable-library-validation 6 | 7 | com.apple.security.app-sandbox 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- 1 | repos: 2 | - repo: https://github.com/pre-commit/pre-commit-hooks 3 | rev: v5.0.0 4 | hooks: 5 | - id: end-of-file-fixer 6 | - id: check-added-large-files 7 | args: ['--maxkb=1000'] 8 | - id: fix-byte-order-marker 9 | - repo: https://github.com/Yelp/detect-secrets 10 | rev: v1.5.0 11 | hooks: 12 | - id: detect-secrets 13 | args: ['--baseline', '.secrets.baseline'] 14 | -------------------------------------------------------------------------------- /icons/solid/sort.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/pen-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/search.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/terminal.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/square-gray.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /icons/square-yellow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /icons/square-darkyellow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /extern/yaml-cpp/directives.cpp: -------------------------------------------------------------------------------- 1 | #include "directives.h" 2 | 3 | namespace YAML { 4 | Directives::Directives() : version{true, 1, 2}, tags{} {} 5 | 6 | const std::string Directives::TranslateTagHandle( 7 | const std::string& handle) const { 8 | auto it = tags.find(handle); 9 | if (it == tags.end()) { 10 | if (handle == "!!") 11 | return "tag:yaml.org,2002:"; 12 | return handle; 13 | } 14 | 15 | return it->second; 16 | } 17 | } // namespace YAML 18 | -------------------------------------------------------------------------------- /icons/solid/comment-alt-lines.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/undo.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/redo.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/kill.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/square-red.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /icons/solid/door-open.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/square-green.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /icons/engine.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/save.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/minus.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/miro.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/paste.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /tests/testdoclocation/testdoclocation.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | 3 | include(../tests.pri) 4 | 5 | INCLUDEPATH += \ 6 | $$SRCPATH \ 7 | $$SRCPATH/help 8 | 9 | HEADERS += \ 10 | testdoclocation.h \ 11 | $$SRCPATH/help/helpdata.h 12 | 13 | SOURCES += \ 14 | testdoclocation.cpp \ 15 | $$SRCPATH/editors/defaultsystemlogger.cpp \ 16 | $$SRCPATH/editors/sysloglocator.cpp \ 17 | $$SRCPATH/support/solverconfiginfo.cpp \ 18 | $$SRCPATH/commonpaths.cpp \ 19 | $$SRCPATH/exception.cpp 20 | -------------------------------------------------------------------------------- /extern/yaml-cpp/contrib/graphbuilder.cpp: -------------------------------------------------------------------------------- 1 | #include "graphbuilderadapter.h" 2 | 3 | #include "yaml-cpp/parser.h" // IWYU pragma: keep 4 | 5 | namespace YAML { 6 | class GraphBuilderInterface; 7 | 8 | void* BuildGraphOfNextDocument(Parser& parser, 9 | GraphBuilderInterface& graphBuilder) { 10 | GraphBuilderAdapter eventHandler(graphBuilder); 11 | if (parser.HandleNextDocument(eventHandler)) { 12 | return eventHandler.RootNode(); 13 | } 14 | return nullptr; 15 | } 16 | } // namespace YAML 17 | -------------------------------------------------------------------------------- /extern/yaml-cpp/contrib/yaml-cpp.natvis.md: -------------------------------------------------------------------------------- 1 | # MSVC debugger visualizer for YAML::Node 2 | 3 | ## How to use 4 | Add yaml-cpp.natvis to your Visual C++ project like any other source file. It will be included in the debug information, and improve debugger display on YAML::Node and contained types. 5 | 6 | ## Compatibility and Troubleshooting 7 | 8 | This has been tested for MSVC 2017. It is expected to be compatible with VS 2015 and VS 2019. If you have any problems, you can open an issue here: https://github.com/peterchen-cp/yaml-cpp-natvis 9 | -------------------------------------------------------------------------------- /icons/solid/envelope.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/hammer.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/out.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /icons/filter.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/remove.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/search-minus.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/move-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/gamslogo.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/move-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/play-engine.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/play-neos.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/external-link.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /extern/yaml-cpp/anchor.h: -------------------------------------------------------------------------------- 1 | #ifndef ANCHOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define ANCHOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include 11 | 12 | namespace YAML { 13 | using anchor_t = std::size_t; 14 | const anchor_t NullAnchor = 0; 15 | } 16 | 17 | #endif // ANCHOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66 18 | -------------------------------------------------------------------------------- /extern/yaml-cpp/emitterstyle.h: -------------------------------------------------------------------------------- 1 | #ifndef EMITTERSTYLE_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define EMITTERSTYLE_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | namespace YAML { 11 | struct EmitterStyle { 12 | enum value { Default, Block, Flow }; 13 | }; 14 | } 15 | 16 | #endif // EMITTERSTYLE_H_62B23520_7C8E_11DE_8A39_0800200C9A66 17 | -------------------------------------------------------------------------------- /icons/trex-off.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /extern/yaml-cpp/node/type.h: -------------------------------------------------------------------------------- 1 | #ifndef VALUE_TYPE_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define VALUE_TYPE_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | namespace YAML { 11 | struct NodeType { 12 | enum value { Undefined, Null, Scalar, Sequence, Map }; 13 | }; 14 | } 15 | 16 | #endif // VALUE_TYPE_H_62B23520_7C8E_11DE_8A39_0800200C9A66 17 | -------------------------------------------------------------------------------- /icons/solid/angle-double-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/angle-double-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/lock.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /icons/solid/cut.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/sort-x-dn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /icons/solid/sort-x-up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.gitlab/merge_request_templates/merge_request.md: -------------------------------------------------------------------------------- 1 | Closes #TICKETNUMBER 2 | 3 | **Please test the MR on** 4 | 5 | - [ ] Linux (@jparnjai @afust) 6 | - [ ] macOS (@afust @jmonki) 7 | - [ ] Windows (@cwestphal @jmonki) 8 | - [ ] T.b.d. add the reporter and his platform to test the issue 9 | 10 | **Review** 11 | - [ ] Code 12 | - [ ] CHANGELOG 13 | - [ ] GAMS documentation 14 | - [ ] Code documentation 15 | - [ ] Have the following quality enhancements been covered, i.e. check the issue. 16 | - [ ] Clazy 17 | - [ ] clang-tidy 18 | - [ ] Memory checks, e.g. valgrind 19 | - [ ] Profiling 20 | - [ ] Unit Tests 21 | -------------------------------------------------------------------------------- /icons/solid/book.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/question-square.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/code.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /extern/yaml-cpp/emitterdef.h: -------------------------------------------------------------------------------- 1 | #ifndef EMITTERDEF_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define EMITTERDEF_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | namespace YAML { 11 | struct EmitterNodeType { 12 | enum value { NoType, Property, Scalar, FlowSeq, BlockSeq, FlowMap, BlockMap }; 13 | }; 14 | } 15 | 16 | #endif // EMITTERDEF_H_62B23520_7C8E_11DE_8A39_0800200C9A66 17 | -------------------------------------------------------------------------------- /icons/gams-w24.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /ci/codechecker.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | qmake gams-studio.pro CONFIG+=release 4 | 5 | # Log your project. 6 | CodeChecker log -b "make -j4" -o compilation_database.json 7 | 8 | CodeChecker analyze \ 9 | --analyzers clang-tidy \ 10 | --jobs 4 \ 11 | -i ci/skipfile.txt \ 12 | -o reports \ 13 | compilation_database.json 14 | 15 | # Create the report file by using the CodeChecker parse command. 16 | CodeChecker parse \ 17 | --trim-path-prefix $(pwd) \ 18 | -e codeclimate \ 19 | reports > gl-code-quality-report.json 20 | 21 | exit 0 22 | -------------------------------------------------------------------------------- /icons/solid/home.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/search-off.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/lock-open.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /icons/solid/sort-u.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /icons/solid/truck.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/play-neos-l.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/play-gdx.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/miro-h.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /tests/testoptionapi/testoptionapi.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | 3 | include(../tests.pri) 4 | 5 | INCLUDEPATH += $$SRCPATH \ 6 | $$SRCPATH/file \ 7 | $$SRCPATH/option 8 | 9 | HEADERS += \ 10 | testoptionapi.h \ 11 | $$SRCPATH/common.h \ 12 | $$SRCPATH/file/filetype.h 13 | 14 | 15 | SOURCES += \ 16 | testoptionapi.cpp \ 17 | $$SRCPATH/commonpaths.cpp \ 18 | $$SRCPATH/editors/defaultsystemlogger.cpp \ 19 | $$SRCPATH/editors/sysloglocator.cpp \ 20 | $$SRCPATH/file/filetype.cpp \ 21 | $$SRCPATH/exception.cpp \ 22 | $$SRCPATH/support/solverconfiginfo.cpp \ 23 | $$SRCPATH/commandlineparser.cpp 24 | -------------------------------------------------------------------------------- /tests/testsolverconfiginfo/testsolverconfiginfo.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | 3 | include(../tests.pri) 4 | 5 | INCLUDEPATH += $$SRCPATH \ 6 | $$SRCPATH/editors \ 7 | $$SRCPATH/support 8 | 9 | HEADERS += \ 10 | testsolverconfiginfo.h 11 | 12 | SOURCES += \ 13 | testsolverconfiginfo.cpp \ 14 | $$SRCPATH/editors/defaultsystemlogger.cpp \ 15 | $$SRCPATH/editors/sysloglocator.cpp \ 16 | $$SRCPATH/support/solverconfiginfo.cpp \ 17 | $$SRCPATH/commonpaths.cpp \ 18 | $$SRCPATH/exception.cpp 19 | -------------------------------------------------------------------------------- /icons/folder-open.svg: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /icons/solid/inst-single.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /icons/solid/sort-n.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /icons/tlock.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /icons/filter-off.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/search-plus.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/split-v.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /icons/square-gray-yellow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /extern/yaml-cpp/emit.cpp: -------------------------------------------------------------------------------- 1 | #include "yaml-cpp/node/emit.h" 2 | #include "nodeevents.h" 3 | #include "yaml-cpp/emitfromevents.h" 4 | #include "yaml-cpp/emitter.h" 5 | 6 | namespace YAML { 7 | Emitter& operator<<(Emitter& out, const Node& node) { 8 | EmitFromEvents emitFromEvents(out); 9 | NodeEvents events(node); 10 | events.Emit(emitFromEvents); 11 | return out; 12 | } 13 | 14 | std::ostream& operator<<(std::ostream& out, const Node& node) { 15 | Emitter emitter(out); 16 | emitter << node; 17 | return out; 18 | } 19 | 20 | std::string Dump(const Node& node) { 21 | Emitter emitter; 22 | emitter << node; 23 | return emitter.c_str(); 24 | } 25 | } // namespace YAML 26 | -------------------------------------------------------------------------------- /icons/gams-w.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /extern/yaml-cpp/noexcept.h: -------------------------------------------------------------------------------- 1 | #ifndef NOEXCEPT_H_768872DA_476C_11EA_88B8_90B11C0C0FF8 2 | #define NOEXCEPT_H_768872DA_476C_11EA_88B8_90B11C0C0FF8 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | // This is here for compatibility with older versions of Visual Studio 11 | // which don't support noexcept. 12 | #if defined(_MSC_VER) && _MSC_VER < 1900 13 | #define YAML_CPP_NOEXCEPT _NOEXCEPT 14 | #else 15 | #define YAML_CPP_NOEXCEPT noexcept 16 | #endif 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /icons/solid/split-h.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /icons/solid/sort-t.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /icons/square-red-yellow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /icons/tlock-open.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /icons/square-green-yellow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /extern/yaml-cpp/memory.cpp: -------------------------------------------------------------------------------- 1 | #include "yaml-cpp/node/detail/memory.h" 2 | #include "yaml-cpp/node/detail/node.h" // IWYU pragma: keep 3 | #include "yaml-cpp/node/ptr.h" 4 | 5 | namespace YAML { 6 | namespace detail { 7 | 8 | void memory_holder::merge(memory_holder& rhs) { 9 | if (m_pMemory == rhs.m_pMemory) 10 | return; 11 | 12 | m_pMemory->merge(*rhs.m_pMemory); 13 | rhs.m_pMemory = m_pMemory; 14 | } 15 | 16 | node& memory::create_node() { 17 | shared_node pNode(new node); 18 | m_nodes.insert(pNode); 19 | return *pNode; 20 | } 21 | 22 | void memory::merge(const memory& rhs) { 23 | m_nodes.insert(rhs.m_nodes.begin(), rhs.m_nodes.end()); 24 | } 25 | } // namespace detail 26 | } // namespace YAML 27 | -------------------------------------------------------------------------------- /icons/so-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /platform/macos/webengine.entitlements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.cs.allow-jit 6 | 7 | com.apple.security.cs.allow-unsigned-executable-memory 8 | 9 | com.apple.security.cs.disable-executable-page-protection 10 | 11 | com.apple.security.cs.allow-dyld-environment-variables 12 | 13 | com.apple.security.cs.disable-library-validation 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /extern/yaml-cpp/scantag.h: -------------------------------------------------------------------------------- 1 | #ifndef SCANTAG_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define SCANTAG_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include 11 | #include "stream.h" 12 | 13 | namespace YAML { 14 | const std::string ScanVerbatimTag(Stream& INPUT); 15 | const std::string ScanTagHandle(Stream& INPUT, bool& canBeHandle); 16 | const std::string ScanTagSuffix(Stream& INPUT); 17 | } 18 | 19 | #endif // SCANTAG_H_62B23520_7C8E_11DE_8A39_0800200C9A66 20 | -------------------------------------------------------------------------------- /icons/solid/out-in.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /icons/solid/step.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /icons/solid/gdxdiff.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /tests/testgamslicenseinfo/testgamslicenseinfo.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | 3 | include(../tests.pri) 4 | include(../../extern/yaml-cpp/yaml-cpp.pri) 5 | 6 | INCLUDEPATH += $$SRCPATH \ 7 | $$SRCPATH/editors \ 8 | $$SRCPATH/support 9 | 10 | HEADERS += \ 11 | testgamslicenseinfo.h 12 | 13 | SOURCES += \ 14 | testgamslicenseinfo.cpp \ 15 | $$SRCPATH/editors/defaultsystemlogger.cpp \ 16 | $$SRCPATH/editors/sysloglocator.cpp \ 17 | $$SRCPATH/support/solverconfiginfo.cpp \ 18 | $$SRCPATH/support/gamslicenseinfo.cpp \ 19 | $$SRCPATH/commonpaths.cpp \ 20 | $$SRCPATH/exception.cpp 21 | -------------------------------------------------------------------------------- /tests/testgamsuserconfig/testgamsuserconfig.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | 3 | include(../tests.pri) 4 | 5 | INCLUDEPATH += $$SRCPATH 6 | 7 | HEADERS += \ 8 | testgamsuserconfig.h \ 9 | $$SRCPATH/option/gamsuserconfig.h \ 10 | $$SRCPATH/exception.h \ 11 | $$SRCPATH/file/filetype.h \ 12 | $$SRCPATH/commonpaths.h 13 | 14 | SOURCES += \ 15 | testgamsuserconfig.cpp \ 16 | $$SRCPATH/option/gamsuserconfig.cpp \ 17 | $$SRCPATH/editors/sysloglocator.cpp \ 18 | $$SRCPATH/editors/defaultsystemlogger.cpp \ 19 | $$SRCPATH/file/filetype.cpp \ 20 | $$SRCPATH/exception.cpp \ 21 | $$SRCPATH/commonpaths.cpp \ 22 | $$SRCPATH/support/SolverConfigInfo.cpp \ 23 | -------------------------------------------------------------------------------- /icons/solid/clipboard-list.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /tests/testdialogfilefilter/testdialogfilefilter.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | 3 | include(../tests.pri) 4 | 5 | INCLUDEPATH += \ 6 | $$SRCPATH \ 7 | $$SRCPATH/../extern \ 8 | $$SRCPATH/editors 9 | 10 | HEADERS += \ 11 | testdialogfilefilter.h \ 12 | $$SRCPATH/common.h \ 13 | $$SRCPATH/commonpaths.h \ 14 | $$SRCPATH/viewhelper.h \ 15 | $$SRCPATH/file/filetype.h 16 | 17 | SOURCES += \ 18 | testdialogfilefilter.cpp \ 19 | $$SRCPATH/commonpaths.cpp \ 20 | $$SRCPATH/common.cpp \ 21 | $$SRCPATH/exception.cpp \ 22 | $$SRCPATH/editors/defaultsystemlogger.cpp \ 23 | $$SRCPATH/editors/sysloglocator.cpp \ 24 | $$SRCPATH/file/filetype.cpp \ 25 | $$SRCPATH/support/solverconfiginfo.cpp 26 | -------------------------------------------------------------------------------- /extern/dtoaloc/README.md: -------------------------------------------------------------------------------- 1 | # dtoaLoc 2 | 3 | GAMS Studio uses the files `dtoaLoc.h/c` originally developed by David M. Gay. 4 | 5 | # License 6 | 7 | Permission to use, copy, modify, and distribute this software for any 8 | purpose without fee is hereby granted, provided that this entire notice 9 | is included in all copies of any software which is or includes a copy 10 | or modification of this software and in all copies of the supporting 11 | documentation for such software. 12 | 13 | THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED 14 | WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR LUCENT MAKES ANY 15 | REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY 16 | OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. 17 | -------------------------------------------------------------------------------- /icons/exclam-circle-r.svg: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /icons/solid/books.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/plus.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/update.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /tests/tests.pri: -------------------------------------------------------------------------------- 1 | QT += core testlib widgets gui svg concurrent network printsupport 2 | 3 | CONFIG += c++17 warn_on depend_includepath testcase 4 | CONFIG -= app_bundle 5 | 6 | DESTDIR = ../bin 7 | 8 | OBJECTS_DIR=../../objects 9 | MOC_DIR=../../objects 10 | 11 | # Setup and include the GAMS distribution 12 | include(../gamsdependency.pri) 13 | 14 | macx { 15 | HEADERS += ../../platform/macos/macospathfinder.h \ 16 | ../../platform/macos/macoscocoabridge.h 17 | 18 | SOURCES += ../../platform/macos/macospathfinder.cpp 19 | 20 | OBJECTIVE_SOURCES += ../../platform/macos/macoscocoabridge.mm 21 | 22 | LIBS += -framework AppKit 23 | } 24 | unix { 25 | LIBS += -ldl 26 | } 27 | win32 { 28 | LIBS += -luser32 29 | } 30 | 31 | TESTSROOT = $$_PRO_FILE_PWD_/.. 32 | SRCPATH = $$TESTSROOT/../src 33 | -------------------------------------------------------------------------------- /extern/yaml-cpp/directives.h: -------------------------------------------------------------------------------- 1 | #ifndef DIRECTIVES_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define DIRECTIVES_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include 11 | #include 12 | 13 | namespace YAML { 14 | struct Version { 15 | bool isDefault; 16 | int major, minor; 17 | }; 18 | 19 | struct Directives { 20 | Directives(); 21 | 22 | const std::string TranslateTagHandle(const std::string& handle) const; 23 | 24 | Version version; 25 | std::map tags; 26 | }; 27 | } 28 | 29 | #endif // DIRECTIVES_H_62B23520_7C8E_11DE_8A39_0800200C9A66 30 | -------------------------------------------------------------------------------- /icons/gams-prj.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /extern/yaml-cpp/tag.h: -------------------------------------------------------------------------------- 1 | #ifndef TAG_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define TAG_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include 11 | 12 | namespace YAML { 13 | struct Directives; 14 | struct Token; 15 | 16 | struct Tag { 17 | enum TYPE { 18 | VERBATIM, 19 | PRIMARY_HANDLE, 20 | SECONDARY_HANDLE, 21 | NAMED_HANDLE, 22 | NON_SPECIFIC 23 | }; 24 | 25 | Tag(const Token& token); 26 | const std::string Translate(const Directives& directives); 27 | 28 | TYPE type; 29 | std::string handle, value; 30 | }; 31 | } 32 | 33 | #endif // TAG_H_62B23520_7C8E_11DE_8A39_0800200C9A66 34 | -------------------------------------------------------------------------------- /tests/testsettings/testsettings.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | 3 | include(../tests.pri) 4 | 5 | INCLUDEPATH += $$SRCPATH 6 | 7 | HEADERS += \ 8 | testsettings.h \ 9 | $$SRCPATH/file/dynamicfile.h \ 10 | $$SRCPATH/theme.h \ 11 | $$SRCPATH/svgengine.h \ 12 | $$SRCPATH/colors/palettemanager.h \ 13 | $$SRCPATH/editors/sysloglocator.h \ 14 | $$SRCPATH/editors/abstractsystemlogger.h 15 | $$SRCPATH/editors/defaultsystemlogger.h 16 | 17 | SOURCES += \ 18 | testsettings.cpp \ 19 | $$SRCPATH/settings.cpp \ 20 | $$SRCPATH/commonpaths.cpp \ 21 | $$SRCPATH/logger.cpp \ 22 | $$SRCPATH/exception.cpp \ 23 | $$SRCPATH/file/dynamicfile.cpp \ 24 | $$SRCPATH/theme.cpp \ 25 | $$SRCPATH/svgengine.cpp \ 26 | $$SRCPATH/colors/palettemanager.cpp \ 27 | $$SRCPATH/editors/sysloglocator.cpp \ 28 | $$SRCPATH/editors/defaultsystemlogger.cpp 29 | -------------------------------------------------------------------------------- /icons/solid/pause.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /fonts/fonts.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | JetBrainsMono-Regular.ttf 4 | JetBrainsMono-Bold.ttf 5 | JetBrainsMono-BoldItalic.ttf 6 | JetBrainsMono-Italic.ttf 7 | FiraCode-Regular.ttf 8 | FiraCode-Bold.ttf 9 | SourceCodePro-Regular.ttf 10 | SourceCodePro-Bold.ttf 11 | Cousine-Regular.ttf 12 | Cousine-Bold.ttf 13 | Cousine-BoldItalic.ttf 14 | Cousine-Italic.ttf 15 | 16 | 17 | -------------------------------------------------------------------------------- /icons/style.css: -------------------------------------------------------------------------------- 1 | QTabView { 2 | background: #c8cfcf; /*#c8cfcf;*/ 3 | } 4 | QTabBar { 5 | margin: 0%; 6 | padding: 2% 0% 2% 5%; 7 | border: 0; 8 | background: #c8cfcf; 9 | } 10 | QTabBar::tab { 11 | margin: 0%; 12 | padding: 2% 0% 2% 5%; 13 | border: 0; 14 | border-bottom: 5px; 15 | background: #dfe8e8; 16 | } 17 | QTabBar::tab:selected { 18 | background: #f8ffff; 19 | border: 1px; 20 | } 21 | QTabBar::tab:!selected { 22 | margin-top: 1px; 23 | } 24 | QTabBar::close-button { 25 | image: url(":/img/times"); 26 | padding: 3%; 27 | } 28 | /* 29 | QTabBar::tab:selected { margin-left: -2%; margin-right: -2%; } 30 | QTabBar::tab:first:selected { margin-left: 0; } 31 | QTabBar::tab:last:selected { margin-right: 0; } 32 | QTabBar::tab:only-one { margin-left: 0; margin-right: 0; } */ 33 | QDockWidget::title { 34 | background: #c8cfcf; 35 | border: 0; 36 | padding: 3%; 37 | } 38 | -------------------------------------------------------------------------------- /icons/solid/cog.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /extern/yaml-cpp/yaml.h: -------------------------------------------------------------------------------- 1 | #ifndef YAML_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define YAML_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include "yaml-cpp/parser.h" 11 | #include "yaml-cpp/emitter.h" 12 | #include "yaml-cpp/emitterstyle.h" 13 | #include "yaml-cpp/stlemitter.h" 14 | #include "yaml-cpp/exceptions.h" 15 | 16 | #include "yaml-cpp/node/node.h" 17 | #include "yaml-cpp/node/impl.h" 18 | #include "yaml-cpp/node/convert.h" 19 | #include "yaml-cpp/node/iterator.h" 20 | #include "yaml-cpp/node/detail/impl.h" 21 | #include "yaml-cpp/node/parse.h" 22 | #include "yaml-cpp/node/emit.h" 23 | 24 | #endif // YAML_H_62B23520_7C8E_11DE_8A39_0800200C9A66 25 | -------------------------------------------------------------------------------- /extern/yaml-cpp/null.h: -------------------------------------------------------------------------------- 1 | #ifndef NULL_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define NULL_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include "yaml-cpp/dll.h" 11 | #include 12 | 13 | namespace YAML { 14 | class Node; 15 | 16 | struct YAML_CPP_API _Null {}; 17 | inline bool operator==(const _Null&, const _Null&) { return true; } 18 | inline bool operator!=(const _Null&, const _Null&) { return false; } 19 | 20 | YAML_CPP_API bool IsNull(const Node& node); // old API only 21 | YAML_CPP_API bool IsNullString(const std::string& str); 22 | 23 | extern YAML_CPP_API _Null Null; 24 | } 25 | 26 | #endif // NULL_H_62B23520_7C8E_11DE_8A39_0800200C9A66 27 | -------------------------------------------------------------------------------- /icons/gams-prj1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /icons/tremove.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /tests/testgamsoption/testgamsoption.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | 3 | include(../tests.pri) 4 | 5 | INCLUDEPATH += \ 6 | $$SRCPATH \ 7 | $$SRCPATH/option 8 | 9 | HEADERS += \ 10 | testgamsoption.h \ 11 | $$SRCPATH/common.h \ 12 | $$SRCPATH/theme.h \ 13 | $$SRCPATH/SvgEngine.h \ 14 | $$SRCPATH/encoding.h \ 15 | $$SRCPATH/option/optiontokenizer.h \ 16 | $$SRCPATH/option/option.h 17 | 18 | SOURCES += \ 19 | testgamsoption.cpp \ 20 | $$SRCPATH/theme.cpp \ 21 | $$SRCPATH/SvgEngine.cpp \ 22 | $$SRCPATH/encoding.cpp \ 23 | $$SRCPATH/option/optiontokenizer.cpp \ 24 | $$SRCPATH/option/option.cpp \ 25 | $$SRCPATH/common.cpp \ 26 | $$SRCPATH/commonpaths.cpp \ 27 | $$SRCPATH/editors/sysloglocator.cpp \ 28 | $$SRCPATH/editors/defaultsystemlogger.cpp \ 29 | $$SRCPATH/support/solverconfiginfo.cpp \ 30 | $$SRCPATH/exception.cpp 31 | -------------------------------------------------------------------------------- /extern/yaml-cpp/mark.h: -------------------------------------------------------------------------------- 1 | #ifndef MARK_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define MARK_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include "yaml-cpp/dll.h" 11 | 12 | namespace YAML { 13 | struct YAML_CPP_API Mark { 14 | Mark() : pos(0), line(0), column(0) {} 15 | 16 | static const Mark null_mark() { return Mark(-1, -1, -1); } 17 | 18 | bool is_null() const { return pos == -1 && line == -1 && column == -1; } 19 | 20 | int pos; 21 | int line, column; 22 | 23 | private: 24 | Mark(int pos_, int line_, int column_) 25 | : pos(pos_), line(line_), column(column_) {} 26 | }; 27 | } 28 | 29 | #endif // MARK_H_62B23520_7C8E_11DE_8A39_0800200C9A66 30 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Quality Gates 2 | 3 | ## Virtual Python Environment 4 | 5 | Setup a virtual Python environment. Please check on your own, which one to use and how to setup the environment. Below `venv`is used on a Debian 12 machine. 6 | 7 | ``` 8 | sudo apt install python3-venv 9 | ``` 10 | 11 | Create a virtual environment. 12 | 13 | ``` 14 | python3 -m venv .venv 15 | ``` 16 | 17 | Ativate the virtual environment. 18 | 19 | ``` 20 | source .venv/bin/activate 21 | ``` 22 | 23 | ## Install pre-commit 24 | 25 | Please check the information about the pre-commit tool and follow the install steps given on the [project page](https://pre-commit.com/). Also check the `.pre-commit-config.yaml` to see which checks are currently used. 26 | 27 | ## Install detect-secrets 28 | 29 | Please check the information about the detect-secrets tool and follow the install steps given on the [project page](hhttps://github.com/Yelp/detect-secrets). 30 | -------------------------------------------------------------------------------- /extern/yaml-cpp/node/detail/iterator_fwd.h: -------------------------------------------------------------------------------- 1 | #ifndef VALUE_DETAIL_ITERATOR_FWD_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define VALUE_DETAIL_ITERATOR_FWD_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include "yaml-cpp/dll.h" 11 | #include 12 | #include 13 | #include 14 | 15 | namespace YAML { 16 | 17 | namespace detail { 18 | struct iterator_value; 19 | template 20 | class iterator_base; 21 | } 22 | 23 | using iterator = detail::iterator_base; 24 | using const_iterator = detail::iterator_base; 25 | } 26 | 27 | #endif // VALUE_DETAIL_ITERATOR_FWD_H_62B23520_7C8E_11DE_8A39_0800200C9A66 28 | -------------------------------------------------------------------------------- /tests/testgamsaboutprocess/testgamsaboutprocess.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | 3 | include(../tests.pri) 4 | 5 | INCLUDEPATH += $$SRCPATH \ 6 | $$SRCPATH/editors \ 7 | $$SRCPATH/process 8 | 9 | HEADERS += \ 10 | $$SRCPATH/process/gamsaboutprocess.h \ 11 | $$SRCPATH/commonpaths.h \ 12 | $$SRCPATH/common.h \ 13 | $$SRCPATH/exception.h 14 | 15 | SOURCES += \ 16 | tst_testgamsaboutprocess.cpp \ 17 | $$SRCPATH/editors/defaultsystemlogger.cpp \ 18 | $$SRCPATH/editors/sysloglocator.cpp \ 19 | $$SRCPATH/process/gamsaboutprocess.cpp \ 20 | $$SRCPATH/commandlineparser.cpp \ 21 | $$SRCPATH/commonpaths.cpp \ 22 | $$SRCPATH/common.cpp \ 23 | $$SRCPATH/exception.cpp 24 | -------------------------------------------------------------------------------- /tests/testgamsgetkeyprocess/testgamsgetkeyprocess.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | 3 | include(../tests.pri) 4 | 5 | INCLUDEPATH += $$SRCPATH \ 6 | $$SRCPATH/editors \ 7 | $$SRCPATH/process 8 | 9 | HEADERS += \ 10 | $$SRCPATH/process/gamsgetkeyprocess.h \ 11 | $$SRCPATH/commonpaths.h \ 12 | $$SRCPATH/common.h \ 13 | $$SRCPATH/exception.h 14 | 15 | SOURCES += \ 16 | tst_testgamsgetkeyprocess.cpp \ 17 | $$SRCPATH/editors/defaultsystemlogger.cpp \ 18 | $$SRCPATH/editors/sysloglocator.cpp \ 19 | $$SRCPATH/process/gamsgetkeyprocess.cpp \ 20 | $$SRCPATH/commandlineparser.cpp \ 21 | $$SRCPATH/commonpaths.cpp \ 22 | $$SRCPATH/common.cpp \ 23 | $$SRCPATH/exception.cpp 24 | -------------------------------------------------------------------------------- /icons/gams-w-run.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/link.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/file-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /tests/testmemorymapper/testmemorymapper.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | 3 | include(../tests.pri) 4 | 5 | INCLUDEPATH += $$SRCPATH \ 6 | $$SRCPATH/editors 7 | 8 | HEADERS += \ 9 | $$SRCPATH/editors/abstracttextmapper.h \ 10 | $$SRCPATH/editors/chunktextmapper.h \ 11 | $$SRCPATH/editors/logparser.h \ 12 | $$SRCPATH/editors/memorymapper.h \ 13 | $$SRCPATH/file/dynamicfile.h \ 14 | $$SRCPATH/svgengine.h \ 15 | $$SRCPATH/theme.h \ 16 | $$SRCPATH/encoding.h \ 17 | testmemorymapper.h 18 | 19 | SOURCES += \ 20 | $$SRCPATH/editors/abstracttextmapper.cpp \ 21 | $$SRCPATH/editors/chunktextmapper.cpp \ 22 | $$SRCPATH/editors/logparser.cpp \ 23 | $$SRCPATH/editors/memorymapper.cpp \ 24 | $$SRCPATH/file/dynamicfile.cpp \ 25 | $$SRCPATH/exception.cpp \ 26 | $$SRCPATH/logger.cpp \ 27 | $$SRCPATH/svgengine.cpp \ 28 | $$SRCPATH/theme.cpp \ 29 | $$SRCPATH/encoding.cpp \ 30 | testmemorymapper.cpp 31 | -------------------------------------------------------------------------------- /extern/yaml-cpp/node/ptr.h: -------------------------------------------------------------------------------- 1 | #ifndef VALUE_PTR_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define VALUE_PTR_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include "yaml-cpp/dll.h" 11 | #include 12 | 13 | namespace YAML { 14 | namespace detail { 15 | class node; 16 | class node_ref; 17 | class node_data; 18 | class memory; 19 | class memory_holder; 20 | 21 | using shared_node = std::shared_ptr; 22 | using shared_node_ref = std::shared_ptr; 23 | using shared_node_data = std::shared_ptr; 24 | using shared_memory_holder = std::shared_ptr; 25 | using shared_memory = std::shared_ptr; 26 | } 27 | } 28 | 29 | #endif // VALUE_PTR_H_62B23520_7C8E_11DE_8A39_0800200C9A66 30 | -------------------------------------------------------------------------------- /icons/err-ref.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /tests/testoptionfile/testoptionfile.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | 3 | include(../tests.pri) 4 | 5 | INCLUDEPATH += $$SRCPATH \ 6 | $$SRCPATH/option 7 | 8 | HEADERS += \ 9 | testoptionfile.h \ 10 | $$SRCPATH/logger.h \ 11 | $$SRCPATH/theme.h \ 12 | $$SRCPATH/svgengine.h \ 13 | $$SRCPATH/encoding.h \ 14 | $$SRCPATH/option/option.h \ 15 | $$SRCPATH/option/optiontokenizer.h 16 | 17 | SOURCES += \ 18 | testoptionfile.cpp \ 19 | $$SRCPATH/logger.cpp \ 20 | $$SRCPATH/theme.cpp \ 21 | $$SRCPATH/svgengine.cpp \ 22 | $$SRCPATH/encoding.cpp \ 23 | $$SRCPATH/option/option.cpp \ 24 | $$SRCPATH/option/optiontokenizer.cpp \ 25 | $$SRCPATH/editors/sysloglocator.cpp \ 26 | $$SRCPATH/editors/defaultsystemlogger.cpp \ 27 | $$SRCPATH/support/solverconfiginfo.cpp \ 28 | $$SRCPATH/commonpaths.cpp \ 29 | $$SRCPATH/exception.cpp 30 | 31 | OTHER_FILES += \ 32 | optdummy.def \ 33 | genoptdeffile.cpp 34 | -------------------------------------------------------------------------------- /tests/testfilemapper/testfilemapper.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | 3 | include(../tests.pri) 4 | 5 | INCLUDEPATH += $$SRCPATH \ 6 | $$SRCPATH/editors 7 | 8 | HEADERS += \ 9 | $$SRCPATH/editors/fastfilemapper.h \ 10 | $$SRCPATH/editors/abstracttextmapper.h \ 11 | $$SRCPATH/encoding.h \ 12 | $$SRCPATH/theme.h \ 13 | $$SRCPATH/svgengine.h \ 14 | $$SRCPATH/commonpaths.h \ 15 | $$SRCPATH/exception.h \ 16 | $$SRCPATH/commandlineparser.h \ 17 | testfilemapper.h 18 | 19 | SOURCES += \ 20 | $$SRCPATH/editors/fastfilemapper.cpp \ 21 | $$SRCPATH/editors/abstracttextmapper.cpp \ 22 | $$SRCPATH/encoding.cpp \ 23 | $$SRCPATH/theme.cpp \ 24 | $$SRCPATH/svgengine.cpp \ 25 | $$SRCPATH/logger.cpp \ 26 | $$SRCPATH/commonpaths.cpp \ 27 | $$SRCPATH/exception.cpp \ 28 | $$SRCPATH/commandlineparser.cpp \ 29 | testfilemapper.cpp 30 | -------------------------------------------------------------------------------- /icons/solid/new.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # macOS 2 | .DS_STORE 3 | 4 | # Prerequisites 5 | *.d 6 | 7 | # Compiled Object files 8 | *.slo 9 | *.lo 10 | *.o 11 | *.obj 12 | 13 | # Precompiled Headers 14 | *.gch 15 | *.pch 16 | 17 | # Compiled Dynamic libraries 18 | *.so 19 | *.dylib 20 | *.dll 21 | 22 | # Fortran module files 23 | *.mod 24 | *.smod 25 | 26 | # Compiled Static libraries 27 | *.lai 28 | *.la 29 | *.a 30 | *.lib 31 | 32 | # Executables 33 | *.exe 34 | *.out 35 | *.app 36 | 37 | # Qt-es 38 | object_script.*.Release 39 | object_script.*.Debug 40 | *_plugin_import.cpp 41 | /.qmake.cache 42 | /.qmake.stash 43 | *.pro.user 44 | *.pro.user.* 45 | *.qbs.user 46 | *.qbs.user.* 47 | *.moc 48 | moc_*.cpp 49 | moc_*.h 50 | qrc_*.cpp 51 | ui_*.h 52 | Makefile* 53 | *build-* 54 | 55 | # Qt unit tests 56 | target_wrapper.* 57 | 58 | # QtCreator 59 | *.autosave 60 | 61 | # QtCtreator Qml 62 | *.qmlproject.user 63 | *.qmlproject.user.* 64 | 65 | # QtCtreator CMake 66 | CMakeLists.txt.user* 67 | 68 | gamsinclude.pri 69 | *.orig 70 | -------------------------------------------------------------------------------- /src/process.h: -------------------------------------------------------------------------------- 1 | /** 2 | * GAMS Studio 3 | * 4 | * Copyright (c) 2017-2025 GAMS Software GmbH 5 | * Copyright (c) 2017-2025 GAMS Development Corp. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | #include "process/abstractprocess.h" 21 | #include "process/gamslibprocess.h" 22 | #include "process/gamsprocess.h" 23 | -------------------------------------------------------------------------------- /icons/gams-prj2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /icons/gams-prj3.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /icons/gams-prj4.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /icons/gams-prj5.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /icons/gams-prj6.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/common.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * GAMS Studio 3 | * 4 | * Copyright (c) 2017-2025 GAMS Software GmbH 5 | * Copyright (c) 2017-2025 GAMS Development Corp. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | #include "common.h" 21 | 22 | namespace gams { 23 | namespace studio { 24 | 25 | const QString ViewStrings::SystemLog = "System"; 26 | 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/syntax.h: -------------------------------------------------------------------------------- 1 | /** 2 | * GAMS Studio 3 | * 4 | * Copyright (c) 2017-2025 GAMS Software GmbH 5 | * Copyright (c) 2017-2025 GAMS Development Corp. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | #include "syntax/textmark.h" 21 | #include "syntax/syntaxhighlighter.h" 22 | //#include "syntax/syntaxformats.h" 23 | //#include "syntax/syntaxdeclaration.h" 24 | -------------------------------------------------------------------------------- /icons/solid/code-gdx.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /extern/yaml-cpp/exceptions.cpp: -------------------------------------------------------------------------------- 1 | #include "yaml-cpp/exceptions.h" 2 | #include "yaml-cpp/noexcept.h" 3 | 4 | namespace YAML { 5 | 6 | // These destructors are defined out-of-line so the vtable is only emitted once. 7 | Exception::~Exception() YAML_CPP_NOEXCEPT = default; 8 | ParserException::~ParserException() YAML_CPP_NOEXCEPT = default; 9 | RepresentationException::~RepresentationException() YAML_CPP_NOEXCEPT = default; 10 | InvalidScalar::~InvalidScalar() YAML_CPP_NOEXCEPT = default; 11 | KeyNotFound::~KeyNotFound() YAML_CPP_NOEXCEPT = default; 12 | InvalidNode::~InvalidNode() YAML_CPP_NOEXCEPT = default; 13 | BadConversion::~BadConversion() YAML_CPP_NOEXCEPT = default; 14 | BadDereference::~BadDereference() YAML_CPP_NOEXCEPT = default; 15 | BadSubscript::~BadSubscript() YAML_CPP_NOEXCEPT = default; 16 | BadPushback::~BadPushback() YAML_CPP_NOEXCEPT = default; 17 | BadInsert::~BadInsert() YAML_CPP_NOEXCEPT = default; 18 | EmitterException::~EmitterException() YAML_CPP_NOEXCEPT = default; 19 | BadFile::~BadFile() YAML_CPP_NOEXCEPT = default; 20 | } // namespace YAML 21 | -------------------------------------------------------------------------------- /icons/err-ref-missing.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /ci/license-update.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ## Setup studio repository 4 | git clone https://${GITLAB_USER}:${GITLAB_CI_UPDATE_TOKEN}@git.gams.com/devel/studio.git studio 5 | cd studio 6 | git config user.name ${GITLAB_USER} 7 | git config user.email ${GITLAB_USER_EMAIL} 8 | git checkout $CI_COMMIT_REF_NAME 9 | cd .. 10 | 11 | ## Update copyright and license 12 | git clone https://${GITLAB_USER}:${GITLAB_CI_UPDATE_TOKEN}@git.gams.com/afust/license-update-script.git script 13 | ./script/update-license.py -p $CI_PROJECT_DIR/studio/platform --studio-license 14 | ./script/update-license.py -p $CI_PROJECT_DIR/studio/src --studio-license 15 | ./script/update-license.py -p $CI_PROJECT_DIR/studio/tests --studio-license 16 | 17 | ## Commit and push updates 18 | cd studio 19 | CHANGES=$(git diff --name-only) 20 | if [[ "$CHANGES" == "" ]]; then 21 | echo "NO CHANGES... NOTHING TO PUSH" 22 | else 23 | echo "UPDATE copyright, license" 24 | git add -u 25 | git commit -m "pipeline update copyright, license" 26 | # prevent ci run via -o ci.skip 27 | git push -o ci.skip 28 | fi 29 | -------------------------------------------------------------------------------- /icons/file-param.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /tests/testeditors/.gitignore: -------------------------------------------------------------------------------- 1 | # This file is used to ignore files which are generated 2 | # ---------------------------------------------------------------------------- 3 | 4 | *~ 5 | *.autosave 6 | *.a 7 | *.core 8 | *.moc 9 | *.o 10 | *.obj 11 | *.orig 12 | *.rej 13 | *.so 14 | *.so.* 15 | *_pch.h.cpp 16 | *_resource.rc 17 | *.qm 18 | .#* 19 | *.*# 20 | core 21 | !core/ 22 | tags 23 | .DS_Store 24 | .directory 25 | *.debug 26 | Makefile* 27 | *.prl 28 | *.app 29 | moc_*.cpp 30 | ui_*.h 31 | qrc_*.cpp 32 | Thumbs.db 33 | *.res 34 | *.rc 35 | /.qmake.cache 36 | /.qmake.stash 37 | 38 | # qtcreator generated files 39 | *.pro.user* 40 | 41 | # xemacs temporary files 42 | *.flc 43 | 44 | # Vim temporary files 45 | .*.swp 46 | 47 | # Visual Studio generated files 48 | *.ib_pdb_index 49 | *.idb 50 | *.ilk 51 | *.pdb 52 | *.sln 53 | *.suo 54 | *.vcproj 55 | *vcproj.*.*.user 56 | *.ncb 57 | *.sdf 58 | *.opensdf 59 | *.vcxproj 60 | *vcxproj.* 61 | 62 | # MinGW generated files 63 | *.Debug 64 | *.Release 65 | 66 | # Python byte code 67 | *.pyc 68 | 69 | # Binaries 70 | # -------- 71 | *.dll 72 | *.exe 73 | -------------------------------------------------------------------------------- /tests/testabstractprocess/testabstractprocess.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | 3 | include(../tests.pri) 4 | 5 | INCLUDEPATH += $$SRCPATH \ 6 | $$SRCPATH/editors \ 7 | $$SRCPATH/process 8 | 9 | HEADERS += \ 10 | testabstractprocess.h \ 11 | $$SRCPATH/editors/abstractsystemlogger.h \ 12 | $$SRCPATH/editors/defaultsystemlogger.h \ 13 | $$SRCPATH/editors/SysLogLocator.h \ 14 | $$SRCPATH/process/abstractprocess.h \ 15 | $$SRCPATH/commonpaths.h \ 16 | $$SRCPATH/common.h \ 17 | $$SRCPATH/exception.h 18 | 19 | SOURCES += \ 20 | testabstractprocess.cpp \ 21 | $$SRCPATH/editors/defaultsystemlogger.cpp \ 22 | $$SRCPATH/editors/SysLogLocator.cpp \ 23 | $$SRCPATH/process/abstractprocess.cpp \ 24 | $$SRCPATH/commonpaths.cpp \ 25 | $$SRCPATH/common.cpp \ 26 | $$SRCPATH/exception.cpp 27 | -------------------------------------------------------------------------------- /extern/yaml-cpp/node/emit.h: -------------------------------------------------------------------------------- 1 | #ifndef NODE_EMIT_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define NODE_EMIT_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include 11 | #include 12 | 13 | #include "yaml-cpp/dll.h" 14 | 15 | namespace YAML { 16 | class Emitter; 17 | class Node; 18 | 19 | /** 20 | * Emits the node to the given {@link Emitter}. If there is an error in writing, 21 | * {@link Emitter#good} will return false. 22 | */ 23 | YAML_CPP_API Emitter& operator<<(Emitter& out, const Node& node); 24 | 25 | /** Emits the node to the given output stream. */ 26 | YAML_CPP_API std::ostream& operator<<(std::ostream& out, const Node& node); 27 | 28 | /** Converts the node to a YAML string. */ 29 | YAML_CPP_API std::string Dump(const Node& node); 30 | } // namespace YAML 31 | 32 | #endif // NODE_EMIT_H_62B23520_7C8E_11DE_8A39_0800200C9A66 33 | -------------------------------------------------------------------------------- /version: -------------------------------------------------------------------------------- 1 | # Current GAMS Studio version. 2 | STUDIO_MAJOR_VERSION=1 3 | STUDIO_MINOR_VERSION=23 4 | STUDIO_PATCH_LEVEL=3 5 | VERSION='$$STUDIO_MAJOR_VERSION'.'$$STUDIO_MINOR_VERSION'.'$$STUDIO_PATCH_LEVEL' 6 | 7 | # Minimum required GAMS Distribution version, which 8 | # is the latest official GAMS release. 9 | GAMS_DISTRIB_MAJOR=52 10 | GAMS_DISTRIB_MINOR=1 11 | GAMS_DISTRIB_GOLD=0 12 | GAMS_DISTRIB_VERSION=$$GAMS_DISTRIB_MAJOR$$GAMS_DISTRIB_MINOR$$GAMS_DISTRIB_GOLD 13 | 14 | # Project file version defines 15 | DEFINES += 'STUDIO_VERSION_STRING=\\"$$VERSION\\"' 16 | DEFINES += 'STUDIO_MAJOR_VERSION=$$STUDIO_MAJOR_VERSION' 17 | DEFINES += 'STUDIO_MINOR_VERSION=$$STUDIO_MINOR_VERSION' 18 | DEFINES += 'STUDIO_PATCH_LEVEL=$$STUDIO_PATCH_LEVEL' 19 | DEFINES += 'GAMS_DISTRIB_MAJOR=$$GAMS_DISTRIB_MAJOR' 20 | DEFINES += 'GAMS_DISTRIB_MINOR=$$GAMS_DISTRIB_MINOR' 21 | DEFINES += 'GAMS_DISTRIB_VERSION=$$GAMS_DISTRIB_VERSION' 22 | DEFINES += 'GAMS_DISTRIB_VERSION_SHORT=\\"'$$GAMS_DISTRIB_MAJOR'.'$$GAMS_DISTRIB_MINOR'\\"' 23 | DEFINES += 'GAMS_VERSION_STRING=\\"'$$GAMS_DISTRIB_MAJOR'.'$$GAMS_DISTRIB_MINOR'.'$$GAMS_DISTRIB_GOLD'\\"' 24 | -------------------------------------------------------------------------------- /extern/yaml-cpp/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2008-2015 Jesse Beder. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /icons/ref-file.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/sort-n-up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /icons/solid/sort-u-dn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /icons/solid/sort-u-up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /tests/testgamsprobeprocess/testgamsprobeprocess.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | 3 | include(../tests.pri) 4 | 5 | INCLUDEPATH += $$SRCPATH \ 6 | $$SRCPATH/editors \ 7 | $$SRCPATH/process 8 | 9 | HEADERS += \ 10 | testabstractprocess.h \ 11 | $$SRCPATH/editors/abstractsystemlogger.h \ 12 | $$SRCPATH/editors/defaultsystemlogger.h \ 13 | $$SRCPATH/editors/SysLogLocator.h \ 14 | $$SRCPATH/process/abstractprocess.h \ 15 | $$SRCPATH/commonpaths.h \ 16 | $$SRCPATH/common.h \ 17 | $$SRCPATH/exception.h 18 | 19 | SOURCES += \ 20 | tst_testgamsprobeprocess.cpp \ 21 | $$SRCPATH/editors/defaultsystemlogger.cpp \ 22 | $$SRCPATH/editors/SysLogLocator.cpp \ 23 | $$SRCPATH/process/gamsprobeprocess.cpp \ 24 | $$SRCPATH/process/abstractprocess.cpp \ 25 | $$SRCPATH/commonpaths.cpp \ 26 | $$SRCPATH/common.cpp \ 27 | $$SRCPATH/exception.cpp 28 | -------------------------------------------------------------------------------- /icons/solid/sort-n-dn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /icons/neos-g.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/solid/sort-t-dn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /icons/solid/sort-t-up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/option/gamsconfigeditor.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | gams::studio::option::GamsConfigEditor 4 | 5 | 6 | 7 | 0 8 | 0 9 | 542 10 | 414 11 | 12 | 13 | 14 | Form 15 | 16 | 17 | 18 | 0 19 | 20 | 21 | 2 22 | 23 | 24 | 0 25 | 26 | 27 | 2 28 | 29 | 30 | 31 | 32 | -1 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | stages: 2 | - fetch-scripts 3 | - quality 4 | - build 5 | - test 6 | - pack 7 | - deploy 8 | - analyze 9 | 10 | include: 11 | - project: 'devel/ciscripts' 12 | file: '.fetch-job.yml' 13 | - project: 'devel/ciscripts' 14 | file: .shared-vars.yml 15 | - 'ci/.gitlab-ci-0-quality-gate.yml' 16 | - 'ci/.gitlab-ci-1-build.yml' 17 | - 'ci/.gitlab-ci-2-test.yml' 18 | - 'ci/.gitlab-ci-3-pack.yml' 19 | - 'ci/.gitlab-ci-4-deploy.yml' 20 | - 'ci/.gitlab-ci-5-analyze.yml' 21 | - template: Security/Secret-Detection.gitlab-ci.yml 22 | 23 | variables: 24 | extends: .shared-variables 25 | GAMS_CONTAINER_REGISTRY: 26 | value: registry.gams.com/devel 27 | description: "URL to the GAMS container registry" 28 | PF_CUSTOM_BRANCH: 29 | value: 0 30 | description: "Name of custom branch, or X.Y.Z for published distribution, or 0 if version is specified in text file with lines GAMS_DISTRIB_MAJOR=X, GAMS_DISTRIB_MINOR=Y, GAMS_DISTRIB_GOLD=Z" 31 | QT_IMAGE_VERSION: 32 | value: qt6.10.1 33 | description: "Current Qt image version" 34 | QT_VERSION: 35 | value: 6.10.1 36 | description: "Current Qt version" 37 | -------------------------------------------------------------------------------- /icons/university.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/editors/defaultsystemlogger.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * GAMS Studio 3 | * 4 | * Copyright (c) 2017-2025 GAMS Software GmbH 5 | * Copyright (c) 2017-2025 GAMS Development Corp. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | #include "defaultsystemlogger.h" 21 | #include 22 | 23 | namespace gams { 24 | namespace studio { 25 | 26 | void DefaultSystemLogger::append(const QString &msg, LogMsgType type) 27 | { 28 | Q_UNUSED(msg); 29 | Q_UNUSED(type); 30 | } 31 | 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /extern/yaml-cpp/node/iterator.h: -------------------------------------------------------------------------------- 1 | #ifndef VALUE_ITERATOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define VALUE_ITERATOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include "yaml-cpp/dll.h" 11 | #include "yaml-cpp/node/node.h" 12 | #include "yaml-cpp/node/detail/iterator_fwd.h" 13 | #include "yaml-cpp/node/detail/iterator.h" 14 | #include 15 | #include 16 | #include 17 | 18 | namespace YAML { 19 | namespace detail { 20 | struct iterator_value : public Node, std::pair { 21 | iterator_value() = default; 22 | explicit iterator_value(const Node& rhs) 23 | : Node(rhs), 24 | std::pair(Node(Node::ZombieNode), Node(Node::ZombieNode)) {} 25 | explicit iterator_value(const Node& key, const Node& value) 26 | : Node(Node::ZombieNode), std::pair(key, value) {} 27 | }; 28 | } 29 | } 30 | 31 | #endif // VALUE_ITERATOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66 32 | -------------------------------------------------------------------------------- /icons/solid/insert.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/syntax/syntaxcommon.h: -------------------------------------------------------------------------------- 1 | /** 2 | * GAMS Studio 3 | * 4 | * Copyright (c) 2017-2025 GAMS Software GmbH 5 | * Copyright (c) 2017-2025 GAMS Development Corp. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | #ifndef SYNTAXCOMMON_H 21 | #define SYNTAXCOMMON_H 22 | 23 | namespace gams { 24 | namespace studio { 25 | namespace syntax { 26 | 27 | enum SyntaxFlag { 28 | flagSuffixName, 29 | }; 30 | 31 | 32 | } // namespace syntax 33 | } // namespace studio 34 | } // namespace gams 35 | 36 | #endif // SYNTAXCOMMON_H 37 | -------------------------------------------------------------------------------- /tests/testversioninfoloader/testversioninfoloader.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | 3 | include(../tests.pri) 4 | 5 | INCLUDEPATH += $$SRCPATH \ 6 | $$SRCPATH/editors \ 7 | $$SRCPATH/support \ 8 | $$PWD/../extern 9 | include(../../extern/yaml-cpp/yaml-cpp.pri) 10 | 11 | HEADERS += \ 12 | $$SRCPATH/editors/defaultsystemlogger.h \ 13 | $$SRCPATH/editors/sysloglocator.h \ 14 | $$SRCPATH/exception.h \ 15 | $$SRCPATH/common.h \ 16 | $$SRCPATH/commonpaths.h \ 17 | $$SRCPATH/commandlineparser.h \ 18 | $$SRCPATH/support/versioninfoloader.h 19 | 20 | SOURCES += \ 21 | $$SRCPATH/editors/defaultsystemlogger.cpp \ 22 | $$SRCPATH/editors/sysloglocator.cpp \ 23 | $$SRCPATH/support/versioninfoloader.cpp \ 24 | $$SRCPATH/exception.cpp \ 25 | $$SRCPATH/common.cpp \ 26 | $$SRCPATH/commonpaths.cpp \ 27 | $$SRCPATH/commandlineparser.cpp \ 28 | tst_testversioninfoloader.cpp 29 | -------------------------------------------------------------------------------- /icons/file-edit.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /platform/macos/macospathfinder.h: -------------------------------------------------------------------------------- 1 | /** 2 | * GAMS Studio 3 | * 4 | * Copyright (c) 2017-2025 GAMS Software GmbH 5 | * Copyright (c) 2017-2025 GAMS Development Corp. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | #ifndef MACOSPATHFINDER_H 21 | #define MACOSPATHFINDER_H 22 | 23 | #include 24 | 25 | class MacOSPathFinder 26 | { 27 | private: 28 | MacOSPathFinder() {}; 29 | 30 | public: 31 | static QString systemDir(); 32 | 33 | private: 34 | static QString systemDir(bool current); 35 | }; 36 | 37 | #endif // MACOSPATHFINDER_H 38 | -------------------------------------------------------------------------------- /extern/yaml-cpp/indentation.h: -------------------------------------------------------------------------------- 1 | #ifndef INDENTATION_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define INDENTATION_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include 11 | #include 12 | 13 | #include "yaml-cpp/ostream_wrapper.h" 14 | 15 | namespace YAML { 16 | struct Indentation { 17 | Indentation(std::size_t n_) : n(n_) {} 18 | std::size_t n; 19 | }; 20 | 21 | inline ostream_wrapper& operator<<(ostream_wrapper& out, 22 | const Indentation& indent) { 23 | for (std::size_t i = 0; i < indent.n; i++) 24 | out << ' '; 25 | return out; 26 | } 27 | 28 | struct IndentTo { 29 | IndentTo(std::size_t n_) : n(n_) {} 30 | std::size_t n; 31 | }; 32 | 33 | inline ostream_wrapper& operator<<(ostream_wrapper& out, 34 | const IndentTo& indent) { 35 | while (out.col() < indent.n) 36 | out << ' '; 37 | return out; 38 | } 39 | } 40 | 41 | #endif // INDENTATION_H_62B23520_7C8E_11DE_8A39_0800200C9A66 42 | -------------------------------------------------------------------------------- /extern/yaml-cpp/contrib/anchordict.h: -------------------------------------------------------------------------------- 1 | #ifndef ANCHORDICT_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define ANCHORDICT_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include 11 | 12 | #include "../anchor.h" 13 | 14 | namespace YAML { 15 | /** 16 | * An object that stores and retrieves values correlating to {@link anchor_t} 17 | * values. 18 | * 19 | *

Efficient implementation that can make assumptions about how 20 | * {@code anchor_t} values are assigned by the {@link Parser} class. 21 | */ 22 | template 23 | class AnchorDict { 24 | public: 25 | AnchorDict() : m_data{} {} 26 | void Register(anchor_t anchor, T value) { 27 | if (anchor > m_data.size()) { 28 | m_data.resize(anchor); 29 | } 30 | m_data[anchor - 1] = value; 31 | } 32 | 33 | T Get(anchor_t anchor) const { return m_data[anchor - 1]; } 34 | 35 | private: 36 | std::vector m_data; 37 | }; 38 | } // namespace YAML 39 | 40 | #endif // ANCHORDICT_H_62B23520_7C8E_11DE_8A39_0800200C9A66 41 | -------------------------------------------------------------------------------- /tests/testreference/testreference.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the GAMS Studio project. 3 | * 4 | * Copyright (c) 2017-2025 GAMS Software GmbH 5 | * Copyright (c) 2017-2025 GAMS Development Corp. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | #ifndef TESTGAMSOPTION_H 21 | #define TESTGAMSOPTION_H 22 | 23 | #include 24 | 25 | class TestReference : public QObject 26 | { 27 | Q_OBJECT 28 | 29 | private slots: 30 | void testRefrenceHighlight_data(); 31 | void testRefrenceHighlight(); 32 | 33 | }; 34 | 35 | #endif // TESTGAMSOPTION_H 36 | -------------------------------------------------------------------------------- /extern/yaml-cpp/regex_yaml.cpp: -------------------------------------------------------------------------------- 1 | #include "regex_yaml.h" 2 | 3 | namespace YAML { 4 | // constructors 5 | 6 | RegEx::RegEx(REGEX_OP op) : m_op(op), m_a(0), m_z(0), m_params{} {} 7 | RegEx::RegEx() : RegEx(REGEX_EMPTY) {} 8 | 9 | RegEx::RegEx(char ch) : m_op(REGEX_MATCH), m_a(ch), m_z(0), m_params{} {} 10 | 11 | RegEx::RegEx(char a, char z) : m_op(REGEX_RANGE), m_a(a), m_z(z), m_params{} {} 12 | 13 | RegEx::RegEx(const std::string& str, REGEX_OP op) 14 | : m_op(op), m_a(0), m_z(0), m_params(str.begin(), str.end()) {} 15 | 16 | // combination constructors 17 | RegEx operator!(const RegEx& ex) { 18 | RegEx ret(REGEX_NOT); 19 | ret.m_params.push_back(ex); 20 | return ret; 21 | } 22 | 23 | RegEx operator|(const RegEx& ex1, const RegEx& ex2) { 24 | RegEx ret(REGEX_OR); 25 | ret.m_params.push_back(ex1); 26 | ret.m_params.push_back(ex2); 27 | return ret; 28 | } 29 | 30 | RegEx operator&(const RegEx& ex1, const RegEx& ex2) { 31 | RegEx ret(REGEX_AND); 32 | ret.m_params.push_back(ex1); 33 | ret.m_params.push_back(ex2); 34 | return ret; 35 | } 36 | 37 | RegEx operator+(const RegEx& ex1, const RegEx& ex2) { 38 | RegEx ret(REGEX_SEQ); 39 | ret.m_params.push_back(ex1); 40 | ret.m_params.push_back(ex2); 41 | return ret; 42 | } 43 | } // namespace YAML 44 | -------------------------------------------------------------------------------- /tests/tests.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = subdirs 2 | 3 | SUBDIRS += \ 4 | testreference \ 5 | testabstractprocess \ 6 | testblockcode \ 7 | testcheckforupdate \ 8 | testcommonpaths \ 9 | testdialogfilefilter \ 10 | testdoclocation \ 11 | testeditors \ 12 | testgamsaboutprocess \ 13 | testgamsgetkeyprocess \ 14 | testgamslicenseinfo \ 15 | testgamsoption \ 16 | testgamsprobeprocess \ 17 | testgamsuserconfig \ 18 | testgdxviewer \ 19 | testmemorymapper \ 20 | testmiro \ 21 | testoptionapi \ 22 | testoptionfile \ 23 | testsearchcommon \ 24 | testsettings \ 25 | testcompleter \ 26 | testconnect \ 27 | testfilemapper \ 28 | testservicelocators \ 29 | testversioninfoloader 30 | # testsolverconfiginfo 31 | -------------------------------------------------------------------------------- /src/networkmanager.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * GAMS Studio 3 | * 4 | * Copyright (c) 2017-2025 GAMS Software GmbH 5 | * Copyright (c) 2017-2025 GAMS Development Corp. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | #include "networkmanager.h" 21 | 22 | namespace gams { 23 | namespace studio { 24 | 25 | QNetworkAccessManager *NetworkManager::mNetworkManager = nullptr; 26 | QNetworkAccessManager *NetworkManager::mOpenNetworkManager = nullptr; 27 | bool NetworkManager::mLock = false; 28 | 29 | NetworkManager::NetworkManager() 30 | { } 31 | 32 | } // namespace studio 33 | } // namespace gams 34 | -------------------------------------------------------------------------------- /src/file.h: -------------------------------------------------------------------------------- 1 | /** 2 | * GAMS Studio 3 | * 4 | * Copyright (c) 2017-2025 GAMS Software GmbH 5 | * Copyright (c) 2017-2025 GAMS Development Corp. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | #ifndef FILE_H 21 | #define FILE_H 22 | 23 | #include "file/projectcontextmenu.h" 24 | #include "file/projecttreeview.h" 25 | #include "file/treeitemdelegate.h" 26 | #include "file/projectrepo.h" 27 | #include "file/pexabstractnode.h" 28 | #include "file/pexlognode.h" 29 | #include "file/pexgroupnode.h" 30 | #include "file/filemetarepo.h" 31 | #include "file/filemeta.h" 32 | 33 | #endif // FILE_H 34 | -------------------------------------------------------------------------------- /src/search/searchlocator.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * GAMS Studio 3 | * 4 | * Copyright (c) 2017-2025 GAMS Software GmbH 5 | * Copyright (c) 2017-2025 GAMS Development Corp. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | #include "searchlocator.h" 21 | #include 22 | 23 | namespace gams { 24 | namespace studio { 25 | namespace search { 26 | 27 | search::Search* SearchLocator::mS = nullptr; 28 | 29 | void SearchLocator::provide(search::Search *s) 30 | { 31 | mS = s; 32 | } 33 | 34 | search::Search* SearchLocator::search() 35 | { 36 | return mS; 37 | } 38 | 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /tests/testblockcode/testblockcode.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the GAMS Studio project. 3 | * 4 | * Copyright (c) 2017-2025 GAMS Software GmbH 5 | * Copyright (c) 2017-2025 GAMS Development Corp. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | #ifndef TESTBLOCKCODE_H 21 | #define TESTBLOCKCODE_H 22 | 23 | #include "syntax/syntaxhighlighter.h" 24 | #include 25 | 26 | using gams::studio::syntax::BlockCode; 27 | 28 | class TestBlockCode : public QObject 29 | { 30 | Q_OBJECT 31 | 32 | private slots: 33 | void testFile(); 34 | }; 35 | 36 | #endif // TESTBLOCKCODE_H 37 | -------------------------------------------------------------------------------- /ci/.gitlab-ci-5-analyze.yml: -------------------------------------------------------------------------------- 1 | codechecker-leg: 2 | stage: analyze 3 | tags: [linux] 4 | needs: [fetch-ci-scripts] 5 | image: 6 | name: $GAMS_CONTAINER_REGISTRY/qt-machines/leg/analyzer-${QT_IMAGE_VERSION}:latest 7 | entrypoint: [""] # prevent startup.sh 8 | allow_failure: false 9 | variables: 10 | DOLLAR_GAMS: $$$$GAMS_DISTRIB 11 | script: 12 | - !reference [.get-gams] 13 | - !reference [.gams-folder-leg] 14 | - echo "GAMS_DISTRIB=/cache/gams-installs/`cat gams_folder_leg.txt`" > gamsinclude.pri 15 | - echo "GAMS_DISTRIB_C_API=$DOLLAR_GAMS/apifiles/C/api" >> gamsinclude.pri 16 | - echo "GAMS_DISTRIB_CPP_API=$DOLLAR_GAMS/apifiles/C++/api" >> gamsinclude.pri 17 | - bash ci/codechecker.sh 18 | after_script: 19 | - cat gl-code-quality-report.json 20 | artifacts: 21 | reports: 22 | codequality: gl-code-quality-report.json 23 | paths: [gl-code-quality-report.json] 24 | expire_in: '2 mos' 25 | 26 | license-update-leg: 27 | stage: analyze 28 | tags: [linux] 29 | needs: [] 30 | image: 31 | name: $GAMS_CONTAINER_REGISTRY/qt-machines/deployer:latest 32 | entrypoint: [""] # prevent startup.sh 33 | allow_failure: false 34 | script: 35 | - chmod +x ci/license-update.sh 36 | - ./ci/license-update.sh 37 | -------------------------------------------------------------------------------- /tests/testservicelocators/testsysloglocator.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the GAMS Studio project. 3 | * 4 | * Copyright (c) 2017-2025 GAMS Software GmbH 5 | * Copyright (c) 2017-2025 GAMS Development Corp. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | #ifndef TESTCOMMONPATHS_H 21 | #define TESTCOMMONPATHS_H 22 | 23 | #include 24 | 25 | class TestSysLogLocator : public QObject 26 | { 27 | Q_OBJECT 28 | 29 | private slots: 30 | void testSystemLogNull(); 31 | void testSystemLogSetDefault(); 32 | void testSystemLogSetNull(); 33 | }; 34 | 35 | #endif // TESTCOMMONPATHS_H 36 | -------------------------------------------------------------------------------- /extern/engineapi/README.md: -------------------------------------------------------------------------------- 1 | *The source files in this folder are generated and should not be changed manually.* 2 | 3 | LICENSE (MIT) 4 | 5 | Copyright (c) 2017-2023 GAMS Software GmbH 6 | Copyright (c) 2017-2023 GAMS Development Corp. 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 11 | 12 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 13 | -------------------------------------------------------------------------------- /src/search/searchlocator.h: -------------------------------------------------------------------------------- 1 | /** 2 | * GAMS Studio 3 | * 4 | * Copyright (c) 2017-2025 GAMS Software GmbH 5 | * Copyright (c) 2017-2025 GAMS Development Corp. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | #ifndef SEARCHLOCATOR_H 21 | #define SEARCHLOCATOR_H 22 | 23 | namespace gams { 24 | namespace studio { 25 | namespace search { 26 | 27 | class Search; 28 | 29 | class SearchLocator 30 | { 31 | public: 32 | static search::Search* search(); 33 | static void provide(Search* s); 34 | 35 | private: 36 | static search::Search* mS; 37 | }; 38 | 39 | } 40 | } 41 | } 42 | #endif // SEARCHLOCATOR_H 43 | -------------------------------------------------------------------------------- /src/connect/connecterror.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * GAMS Studio 3 | * 4 | * Copyright (c) 2017-2025 GAMS Software GmbH 5 | * Copyright (c) 2017-2025 GAMS Development Corp. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | #include "connecterror.h" 21 | 22 | namespace gams { 23 | namespace studio { 24 | namespace connect { 25 | 26 | 27 | ConnectError::ConnectError() 28 | { 29 | 30 | } 31 | 32 | ConnectError::ConnectError(const YAML::Node& node) 33 | { 34 | Q_ASSERT(mRootNode.Type()==YAML::NodeType::Map); 35 | mRootNode = node; 36 | } 37 | 38 | } // namespace connect 39 | } // namespace studio 40 | } // namespace gams 41 | -------------------------------------------------------------------------------- /extern/yaml-cpp/node/detail/memory.h: -------------------------------------------------------------------------------- 1 | #ifndef VALUE_DETAIL_MEMORY_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define VALUE_DETAIL_MEMORY_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include 11 | 12 | #include "yaml-cpp/dll.h" 13 | #include "yaml-cpp/node/ptr.h" 14 | 15 | namespace YAML { 16 | namespace detail { 17 | class node; 18 | } // namespace detail 19 | } // namespace YAML 20 | 21 | namespace YAML { 22 | namespace detail { 23 | class YAML_CPP_API memory { 24 | public: 25 | memory() : m_nodes{} {} 26 | node& create_node(); 27 | void merge(const memory& rhs); 28 | 29 | private: 30 | using Nodes = std::set; 31 | Nodes m_nodes; 32 | }; 33 | 34 | class YAML_CPP_API memory_holder { 35 | public: 36 | memory_holder() : m_pMemory(new memory) {} 37 | 38 | node& create_node() { return m_pMemory->create_node(); } 39 | void merge(memory_holder& rhs); 40 | 41 | private: 42 | shared_memory m_pMemory; 43 | }; 44 | } // namespace detail 45 | } // namespace YAML 46 | 47 | #endif // VALUE_DETAIL_MEMORY_H_62B23520_7C8E_11DE_8A39_0800200C9A66 48 | -------------------------------------------------------------------------------- /src/connect/connecterror.h: -------------------------------------------------------------------------------- 1 | /** 2 | * GAMS Studio 3 | * 4 | * Copyright (c) 2017-2025 GAMS Software GmbH 5 | * Copyright (c) 2017-2025 GAMS Development Corp. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | #ifndef CONNECTERROR_H 21 | #define CONNECTERROR_H 22 | 23 | #include "connectagent.h" 24 | 25 | namespace gams { 26 | namespace studio { 27 | namespace connect { 28 | 29 | class ConnectError : public ConnectAgent 30 | { 31 | public: 32 | ConnectError(); 33 | ConnectError(const YAML::Node& node); 34 | }; 35 | 36 | } // namespace connect 37 | } // namespace studio 38 | } // namespace gams 39 | 40 | #endif // CONNECTERROR_H 41 | -------------------------------------------------------------------------------- /src/editors/defaultsystemlogger.h: -------------------------------------------------------------------------------- 1 | /** 2 | * GAMS Studio 3 | * 4 | * Copyright (c) 2017-2025 GAMS Software GmbH 5 | * Copyright (c) 2017-2025 GAMS Development Corp. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | #ifndef DEFAULTSYSTEMLOGGER_H 21 | #define DEFAULTSYSTEMLOGGER_H 22 | 23 | #include "abstractsystemlogger.h" 24 | 25 | namespace gams { 26 | namespace studio { 27 | 28 | class DefaultSystemLogger : public AbstractSystemLogger 29 | { 30 | public: 31 | DefaultSystemLogger() {} 32 | 33 | public: 34 | void append(const QString &msg, LogMsgType type) override; 35 | }; 36 | 37 | } 38 | } 39 | 40 | #endif // DEFAULTSYSTEMLOGGER_H 41 | -------------------------------------------------------------------------------- /src/reference/filereferencewidget.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | FileReferenceWidget 4 | 5 | 6 | 7 | 0 8 | 0 9 | 400 10 | 300 11 | 12 | 13 | 14 | Form 15 | 16 | 17 | 18 | 4 19 | 20 | 21 | 0 22 | 23 | 24 | 0 25 | 26 | 27 | 0 28 | 29 | 30 | 0 31 | 32 | 33 | 34 | 35 | Compact View (Show file location only first time used) 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /tests/testdialogfilefilter/testdialogfilefilter.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the GAMS Studio project. 3 | * 4 | * Copyright (c) 2017-2025 GAMS Software GmbH 5 | * Copyright (c) 2017-2025 GAMS Development Corp. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | #ifndef TESTDIALOGFILEFILTER_H 21 | #define TESTDIALOGFILEFILTER_H 22 | 23 | #include 24 | #include "viewhelper.h" 25 | 26 | using namespace gams::studio; 27 | 28 | class TestDialogFileFilter : public QObject 29 | { 30 | Q_OBJECT 31 | 32 | private slots: 33 | void testUserCreatedTypes(); 34 | void testAllFileTypes(); 35 | }; 36 | 37 | #endif // TESTDIALOGFILEFILTER_H 38 | -------------------------------------------------------------------------------- /src/process/gamslibprocess.h: -------------------------------------------------------------------------------- 1 | /** 2 | * GAMS Studio 3 | * 4 | * Copyright (c) 2017-2025 GAMS Software GmbH 5 | * Copyright (c) 2017-2025 GAMS Development Corp. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | #ifndef GAMSLIBPROCESS_H 21 | #define GAMSLIBPROCESS_H 22 | 23 | #include "abstractprocess.h" 24 | 25 | namespace gams { 26 | namespace studio { 27 | 28 | class GamsLibProcess final : public AbstractGamsProcess 29 | { 30 | Q_OBJECT 31 | 32 | public: 33 | GamsLibProcess(QObject *parent = nullptr); 34 | 35 | void execute() override; 36 | }; 37 | 38 | } // namespace studio 39 | } // namespace gams 40 | 41 | #endif // GAMSLIBPROCESS_H 42 | -------------------------------------------------------------------------------- /icons/file-connect.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /extern/yaml-cpp/collectionstack.h: -------------------------------------------------------------------------------- 1 | #ifndef COLLECTIONSTACK_H_62B23520_7C8E_11DE_8A39_0800200C9A66 2 | #define COLLECTIONSTACK_H_62B23520_7C8E_11DE_8A39_0800200C9A66 3 | 4 | #if defined(_MSC_VER) || \ 5 | (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ 6 | (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 7 | #pragma once 8 | #endif 9 | 10 | #include 11 | #include 12 | 13 | namespace YAML { 14 | struct CollectionType { 15 | enum value { NoCollection, BlockMap, BlockSeq, FlowMap, FlowSeq, CompactMap }; 16 | }; 17 | 18 | class CollectionStack { 19 | public: 20 | CollectionStack() : collectionStack{} {} 21 | CollectionType::value GetCurCollectionType() const { 22 | if (collectionStack.empty()) 23 | return CollectionType::NoCollection; 24 | return collectionStack.top(); 25 | } 26 | 27 | void PushCollectionType(CollectionType::value type) { 28 | collectionStack.push(type); 29 | } 30 | void PopCollectionType(CollectionType::value type) { 31 | assert(type == GetCurCollectionType()); 32 | (void)type; 33 | collectionStack.pop(); 34 | } 35 | 36 | private: 37 | std::stack collectionStack; 38 | }; 39 | } // namespace YAML 40 | 41 | #endif // COLLECTIONSTACK_H_62B23520_7C8E_11DE_8A39_0800200C9A66 42 | -------------------------------------------------------------------------------- /tests/testeditors/testcodeedit.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the GAMS Studio project. 3 | * 4 | * Copyright (c) 2017-2025 GAMS Software GmbH 5 | * Copyright (c) 2017-2025 GAMS Development Corp. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | #ifndef TESTCODEEDIT_H 21 | #define TESTCODEEDIT_H 22 | 23 | #include 24 | 25 | class TestCodeEdit : public QObject 26 | { 27 | Q_OBJECT 28 | 29 | private slots: 30 | void test_nextWord(); 31 | void test_prevWord(); 32 | void testSecondsToString(); 33 | void testSecondsToString2(); 34 | void testBytesToString(); 35 | void testBytesToString2(); 36 | }; 37 | 38 | #endif // TESTCODEEDIT_H 39 | -------------------------------------------------------------------------------- /src/editors/navigationhistorylocator.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * GAMS Studio 3 | * 4 | * Copyright (c) 2017-2025 GAMS Software GmbH 5 | * Copyright (c) 2017-2025 GAMS Development Corp. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | #include "navigationhistorylocator.h" 21 | #include "navigationhistory.h" 22 | 23 | namespace gams { 24 | namespace studio { 25 | 26 | NavigationHistory* NavigationHistoryLocator::mNh = nullptr; 27 | 28 | NavigationHistory *NavigationHistoryLocator::navigationHistory() 29 | { 30 | return mNh; 31 | } 32 | 33 | void NavigationHistoryLocator::provide(NavigationHistory *navHistory) 34 | { 35 | mNh = navHistory; 36 | } 37 | 38 | 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/process/gamsprocess.h: -------------------------------------------------------------------------------- 1 | /** 2 | * GAMS Studio 3 | * 4 | * Copyright (c) 2017-2025 GAMS Software GmbH 5 | * Copyright (c) 2017-2025 GAMS Development Corp. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | #ifndef GAMSPROCESS_H 21 | #define GAMSPROCESS_H 22 | 23 | #include "abstractprocess.h" 24 | 25 | namespace gams { 26 | namespace studio { 27 | 28 | class GamsProcess final : public AbstractGamsProcess 29 | { 30 | Q_OBJECT 31 | 32 | public: 33 | GamsProcess(QObject *parent = nullptr); 34 | 35 | void execute() override; 36 | void interrupt() override; 37 | }; 38 | 39 | } // namespace studio 40 | } // namespace gams 41 | 42 | #endif // GAMSPROCESS_H 43 | -------------------------------------------------------------------------------- /src/editors/sysloglocator.h: -------------------------------------------------------------------------------- 1 | /** 2 | * GAMS Studio 3 | * 4 | * Copyright (c) 2017-2025 GAMS Software GmbH 5 | * Copyright (c) 2017-2025 GAMS Development Corp. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | #ifndef SYSLOGLOCATOR_H 21 | #define SYSLOGLOCATOR_H 22 | 23 | namespace gams { 24 | namespace studio { 25 | 26 | class AbstractSystemLogger; 27 | 28 | class SysLogLocator 29 | { 30 | public: 31 | static AbstractSystemLogger* systemLog(); 32 | static void provide(AbstractSystemLogger* syslogEdit); 33 | 34 | private: 35 | static AbstractSystemLogger* mSysLog; 36 | static AbstractSystemLogger* mNullLog; 37 | }; 38 | 39 | } 40 | } 41 | #endif // SYSLOGLOCATOR_H 42 | -------------------------------------------------------------------------------- /ci/.gitlab-ci-4-deploy.yml: -------------------------------------------------------------------------------- 1 | deploy-cloudfront: 2 | stage: deploy 3 | tags: [linux] 4 | image: 5 | name: $GAMS_CONTAINER_REGISTRY/qt-machines/deployer:latest 6 | entrypoint: [""] # prevent startup.sh 7 | dependencies: [pack-deg, pack-dac, pack-leg, pack-wei] 8 | rules: 9 | - if: $CI_COMMIT_TAG =~ /v\d+\.\d+\.\d+.*/ 10 | script: 11 | - mkdir artifacts 12 | - mv *.AppImage *.dmg *.zip artifacts 13 | - chmod +x ci/cloudfront-deploy.sh 14 | - TAG_NAME=$CI_COMMIT_TAG ./ci/cloudfront-deploy.sh 15 | 16 | deploy-github: 17 | stage: deploy 18 | tags: [linux] 19 | image: 20 | name: $GAMS_CONTAINER_REGISTRY/qt-machines/deployer:latest 21 | entrypoint: [""] # prevent startup.sh 22 | dependencies: [pack-deg, pack-dac, pack-leg, pack-wei] 23 | rules: 24 | - if: $CI_COMMIT_TAG =~ /v\d+\.\d+\.\d+.*/ 25 | script: 26 | - PATH="/opt/github-release:${PATH}" 27 | - mkdir artifacts 28 | - mv *.AppImage *.dmg *.zip artifacts 29 | - chmod +x ci/github-deploy.sh 30 | - TAG_NAME=$CI_COMMIT_TAG GITHUB_TOKEN=${GITHUB_TOKEN} ./ci/github-deploy.sh 31 | 32 | deploy-qt: 33 | stage: deploy 34 | tags: [linux] 35 | needs: [] 36 | image: 37 | name: $GAMS_CONTAINER_REGISTRY/qt-machines/deployer:latest 38 | entrypoint: [""] # prevent startup.sh 39 | script: 40 | - chmod +x ci/qt-deploy.sh 41 | - ./ci/qt-deploy.sh 42 | -------------------------------------------------------------------------------- /src/editors/navigationhistorylocator.h: -------------------------------------------------------------------------------- 1 | /** 2 | * GAMS Studio 3 | * 4 | * Copyright (c) 2017-2025 GAMS Software GmbH 5 | * Copyright (c) 2017-2025 GAMS Development Corp. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | #ifndef NAVIGATIONHISTORYLOCATOR_H 21 | #define NAVIGATIONHISTORYLOCATOR_H 22 | 23 | namespace gams { 24 | namespace studio { 25 | 26 | class NavigationHistory; 27 | class NavigationHistoryLocator 28 | { 29 | 30 | public: 31 | static NavigationHistory* navigationHistory(); 32 | static void provide(NavigationHistory* navHistory); 33 | 34 | private: 35 | static NavigationHistory* mNh; 36 | 37 | }; 38 | 39 | } 40 | } 41 | #endif // NAVIGATIONHISTORYLOCATOR_H 42 | -------------------------------------------------------------------------------- /src/engine/efieditor.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | gams::studio::efi::EfiEditor 4 | 5 | 6 | 7 | 0 8 | 0 9 | 865 10 | 570 11 | 12 | 13 | 14 | Form 15 | 16 | 17 | 18 | 4 19 | 20 | 21 | 0 22 | 23 | 24 | 0 25 | 26 | 27 | 0 28 | 29 | 30 | 0 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | gams::studio::fs::FileSystemWidget 40 | QWidget 41 |

filesystemwidget.h
42 | 1 43 | 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /src/file/fileicon.h: -------------------------------------------------------------------------------- 1 | /** 2 | * GAMS Studio 3 | * 4 | * Copyright (c) 2017-2025 GAMS Software GmbH 5 | * Copyright (c) 2017-2025 GAMS Development Corp. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | #ifndef GAMS_STUDIO_FILEICON_H 21 | #define GAMS_STUDIO_FILEICON_H 22 | 23 | #include 24 | #include "filetype.h" 25 | 26 | namespace gams { 27 | namespace studio { 28 | 29 | class FileIcon 30 | { 31 | FileIcon(); 32 | public: 33 | static QIcon iconForFileKind(FileKind kind, bool isReadonly = false, bool isActive = false, QIcon::Mode mode = QIcon::Normal, int alpha = 100); 34 | }; 35 | 36 | } // namespace studio 37 | } // namespace gams 38 | 39 | #endif // GAMS_STUDIO_FILEICON_H 40 | -------------------------------------------------------------------------------- /tests/testcompleter/syntaxsimulator.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the GAMS Studio project. 3 | * 4 | * Copyright (c) 2017-2025 GAMS Software GmbH 5 | * Copyright (c) 2017-2025 GAMS Development Corp. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | */ 18 | #include "syntaxsimulator.h" 19 | 20 | SyntaxSimulator::SyntaxSimulator() : QObject() 21 | {} 22 | 23 | void SyntaxSimulator::clearBlockSyntax() 24 | { 25 | mBlockSyntax.clear(); 26 | } 27 | 28 | void SyntaxSimulator::addBlockSyntax(int pos, gams::studio::syntax::SyntaxKind syntax, int flavor) 29 | { 30 | mBlockSyntax.insert(pos, QPair(int(syntax), flavor)); 31 | } 32 | 33 | void SyntaxSimulator::scanSyntax(QTextBlock block, QMap > &blockSyntax) 34 | { 35 | Q_UNUSED(block) // the blocks content is simulated 36 | blockSyntax = mBlockSyntax; 37 | } 38 | -------------------------------------------------------------------------------- /tests/testcompleter/syntaxsimulator.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the GAMS Studio project. 3 | * 4 | * Copyright (c) 2017-2025 GAMS Software GmbH 5 | * Copyright (c) 2017-2025 GAMS Development Corp. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | */ 18 | #ifndef SYNTAXSIMULATOR_H 19 | #define SYNTAXSIMULATOR_H 20 | 21 | #include 22 | #include 23 | #include "syntax/syntaxformats.h" 24 | 25 | class SyntaxSimulator : public QObject 26 | { 27 | Q_OBJECT 28 | QMap> mBlockSyntax; 29 | 30 | public: 31 | explicit SyntaxSimulator(); 32 | void clearBlockSyntax(); 33 | void addBlockSyntax(int pos, gams::studio::syntax::SyntaxKind syntax, int flavor); 34 | 35 | public slots: 36 | void scanSyntax(QTextBlock block, QMap> &blockSyntax); 37 | 38 | }; 39 | 40 | #endif // SYNTAXSIMULATOR_H 41 | -------------------------------------------------------------------------------- /src/lxiviewer/lxiviewer.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | gams::studio::lxiviewer::LxiViewer 4 | 5 | 6 | 7 | 0 8 | 0 9 | 739 10 | 500 11 | 12 | 13 | 14 | Form 15 | 16 | 17 | 18 | 0 19 | 20 | 21 | 0 22 | 23 | 24 | 0 25 | 26 | 27 | 0 28 | 29 | 30 | 31 | 32 | Qt::Horizontal 33 | 34 | 35 | 36 | true 37 | 38 | 39 | false 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /src/numerics/doubleFormat.h: -------------------------------------------------------------------------------- 1 | /** 2 | * GAMS Studio 3 | * 4 | * Copyright (c) 2017-2025 GAMS Software GmbH 5 | * Copyright (c) 2017-2025 GAMS Development Corp. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | /* doubleFormat.h 22 | * Feb 2020: Formatting routines for displaying doubles 23 | */ 24 | 25 | #ifdef __cplusplus 26 | extern "C" { 27 | #endif 28 | 29 | char *x2fixed (double v, int nDecimals, int squeeze, char outBuf[], int *outLen, char decSep); 30 | 31 | char *x2efmt (double v, int nSigFigs, int squeeze, char outBuf[], int *outLen, char decSep); 32 | 33 | char *x2gfmt (double v, int nSigFigs, int squeeze, char outBuf[], int *outLen, char decSep); 34 | 35 | #ifdef __cplusplus 36 | }; 37 | #endif 38 | -------------------------------------------------------------------------------- /src/process/connectprocess.h: -------------------------------------------------------------------------------- 1 | /** 2 | * GAMS Studio 3 | * 4 | * Copyright (c) 2017-2025 GAMS Software GmbH 5 | * Copyright (c) 2017-2025 GAMS Development Corp. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | #ifndef GAMS_STUDIO_CONNECTPROCESS_H 21 | #define GAMS_STUDIO_CONNECTPROCESS_H 22 | 23 | #include "abstractprocess.h" 24 | 25 | namespace gams { 26 | namespace studio { 27 | 28 | class ConnectProcess final : public AbstractGamsProcess 29 | { 30 | Q_OBJECT 31 | 32 | public: 33 | ConnectProcess(QObject *parent = nullptr); 34 | void execute() override; 35 | void stop(int waitMSec=0); 36 | }; 37 | 38 | } // namespace studio 39 | } // namespace gams 40 | 41 | #endif // GAMS_STUDIO_CONNECTPROCESS_H 42 | -------------------------------------------------------------------------------- /extern/yaml-cpp/tag.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #include "directives.h" // IWYU pragma: keep 5 | #include "tag.h" 6 | #include "token.h" 7 | 8 | namespace YAML { 9 | Tag::Tag(const Token& token) 10 | : type(static_cast(token.data)), handle{}, value{} { 11 | switch (type) { 12 | case VERBATIM: 13 | value = token.value; 14 | break; 15 | case PRIMARY_HANDLE: 16 | value = token.value; 17 | break; 18 | case SECONDARY_HANDLE: 19 | value = token.value; 20 | break; 21 | case NAMED_HANDLE: 22 | handle = token.value; 23 | value = token.params[0]; 24 | break; 25 | case NON_SPECIFIC: 26 | break; 27 | default: 28 | assert(false); 29 | } 30 | } 31 | 32 | const std::string Tag::Translate(const Directives& directives) { 33 | switch (type) { 34 | case VERBATIM: 35 | return value; 36 | case PRIMARY_HANDLE: 37 | return directives.TranslateTagHandle("!") + value; 38 | case SECONDARY_HANDLE: 39 | return directives.TranslateTagHandle("!!") + value; 40 | case NAMED_HANDLE: 41 | return directives.TranslateTagHandle("!" + handle + "!") + value; 42 | case NON_SPECIFIC: 43 | // TODO: 44 | return "!"; 45 | default: 46 | assert(false); 47 | } 48 | throw std::runtime_error("yaml-cpp: internal error, bad tag type"); 49 | } 50 | } // namespace YAML 51 | -------------------------------------------------------------------------------- /src/editors/abstractsystemlogger.h: -------------------------------------------------------------------------------- 1 | /** 2 | * GAMS Studio 3 | * 4 | * Copyright (c) 2017-2025 GAMS Software GmbH 5 | * Copyright (c) 2017-2025 GAMS Development Corp. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | #ifndef ABSTRACTSYSTEMLOGGER_H 21 | #define ABSTRACTSYSTEMLOGGER_H 22 | 23 | class QString; 24 | namespace gams { 25 | namespace studio { 26 | 27 | enum class LogMsgType { Error, Warning, Info }; 28 | 29 | class AbstractSystemLogger 30 | { 31 | 32 | public: 33 | virtual ~AbstractSystemLogger() {} 34 | virtual void append(const QString &msg, LogMsgType type = LogMsgType::Warning) = 0; 35 | 36 | protected: 37 | AbstractSystemLogger() {} 38 | }; 39 | 40 | } 41 | } 42 | 43 | #endif // ABSTRACTSYSTEMLOGGER_H 44 | -------------------------------------------------------------------------------- /tests/testcompleter/testcompleter.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | 3 | include(../tests.pri) 4 | 5 | INCLUDEPATH += $$SRCPATH \ 6 | $$SRCPATH/editors \ 7 | $$SRCPATH/syntax 8 | 9 | HEADERS += \ 10 | syntaxsimulator.h \ 11 | testcompleter.h \ 12 | $$SRCPATH/editors/codecompleter.h \ 13 | $$SRCPATH/editors/sysloglocator.h \ 14 | $$SRCPATH/editors/defaultsystemlogger.h \ 15 | $$SRCPATH/syntax/syntaxformats.h \ 16 | $$SRCPATH/common.h \ 17 | $$SRCPATH/theme.h \ 18 | $$SRCPATH/svgengine.h \ 19 | $$SRCPATH/exception.h \ 20 | $$SRCPATH/logger.h 21 | 22 | SOURCES += \ 23 | syntaxsimulator.cpp \ 24 | testcompleter.cpp \ 25 | $$SRCPATH/editors/codecompleter.cpp \ 26 | $$SRCPATH/editors/sysloglocator.cpp \ 27 | $$SRCPATH/editors/defaultsystemlogger.cpp \ 28 | $$SRCPATH/syntax/syntaxformats.cpp \ 29 | $$SRCPATH/theme.cpp \ 30 | $$SRCPATH/svgengine.cpp \ 31 | $$SRCPATH/exception.cpp \ 32 | $$SRCPATH/logger.cpp 33 | -------------------------------------------------------------------------------- /src/editors/sysloglocator.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * GAMS Studio 3 | * 4 | * Copyright (c) 2017-2025 GAMS Software GmbH 5 | * Copyright (c) 2017-2025 GAMS Development Corp. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | #include "sysloglocator.h" 21 | #include "defaultsystemlogger.h" 22 | 23 | namespace gams { 24 | namespace studio { 25 | 26 | AbstractSystemLogger* SysLogLocator::mSysLog = nullptr; 27 | AbstractSystemLogger* SysLogLocator::mNullLog = new DefaultSystemLogger; 28 | 29 | AbstractSystemLogger* SysLogLocator::systemLog() 30 | { 31 | if (!mSysLog) return mNullLog; 32 | return mSysLog; 33 | } 34 | 35 | void SysLogLocator::provide(AbstractSystemLogger *syslogEdit) 36 | { 37 | mSysLog = syslogEdit; 38 | } 39 | 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/tabdialog.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | TabDialog 4 | 5 | 6 | 7 | 0 8 | 0 9 | 81 10 | 103 11 | 12 | 13 | 14 | Dialog 15 | 16 | 17 | 18 | 2 19 | 20 | 21 | 2 22 | 23 | 24 | 2 25 | 26 | 27 | 2 28 | 29 | 30 | 2 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | QFrame::NoFrame 39 | 40 | 41 | 0 42 | 43 | 44 | Qt::ScrollBarAlwaysOn 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /src/process/gamslibprocess.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * GAMS Studio 3 | * 4 | * Copyright (c) 2017-2025 GAMS Software GmbH 5 | * Copyright (c) 2017-2025 GAMS Development Corp. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | #include "gamslibprocess.h" 21 | 22 | #include 23 | 24 | namespace gams { 25 | namespace studio { 26 | 27 | GamsLibProcess::GamsLibProcess(QObject *parent) 28 | : AbstractGamsProcess("gamslib", parent) 29 | { 30 | 31 | } 32 | 33 | void GamsLibProcess::execute() 34 | { 35 | auto app = nativeAppPath(); 36 | if (!isAppAvailable(app)) 37 | return; 38 | emit newProcessCall("Running:", appCall(app, parameters())); 39 | mProcess.start(app, parameters()); 40 | } 41 | 42 | } // namespace studio 43 | } // namespace gams 44 | -------------------------------------------------------------------------------- /src/welcome/overview.h: -------------------------------------------------------------------------------- 1 | /** 2 | * GAMS Studio 3 | * 4 | * Copyright (c) 2017-2025 GAMS Software GmbH 5 | * Copyright (c) 2017-2025 GAMS Development Corp. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program. If not, see . 19 | */ 20 | #ifndef OVERVIEW_H 21 | #define OVERVIEW_H 22 | 23 | #include 24 | 25 | namespace gams { 26 | namespace studio { 27 | 28 | class HelpPage; 29 | 30 | class Overview : public QWebEngineView 31 | { 32 | Q_OBJECT 33 | public: 34 | Overview(QWidget *parent = nullptr); 35 | 36 | protected: 37 | void contextMenuEvent(QContextMenuEvent *event) override; 38 | QWebEngineView *createWindow(QWebEnginePage::WebWindowType type) override; 39 | }; 40 | 41 | } // namespace studio 42 | } // namespace gams 43 | 44 | #endif // OVERVIEW_H 45 | --------------------------------------------------------------------------------