Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
11 changes: 11 additions & 0 deletions media-radio/qtsoundmodem/files/qtsoundmodem.desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
[Desktop Entry]
Version=1.0
Name=QtSoundModem
Comment=
Exec=QtSoundModem
Icon=/usr/share/pixmaps/QtSoundModem_icon.png
Terminal=false
X-MultipleArgs=false
Type=Application
Categories=AudioVideo;Audio;HamRadio;
StartupNotify=true
123 changes: 123 additions & 0 deletions media-radio/qtsoundmodem/files/qtsoundmodem.ini.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
--- QtSoundModem.cpp.orig 2025-09-09 14:17:03.763350984 +0200
+++ QtSoundModem.cpp 2025-09-09 14:18:03.168422924 +0200
@@ -52,6 +52,9 @@

#include <time.h>

+#include <filesystem>
+#include <iostream>
+
QImage *Constellation[4];
QImage *Waterfall = 0;
QLabel *DCDLabel[4];
@@ -570,7 +573,19 @@

serial = new serialThread;

- QSettings mysettings("QtSoundModem.ini", QSettings::IniFormat);
+ std::string iniPath = ".local/share/QtSoundModem/";
+
+ if (!std::filesystem::exists(iniPath)) {
+ try {
+ if (!std::filesystem::create_directory(iniPath)) {
+ std::cout << "Error: Can't create '" << iniPath << "' for QtSoundModem settings." << std::endl;
+ }
+ } catch (const std::filesystem::filesystem_error& e) {
+ std::cout << "Error: Can't create '" << iniPath << "' for QtSoundModem settings." << std::endl;
+ }
+ }
+
+ QSettings mysettings(".local/share/QtSoundModem/QtSoundModem.ini", QSettings::IniFormat);

