virt-manager/virt-manager-xmleditor-make-gtksourceview-optional.patch
Jonathon Jongsma 68bc088ccd virt-manager-4.1.0-7.el10
- cloner: Sync <uuid> and <sysinfo> system uuid (RHEL-34608)
- virtinstall: fix regression with --boot and no install method (RHEL-34608)
- progress: Fix showing correct final total (RHEL-34608)
- virtinstall: Fix the allocating disk size printed by the progress bar (RHEL-34608)
- virtinstall: Hide total_size in the progress bar if it doesn't need (RHEL-34608)
- virt-install: Recommend '--boot uefi' (RHEL-34608)
- virt-install: Document Secure Boot setups (RHEL-34608)
- tests: Add more cloud-init and TPM test cases (RHEL-34608)
- installer: drop default TPM for --cloud-init install phase (RHEL-34608)
- Add gating for centos stream 10 (RHEL-34608)
- xmleditor: make gtksourceview optional (RHEL-35859)

Resolves: RHEL-34608, RHEL-35859
2024-06-25 11:28:11 -05:00

80 lines
2.8 KiB
Diff

From e45db8eaa53134b0b5266d25ad58f0760af777b0 Mon Sep 17 00:00:00 2001
From: Jonathon Jongsma <jjongsma@redhat.com>
Date: Thu, 16 May 2024 11:05:23 -0500
Subject: [PATCH] xmleditor: make gtksourceview optional
The only thing that GtkSourceView gives us is syntax highlighting and
auto-indent. When this library is not available, we can still offer xml
editing with a plain textview with very little lost functionality.
Resolves: https://issues.redhat.com/browse/RHEL-35859
Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
---
virt-manager.spec | 7 ++++---
virtManager/xmleditor.py | 34 ++++++++++++++++++++++++----------
2 files changed, 28 insertions(+), 13 deletions(-)
diff --git a/virtManager/xmleditor.py b/virtManager/xmleditor.py
index 40d4c424e..8be317cc9 100644
--- a/virtManager/xmleditor.py
+++ b/virtManager/xmleditor.py
@@ -7,13 +7,24 @@ import gi
from virtinst import log
# We can use either gtksourceview3 or gtksourceview4
+have_gtksourceview = True
try:
gi.require_version("GtkSource", "4")
log.debug("Using GtkSource 4")
except ValueError: # pragma: no cover
- gi.require_version("GtkSource", "3.0")
- log.debug("Using GtkSource 3.0")
-from gi.repository import GtkSource
+ try:
+ gi.require_version("GtkSource", "3.0")
+ log.debug("Using GtkSource 3.0")
+ except:
+ log.debug("Not using GtkSource")
+ have_gtksourceview = False
+
+if have_gtksourceview:
+ from gi.repository import GtkSource
+else:
+ # if GtkSourceView is not available, just use a plain TextView. This will
+ # only disable auto-indent and syntax highlighting.
+ from gi.repository import Gtk
from .lib import uiutil
from .baseclass import vmmGObjectUI
@@ -66,17 +77,20 @@ class vmmXMLEditor(vmmGObjectUI):
not enabled)
def _init_ui(self):
- self._srcview = GtkSource.View()
- self._srcbuff = self._srcview.get_buffer()
-
- lang = GtkSource.LanguageManager.get_default().get_language("xml")
- self._srcbuff.set_language(lang)
+ if have_gtksourceview:
+ self._srcview = GtkSource.View()
+ self._srcbuff = self._srcview.get_buffer()
+ self._srcview.set_auto_indent(True)
+ lang = GtkSource.LanguageManager.get_default().get_language("xml")
+ self._srcbuff.set_language(lang)
+ self._srcbuff.set_highlight_syntax(True)
+ else:
+ self._srcview = Gtk.TextView()
+ self._srcbuff = self._srcview.get_buffer()
self._srcview.set_monospace(True)
- self._srcview.set_auto_indent(True)
self._srcview.get_accessible().set_name("XML editor")
- self._srcbuff.set_highlight_syntax(True)
self._srcbuff.connect("changed", self._buffer_changed_cb)
self.widget("xml-notebook").connect("switch-page",
--
2.45.1