Add a Defragment button to Milo (#36)

This commit was merged in pull request #36.
This commit is contained in:
Luca S
2020-05-10 07:48:39 +02:00
committed by GitHub
parent ad4cc5884f
commit d902acacf4
2 changed files with 146 additions and 0 deletions

View File

@@ -33,6 +33,11 @@ local page = UI.Page {
event = 'rescan',
help = 'Rescan all inventories'
},
{
text = 'Defragment storage',
event = 'defrag',
help = 'Defragments the storage'
}
},
},
},
@@ -250,6 +255,10 @@ function page:eventHandler(event)
self.grid:draw()
self:setFocus(self.statusBar.filter)
elseif event.type == 'defrag' then
self:defrag()
self:refresh(true)
elseif event.type == 'toggle_display' then
displayMode = (displayMode + 1) % 2
Util.merge(event.button, displayModes[displayMode])
@@ -357,6 +366,15 @@ function page:refresh(force)
self.throttle:disable()
end
function page:defrag()
local throttle = function() self.throttle:update() end
self.throttle:enable()
local saved = context.storage:defrag(throttle)
self.throttle:disable()
self:notifyInfo(("Saved %d slots"):format(saved))
end
function page:applyFilter()
local function filterItems(t, filter)
self.grid.sortColumn = Milo:getState('sortColumn') or 'count'