* 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>
* Add invert tool to build commands
* Add icons for invert tool
* Integrate invert tool
* Add shortcut for invert tool
* Add invert tool
* Add translation for invert tool
* Run clang-format
* Update tool to invert a region instead of everything
* Update shortcut for invert tool
* Update button order of inverter and counter
* Update translations for invert tool
* Run clang-format
* Revert "Update translations for invert tool"
This reverts commit c1fd5a162be6c64b26790d53eab3749b3a124bcf.
* Revert "Add translation for invert tool"
This reverts commit b0c1da5f36e844fa8b5f1492f5f507d85bb7aa7b.
* Update drawSearchArea to match pixelate
* Update invert icon to one from Material Design
Co-authored-by: crackcat <>
* Show shortcuts in CaptureToolButton tooltips
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Change size indicator tooltip to reduce ambiguity
* Optimise undo/redo for thickness, do not save every change on mouse wheel, save just the result
(cherry picked from commit c0bd74790e086dcde1c242a31e27f992a04c07e2)
* fix - In some cases undo/redo stack has excess steps (root cause is in the start move object event on a small not noticeable mouse move)
(cherry picked from commit 912f39f38083e368979f34ef14821979c34482bb)
* fix - It is impossible to remove an object using the "Undo the latest modification" button on second attempt (full undo, draw something, full undo again)
(cherry picked from commit a7f77a130a497ac6fdecd59eb43c889dcc6cbe1a)
* fix - Picked font family in the text editing tool is applied to the autoincrement tool
(cherry picked from commit 11c5eb29b1078bd6aba91fe7a74c2682767ad47c)
* Add git hash to version in the about dialog
(cherry picked from commit b4dbf52b3217b51614100bd307046772a37dc484)
* Add configuration option to limit undo steps
(cherry picked from commit f13cbecabb172060b196a535348f145457ad2f0f)
* Object delete operation is not registered on the undo stack
(cherry picked from commit 5c966cb5d3702a4d735dd542ad03a80899250b4a)
* fix - Unable to draw an object from second attempt after ColorPicker was called
(cherry picked from commit 49a119886fec253376703e8aa2386e16bc23cbcf)
* fix - App freezes and then crashes when changing object line thickness via Active thickness slider in the tool settings
(cherry picked from commit 26fd64f1c333f70c67282630362cbc5fc8427a39)
* fix - set min and max values for thickness slider to 1-100
(cherry picked from commit 6d8661666e4e199a3c29f991d52bef73ec36129c)
* fix - Crash on Move Tool button with an active Text editor
(cherry picked from commit 461f95da3afda56c0e9693e768e86b18d056eecc)
* fix - Text is not modified when picking it as object in the list
(cherry picked from commit 366bb0928b430d442dc67299353f7dc5ceb743b4)
* fix - Text modification cannot be undone
fix - Object that was created after the text object disappears after undo editing text
(cherry picked from commit 79b2fb92aca65b177cffb386db141d30551a2b1c)
* fix - Text is not saved if picking any object in the objects list without clicking at the empty space
(cherry picked from commit 4679a744a3d2498fe27379f89d48b347a34ae0dc)
* Last available undo step reset everything to the beginning
(cherry picked from commit 4af7423d00cfaa9feabc905400aa3ac30fc4a3ea)
* Missed changes (cherry-pick) for switching ColorPicker behaviour (right mouse click and hold to right mouse click and left click)
Co-authored-by: Yuriy Puchkov <yuriy.puchkov@namecheap.com>
closes: #1374 .
Use SPDX short-form identifiers instead of lengthy copyright
header to document per-file license and copyright.
This commit updates all files under src/ directory where applicable
as well as org.flameshot.Flameshot.metainfo.xml.