Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
0323c78
HamLib Startup CAT Commands
aa5sh Mar 12, 2026
0aec666
Merge branch 'foldynl:master' into StartupCATCmds
aa5sh Mar 13, 2026
65027b1
Fixed build process for Fedora and Ubuntu - missing openssl
foldynl Mar 13, 2026
61a5ed3
Fixed #956 - Online Map: Fixed OSM Access Blocked banner
foldynl Mar 14, 2026
2ce6cb3
Fixed #956 - Online Map: Fixed OSM Access Blocked banner (2)
foldynl Mar 14, 2026
53ac88d
Online Map: Links are opened in the default browser
foldynl Mar 14, 2026
83152e2
Fixed #957 - package build process issue - openssl-dev is missing
foldynl Mar 15, 2026
85afb23
Fixed #964 - Missing dependence for QTKeychain
foldynl Mar 17, 2026
39a823b
Started a new release
foldynl Mar 17, 2026
4a67525
Merge branch 'bugfix-956' into testing_0.49.1
foldynl Mar 17, 2026
1c4a0ba
Updated Changelog
foldynl Mar 17, 2026
3307fa3
Merge branch 'bugfix-964' into testing_0.49.1
foldynl Mar 17, 2026
6884d37
Updated Changelog
foldynl Mar 17, 2026
8393d15
CI/CD: Checking RPM and DEP build process
foldynl Mar 17, 2026
ea29611
CI/CD: Updated checkout version from v4 to v5
foldynl Mar 17, 2026
5418b4b
CI/CD: Updated Fedora Image version; Added smoke test of the installa…
foldynl Mar 17, 2026
5812eb1
CI/CD: MacOS enable/disable; fixing RPM smoke test
foldynl Mar 17, 2026
6981cf1
CI/CD: Fixed artifact version; MacOS build is controlled by ENABLE_MA…
foldynl Mar 17, 2026
a57f2d7
CI/CD: deb-package and rpm-package triggered only for Push
foldynl Mar 17, 2026
de12382
Merge branch 'bugfix-957' into testing_0.49.1
foldynl Mar 17, 2026
1d5330e
Updated Changelog
foldynl Mar 17, 2026
e002330
Windows: Improved installer name versioning
foldynl Mar 18, 2026
c60715b
Initial complete French Translation
fillods Mar 18, 2026
2205d87
Merge branch 'fillods_969' into testing_0.49.1
foldynl Mar 19, 2026
c7cbbac
Merged and refreshed FR translation, Updated Changelog
foldynl Mar 19, 2026
c10a87f
Preparation for release 0.49.1
foldynl Mar 19, 2026
d7cdd25
Merge branch 'foldynl:master' into StartupCATCmds
aa5sh Mar 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
123 changes: 120 additions & 3 deletions .github/workflows/c-cpp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ on:
branches:
- 'testing_*'
- master
workflow_dispatch:
jobs:
ubuntu-build-qt5:
name: Ubuntu CI QT5
Expand All @@ -23,7 +24,7 @@ jobs:
sudo apt-get update
sudo apt-get -y install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools libsqlite3-dev libhamlib++-dev libqt5charts5-dev qttools5-dev-tools libqt5keychain1 qt5keychain-dev qtwebengine5-dev build-essential libqt5serialport5-dev pkg-config libqt5websockets5-dev
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v5
- name: configure
run: qmake QLog.pro
- name: make
Expand All @@ -43,14 +44,15 @@ jobs:
sudo apt-get update
sudo apt-get -y install libhamlib-dev build-essential pkg-config qt6-base-dev qtkeychain-qt6-dev qt6-webengine-dev libqt6charts6-dev libqt6serialport6-dev libqt6webenginecore6-bin libqt6svg6-dev libgl-dev libqt6websockets6-dev
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v5
- name: configure
run: qmake6 QLog.pro
- name: make
run: make -j2

macos-build:
name: MacOS CI
if: vars.ENABLE_MACOS == 'true'
strategy:
matrix:
os: [macos-15]
Expand All @@ -74,7 +76,7 @@ jobs:
brew install pkg-config

- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Get version from tag
Expand All @@ -86,3 +88,118 @@ jobs:
cd build
qmake6 -config release ..
make -j4

