fix(gui): review — vinduets placering (størrelse før position, genanvendes hvert sekund, profil uden midt-anker), fokus ved sletning af vinduets rækker, ESC via requestClose, [Start] kræver markør, forældet rød status, markvindue uden Slet

This commit is contained in:
2026-09-29 17:52:23 +02:00
parent e892348374
commit f64959e2c3
7 changed files with 79 additions and 15 deletions
+10 -1
View File
@@ -168,6 +168,14 @@ function SmartPickupFrame:refreshFieldLevels()
end
end
-- [Start] kræver en markør (Stop/Overtag altid muligt når marken arbejder).
function SmartPickupFrame:fieldCanStart(id)
local field, info = ADFieldJobs.getField(id), ADFields.getInfo(id)
if field == nil or info == nil then return false end
return ADFieldView.canStart({hasMarker = info.markerId ~= nil,
working = ADFieldModel.isWorking(field) or ADFieldJobs.awaitingPlayer(id) ~= nil})
end
function SmartPickupFrame:fieldLevel(id)
local field, info = ADFieldJobs.getField(id), ADFields.getInfo(id)
if field == nil or info == nil then return "stopped" end
@@ -371,7 +379,7 @@ end
-- Start/Stop/Overtag for én mark (rækkens felt, vinduets knap og knaplinjen).
function SmartPickupFrame:toggleField(id)
self:safe(function(frame)
if id == nil then return end
if id == nil or not frame:fieldCanStart(id) then return end
local field = ADFieldJobs.getField(id)
if ADFieldJobs.awaitingPlayer(id) ~= nil then
-- manuel transport: overtag nu (skærebordet tjekkes stadig)
@@ -411,5 +419,6 @@ SmartPickupFrame.EDIT_PANEL_KINDS.field = {
end,
startStopText = function(frame, adEnv, id) return frame:fieldActionText(id, true) end,
startStop = function(frame, id) frame:toggleField(id) end,
canStart = function(frame, id) return frame:fieldCanStart(id) end,
delete = function() end,
}