Bejárás mód: pont leírás mentése

This commit is contained in:
torok.istvan 2026-06-21 12:57:17 +02:00
parent 52bce4b925
commit 026d7799f9
3 changed files with 69 additions and 13 deletions

View File

@ -1787,4 +1787,53 @@ class MapSurveyController extends GetxController {
ignoreSafeArea: false, ignoreSafeArea: false,
); );
} }
// ----- Terepbejárás pont mentése
void showSavePointDialog({required LatLng point}) {
final labelCtrl = TextEditingController();
Get.dialog(
AlertDialog(
title: const Text('Pont mentése'),
content: TextField(
controller: labelCtrl,
autofocus: true,
decoration: const InputDecoration(
hintText: 'Pont neve (opcionális)',
border: OutlineInputBorder(),
),
textCapitalization: TextCapitalization.sentences,
onSubmitted: (_) => _doSavePoint(point, labelCtrl.text),
),
actions: [
TextButton(
onPressed: Get.back,
child: const Text('Mégse'),
),
FilledButton(
onPressed: () => _doSavePoint(point, labelCtrl.text),
child: const Text('Mentés'),
),
],
),
barrierDismissible: false,
);
}
void _doSavePoint(LatLng point, String label) {
activeEditLabel.value = label.trim();
Get.back();
saveEditedPoint(point: point);
}
void savePointFromCurrentPosition() {
final lat = currentLatitude.value;
final lon = currentLongitude.value;
if (lat == 0.0 && lon == 0.0) {
Get.snackbar('Hiba', 'GPS pozíció nem elérhető',
snackPosition: SnackPosition.BOTTOM);
return;
}
showSavePointDialog(point: LatLng(lat, lon));
}
} }

View File

@ -51,7 +51,8 @@ class MapSurveyView extends GetView<MapSurveyController> {
onCenterOnGps: controller.setIsMapMoveToCenter, onCenterOnGps: controller.setIsMapMoveToCenter,
onLongPress: (tapPosition, point) { onLongPress: (tapPosition, point) {
if (controller.activeEditTool.value == MapEditTool.point) { if (controller.activeEditTool.value == MapEditTool.point) {
controller.saveEditedPoint(point: point); //controller.saveEditedPoint(point: point);
controller.showSavePointDialog(point: point);
} }
if (controller.activeEditTool.value == MapEditTool.line || if (controller.activeEditTool.value == MapEditTool.line ||
controller.activeEditTool.value == MapEditTool.polygon) { controller.activeEditTool.value == MapEditTool.polygon) {

View File

@ -1,6 +1,9 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:terepi_seged/pages/map_survey/presentations/controllers/map_survey_controller.dart'; import 'package:terepi_seged/pages/map_survey/presentations/controllers/map_survey_controller.dart';
import 'package:terepi_seged/services/gnss/gnss_connection.dart';
import 'package:terepi_seged/services/gnss/gnss_device_service.dart';
import 'package:terepi_seged/services/gnss/gnss_service.dart';
import 'map_edit_small_status_chip.dart'; import 'map_edit_small_status_chip.dart';
@ -78,22 +81,25 @@ class PointDrawingContent extends StatelessWidget {
Expanded( Expanded(
child: OutlinedButton.icon( child: OutlinedButton.icon(
//onPressed: controller.addPointFromCurrentPosition, //onPressed: controller.addPointFromCurrentPosition,
onPressed: () {}, onPressed: GnssService.to.connectionState.value ==
GnssConnectionState.connected
? controller.savePointFromCurrentPosition
: null,
icon: const Icon(Icons.my_location, size: 18), icon: const Icon(Icons.my_location, size: 18),
label: const Text('Saját hely'), label: const Text('Saját hely'),
), ),
), ),
const SizedBox(width: 8), // const SizedBox(width: 8),
Expanded( // Expanded(
child: FilledButton.icon( // child: FilledButton.icon(
// onPressed: controller.canFinishGeometry // // onPressed: controller.canFinishGeometry
// ? controller.finishGeometry // // ? controller.finishGeometry
// : null, // // : null,
onPressed: () {}, // onPressed: () {},
icon: const Icon(Icons.check, size: 18), // icon: const Icon(Icons.check, size: 18),
label: const Text('Kész'), // label: const Text('Kész'),
), // ),
), // ),
], ],
), ),
], ],