Skip to content

Commit

Permalink
simplify move version info to gi_import
Browse files Browse the repository at this point in the history
which makes it easier to switch version too
  • Loading branch information
totaam committed Nov 14, 2023
1 parent fab5095 commit 4311115
Show file tree
Hide file tree
Showing 95 changed files with 465 additions and 469 deletions.
7 changes: 3 additions & 4 deletions xpra/client/gl/window.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
from xpra.scripts.config import FALSE_OPTIONS
from xpra.util.types import AtomicInteger, typedict
from xpra.util.env import envint
from xpra.os_util import WIN32, OSX, load_binary_file
from xpra.os_util import WIN32, OSX, load_binary_file, gi_import
from xpra.log import Logger
from xpra.platform.paths import get_icon_filename
from xpra.client.gui.fake_client import FakeClient
Expand Down Expand Up @@ -164,9 +164,8 @@ def draw():
if show:
widget.show()
window.show()
import gi
gi.require_version("Gtk", "3.0") # @UndefinedVariable
from gi.repository import Gtk, GLib # @UnresolvedImport
Gtk = gi_import("Gtk") # @UndefinedVariable
GLib = gi_import("GLib")

def window_close_event(*_args):
Gtk.main_quit()
Expand Down
12 changes: 6 additions & 6 deletions xpra/client/gtk3/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,16 @@

import os

import gi
gi.require_version("Gtk", "3.0") # @UndefinedVariable
gi.require_version("Gdk", "3.0") # @UndefinedVariable
from gi.repository import GObject, Gdk

from xpra.os_util import OSX, POSIX, is_Wayland
from xpra.os_util import OSX, POSIX, is_Wayland, gi_import
from xpra.client.gtk3.client_base import GTKXpraClient
from xpra.client.gtk3.window import ClientWindow
from xpra.platform.gui import get_xdpi, get_ydpi

Gtk = gi_import("Gtk")
Gdk = gi_import("Gdk")
GObject = gi_import("GObject")


class XpraClient(GTKXpraClient):

ClientWindowClass = ClientWindow
Expand Down
9 changes: 5 additions & 4 deletions xpra/client/gtk3/client_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,14 @@
from subprocess import Popen, PIPE
from threading import Event
from typing import Any
import gi
gi.require_version("Gtk", "3.0") # @UndefinedVariable
gi.require_version("Gdk", "3.0") # @UndefinedVariable
from gi.repository import Gtk, Gdk, GdkPixbuf # @UnresolvedImport

from xpra.util.types import typedict
from xpra.util.str_fn import csv, ellipsizer, repr_ellipsized, pver
from xpra.util.env import envint, envbool
from xpra.os_util import (
bytestostr, strtobytes, memoryview_to_bytes,
hexstr, load_binary_file, osexpand,
gi_import,
WIN32, OSX, POSIX, is_Wayland, first_time,
)
from xpra.net.common import PacketType
Expand Down Expand Up @@ -64,6 +61,10 @@
grablog = Logger("client", "grab")
focuslog = Logger("client", "focus")

Gtk = gi_import("Gtk")
Gdk = gi_import("Gdk")
GdkPixbuf = gi_import("GdkPixbuf")

missing_cursor_names = set()

METADATA_SUPPORTED = os.environ.get("XPRA_METADATA_SUPPORTED")
Expand Down
9 changes: 4 additions & 5 deletions xpra/client/gtk3/keyboard_helper.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,12 @@
# Xpra is released under the terms of the GNU GPL v2, or, at your option, any
# later version. See the file COPYING for details.

import gi
gi.require_version('Gdk', '3.0') # @UndefinedVariable
from gi.repository import GLib, Gdk # @UnresolvedImport

from xpra.client.gui.keyboard_helper import KeyboardHelper, log
from xpra.gtk.keymap import get_gtk_keymap
from xpra.os_util import is_X11
from xpra.os_util import is_X11, gi_import

Gdk = gi_import("Gdk")
GLib = gi_import("GLib")


class GTKKeyboardHelper(KeyboardHelper):
Expand Down
14 changes: 5 additions & 9 deletions xpra/client/gtk3/launcher.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,22 +17,14 @@
import sys
import traceback

