Commit Graph

68 Commits

Author SHA1 Message Date
abakkk 60091a94b6 rework of Files.Jsons
In the same way as Files.Images.
2020-09-13 23:50:09 +02:00
abakkk e53e69efcf minor, use array instead of object for "OTHER" shortcuts
Array is more semantically appropriate.
For example 2 actions may have the same translations (error of a translator). With an object (or a map), only the second would be displayed, which is problematic to alert to the problem.

Additionally, handle the case where some GSettings keybinding values are empty.
2020-09-13 15:46:22 +02:00
abakkk 771bad2d59 improve images
* Let the user choose the directory.
* Rework of Files.Images.
* area.currentImage is now an ... image, not an index.
* Add 'switch-image-file-reverse' keybinding.
* Add image gicons (from thumbnails) in the submenu.
* Images are reset on drawing mode left or on images added from the clipboard.
2020-09-11 14:22:18 +02:00
abakkk 8277710510 get all icons from Files.Icons 2020-09-10 15:19:17 +02:00
abakkk 442d20b387 paste image files from clipboard 2020-09-09 22:25:56 +02:00
abakkk 03b73862cc .pot rework
* .pot file can be generated automaticaly from new locale/POTFILES.in.
* move shortcuts key and strings to new shortcut.js
2020-09-09 09:40:45 +02:00
abakkk c1689cac75 rework prefs, settings, locales
Although there is a lot of changes, nothing is important.
2020-09-02 16:16:23 +02:00
abakkk 89067a8dd9 use an Extension class 2020-08-31 13:05:41 +02:00
abakkk 1d95fac3bf add warning log on activation for unsupported GNOME Shell versions
As the extension may work in further GNOME Shell versions without targeted developpement, just add a small warning log without blocking anything.
2020-08-31 11:13:49 +02:00
abakkk a128664921 minor, add 'exported' directive for linters 2020-08-31 11:05:33 +02:00
abakkk b3a1a77160 replace user stylesheet with proper drawing settings
Since the most drawing params can be changed via menu or shortcuts, remove default.css and user.css.

* Missing params like palettes, dash, grid, etc, are added to prefs.
* Add palette choice to menu and shortcuts.
* Some defaults like fonts, line width, etc, are no longer modifiable by the user.
2020-08-31 09:43:00 +02:00
abakkk 01701538bb minor, rework settings 2020-08-23 11:49:26 +02:00
abakkk a1ce4aaf79 Add font family reversed switching 2020-08-06 00:26:10 +02:00
abakkk 39ec1ba888 toggle -> switch 2020-08-06 00:06:01 +02:00
abakkk 1172e9da6f new image shape
Images files are picked from `~/DrawOnYourScreen/images/` (and `extensiondir/images/`)
svg, png, jpeg, ...(pixbuf)
2020-08-01 14:08:17 +02:00
abakkk 96efac1e3f draw.js -> area.js 2020-07-04 08:42:45 +02:00
abakkk ca96e76d12 draw-to-elements 5 2020-07-04 08:35:59 +02:00
abakkk 0c311ae477 draw-to-osd 5 2020-07-03 23:16:43 +02:00
abakkk e50a8c80a7 "Modeless/modal" -> "Grab/ungrab keyboard and pointer"
And add an OSD notification.
2020-06-29 12:21:21 +02:00
abakkk be36fd4de2 Prefs, notifications and pot file
* Add a long timeout for some OSD notifications.
* Change some pref strings.
* "Stroke" -> "Outline"
* Clean pot file
2020-06-28 18:27:23 +02:00
abakkk f02d076ce2 GS 3.24 compatibility 2020-06-27 22:35:43 +02:00
abakkk fbe044a2b9 Add text alignment
Left or right.
Replace unused `rtl`.
2020-06-27 15:10:01 +02:00
abakkk 5bf0ccc4f1 Use a St.Entry for text tool.
All key events go through a hidden St Entry.

* Ibus inputs support.
* GS keyboard support, by moving the keyboard box above the drawing area.
* All convenience keybindings of a St Entry (cursor moves, delete, paste, select all ...).
* Add a writing action mode so some keybindings are disabled when writing (e.g. `Delete` and `Ctrl + A`).
* Draw a thin rectangle as text cursor instead of a text character, so moving the cursor is smoother.

Close #29, #34
2020-06-25 11:41:15 +02:00
abakkk b0c06b8a73 Fix modal toggling criterion
Use `Main._findModal` instead of `Main.actionMode` as the criterion of the toggle direction.

