|
7 | 7 |
|
8 | 8 | from PySide6.QtWidgets import (QApplication, QMainWindow, QWidget, QVBoxLayout, |
9 | 9 | QHBoxLayout, QListWidget, QListWidgetItem, |
10 | | - QPushButton, QLineEdit, QSplitter, |
| 10 | + QPushButton, QLineEdit, QSplitter, QMessageBox, |
11 | 11 | QListView, QMenu, QProgressDialog) |
12 | 12 | from PySide6.QtCore import Qt, QSize |
13 | 13 | from PySide6.QtGui import QIcon, QPixmap, QShortcut, QKeySequence |
@@ -301,7 +301,7 @@ def init_ui(self): |
301 | 301 | self.fwd_btn.clicked.connect(self.go_forward) |
302 | 302 |
|
303 | 303 | self.address_bar = QLineEdit() |
304 | | - self.address_bar.setReadOnly(True) |
| 304 | + self.address_bar.returnPressed.connect(self.on_address_bar_return) |
305 | 305 |
|
306 | 306 | top_bar.addWidget(self.back_btn) |
307 | 307 | top_bar.addWidget(self.fwd_btn) |
@@ -433,6 +433,36 @@ def on_nav_clicked(self, item: QListWidgetItem): |
433 | 433 | root_type = item.data(Qt.UserRole) |
434 | 434 | self.load_root(root_type) |
435 | 435 |
|
| 436 | + def on_address_bar_return(self): |
| 437 | + if not self.gcache: |
| 438 | + QMessageBox.information(self, "Loading", "Please wait for the cache to finish loading.") |
| 439 | + return |
| 440 | + |
| 441 | + query = self.address_bar.text() |
| 442 | + if not query: |
| 443 | + return |
| 444 | + |
| 445 | + import gdrive |
| 446 | + try: |
| 447 | + # resulting_tuple is (public_folder, private_folder) |
| 448 | + resulting_tuple = gdrive.get_gfolders_for_course(query, invite_to_add=False) |
| 449 | + folder_id = resulting_tuple[1] or resulting_tuple[0] |
| 450 | + if not folder_id: |
| 451 | + return |
| 452 | + |
| 453 | + # Use gcache to get the folder's name |
| 454 | + folder_item = self.gcache.get_item(folder_id) |
| 455 | + if folder_item: |
| 456 | + folder_name = folder_item.get('name', query) |
| 457 | + else: |
| 458 | + folder_name = query |
| 459 | + |
| 460 | + self.load_folder(folder_id, folder_name) |
| 461 | + except FileNotFoundError as e: |
| 462 | + QMessageBox.warning(self, "Not Found", str(e)) |
| 463 | + except Exception as e: |
| 464 | + QMessageBox.critical(self, "Error", f"An error occurred: {e}") |
| 465 | + |
436 | 466 | def populate_files(self, items: List[Dict[str, Any]]): |
437 | 467 | if hasattr(self, 'current_cancel_flag'): |
438 | 468 | self.current_cancel_flag[0] = True |
|
0 commit comments