[add] pacman log view option

This commit is contained in:
D3V1L0N
2024-04-24 05:04:19 +05:30
committed by GitHub
parent 699bb8bf5a
commit b20bc1aea8

View File

@@ -0,0 +1,71 @@
# This class is used to create a window to monitor the pacman log file inside /var/log/pacman.log
import os
import gi
import Functions as fn
from gi.repository import Gtk, Gdk, GdkPixbuf, Pango, GLib
gi.require_version("Gtk", "3.0")
base_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
# base_dir = os.path.dirname(os.path.realpath(__file__))
class PacmanLogWindow(Gtk.Window):
def __init__(self, textview_pacmanlog, btn_pacmanlog):
Gtk.Window.__init__(self)
self.start_logtimer = True
self.textview_pacmanlog = textview_pacmanlog
self.btn_pacmanlog = btn_pacmanlog
headerbar = Gtk.HeaderBar()
headerbar.set_show_close_button(True)
self.set_titlebar(headerbar)
self.set_title("BlackBox - Pacman log file viewer")
self.set_default_size(800, 600)
self.set_resizable(True)
self.set_border_width(10)
self.set_position(Gtk.WindowPosition.CENTER_ON_PARENT)
self.set_icon_from_file(os.path.join(base_dir, "images/blackbox.png"))
self.connect("delete-event", self.on_close)
btn_pacmanlog_ok = Gtk.Button(label="OK")
btn_pacmanlog_ok.connect("clicked", self.on_response, "response")
btn_pacmanlog_ok.set_size_request(100, 30)
btn_pacmanlog_ok.set_halign(Gtk.Align.END)
pacmanlog_scrolledwindow = Gtk.ScrolledWindow()
pacmanlog_scrolledwindow.set_size_request(750, 500)
pacmanlog_scrolledwindow.add(self.textview_pacmanlog)
lbl_padding1 = Gtk.Label(xalign=0, yalign=0)
lbl_padding1.set_text("")
vbox_pacmanlog = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=0)
vbox_pacmanlog.pack_start(pacmanlog_scrolledwindow, True, True, 0)
vbox_pacmanlog.pack_start(lbl_padding1, False, False, 0)
vbox_pacmanlog.pack_start(btn_pacmanlog_ok, False, False, 0)
self.add(vbox_pacmanlog)
def on_close(self, widget, data):
fn.logger.debug("Closing pacman log monitoring window")
self.start_logtimer = False
self.btn_pacmanlog.set_sensitive(True)
self.hide()
self.destroy()
def on_response(self, widget, response):
# stop updating the textview
fn.logger.debug("Closing pacman log monitoring dialog")
self.start_logtimer = False
self.btn_pacmanlog.set_sensitive(True)
# self.remove(self)
self.hide()
self.destroy()