deb-package:
name: DEB Package Build
if: github.event_name != 'pull_request'
runs-on: ubuntu-24.04

steps:
- name: Checkout code
uses: actions/checkout@v5

- name: Install tools and build dependencies
run: |
sudo apt-get update
sudo apt-get -y install devscripts equivs dpkg-dev fakeroot lintian
sudo mk-build-deps --install --remove debian/control --tool "apt-get -y --no-install-recommends"

- name: Build DEB package
run: dpkg-buildpackage -b -us -uc -j2

- name: Verify DEB was created
run: ls -la ../qlog_*.deb

- name: Run lintian
run: lintian --no-tag-display-limit ../qlog_*.changes || true

- name: Upload DEB artifact
uses: actions/upload-artifact@v5
with:
name: deb-package
path: /home/runner/work/QLog/qlog_*.deb
retention-days: 1

deb-smoke-test:
name: DEB Smoke Test
needs: deb-package
runs-on: ubuntu-24.04

steps:
- name: Download DEB artifact
uses: actions/download-artifact@v5
with:
name: deb-package

- name: Install and smoke test
run: |
sudo apt-get update
sudo apt-get install -y ./qlog_*.deb
QT_QPA_PLATFORM=offscreen qlog --help 2>&1 | grep -q "QLog Help"

rpm-package:
name: RPM Package Build
if: github.event_name != 'pull_request'
runs-on: ubuntu-latest
container:
image: fedora:43

steps:
- name: Install base tools
run: dnf install -y git rpm-build rpmdevtools rpmlint dnf-plugins-core

- name: Checkout code
uses: actions/checkout@v5
with:
fetch-depth: 0

- name: Get version from tag
run: |
git config --global --add safe.directory "$GITHUB_WORKSPACE"
VERSION=$(git describe --tags --abbrev=0 | sed 's/^v//')
echo "REPO_VERSION=${VERSION}" >> $GITHUB_ENV

- name: Install build dependencies from spec
run: dnf builddep -y rpm_spec/qlog.spec

- name: Prepare RPM build tree
run: |
rpmdev-setuptree
TAR_DIR="QLog-${REPO_VERSION}"
mkdir -p "/tmp/${TAR_DIR}"
cp -a . "/tmp/${TAR_DIR}/"
tar czf ~/rpmbuild/SOURCES/qlog-${REPO_VERSION}.tar.gz --exclude='.git' -C /tmp "${TAR_DIR}"

- name: Build RPM package
run: rpmbuild -bb rpm_spec/qlog.spec

- name: Verify RPM was created
run: ls -la ~/rpmbuild/RPMS/*/QLog-*.rpm

- name: Run rpmlint
run: rpmlint ~/rpmbuild/RPMS/*/*.rpm || true

