gui: move most of the tuhi-gui startup script to application.py
Add a new main() there so we have a single entry point for the gui instead of a complex script that needs to be called. That start up script should really just be the minimum bits possible. It's still not perfect because we won't work without the gresources and they require that the pkgdatadir is set. But at least it moves all the logic out of the startup script. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
bb9f9b6c26
commit
1dc1acaba3
58
tuhi-gui.in
58
tuhi-gui.in
|
@ -13,8 +13,7 @@ except ValueError as e:
|
|||
sys.exit(1)
|
||||
|
||||
gi.require_version('Gio', '2.0') # NOQA
|
||||
gi.require_version('Gtk', '3.0') # NOQA
|
||||
from gi.repository import Gio, Gtk, Gdk
|
||||
from gi.repository import Gio
|
||||
|
||||
|
||||
@devel@ # NOQA
|
||||
|
@ -22,61 +21,12 @@ resource = Gio.resource_load(os.fspath(Path('@pkgdatadir@', 'tuhi.gresource')))
|
|||
Gio.Resource._register(resource)
|
||||
|
||||
|
||||
def install_excepthook():
|
||||
old_hook = sys.excepthook
|
||||
|
||||
def new_hook(etype, evalue, etb):
|
||||
old_hook(etype, evalue, etb)
|
||||
while Gtk.main_level():
|
||||
Gtk.main_quit()
|
||||
sys.exit()
|
||||
sys.excepthook = new_hook
|
||||
|
||||
|
||||
def gtk_style():
|
||||
css = b"""
|
||||
flowboxchild:selected {
|
||||
background-color: white;
|
||||
}
|
||||
.bg-white {
|
||||
background-color: white;
|
||||
}
|
||||
.bg-paper {
|
||||
border-radius: 5px;
|
||||
background-color: #ebe9e8;
|
||||
}
|
||||
.drawing {
|
||||
background-color: white;
|
||||
border-radius: 5px;
|
||||
}
|
||||
"""
|
||||
|
||||
screen = Gdk.Screen.get_default()
|
||||
if screen is None:
|
||||
print('Error: Unable to connect to screen. Make sure DISPLAY or WAYLAND_DISPLAY are set', file=sys.stderr)
|
||||
sys.exit(1)
|
||||
style_provider = Gtk.CssProvider()
|
||||
style_provider.load_from_data(css)
|
||||
Gtk.StyleContext.add_provider_for_screen(
|
||||
screen,
|
||||
style_provider,
|
||||
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
import gettext
|
||||
import locale
|
||||
import signal
|
||||
from tuhi.gui.application import Application
|
||||
|
||||
install_excepthook()
|
||||
gtk_style()
|
||||
|
||||
locale.bindtextdomain('tuhi', '@localedir@')
|
||||
locale.textdomain('tuhi')
|
||||
gettext.bindtextdomain('tuhi', '@localedir@')
|
||||
gettext.textdomain('tuhi')
|
||||
signal.signal(signal.SIGINT, signal.SIG_DFL)
|
||||
exit_status = Application().run(sys.argv)
|
||||
sys.exit(exit_status)
|
||||
|
||||
from tuhi.gui.application import main
|
||||
main(sys.argv)
|
||||
|
|
|
@ -11,18 +11,17 @@
|
|||
# GNU General Public License for more details.
|
||||
#
|
||||
|
||||
from gi.repository import Gio, GLib, Gtk
|
||||
import logging
|
||||
|
||||
from .window import MainWindow
|
||||
from .config import Config
|
||||
import xdg.BaseDirectory
|
||||
from pathlib import Path
|
||||
|
||||
import logging
|
||||
import sys
|
||||
import xdg.BaseDirectory
|
||||
import gi
|
||||
gi.require_version("Gio", "2.0")
|
||||
gi.require_version("Gtk", "3.0")
|
||||
|
||||
from gi.repository import Gio, GLib, Gtk, Gdk # NOQA
|
||||
|
||||
logging.basicConfig(format='%(asctime)s %(levelname)s: %(name)s: %(message)s',
|
||||
level=logging.INFO,
|
||||
|
@ -105,3 +104,58 @@ class Application(Gtk.Application):
|
|||
def _help(self, action, param):
|
||||
import time
|
||||
Gtk.show_uri(None, 'https://github.com/tuhiproject/tuhi/wiki', time.time())
|
||||
|
||||
|
||||
def install_excepthook():
|
||||
old_hook = sys.excepthook
|
||||
|
||||
def new_hook(etype, evalue, etb):
|
||||
old_hook(etype, evalue, etb)
|
||||
while Gtk.main_level():
|
||||
Gtk.main_quit()
|
||||
sys.exit()
|
||||
sys.excepthook = new_hook
|
||||
|
||||
|
||||
def gtk_style():
|
||||
css = b"""
|
||||
flowboxchild:selected {
|
||||
background-color: white;
|
||||
}
|
||||
.bg-white {
|
||||
background-color: white;
|
||||
}
|
||||
.bg-paper {
|
||||
border-radius: 5px;
|
||||
background-color: #ebe9e8;
|
||||
}
|
||||
.drawing {
|
||||
background-color: white;
|
||||
border-radius: 5px;
|
||||
}
|
||||
"""
|
||||
|
||||
screen = Gdk.Screen.get_default()
|
||||
if screen is None:
|
||||
print('Error: Unable to connect to screen. Make sure DISPLAY or WAYLAND_DISPLAY are set', file=sys.stderr)
|
||||
sys.exit(1)
|
||||
style_provider = Gtk.CssProvider()
|
||||
style_provider.load_from_data(css)
|
||||
Gtk.StyleContext.add_provider_for_screen(screen,
|
||||
style_provider,
|
||||
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
|
||||
|
||||
|
||||
def main(argv):
|
||||
import gettext
|
||||
import locale
|
||||
import signal
|
||||
|
||||
install_excepthook()
|
||||
gtk_style()
|
||||
|
||||
locale.textdomain('tuhi')
|
||||
gettext.textdomain('tuhi')
|
||||
signal.signal(signal.SIGINT, signal.SIG_DFL)
|
||||
exit_status = Application().run(argv)
|
||||
sys.exit(exit_status)
|
||||
|
|
Loading…
Reference in New Issue