diff --git a/blackbox/blackbox.py b/blackbox/blackbox.py index afdc5f3..9e62659 100644 --- a/blackbox/blackbox.py +++ b/blackbox/blackbox.py @@ -517,4 +517,109 @@ class Main(Gtk.Window): # Basic OOPS Concept message_dialog.show_all() message_dialog.run() message_dialog.hide() - message_dialog.destroy() \ No newline at end of file + message_dialog.destroy() + + def recache_clicked(self, widget): + fn.logger.info("Recache applications - start") + fn.cache_btn() + + def on_package_search_clicked(self, widget): + fn.logger.debug("Showing Package Search window") + self.toggle_popover() + package_search_win = PackageSearchWindow() + package_search_win.show_all() + + # def on_arcolinux_iso_packages_clicked(self, widget): + # fn.logger.debug("Showing ArcoLinux ISO Packages window") + # arcolinux_iso_packages_window = ISOPackagesWindow() + # arcolinux_iso_packages_window.show() + + def on_about_app_clicked(self, widget): + fn.logger.debug("Showing About dialog") + self.toggle_popover() + about = AboutDialog() + about.run() + about.hide() + about.destroy() + + def on_packages_export_clicked(self, widget): + self.toggle_popover() + dialog_packagelist = PackageListDialog() + dialog_packagelist.show_all() + + def on_packages_import_clicked(self, widget): + self.toggle_popover() + try: + if not os.path.exists(fn.pacman_lockfile): + package_file = "%s/packages-x86_64.txt" % (fn.export_dir,) + package_import_logfile = "%spackages-install-status-%s-%s.log" % ( + fn.log_dir, + fn.datetime.today().date(), + fn.datetime.today().time().strftime("%H-%M-%S"), + ) + if os.path.exists(package_file): + # check we have a valid file + lines = None + with open(package_file, encoding="utf-8", mode="r") as f: + lines = f.readlines() + if lines is not None: + if ( + "# This file was auto-generated by the ArchLinux Tweak Tool on" + in lines[0] + or "# This file was auto-generated by Blackbox on" + in lines[0] + ): + fn.logger.info("Package list file is valid") + packages_list = [] + for line in lines: + if not line.startswith("#"): + packages_list.append(line.strip()) + + if len(packages_list) > 0: + dialog_package_import = PackagesImportDialog( + package_file, + packages_list, + package_import_logfile, + ) + dialog_package_import.show_all() + + else: + message_dialog = MessageDialog( + "Error", + "Package file is not valid %s" % package_file, + "Export a list of packages first using the Show Installed Packages button", + "", + "error", + False, + ) + + message_dialog.show_all() + message_dialog.run() + message_dialog.hide() + else: + message_dialog = MessageDialog( + "Warning", + "Cannot locate export package file %s" % package_file, + "Export a list of packages first using the Show Installed Packages button", + "", + "warning", + False, + ) + + message_dialog.show_all() + message_dialog.run() + message_dialog.hide() + else: + message_dialog = MessageDialog( + "Error", + "Pacman lock file found %s" % fn.pacman_lockfile, + "Cannot proceed, another pacman process is running", + "", + "error", + False, + ) + message_dialog.show_all() + message_dialog.run() + message_dialog.hide() + except Exception as e: + fn.logger.error("Exception in on_packages_import_clicked(): %s" % e) \ No newline at end of file