src/eric7/Snapshot/SnapWidget.py

branch
eric7
changeset 10625
8b16ca841c5f
parent 10439
21c28b0f9e41
child 10633
dda7e43934dc
diff -r cf6185def935 -r 8b16ca841c5f src/eric7/Snapshot/SnapWidget.py
--- a/src/eric7/Snapshot/SnapWidget.py	Mon Mar 04 11:56:17 2024 +0100
+++ b/src/eric7/Snapshot/SnapWidget.py	Mon Mar 04 15:03:15 2024 +0100
@@ -59,11 +59,7 @@
         self.setWindowIcon(EricPixmapCache.getIcon("ericSnap"))
 
         if DesktopUtilities.isWaylandSession():
-            from .SnapshotWaylandGrabber import (  # __IGNORE_WARNING_I101__
-                SnapshotWaylandGrabber,
-            )
-
-            self.__grabber = SnapshotWaylandGrabber(self)
+            self.__grabber = None
         else:
             from .SnapshotDefaultGrabber import (  # __IGNORE_WARNING_I101__
                 SnapshotDefaultGrabber,
@@ -72,8 +68,10 @@
             self.__grabber = SnapshotDefaultGrabber(self)
             self.decorationsCheckBox.hide()
             self.mouseCursorCheckBox.hide()
-        self.__grabber.grabbed.connect(self.__captured)
-        supportedModes = self.__grabber.supportedModes()
+
+        if self.__grabber:
+            self.__grabber.grabbed.connect(self.__captured)
+            supportedModes = self.__grabber.supportedModes()
 
         if SnapshotModes.FULLSCREEN in supportedModes:
             self.modeCombo.addItem(self.tr("Fullscreen"), SnapshotModes.FULLSCREEN)
@@ -322,15 +320,26 @@
         """
         Private slot to take a snapshot.
         """
-        self.__savedPosition = self.pos()
-        self.hide()
+        if self.__grabber:
+            self.__savedPosition = self.pos()
+            self.hide()
 
-        self.__grabber.grab(
-            self.modeCombo.itemData(self.modeCombo.currentIndex()),
-            self.delaySpin.value(),
-            self.mouseCursorCheckBox.isChecked(),
-            self.decorationsCheckBox.isChecked(),
-        )
+            self.__grabber.grab(
+                self.modeCombo.itemData(self.modeCombo.currentIndex()),
+                self.delaySpin.value(),
+                self.mouseCursorCheckBox.isChecked(),
+                self.decorationsCheckBox.isChecked(),
+            )
+            
+        else:
+            EricMessageBox.critical(
+                self,
+                self.tr("Snapshot"),
+                self.tr(
+                    "The snapshot functionality is not available for Wayland based"
+                    " desktop environments."
+                ),
+            )
 
     def __redisplay(self):
         """

eric ide

mercurial