feat: add file size column and formatting helper to list view

This commit is contained in:
Martin Tranberg
2026-03-31 10:45:29 +02:00
parent 220bedda48
commit dfbef36558

View File

@@ -46,6 +46,18 @@ TEMP_DIR = settings.get("temp_dir", "C:\\Temp_SP")
if not os.path.exists(TEMP_DIR):
os.makedirs(TEMP_DIR)
def format_size(bytes_num):
if bytes_num is None:
return ""
if bytes_num < 1024:
return f"{bytes_num} B"
elif bytes_num < 1024**2:
return f"{bytes_num/1024:.1f} KB"
elif bytes_num < 1024**3:
return f"{bytes_num/(1024**2):.1f} MB"
else:
return f"{bytes_num/(1024**3):.1f} GB"
class SharePointApp(wx.Frame):
def __init__(self):
super().__init__(None, title="SharePoint Explorer", size=(1000, 750))
@@ -149,8 +161,9 @@ class SharePointApp(wx.Frame):
self.list_ctrl = wx.ListCtrl(self.splitter, style=wx.LC_REPORT | wx.BORDER_SUNKEN)
self.list_ctrl.AssignImageList(self.image_list, wx.IMAGE_LIST_SMALL)
self.list_ctrl.InsertColumn(0, "Navn", width=450)
self.list_ctrl.InsertColumn(1, "Type", width=150)
self.list_ctrl.InsertColumn(2, "Sidst ændret", width=200)
self.list_ctrl.InsertColumn(1, "Type", width=120)
self.list_ctrl.InsertColumn(2, "Størrelse", width=80)
self.list_ctrl.InsertColumn(3, "Sidst ændret", width=180)
self.list_ctrl.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.on_item_activated)
self.list_ctrl.Bind(wx.EVT_CONTEXT_MENU, self.on_right_click)
@@ -328,7 +341,9 @@ class SharePointApp(wx.Frame):
name = site.get('displayName', site.get('name'))
self.list_ctrl.InsertItem(i, name, self.idx_site)
self.list_ctrl.SetItem(i, 1, "Site")
self.current_items.append({"type": "SITE", "id": site['id'], "name": name})
self.list_ctrl.SetItem(i, 2, "") # Størrelse
self.list_ctrl.SetItem(i, 3, "") # Sidst ændret
self.current_items.append({"type": "SITE", "id": site['id'], "name": name, "size": None, "modified": ""})
def on_tree_expanding(self, event):
item = event.GetItem()
@@ -437,7 +452,7 @@ class SharePointApp(wx.Frame):
for drive in drives:
items_data.append({
"type": "DRIVE", "id": drive['id'], "name": drive.get('name', ''),
"drive_id": drive['id'], "modified": ""
"drive_id": drive['id'], "modified": "", "size": None
})
elif data['type'] in ["DRIVE", "FOLDER"]:
drive_id = data['drive_id']
@@ -456,7 +471,8 @@ class SharePointApp(wx.Frame):
items_data.append({
"type": "FOLDER" if is_folder else "FILE",
"id": item['id'], "name": item['name'],
"drive_id": drive_id, "modified": modified
"drive_id": drive_id, "modified": modified,
"size": item.get('size') if not is_folder else None
})
wx.CallAfter(self._populate_list_ctrl, items_data, data)
@@ -473,7 +489,9 @@ class SharePointApp(wx.Frame):
self.list_ctrl.InsertItem(i, item['name'], img_idx)
type_str = "Mappe" if item['type'] == "FOLDER" else "Fil" if item['type'] == "FILE" else "Bibliotek"
self.list_ctrl.SetItem(i, 1, type_str)
self.list_ctrl.SetItem(i, 2, item['modified'])
size_str = format_size(item['size']) if item['size'] is not None else ""
self.list_ctrl.SetItem(i, 2, size_str)
self.list_ctrl.SetItem(i, 3, item['modified'])
self.current_items.append(item)
self.set_status("Klar")