import gi


gi.require_version("Gtk", "3.0") # @UndefinedVariable
gi.require_version("GdkPixbuf", "2.0") # @UndefinedVariable
# @UnresolvedImport pylint: disable=wrong-import-position
from gi.repository import GLib, Gtk, GdkPixbuf # @UnresolvedImport

from xpra.scripts.config import read_config, make_defaults_struct, validate_config, save_config
from xpra.gtk.signals import register_os_signals
from xpra.gtk.util import IgnoreWarningsContext
from xpra.gtk.window import add_close_accel
from xpra.gtk.widget import scaled_image, imagebutton, label, choose_file, modify_fg, color_parse
from xpra.gtk.pixbuf import get_icon_pixbuf
from xpra.util.str_fn import csv, repr_ellipsized
from xpra.os_util import WIN32, OSX
from xpra.os_util import WIN32, OSX, gi_import
from xpra.net.common import DEFAULT_PORT
from xpra.util.thread import start_thread
from xpra.gtk.dialogs.about import about
Expand All @@ -47,6 +39,10 @@

log = Logger("launcher")

Gtk = gi_import("Gtk")
GdkPixbuf = gi_import("GdkPixbuf")
GLib = gi_import("GLib")

MODE_NESTED_SSH = "ssh -> ssh"
MODE_SSH = "ssh"
MODE_TCP = "tcp"
Expand Down
10 changes: 4 additions & 6 deletions xpra/client/gtk3/menu_helper.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,9 @@
import re
from collections.abc import Callable

import gi
gi.require_version('Gtk', '3.0') # @UndefinedVariable
gi.require_version("GdkPixbuf", "2.0") # @UndefinedVariable
from gi.repository import Gtk, GdkPixbuf # @UnresolvedImport

from xpra.util.str_fn import repr_ellipsized
from xpra.util.env import envbool
from xpra.os_util import OSX, bytestostr
from xpra.os_util import OSX, bytestostr, gi_import
from xpra.codecs.icon_util import INKSCAPE_RE
from xpra.gtk.widget import scaled_image, menuitem
from xpra.gtk.util import IgnoreWarningsContext
Expand All @@ -26,6 +21,9 @@

log = Logger("menu")

Gtk = gi_import("Gtk")
GdkPixbuf = gi_import("GdkPixbuf")

MENU_ICONS = envbool("XPRA_MENU_ICONS", True)
HIDE_DISABLED_MENU_ENTRIES = envbool("XPRA_HIDE_DISABLED_MENU_ENTRIES", False)

Expand Down
11 changes: 5 additions & 6 deletions xpra/client/gtk3/statusicon_tray.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,17 @@

import os
from time import time, monotonic
import gi
gi.require_version('Gdk', '3.0') # @UndefinedVariable
gi.require_version('Gtk', '3.0') # @UndefinedVariable
gi.require_version("GdkPixbuf", "2.0") # @UndefinedVariable
from gi.repository import Gtk, Gdk, GdkPixbuf # @UnresolvedImport

from xpra.os_util import WIN32, OSX, POSIX
from xpra.os_util import WIN32, OSX, POSIX, gi_import
from xpra.util.env import envbool
from xpra.client.gui.tray_base import TrayBase, log
from xpra.gtk.util import get_default_root_window
from xpra.gtk.pixbuf import get_icon_from_file, get_pixbuf_from_data

Gdk = gi_import("Gdk")
Gtk = gi_import("Gtk")
GdkPixbuf = gi_import("GdkPixbuf")

