fix: the status bar named the settings database, not the logbook
Spotted by the author: on SQLite the database chip showed a.dbPath — the settings/profile database — under a tooltip reading "Local SQLite logbook". Those became two separate files when the logbook was split out, so an operator checking where their QSOs live, or which file to copy before a trip, was pointed at the wrong one. MySQL was already right. It now resolves the logbook the same way connectLogbook does: the active profile's own file if it names one, then the default logbook.db, and the settings db only in the case where it genuinely doubles as the logbook. Also moves the 4O3A mark beside its menu label instead of the far edge of the row, as asked.
This commit is contained in:
@@ -1893,7 +1893,27 @@ func (a *App) GetDBConnectionInfo() DBConnectionInfo {
|
||||
}
|
||||
return DBConnectionInfo{Backend: "mysql", Label: "MySQL"}
|
||||
}
|
||||
return DBConnectionInfo{Backend: "sqlite", Label: a.dbPath}
|
||||
// The LOGBOOK file, not the settings database.
|
||||
//
|
||||
// This reported a.dbPath — the settings/profile database — under a tooltip
|
||||
// reading "Local SQLite logbook". The two are separate files since the logbook
|
||||
// split, so an operator checking where their QSOs live, or which file to back
|
||||
// up, was pointed at the wrong one.
|
||||
//
|
||||
// Same resolution order as connectLogbook: the active profile's own file if it
|
||||
// names one, then the default logbook.db, and only if neither exists does the
|
||||
// settings db genuinely serve as the logbook.
|
||||
lp := ""
|
||||
if p, err := a.profiles.Active(a.ctx); err == nil {
|
||||
lp = strings.TrimSpace(p.DB.Path)
|
||||
}
|
||||
if lp == "" {
|
||||
lp = a.logbookPath
|
||||
}
|
||||
if lp == "" {
|
||||
lp = a.dbPath
|
||||
}
|
||||
return DBConnectionInfo{Backend: "sqlite", Label: lp}
|
||||
}
|
||||
|
||||
// connectLogbook opens the logbook connection for a profile's DB target: a
|
||||
|
||||
+4
-2
@@ -15,7 +15,8 @@
|
||||
"A Yaesu that is switched off is reported as such. Opening the serial port used to be logged as \"connected\", with the model name left over from the previous session, so a radio that was simply powered down looked like a software fault.",
|
||||
"Yaesu: moving RX and TX together to the SUB receiver is no longer shown as split. That is simplex on the sub VFO, but the rig reports its split flag anyway, so OpsLog now works split out from which VFO transmits and which receives.",
|
||||
"Auto-call CW now waits the gap you set AFTER the message, not from the moment it starts. With a WinKeyer or serial keyer the wait could end before the call had finished, so a 6 s gap gave about 2 s of silence after a 4 s CQ.",
|
||||
"The Antenna Genius and Tuner Genius settings entries carry a small 4O3A mark, so the panels driving that hardware are recognisable at a glance in the sidebar."
|
||||
"The Antenna Genius and Tuner Genius settings entries carry a small 4O3A mark, so the panels driving that hardware are recognisable at a glance in the sidebar.",
|
||||
"The database shown in the status bar is the LOGBOOK file. On a local SQLite setup it named the settings database instead, so anyone checking where their QSOs live — or which file to back up — was pointed at the wrong one."
|
||||
],
|
||||
"fr": [
|
||||
"Cliquer sur un spot du cluster en écoutant sur le VFO SUB ne ramène plus la radio sur le VFO principal. La commande utilisée pour s'accorder agit par définition sur le VFO principal ; sur SUB, c'est désormais le VFO secondaire qui est écrit, sans toucher à la sélection.",
|
||||
@@ -30,7 +31,8 @@
|
||||
"Un Yaesu éteint est signalé comme tel. L'ouverture du port série était journalisée comme « connecté », avec le nom de modèle hérité de la session précédente : une radio simplement hors tension ressemblait à un défaut du logiciel.",
|
||||
"Yaesu : passer RX et TX ensemble sur le récepteur SUB n'est plus affiché comme un split. C'est du simplex sur le VFO secondaire, mais la radio lève quand même son indicateur de split ; OpsLog le déduit désormais du VFO qui émet et de celui qui reçoit.",
|
||||
"L'appel automatique en CW attend désormais l'intervalle réglé APRÈS le message, et non depuis son début. Avec un WinKeyer ou un keyer série, l'attente pouvait se terminer avant la fin de l'appel : un intervalle de 6 s ne laissait qu'environ 2 s de silence après un CQ de 4 s.",
|
||||
"Les entrées de réglages Antenna Genius et Tuner Genius portent une petite marque 4O3A : les panneaux pilotant ce matériel se repèrent d'un coup d'œil dans le menu."
|
||||
"Les entrées de réglages Antenna Genius et Tuner Genius portent une petite marque 4O3A : les panneaux pilotant ce matériel se repèrent d'un coup d'œil dans le menu.",
|
||||
"La base affichée dans la barre d'état est bien le fichier du CARNET. En SQLite local, elle désignait la base des réglages : qui vérifiait où résident ses QSO — ou quel fichier sauvegarder — était orienté vers le mauvais."
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
@@ -216,7 +216,7 @@ function VendorMark({ vendor }: { vendor: 'o3a' }) {
|
||||
// match the surrounding menu at any theme or zoom.
|
||||
const lens = [3.2, 5.2, 7.4, 9.5, 7.4, 5.2, 3.2]; // half-heights, tallest in the middle
|
||||
return (
|
||||
<span className="ml-auto flex shrink-0 items-center gap-[1px] text-[10px] font-bold leading-none opacity-80" title="4O3A Signature">
|
||||
<span className="ml-1.5 flex shrink-0 items-center gap-[1px] text-[10px] font-bold leading-none opacity-80" title="4O3A Signature">
|
||||
<span>4</span>
|
||||
<svg viewBox="0 0 26 22" className="h-[13px] w-[15px]" aria-hidden="true">
|
||||
{lens.map((ry, i) => (
|
||||
|
||||
Reference in New Issue
Block a user