Skip to content

Commit 3db140d

Browse files
Can open a projet in recent menu
1 parent 18c7bc8 commit 3db140d

File tree

1 file changed

+24
-6
lines changed

1 file changed

+24
-6
lines changed

gui.py

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -165,10 +165,22 @@ def add_recent_project(self, path: Path) -> None:
165165
self.save_key("opened_recent", [str(p) for p in recent_projects])
166166
self.update_recent_projects()
167167

168-
def open_project(self) -> None:
168+
def open_project(self, path: Path) -> None:
169169
"""
170170
Open a project.
171171
172+
:param path: The path to the .cpypmconfig file.
173+
:return: None.
174+
"""
175+
logger.debug(f"Opening project at path {repr(path)}")
176+
self.cpypmconfig_path = path
177+
self.update_main_gui()
178+
self.add_recent_project(path)
179+
180+
def open_project_dialog(self) -> None:
181+
"""
182+
Open a project with a dialog to select a file.
183+
172184
:return: None.
173185
"""
174186
logger.debug("Opening project...")
@@ -180,9 +192,7 @@ def open_project(self) -> None:
180192
if path:
181193
path = Path(path)
182194
logger.debug(f"Returned valid path! Path is {repr(path)}")
183-
self.cpypmconfig_path = path
184-
self.update_main_gui()
185-
self.add_recent_project(path)
195+
self.open_project(path)
186196
else:
187197
logger.debug("User canceled opening project!")
188198

@@ -429,8 +439,16 @@ def update_recent_projects(self) -> None:
429439
if self.recent_projects is None:
430440
self.recent_projects = []
431441
self.recent_projects = [Path(p) for p in self.recent_projects]
442+
temp = []
443+
for path in self.recent_projects:
444+
temp.append(path)
445+
self.recent_projects = []
446+
for path in temp:
447+
if path.exists():
448+
self.recent_projects.append(path)
432449
for path in self.recent_projects:
433-
self.opened_recent_menu.add_command(label=str(path), command=None)
450+
# TODO: Fix opening last one
451+
self.opened_recent_menu.add_command(label=str(path), command=lambda: self.open_project(path))
434452
if len(self.recent_projects) == 0:
435453
self.opened_recent_menu.add_command(label="No recent projects!", state=tk.DISABLED)
436454

@@ -443,7 +461,7 @@ def create_file_menu(self) -> None:
443461
self.file_menu = tk.Menu(self.menu_bar)
444462
self.menu_bar.add_cascade(menu=self.file_menu, label="File", underline=0)
445463
self.file_menu.add_command(label="New...", command=self.open_create_new_project, underline=0)
446-
self.file_menu.add_command(label="Open...", command=self.open_project, underline=0)
464+
self.file_menu.add_command(label="Open...", command=self.open_project_dialog, underline=0)
447465
# TODO: Add open recent
448466
self.opened_recent_menu = tk.Menu(self.file_menu)
449467
self.file_menu.add_cascade(label="Open recent", menu=self.opened_recent_menu, underline=5)

0 commit comments

Comments
 (0)