Commit Graph

58 Commits

Author SHA1 Message Date
Haris Gušić
233c765b1f 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>
2021-12-08 22:18:39 +01:00
borgmanJeremy
f675123e0a working on monochrome icon (#2071)
* working on monochrome icon

* Update pipeline

* adjusted icns to be monochrome

* Added 1045 monochrome
2021-11-17 14:28:16 -06:00
borgmanJeremy
445a4c68e8 Fixed Gnome File Extensions (#2047)
* Fixed Gnome File Extensions

* removed old comment
2021-11-05 13:35:30 -05:00
Michael Bryan
65f8ac0414 Save by writing to a QFile so we can capture the error message (#2012) 2021-10-27 12:06:35 +02:00
Benja Appel
067f4a1914 Add default file extension configuration (#1995)
* Add default file extension configuration

* Format fix

* Implement ValueHandler for setSaveAsFileExtension

* Fix formatting issues

* Add format to properScreenshotPath call

* Fix SaveFileExtension::check

* Fix format

* Move extension layout to Save Path group
2021-10-25 19:24:46 +02:00
Haris Gušić
d1428889b9 Implement config checking (#1859)
* 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>
2021-09-15 11:56:01 -05:00
Haris Gušić
41ca51bc10 Improve screenshot path handling (#1815)
* Make --path work correctly with relative paths

Relative paths are taken relative to the working directory of the calling
command, not relative to the daemon's working directory.

* Allow file paths in --path and refactor

* Remove some redundancy

These actions are already performed in the respective functions in
FlameshotDBusAdapter.

* Tweak --path error checker a bit more

* Rework FileNameHandler and update references

The class now has a much simpler interface.

- Screenshot paths are now universally determined by the function
  properScreenshotPath
- Some unreferenced methods have been removed
- The documentation of properScreenshotPath documents the changes well.

* Add crude tests for --path

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>

* Add a test for invalid path

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

* Make tests clearer

Thanks to @mmahmoudian for his review and contribution.

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

* Fix bug in properScreenshotPath

Auto-numeration did not work when the screenshot was automatically
saved when copied to clipboard.

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

* Fall back to default pictures location

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

* Revert "Remove some redundancy"

This was not redundancy. I had actually introduced a bug with this.

This reverts commit 011ef737564892e494518443e6b80ccf3d286ae1.

* Change default path only on interactive save

Previously, the default save path was changed every time a screenshot
was saved. Now, that only happens when it gets saved from the GUI.

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

* Change --path help text

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

* Allow other image formats

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
2021-08-20 13:10:12 -05:00
Ivan
04cfab4f4d fix: Code typo (#1799) 2021-08-03 20:41:23 -05:00
borgmanJeremy
3cad8084c7 Allow saving to any supported image format (#1790) 2021-07-31 15:03:49 -05:00
Chua Hou
fbfad24a65 Fix save file name with '.'s in it (#1773)
Using QFileInfo::baseName() discards everything after the first ., so
filenames like 1.2.3.4.png would be changed to 1.png. (See #1722).

Changing this to QFileInfo::completeBaseName() only discards the suffix,
so we have 1.2.3.4.jpg becoming 1.2.3.4.png, for example.
2021-07-29 08:10:35 -05:00
nullobsi
115a3a8132 improve screenshot saver copy (#1604)
* small refactor to screenshotsaver clipboard

* clang-format
2021-05-03 17:37:12 -05:00
nullobsi
adcf2501f3 Use image/png on Wayland to improve copy support (#1601)
* wayland clipboard testing

* typo

* cleanup
2021-05-02 12:49:30 -05:00
Yurii Puchkov
55e61b8743 Namecheap - Basic objects editing (move, remove, change color, change thickness) (#1539)
* Code refactoring - rename deleteToolwidgetOrClose to deleteToolWidgetOrClose

(cherry picked from commit cc9d71c660fd335e484b8c2c5a4c9ac939a5b643)

* Code refactoring - move part of code from CaptureWidget::paintEvent function into showInitialMessage

(cherry picked from commit 377b716dc4cdc460e385e9a953850c377283db73)

* Code refactoring - move part of code from CaptureWidget::paintEvent function into showInitialMessage

(cherry picked from commit 377b716dc4cdc460e385e9a953850c377283db73)

* Code refactoring - move part of code from CaptureWidget::paintEvent function into drawInactiveRegion, rename showInitialMessage -> drawInitialMessage

(cherry picked from commit 39bf83588db52b9e5b40fddb2b7a9939a64bd19b)

* Re-implement undo/redo feature with a future ability to work with it as with history with access by index (remove/edit not just for a last item)

(cherry picked from commit d6c6cf51c38b8dd8f51f443f3dcb162e96796a66)

* fix - No bubble border for CircleCountTool

(cherry picked from commit 6ef81efd91d9d8d169c1dafd2801fffd2a722ee8)

* fix - Restore Pen and Brush after the rectangle tool (effects Circle tool without it)

(cherry picked from commit 5239925fa5cf69b6755004f3ab8443d091d731c1)

* Tool objects history (undo) list on Utility Panel - added icon to the items

(cherry picked from commit 4181990f2677a9c8b62c844546f4ac708ecac076)

* Update Ukrainian and Russian translations

(cherry picked from commit eae2fe0f5826eda4d44d1616bbd12ff53a9254dd)

* Feature - remove any created object on CaptureWidget

(cherry picked from commit ed2073fa7c2d4e9067668d5a262a067d3ccf9c9a)

* Search tool object on CaptureWidget on mouse click and select it in UtilityPanel

(cherry picked from commit 5a997dd5608d0bf72af1b50bcfa1779336b842ac)

* Optimize tool object search on CaptureWidget

(cherry picked from commit 7cd4872cb4adb29e847c5e3adfdb3a24a240982b)

* Move selection with Ctrl modificator key only, set correct mouse cursor for dragging and selecting tool objects

(cherry picked from commit bf8e47ccbef33bc765820fe64c12168587117ea6)

* Move tool objects based on AbstractTwoPointTool class

(cherry picked from commit 3f041b76d2da9326f099b7109984b75a4ce0df28)

* Move Text tool objects on CaptureWidget

(cherry picked from commit b71b6db9e1a4c64e19a045096bd7df0d5a3f4b8f)

* Move Pencil tool objects on CaptureWidget

(cherry picked from commit 3a269a57bb38bdfea0596f2a8310de6bd5bdb119)

* Code refactoring - clean up unused and some refactoring

(cherry picked from commit af667f1e25c7c363a42952b20580620c0e6d7925)

* Remove - duplicate 'at' class member with int and uint types

(cherry picked from commit 4b5b2f7a75ce568bd23d170b8d8731f630d1bf48)

* Search for an active object BLUR/PIXELATE and activate it on mouse click

(cherry picked from commit 04cbbdd352e41e23edb4ae596173a6d3971ecdb5)

* Increase search radius for text objects

(cherry picked from commit 4f189bc40b71b82d0e1e5d3ff06e6641616abb8c)

* Code refactoring - remove old unused undo/redo backupPixmap

(cherry picked from commit 1b15b9acf514fce854d5e0f467c10a6e14a333a0)

* Add object selection arownd the object on select for tools based on AbstractTwoPointTool

(cherry picked from commit 26fab8ff365ed0d7ff3eee1191d48248e8a05dcd)

* Add object selection arownd the object on select for tools based on AbstractPathTool

(cherry picked from commit bbf53e4c35a58d313d0cd94b24b86c15f5841483)

* Add object selection arownd the object on select for the TextTool

(cherry picked from commit ec5780b5c1ec59fd8924834f67563df36590c0a6)

* Edit color for any selected object

(cherry picked from commit 465a183978f8e8ff0df0e2c5cf77ec3d3115fccc)

* Code refactoring - fix some missprints in MacOS CI

(cherry picked from commit 99ef8a55d4ca812b6217bd15934c276a2ed5aa57)

* Text object selection has wrong size

(cherry picked from commit cd365060f1bc607ee53a77482af50f71d5ffe674)

* Make more noticeable object selection for TwoPoints and Path tools (except arrows)

(cherry picked from commit 67e304474fd116d95ae6138a50c719186b71bf9a)

* Make more noticeable object selection for Arrows

(cherry picked from commit 066ff0a425ebfc2c235ef756057c086cd75a863f)

* Make more noticeable object selection for Text

(cherry picked from commit e5e0afd5853ae2e8169209a0d9a3a6b1ce42f6e1)

* fix - Make more noticeable object selection for Arrow tool

(cherry picked from commit e1028c7c786d7d8b92b2bd7561193ed5be9066c8)

* fix - add '#include <cmath>' for round function

(cherry picked from commit a043036627587d78bbc916a4590e4e0cb9a6173d)

* Add hotkey for removing objects

(cherry picked from commit 13059461d550fbdd7f43d157c3a87fad43989742)

* Add hotkey for removing objects

(cherry picked from commit 13059461d550fbdd7f43d157c3a87fad43989742)

* Code refactoring - remove outdated parts of undo/redo, some optimisation

(cherry picked from commit 8e08cea690dcbadb61efbab4139b4bd43a9dd91a)

* Add operator = for tool objects to be able to implement undo/redo stack based on the concept of full state saving for each step (just objects, not generated images and layers)

(cherry picked from commit 7ffc850883ea97d807514a15d89ac5dd0e45c9f5)

* Implement basic Undo/Redo step based on QUndoStack (without move and change color steps), some other fixes

(cherry picked from commit 818f3d2939fbe5153787612824e40b3b1997297b)

* Add undo/redo stack for changing color

(cherry picked from commit 2b8a4ffc4f5e39d8531611f516a222288f54224b)

* fix - save objects state before color update for undo/redo stack and do not save state until mouse release event

(cherry picked from commit 4ba79d6b96d89a3010f14d0d9759ff98ae407fd1)

* Add object movement to the undo/redo stack

(cherry picked from commit 1eacc35a15487a815a68db6b7ad5daf8bac7adcf)

* fix - undo/redo from first to the latest item (still with a brutal hack)

(cherry picked from commit 421f43ff5361da1d215465e133b52b407829340c)

* Do not close CaptureWidget if some tool object or selection is active

(cherry picked from commit 17fc95e167dd7ac3c17c8ed39c4bbde03301ea9b)

* Don't change color if right click is not in the object selection area

(cherry picked from commit d8ecead647ca0804c5e7555c8ffa3117abc8f3d1)

* Edit thickness for the existing objects

(cherry picked from commit 9ab45497e60b1316bf50d67ca7d29b84cd70f515)

* fix - restore CaptureWidget thickness on object select

(cherry picked from commit 9ff9de5a915eec65bed66a74e3a5ec7f1bee2719)

* Code refactoring - move repeated code to the function 'activeToolObject'

(cherry picked from commit c388d8c8ec2844c2426148a437f6aaad2a1f7923)

* Code refactoring - remove unused lines and many fixes based on Clang-Tidy

(cherry picked from commit 7e19019dbaa185387b90fe9f45c8a65f057cd582)

* Code refactoring - remove unused lines and many fixes based on Clang-Tidy

(cherry picked from commit 7e19019dbaa185387b90fe9f45c8a65f057cd582)

* fix - Circle Counter Bubble numeration can skip some items if CPU is high loaded at that moment

(cherry picked from commit 6242fe8620bd5a46a7291de41ea8ce5465950664)

* Code refactoring - make m_thickness variable in tool objects private and work with it as get/set methods

(cherry picked from commit f36e823864c1af35aa94809515f786a45915e180)

* fix - CircleTool doesn't place on CaptureWidget without mouse move
Code refactoring - make number of variables private for AbstractTwoPointTool and work with them as get/set methods

(cherry picked from commit 874ebc3afd3da77fcb954e83429e88016518cbca)

* CircleCount - make circles more contrast and mouse preview opaque

(cherry picked from commit cebf3b831cf5751cb0b4b9b83f6f63d60b18dc8c)

* fix - CircleCount selection and changing color for existing object

(cherry picked from commit 477c230194b57af9223a3d68c4ac4f5c1bf3566c)

* fix - Move selection area tool cannot be selected

(cherry picked from commit 38662ff86e6a858c02050de1caa37295bb25d574)

* fix - Selection area disappears on click on existing tool out of area

(cherry picked from commit e98c60e226c9883558718f1278879339dc528973)

* Change MacOS hotkey Command+Backspace -> Backspace

(cherry picked from commit aa96b956348a0192179f03a43a0ce5712ce1a965)

* Make rectangle tool with rounded borders (not cut), Make selection tool without rounded edges

(cherry picked from commit 2fd9c2ad9f5d00dcb9204b09989a66309b43f472)

* fix - Thickness doesn't changed for existing object on changing it in side panel

(cherry picked from commit 271731c89185b982a86bb27e3a7bc441a2942c10)

* fix - Sync selection on CaptureWidget when clicking on tool in panel

(cherry picked from commit 9db0c75ec0e92d5fad5bc3856f46f5ed87c6aefd)

* Change selection on mouse down instead of mouse up event

(cherry picked from commit 3e09778b701498498c144c5e5516f746f1c9088a)

* Code refactoring - remove variable m_rightClick from CaptureWidget, use another existing trigger to detect it

(cherry picked from commit 1abc595ce352b8445a943504a7c359cd0830a640)

* fix - Rectangle preview and final objects are not the same

(cherry picked from commit b31905892a60228cae5c8bcde1f71699eca63447)

* fix - Doesn't save image if the 'use fixed path' checkbox is checked

(cherry picked from commit 1470859aa2c4f28f2c45581891534f3fa4bd6f0a)

* fix - Latest Uploads max size value doesn't restore after reset/import settings

(cherry picked from commit fa72bacfc0bb12313dd351ee246dd567dfc3f3c8)

* fix - impossible to disable the keyboard shortcut by clicking Delete button

(cherry picked from commit 74d36e4b3a333cb81ffb4ad93a2bd5465e79cb94)

* fix - MacOS - Increase and Decrease Size tool icon colors are not changed (dark/light) when changing main tool background color

(cherry picked from commit e48b685c900540a9cd353f71290be04491621fc7)

* fix - Selected region control points cannot be dragged on the screen corners

(cherry picked from commit 08bf02b5ee096c14d10c15853543749d58c51ef4)

* fix - Object selects if mouse pointer above any object when TextTool is active

(cherry picked from commit b7a6a7efc8c3a77c55039721ab0cf388973c25d5)

* fix - Test Tool doesn't close editor on next text item, you can see two editors and one of them will be never closed

(cherry picked from commit eb12f76fd7121d1917659485673305684de523c8)

* Code refactoring - remove function in the CaptureToolObjects class with the same functional

(cherry picked from commit 1a108f7be48d5b4d89960ac4a5f4e82c03762cbc)

* Code refactoring - CaptureWidget::mousePressEvent function is split into a few, code became more readable

(cherry picked from commit dc850b3daa00fa173126d86403c35f3c67c448e6)

* optimization - remove unnecessary calls of CaptureWidget::drawToolsData

(cherry picked from commit c2432bd5602657233ee9506e84a7806bafeb6f68)

* fix - Move tool doesn't work if any object is selected
fix - Active tool stays active if existing object is selected in the Tool Settings panel

(cherry picked from commit 6154feba575f79a06082f72b5c45a869c8d08f42)

* fix - App freezes for a while when changing thickness of the pixelate to the minimal value

(cherry picked from commit 3a1c519c8309b831e4cc4f11b9014b1a9599ba93)

* fix - Text Tool doubles on press ESC when text editing field is active

(cherry picked from commit 00bdebff75a0178a46f38606eec4921fdf2f5917)

* fix - Image is pinned/saved with object selection frame if there is one

(cherry picked from commit 81871860720fa0527f8dcabe1b274b3f03818b7c)

* fix - Object line thickness changes according to previously modified object when switching between objects via object list

(cherry picked from commit a4a367d30e18a743f0df849e7db1aa2dc20af2a6)

* fix - Configuration: Filename doesn't set default value on clear

(cherry picked from commit 289663c0c85f4bae98c1a19a7a05fb1029738c12)

* Update README.md - Global shortcut for Ubuntu 20.04

(cherry picked from commit 3bee0aa0ac937c00113f2bcca818a9a57e6c5530)

* fix - Saved screenshot has selection if some object is selected on Save

(cherry picked from commit e53bb33e804cc7de1102a1ab3069bfb849174b73)

* fix - Saved screenshot has selection if some object is selected on Upload

* fix - Rename "Reset" to "Restore" in file settings for restoring saved file name rules in the configuration widget

(cherry picked from commit d2ac5a330fca902b832fce163e4f5f138dbbcc6b)

* Update Ukrainian and Russian translations

* fix - Shapes are displayed as semi-empty at the very beginning of drawing if the line is thick

(cherry picked from commit d8b09c5d5233fefe3181a69f5200198815bc3ec1)

* fix - MacOS - Button "Tool Settings" is not visible on some displays if displays are vertically aligned

(cherry picked from commit 6af590a859b2708177c34c3ff37725905f4c3bec)

* fix - Incorrect selection border for Rectangle/Pixelate tool

(cherry picked from commit c908d3b67c5d8e2188d2699ac11951110493b756)

* Code refactoring - replace magic numbers

(cherry picked from commit c8e1ce345adb1646659e4e90d314916532d5e67a)

* fix merge conflicts for Internationalization files

* fix - thickness shouldn't be less than one

(cherry picked from commit d8ea8a0db7fffcec601dd3139c57198ba15b64b7)

* Update copyright info

Co-authored-by: Yuriy Puchkov <yuriy.puchkov@namecheap.com>
2021-04-19 19:28:10 -05:00
Tomek
dc1c53f1c3 Auto add file extension when save - issue #1399 (#1521)
* draft of saving with auto added extension

* taking care of file extension, prepared option to use, WIP

* added save last used extension, cleaning needed

* cleaned

* some cleaning

* clang-formatted

* fixed unnecesary  ] in extension

* info about cancel instead of error msg

* changed regex to qstr operations, declaring filters as variables

* added cons to variables

* applied clang-formatt
2021-04-08 14:28:09 -05:00
Jeremy Borgman
7cbc1f076f restructured so clipboard actions happen after copy 2021-04-02 12:36:07 -05:00
Yuriy Puchkov
a64b9803d7 fix - MacOS - Image is not copied to the clipboard when the 'Use JPG format for clipboard' checkbox is set
(cherry picked from commit 802d8bc3dfd2644d264938b4fc1e0adbc39d110b)
2021-02-26 09:20:57 +02:00
Jeremy Borgman
acb9a08e2c removed loop that occured when screenshot failed to save. 2021-02-25 10:33:03 -06:00
Boyuan Yang
a9c7cc7b04 Use SPDX-License-Identifier
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.
2021-02-20 19:22:53 -05:00
Yuriy Puchkov
12e3c9eb39 Sync 'src' with Namecheap master 2021-02-20 13:19:07 +02:00
Yuriy Puchkov
894556d681 Code refactoring - remove Q_OS_MAC64 (is not required, is covered by Q_OS_DARWIN)
(cherry picked from commit e511b521cec6edd9f77916c6ee753329326a5f91)
2021-02-17 18:46:12 +02:00
Yuriy Puchkov
a5cd4cd1bc Code refactoring - remove Q_OS_MACX (is not required, is covered by Q_OS_DARWIN)
(cherry picked from commit 00b9aae5266aaffb9a01a6f689e1829ae8218bdc)
2021-02-17 18:46:12 +02:00
Yuriy Puchkov
296bed0491 Code refactoring - remove Q_OS_MAC (deprecated synonym for Q_OS_DARWIN)
(cherry picked from commit aff1649670aa5ba64f2927933a29c62b06fee21f)
2021-02-17 18:46:12 +02:00
Yuriy Puchkov
74f5ded7db MacOS - Selected area remains on the screen after saving capture (one more attempt to fix not reproducible bug on my laptop)
(cherry picked from commit 75e34746fcbc2819e88a54cc4a18e5df36d5e4f0)
2021-02-17 18:46:12 +02:00
Jeremy Borgman
013c0f1169 fixed issue with mime data on clipboard for jpeg 2021-02-06 19:50:19 -06:00
Jeremy Borgman
2ee76addbd Minor tweaks after code review 2021-02-01 19:57:43 -06:00
Sonu Lohani
a944860d12 Add config for jpg/png when copy 2021-02-01 19:57:43 -06:00
Sonu Lohani
b121c6c72b Fix clang format 2021-02-01 19:57:43 -06:00
Sonu Lohani
8f058f98f3 JPG for clipboard 2021-02-01 19:57:43 -06:00
Jeremy Borgman
9581a698af resolved merge conflicts 2021-01-15 19:02:16 -06:00
brimston3
7f55d0c672 Simplify canonical path generation slightly 2021-01-15 12:49:33 -06:00
brimston3
e07829ec55 Emit dbus captureSaved signal when saving files
New captureSaved signal contains the request ID and canonical path of the saved
file. This allows a dbus listener interested in postprocessing files access to
the path most recently written.
2021-01-15 12:49:33 -06:00
Yuriy Puchkov
7e49d4e5eb Fix - Use fixed path for screenshots to save 2020-10-28 16:14:45 +02:00
Yuriy Puchkov
654455e9ac Merge branch 'flameshot-org-master' into merge-from-upstream
# Conflicts:
#	.github/workflows/Linux-pack.yml
#	CMakeLists.txt
#	appveyor.yml
#	data/graphics.qrc
#	src/tools/imgur/imguruploader.cpp
2020-10-15 15:44:49 +03:00
borgmanJeremy
f11073bc00 fixing icon regression (#1051)
* fixing icon regression

* fixed symlink
2020-10-12 08:40:35 -05:00
Yuriy Puchkov
c92f8e3014 Merge branch 'flameshot-org-master' into bugfix/memory-leak
# Conflicts:
#	.github/workflows/Linux-pack.yml
#	CMakeLists.txt
#	data/graphics.qrc
#	src/config/configwindow.cpp
#	src/tools/imgur/imguruploader.cpp
2020-10-11 20:49:15 +03:00
Ahmed Zetao Yang
ac7142c4df fix: correcting images name 2020-10-11 07:18:16 -05:00
Yuriy Puchkov
8848b25305 Join two similar options 'Save path' and 'Save default path for screenshots' 2020-10-06 14:10:32 +03:00
Yuriy Puchkov
fc86f473cd Update Ukrainian and Russian translations 2020-09-28 15:18:52 +03:00
Yuriy Puchkov
d4d3b9eae0 Merge branch 'master-flameshotorg' into master_nc_merge_upstream
# Conflicts:
#	.travis.yml
#	appveyor.yml
#	data/graphics.qrc
#	data/img/app/keyboard.svg
#	data/img/material/black/delete.png
#	data/img/material/black/delete.svg
#	data/img/material/black/filepath.svg
#	data/img/material/black/shortcut.svg
#	data/img/material/white/filepath.svg
#	data/img/material/white/shortcut.svg
#	data/translations/Internationalization_hu.ts
#	data/translations/Internationalization_ka.ts
#	external/Qt-Color-Widgets/src/color_wheel.cpp
#	external/singleapplication/singleapplication.cpp
#	flameshot.pro
#	src/cli/commandlineparser.cpp
#	src/config/buttonlistview.cpp
#	src/config/configwindow.cpp
#	src/config/configwindow.h
#	src/config/geneneralconf.cpp
#	src/config/geneneralconf.h
#	src/config/uicoloreditor.cpp
#	src/config/uicoloreditor.h
#	src/core/controller.cpp
#	src/core/globalshortcutfilter.cpp
#	src/main.cpp
#	src/third-party/Qt-Color-Widgets/src/color_utils.cpp
#	src/tools/abstractactiontool.h
#	src/tools/abstractpathtool.h
#	src/tools/arrow/arrowtool.cpp
#	src/tools/arrow/arrowtool.h
#	src/tools/blur/blurtool.cpp
#	src/tools/capturetool.h
#	src/tools/circle/circletool.cpp
#	src/tools/circle/circletool.h
#	src/tools/copy/copytool.cpp
#	src/tools/copy/copytool.h
#	src/tools/exit/exittool.cpp
#	src/tools/exit/exittool.h
#	src/tools/imgur/imguruploader.cpp
#	src/tools/launcher/applaunchertool.cpp
#	src/tools/launcher/applaunchertool.h
#	src/tools/launcher/applauncherwidget.cpp
#	src/tools/launcher/openwithprogram.cpp
#	src/tools/line/linetool.cpp
#	src/tools/line/linetool.h
#	src/tools/marker/markertool.cpp
#	src/tools/marker/markertool.h
#	src/tools/move/movetool.cpp
#	src/tools/pencil/penciltool.cpp
#	src/tools/pencil/penciltool.h
#	src/tools/pin/pintool.cpp
#	src/tools/pin/pintool.h
#	src/tools/pin/pinwidget.cpp
#	src/tools/pixelate/pixelatetool.h
#	src/tools/rectangle/rectangletool.cpp
#	src/tools/rectangle/rectangletool.h
#	src/tools/redo/redotool.cpp
#	src/tools/redo/redotool.h
#	src/tools/save/savetool.cpp
#	src/tools/save/savetool.h
#	src/tools/selection/selectiontool.cpp
#	src/tools/selection/selectiontool.h
#	src/tools/sizeindicator/sizeindicatortool.cpp
#	src/tools/sizeindicator/sizeindicatortool.h
#	src/tools/storage/imgur/imguruploader.h
#	src/tools/storage/imgur/imguruploadertool.cpp
#	src/tools/storage/imgur/imguruploadertool.h
#	src/tools/text/textconfig.cpp
#	src/tools/text/texttool.cpp
#	src/tools/text/texttool.h
#	src/tools/toolfactory.cpp
#	src/tools/toolfactory.h
#	src/tools/undo/undotool.cpp
#	src/tools/undo/undotool.h
#	src/utils/confighandler.cpp
#	src/utils/confighandler.h
#	src/utils/dbusutils.cpp
#	src/utils/screenshotsaver.cpp
#	src/utils/screenshotsaver.h
#	src/widgets/capture/buttonhandler.cpp
#	src/widgets/capture/buttonhandler.h
#	src/widgets/capture/capturebutton.cpp
#	src/widgets/capture/capturebutton.h
#	src/widgets/capture/capturewidget.cpp
#	src/widgets/capture/capturewidget.h
#	src/widgets/capture/colorpicker.cpp
#	src/widgets/capturelauncher.cpp
#	src/widgets/infowindow.cpp
#	src/widgets/infowindow.h
#	src/widgets/panel/sidepanelwidget.cpp
#	src/widgets/panel/utilitypanel.cpp
#	src/widgets/panel/utilitypanel.h
#	translations/Internationalization_ca.ts
#	translations/Internationalization_de_DE.ts
#	translations/Internationalization_es.ts
#	translations/Internationalization_fr.ts
#	translations/Internationalization_ja.ts
#	translations/Internationalization_nl.ts
#	translations/Internationalization_pl.ts
#	translations/Internationalization_pt_br.ts
#	translations/Internationalization_ru.ts
#	translations/Internationalization_sk.ts
#	translations/Internationalization_sr.ts
#	translations/Internationalization_tr.ts
#	translations/Internationalization_uk.ts
#	translations/Internationalization_zh_CN.ts
#	translations/Internationalization_zh_TW.ts
2020-09-24 18:52:49 +03:00
Jeremy Borgman
0d5386edd4 Changed clang format to new agreement 2020-09-24 07:53:28 -05:00
Boyuan Yang
2d1d664a57 Remove a trailing space; update translation files 2020-09-23 12:50:43 -05:00
Yuriy Puchkov
b88a5fbce8 Code refactoring - change code style to the new clang-format rules 2020-09-23 15:25:13 +03:00
Jeremy Borgman
d72d1e6ad9 Quick fix for qclipboard / dbus lockup issue 2020-09-13 10:23:28 -05:00
Jeremy Borgman
9bc4ea5700 Fixed it so a notification is always sent when saved to clipboard 2020-09-10 10:36:50 -05:00
Jeremy Borgman
72f52ac3ed Fixed merge conflicts 2020-09-09 19:58:32 -05:00
Jeremy Borgman
c8d15205be reformatted to Mozilla code style 2020-09-04 20:40:45 -05:00
Yurii Puchkov
5c32a9c4a1 Merge branch 'master_nc' into feature/RND-597-flameshot-save-to-the-default-path-without-confirmation 2020-09-04 02:37:08 -07:00
Yuriy Puchkov
0fce7472fd Copy file path (not url) on saving to disk 2020-09-03 18:40:49 +03:00
Yuriy Puchkov
a4d09186d5 Save to the default path without confirmation 2020-09-03 17:26:32 +03:00
Joseph Charamut
93b03ee8f1 Disable extra notification with save-after-copy 2020-02-05 23:14:43 -05:00