- name: Upload RPM artifact
uses: actions/upload-artifact@v5
with:
name: rpm-package
path: ~/rpmbuild/RPMS/*/QLog-*.rpm
retention-days: 1

rpm-smoke-test:
name: RPM Smoke Test
needs: rpm-package
runs-on: ubuntu-latest
container:
image: fedora:43

steps:
- name: Download RPM artifact
uses: actions/download-artifact@v5
with:
name: rpm-package

- name: Install and smoke test
run: |
dnf install -y $(find . -name 'QLog-*.rpm')
QT_QPA_PLATFORM=offscreen qlog --help 2>&1 | grep -q "QLog Help"
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,4 @@ compile_commands.json
# QtCreator local machine specific files for imported projects
*creator.user*
.DS_Store
/build/Desktop-Debug
1 change: 1 addition & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,4 @@ CONTRIBUTORS:
Michael AA5SH
Emilio EA7QL
Kyle Boyle VE9KZ
Stéphane Fillod F8CFE
6 changes: 6 additions & 0 deletions Changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
2026/03/19 - 0.49.1
- Fixed Online Map OSM Access Blocked banner (issue #956)
- Fixed Package build process issue - openssl-dev is missing (issue #957)
- Fixed Missing dependence for QTKeychain (issue #964)
- Added French Translation (PR #969 thx @fillods)

2026/03/13 - 0.49.0
- [NEW] - Added Pack and Unpack Data and Setting - Computer to Computer Migration (issue #535)
- [NEW] - Added Rig Sharing via Rigctld (PR #736 issue #159 @aa5sh @foldynl)
Expand Down
5 changes: 3 additions & 2 deletions QLog.pro
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ greaterThan(QT_MAJOR_VERSION, 5): QT += widgets

TARGET = qlog
TEMPLATE = app
VERSION = 0.49.0
VERSION = 0.49.1

DEFINES += VERSION=\\\"$$VERSION\\\"

Expand Down Expand Up @@ -539,7 +539,8 @@ unix:!macx {
INSTALLS += target desktop icon metainfo manpage

INCLUDEPATH += /usr/local/include
LIBS += -L/usr/local/lib -lhamlib -lsqlite3 -lz -lssl -lcrypto
PKGCONFIG += openssl
LIBS += -L/usr/local/lib -lhamlib -lsqlite3 -lz
equals(QT_MAJOR_VERSION, 6): LIBS += -lqt6keychain
equals(QT_MAJOR_VERSION, 5): LIBS += -lqt5keychain
}
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -201,15 +201,15 @@ In QT Creator Projects->Desktop Qt 6.8.0 MSVC2022 64Bit->Build Steps->Additional

for Debian:

`sudo apt-get -y install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools libsqlite3-dev libhamlib++-dev libqt5charts5-dev qttools5-dev-tools libqt5keychain1 qt5keychain-dev qtwebengine5-dev build-essential libqt5serialport5-dev pkg-config libqt5websockets5-dev`
`sudo apt-get -y install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools libsqlite3-dev libhamlib++-dev libqt5charts5-dev qttools5-dev-tools libqt5keychain1 qt5keychain-dev qtwebengine5-dev build-essential libqt5serialport5-dev pkg-config libqt5websockets5-dev libssl-dev`

for Debian (QT6):

`sudo apt-get -y install libhamlib-dev build-essential pkg-config qt6-base-dev qtkeychain-qt6-dev qt6-webengine-dev libqt6charts6-dev libqt6serialport6 libqt6webenginecore6-bin libqt6svg6-dev libgl-dev libqt6websockets6-dev qt6-serialport-dev libsqlite3-dev`
`sudo apt-get -y install libhamlib-dev build-essential pkg-config qt6-base-dev qtkeychain-qt6-dev qt6-webengine-dev libqt6charts6-dev libqt6serialport6 libqt6webenginecore6-bin libqt6svg6-dev libgl-dev libqt6websockets6-dev qt6-serialport-dev libsqlite3-dev libssl-dev`

for Fedora:

`dnf install qt5-qtbase-devel qt5-qtwebengine-devel qt5-qtcharts-devel hamlib-devel qtkeychain-qt5-devel qt5-qtserialport-devel pkg-config qt5-qtwebsockets-devel libsqlite3x-devel`
`dnf install qt5-qtbase-devel qt5-qtwebengine-devel qt5-qtcharts-devel hamlib-devel qtkeychain-qt5-devel qt5-qtserialport-devel pkg-config qt5-qtwebsockets-devel libsqlite3x-devel openssl-devel`

for both:

Expand Down
2 changes: 1 addition & 1 deletion core/Migration.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ class DBSchemaMigration : public QObject
bool run(bool force = false);
static bool backupAllQSOsToADX(bool force = false);

static constexpr int latestVersion = 37;
static constexpr int latestVersion = 38;

private:
bool functionMigration(int version);
Expand Down
15 changes: 10 additions & 5 deletions data/RigProfile.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@ QDataStream& operator<<(QDataStream& out, const RigProfile& v)
<< v.getKeySpeed << v.assignedCWKey << v.keySpeedSync
<< v.driver << v.dxSpot2Rig << v.pttType << v.pttPortPath
<< v.rts << v.dtr << v.civAddr
<< v.shareRigctld << v.rigctldPort << v.rigctldPath << v.rigctldArgs;
<< v.shareRigctld << v.rigctldPort << v.rigctldPath << v.rigctldArgs
<< v.startupCATCmd;

return out;
}
Expand Down Expand Up @@ -67,6 +68,7 @@ QDataStream& operator>>(QDataStream& in, RigProfile& v)
in >> v.rigctldPort;
in >> v.rigctldPath;
in >> v.rigctldArgs;
in >> v.startupCATCmd;

return in;
}
Expand All @@ -86,7 +88,8 @@ RigProfilesManager::RigProfilesManager() :
"key_speed_sync, driver, dxspot2rig, ptt_type, ptt_port_pathname, "
"IFNULL(rts, '%0'), IFNULL(dtr, '%0'), IFNULL(civaddr, -1), "
"IFNULL(share_rigctld, 0), IFNULL(rigctld_port, 4532), "
"IFNULL(rigctld_path, ''), IFNULL(rigctld_args, '') "
"IFNULL(rigctld_path, ''), IFNULL(rigctld_args, ''), "
"IFNULL(startupCATCmd,'')"
"FROM rig_profiles").arg(SerialPort::SERIAL_SIGNAL_NONE)))
{
qWarning()<< "Cannot prepare select";
Expand Down Expand Up @@ -135,7 +138,7 @@ RigProfilesManager::RigProfilesManager() :
profileDB.rigctldPort = profileQuery.value(35).toUInt();
profileDB.rigctldPath = profileQuery.value(36).toString();
profileDB.rigctldArgs = profileQuery.value(37).toString();

profileDB.startupCATCmd = profileQuery.value(38).toString();
addProfile(profileDB.profileName, profileDB);
}
}
Expand Down Expand Up @@ -163,13 +166,13 @@ void RigProfilesManager::save()
"txfreq_end, get_freq, get_mode, get_vfo, get_pwr, rit_offset, xit_offset, get_rit, "
"get_xit, default_pwr, get_ptt, qsy_wiping, get_key_speed, assigned_cw_key, key_speed_sync, "
"driver, dxSpot2Rig, ptt_type, ptt_port_pathname, rts, dtr, civaddr, "
"share_rigctld, rigctld_port, rigctld_path, rigctld_args ) "
"share_rigctld, rigctld_port, rigctld_path, rigctld_args, startupCATCmd ) "
"VALUES (:profile_name, :model, :port_pathname, :hostname, :netport, "
":baudrate, :databits, :stopbits, :flowcontrol, :parity, :pollinterval, :txfreq_start, "
":txfreq_end, :get_freq, :get_mode, :get_vfo, :get_pwr, :rit_offset, :xit_offset, :get_rit, "
":get_xit, :default_pwr, :get_ptt, :qsy_wiping, :get_key_speed, :assigned_cw_key, :key_speed_sync, "
":driver, :dxSpot2Rig, :ptt_type, :ptt_port_pathname, :rts, :dtr, :civaddr, "
":share_rigctld, :rigctld_port, :rigctld_path, :rigctld_args )") )
":share_rigctld, :rigctld_port, :rigctld_path, :rigctld_args, :startupCATCmd )") )
{
qWarning() << "cannot prepare Insert statement";
return;
Expand Down Expand Up @@ -220,6 +223,7 @@ void RigProfilesManager::save()
insertQuery.bindValue(":rigctld_port", rigProfile.rigctldPort);
insertQuery.bindValue(":rigctld_path", rigProfile.rigctldPath);
insertQuery.bindValue(":rigctld_args", rigProfile.rigctldArgs);
insertQuery.bindValue(":startupCATCmd", rigProfile.startupCATCmd);

if ( ! insertQuery.exec() )
{
Expand Down Expand Up @@ -275,6 +279,7 @@ bool RigProfile::operator==(const RigProfile &profile)
&& profile.rigctldPort == this->rigctldPort
&& profile.rigctldPath == this->rigctldPath
&& profile.rigctldArgs == this->rigctldArgs
&& profile.startupCATCmd == this->startupCATCmd
);
}

Expand Down
3 changes: 2 additions & 1 deletion data/RigProfile.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ class RigProfile
getXITInfo = true; defaultPWR = 0.0, getPTTInfo = false;
QSYWiping = false, getKeySpeed = false, keySpeedSync = false;
driver = 0, dxSpot2Rig = false, civAddr = -1;
shareRigctld = false; rigctldPort = 4532;
shareRigctld = false; rigctldPort = 4532; startupCATCmd = "";
};

QString profileName;
Expand All @@ -46,6 +46,7 @@ class RigProfile
QString dtr;
QString rigctldPath; // empty = autodetect
QString rigctldArgs; // additional arguments
QString startupCATCmd;

qint32 model;
quint32 baudrate;
Expand Down
8 changes: 8 additions & 0 deletions debian/changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
qlog (0.49.1-1) UNRELEASED; urgency=low
* Fixed Online Map OSM Access Blocked banner (issue #956)
* Fixed Package build process issue - openssl-dev is missing (issue #957)
* Fixed Missing dependence for QTKeychain (issue #964)
* Added French Translation (PR #969 thx @fillods)

-- foldynl <foldyna@gmail.com> Thu, 19 Mar 2026 12:18:46 +0100

qlog (0.49.0-1) UNRELEASED; urgency=low
* [NEW] - Added Pack and Unpack Data and Setting - Computer to Computer Migration (issue #535)
* [NEW] - Added Rig Sharing via Rigctld (PR #736 issue #159 @aa5sh @foldynl)
Expand Down
4 changes: 2 additions & 2 deletions debian/control
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ Section: hamradio
Priority: optional
Maintainer: Ladislav Foldyna <ok1mlg@gmail.com>
Uploaders: Ladislav Foldyna <foldyna@gmail.com>
Build-Depends: debhelper (>= 10.0.0), qtbase5-dev, libsqlite3-dev, libhamlib-dev, libqt5charts5-dev, qtchooser, qttools5-dev-tools, libqt5keychain1, qt5keychain-dev, qtwebengine5-dev, libqt5serialport5-dev, pkg-config, libqt5websockets5-dev, zlib1g-dev
Build-Depends: debhelper (>= 10.0.0), qtbase5-dev, libsqlite3-dev, libhamlib-dev, libqt5charts5-dev, qtchooser, qttools5-dev-tools, libqt5keychain1, qt5keychain-dev, qtwebengine5-dev, libqt5serialport5-dev, pkg-config, libqt5websockets5-dev, zlib1g-dev, libssl-dev
Standards-Version: 4.5.0

Package: qlog
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Depends: ${shlibs:Depends}, ${misc:Depends}, gnome-keyring | kwalletmanager
Description: Qt Logging program for hamradio operators
QLog is an Amateur Radio logging application for Linux, Windows and Mac OS. It
is based on the Qt 5 framework and uses SQLite as database backend.
Expand Down
14 changes: 13 additions & 1 deletion devtools/windowsMake/make.bat
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,19 @@ set "JOM=C:\Qt\Tools\QtCreator\bin\jom\jom.exe"

rem -- Project Settings
set "PROJECT_BASE=%DEVROOT%\QLog"
set "INSTALLER_OUT=%DEVROOT%\qlog_build\qlog-installer.exe"
for /f "tokens=3" %%V in ('findstr /R /C:"^VERSION *= *" "%PROJECT_BASE%\QLog.pro"') do set "QLOG_VERSION=%%V"
set "INSTALLER_BASE=%DEVROOT%\qlog_build\qlog-installer-%QLOG_VERSION%"
set "INSTALLER_SEQ=0"
if exist "%INSTALLER_BASE%.exe" (
:seq_loop
set /a INSTALLER_SEQ+=1
if exist "%INSTALLER_BASE%-!INSTALLER_SEQ!.exe" goto :seq_loop
)
if %INSTALLER_SEQ%==0 (
set "INSTALLER_OUT=%INSTALLER_BASE%.exe"
) else (
set "INSTALLER_OUT=%INSTALLER_BASE%-!INSTALLER_SEQ!.exe"
)

rem -- Libs Settings
set "VCPKG_PACKAGES=%DEVROOT%\vcpkg\packages"
Expand Down
1 change: 1 addition & 0 deletions i18n/i18n.qrc
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
<file>qlog_zh_CN.qm</file>
<file>datastrings.tri</file>
<file>qlog_es.qm</file>
<file>qlog_fr.qm</file>
<file>qlog_it.qm</file>
</qresource>
<qresource prefix="/"/>
Expand Down
Binary file modified i18n/qlog_fr.qm
Binary file not shown.
Loading