diff --git a/sharepoint_browser.py b/sharepoint_browser.py index 9910080..fe0206f 100644 --- a/sharepoint_browser.py +++ b/sharepoint_browser.py @@ -1078,24 +1078,21 @@ class SharePointApp(wx.Frame): if idx < 0 or idx >= len(self.favorites): return fav = self.favorites[idx] - self.current_path = fav['path'] - self.update_path_display() - - # Navigate to contents + # Opret navigations-data fra favoritten data = { "type": fav['type'], "id": fav['id'], + "name": fav['name'], "drive_id": fav['drive_id'], - "path": fav['path'] + "path": fav['path'], + "web_url": fav.get('web_url') } - if fav['type'] == "SITE": self.current_site_id = fav['id'] - elif fav['drive_id']: self.current_drive_id = fav['drive_id'] + # Vis indholdet og opdater stien + self._navigate_to_item_data(data) - self.list_ctrl.DeleteAllItems() - self.current_items = [] - self.set_status(self.get_txt("status_loading_content")) - threading.Thread(target=self._fetch_list_contents_bg, args=(data,), daemon=True).start() + # Forsøg at synkronisere træet asynkront + wx.CallAfter(self._sync_tree_selection_by_path, fav['path']) def on_favorite_right_click(self, event): idx = self.fav_list.GetFirstSelected() @@ -1503,12 +1500,20 @@ class SharePointApp(wx.Frame): threading.Thread(target=self._fetch_tree_children_bg, args=(selected, data), daemon=True).start() def _refresh_current_view(self): + # 1. Prøv at bruge den aktuelle navigationskontekst (pålideligt ved Favorites/Breadcrumbs) + if hasattr(self, 'current_path_data') and self.current_path_data: + data = self.current_path_data[-1] + self.set_status(f"Opdaterer '{data['name']}'...") + threading.Thread(target=self._fetch_list_contents_bg, args=(data,), daemon=True).start() + return + + # 2. Fallback til Træ-kontrol markering sel = self.tree_ctrl.GetSelection() if sel.IsOk(): data = self.tree_item_data.get(sel) if data: - # Kør i nuværende baggrundstråd hvis muligt, ellers ny - self._fetch_list_contents_bg(data) + self.set_status(f"Opdaterer '{data['name']}'...") + threading.Thread(target=self._fetch_list_contents_bg, args=(data,), daemon=True).start() def clear_main(self): self.list_ctrl.DeleteAllItems()