From 4df8c2ca0bcb7da5501c6a62463fd3d69a0f2c6c Mon Sep 17 00:00:00 2001 From: Marko Mecina <marko.mecina@univie.ac.at> Date: Wed, 25 May 2022 17:59:53 +0200 Subject: [PATCH] don't detach CCS Editor from terminal when launched via start_ccs --- Ccs/ccs_function_lib.py | 22 +++++++++++++++------- Ccs/editor.py | 40 ++++------------------------------------ start_ccs | 4 ++-- 3 files changed, 21 insertions(+), 45 deletions(-) diff --git a/Ccs/ccs_function_lib.py b/Ccs/ccs_function_lib.py index 38fdff7..d8aaca8 100644 --- a/Ccs/ccs_function_lib.py +++ b/Ccs/ccs_function_lib.py @@ -62,6 +62,12 @@ crc = crcmod.predefined.mkCrcFun(crctype) # Set up logger logger = logging.getLogger('CFL') +LOGLEVEL_DICT = {'DEBUG': logging.DEBUG, + 'INFO': logging.INFO, + 'WARNING': logging.WARNING, + 'ERROR': logging.ERROR, + 'CRITICAL': logging.CRITICAL} + counters = {} pid_offset = int(cfg.get('ccs-misc', 'pid_offset')) @@ -184,7 +190,13 @@ def start_editor(console=True, *args): directory = confignator.get_option('paths', 'ccs') file_path = os.path.join(directory, 'editor.py') - start_app(console, file_path, directory, *args) + + if '--terminal' in args: + args = list(args) + args.remove('--terminal') + os.system(' '.join(['python3', file_path, *args])) + else: + start_app(console, file_path, directory, *args) return @@ -258,16 +270,12 @@ def start_config_editor(console=False, *args): # The logger is returned with the given name an can be used like a normal logger def start_logging(name): level = cfg.get('ccs-logging', 'level') - loglevel_dict = {'DEBUG': logging.DEBUG, - 'INFO': logging.INFO, - 'WARNING': logging.WARNING, - 'ERROR': logging.ERROR, - 'CRITICAL': logging.CRITICAL} - loglevel = loglevel_dict[level] + loglevel = LOGLEVEL_DICT[level] rootLogger = logging.getLogger('') rootLogger.setLevel(loglevel) socketHandler = logging.handlers.SocketHandler('localhost', logging.handlers.DEFAULT_TCP_LOGGING_PORT) + # don't bother with a formatter, since a socket handler sends the event as an unformatted pickle rootLogger.addHandler(socketHandler) log = logging.getLogger(name) diff --git a/Ccs/editor.py b/Ccs/editor.py index d266011..2a30204 100644 --- a/Ccs/editor.py +++ b/Ccs/editor.py @@ -153,13 +153,7 @@ class CcsEditor(Gtk.Window): self.cfg = confignator.get_config(file_path=confignator.get_option('config-files', 'ccs')) self.cfg.source = confignator.get_option('config-files', 'ccs') - # try: - # with open('.pickledcfg', 'wb') as fdesc: - # pickle.dump(self.cfg, fdesc) - # except Exception as e: - # pass - # finally: - # fdesc.close() + self.logdir = confignator.get_option('ccs-paths', 'log-file-dir') self.paned = Gtk.Paned(orientation=Gtk.Orientation.VERTICAL) self.paned.set_wide_handle(True) @@ -179,25 +173,7 @@ class CcsEditor(Gtk.Window): self.searchbar = self.create_searchbar() self.grid.attach(self.searchbar, 0, 2, 3, 1) - ''' - """ logo """ - box = Gtk.HBox() - button = Gtk.ToolButton() - button.set_icon_name("system-search-symbolic") - size = button.get_icon_size() - t, h, w = Gtk.IconSize.lookup(size) - # icons are half the size of button (usually) - pixmap_path = os.path.join(pixmap_folder, 'UVIE_Logo_48.png') - logo = GdkPixbuf.Pixbuf.new_from_file_at_size(pixmap_path, -1, w * 2) - img = Gtk.Image.new_from_pixbuf(logo) - box.pack_end(img, False, False, 0) - - pixmap_path = os.path.join(pixmap_folder, 'IfA_Logo_48.png') - logo = GdkPixbuf.Pixbuf.new_from_file_at_size(pixmap_path, -1, w * 2) - img = Gtk.Image.new_from_pixbuf(logo) - box.pack_end(img, False, False, 0) - self.grid.attach(box, 2, 1, 1, 1) - ''' + self.univie_box = self.create_univie_box() self.grid.attach(self.univie_box, 2, 1, 1, 1) @@ -207,10 +183,6 @@ class CcsEditor(Gtk.Window): self.editor_notebook = Gtk.Notebook(scrollable=True) self.grid.attach(self.editor_notebook, 0, 3, 3, 1) - # scrolledwindow = Gtk.ScrolledWindow() - # scrolledwindow.set_overlay_scrolling(False) - # scrolledwindow.add(self.ipython_view) - self.clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD) # self.connect('size-allocate', self.paned_check_resize) @@ -221,12 +193,7 @@ class CcsEditor(Gtk.Window): self.logwin, self.logwintext, self.logbuffer = self.create_log_window() - # self._share_variables(**{'cfg': self.cfg}) - - # self.ipython_view = ipython_view.IPythonView() - # self.ipython_view.updateNamespace(globals()) self.ipython_view = IPythonTerminal(scrollback_lines=int(self.cfg.get('ccs-editor', 'scrollback_lines'))) - # self.ipython_view.connect('commit', self.ipy_commit) self.feed_ready = True self.nb.append_page(self.ipython_view, tab_label=Gtk.Label(label='Console', angle=270)) @@ -1786,7 +1753,7 @@ class CcsEditor(Gtk.Window): def switch_notebook_page(self, logwin, view, buffer): - filelist = glob.glob("logs/*.log") + filelist = glob.glob(os.path.join(self.logdir, '*.log')) filelist.sort(reverse=True) file = open(filelist[0], 'r') file = file.read() @@ -1854,6 +1821,7 @@ class ActionWindow(Gtk.Window): self.add(grid) self.show_all() + if __name__ == "__main__": given_cfg = None for i in sys.argv: diff --git a/start_ccs b/start_ccs index a43fed3..2198ed4 100755 --- a/start_ccs +++ b/start_ccs @@ -8,8 +8,8 @@ import ccs_function_lib as cfl if __name__ == '__main__': - files_to_open = () + files_to_open = [] # os.path.join(confignator.get_option('paths', 'tst'), 'prep_test_env.py'), # os.path.join(confignator.get_option('paths', 'obsw'), 'send_TC.py') - cfl.start_editor(False, *files_to_open) + cfl.start_editor(False, *files_to_open, '--terminal') -- GitLab