Stefan Schuermans
begin of upt-gui: processes tree view
Stefan Schuermans commited a3ed94c at 2020-05-23 20:45:22
#! /usr/bin/env python3
import cairo
import datetime
import gi
import os
import shlex
import sys
import time
gi.require_version('Gdk', '3.0')
gi.require_version('Gtk', '3.0')
from gi.repository import Gdk
from gi.repository import GLib
from gi.repository import Gtk
import uproctrace.processes
def cmdline2str(cmdline: list) -> str:
"""
Convert command line to string.
"""
if cmdline is None:
return "???"
return ' '.join([shlex.quote(s) for s in cmdline])
def timestamp2str(timestamp: float) -> str:
"""
Convert a timestamp to a human-reable time string."
"""
if timestamp is None:
return "???"
sec = int(timestamp)
nsec = int((timestamp - sec) * 1e9)
time_str = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(sec))
return time_str + f'.{nsec:09d}'
class UptGui:
def __init__(self, proto_filename):
"""
Construct the GUI.
"""
self.builder = Gtk.Builder()
script_dir = os.path.dirname(os.path.abspath(__file__))
self.builder.add_from_file(os.path.join(script_dir, 'upt-gui.glade'))
self.widProcessesTree = self.builder.get_object('ProcessesTree')
self.widProcessesView = self.builder.get_object('ProcessesView')
handlers = {'onDestroy': self.onDestroy}
self.builder.connect_signals(handlers)
# open trace file
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX