From dfbef3655833ba12b300ad63c7219e83f386ca19 Mon Sep 17 00:00:00 2001 From: Martin Tranberg Date: Tue, 31 Mar 2026 10:45:29 +0200 Subject: [PATCH] feat: add file size column and formatting helper to list view --- sharepoint_browser.py | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/sharepoint_browser.py b/sharepoint_browser.py index c219aad..d247847 100644 --- a/sharepoint_browser.py +++ b/sharepoint_browser.py @@ -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")