Reduce dependence on D-Bus (#2003)

* Handle captures without sigslots

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Set {app,organization}Name and version consistently

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Make 'full' dbus-free

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Move CaptureRequest::exportCapture to Controller

We need to wait until the upload widget (or similar widgets) have
finished before exiting. This must be done using a signal. The problem
is that CaptureRequest can't be guaranteed to survive until the widget
has finished what it's doing.

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Use QApplication with the 'full' subcommand

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Do unto 'screen' as we did to 'full'

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Add FlameshotDaemon singleton class

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Support clipboard hosting for both pixmaps and text

* Fix upload handling

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Do not show tray icon if not daemon

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Clean up handling of pin task

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Remove annoying Qt warning messages

The messages were caused by the color wheel.

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Fix small bug in Controller::exportCapture

* Fix --raw output

* Make 'gui' dbus-independent

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Fix accept on select bug

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Fix compile error on Windows

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Make it work on Windows

* Remove obsolete function in main.cpp

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Make 'launcher' work without dbus

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* clang-format, sigh

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Enable CLI parsing on MacOS

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Make 'config' work without dbus

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Small refactor of capture request handling

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Remove obsolete DBusUtils

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Remove unused D-Bus sigslots

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Remove D-Bus methods openConfig, autostartEnabled and trayIconEnabled

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Remove D-Bus method requestCapture

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Remove CaptureRequest id mechanism

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Fix 'launcher' crash

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Handle clipboard notifications properly

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Add 'autoCloseIdleDaemon' option

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Document FlameshotDaemon class

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Make 'flameshot gui' run in single-application mode

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Add `allowmultipleGuiInstances` config option

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Fix endless loop with multiple GUI instances

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Move upload confirmation dialog where it belongs

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Add the new config options to the GUI as well

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Fix failing build on Windows

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Handle persistence on MacOS

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* fixed notifications on macos

* Fixed display on macos

* Reformat tests/action_options.sh

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Fix infinite recursion in tests/action_options.sh

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

Co-authored-by: Dearsh Oberoi <59907159+deo002@users.noreply.github.com>
Co-authored-by: Jeremy Borgman <borgman.jeremy@pm.me>
This commit is contained in:
Haris Gušić
2021-12-08 22:18:39 +01:00
committed by GitHub
parent 203b5baab6
commit 233c765b1f
38 changed files with 768 additions and 766 deletions

View File

@@ -3,90 +3,38 @@
<interface name="org.flameshot.Flameshot">
<!--
requestCapture:
@requestData: Serialized CaptureRequest object.
attachPin:
@data: Byte array containing the screenshot and geometry information.
Start a capture using a CaptureRequest.
Attach a pinned screenshot widget to the daemon.
-->
<method name="requestCapture">
<arg name="requestData" type="ay" direction="in"/>
<method name="attachPin">
<arg name="data" type="ay" direction="in"/>
</method>
<!--
openLauncher:
attachScreenshotToClipboard:
@screenshot: Byte array containing the screenshot pixmap.
Opens the capture launcher.
Copy the screenshot to the daemon's clipboard, to prevent losing the
clipboard when a flameshot subcommand exits.
-->
<method name="openLauncher">
<annotation name="org.freedesktop.DBus.Method.NoReply" value="true"/>
<method name="attachScreenshotToClipboard">
<arg name="screenshot" type="ay" direction="in"/>
</method>
<!--
openConfig:
attachTextToClipboard:
@text: Text to be copied to the clipboard.
@notification: Optional notification to send.
Opens the configuration window.
Copy the text to the daemon's clipboard, to prevent losing the
clipboard when a flameshot subcommand exits.
-->
<method name="openConfig">
<annotation name="org.freedesktop.DBus.Method.NoReply" value="true"/>
<method name="attachTextToClipboard">
<arg name="text" type="s" direction="in"/>
<arg name="notification" type="s" direction="in"/>
</method>
<!--
trayIconEnabled:
@enabled: The new state for the trayIcon.
Enable or disable the trayIcon.
-->
<method name="trayIconEnabled">
<arg name="enabled" type="b" direction="in"/>
<annotation name="org.freedesktop.DBus.Method.NoReply" value="true"/>
</method>
<!--
autostartEnabled:
@enabled: The new state for the autostart.
Enable or disable the autostart of the program.
-->
<method name="autostartEnabled">
<arg name="enabled" type="b" direction="in"/>
<annotation name="org.freedesktop.DBus.Method.NoReply" value="true"/>
</method>
<!--
captureTaken:
@id: identificator of the call.
@rawImage: raw image in PNG format.
@selection: QRect selection geometry.
Successful capture signal returning the image.
-->
<signal name="captureTaken">
<arg name="id" type="u" direction="out"/>
<arg name="rawImage" type="ay" direction="out"/>
<arg name="selection" type="(iiii)" direction="out"/>
</signal>
<!--
captureFailed:
@id: identificator of the call.
Whenever the capture fails.
-->
<signal name="captureFailed">
<arg name="id" type="u" direction="out"/>
</signal>
<!--
captureSaved:
@id: identificator of the call.
@savePath: canonical path of the newly created image file.
An image was written to disk after capture.
-->
<signal name="captureSaved">
<arg name="id" type="u" direction="out"/>
<arg name="savePath" type="s" direction="out"/>
</signal>
</interface>
</node>