From 38f0d76b08b9b1cd9c7780ee4ac1d41d96ad5f3e Mon Sep 17 00:00:00 2001 From: "shimniok@gmail.com" Date: Mon, 27 Oct 2014 16:12:19 -0600 Subject: [PATCH] Wired up recent and examples to actually open files. --- usr/qt4-ide.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/usr/qt4-ide.py b/usr/qt4-ide.py index d045201e4..81bddedcd 100755 --- a/usr/qt4-ide.py +++ b/usr/qt4-ide.py @@ -184,9 +184,15 @@ class OpenMVIDE(QMainWindow): file_menu.addMenu(self.recent_menu) file_menu.addSeparator() file_menu.addAction(self.exit_action) + + # Dynamically update dyanmic menus file_menu.aboutToShow.connect(self.update_example_menu) file_menu.aboutToShow.connect(self.update_recent_menu) + # Connect dynamic menu items with correct handlers + self.example_menu.triggered.connect(self.do_open_example) + self.recent_menu.triggered.connect(self.do_open_recent) + self.default_height = 600 self.default_width = 800 @@ -433,7 +439,9 @@ class OpenMVIDE(QMainWindow): files = sorted(os.listdir(self.example_dir)) for f in files: if f.endswith(".py"): - self.example_menu.addAction(QAction(f, self)) + action = QAction(f, self) + self.example_menu.addAction(action) + #label = os.path.basename(f) def update_recent_menu(self): @@ -443,6 +451,14 @@ class OpenMVIDE(QMainWindow): print(f) self.recent_menu.addAction(QAction(f, self)) + def do_open_example(self, action): + assert isinstance(action, QAction) + self.open_file(self.example_dir + action.text()) + + def do_open_recent(self, action): + assert isinstance(action, QAction) + self.open_file(action.text()) + def do_open(self): # TODO: Check for save-as first if os.path.exists(self.script_dir): @@ -454,6 +470,9 @@ class OpenMVIDE(QMainWindow): caption=self.tr('Open Micro Python Script'), directory=my_dir, filter=self.tr("Python scripts (*.py)")) + self.open_file(filename) + + def open_file(self, filename): if filename: try: infile = open(filename, 'r')