Kitűzési panel szövegmegjelenítési hibájának javítása

This commit is contained in:
2026-07-08 14:47:32 +02:00
parent b1efaff34a
commit d7bbbcae77
@@ -84,18 +84,31 @@ class StakeoutPanel extends StatelessWidget {
IconButton( IconButton(
icon: const Icon(Icons.skip_previous), icon: const Icon(Icons.skip_previous),
visualDensity: VisualDensity.compact, visualDensity: VisualDensity.compact,
padding: EdgeInsets.zero,
constraints:
const BoxConstraints(minWidth: 36, minHeight: 36),
onPressed: () => svc.advance(backwards: true), onPressed: () => svc.advance(backwards: true),
), ),
// A cím rugalmas: szűk helyen ZSUGORODIK (FittedBox),
// sosem tördelődik karakterenként.
Expanded( Expanded(
child: Column( child: Column(
children: [ children: [
Text(t.displayId, FittedBox(
fit: BoxFit.scaleDown,
child: Text(
t.displayId,
maxLines: 1,
style: const TextStyle( style: const TextStyle(
fontSize: 12, fontWeight: FontWeight.w700)), fontSize: 17, fontWeight: FontWeight.w700),
),
),
if (progress != null) if (progress != null)
Text( Text(
'${progress.staked}/${progress.total} kitűzve' '${progress.staked}/${progress.total} kitűzve'
'${t.isOffset ? ' · ELTOLT PONT' : ''}', '${t.isOffset ? ' · ELTOLT' : ''}',
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: TextStyle( style: TextStyle(
fontSize: 11, color: Colors.grey.shade600), fontSize: 11, color: Colors.grey.shade600),
), ),
@@ -105,14 +118,19 @@ class StakeoutPanel extends StatelessWidget {
IconButton( IconButton(
icon: const Icon(Icons.skip_next), icon: const Icon(Icons.skip_next),
visualDensity: VisualDensity.compact, visualDensity: VisualDensity.compact,
padding: EdgeInsets.zero,
constraints:
const BoxConstraints(minWidth: 36, minHeight: 36),
onPressed: () => svc.advance(), onPressed: () => svc.advance(),
), ),
const TiltBubble(),
PopupMenuButton<StakeoutOrder>( PopupMenuButton<StakeoutOrder>(
icon: Icon(switch (svc.orderMode.value) { icon: Icon(switch (svc.orderMode.value) {
StakeoutOrder.idAsc => Icons.trending_up, StakeoutOrder.idAsc => Icons.trending_up,
StakeoutOrder.idDesc => Icons.trending_down, StakeoutOrder.idDesc => Icons.trending_down,
StakeoutOrder.nearest => Icons.near_me, StakeoutOrder.nearest => Icons.near_me,
}), }),
padding: EdgeInsets.zero,
tooltip: 'Sorrend', tooltip: 'Sorrend',
onSelected: (m) => svc.orderMode.value = m, onSelected: (m) => svc.orderMode.value = m,
itemBuilder: (_) => const [ itemBuilder: (_) => const [
@@ -127,37 +145,40 @@ class StakeoutPanel extends StatelessWidget {
child: Text('Legközelebbi')), child: Text('Legközelebbi')),
], ],
), ),
Obx(() => IconButton( // A ritkán használt műveletek EGY menüben — a fejléc
icon: Icon(svc.hapticsEnabled.value // így keskeny kijelzőn / nagy betűméretnél is kifér.
? Icons.vibration PopupMenuButton<String>(
: Icons.phonelink_erase), icon: const Icon(Icons.more_vert),
visualDensity: VisualDensity.compact, padding: EdgeInsets.zero,
tooltip: 'Haptikus visszajelzés', tooltip: 'További műveletek',
onPressed: () => svc.hapticsEnabled.toggle(), onSelected: (a) {
)), switch (a) {
const TiltBubble(), case 'list':
const SizedBox(width: 2), StakeoutListSheet.show();
IconButton( case 'settings':
icon: const Icon(Icons.list_alt), showStakeoutSettingsDialog();
visualDensity: VisualDensity.compact, case 'import':
tooltip: 'Pontlista / export', Get.toNamed(Routes.STAKEOUT_IMPORT);
onPressed: () => StakeoutListSheet.show(), case 'haptics':
), svc.hapticsEnabled.toggle();
IconButton( }
icon: Icon(Icons.tune), },
visualDensity: VisualDensity.compact, itemBuilder: (_) => [
tooltip: 'Kitűzési beálítások', const PopupMenuItem(
onPressed: () => showStakeoutSettingsDialog(), value: 'list', child: Text('Pontlista / export')),
), const PopupMenuItem(
IconButton( value: 'settings',
icon: const Icon(Icons.upload_file), child: Text('Kitűzési beállítások')),
visualDensity: VisualDensity.compact, const PopupMenuItem(
tooltip: 'Pontok importja', value: 'import', child: Text('Pontok importja')),
onPressed: () => Get.toNamed(Routes.STAKEOUT_IMPORT), CheckedPopupMenuItem(
value: 'haptics',
checked: svc.hapticsEnabled.value,
child: const Text('Haptikus visszajelzés')),
],
), ),
], ],
), ),
// ── Fázis-tartalom ─────────────────────────────────── // ── Fázis-tartalom ───────────────────────────────────
if (!svc.hasPosition.value) if (!svc.hasPosition.value)
const Padding( const Padding(