ORIENTATION = {
Gtk.Orientation.HORIZONTAL : "HORIZONTAL",
Gtk.Orientation.VERTICAL : "VERTICAL",
Expand Down
20 changes: 10 additions & 10 deletions xpra/client/gtk3/window.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,36 +5,35 @@
# Xpra is released under the terms of the GNU GPL v2, or, at your option, any
# later version. See the file COPYING for details.

import gi
gi.require_version("Gtk", "3.0")
gi.require_version("Gdk", "3.0")
gi.require_version("GdkPixbuf", "2.0")
from gi.repository import GObject, Gdk, Gtk, Gio, GdkPixbuf # @UnresolvedImport

from xpra.client.gtk3.window_base import GTKClientWindowBase, HAS_X11_BINDINGS
from xpra.client.gtk3.window_menu import WindowMenuHelper
from xpra.gtk.widget import scaled_image
from xpra.gtk.pixbuf import get_icon_pixbuf
from xpra.scripts.config import TRUE_OPTIONS, FALSE_OPTIONS
from xpra.util.types import typedict
from xpra.util.env import envbool
from xpra.os_util import bytestostr, is_gnome
from xpra.os_util import bytestostr, is_gnome, gi_import
from xpra.log import Logger

paintlog = Logger("paint")
metalog = Logger("metadata")
geomlog = Logger("geometry")

Gtk = gi_import("Gtk")
Gdk = gi_import("Gdk")
GdkPixbuf = gi_import("GdkPixbuf")
GObject = gi_import("GObject")
Gio = gi_import("Gio")

WINDOW_ICON = envbool("XPRA_WINDOW_ICON", True)
WINDOW_XPRA_MENU = envbool("XPRA_WINDOW_XPRA_MENU", is_gnome())
WINDOW_MENU = envbool("XPRA_WINDOW_MENU", True)


"""
GTK3 version of the ClientWindow class
"""
class ClientWindow(GTKClientWindowBase):
"""
GTK3 version of the ClientWindow class
"""

def init_window(self, metadata:typedict):
super().init_window(metadata)
Expand Down Expand Up @@ -226,4 +225,5 @@ def draw_widget(self, widget, context) -> bool:
self.paint_spinner(context)
return True


GObject.type_register(ClientWindow)
2 changes: 1 addition & 1 deletion xpra/client/mixins/tray.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Copyright (C) 2010-2023 Antoine Martin <antoine@xpra.org>
# Xpra is released under the terms of the GNU GPL v2, or, at your option, any
# later version. See the file COPYING for details.
#pylint: disable-msg=E1101
# pylint: disable-msg=E1101

from gi.repository import GLib

Expand Down
2 changes: 1 addition & 1 deletion xpra/codecs/gstreamer/encoder.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
from xpra.codecs.image import ImageWrapper
from xpra.log import Logger

GObject = gi_import("GObject", "2.0")
GObject = gi_import("GObject")
Gst = import_gst()
log = Logger("encoder", "gstreamer")

Expand Down
8 changes: 3 additions & 5 deletions xpra/codecs/icon_util.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
# This file is part of Xpra.
# Copyright (C) 2018-2022 Antoine Martin <antoine@xpra.org>
# Copyright (C) 2018-2023 Antoine Martin <antoine@xpra.org>
# Xpra is released under the terms of the GNU GPL v2, or, at your option, any
# later version. See the file COPYING for details.

Expand All @@ -14,7 +14,7 @@

from xpra.util.str_fn import ellipsizer
from xpra.util.env import envint, envbool
from xpra.os_util import load_binary_file, first_time
from xpra.os_util import load_binary_file, first_time, gi_import
from xpra.log import Logger

log = Logger("menu")
Expand All @@ -32,10 +32,8 @@
def load_Rsvg():
global _Rsvg
if _Rsvg is None:
import gi #pylint: disable=import-outside-toplevel
try:
gi.require_version('Rsvg', '2.0') # @UndefinedVariable
from gi.repository import Rsvg # pylint: disable=import-outside-toplevel @UnresolvedImport
Rsvg = gi_import("Rsvg")
log("load_Rsvg() Rsvg=%s", Rsvg)
_Rsvg = Rsvg
except (ValueError, ImportError) as e:
Expand Down
2 changes: 1 addition & 1 deletion xpra/gstreamer/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ def import_gst() -> ModuleType | None:
{k:v for k,v in os.environ.items() if (k.startswith("GST") or k.startswith("GI") or k=="PATH")})
log("GStreamer 1.x sys.path=%s", csv(sys.path))
try:
Gst = gi_import("Gst", "1.0")
Gst = gi_import("Gst")
log("Gst=%s", Gst)
Gst.init(None)
except Exception as e:
Expand Down
4 changes: 2 additions & 2 deletions xpra/gstreamer/pipeline.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@
Gst : ModuleType = import_gst()
if not Gst:
raise ImportError("GStreamer bindings not found")
GLib = gi_import("GLib", "2.0")
GObject = gi_import("GObject", "2.0")
GLib = gi_import("GLib")
GObject = gi_import("GObject")


