ui(dxcluster): системный шрифт вместо захардкоженного 'Courier New'

По проекту гарнитуры не задаём — работает системный шрифт (907c2c0 выпилил
'Courier New' из flat-контролов, 19babef из статус-бара). Новый код DX-кластера
это правило нарушал в трёх местах, все три введены в a2fdc3a.

- DXSpotOverlay: подписи спотов на спектре рисуются системным шрифтом —
  гарнитура убрана совсем. Моноширинность там ни к чему: позывные не в
  колонках, ширина чипа и так меряется по TextWidth. Размер по-прежнему задан
  через Font.Height от высоты ряда — иначе подпись не влезала бы при DPI.
- DXClusterForm: список спотов и лог соединения ОСТАЮТСЯ моноширинными
  осознанно (колонки частота/позывной/мода/UTC/спотер выровнены пробелами в
  FormatSpotLine, пропорциональный шрифт их развалит), но имя теперь
  платформенное — MONO_FONT = Consolas/Monospace, как в CWTerminalForm и в
  полосе CW у PanafallPanel. 'Courier New' на Linux не существует вовсе,
  fontconfig молча подменял его.

Font.Size/Font.Style не трогал: их проект оставляет и после перехода на
системный шрифт (в StatusBar размер сохранён).

Дифы всех четырёх коммитов ветки проверены по Font.Name — других мест, где
DX-код задаёт гарнитуру, нет. Сборка ewsdr (--ws=qt6) — ОК.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-14 18:43:36 +03:00
co-authored by Claude Opus 5
parent 84f710476f
commit 13b46f0b7d
2 changed files with 16 additions and 5 deletions
+12 -2
View File
@@ -88,6 +88,16 @@ const
BTN_H = 26; BTN_H = 26;
LOG_H = 130; LOG_H = 130;
// Моноширинный — ТОЛЬКО там, где колонки выровнены пробелами (список спотов и
// лог соединения); всё остальное в окне идёт системным шрифтом, как везде по
// проекту. Имя платформенное, как в CWTerminalForm: 'Courier New' есть не
// всюду (на Linux fontconfig всё равно подставляет свой моноширинный).
{$IFDEF WINDOWS}
MONO_FONT = 'Consolas';
{$ELSE}
MONO_FONT = 'Monospace';
{$ENDIF}
constructor TDXClusterForm.CreateWith(AOwner: TComponent; AStore: TDXSpotStore; constructor TDXClusterForm.CreateWith(AOwner: TComponent; AStore: TDXSpotStore;
AClient: TDXClusterClient); AClient: TDXClusterClient);
var var
@@ -197,7 +207,7 @@ begin
FLog.Anchors := [akLeft, akRight, akBottom]; FLog.Anchors := [akLeft, akRight, akBottom];
FLog.ReadOnly := True; FLog.ReadOnly := True;
FLog.WordWrap := False; FLog.WordWrap := False;
FLog.Font.Name := 'Courier New'; FLog.Font.Name := MONO_FONT;
FLog.Font.Size := 8; FLog.Font.Size := 8;
FList := TFlatListBox.Create(Self); FList := TFlatListBox.Create(Self);
@@ -206,7 +216,7 @@ begin
ClientWidth - DpiScale(MARGIN * 2), ClientWidth - DpiScale(MARGIN * 2),
FLog.Top - DpiScale(56 + 6)); FLog.Top - DpiScale(56 + 6));
FList.Anchors := [akLeft, akTop, akRight, akBottom]; FList.Anchors := [akLeft, akTop, akRight, akBottom];
FList.Font.Name := 'Courier New'; FList.Font.Name := MONO_FONT;
FList.Font.Size := 9; FList.Font.Size := 9;
FList.TabStop := True; FList.TabStop := True;
FList.OnDblClick := @OnListDblClick; FList.OnDblClick := @OnListDblClick;
+4 -3
View File
@@ -419,9 +419,10 @@ begin
C.Pen.Style := psClear; C.Pen.Style := psClear;
C.FillRect(Rect(0, 0, W, FBandH)); C.FillRect(Rect(0, 0, W, FBandH));
// Шрифт привязан к высоте ряда (а не к point-size) — подпись влезает при // Гарнитуру НЕ задаём — системная, как договорено по проекту: позывные тут
// любом DPI-масштабе, как в бэндплане. // не в колонках, ширина чипа и так меряется по TextWidth. Задан только
C.Font.Name := 'Courier New'; // размер, привязанный к высоте ряда (а не к point-size), — подпись влезает
// при любом DPI-масштабе, как в бэндплане.
C.Font.Style := [fsBold]; C.Font.Style := [fsBold];
C.Font.Height := -Max(8, Round(FRowH * 0.62)); C.Font.Height := -Max(8, Round(FRowH * 0.62));