family = mysettings.value("FontFamily", "Courier New").toString();
csize = mysettings.value("PointSize", 0).toInt();
@@ -1189,7 +1204,7 @@
{
if (i > 299)
{
- QSettings * settings = new QSettings("QtSoundModem.ini", QSettings::IniFormat);
+ QSettings * settings = new QSettings(".local/share/QtSoundModem/QtSoundModem.ini", QSettings::IniFormat);
ui.centerA->setValue(Freq_Change(0, i));
settings->setValue("Modem/RXFreq1", ui.centerA->value());
AGW_Report_Modem_Change(0);
@@ -1202,7 +1217,7 @@
{
if (i > 300)
{
- QSettings * settings = new QSettings("QtSoundModem.ini", QSettings::IniFormat);
+ QSettings * settings = new QSettings(".local/share/QtSoundModem/QtSoundModem.ini", QSettings::IniFormat);
ui.centerB->setValue(Freq_Change(1, i));
settings->setValue("Modem/RXFreq2", ui.centerB->value());
AGW_Report_Modem_Change(1);
@@ -1214,7 +1229,7 @@
{
if (i > 299)
{
- QSettings * settings = new QSettings("QtSoundModem.ini", QSettings::IniFormat);
+ QSettings * settings = new QSettings(".local/share/QtSoundModem/QtSoundModem.ini", QSettings::IniFormat);
ui.centerC->setValue(Freq_Change(2, i));
settings->setValue("Modem/RXFreq3", ui.centerC->value());
AGW_Report_Modem_Change(2);
@@ -1226,7 +1241,7 @@
{
if (i > 299)
{
- QSettings * settings = new QSettings("QtSoundModem.ini", QSettings::IniFormat);
+ QSettings * settings = new QSettings(".local/share/QtSoundModem/QtSoundModem.ini", QSettings::IniFormat);
ui.centerD->setValue(Freq_Change(3, i));
settings->setValue("Modem/RXFreq4", ui.centerD->value());
AGW_Report_Modem_Change(3);
@@ -3442,7 +3457,7 @@
{
UNUSED(event);

- QSettings mysettings("QtSoundModem.ini", QSettings::IniFormat);
+ QSettings mysettings(".local/share/QtSoundModem/QtSoundModem.ini", QSettings::IniFormat);
mysettings.setValue("geometry", QWidget::saveGeometry());
mysettings.setValue("windowState", saveState());

@@ -3459,7 +3474,7 @@

closeTraceLog();

- QSettings mysettings("QtSoundModem.ini", QSettings::IniFormat);
+ QSettings mysettings(".local/share/QtSoundModem/QtSoundModem.ini", QSettings::IniFormat);
mysettings.setValue("geometry", saveGeometry());
mysettings.setValue("windowState", saveState());

@@ -3886,4 +3901,4 @@
Process6PackData((unsigned char *)Data.data(), Data.length());
}

-
\ Kein Zeilenumbruch am Dateiende.
+
--- Config.cpp.orig 2025-09-09 14:13:16.810042705 +0200
+++ Config.cpp 2025-09-09 14:13:50.691034141 +0200
@@ -74,7 +74,7 @@
extern QFont Font;


-QSettings* settings = new QSettings("QtSoundModem.ini", QSettings::IniFormat);
+QSettings* settings = new QSettings(".local/share/QtSoundModem/QtSoundModem.ini", QSettings::IniFormat);

// This makes geting settings for more channels easier

@@ -137,7 +137,7 @@
{
int snd_ch;

- QSettings* settings = new QSettings("QtSoundModem.ini", QSettings::IniFormat);
+ QSettings* settings = new QSettings(".local/share/QtSoundModem/QtSoundModem.ini", QSettings::IniFormat);
settings->sync();

PSKRect = settings->value("PSKWindow").toRect();
@@ -384,7 +384,7 @@

void saveSettings()
{
- QSettings * settings = new QSettings("QtSoundModem.ini", QSettings::IniFormat);
+ QSettings * settings = new QSettings(".local/share/QtSoundModem/QtSoundModem.ini", QSettings::IniFormat);

settings->setValue("FontFamily", Font.family());
settings->setValue("PointSize", Font.pointSize());
60 changes: 60 additions & 0 deletions media-radio/qtsoundmodem/qtsoundmodem-9999.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# qtsoundmodem-9999.ebuild
EAPI=8

inherit git-r3

DESCRIPTION="Qt-based Sound Modem & Terminal for packet radio"
HOMEPAGE="https://www.cantab.net/users/john.wiseman/Documents/QtSoundModem.html"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~arm ~x86"
IUSE="pulseaudio"

BDEPEND="media-gfx/imagemagick"

DEPEND="
dev-qt/qtserialport:5
dev-qt/qtmultimedia:5
sci-libs/fftw
pulseaudio? ( media-libs/libpulse )
"
RDEPEND="${DEPEND}"

EGIT_REPO_URI="https://git.hibbian.org/Hibbian/qtsoundmodem.git"

src_prepare() {
default_src_prepare

cd "${WORKDIR}/qtsoundmodem-${PV}" || die
eapply -p0 "${FILESDIR}/qtsoundmodem.ini.patch"
}

src_configure() {
local myqmake
myqmake=$(type -p qmake5 || type -p qmake)
[[ -n $myqmake ]] || die "qmake5 or qmake not found"
"$myqmake" || die "qmake failed"
}

src_compile() {
emake || die "emake failed"
}

src_install() {
dobin "${S}/QtSoundModem"

if [[ -f "${S}/README.md" ]]; then
dodoc README.md
elif [[ -f "${S}/README" ]]; then
dodoc README
fi

# Desktop Entry
insinto /usr/share/applications
doins "${FILESDIR}/qtsoundmodem.desktop"

insinto /usr/share/pixmaps
magick "${S}/QtSoundModem.ico" "${D}/usr/share/pixmaps/QtSoundModem_icon.png" || die "Converting icon failed"

ewarn "QtSoundModem.ini is saved in ~/.local/share/QtSoundModem/"
}
1 change: 1 addition & 0 deletions media-radio/qttermtcp/Manifest
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
DIST qttermtcp-0.79.tar.gz 429453 BLAKE2B 32e1e54e4e40a21de2eaab00585b48040d8230148205656225d450f63bca7d1e26362b9008fef2fa44d4116ac77219938503aefb0de4a17af29ac86502a62233 SHA512 d5aa7bc2cf13d3bf9d8a63fefd7949ec0327b00109fe24a6b0fa8fc95218a34a5c855f34b8347e42ef233eaf7d8a9d2582e4c561a721e9bd1ddfe78efda769c5
11 changes: 11 additions & 0 deletions media-radio/qttermtcp/files/qttermtcp.desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
[Desktop Entry]
Version=1.0
Name=QtTermTCP
Comment=Multi-platform version of BPQTermTCP
Exec=QtTermTCP
Icon=/usr/share/pixmaps/QtTermTCP_icon.png
Terminal=false
X-MultipleArgs=false
Type=Application
Categories=AudioVideo;Audio;HamRadio;
StartupNotify=true
22 changes: 22 additions & 0 deletions media-radio/qttermtcp/files/qttermtcp.ini.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
--- QtTermTCP.cpp.orig 2025-09-09 14:35:16.348670807 +0200
+++ QtTermTCP.cpp 2025-09-09 14:36:48.781377730 +0200
@@ -587,7 +587,8 @@

QString GetConfPath()
{
- std::string conf_path = "QtTermTCP.ini"; // Default conf file stored alongside application.
+ mkdir(".local/share/QtTermTCP", 0775);
+ std::string conf_path = ".local/share/QtTermTCP/QtTermTCP.ini";

#ifdef __APPLE__

@@ -1161,7 +1162,8 @@

// Get configuration path for MacOS.
std::string directory = QStandardPaths::standardLocations(QStandardPaths::AppDataLocation).at(0).toStdString();
- std::string conf_path = directory + "/QtTermTCP.ini";
+ std::string conf_path = ".local/share/QtTermTCP/QtTermTCP.ini";
+ mkdir(".local/share/QtTermTCP", 0775);

//mkdir(directory.c_str(), 0775);

64 changes: 64 additions & 0 deletions media-radio/qttermtcp/qttermtcp-0.79.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Copyright 2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

DESCRIPTION="Qt-based TCP Terminal for packet radio"
HOMEPAGE="https://github.com/g8bpq/QtTermTCP"
SRC_URI="https://github.com/g8bpq/QtTermTCP/archive/refs/tags/0.79.tar.gz -> ${P}.tar.gz"

LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~x86 ~arm"
IUSE="pulseaudio"

BDEPEND="media-gfx/imagemagick"

DEPEND="
dev-qt/qtserialport:5
dev-qt/qtmultimedia:5
pulseaudio? ( media-libs/libpulse )
"
RDEPEND="${DEPEND}"

src_unpack() {
default_src_unpack
S="${WORKDIR}/QtTermTCP-${PV}"
}

src_configure() {
local myqmake
myqmake=$(type -p qmake5 || type -p qmake)
[[ -n $myqmake ]] || die "qmake5 or qmake nnot found."
"$myqmake" || die "qmake failed"
}

src_prepare() {
default_src_prepare

cd "${WORKDIR}/QtTermTCP-${PV}" || die
eapply -p0 "${FILESDIR}/qttermtcp.ini.patch"
}

src_compile() {
emake || die "emake failed"
}

src_install() {
dobin "${S}/QtTermTCP"

if [[ -f "${S}/README.md" ]]; then
dodoc "${S}/README.md"
elif [[ -f "${S}/README" ]]; then
dodoc "${S}/README"
fi

# Desktop Entry
insinto /usr/share/applications
doins "${FILESDIR}/qttermtcp.desktop"

insinto /usr/share/pixmaps
magick "${S}/icon1.ico[0]" "${D}/usr/share/pixmaps/QtTermTCP_icon.png" || die "Converting icon failed."

ewarn "QtTermTCP.ini is saved in ~/.local/share/QtTermTCP/"
}