11import sys
22import os
33import subprocess
4+ import webbrowser
45from typing import List , Dict , Any , Optional
56from dataclasses import dataclass
67
@@ -387,12 +388,16 @@ def on_item_activated(self, item: QListWidgetItem):
387388 self .load_folder (file_data ['id' ], file_data ['name' ], clicked_item_id = file_data ['id' ])
388389 elif mime == 'application/vnd.google-apps.shortcut' :
389390 if file_data ['shortcutDetails' ]['targetMimeType' ] == 'application/vnd.google-apps.folder' :
390- target_folder = gcache . get_item ( file_data ['shortcutDetails' ]['targetId' ])
391+ folder_id = file_data ['shortcutDetails' ]['targetId' ]
391392 target_file = None
392393 else :
393394 target_file = gcache .get_item (file_data ['shortcutDetails' ]['targetId' ])
394- target_folder = gcache . get_item ( target_file ['parent_id' ])
395+ folder_id = target_file ['parent_id' ]
395396 target_file = target_file ['id' ]
397+ target_folder = gcache .get_item (folder_id )
398+ if not target_folder :
399+ url = gdrive_base .FOLDER_LINK .format (folder_id )
400+ webbrowser .open (url )
396401 self .load_folder (target_folder ['id' ], target_folder ['name' ], highlight_fileid = target_file , clicked_item_id = file_data ['id' ])
397402 else :
398403 self .open_file (file_data )
@@ -410,10 +415,8 @@ def open_file(self, file_data: Dict[str, Any]):
410415 else :
411416 os .startfile (str (cache_path ))
412417 else :
413- # Placeholder for download
414- from PySide6 .QtWidgets import QMessageBox
415- QMessageBox .information (self , "Not in Cache" ,
416- f"'{ file_data .get ('name' )} ' is not downloaded yet.\n Downloading will be implemented later." )
418+ url = gdrive_base .GENERIC_LINK_PREFIX + file_data ['id' ]
419+ webbrowser .open (url )
417420
418421 def keyPressEvent (self , event ):
419422 if event .key () == Qt .Key_Backspace :
0 commit comments