Migliora layer e persistenza nomi 0.4.1

This commit is contained in:
livio committed 2026-09-25 08:25:25 +02:00
1 parent 205a520708
commit eb5f51795b
6 files changed
+480 -118

No files matched your search

+12 -15
View File
@@ -340,27 +340,25 @@
}
</select>
</label>
<div class="button-row">
<div class="project-command-stack">
<button @onclick="LoadProject" disabled="@(ProjectBusy || string.IsNullOrWhiteSpace(SelectedProjectId))">Apri</button>
<button class="danger-command" @onclick="DeleteProject" disabled="@(ProjectBusy || string.IsNullOrWhiteSpace(SelectedProjectId))">Elimina</button>
</div>
<label>
Cartella
<input @bind="ProjectFolder" placeholder="Es. Cantieri 2026" maxlength="60" />
</label>
<div class="button-row">
<div class="project-command-stack">
<button class="secondary-command" @onclick="UpdateProjectFolder" disabled="@(ProjectBusy || string.IsNullOrWhiteSpace(SelectedProjectId))">Sposta</button>
<button class="secondary-command" @onclick="DuplicateProject" disabled="@(ProjectBusy || string.IsNullOrWhiteSpace(SelectedProjectId))">Duplica</button>
</div>
<div class="button-row">
<button class="secondary-command" @onclick="ToggleProjectArchive" disabled="@(ProjectBusy || string.IsNullOrWhiteSpace(SelectedProjectId))">@(SelectedProject?.IsArchived == true ? "Ripristina" : "Archivia")</button>
<button class="secondary-command" @onclick='() => ShareProject(false)' disabled="@(ProjectBusy || string.IsNullOrWhiteSpace(SelectedProjectId))">Condividi modificabile</button>
<button class="secondary-command" @onclick='() => ShareProject(true)' disabled="@(ProjectBusy || string.IsNullOrWhiteSpace(SelectedProjectId))">Condividi in sola lettura</button>
</div>
<button class="secondary-command" @onclick='() => ShareProject(true)' disabled="@(ProjectBusy || string.IsNullOrWhiteSpace(SelectedProjectId))">Condividi in sola lettura</button>
@if (SelectedProject?.IsReadOnly == true)
{
<small class="field-help">Questo progetto è protetto. Usa Duplica per crearne una copia modificabile.</small>
}
</div>
<label>
Revisione precedente
<select @bind="SelectedVersionId" disabled="@(ProjectVersions.Count == 0)">
@@ -418,15 +416,6 @@
<button class="secondary-command" @onclick="ShowCoordinateInspector">Coordinate WGS84 e UTM</button>
<button class="secondary-command" @onclick="ShowAuditLog">Registro operazioni</button>
</section>
<section class="panel-section">
<h2>Controllo geometrie</h2>
<small class="field-help">Seleziona gli oggetti dalla mappa o dal pannello Layer.</small>
<div class="button-row">
<button class="secondary-command" @onclick="ValidateSelectedGeometries">Controlla e ripara</button>
<button class="secondary-command" @onclick="CreateSelectedHole">Crea foro</button>
</div>
<button class="secondary-command" @onclick="CompareSelectedGeometries">Confronta due confini</button>
</section>
<section class="panel-section">
<h2>Cestino</h2>
<div class="button-row">
@@ -516,6 +505,10 @@
<input type="checkbox" @bind="SnapEnabled" @bind:after="ApplyAdvancedOptions" />
<span>Aggancia i vertici agli oggetti vicini</span>
</label>
<label class="toggle-line project-save-option">
<input type="checkbox" @bind="AutoFitSelectedObject" @bind:after="ApplyAdvancedOptions" />
<span>Centra e zooma quando seleziono un oggetto</span>
</label>
<label>
Distanza aggancio in pixel
<input type="range" min="4" max="40" step="1" @bind="SnapDistancePixels" @bind:after="ApplyAdvancedOptions" />
@@ -675,6 +668,7 @@
private bool AutoSaveOpenProject { get; set; }
private string AutomaticBackupFrequency { get; set; } = "daily";
private bool SnapEnabled { get; set; } = true;
private bool AutoFitSelectedObject { get; set; }
private int SnapDistancePixels { get; set; } = 14;
private bool GpsProximityEnabled { get; set; } = true;
private bool GpsBoundaryAlertEnabled { get; set; }
@@ -1894,6 +1888,7 @@
AutoSaveOpenProject = GetFlagPreference("auto_save_project", false);
AutomaticBackupFrequency = Preferences.Default.Get($"{FlagPreferencePrefix}backup_frequency", "daily");
SnapEnabled = GetFlagPreference("snap_enabled", true);
AutoFitSelectedObject = GetFlagPreference("auto_fit_selected_object", false);
SnapDistancePixels = Preferences.Default.Get($"{FlagPreferencePrefix}snap_distance", 14);
OfflineExtraZoomLevels = Preferences.Default.Get($"{FlagPreferencePrefix}offline_zoom_levels", 2);
GpsProximityEnabled = GetFlagPreference("gps_proximity", true);
@@ -1928,6 +1923,7 @@
SetFlagPreference("auto_save_project", AutoSaveOpenProject);
Preferences.Default.Set($"{FlagPreferencePrefix}backup_frequency", AutomaticBackupFrequency);
SetFlagPreference("snap_enabled", SnapEnabled);
SetFlagPreference("auto_fit_selected_object", AutoFitSelectedObject);
Preferences.Default.Set($"{FlagPreferencePrefix}snap_distance", SnapDistancePixels);
Preferences.Default.Set($"{FlagPreferencePrefix}offline_zoom_levels", OfflineExtraZoomLevels);
SetFlagPreference("gps_proximity", GpsProximityEnabled);
@@ -1964,6 +1960,7 @@
{
autoSaveEnabled = AutoSaveEnabled,
snapEnabled = SnapEnabled,
autoFitSelectedObject = AutoFitSelectedObject,
snapDistancePixels = SnapDistancePixels,
gpsProximityEnabled = GpsProximityEnabled,
gpsBoundaryAlertEnabled = GpsBoundaryAlertEnabled