* Capture tool button looks at copy on double-click config setting and sets button description accordingly.
* Ran clang-format on capturetoolbutton.cpp for code formatting.
* Add ConfigHandler::toolSize and setToolSize
* Refactor thickness (now toolSize) in CaptureWidget
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Fix update of tool size while object is drawn
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Rename thickness to tool size across the board
Tool size is the generic term. Depending on the selected tool,
different specialized names are used. This has always been the case
in the config.
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* Reorder circle count tool
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* clang-format
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
* 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.