Skip to content

QtFRED help dialog and documentation#7380

Open
MjnMixael wants to merge 6 commits intoscp-fs2open:masterfrom
MjnMixael:qtfred-help-dialog-docs
Open

QtFRED help dialog and documentation#7380
MjnMixael wants to merge 6 commits intoscp-fs2open:masterfrom
MjnMixael:qtfred-help-dialog-docs

Conversation

@MjnMixael
Copy link
Copy Markdown
Contributor

Adds the help dialog and written documentation. The actual code changes here are pretty minimal and most of the PR is the written documentation for each dialog. This uses Qt's help system which requires Qt's QSLite SQL driver which this adds to the build workflows. I'm inexperienced with CMAKE but I've got this working such that building QtFRED will compile the help file and copy it next to the exe.

The help system I've setup here is one where SCP will take ownership of keeping the dialog documentation up to date. Any time features are added/changed/removed from a dialog, the associated help html file should also be updated. Additionally, the help dialog will search in data/freddocs for loose html files and add them to the Tutorials tab. This is intended to provide mods like FOTG a way to inject mod-specific documentation directly into the help window. These html files will obey the dark/light theme, be searchable, and can link directly internal dialog documentation. An example html file has been included with this PR.

An overwhelming majority of the lines/files changed here is the actual documentation files. Some of them, like sexps, are placeholder. I've asked naomi to help write more complete versions because she is an experienced tutor.

@MjnMixael MjnMixael added the qtfred A feature or issue related to qtFred. label Apr 16, 2026
@github-project-automation github-project-automation bot moved this to Work In Progress (PRs) in qtFRED2 Apr 16, 2026
@MjnMixael
Copy link
Copy Markdown
Contributor Author

MjnMixael commented Apr 16, 2026

Builds are failing on Linux with this error:

[540/1537] Compiling QtFRED help (qtfred_help.qch)
FAILED: qtfred/qtfred_help.qch /__w/fs2open.github.com/fs2open.github.com/build/qtfred/qtfred_help.qch 
cd /__w/fs2open.github.com/fs2open.github.com/build/qtfred && /usr/bin/cmake -E env QT_QPA_PLATFORM=offscreen LD_LIBRARY_PATH=/qt/5.12.12/gcc_64/lib /qt/5.12.12/gcc_64/bin/qhelpgenerator /__w/fs2open.github.com/fs2open.github.com/qtfred/help-src/doc/qtfred.qhp -o /__w/fs2open.github.com/fs2open.github.com/build/qtfred/qtfred_help.qch
qt.qpa.plugin: Could not load the Qt platform plugin "minimal" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, xcb.
Subprocess aborted

I don't know how to fix that.

@MjnMixael
Copy link
Copy Markdown
Contributor Author

according to Claude, this is not something I can fix.

The debug output gives us the exact answer:

Cannot load library /qt/5.12.12/gcc_64/plugins/platforms/libqminimal.so: 
  (libfontconfig.so.1: cannot open shared object file: No such file or directory)

Not libGL — it's libfontconfig1, the font configuration library. Every Qt platform plugin depends on Qt5Gui, and Qt5Gui has a hard runtime dependency on fontconfig. The library is simply not installed in the build container.

There's no CMake workaround for this — fontconfig isn't bundled with Qt, it's expected to be a system library. The system just doesn't have it.

What the SCP team needs to do — one of:

Add libfontconfig1 (and likely libfreetype6 since fontconfig depends on it) to the build Docker image
Or add this step to the workflow YAMLs before the compile step:
- name: Install fontconfig for qhelpgenerator
  run: apt-get install -y libfontconfig1

That's the complete picture to hand them. The diagnosis is definitive now.

And once this is resolved we'll want to remove the QT_DEBUG_PLUGINS=1 line from the CMakeLists.txt before merging — it's noisy output that's only useful for this investigation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

qtfred A feature or issue related to qtFred.

Projects

Status: Work In Progress (PRs)

Development

Successfully merging this pull request may close these issues.

1 participant