mainwindow.cpp: move ensureMessageDock() member function to its own file
MessagePanel.cpp: fix column width/sort ordering bugs in populateMessages()
UI_Constructor.cpp: build custom title bar once in ensureMessageDock()
after messageDock_ exists, instead of inside the toggled handler,
ensures dock is restored visible on startup
ensureMessageDock.cpp: new member function file that handles the Message Inbox
and turns it into a Qt::Window instead of a Qt::Tool when
it is in floating mode
CMakeLists.txt: add ensureMessageDock.cpp to compile object code for the member function
Fix stale Message Inbox after delivery to another station:
markMsgDelivered() and markGroupMsgDeliveredForCallsign() updated
the inbox database but never emitted messageAdded, so an already-open
message panel wouldn't refresh until closed/reopened
Both now emit messageAdded on success, reusing the existing
messageAdded -> MessagePanel::refresh connection that already handles
new incoming messages to refresh the message panel for a MSG delivery
workflow-cleanup.yml: Remove minimum runs requirement from workflow cleanup. This is per-workflow, not total runs, we have no reason to retain runs older than 30 days.
JS8Call-Build-AppImage.sh: Update Linux workflow script to include
libopengl-dev
tools/Linux-User-Build-JS8Call.sh: Update user build script to include
libopengl-development package
overwrite each other in RX pane (textEditRX)
Context:
When multiple stations reply to a group-addressed query (i.e.
"@GROUP QUERY MSGS") within the same second, their replies share an
identical rendered timestamp string in textEditRX. The avoid
duplicate line logic in processCommandActivity() searched backward
for that timestamp string alone and erased whatever block it found,
with no check that the found block actually belonged to the same
sender. With enough replies landing in one processing tick, each new
reply erased the previous different station's line, leaving only
the last reply visible in textEditRX (the incoming MSG pane)
Thanks to John W2KI for reporting this bug and testing the fix
internally built and hosted Qt6.11.1 library package. This is necessary
because Qt6.11.1 is not available in the jurplel/install-qt-action pipeline
for either LLVM-clang or mingw/gcc
- switch linux builds to clang 18
- move Qt6 package script for linux to js8lib
use the standard C++17 or later library utility std::as_const which replaces
qAsConst
- Configuration.cpp: the parameters, allow_monitors and show_monitors,
are only used on Linux in a preprocessor guard. Silence the compiler
spam for Mac and Windows which see them as declared but unused parameters
gcc will complain about it. Did not add a default: switch for gcc as this
is coded primarily for LLVM-clang
- Replace deprecated invalidateFilter() with the Qt 6.11 pattern
beginFilterChange() / endFilterChange()