summaryrefslogtreecommitdiff
path: root/hplip-ui-optional.patch
diff options
context:
space:
mode:
Diffstat (limited to 'hplip-ui-optional.patch')
-rw-r--r--hplip-ui-optional.patch96
1 files changed, 96 insertions, 0 deletions
diff --git a/hplip-ui-optional.patch b/hplip-ui-optional.patch
new file mode 100644
index 0000000..4b3f525
--- /dev/null
+++ b/hplip-ui-optional.patch
@@ -0,0 +1,96 @@
+diff --git a/base/module.py b/base/module.py
+index dd3efa3..04ac5b8 100644
+--- a/base/module.py
++++ b/base/module.py
+@@ -432,6 +432,12 @@ class Module(object):
+ if show_usage is not None:
+ sys.exit(0)
+
++ if mode == GUI_MODE:
++ if not utils.canEnterGUIMode4():
++ log.warn("GUI mode not available - switching to interactive mode.")
++ mode = INTERACTIVE_MODE
++ ui_toolkit = 'none'
++
+ self.mode = mode
+ return opts, device_uri, printer_name, mode, ui_toolkit, lang
+
+diff --git a/base/utils.py b/base/utils.py
+index 98437a3..9b8813b 100644
+--- a/base/utils.py
++++ b/base/utils.py
+@@ -722,6 +722,15 @@ def canEnterGUIMode4(): # qt4
+ log.warn(e)
+ return False
+
++ try:
++ import ui4
++ except ImportError:
++ try:
++ import ui5
++ except ImportError as e:
++ log.warn(e)
++ return False
++
+ return True
+
+
+@@ -734,6 +743,11 @@ def checkPyQtImport(): # qt3
+ if os.getenv('DISPLAY') and os.getenv('STARTED_FROM_MENU'):
+ no_qt_message_gtk()
+
++ try:
++ import ui
++ except ImportError:
++ return False
++
+ log.error("PyQt not installed. GUI not available. Exiting.")
+ return False
+
+@@ -781,11 +795,13 @@ def checkPyQtImport4():
+ import PyQt4
+ import ui4
+ except ImportError:
+- import PyQt5
+- import ui5
+- else:
+- log.debug("HPLIP is not installed properly or is installed without graphical support. Please reinstall HPLIP again")
+- return False
++ try:
++ import PyQt5
++ import ui5
++ except ImportError:
++ log.debug('GUI not available.')
++ return False
++
+ return True
+
+ # def checkPyQtImport5():
+diff --git a/fab.py b/fab.py
+index 5577af5..194ceed 100755
+--- a/fab.py
++++ b/fab.py
+@@ -776,14 +776,15 @@ mod.setUsage(module.USAGE_FLAG_NONE)
+ opts, device_uri, printer_name, mode, ui_toolkit, loc = \
+ mod.parseStdOpts(handle_device_printer=False)
+
+-if ui_toolkit == 'qt3':
+- if not utils.canEnterGUIMode():
+- log.error("%s GUI mode requires GUI support (try running with --qt4). Entering interactive mode." % __mod__)
+- mode = INTERACTIVE_MODE
+-else:
+- if not utils.canEnterGUIMode4():
+- log.error("%s GUI mode requires GUI support (try running with --qt3). Entering interactive mode." % __mod__)
+- mode = INTERACTIVE_MODE
++if ui_toolkit != 'none':
++ if ui_toolkit == 'qt3':
++ if not utils.canEnterGUIMode():
++ log.error("%s GUI mode requires GUI support (try running with --qt4). Entering interactive mode." % __mod__)
++ mode = INTERACTIVE_MODE
++ else:
++ if not utils.canEnterGUIMode4():
++ log.error("%s GUI mode requires GUI support (try running with --qt3). Entering interactive mode." % __mod__)
++ mode = INTERACTIVE_MODE
+
+
+ if mode == GUI_MODE: