##// END OF EJS Templates
Eliminate main window logic from MagicHelper....
Dimitry Kloper -
Show More
@@ -25,6 +25,7 b' class MagicHelper(QtGui.QDockWidget):'
25
25
26 pasteRequested = QtCore.pyqtSignal(str, name = 'pasteRequested')
26 pasteRequested = QtCore.pyqtSignal(str, name = 'pasteRequested')
27 runRequested = QtCore.pyqtSignal(str, name = 'runRequested')
27 runRequested = QtCore.pyqtSignal(str, name = 'runRequested')
28 readyForUpdate = QtCore.pyqtSignal(name = 'readyForUpdate')
28
29
29 #---------------------------------------------------------------------------
30 #---------------------------------------------------------------------------
30 # 'object' interface
31 # 'object' interface
@@ -34,11 +35,6 b' class MagicHelper(QtGui.QDockWidget):'
34
35
35 super(MagicHelper, self).__init__(name, parent)
36 super(MagicHelper, self).__init__(name, parent)
36
37
37 # this is a hack. The main_window reference will be used for
38 # explicit interface to kernel that must be hidden by signal/slot
39 # mechanism in the future
40 self.main_window = parent
41
42 self.data = None
38 self.data = None
43
39
44 class MinListWidget(QtGui.QListWidget):
40 class MinListWidget(QtGui.QListWidget):
@@ -94,21 +90,9 b' class MagicHelper(QtGui.QDockWidget):'
94 self.data = {}
90 self.data = {}
95 self.search_class.clear()
91 self.search_class.clear()
96 self.search_class.addItem("Populating...")
92 self.search_class.addItem("Populating...")
97 self.main_window.active_frontend._silent_exec_callback(
93 self.readyForUpdate.emit()
98 'get_ipython().magic("lsmagic")',
99 self.populate_magic_helper
100 )
101
94
102 def populate_magic_helper(self, data):
95 def populate_magic_helper(self, data):
103 if not data:
104 return
105
106 if data['status'] != 'ok':
107 self.main_window.log.warn(
108 "%%lsmagic user-expression failed: {}".format(data)
109 )
110 return
111
112 self.search_class.clear()
96 self.search_class.clear()
113 self.search_list.clear()
97 self.search_list.clear()
114
98
@@ -713,6 +713,9 b' class MainWindow(QtGui.QMainWindow):'
713 self.magic_helper.runRequested[str].connect(
713 self.magic_helper.runRequested[str].connect(
714 self.magic_helper_run_requested
714 self.magic_helper_run_requested
715 )
715 )
716 self.magic_helper.readyForUpdate.connect(
717 self.magic_helper_update_requested
718 )
716
719
717 self.addDockWidget(QtCore.Qt.RightDockWidgetArea, self.magic_helper)
720 self.addDockWidget(QtCore.Qt.RightDockWidgetArea, self.magic_helper)
718
721
@@ -732,7 +735,22 b' class MainWindow(QtGui.QMainWindow):'
732 self.active_frontend.execute(text)
735 self.active_frontend.execute(text)
733 self._set_active_frontend_focus()
736 self._set_active_frontend_focus()
734
737
738 def magic_helper_update_requested(self):
739 def _handle_data(data):
740 if not data:
741 return
742
743 if data['status'] != 'ok':
744 self.log.warn(
745 "%%lsmagic user-expression failed: {}".format(data)
746 )
747 return
748 self.magic_helper.populate_magic_helper(data)
735
749
750 self.active_frontend._silent_exec_callback(
751 'get_ipython().magic("lsmagic")',
752 _handle_data
753 )
736
754
737 # minimize/maximize/fullscreen actions:
755 # minimize/maximize/fullscreen actions:
738
756
General Comments 0
You need to be logged in to leave comments. Login now