mirror of
https://github.com/Snigdha-OS/snigdhaos-blackbox.git
synced 2025-09-21 12:05:02 +02:00
⏳ @eshanized updated the repository!!!
This commit is contained in:
@@ -14,7 +14,7 @@ from datetime import datetime
|
|||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
from datetime import time
|
from datetime import time
|
||||||
import shutil
|
import shutil
|
||||||
|
import Functions as fn
|
||||||
|
|
||||||
from Settings import Settings
|
from Settings import Settings
|
||||||
from Package import Package
|
from Package import Package
|
||||||
@@ -372,8 +372,143 @@ def refresh_ui(
|
|||||||
if content is not None:
|
if content is not None:
|
||||||
for widget in content.get_children():
|
for widget in content.get_children():
|
||||||
content.remove(widget)
|
content.remove(widget)
|
||||||
|
# DOCS: https://docs.gtk.org/gtk3/class.Label.html
|
||||||
|
lbl_install = Gtk.Label(xalign=0, yalign=0)
|
||||||
|
# DOCS: https://stackoverflow.com/questions/40072104/multi-color-text-in-one-gtk-label
|
||||||
|
lbl_install.set_markup(
|
||||||
|
"<b>Package %s installed.</b>" % pkg.name
|
||||||
|
)
|
||||||
|
content.add(lbl_install)
|
||||||
|
if self.timeout_id is not None:
|
||||||
|
# DOCS: https://gtk-rs.org/gtk-rs-core/stable/0.14/docs/glib/source/fn.source_remove.html
|
||||||
|
GLib.source_remove(self.timeout_id)
|
||||||
|
self.timeout_id = None
|
||||||
|
self.timeout_id = GLib.timeout_add(
|
||||||
|
100,
|
||||||
|
reveal_infobar,
|
||||||
|
self,
|
||||||
|
progress_dialog,
|
||||||
|
)
|
||||||
|
if installed is False and action == "install":
|
||||||
|
logger.debug("Toggle switch state = False")
|
||||||
|
if progress_dialog is not None:
|
||||||
|
switch.set_sensitive(True)
|
||||||
|
switch.set_state(False)
|
||||||
|
switch.set_active(False)
|
||||||
|
if progress_dialog.pkg_dialog_closed is False:
|
||||||
|
progress_dialog.set_title("%s install failed" % pkg.name)
|
||||||
|
progress_dialog.infobar.set_name("infobar_error")
|
||||||
|
content = progress_dialog.infobar.get_content_area()
|
||||||
|
if content is not None:
|
||||||
|
for widget in content.get_children():
|
||||||
|
content.remove(widget)
|
||||||
|
lbl_install = Gtk.Label(xalign=0, yalign=0)
|
||||||
|
lbl_install.set_markup(
|
||||||
|
"<b>Package %s installed failed.</b>" % pkg.name
|
||||||
|
)
|
||||||
|
content.add(lbl_install)
|
||||||
|
if self.timeout_id is not None:
|
||||||
|
# DOCS: https://gtk-rs.org/gtk-rs-core/stable/0.14/docs/glib/source/fn.source_remove.html
|
||||||
|
GLib.source_remove(self.timeout_id)
|
||||||
|
self.timeout_id = None
|
||||||
|
self.timeout_id = GLib.timeout_add(
|
||||||
|
100,
|
||||||
|
reveal_infobar,
|
||||||
|
self,
|
||||||
|
progress_dialog,
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
logger.debug(" ".join(process_stdout_lst))
|
||||||
|
message_dialog = MessageDialog(
|
||||||
|
"Errors occured suring installation",
|
||||||
|
"Errors occured during installation of %s failed" % pkg.name,
|
||||||
|
"Pacman failed to install %s" %pkg.name,
|
||||||
|
" ".join(process_stdout_lst),
|
||||||
|
"error",
|
||||||
|
True,
|
||||||
|
)
|
||||||
|
message_dialog.show_all()
|
||||||
|
result = message_dialog.run()
|
||||||
|
message_dialog.destroy()
|
||||||
|
elif progress_dialog is None or progress_dialog.pkg_dialog_closed is True:
|
||||||
|
# DOCS: https://bbs.archlinux.org/viewtopic.php?id=48234
|
||||||
|
if (
|
||||||
|
"error: failed to init transaction (unable to lock database)\n" in process_stdout_lst
|
||||||
|
):
|
||||||
|
if progress_dialog is None:
|
||||||
|
logger.debug("Holding Package")
|
||||||
|
if self.display_package_progress is False:
|
||||||
|
inst_str = [
|
||||||
|
"pacman",
|
||||||
|
"-S",
|
||||||
|
pkg.name,
|
||||||
|
"--needed",
|
||||||
|
"--noconfirm",
|
||||||
|
]
|
||||||
|
self.pkg_holding_queue.put(
|
||||||
|
(
|
||||||
|
pkg,
|
||||||
|
action,
|
||||||
|
switch,
|
||||||
|
inst_str,
|
||||||
|
progress_dialog,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
logger.debug(" ".join(process_stdout_lst))
|
||||||
|
switch.set_sensitive(True)
|
||||||
|
switch.set_state(False)
|
||||||
|
switch.set_active(False)
|
||||||
|
proc = fn.get_pacman_process()
|
||||||
|
message_dialog = MessageDialog(
|
||||||
|
"Warning",
|
||||||
|
"Unable to proceed, pacman lock found!",
|
||||||
|
"Pacman is unable to lock the database inside: %s" % fn.pacman_lockfile,
|
||||||
|
"Pacman is processing: %s" % proc,
|
||||||
|
"warning",
|
||||||
|
False,
|
||||||
|
)
|
||||||
|
message_dialog.show_all()
|
||||||
|
result = message_dialog.run()
|
||||||
|
message_dialog.destroy()
|
||||||
|
elif "error: traget not found: %s\n" %pkg.name in process_stdout_lst:
|
||||||
|
switch.set_sensitive(True)
|
||||||
|
switch.set_state(False)
|
||||||
|
switch.set_active(False)
|
||||||
|
message_dialog = MessageDialog(
|
||||||
|
"Error",
|
||||||
|
"%s not found!" % pkg.name,
|
||||||
|
"Blackbox unable to process the request!",
|
||||||
|
"Are you sure pacman config is correct?",
|
||||||
|
"error",
|
||||||
|
False,
|
||||||
|
)
|
||||||
|
message_dialog.show_all()
|
||||||
|
result = message_dialog.run()
|
||||||
|
message_dialog.destroy()
|
||||||
|
else:
|
||||||
|
switch.set_sensitive(True)
|
||||||
|
switch.set_state(False)
|
||||||
|
switch.set_active(False)
|
||||||
|
message_dialog = MessageDialog(
|
||||||
|
"Errors occured",
|
||||||
|
"Errors occured during installation of %s failed" % pkg.name,
|
||||||
|
"Pacman failed to install %s\n" %pkg.name,
|
||||||
|
" ".join(process_stdout_lst),
|
||||||
|
"error",
|
||||||
|
True,
|
||||||
|
)
|
||||||
|
message_dialog.show_all()
|
||||||
|
result = message_dialog.run()
|
||||||
|
message_dialog.destroy()
|
||||||
|
def reveal_infobar(
|
||||||
|
self,
|
||||||
|
progress_dialog,
|
||||||
|
):
|
||||||
|
progress_dialog.infobar.set_revealed(True)
|
||||||
|
progress_dialog.infobar.show_all()
|
||||||
|
GLib.source_remove(self.timeout_id)
|
||||||
|
self.timeout_id = None
|
||||||
|
|
||||||
def update_progress_textview(
|
def update_progress_textview(
|
||||||
self,
|
self,
|
||||||
|
@@ -691,7 +691,7 @@ def setup_headerbar(self, Gtk, settings):
|
|||||||
vbox_buttons.pack_start(self.modelbtn_pacmanlog, False, True, 0)
|
vbox_buttons.pack_start(self.modelbtn_pacmanlog, False, True, 0)
|
||||||
vbox_buttons.pack_start(modelbtn_packages_export, False, True, 0)
|
vbox_buttons.pack_start(modelbtn_packages_export, False, True, 0)
|
||||||
vbox_buttons.pack_start(modelbtn_packages_import, False, True, 0)
|
vbox_buttons.pack_start(modelbtn_packages_import, False, True, 0)
|
||||||
vbox_buttons.pack_start(modelbtn_iso_packages_list, False, True, 0)
|
# vbox_buttons.pack_start(modelbtn_iso_packages_list, False, True, 0)
|
||||||
vbox_buttons.pack_start(modelbtn_package_search, False, True, 0)
|
vbox_buttons.pack_start(modelbtn_package_search, False, True, 0)
|
||||||
vbox_buttons.pack_start(modelbtn_about_app, False, True, 0)
|
vbox_buttons.pack_start(modelbtn_about_app, False, True, 0)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user