mirror of
https://github.com/praktimarc/kst4contest.git
synced 2026-10-19 05:42:58 +02:00
Give the debug-to-file recording a home in the Compose settings
origin/main added a checkbox to the old JavaFX settings that recorded the whole ON4KST session to file; the Compose redraw dropped the old settings UI, so the toggle had no control left even though the preference and its wiring survived the rebase. It returns to the message-handling tab: the state writes the preference and asks the application, through a new SettingsHost callback, to open or close the error-log handler and the history recorder in the order the old checkbox kept. The explanatory line and its German translation say that passwords are redacted. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
d1b910c992
commit
c8ce0e985d
6 files changed
+62
-2
No files matched your search
@@ -67,6 +67,9 @@ messageHandling.autoAnswerSection=Automatische Antwort auf Privatnachrichten
|
|||||||
messageHandling.autoAnswerText=Antworttext
|
messageHandling.autoAnswerText=Antworttext
|
||||||
messageHandling.qrgAnswerEnabled=Eine QRG-Anfrage mit der aktuellen Frequenz beantworten
|
messageHandling.qrgAnswerEnabled=Eine QRG-Anfrage mit der aktuellen Frequenz beantworten
|
||||||
messageHandling.qrgAnswerSection=Automatische Antwort auf eine QRG-Anfrage
|
messageHandling.qrgAnswerSection=Automatische Antwort auf eine QRG-Anfrage
|
||||||
|
messageHandling.debugToFileEnabled=Die vollständige Sitzung in eine Datei aufzeichnen
|
||||||
|
messageHandling.debugToFileHint=Zeichnet den kompletten ON4KST-Sende- und Empfangsverkehr in Messagehistory.raw auf und schreibt zusätzliche Diagnosedetails in kst4contest-errors.log. Anmeldepasswörter werden geschwärzt. Warnungen und Fehler werden immer protokolliert.
|
||||||
|
messageHandling.diagnosticsSection=Diagnose
|
||||||
notification.addCallsignToList=Ein Rufzeichen zur Überwachungsliste hinzufügen
|
notification.addCallsignToList=Ein Rufzeichen zur Überwachungsliste hinzufügen
|
||||||
notification.addMonitored=Überwachtes Rufzeichen hinzufügen
|
notification.addMonitored=Überwachtes Rufzeichen hinzufügen
|
||||||
notification.bandUpgradeHint=Auf einen möglichen Bandwechsel hinweisen, wenn ein QSO geloggt wird
|
notification.bandUpgradeHint=Auf einen möglichen Bandwechsel hinweisen, wenn ein QSO geloggt wird
|
||||||
|
|||||||
@@ -76,6 +76,9 @@ messageHandling.autoAnswerSection=Automatic answer to private messages
|
|||||||
messageHandling.autoAnswerText=Answer text
|
messageHandling.autoAnswerText=Answer text
|
||||||
messageHandling.qrgAnswerEnabled=Answer a QRG request with the current frequency
|
messageHandling.qrgAnswerEnabled=Answer a QRG request with the current frequency
|
||||||
messageHandling.qrgAnswerSection=Automatic answer to a QRG request
|
messageHandling.qrgAnswerSection=Automatic answer to a QRG request
|
||||||
|
messageHandling.debugToFileEnabled=Record the whole session to file
|
||||||
|
messageHandling.debugToFileHint=Records complete ON4KST RX/TX session traffic in Messagehistory.raw and adds diagnostic details to kst4contest-errors.log. Login passwords are redacted. Warnings and errors are always logged.
|
||||||
|
messageHandling.diagnosticsSection=Diagnostics
|
||||||
notification.addCallsignToList=Add a callsign to the monitoring list
|
notification.addCallsignToList=Add a callsign to the monitoring list
|
||||||
notification.addMonitored=Add monitored callsign
|
notification.addMonitored=Add monitored callsign
|
||||||
notification.bandUpgradeHint=Hint at a band upgrade when a QSO is logged
|
notification.bandUpgradeHint=Hint at a band upgrade when a QSO is logged
|
||||||
|
|||||||
@@ -3947,6 +3947,23 @@ public class Kst4ContestApplication implements StatusUpdateListener, SettingsHos
|
|||||||
// intentionally empty: no JavaFX text field left to follow
|
// intentionally empty: no JavaFX text field left to follow
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void applyDebugModeToFile(boolean enabled) {
|
||||||
|
/*
|
||||||
|
* The preference itself is written by the settings tab. What only the application
|
||||||
|
* can do is open and close the error-log file handler and the recorder, in the
|
||||||
|
* order the JavaFX checkbox kept: on the way up the log opens before the recorder
|
||||||
|
* starts, on the way down the recorder stops before the log closes.
|
||||||
|
*/
|
||||||
|
if (enabled) {
|
||||||
|
setDebugFileLoggingEnabled(true);
|
||||||
|
chatcontroller.setMessageHistoryRecordingEnabled(true);
|
||||||
|
} else {
|
||||||
|
chatcontroller.setMessageHistoryRecordingEnabled(false);
|
||||||
|
setDebugFileLoggingEnabled(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The worked-stations rows are a snapshot the tab takes from the roster itself, so
|
* The worked-stations rows are a snapshot the tab takes from the roster itself, so
|
||||||
* there is nothing for this class to redraw. The JavaFX table needed an explicit
|
* there is nothing for this class to redraw. The JavaFX table needed an explicit
|
||||||
|
|||||||
@@ -65,6 +65,15 @@ interface SettingsHost {
|
|||||||
/** Attaches or detaches the follower that mirrors the own QRG into the station field. */
|
/** Attaches or detaches the follower that mirrors the own QRG into the station field. */
|
||||||
fun applyOwnQrgFollower(enabled: Boolean)
|
fun applyOwnQrgFollower(enabled: Boolean)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Turns file recording of the whole session on or off, with the history recorder.
|
||||||
|
*
|
||||||
|
* Lives here and not on the controller because enabling it opens the error-log file
|
||||||
|
* handler, which the application owns. The order — log before recorder when enabling,
|
||||||
|
* recorder before log when disabling — is the one the JavaFX checkbox kept.
|
||||||
|
*/
|
||||||
|
fun applyDebugModeToFile(enabled: Boolean)
|
||||||
|
|
||||||
/** Re-reads the worked-stations table for display. */
|
/** Re-reads the worked-stations table for display. */
|
||||||
fun refreshWorkedStationsView()
|
fun refreshWorkedStationsView()
|
||||||
|
|
||||||
@@ -202,7 +211,7 @@ fun buildSettingsTabs(
|
|||||||
SettingsTab({ kst4contest.view.i18n.CurrentStrings.get().tabNotification }) { NotificationTab(notificationState, reportRefusal) },
|
SettingsTab({ kst4contest.view.i18n.CurrentStrings.get().tabNotification }) { NotificationTab(notificationState, reportRefusal) },
|
||||||
SettingsTab({ kst4contest.view.i18n.CurrentStrings.get().tabShortcuts }) { ShortcutsTab(shortcutsState, reportRefusal) },
|
SettingsTab({ kst4contest.view.i18n.CurrentStrings.get().tabShortcuts }) { ShortcutsTab(shortcutsState, reportRefusal) },
|
||||||
SettingsTab({ kst4contest.view.i18n.CurrentStrings.get().tabBeacon }) { BeaconTab(beaconState, reportRefusal) },
|
SettingsTab({ kst4contest.view.i18n.CurrentStrings.get().tabBeacon }) { BeaconTab(beaconState, reportRefusal) },
|
||||||
SettingsTab({ kst4contest.view.i18n.CurrentStrings.get().tabMessageHandling }) { MessageHandlingTab(MessageHandlingTabState(prefs)) },
|
SettingsTab({ kst4contest.view.i18n.CurrentStrings.get().tabMessageHandling }) { MessageHandlingTab(MessageHandlingTabState(prefs, host::applyDebugModeToFile)) },
|
||||||
/*
|
/*
|
||||||
* Selecting this tab re-read the database in the JavaFX window; the list is a
|
* Selecting this tab re-read the database in the JavaFX window; the list is a
|
||||||
* snapshot and would otherwise show what was true when the window opened.
|
* snapshot and would otherwise show what was true when the window opened.
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package kst4contest.view.compose.tabs
|
|||||||
import kst4contest.view.i18n.LocalStrings
|
import kst4contest.view.i18n.LocalStrings
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
|
import androidx.compose.material3.MaterialTheme
|
||||||
|
import androidx.compose.material3.Text
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
@@ -29,5 +31,16 @@ fun MessageHandlingTab(state: MessageHandlingTabState) {
|
|||||||
state.autoAnswerToQRGRequestEnabled,
|
state.autoAnswerToQRGRequestEnabled,
|
||||||
) { state.autoAnswerToQRGRequestEnabled = it }
|
) { state.autoAnswerToQRGRequestEnabled = it }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Form.section(strings.messageHandlingDiagnosticsSection) {
|
||||||
|
Form.check(
|
||||||
|
strings.messageHandlingDebugToFileEnabled,
|
||||||
|
state.debugModeToFileEnabled,
|
||||||
|
) { state.debugModeToFileEnabled = it }
|
||||||
|
Text(
|
||||||
|
strings.messageHandlingDebugToFileHint,
|
||||||
|
style = MaterialTheme.typography.bodySmall,
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+16
-1
@@ -11,7 +11,10 @@ import kst4contest.model.ChatPreferences
|
|||||||
* that: a tab that wrote only the main category would leave the second chat on its
|
* that: a tab that wrote only the main category would leave the second chat on its
|
||||||
* previous value, which no part of the window ever displayed.
|
* previous value, which no part of the window ever displayed.
|
||||||
*/
|
*/
|
||||||
class MessageHandlingTabState(private val prefs: ChatPreferences) {
|
class MessageHandlingTabState(
|
||||||
|
private val prefs: ChatPreferences,
|
||||||
|
private val applyDebugModeToFile: (Boolean) -> Unit = {},
|
||||||
|
) {
|
||||||
|
|
||||||
/** Drives both category flags, as the single JavaFX checkbox did. */
|
/** Drives both category flags, as the single JavaFX checkbox did. */
|
||||||
var autoAnswerEnabled: Boolean
|
var autoAnswerEnabled: Boolean
|
||||||
@@ -33,4 +36,16 @@ class MessageHandlingTabState(private val prefs: ChatPreferences) {
|
|||||||
var autoAnswerToQRGRequestEnabled: Boolean
|
var autoAnswerToQRGRequestEnabled: Boolean
|
||||||
get() = prefs.isMessageHandling_autoAnswerToQRGRequestEnabled()
|
get() = prefs.isMessageHandling_autoAnswerToQRGRequestEnabled()
|
||||||
set(value) { prefs.setMessageHandling_autoAnswerToQRGRequestEnabled(value) }
|
set(value) { prefs.setMessageHandling_autoAnswerToQRGRequestEnabled(value) }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Records the whole session to file. Beyond the preference it opens or closes the
|
||||||
|
* error-log handler and the history recorder, which only the application can sequence;
|
||||||
|
* [applyDebugModeToFile] carries that out in the order the JavaFX checkbox kept.
|
||||||
|
*/
|
||||||
|
var debugModeToFileEnabled: Boolean
|
||||||
|
get() = prefs.isMessageHandling_debugModeToFileEnabled()
|
||||||
|
set(value) {
|
||||||
|
prefs.setMessageHandling_debugModeToFileEnabled(value)
|
||||||
|
applyDebugModeToFile(value)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user