49 |
49 |
50 @return tuple of supported screenshot modes |
50 @return tuple of supported screenshot modes |
51 @rtype tuple of SnapshotModes |
51 @rtype tuple of SnapshotModes |
52 """ |
52 """ |
53 return ( |
53 return ( |
54 SnapshotModes.Fullscreen, |
54 SnapshotModes.FULLSCREEN, |
55 SnapshotModes.SelectedScreen, |
55 SnapshotModes.SELECTEDSCREEN, |
56 SnapshotModes.Rectangle, |
56 SnapshotModes.RECTANGLE, |
57 SnapshotModes.Freehand, |
57 SnapshotModes.FREEHAND, |
58 SnapshotModes.Ellipse, |
58 SnapshotModes.ELLIPSE, |
59 ) |
59 ) |
60 |
60 |
61 def grab(self, mode, delay=0, captureCursor=False, |
61 def grab(self, mode, delay=0, captureCursor=False, |
62 captureDecorations=False): |
62 captureDecorations=False): |
63 """ |
63 """ |
82 |
82 |
83 def __grabTimerTimeout(self): |
83 def __grabTimerTimeout(self): |
84 """ |
84 """ |
85 Private slot to perform a delayed grab operation. |
85 Private slot to perform a delayed grab operation. |
86 """ |
86 """ |
87 if self.__mode == SnapshotModes.Rectangle: |
87 if self.__mode == SnapshotModes.RECTANGLE: |
88 self.__grabRectangle() |
88 self.__grabRectangle() |
89 elif self.__mode == SnapshotModes.Ellipse: |
89 elif self.__mode == SnapshotModes.ELLIPSE: |
90 self.__grabEllipse() |
90 self.__grabEllipse() |
91 elif self.__mode == SnapshotModes.Freehand: |
91 elif self.__mode == SnapshotModes.FREEHAND: |
92 self.__grabFreehand() |
92 self.__grabFreehand() |
93 else: |
93 else: |
94 self.__performGrab(self.__mode) |
94 self.__performGrab(self.__mode) |
95 |
95 |
96 def __startUndelayedGrab(self): |
96 def __startUndelayedGrab(self): |
97 """ |
97 """ |
98 Private slot to perform an undelayed grab operation. |
98 Private slot to perform an undelayed grab operation. |
99 """ |
99 """ |
100 if self.__mode == SnapshotModes.Rectangle: |
100 if self.__mode == SnapshotModes.RECTANGLE: |
101 self.__grabRectangle() |
101 self.__grabRectangle() |
102 elif self.__mode == SnapshotModes.Ellipse: |
102 elif self.__mode == SnapshotModes.ELLIPSE: |
103 self.__grabEllipse() |
103 self.__grabEllipse() |
104 elif self.__mode == SnapshotModes.Freehand: |
104 elif self.__mode == SnapshotModes.FREEHAND: |
105 self.__grabFreehand() |
105 self.__grabFreehand() |
106 else: |
106 else: |
107 if Globals.isMacPlatform(): |
107 if Globals.isMacPlatform(): |
108 self.__performGrab(self.__mode) |
108 self.__performGrab(self.__mode) |
109 else: |
109 else: |
145 """ |
145 """ |
146 self.__grabberWidget.releaseMouse() |
146 self.__grabberWidget.releaseMouse() |
147 self.__grabberWidget.hide() |
147 self.__grabberWidget.hide() |
148 self.__grabTimer.stop() |
148 self.__grabTimer.stop() |
149 |
149 |
150 if mode == SnapshotModes.Fullscreen: |
150 if mode == SnapshotModes.FULLSCREEN: |
151 screen = QGuiApplication.screens()[0] |
151 screen = QGuiApplication.screens()[0] |
152 vgeom = screen.availableVirtualGeometry() |
152 vgeom = screen.availableVirtualGeometry() |
153 snapshot = screen.grabWindow( |
153 snapshot = screen.grabWindow( |
154 0, vgeom.x(), vgeom.y(), vgeom.width(), vgeom.height()) |
154 0, vgeom.x(), vgeom.y(), vgeom.width(), vgeom.height()) |
155 elif mode == SnapshotModes.SelectedScreen: |
155 elif mode == SnapshotModes.SELECTEDSCREEN: |
156 screen = QGuiApplication.screenAt(QCursor.pos()) |
156 screen = QGuiApplication.screenAt(QCursor.pos()) |
157 sgeom = screen.geometry() |
157 sgeom = screen.geometry() |
158 if Globals.isMacPlatform(): |
158 if Globals.isMacPlatform(): |
159 # macOS variant |
159 # macOS variant |
160 snapshot = screen.grabWindow( |
160 snapshot = screen.grabWindow( |