* Removed default config for abstract logger that sends a system notification, also cleaned up a useless ifdef
* Send notifications from event loop on Win and Mac (#2197)
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
Co-authored-by: Haris Gušić <harisgusic.dev@gmail.com>
* 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>
* Add error handling functions to ConfigHandler
Refurbished functions setValue and value which were previously unused.
These functions now set/get a setting with error handling.
Currently recognizes only errors recognizable by QSettings.
* Make use of value and setValue in ConfigHandler
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Add checker for unrecognized general options
Extraneous config options in [General] will be reported as errors.
Added some placeholder functions to be implemented in future commits.
* Introduce keysFromGroup function
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Check shortcut names for duplicates
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Fix notification spam
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Implement shortcut conflict checking
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Fix reading of fallbacks on error
If there is a config error, some values would not be loaded correctly.
Using the newly implemented function ConfigHandler::contains instead of
QSettings::contains solves this issue.
These changes reveal u bug that causes a crash on startup.
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Fix crashes introduced in previous commit
Because ConfigHandler is a dependency of most other classes,
calling functions from those classes inside ConfigHandler caused
infinite recursions in some cases.
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Add config file watcher
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Add missing config options
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Fix bug in shortcut conflict detection
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Add error resolved notification
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Add GUI error message overlay
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Add indicator in config window
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Use ConfigHandler::fileChanged in ConfigWindow
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Fix watcher sometimes not firing
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Improve config file watching performance
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Add new way to handle config
This is only a fundamental implementation. Future commits will replace
everything with this new paradigm.
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Fix getButtons and related functions
Also refactored related code to use QList instead of QVector because
QSettings does not work well with QVector.
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Make good use of the new way
* Implement proper checking for basic types
Everything is covered, apart from KeySequence.
* Move fallback path to ExistingDir value handler
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Use consistent naming scheme in ConfigHandler
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Implement config getters/setters via macro
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Surround text with tr and clang-format
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Fix colors being saved obfuscated
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Add ValueHandler::represenation
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Move ValueHandler to separate files
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* confighandler.cpp: rename macro CUSTOM to OPTION
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Fix bug with shortcut conflict checker
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Update docs and fix setAllTheButtons
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Handle filenamePattern properly
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Fix failing build due to wrong function name
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Fix QSet error due to Qt version mismatch
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Replace QSharedPointer::get with data for older Qt versions
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Fix failing build on MacOS and ubuntu 18.04
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Add column headers to recognizedGeneralOptions map
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Fix ubuntu 18.04 error
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Fix false positive when shortcuts empty
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Fix wrong shortcut group prefix
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Implement proper shortcut checking
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Add shortcut map in ConfigHandler
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Move ConfigShortcuts functions to ShortcutsWidget
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Fix minor bugs
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Add fallback scheme: Pictures, HOME, TMP
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Add config --check CLI option
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Add config error log to GUI
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Rename ValueHandler::description to expected
* Convert Qt's #AARRGGBB to #RRGGBBAA and vice versa
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Remove obsolete `saveAfterCopyPath`
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Fix errors in example config
Also added an additional ; in front of actual comments to differentiate
them from commented options.
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Allow special value 'picker' in userColors
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Allow only name, #RRGGBB, and #RRGGBBAA color formats
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Set x-kde-urls for notifications
The x-kde-urls field in the hints map allows us to provide a direct URL
to the saved screenshot. The notification server may then use this hint
to provide extra functionality, such as drag and drop support and
thumbnails.
For more information see https://community.kde.org/Plasma/Notifications#File_PathFixes#256
Note that other notification servers may ignore this hint.
* Avoid branching twice for ok
Current implementation of SystemNotification::sendMessage()
is wrongly using "flameshot.png" as icon name.
We should strip the suffix and directly use "flameshot" to comply
with Desktop Notification Specification.
This commit does so and indeed makes notifications show flameshot
icon on GNOME Shell again.
See also https://developer.gnome.org/notification-spec/ .
-use of the override keyword
-delete unused code
-const correctness
-more uniform code style
-for each with const references when possible
-getters no longer use the word 'get'
-others