class Pipeline(GObject.GObject):
Expand Down
10 changes: 5 additions & 5 deletions xpra/gtk/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
# Xpra is released under the terms of the GNU GPL v2, or, at your option, any
# later version. See the file COPYING for details.

import gi
gi.require_version("Gdk", "3.0") # @UndefinedVariable
gi.require_version("Gtk", "3.0") # @UndefinedVariable
gi.require_version("Pango", "1.0") # @UndefinedVariable
gi.require_version("GdkPixbuf", "2.0") # @UndefinedVariable
from xpra.os_util import gi_import
gi_import("Gdk")
gi_import("Gtk")
gi_import("Pango")
gi_import("GdkPixbuf")
10 changes: 5 additions & 5 deletions xpra/gtk/clipboard.py
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
# This file is part of Xpra.
# Copyright (C) 2019-2021 Antoine Martin <antoine@xpra.org>
# Copyright (C) 2019-2023 Antoine Martin <antoine@xpra.org>
# Xpra is released under the terms of the GNU GPL v2, or, at your option, any
# later version. See the file COPYING for details.

from time import monotonic
import gi
gi.require_version('Gdk', '3.0') # @UndefinedVariable
gi.require_version('Gtk', '3.0') # @UndefinedVariable
from gi.repository import GObject, Gtk, Gdk # @UnresolvedImport

from xpra.gtk.gobject import n_arg_signal, one_arg_signal
from xpra.clipboard.core import (
ClipboardProxyCore, TEXT_TARGETS,
)
from xpra.clipboard.timeout import ClipboardTimeoutHelper
from xpra.os_util import gi_import
from xpra.util.str_fn import ellipsizer
from xpra.util.env import envint
from xpra.log import Logger

Gtk = gi_import("Gtk")
Gdk = gi_import("Gdk")
GObject = gi_import("GObject")

log = Logger("clipboard")

Expand Down
6 changes: 2 additions & 4 deletions xpra/gtk/configure/features.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,12 @@
# Xpra is released under the terms of the GNU GPL v2, or, at your option, any
# later version. See the file COPYING for details.

import gi

from xpra.gtk.dialogs.base_gui_window import BaseGUIWindow
from xpra.gtk.widget import label
from xpra.os_util import gi_import
from xpra.log import Logger

gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
Gtk = gi_import("Gtk")

log = Logger("util")

Expand Down
7 changes: 3 additions & 4 deletions xpra/gtk/configure/gstreamer.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,14 @@
from subprocess import Popen, PIPE, check_call

from xpra.util.types import AtomicInteger
from xpra.os_util import is_X11, is_gnome, OSX, WIN32, POSIX
from xpra.os_util import is_X11, is_gnome, gi_import, OSX, WIN32, POSIX
from xpra.gtk.dialogs.base_gui_window import BaseGUIWindow
from xpra.gtk.widget import label, slabel, title_box
from xpra.platform.paths import get_image
from xpra.log import Logger

import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, GLib
Gtk = gi_import("Gtk")
GLib = gi_import("GLib")

log = Logger("gstreamer", "util")

Expand Down
6 changes: 3 additions & 3 deletions xpra/gtk/configure/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,19 @@
# Copyright (C) 2018-2023 Antoine Martin <antoine@xpra.org>
# Xpra is released under the terms of the GNU GPL v2, or, at your option, any
# later version. See the file COPYING for details.

import os.path
from importlib import import_module
import gi

from xpra.scripts.config import InitExit
from xpra.exit_codes import ExitCode
from xpra.os_util import gi_import
from xpra.util.parsing import parse_simple_dict
from xpra.gtk.dialogs.base_gui_window import BaseGUIWindow
from xpra.gtk.widget import label
from xpra.log import Logger

gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
Gtk = gi_import("Gtk")

log = Logger("util")

Expand Down
Loading

0 comments on commit 4311115

Please sign in to comment.