def run(self): (success, args) = Gtk.init_check(None) if not success: raise RuntimeError("Failed to initialize Gtk") if Gtk.main_level() > 0: # Gtk main loop running. That means python-meh caught exception # and runs its main loop. Do not crash Gtk by running another one # from a different thread and just wait until python-meh is # finished, then quit. unbusyCursor() log.error("Unhandled exception caught, waiting for python-meh to "\ "exit") while Gtk.main_level() > 0: time.sleep(2) sys.exit(0) while not self._currentAction: self._currentAction = self._instantiateAction(self._actions[0]) if not self._currentAction: self._actions.pop(0) if not self._actions: return self._currentAction.initialize() self._currentAction.entry_logger() self._currentAction.refresh() self._currentAction.window.set_beta(not self._isFinal) self._currentAction.window.set_property( "distribution", self._distributionText().upper()) # Set some program-wide settings. settings = Gtk.Settings.get_default() settings.set_property("gtk-font-name", "Cantarell") settings.set_property("gtk-icon-theme-name", "gnome") # Apply the application stylesheet provider = Gtk.CssProvider() provider.load_from_path("/usr/share/anaconda/anaconda-gtk.css") Gtk.StyleContext.add_provider_for_screen( Gdk.Screen.get_default(), provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION) self._currentAction.window.show_all() # Do this at the last possible minute. unbusyCursor() Gtk.main()
def mainExceptionWindow(self, text, exnFile, *args, **kwargs): meh_intf = meh.ui.gui.GraphicalIntf() exc_window = meh_intf.mainExceptionWindow(text, exnFile) exc_window.main_window.set_decorated(False) self._lightbox_func() ANACONDA_WINDOW_GROUP.add_window(exc_window.main_window) # the busy cursor may be set unbusyCursor() return exc_window
def mainExceptionWindow(self, text, exn_file, *args, **kwargs): meh_intf = meh.ui.gui.GraphicalIntf() exc_window = meh_intf.mainExceptionWindow(text, exn_file) exc_window.main_window.set_decorated(False) self._lightbox_func() ANACONDA_WINDOW_GROUP.add_window(exc_window.main_window) # the busy cursor may be set unbusyCursor() return exc_window
def run(self): (success, args) = Gtk.init_check(None) if not success: raise RuntimeError("Failed to initialize Gtk") if Gtk.main_level() > 0: # Gtk main loop running. That means python-meh caught exception # and runs its main loop. Do not crash Gtk by running another one # from a different thread and just wait until python-meh is # finished, then quit. unbusyCursor() log.error("Unhandled exception caught, waiting for python-meh to "\ "exit") while Gtk.main_level() > 0: time.sleep(2) sys.exit(0) while not self._currentAction: self._currentAction = self._instantiateAction(self._actions[0]) if not self._currentAction: self._actions.pop(0) if not self._actions: return self._currentAction.initialize() self._currentAction.entry_logger() self._currentAction.refresh() self._currentAction.window.set_beta(not self._isFinal) self._currentAction.window.set_property("distribution", self._distributionText().upper()) # Set some program-wide settings. settings = Gtk.Settings.get_default() settings.set_property("gtk-font-name", "Cantarell") settings.set_property("gtk-icon-theme-name", "gnome") # Apply the application stylesheet provider = Gtk.CssProvider() provider.load_from_path("/usr/share/anaconda/anaconda-gtk.css") Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(), provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION) self._currentAction.window.show_all() # Do this at the last possible minute. unbusyCursor() Gtk.main()
def mainExceptionWindow(self, text, exn_file, *args, **kwargs): meh_intf = meh.ui.gui.GraphicalIntf() exc_window = meh_intf.mainExceptionWindow(text, exn_file) exc_window.main_window.set_decorated(False) self._lightbox_func(exc_window) # without a new GtkWindowGroup, python-meh's window is insensitive if it # appears above a spoke (Gtk.Window running its own Gtk.main loop) window_group = Gtk.WindowGroup() window_group.add_window(exc_window.main_window) # the busy cursor may be set unbusyCursor() return exc_window
def run(self): (success, _args) = Gtk.init_check(None) if not success: raise RuntimeError("Failed to initialize Gtk") # Check if the GUI lock has already been taken if self._gui_lock and not self._gui_lock.acquire(False): # Gtk main loop running. That means python-meh caught exception # and runs its main loop. Do not crash Gtk by running another one # from a different thread and just wait until python-meh is # finished, then quit. unbusyCursor() log.error("Unhandled exception caught, waiting for python-meh to "\ "exit") anaconda_threading.threadMgr.wait_for_error_threads() sys.exit(1) try: # Apply a widget-scale to hidpi monitors self._widgetScale() while not self._currentAction: self._currentAction = self._instantiateAction(self._actions[0]) if not self._currentAction: self._actions.pop(0) if not self._actions: return self._currentAction.initialize() self._currentAction.refresh() self._currentAction.window.set_beta(not self._isFinal) self._currentAction.window.set_property("distribution", self._distributionText()) # Set some program-wide settings. settings = Gtk.Settings.get_default() settings.set_property("gtk-font-name", "Cantarell") # Get the path to the application data data_path = os.environ.get("ANACONDA_DATA", "/usr/share/anaconda") # Apply the application stylesheet css_path = os.path.join(data_path, "anaconda-gtk.css") provider = Gtk.CssProvider() provider.load_from_path(css_path) Gtk.StyleContext.add_provider_for_screen( Gdk.Screen.get_default(), provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION) # Add the application icons to the theme icon_path = os.path.join(data_path, "pixmaps") icon_theme = Gtk.IconTheme.get_default() icon_theme.append_search_path(icon_path) # Apply the custom stylesheet if conf.ui.custom_stylesheet: try: provider = Gtk.CssProvider() provider.load_from_path(conf.ui.custom_stylesheet) Gtk.StyleContext.add_provider_for_screen( Gdk.Screen.get_default(), provider, STYLE_PROVIDER_PRIORITY_CUSTOM) except GError as e: log.error("Custom stylesheet %s failed to load:\n%s", conf.ui.custom_stylesheet, e) # Look for updates to the stylesheet and apply them at a higher priority for updates_dir in ("updates", "product"): updates_css = "/run/install/%s/anaconda-gtk.css" % updates_dir if os.path.exists(updates_css): provider = Gtk.CssProvider() provider.load_from_path(updates_css) Gtk.StyleContext.add_provider_for_screen( Gdk.Screen.get_default(), provider, STYLE_PROVIDER_PRIORITY_UPDATES) self.mainWindow.setCurrentAction(self._currentAction) # the window corresponding to the ection should now be visible to the user self._currentAction.entered.emit(self._currentAction) # Do this at the last possible minute. unbusyCursor() # If anything went wrong before we start the Gtk main loop, release # the gui lock and re-raise the exception so that meh can take over except Exception: self._gui_lock.release() raise Gtk.main()
def run(self): (success, args) = Gtk.init_check(None) if not success: raise RuntimeError("Failed to initialize Gtk") # Check if the GUI lock has already been taken if self._gui_lock and not self._gui_lock.acquire(False): # Gtk main loop running. That means python-meh caught exception # and runs its main loop. Do not crash Gtk by running another one # from a different thread and just wait until python-meh is # finished, then quit. unbusyCursor() log.error("Unhandled exception caught, waiting for python-meh to "\ "exit") # Loop forever, meh will call sys.exit() when it's done while True: time.sleep(10000) # Apply a widget-scale to hidpi monitors self._widgetScale() while not self._currentAction: self._currentAction = self._instantiateAction(self._actions[0]) if not self._currentAction: self._actions.pop(0) if not self._actions: return self._currentAction.initialize() self._currentAction.entry_logger() self._currentAction.refresh() self._currentAction.window.set_beta(not self._isFinal) self._currentAction.window.set_property("distribution", self._distributionText().upper()) # Set some program-wide settings. settings = Gtk.Settings.get_default() settings.set_property("gtk-font-name", "Cantarell") settings.set_property("gtk-icon-theme-name", "gnome") # Apply the application stylesheet provider = Gtk.CssProvider() provider.load_from_path("/usr/share/anaconda/anaconda-gtk.css") Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(), provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION) # Look for updates to the stylesheet and apply them at a higher priority for updates_dir in ("updates", "product"): updates_css = "/run/install/%s/anaconda-gtk.css" % updates_dir if os.path.exists(updates_css): provider = Gtk.CssProvider() provider.load_from_path(updates_css) Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(), provider, STYLE_PROVIDER_PRIORITY_UPDATES) # try to make sure a logo image is present self._assureLogoImage() self.mainWindow.setCurrentAction(self._currentAction) # Do this at the last possible minute. unbusyCursor() Gtk.main()
def run(self): (success, args) = Gtk.init_check(None) if not success: raise RuntimeError("Failed to initialize Gtk") # Check if the GUI lock has already been taken if self._gui_lock and not self._gui_lock.acquire(False): # Gtk main loop running. That means python-meh caught exception # and runs its main loop. Do not crash Gtk by running another one # from a different thread and just wait until python-meh is # finished, then quit. unbusyCursor() log.error("Unhandled exception caught, waiting for python-meh to "\ "exit") threads.threadMgr.wait_for_error_threads() sys.exit(1) try: # Apply a widget-scale to hidpi monitors self._widgetScale() while not self._currentAction: self._currentAction = self._instantiateAction(self._actions[0]) if not self._currentAction: self._actions.pop(0) if not self._actions: return self._currentAction.initialize() self._currentAction.entry_logger() self._currentAction.refresh() self._currentAction.window.set_beta(not self._isFinal) self._currentAction.window.set_property("distribution", self._distributionText().upper()) # Set some program-wide settings. settings = Gtk.Settings.get_default() settings.set_property("gtk-font-name", "Cantarell") settings.set_property("gtk-icon-theme-name", "gnome") # Apply the application stylesheet provider = Gtk.CssProvider() provider.load_from_path("/usr/share/anaconda/anaconda-gtk.css") Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(), provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION) # Apply the installclass stylesheet if self.instclass.stylesheet: provider = Gtk.CssProvider() provider.load_from_path(self.instclass.stylesheet) Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(), provider, STYLE_PROVIDER_PRIORITY_INSTALLCLASS) # Look for updates to the stylesheet and apply them at a higher priority for updates_dir in ("updates", "product"): updates_css = "/run/install/%s/anaconda-gtk.css" % updates_dir if os.path.exists(updates_css): provider = Gtk.CssProvider() provider.load_from_path(updates_css) Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(), provider, STYLE_PROVIDER_PRIORITY_UPDATES) self.mainWindow.setCurrentAction(self._currentAction) # Do this at the last possible minute. unbusyCursor() # If anything went wrong before we start the Gtk main loop, release # the gui lock and re-raise the exception so that meh can take over except Exception: self._gui_lock.release() raise Gtk.main()
def run(self): (success, _args) = Gtk.init_check(None) if not success: raise RuntimeError("Failed to initialize Gtk") # Check if the GUI lock has already been taken if self._gui_lock and not self._gui_lock.acquire(False): # Gtk main loop running. That means python-meh caught exception # and runs its main loop. Do not crash Gtk by running another one # from a different thread and just wait until python-meh is # finished, then quit. unbusyCursor() log.error("Unhandled exception caught, waiting for python-meh to "\ "exit") anaconda_threading.threadMgr.wait_for_error_threads() sys.exit(1) try: # Apply a widget-scale to hidpi monitors self._widgetScale() while not self._currentAction: self._currentAction = self._instantiateAction(self._actions[0]) if not self._currentAction: self._actions.pop(0) if not self._actions: return self._currentAction.initialize() self._currentAction.refresh() self._currentAction.window.set_beta(not self._isFinal) self._currentAction.window.set_property("distribution", self._distributionText().upper()) # Set some program-wide settings. settings = Gtk.Settings.get_default() settings.set_property("gtk-font-name", "Cantarell") # Get the path to the application data data_path = os.environ.get("ANACONDA_DATA", "/usr/share/anaconda") # Apply the application stylesheet css_path = os.path.join(data_path, "anaconda-gtk.css") provider = Gtk.CssProvider() provider.load_from_path(css_path) Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(), provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION) # Add the application icons to the theme icon_path = os.path.join(data_path, "pixmaps") icon_theme = Gtk.IconTheme.get_default() icon_theme.append_search_path(icon_path) # Apply the custom stylesheet if conf.ui.custom_stylesheet: try: provider = Gtk.CssProvider() provider.load_from_path(conf.ui.custom_stylesheet) Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(), provider, STYLE_PROVIDER_PRIORITY_CUSTOM) except GError as e: log.error("Custom stylesheet %s failed to load:\n%s", conf.ui.custom_stylesheet, e) # Look for updates to the stylesheet and apply them at a higher priority for updates_dir in ("updates", "product"): updates_css = "/run/install/%s/anaconda-gtk.css" % updates_dir if os.path.exists(updates_css): provider = Gtk.CssProvider() provider.load_from_path(updates_css) Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(), provider, STYLE_PROVIDER_PRIORITY_UPDATES) self.mainWindow.setCurrentAction(self._currentAction) # the window corresponding to the ection should now be visible to the user self._currentAction.entered.emit(self._currentAction) # Do this at the last possible minute. unbusyCursor() # If anything went wrong before we start the Gtk main loop, release # the gui lock and re-raise the exception so that meh can take over except Exception: self._gui_lock.release() raise Gtk.main()