def set_application_info(app): """Call after init() and before creating any windows to apply default values for names and icons. """ from quodlibet._init import is_init assert is_init() from gi.repository import Gtk, GLib assert app.process_name set_process_title(app.process_name) # Issue 736 - set after main loop has started (gtk seems to reset it) GLib.idle_add(set_process_title, app.process_name) assert app.id # https://honk.sigxcpu.org/con/GTK__and_the_application_id.html GLib.set_prgname(app.id) assert app.name GLib.set_application_name(app.name) assert app.icon_name theme = Gtk.IconTheme.get_default() assert theme.has_icon(app.icon_name) Gtk.Window.set_default_icon_name(app.icon_name)
def run(window, before_quit=None): print_d("Entering quodlibet.main") from gi.repository import Gtk, Gdk from quodlibet._init import is_init assert is_init() def quit_gtk(window): if before_quit is not None: before_quit() # disable plugins import quodlibet.plugins quodlibet.plugins.quit() # for debug: this will list active copools from quodlibet.util import copool copool.pause_all() # See which browser windows are open and save their names # so we can restore them on start from quodlibet.qltk.browser import LibraryBrowser LibraryBrowser.save() # destroy all open windows so they hide immediately on close: # destroying all top level windows doesn't work (weird errors), # so we hide them all and only destroy our tracked instances # (browser windows, tag editors, pref window etc.) from quodlibet.qltk import Window for toplevel in Gtk.Window.list_toplevels(): toplevel.hide() for window in Window.windows: window.destroy() Gtk.main_quit() print_d("Quit GTK: done.") window.connect('destroy', quit_gtk) if sys.platform == "darwin": _main_setup_osx(window) if not window.show_maybe(): # if we don't show a window, startup isn't completed, so call manually Gdk.notify_startup_complete() # set QUODLIBET_START_PERF to measure startup time until the # windows is first shown. if "QUODLIBET_START_PERF" in environ: window.connect("draw", Gtk.main_quit) Gtk.main() sys.exit() else: Gtk.main() print_d("Gtk.main() done.")
def main(window, before_quit=None): print_d("Entering quodlibet.main") from gi.repository import Gtk, Gdk from quodlibet._init import is_init assert is_init() def quit_gtk(window): if before_quit is not None: before_quit() # disable plugins import quodlibet.plugins quodlibet.plugins.quit() # for debug: this will list active copools from quodlibet.util import copool copool.pause_all() # See which browser windows are open and save their names # so we can restore them on start from quodlibet.qltk.browser import LibraryBrowser LibraryBrowser.save() # destroy all open windows so they hide immediately on close: # destroying all top level windows doesn't work (weird errors), # so we hide them all and only destroy our tracked instances # (browser windows, tag editors, pref window etc.) from quodlibet.qltk import Window for toplevel in Gtk.Window.list_toplevels(): toplevel.hide() for window in Window.windows: window.destroy() Gtk.main_quit() print_d("Quit GTK: done.") window.connect('destroy', quit_gtk) if sys.platform == "darwin": _main_setup_osx(window) if not window.show_maybe(): # if we don't show a window, startup isn't completed, so call manually Gdk.notify_startup_complete() # set QUODLIBET_START_PERF to measure startup time until the # windows is first shown. if "QUODLIBET_START_PERF" in os.environ: window.connect("draw", Gtk.main_quit) Gtk.main() sys.exit() else: Gtk.main() print_d("Gtk.main() done.")
def set_application_info(icon_name, process_title, app_name): """Call after init() and before creating any windows to apply default values for names and icons. """ from quodlibet._init import is_init assert is_init() from gi.repository import Gtk, GLib set_process_title(process_title) # Issue 736 - set after main loop has started (gtk seems to reset it) GLib.idle_add(set_process_title, process_title) GLib.set_prgname(process_title) GLib.set_application_name(app_name) theme = Gtk.IconTheme.get_default() assert theme.has_icon(icon_name) Gtk.Window.set_default_icon_name(icon_name)