Main.actionMode is not a safe criterion to know if the area is modal. For example, `Main.actionMode` is modified when toggling overview while drawing.
2020-06-24 23:16:22 +02:00
abakkk 0b8786eaa0 Some fixes and polishes around modal toggling and area disabling.
* Close menu before toggling modal (before because the menu changes `Main.actionMode`).
* Hide the helper and update the grid display when toggling modal.
* Signal `stop-drawing` -> `leave-drawing-mode` for consistence.
* `area.disable` -> area `destroy` event handler.
* `area.isInDrawingMode` -> `area.reactive`.
2020-06-22 11:56:34 +02:00
abakkk 98832cec72 toggle modeless / modal
Keybinding to ungrab keyboard and mouse while drawing remains at the top.
To be aware that this create some problems with the shell (DnD #1 and maybe more ?).

related to #6, #9, #20, #24, #33
2020-06-21 01:08:45 +02:00
abakkk 3c14f72f56 osdWindowConstraint
Replace osdWindowConstraint by custom class.
DO NOT Enforce a ratio of 1.
2020-06-21 00:48:21 +02:00
abakkk b364895c7d use showOsd method exclusively 2020-06-20 13:03:21 +02:00
abakkk fa4223b7ce Introduce mirror manipulations
* Reflection (symmetry axis)
* Inversion (symmetry point)

`transformingElement` is locked after selecting it.
2020-06-19 16:54:31 +02:00
abakkk 4907e35778 Introduce resize manipulation
* `SCALE_PRESERVE` (preserve ratio)
* `SCALE` (vertical, horizontal or both)

There is a third transformation, `SCALE_ANGLE`, that is not used because it causes problems to the `elementFinder`. Probably a bug of Cairo.inStroke that do no consider scales.
2020-06-15 22:13:03 +02:00
abakkk 443d1f8662 Introduce move manipulation
* 'Shapes' -> 'Tools' ('Shapes' + 'Manipulations')
* 'TextState' -> 'TextStates'
* Rotation centers are now computed dynamically (when building Cairo or SVG paths).
* Text rotation center is now located at the beginning of the text.
* Text elements gain a 'lineIndex' attribute to retrieve the rotation center of the first line.
2020-06-15 21:09:30 +02:00
abakkk 04894a9031 add "file-rule" drawing element attribute 2020-06-08 22:25:26 +02:00
abakkk 9bde4d3013 add "Open preferences" shortcut
Available since GS 3.36, so the shortcut is hidden for previous versions.
2020-06-08 15:26:55 +02:00
abakkk b4eb418c89 key label translations
Get key label translations by using Gtk.
2020-06-08 14:30:47 +02:00
abakkk 5b7d1eedf4 new polyline shape
Mark vertices with `Enter` and finish drawing by releasing clic, like other shapes.
2020-06-07 20:05:30 +02:00
abakkk b69c4ccf97 new polygon shape
Mark vertices with `Enter` and finish drawing by releasing clic, like other shapes.
2020-06-07 18:57:11 +02:00
abakkk 360ac081ce Add grid overlay 2020-06-05 15:58:58 +02:00
abakkk 91475c8b70 Fix "Hide panel and dock" 2020-06-01 20:28:26 +02:00
abakkk 11a00a25d0 Fix font-color label color
Foreground color markup is not displayed since 3.36, use style instead but the transparency is lost.

close #31
2020-06-01 20:27:05 +02:00
abakkk e0ce5e0096 do not override peristent.json with an empty drawing when changing persistency setting 2020-01-10 13:01:26 +01:00
abakkk 662f229a64 user.css outside extension directory
* Move drawing style to `default.css`.
* Generate (when opening) and handle `user.css` in `~/.local/share/drawOnYourScreen/`.
2020-01-06 21:24:29 +01:00
abakkk 8159ff3f7a minor, metadata 2020-01-06 15:29:01 +01:00
abakkk f4ff709fd3 change imports
* Extension -> Me
* ExtensionJs -> Extension
* Use ExtensionUtils instead of convenience with GS 3.32+
2020-01-05 15:44:51 +01:00
abakkk 17bbe345af new "Open" and "Save" drawing features
* Use a "drawOnYourScreen" subdir in the xdg user data dir
* Info item with the name of the last saved/open json file
* "Open drawing" sub menu with data dir content
* "Save drawing" sub menu with entry
* "Save", "Open previous" and "Open next" keybindings
2020-01-04 00:16:20 +01:00
abakkk f0ac2a21b0 add iconName param to showOsd function
Prepare save and open drawing features.
2020-01-02 00:56:40 +01:00
abakkk bb78937d60 minor, 'DrowOnYourScreen' -> 'DrawOnYourScreen' in licence headers 2019-12-28 13:25:41 +01:00
abakkk 6dd552ae7e fixes after test on GS 3.24
* use var to export extensionJs.manager
* remove duplicated (old) buildPrefsWidget
* set OsdWindow.HIDE_TIMEOUT in a try/catch because HIDE_TIMEOUT is not exported with 'var'
* capture i in callbacks in for(){} (i is changing)
* add 3.24 version as supported
2019-11-29 18:43:42 +01:00
abakkk fbd6ad709c replace separate emitter (DrawingAreaEmitter) by GObject signal
* signals 'show-osd' and 'stop-drawing'
* use level to set no level (null)
* increase maxLevel when level bar is full
2019-11-27 19:01:07 +01:00
abakkk 1af3554f5c improve pointer cursor management
* cross cursor for geometric shapes
* 'hand' cursor for 'ctrl' actions
* default cursor in menu
2019-11-27 06:04:37 +01:00
abakkk 52ca619294 Fix lineWidth
* GS 3.34 compatibility for barLevel, see for example status/volume.js StreamSlider.getLevel():
  * 3.32 : "return 100 * this._stream.volume / this._control.get_vol_max_norm();"
  * 3.34 : "return this._stream.volume / this._control.get_vol_max_norm();"
* allow 0 px lineWidth because stroke lines cannot have color with some transparency
* use warning color in OSD and drawing menu when lineWidth is 0 px
2019-10-11 13:26:08 +02:00