1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-01-19 09:39:48 +00:00
Commit graph

1149 commits

Author SHA1 Message Date
Variable 16a2abf9b4
Added shortcuts (#673)
* add limit change with brush

* Delete Draw.gd

* Delete BaseTool.gd

* Added all shortcuts

* formatting

* Removed 1 shortcut from "Fullscreen"

* Assigned shortcuts to special behaviours

* formatting

* Added configurable shortcuts to special behaviour

* formatting

* Added special behaviour shortcuts and some code im

provements

* a minor fix
2022-04-27 15:03:39 +03:00
AlphinAlbukhari 7b721ca66d
Add Drop Shadow (#674) 2022-04-27 14:48:31 +03:00
Emmanouil Papadeas 63759d3607 Remove affect_selection and has_selection checks from Shaders 2022-04-23 14:39:17 +03:00
Emmanouil Papadeas 2da5b1e944 Outline generation with shaders
This results in both better and faster results. Unfortunately, the shader does not work in the Web version, so we have to rely on the old method for that platform.
2022-04-22 21:11:02 +03:00
Emmanouil Papadeas 7215f3e0a7 Fix formatting
No linter erros fixed yet
2022-04-22 15:42:36 +03:00
Emmanouil Papadeas 19512e4516 Change "Flip" window title to "Mirror Image"
Also made Horizontal enabled by default
2022-04-22 15:38:08 +03:00
Matteo Piovanelli 1a19c3a297
Further speed up of bucket fill (#672)
* Removed some calls to can_pixel_get_drawn by
managing has_selection condition differently

* Refactored `_set_pixel` to shortcircuit.
This allowed shortcircuiting away some tests to speed up common code
paths.

* Further refactor of `_set_pixel`
Removed unused functions. Made conditions for pattern-fills clearer.

* Refactor.

* Refactor.

* Removed dev timers.
2022-04-21 04:57:39 +03:00
Emmanouil Papadeas 7c6cdadb86 Optimize shader-based image effects when there is no selection 2022-04-20 03:06:58 +03:00
Emmanouil Papadeas 1e73ce5aa6 Fix export bug where the path is being changed if there's a folder with the same name as the file 2022-04-20 02:49:48 +03:00
Variable 77513b6ba3
Export conflict (#669)
* add limit change with brush

* Delete Draw.gd

* Delete BaseTool.gd

* added more info about export conflict

* more info about export conflict

* Update Export.gd

* Update ExportDialog.tscn

* fixed a small mistake
2022-04-19 19:29:21 +03:00
Manolis Papadeas bdd32a8239 Make marching ants shader ratio-independent 2022-04-18 15:32:14 +03:00
Matteo Piovanelli 6a7ee3407c
Upgrade/floodfill (#667)
* Implemented floodfill routine by Shawn Hargreaves

* Removed performance timers used for testing

* Reformatting file after setting "Trim Trailing
Whitespace On Save".

* Refactoring to respect code guidelines.

* More reformatting

* More refactoring

* Refactor: added # gdlint: ignore=max-line-length
to line the parser has me set to longer than 100 chars

* Manage selected areas
2022-04-16 12:22:51 +03:00
Manolis Papadeas f42f75aa28 Update TopMenuContainer.gd 2022-04-14 18:33:42 +03:00
Manolis Papadeas fc482831a8 Update tags to 0.10 2022-04-14 18:32:39 +03:00
Manolis Papadeas 93c122f07b Update Uch and Kalpar's social media links 2022-04-14 17:29:32 +03:00
Manolis Papadeas bc11dcfd4b Update the splash screen artworks 2022-04-14 01:13:42 +03:00
Manolis Papadeas 87c4d4c310 Update AboutDialog.gd 2022-04-11 00:43:44 +03:00
Manolis Papadeas b0e4636c66 Properly center the splash screen on application start 2022-04-10 15:41:07 +03:00
Manolis Papadeas d8830d7f06 bool support for shaders
Feature not exposed to the end user yet
2022-04-10 00:04:45 +03:00
Manolis Papadeas c7f9f1d23b vec2 support for shaders
Feature not exposed to the end user yet
2022-04-09 23:28:57 +03:00
Manolis Papadeas d579118bb1 Load textures for sampler2D uniforms in the experimental shader feature
Feature not exposed to the end user yet
2022-04-09 03:42:34 +03:00
Manolis Papadeas 41d9add6a7 Change shader color in the experimental shader feature
Feature not exposed to the end user yet
2022-04-08 02:57:58 +03:00
Manolis Papadeas 8e9243b8c1 Update Main.gd 2022-04-06 00:30:34 +03:00
Manolis Papadeas 980b39d21b Update AboutDialog.gd 2022-04-02 17:10:16 +03:00
Manolis Papadeas 44e5fcfb87 Change global tool option textures 2022-04-01 13:45:24 +03:00
Manolis Papadeas d01d0a287a Make cut not work on locked/invisible layers 2022-03-31 17:30:25 +03:00
Manolis Papadeas 11b6af07f1 Update Translations 2022-03-31 02:29:23 +03:00
Manolis Papadeas a79f368f41 Fix aspect ratio in scale image to work as it does in create image 2022-03-30 16:12:19 +03:00
Manolis Papadeas 8a5cc6860f Move layer and frame initial creation code to Main.gd
From Global.gd
2022-03-29 03:14:41 +03:00
Manolis Papadeas 66ad745c52 Minor code changes 2022-03-29 02:35:32 +03:00
Manolis Papadeas 4cdd20a2fe Fix issue with export preview not working when importing an image 2022-03-27 04:19:47 +03:00
Manolis Papadeas e901fc774a Replace "Export" with "Overwrite" when importing a png
When exporting an imported image, the export will happen immediately, without having the export dialog appear, unless "Export as..." is selected. For .png imported images, the menu option will display "Overwrite" instead of "Export". This makes it clear that if Control + E is pressed on an imported png, that file will be overwritten.
2022-03-25 02:00:40 +02:00
Manolis Papadeas bd6f850ab5 Rename "Flip" into "Mirror Image" 2022-03-24 20:01:31 +02:00
Manolis Papadeas 3727caf9c4 Revert "Use L8 format for selection texture"
This reverts commit 8a3414f83a.
2022-03-23 03:56:47 +02:00
Manolis Papadeas 8a3414f83a Use L8 format for selection texture
Instead of LA8. This should result in slightly less memory usage and is more on par with Godot's BitMap "convert_to_image" method, which will be exposed in Godot 3.5.
2022-03-23 01:48:58 +02:00
Manolis Papadeas 8624ed6da8 Fix macOS shortcuts 2022-03-22 01:48:14 +02:00
Manolis Papadeas 9648b48a96 Remove empty project when importing an image
This should no longer keep empty canvases when importing images
2022-03-21 23:33:45 +02:00
Manolis Papadeas 4cf9c57e84 Don't reset export status when a pxo is saved 2022-03-21 23:07:57 +02:00
Manolis Papadeas 57729ef4e9 Move Moveable Panels to the Panels submenu 2022-03-21 18:04:26 +02:00
Manolis Papadeas bf98dd18e6 Remove the "Palettes" label from the Palettes panel 2022-03-21 16:24:03 +02:00
Manolis Papadeas 1c3103e06b Scale custom cursor with UI size - closes #642 2022-03-21 02:24:13 +02:00
Manolis Papadeas 0e79138d87 Another canvas texture optimization + bug fix with resizing 2022-03-20 18:52:48 +02:00
ArthyChaux 9e5db16994
Optimize canvas texture updates (#661)
In this line, a new texture is generated each time the canvas is updated it seems :
But it is mentionned in the documentation to use `void set_data(image: Image)` instead for slightly faster results, which updates the texture instead of creating a new one.

I hope that it is relevant !

Also, if it is approved, this change should be applied to everywhere it is used (except when initializing the texture)
2022-03-19 19:21:07 +02:00
Manolis Papadeas 9411f37a47 Add a confirmation dialog when deleting a layout 2022-03-18 04:21:38 +02:00
Manolis Papadeas 9128b455e6 Transparent canvas now works properly with scaled UI 2022-03-18 01:08:00 +02:00
Manolis Papadeas 4059cb018b In ResizeCanvas, always set the spinbox values to the current project size 2022-03-18 00:07:40 +02:00
Manolis Papadeas 790cd8533a Changes to ManageLayouts dialog 2022-03-18 00:03:53 +02:00
Manolis Papadeas 21b4f3369f Select layer when clicking a layer button (visible, lock, etc) 2022-03-17 00:12:00 +02:00
Manolis Papadeas bffc36a018 Change Layout menu and rename Edit Mode to Moveable Panels 2022-03-16 00:30:24 +02:00
Manolis Papadeas 5d3963d495 Make panel tabs always visible if there are 2 or more tabs in a single panel 2022-03-12 20:46:17 +02:00
Manolis Papadeas 6d641259d5 Make it possible for extensions to add menu items
With metadata
2022-03-11 01:59:12 +02:00
Manolis Papadeas f2a24aaffd Set grayscale vision node properties instead of in code 2022-03-11 01:48:50 +02:00
Manolis Papadeas 5995788ef7 Update donors & translators 2022-03-11 00:45:48 +02:00
Manolis Papadeas c00aac944e Translate the panel tab names 2022-03-10 19:17:28 +02:00
Manolis Papadeas 294738e48a Disable "From Current Palette" preset option when creating a new palette, if there is no current palette
Fixes #659
2022-03-07 19:33:23 +02:00
Manolis Papadeas 07473bea95 Update UI.gd 2022-03-06 00:15:25 +02:00
Variable 57ea4d25f1
Draw optimizer (#657)
* draw optimizer

* improvements

* some memory improvements

don't think this one's needed but doing it just in case...

* formatting

* add limit change with brush

* fixed a small bug

cache was being kept when frames were changed

* formatting

* change `_cache_limit` on changing `_brush_size`
2022-03-03 14:54:27 +02:00
Manolis Papadeas ce026395df Remember layout on app exit 2022-03-02 00:41:22 +02:00
Manolis Papadeas 2f9de65805 Zen mode no longer makes invisible elements visible again 2022-03-02 00:01:28 +02:00
Manolis Papadeas 175eb0b250 Set minimum size in tools, tool options and timeline 2022-03-01 21:39:07 +02:00
Manolis Papadeas da34f0ae7b Center the global tool options 2022-03-01 02:16:53 +02:00
Manolis Papadeas 092ddc0a7a Fix crash when we change a non-existant texture in a TextureRect
This should never happen, but just in case.
2022-02-28 20:40:13 +02:00
Manolis Papadeas 68414f5bd9 Made pixel perfect into a global tool option
More global tool options will most likely be added soon, most notably tablet pen pressure sensitivity options.
2022-02-28 19:24:14 +02:00
Manolis Papadeas b316cadfb8 Separate global tool options from the color pickers 2022-02-28 18:59:30 +02:00
Variable bec30112f6
improvements to copy\delete methods and (some) tag workflow (#648)
* improvements to copy and delete methods

To allow cloning/deleting an array of frames

* formatting

* adapt to the new copy/delete methods

* Update AnimationTimeline.gd

* removed some bugs

* changed old tag behaviour

tags ahead get further by 1 frame on add_frame()

* modified tag behaviour

* formatting

* removed tag interaction
2022-02-28 03:31:17 +02:00
Manolis Papadeas e05ee53839 Fix mirror button textures having the opposite file name 2022-02-26 19:50:43 +02:00
Variable de2d7b7748
A simple id for extensions (#653)
* A simple id for extensions

A simple id system for extensions using the benefit of groups

* formatting
2022-02-26 16:14:13 +02:00
Variable 906123bab1
Sync import options (#624)
* sync import options (1/2)

* sync import options (2/2)

* resolve format check

* a minor improvement +

some code formatting

* some more formatting

* Some  more formatting

...the checks becoming a pain...

* again you guessed it!

CODE FORMATTING

* used checkbutton instead of simple button

* formatting
2022-02-25 16:08:11 +02:00
Manolis Papadeas 8e126c3bab Load shaders by dragging and dropping and support hint_range values
This is for the experimental shader feature, which isn't exposed to the user yet.
2022-02-24 03:38:13 +02:00
Manolis Papadeas d4373a680b Use preload on the tool scenes again
This makes the initial app load time fast again, as it used to be before the tool logic changes. The code is uglier to read now but it's worth it.

Also optimize update_tool_cursors()
2022-02-23 00:10:16 +02:00
Manolis Papadeas 63a9f2485c Support tools that don't have shortcuts
Might be useful for Extensions that add tools and for the future where we allow users more freedom with shortcut binding, including unbinding shortcuts.
2022-02-22 23:38:47 +02:00
Manolis Papadeas 77f598d969 Added remove_tool() method in Tools
May be useful for extensions that add new tools
2022-02-22 02:58:52 +02:00
Manolis Papadeas 4d3cb86800 Change the look of the mirror buttons 2022-02-21 20:04:39 +02:00
Manolis Papadeas 200d1c73a1 Add a clear_color property to the themes 2022-02-21 18:44:46 +02:00
Manolis Papadeas add9ba926e Remove pre-set tool button nodes, tool setup now being done only in the Tools singleton
Now when making a new tool we only have to set it up in Tools.gd, along with its button and cursor textures and its tool options scene. Previously, we also had to put it in ToolButtons.gd and manually create a button in Tools.tscn
2022-02-21 18:02:02 +02:00
Manolis Papadeas 5bf9da243f Add the Extensions parent node to Main.tscn 2022-02-21 15:46:08 +02:00
Manolis Papadeas 8d0418fe21 Don't do anything if the user adds an already existing extension
The .pck file gets replaced but changes will only be visible on app restart, as there's no way (I think) to unload and then reload the .pck file.
2022-02-21 03:33:05 +02:00
Manolis Papadeas 375f3d4cb6 Implement a basic extension system
Importing .pck or .zip Godot resource pack files into Pixelorama is now possible. This needs to be documented properly, but here's the basic idea, for now at least. This is super early work and I haven't tested it with a proper extension yet, so all of this could be a subject of change. I tested it with a custom theme extension though and it seems to be working perfectly.

Importing resource pack files, either by dragging and dropping them into the app window or by going to Edit>Preferences>Extensions>Add Extension, copies the files into user://extensions/. Extensions can be enabled/disabled and uninstalled. Uninstalling them deletes the resource pack files from user://extensions/.

The extension project source files need to be in a folder inside src/Extensions/ with the same name as the .pck or .zip file. **This is required for now, otherwise it will not work.** Inside that folder there also needs to be an extension.json file, with a structure similar to this:

{
	"name": "ExtensionName",
	"display_name": "Extension Name",
	"description": "A Pixelorama extension",
	"author": "Orama Interactive",
	"version": "0.1",
	"license": "MIT",
	"nodes": [
		"ExtensionExample.tscn"
	]
}

The `nodes` array leads to the packed scene files with the nodes that are to be instantiated. **The root nodes of these scenes need to have the same name as the .tscn files they belong to.** The scripts of these nodes should have _enter_tree() and _exit_tree() methods to handle the extension enabling/disabling (or even uninstalling) logic. Note that .json files need to be included in the export options while exporting the extension from Godot.

Enabling an extension means that the scenes found in the extension.json's "nodes" array get instantiated, and disabling gets rid of these nodes from Pixelorama's SceneTree.
2022-02-19 03:21:08 +02:00
Manolis Papadeas bafcb2620a Tidy up preferences code
Use a Preference class instead of a nested array. Lines of code reduced from 461 to 330. Also fixed a minor bug in the Web version where, when the user changed language, "Interface" was being selected instead.
2022-02-18 01:47:05 +02:00
Manolis Papadeas d37d3c5d3d Even more theme code tidying 2022-02-17 20:57:54 +02:00
Manolis Papadeas 71dcb9807d Theme code cleaning and tidying 2022-02-17 20:36:10 +02:00
Manolis Papadeas 290e8cdb18 Remove mirror nodes from the tool scenes 2022-02-17 16:12:07 +02:00
Manolis Papadeas 93622d5761 Mirroring buttons now affect both left & right tools 2022-02-17 16:07:03 +02:00
Manolis Papadeas 9e7748d2ec Fix rare issue where the splash screen never appears and the program is unresponsive 2022-02-17 15:22:34 +02:00
Manolis Papadeas 8b53773d2d Split View menu into View and Window menus 2022-02-17 00:54:09 +02:00
Manolis Papadeas e0d2393eb2 Fix crash when importing .tres files that are not palettes 2022-02-16 18:23:32 +02:00
Variable 008683a33a
Novhack fill shader (#649)
* Get same color pixels shader (#2)

* Replace same color pixels bucket code with a shader

* Add pattern fill

Co-authored-by: novhack <42614907+novhack@users.noreply.github.com>

* formatting

* some minor changes and fixed a bug

* added similarity feature

* formatting

* Update Bucket.gd

* added similarity feature in shader

Co-authored-by: novhack <42614907+novhack@users.noreply.github.com>
2022-02-16 00:15:53 +02:00
Manolis Papadeas 196c5c2d5d Make the second canvas a separate panel and have it hidden by default 2022-02-15 01:48:49 +02:00
Manolis Papadeas a29aadd519 Use deferred mode for gradient color pickers - Closes #645 2022-02-14 15:37:18 +02:00
Manolis Papadeas 88578fe260 Set the min size of the tools to be a bit smaller 2022-02-13 00:12:47 +02:00
Manolis Papadeas d26d1e294b Fix cursor always being a cross on the canvas even if it's toggled off 2022-02-12 04:25:08 +02:00
Variable f7e866e9cb
Shader vision - Grayscale view (#646)
* ShaderVision Funcionality

* reference to ShaderVision

* Greyscale shader

* A minor code improvement

* decided on a checkbox

* decided on a checkbox

i foresaw the earlier implementation isn't required so i decided on a checkbox

* removed unneeded code

* reverted a mistake commit

* Update TopMenuContainer.gd

* Precieved Brightness
2022-02-12 00:47:26 +02:00
Variable 25fd6026be
Move Guides without moving mouse outside canvas (#647)
* guide movement enhancement

* Gave more access to pan tool

* Update Guide.gd

* Update Guide.gd

* Update Tools.gd
2022-02-11 03:16:33 +02:00
Manolis Papadeas 74df57ed70 Add extra cursor options to the Preferences
Changes "Indicators" to "Cursors" and adds options that let the user use the native mouse cursors of the OS and toggle the cross cursor on or off for the canvas
2022-02-10 22:32:55 +02:00
Manolis Papadeas 1285fa89c5 Added a Scrollcontainer in the timeline
This fixes the issue with the timeline UI nodes affecting the rest of the panels if the timeline becomes too small. Kind of an ugly fix because there can now be two scrollbars visible if there are many frames, eventually we may need to redesign the timeline.
2022-02-10 19:15:57 +02:00
Manolis Papadeas a3e933cf4f Fix a bug where the selection got stuck to the canvas boundaries when they were 1px away from them 2022-02-09 16:14:16 +02:00
Manolis Papadeas a331d697ed Move some variables in AnimationTimeline
No functional changes
2022-02-07 18:10:29 +02:00
Manolis Papadeas 4fe65fabf7 Rename "Dockers" to "Panels" and update Translations.pot 2022-02-07 01:18:19 +02:00
Manolis Papadeas 8394f252f7 Implemented a system that lets the user make and delete their own UI layouts
Layouts are being saved as .tres files in user://layouts
2022-02-06 01:49:54 +02:00
Manolis Papadeas 26d5b8de40 Added MysteryStudio to the splash screen 2022-02-05 23:50:02 +02:00
Manolis Papadeas 1dd7d23682 Minor timeline UI fix 2022-02-04 17:03:57 +02:00
Manolis Papadeas ad9d8cfdbc Properly fix the palette panel initialization issue
And remove the hacky way. The issue is that the swatches were being created and then queue_freed at the end of the frame and not immediately.
2022-02-03 19:57:53 +02:00
Manolis Papadeas f96879012d Fix orphan node 2022-02-03 02:41:14 +02:00
Manolis Papadeas 0893a5b481 Added frame duration appear in the frame button tooltips
Code provided by @Variable-ind
2022-02-02 18:14:16 +02:00
Manolis Papadeas 13229031ed Turn zen mode off when switching between layouts 2022-02-02 02:51:43 +02:00
Variable 4369869e1f
Some Popup changes and added Self Awareness ;) (#644)
* Some Popup changes and added self awareness

start/end is automatically determined by selected cels boundary

* Update FrameTagDialog.gd

* some more code formatting
2022-02-02 00:40:37 +02:00
Manolis Papadeas 12b64316da Added layout selection
Users can currently select between Default and Tallscreen
2022-02-01 02:31:13 +02:00
Manolis Papadeas cbae8bdc77 Put a ScrollContainer in the tool bar 2022-02-01 00:54:33 +02:00
Manolis Papadeas c7649bc061 Save toolbar as a separate scene 2022-01-31 19:01:55 +02:00
Manolis Papadeas 7e9d9a6a73 Make layer button container change color based on theme
Also removed unneeded node from AnimationTimeline
2022-01-31 18:25:52 +02:00
Variable 748a172b7b
Transparency fixes (#641)
* added a node path

* removed a line that's not needed

* added shader transparency "illusion"

before it "Alternate transparent background" was used.

* code formatting

* shader for ui transparency

* some more formatting

* more formatting...
2022-01-31 02:18:04 +02:00
Manolis Papadeas e2bb0b8440
New UI system using Dockable Containers (#640)
* Add dockable container plugin

Experimenting with it, also added a tabs_visible property to the DockableContainer. Removed some code about Tallscreen from Main.gd, but not all of it.

* Add a panel behind the UI, temporarily restore the dark theme

* Remove tallscreen code

* Add edit mode, toggles DockableContainer's tab visibility on and off

* Split tool options into color pickers, left and right tool options

* Remove alternate_transparent_background

* Re-order tool buttons on resize

* Clip content in timeline

* Changes to the tool panel

* Removed some old unused node variables

* Restore Zen mode

* Set tabs_visible = false by default

* Better way to set tabs_visible = false by default

* Added the license of godot-dockable-container

* Remove unneeded lines

* Update README.md

* Restore window transparency with the canvas

It makes all of the TabContainers transparent however, which may not be what we actually want.

* Change tab names of the UI elements

* Remove unneeded nodes from ColorPickers.tscn

* Update default.tres

* Let the user hide elements individually

* Add some checks in HandleThemes

* Center tool icons

* Remove unneeded custom panel in SplashDialog

* Bump version to v0.10-dev and some other minor changes

* Fix crash on Zen Mode

* Added a hacky way to fix the issue with the palette panel size
2022-01-30 00:47:25 +02:00
Manolis Papadeas 2649f0e2b8 Added Portuguese 2022-01-27 20:45:26 +02:00
Manolis Papadeas ec54754159 Remove unneeded line in TransparentChecker.gd 2022-01-26 18:33:53 +02:00
Manolis Papadeas 35b10a1cc4 Rewrite the translators code 2022-01-24 20:11:39 +02:00
Manolis Papadeas 686a49d4c5 Release v0.9.2-stable 2022-01-21 16:03:53 +02:00
Manolis Papadeas 2f9960e15e Update AboutDialog.gd 2022-01-11 03:40:46 +02:00
Manolis Papadeas f7a6ed0289 Don't draw in unavailable layers if multiple cels are selected 2022-01-09 00:53:42 +02:00
Manolis Papadeas 9fb9d06c38 Clear mask in Draw tools if it's not needed and it already exists 2022-01-08 17:44:15 +02:00
Manolis Papadeas db8ded9d66 Fix Pencil bug with transparent colors immediately blending when Overwrite is setto false 2022-01-08 17:18:59 +02:00
Manolis Papadeas 0da52326a3 Quitting now detects if changes have been made in other projects too other than the current 2022-01-07 03:36:16 +02:00
mrtripie f0fbca8b5b
Bugfix: Duplicate Shader in ShaderImageEffect before modifiying its code (#630)
* Fixed issues with Shading tool Saturation and Value not always being right in Hue Shading mode

* Shading tool hue shifting fixes and tweaks

* Duplicate shader resource before modifying its code

* added line before comment

Co-authored-by: MrTriPie <MrTriPie>
2022-01-07 01:49:22 +02:00
Manolis Papadeas c242cd546d Add a checkbox in Preferences for quit confirmation
This has no effect if the project has unsaved changes.
2022-01-05 02:34:45 +02:00
Manolis Papadeas 0fa6879bdf Made guides a little easier to select and drag 2022-01-04 21:00:03 +02:00
Manolis Papadeas 8f701dfee0 Fix #626 2022-01-03 14:05:41 +02:00
Manolis Papadeas 04dda09df5 Do not delete cel content if the layer is locked/invisible 2022-01-01 04:12:49 +02:00
Manolis Papadeas 605e7ab3fd Copy frame duration when cloning a frame 2021-12-31 04:05:04 +02:00
Darshan Phaldesai 51288148ee
Shader Fix Hack (#625) 2021-12-30 18:05:28 +02:00
Manolis Papadeas 95ae81eef1 Fix undo error when the user draws on a locked/invisible layer 2021-12-29 21:48:33 +02:00
Variable bbc56e253e
Spritesheet layer improvements (#623)
* Drastically changed an old func()

"open_image_as_spritesheet_layer" (Hope i didn't break anything...)

* removed whitespace

* some minor changes

spritesheet "Start frame" no longer restricted to existing frames number
and a minor UI change

* solved some format errors
2021-12-28 23:45:46 +02:00
Manolis Papadeas 311f4dd70b Add missing line to Desaturate and InvertColors, and made some changes to ShaderImageEffect 2021-12-27 00:08:06 +02:00
Manolis Papadeas 93268fef43 Fix another bug with Undo/Redo where the app became unresponsive if the user drew outside the canvas 2021-12-25 19:21:09 +02:00
Manolis Papadeas b40c2f5b75 Minor UI changes 2021-12-24 03:12:44 +02:00
Manolis Papadeas 48326900d9 Fix a memory leak coming from the Layer class
Removed the "frame_container" property from Layer.gd, which used to hold a reference to a node, leading to orphan nodes being created and never freed. Memory management seems to be working okay now. Previously, every time the user made a change, memory kept going up and never coming down. Now, data that can never be recovered, like undo data that have been rewritten in history, are also removed from memory.
2021-12-23 19:58:07 +02:00
Manolis Papadeas 6a78351704 Fix undoredo not working if the users draws on a locked/invisible layer 2021-12-21 01:26:58 +02:00
Manolis Papadeas 50885b8769 Release v0.9.1-stable 2021-12-20 13:45:53 +02:00
Manolis Papadeas 30f2873ed1 Remove unneeded method from HTML5FileExchange 2021-12-18 02:31:10 +02:00
Manolis Papadeas 92c252e22d Fixes #618 2021-12-15 01:39:24 +02:00
Manolis Papadeas 28341a18d2 The autosave timer no longer starts after the backup confirmation dialog gets hidden, if the autosave option is turned off in the Preferences 2021-12-14 21:51:52 +02:00
Manolis Papadeas 7b7c572f13 Fix issue where the timeline would be unresponsive if zen mode was toggled off and on 2021-12-12 17:11:25 +02:00
Manolis Papadeas 750fae4713 Project data no longer remain in memory after the user has removed their tab 2021-12-11 21:29:32 +02:00
Manolis Papadeas 057318f659 Pause the app when it loses focus instead of limiting its FPS 2021-12-11 20:02:51 +02:00
Manolis Papadeas 47943703ec Update CHANGELOG & AboutDialog 2021-12-07 02:20:12 +02:00
Manolis Papadeas 02a74d498c Fix shape tool previews not being updated when modifier keys are being pressed 2021-12-06 19:11:50 +02:00
JumpJetAvocado fa27d7fbad
Fix drawing bug reported in issue-555 (#603)
* Fix drawing bug reported in issue-555

* Remove unused parameter from commit_undo() in Draw.gd
2021-12-06 18:38:54 +02:00
Manolis Papadeas af86856dc6 Added a clipboard pattern button
It starts empty and gets updated every time the user copies something.
2021-12-05 18:37:15 +02:00
Manolis Papadeas 086c6c5b9c Remove unneeded font changing code
Welp, I just found out that Godot's font resources have fallback options. Better late than never, I guess.
2021-12-03 02:39:10 +02:00
Manolis Papadeas 563aab3137 Update AboutDialog.gd 2021-12-03 01:45:57 +02:00
Manolis Papadeas 59ee60151e Change "Rectangle Select" undoredo action to "Select" 2021-12-02 13:25:20 +02:00
Manolis Papadeas 67ec887ad1 Just one method for undo/redo in Global.gd 2021-12-02 02:22:32 +02:00
Manolis Papadeas f70efe3076 Move new_empty_frame() to Project.gd from Canvas.gd
This commit also changes the behavior of the fill color. The new cels now only get filled with the Project.fill_color if they are on the bottom layer.
2021-12-01 20:50:50 +02:00
Manolis Papadeas 4c60ef144f Fixed project not having the correct size if the default image size has been changed in the Preferences
Ideally, the new_empty_frame() method should be removed from Canvas and should probably go to Frame or Project.
2021-12-01 20:02:39 +02:00
Manolis Papadeas f7ef4a4283 Remove handle_undo() and handle_redo() from Canvas.gd
Getting rid of some old, unneeded code.
2021-12-01 17:49:22 +02:00
Manolis Papadeas f3d696ef81 Clear code from ShaderEffect.gd
Now inherits from ImageEffect and uses a ShaderImageEffect to generate the image. We get to clear duplicate code that was shared between ShaderEffect.gd and ShaderImageEffect.gd this way, and it also uses the undo/redo logic from ImageEffect instead of Canvas.gd.
2021-12-01 03:41:20 +02:00
Manolis Papadeas 2cab2af561 Preload image effect shaders 2021-12-01 03:04:40 +02:00
Manolis Papadeas 72aef23cce UI changes to the onion skinning settings
Also changed the ignore text to the "_io" suffix instead of "ignore_onion", because this is quicker to type.
2021-12-01 02:28:12 +02:00
Manolis Papadeas 15d987ebae Changed behavior of flip image to make it work as expected with selections
The selection itself also gets flipped, if there is any
2021-11-30 02:42:35 +02:00
Manolis Papadeas 3835a3f0da Fix all of linter errors 2021-11-29 18:58:40 +02:00
Manolis Papadeas e2a68c4ba4 Add an underscore to private method's names
As a way to differentiate between public and private methods, as per the official GDScript naming convention. Haven't changed all of the codebase yet, just some scripts that had a lot of public methods. This fixed 4 of the 7 errors of the linter.
2021-11-29 17:12:30 +02:00
Manolis Papadeas 540a61ae4d Merge onion skinning past and future into one script 2021-11-26 03:38:00 +02:00
Variable 159a821dd2
Better Onion Skinning (#600)
* better onion part (1/3)

changed code and added scripts

* better onion part (2/3)

added some onion variables

* better onion part (3/3)

Added to onion dialog

* removed whitespace that gave static error
2021-11-26 02:55:08 +02:00
Manolis Papadeas 246f6f9be1 Minor code changes 2021-11-25 19:10:04 +02:00
Manolis Papadeas 8c9545e183 Preload tool scenes
The app now opens just a bit faster
2021-11-25 17:42:35 +02:00
Manolis Papadeas 7489ae3777 Optimize update_hint_tooltips() calls
Now gets called once at the beginning instead of multiple times for every shortcut.
2021-11-25 15:16:56 +02:00
Manolis Papadeas c6b9a1fb82
Format code and add static checks (#599)
* gdformat .

* Lint code - Part 1

* Format code - Part 2

* Lint code - Part 2

Trying to fix the max allowed line length errors

* Add normal_map_invert_y to the image .import files

Because of Godot 3.4

* Do not call private methods outside of the script's scope

Lint code - Part 3

* Format code - Part 3

* Fixed more line length exceeded errors - Lint code Part 3

* Export array of licenses - Lint code part 4

* Clean hint_tooltip code from Global

Removes a lot of lines of code

* Create static-checks.yml

* Fix FreeType's license
2021-11-25 14:48:30 +02:00
Manolis Papadeas 41b5db4622 Don't change the cursor tool icon texture _input() call
Seems like my past self has made some pretty embarassing optimization mistakes...
2021-11-23 02:52:21 +02:00
Manolis Papadeas 536250f517 Moved some variables away from Global 2021-11-23 02:36:22 +02:00
Manolis Papadeas c921344b04 Fix splash screen not appearing in the Web version 2021-11-22 21:38:17 +02:00
Manolis Papadeas 79ff0a8d45 Optimize _input() methods 2021-11-22 21:32:39 +02:00
Manolis Papadeas 4931e50213 Move cursot tool icon visibility to ViewportContainer
I have no idea what I was thinking when I put that code inside Canvas' _input()
2021-11-22 18:43:06 +02:00
Manolis Papadeas 36680795ee Move even more code away from Global
The idea is to make the project less dependant on Global. Global should strictly be used for reusable code in multiple places, not as a second Main. I just hope I'm not breaking anything during this process.
2021-11-22 17:37:06 +02:00
Manolis Papadeas 19c062fa07 Move some PopupMenu code away from Global's _ready() 2021-11-22 16:15:36 +02:00
Manolis Papadeas 88365301fb Change window opacity settings to a dedicated dialog with a slider and a spinbox
Changed from a popupmenu with fixed settings. This should give more freedom to the user while improving UX.
2021-11-22 04:47:41 +02:00
Manolis Papadeas f4c903771d Remove some unneeded yield() calls
And minor changes to make the code a tiny bit more clean. I tested this PR, but it still might be a bit risky.
2021-11-17 19:59:14 +02:00
mrtripie 0081aa365a
Guide Color Improvements (#561)
* Symmetry guide color work

* Changed to semi-transparent guides from red, blend slight blue into symmetry guides for variation

Co-authored-by: MrTriPie <MrTriPie>
2021-11-17 01:48:21 +02:00
Variable 3e88efc118
Improvements to Animation Tags (#560)
* Animation tag fix (a)

fixed tag behavior in "Project.gd"

* Animation tag fix (b)

fixed tag behavior in "AnimationTimeline.gd"

* Animation tag fix (c)

fix top part of line not visible

* Animation tag fix (d)

a fix i forgot about earlier

* added a randomizer...

... to auto select colors of new tags

* Fix Tag scrolling without cels when scrolled on it

* removed randomize() cause it's not needed
2021-11-17 00:21:29 +02:00
mrtripie 969aed8070
Cache Save/Open Sprite Dialog's directory, and keep dialogs synced (#559)
* Open/Save Sprite Dialogs now have their directory cached so when reopening Pixelorama they will be set to that directory. Load last project and load recent project also syncs with the open/save dialogs and caches that directory

* Sets a projects default file path to the cached file directory (not sure about) and if the export directory is blank, use the cached file directory

* Changed 'file_dialog_dir' to 'current_dir'

Co-authored-by: MrTriPie <MrTriPie>
2021-11-17 00:17:02 +02:00
Manolis Papadeas 752703878d Use onready vars for nodes in Global.gd
I have no idea why I didn't do that sooner. This cleared over 80 lines of code.
2021-11-16 00:04:50 +02:00
Manolis Papadeas 1fa0b1e1b7 Hide the "Brush colors from" option from the Eraser tool 2021-11-15 02:03:05 +02:00
Manolis Papadeas 9cfa8c82b1 Make the eraser tool's transparency settings work with brushes 2021-11-14 16:19:38 +02:00
Manolis Papadeas 4f02ea1b97 Alt to pick colors with draw tools - Closes #125 2021-11-14 03:30:00 +02:00
mrtripie a9039cccd5
Canvas Rotation (#558)
* Implemented canvas rotation

Co-authored-by: MrTriPie <MrTriPie>
2021-11-13 20:43:37 +02:00
Jeremy Behreandt 429b37f6fc
Use Luminance In Desaturate Shader (#557)
Updated desaturate shader to use perceptual luminance instead of HSV.
2021-11-12 21:46:29 +02:00
Manolis Papadeas 24d25d49ea Implement #429 2021-11-11 03:21:34 +02:00
Manolis Papadeas 0c1fcdea89 Use JavaScript.download_buffer() for file downloading in the Web version
This commit makes Pixelorama unable to run in Godot versions prior to 3.4.

I wonder if there are plans for an upload_buffer() method as well...
2021-11-10 20:16:25 +02:00
Manolis Papadeas 6e5c4fc99f Do not keep decreasing opacity with the Eraser without releasing the mouse first
Only relevant if the opacity strength is less than 255 in the tool options
2021-11-08 19:26:00 +02:00
Manolis Papadeas 056cb76a46 Minor code cleanups 2021-11-06 17:23:54 +02:00
Manolis Papadeas 87261e93c6 Disable "New Brush" in the Edit menu if there is no selection 2021-11-06 17:19:20 +02:00
Manolis Papadeas f6b15cb562 Fixes #552 2021-11-04 02:46:12 +02:00
Manolis Papadeas 77996c769e Implement #540 and a part of #429 for the zoom tool 2021-11-03 02:33:45 +02:00
Manolis Papadeas 11f8402d57 Change the UI scale slider step to 0.25 from 0.1 2021-11-01 18:23:09 +02:00
Manolis Papadeas 93a8e75bcb Change the backup dialog message 2021-10-26 03:34:14 +03:00
Silent Orb 520e31cd7e
Persist palette selection (#549) 2021-10-17 16:20:11 +03:00
Variable 087387a700
Minor adjs to eraser (#548) 2021-10-15 16:31:24 +03:00
Manolis Papadeas c7f238ff19 Don't show the brush color from option in the Shading tool 2021-10-15 15:49:23 +03:00
Manolis Papadeas cdb7ff1004 Add an opacity option for the Eraser's tool options
This lets the user change the strength of the tool. When it has an opacity of 255, the eraser will completely delete the underlying pixels. If it has less than 255, it will simply subtruct that value from the underlying pixel's alpha.
2021-10-12 23:12:05 +03:00
Manolis Papadeas a5e3afa7e2 Start the autosave timer if the user presses X on the backup confirmation dialog 2021-10-11 20:40:26 +03:00
Manolis Papadeas 4b552a1fdd Enable autowrap for the Backup confirmation dialog 2021-10-11 19:55:25 +03:00
Manolis Papadeas 18ed5b2a05 Update CHANGELOG & AboutDialog 2021-10-07 16:57:26 +03:00
Manolis Papadeas b7e598c438 Fix issue with copying and pasting to a different project that has a smaller canvas
Fixes a bug caused by 86e66495b1
2021-10-06 02:02:56 +03:00
Manolis Papadeas 845bf2bab7 Fixes critical bug that is caused by removing a project tab that is to the left of the currently active tab 2021-10-06 01:51:39 +03:00
Variable da070db27e
Log Option (#546)
* Added Log button option
2021-10-05 23:37:16 +03:00
Manolis Papadeas 721cab8765 Minor changes that make Pixelorama work with Android
Just planting the seeds of a possible Android version, probably tablet-only, at least at first. I do not know when that will happen yet.
2021-10-02 15:08:58 +03:00
Laurenz Reinthaler 502c7d9409
Add idle fps setting and fix bug when moving the mouse outside of the application (#543) 2021-09-29 18:03:45 +03:00
Manolis Papadeas 61fa13cde3 Fix notifications not appearing properly when the UI is scaled 2021-09-27 02:41:45 +03:00
Manolis Papadeas 3b7ac1eddf Fix guides not working properly when the UI is scaled 2021-09-27 01:30:53 +03:00
Marquis Kurt cad464eb99
(Port) Port Pixelorama to Ubuntu Touch (#517)
* Add support for creating Ubuntu Touch click packages.

The clickable directory contains the files necessary to create a
click package designed for Ubuntu Touch, a community-driven Linux
distro for mobile phones as an alternative to iOS and Android.

A new CI script has been added to create the packages, which is
copied over from one of my other projects. Please change this to
suit your needs.

A new custom feature "clickable" has been added to the project
settings to allow customizations for the Ubuntu Touch platform.

Signed-off-by: Marquis Kurt <software@marquiskurt.net>

* Make clickable CI follow more closely to desktop builds

* Remove sudo from clickable install step

* Install software-properties-common

* Comment out docker startups in click install

* Change export name for Click version

* Change name and export mode to pack only

* Change means of copying data to clickable dir

* Install sudo to docker

* Add -g to docker add user

* Remove docker user creation

* Remove other chpasswd stuff

* Split CI into two jobs

* Make build-ubports.sh runnable

* Use HiPDI GUI theme on Clickable

* Move clickable folder to Misc, add release CI targets

* Add mobile to clickable settings

* Add pixelorama_data to install data

* Create pixelorama_data subdir in click itself

* Change default save dir for clickable

* Update AppArmor policy

* Update clickable version to test AppArmor

* Revert changes and use user data dir

* Add README pertaining to Ubuntu Touch

* Remove GODOT_MAC_VERSION from UT port workflow

Co-authored-by: Manolis Papadeas <35376950+OverloadedOrama@users.noreply.github.com>
2021-09-25 13:42:31 +03:00
Manolis Papadeas 86e66495b1 Fix issue with copying and pasting to a different project that has a bigger canvas 2021-09-24 19:23:59 +03:00
Manolis Papadeas f948c24430 Fix Changelog URL 2021-09-24 17:39:02 +03:00
Variable 41d88c1839
Boost HSV and Rotation sliders (#531)
* Added a timer to filter out useless values

This timer will determine if you actually want to view these changes or just want to skip ahead

* a live preview checkbox

* Some dialog improvements

* Minor changes/adjustments
2021-09-23 21:25:35 +03:00
Manolis Papadeas 8f115a726e Fix #541 2021-09-22 21:54:16 +03:00
Laurenz Reinthaler ad37c67690
Add buttons for looking at different splash-screen artworks (#538)
Fix overlooked line of code
2021-09-22 16:06:30 +03:00
Manolis Papadeas d584ae0839 Launch of version 0.9 - selections & shapes update 2021-09-18 18:59:15 +03:00
Manolis Papadeas dc413eb724 Update the splash screen with 3 new artworks for v0.9
Art by Wishdream, Roroto and Kamilayza
2021-09-17 16:37:16 +03:00
Manolis Papadeas f3ea6b57cd Fix opening pre-v0.8 pxo files 2021-09-07 20:31:32 +03:00
Manolis Papadeas 7bbc01d978 Keep the tallscreen hsplit container invisible if we're changing panel layout mode in Zen mode 2021-09-06 17:55:26 +03:00
Manolis Papadeas 3d0d0b0335 Bump version to v0.9-rc3 2021-09-06 17:21:10 +03:00
Manolis Papadeas cae4f39a4b Hide the splash dialog when dragging and dropping a file 2021-09-06 15:36:28 +03:00
Manolis Papadeas da8bc0d057 Added a "Licenses" tab in the About menu, which displays Pixelorama's license as well as the software it depends on, such as Godot 2021-09-05 01:07:12 +03:00
Manolis Papadeas 37916b63ca Update the minimum value of the zoom level spinbox on project change 2021-09-04 16:59:23 +03:00
Manolis Papadeas 47b20ff5c3 Fix the canvas preview having incorrect zoom when switching between projects 2021-09-04 15:32:44 +03:00
Manolis Papadeas e4ba665c2a Always display the close button in tabs and let users close projects other than the current 2021-09-01 18:07:36 +03:00
Variable fb93143906
Dialog improvements (#530)
* Dialog Improvements

Preview now scales with resizing Dialog
2021-08-31 05:38:11 -07:00
Variable 32dc69fee6
Guide corrections (#528)
* Fixed guide size
2021-08-30 15:00:04 -07:00
Variable 75059b5b12
Selection fixes (#527)
* Fix for multiple cel selection issue

Now it will only apply selection to the selected cels that are **visible and unlocked**

* Fix for loss of selection data

This will hopefully fix the selection data loss on toggling layer buttons
2021-08-30 03:24:48 -07:00
Jeremy Behreandt c29254c2e8
DrawingAlgos Explicit Project DataType (#526)
I needed to add the data type to project for the scripts to compile.
2021-08-29 15:59:05 -07:00
Manolis Papadeas 680ab481f3 Don't transform content if layer is locked or invisible 2021-08-30 01:22:13 +03:00
Variable ab18e8bdb6
Transparency updates (#525)
* Update with theme instead of only value change

instantly updates with theme (old version updated on value change only)

* shortened some paths
2021-08-29 10:19:08 -07:00
Manolis Papadeas 3482314971 Fix project's selection bitmap having incorrect size when importing a pxo 2021-08-29 16:26:01 +03:00
Manolis Papadeas e088820c74 Bump version to v0.9-rc1 2021-08-28 20:01:05 +03:00
Manolis Papadeas 79e1ab5e61 Remove unneeded Global.update_hint_tooltips() call 2021-08-27 00:49:01 +03:00
Variable ddc69b8282
Editable zoom (#523)
* editable zoom change 1

* editable zoom change 2

* editable zoom change 3

* editable zoom change 4

* editable zoom change 4 part b

added upper limit automation for zoom
2021-08-26 14:23:51 -07:00
Manolis Papadeas 4e51b7211e Made the palette comments TextEdit a big taller 2021-08-26 05:00:05 +03:00
Manolis Papadeas 2518f72319 Fix Select by Color not working properly on non-square canvases 2021-08-25 16:43:04 +03:00
Manolis Papadeas a3f8c960ab Change the FPS value in the spinbox when loading a project in an empty project 2021-08-25 16:37:09 +03:00
Manolis Papadeas 180c775b72 Disable per pixel transparency for OSX
As a temporary workaround for #491
2021-08-24 17:34:58 +03:00
mrtripie de28a9d68e
Shading Tool Hue Shift Fixes + Tweaks (#522)
* Fixed issues with Shading tool Saturation and Value not always being right in Hue Shading mode

* Shading tool hue shifting fixes and tweaks

Co-authored-by: MrTriPie <MrTriPie>
2021-08-23 07:04:52 -07:00
Manolis Papadeas ed45c86649 Remove unused variables from Shading.gd 2021-08-21 17:00:37 +03:00
mrtripie c196a32ebc
Fixed issues with Shading tool Saturation and Value not always being right in Hue Shading mode (#519)
Co-authored-by: MrTriPie <MrTriPie>
2021-08-19 06:49:14 -07:00
Manolis Papadeas 58b1da41a1 Fix hue shifting brightening and darkening on colors between yellow and purple
By yellow and purple I mean hue 60 and hue 270 respectively
2021-08-18 21:53:42 +03:00
Manolis Papadeas e7f8417d0d Subtle toolbar UI changes 2021-08-18 20:13:56 +03:00
Manolis Papadeas 147a08f28b Use outlines textures for tool cursor icons
Instead of using the AutoInvertColors shader
2021-08-18 15:06:10 +03:00
Manolis Papadeas 3dfd597de4 Fix shading tool not working properly with multiple selected cels 2021-08-18 14:42:26 +03:00
Martin Novák 9ef7818c77
Tweak UI to use less empty space (#514)
* Tweak right side panels to use less empty space

* Add fake grabber to tools panel. Add a bottom margin. Fix a few issues with resizing.

* Fix tallscreen mode. Set a bit smaller animation timeline min height.

* Change Preferences visibility settings

* Update Main.tscn

* Fix crash when changing to tallscreen and then switching themes

Co-authored-by: Manolis Papadeas <35376950+OverloadedOrama@users.noreply.github.com>
2021-08-16 16:56:19 -07:00
Martin Novák b95496c57d
Fix dialog sizes (#512) 2021-07-30 16:05:50 -07:00
Manolis Papadeas 4292fcc51f Change behavior of selection quick-copy (Ctrl+Alt+mouse movement)
It should now keep the same image data until the transformation gets confirmed
2021-07-31 02:03:51 +03:00
Manolis Papadeas 06bd56866d Change selection shortcuts: Alt is now used to only move selection and Ctrl+Alt makes a quick copy of the selected content 2021-07-29 16:15:02 +03:00
Manolis Papadeas 1d20295f7d Keep images unlocked after editing them - Should close #331
Not sure if this actually solves the issue or just makes it more rare, but I haven't been able to reproduce any PoolVector locking issues so far. The problem was that images were remained locked essentially all the time, which seemed to cause issues. Maybe other PoolVectors could not get locked?
2021-07-25 21:49:37 +03:00
Manolis Papadeas 68cbf4cfb3 Remove unused method in Draw.gd
Global search for "restore_image" doesn't return anything, so I assume it's unused
2021-07-24 18:42:07 +03:00
Manolis Papadeas ef133f4f71 Fix issue where Cel's image setter was not being called 2021-07-24 18:17:44 +03:00
Manolis Papadeas 65051f0910 Bring back the image_changed setter of the Cel class
Caused issues when importing files
2021-07-22 16:33:20 +03:00
Manolis Papadeas c6a056bba6 Made cloning frames create linked cels if the linked cel button is toggled on - suggestion of #402 2021-07-22 03:10:00 +03:00
Manolis Papadeas 57bb7929df Fixed issue with linked cels where, if you had linked cels in one layer and then linked more cels of the same frame in another layer, their previews did not update automatically
Cel's image_texture was being reset due to the creation of new Cel instances in CelButton.gd (line 113)
2021-07-22 02:25:00 +03:00
Manolis Papadeas 9bec8f1b09 Preload more resources
Had to remove references to Brushes and Patterns classes from BrushesButton.gd and PatternButton.gd due to GDScript's cyclic reference bug
2021-07-21 18:29:52 +03:00
Manolis Papadeas 763a063de7 Made brushes work with the shading tool 2021-07-21 02:19:46 +03:00
Manolis Papadeas 0d5e9ce48a Fix crop image crashes on Windows and maybe also fixed buggy behavior?
Cropping images seem to be working fine now, or at least I haven't encountered any bugs so far
2021-07-21 01:24:39 +03:00
Manolis Papadeas 353702ebc4 Make top bar shape-related text disappear after shape has been drawn with the shape tools 2021-07-21 00:45:57 +03:00
Manolis Papadeas 28b8e000f9 Rewrite the crop image method
Should be a bit faster, but I still get weird bugs at random
2021-07-20 22:06:18 +03:00
Manolis Papadeas d0433bed6f Preload layer and cel button nodes in Project.gd
Just a minor optimization to avoid unnecessary loading
2021-07-20 21:03:15 +03:00
Manolis Papadeas 2c90991482 Closes #509 2021-07-18 14:28:33 +03:00
Manolis Papadeas 6de6c4b800 Closes #506 2021-07-14 18:06:07 +03:00
Manolis Papadeas a40203e5cc Bucket flood fill no longer affects separated selected parts of the canvas 2021-07-11 20:20:37 +03:00
Manolis Papadeas ad4b377bc8 Only click the layer button with the left mouse button 2021-07-10 05:19:09 +03:00
Manolis Papadeas 983d14c0d1 Fix deleting content not working with undo 2021-07-09 12:59:01 +03:00
Manolis Papadeas 55c5688f16 Fix changing cel opacity calling project.frames_changed()
It shouldn't happen
2021-07-09 03:38:06 +03:00
Manolis Papadeas 240e582070 Shape tool blue indicators now reflect their proper shape 2021-07-08 22:26:32 +03:00
Manolis Papadeas 873e2b8e9e The indicator's size of the shape tools should now change depending on the tool's thickness 2021-07-08 21:48:47 +03:00
Manolis Papadeas 2760049cfd Fix content transformation not getting confirmed when changes were done to frames and layers
Also fixes issue where frame/layer copying does not copy the transformed data
2021-07-08 20:46:56 +03:00
Manolis Papadeas 7b343cc30f Fix width and height fields in the create palette dialog that used to remain disabled when the dialog appeared again 2021-07-07 18:32:37 +03:00
Manolis Papadeas a46f21265e Update CHANGELOG & AboutDialog 2021-07-06 14:03:41 +03:00
Manolis Papadeas 0bcb65db62 Update AboutDialog.gd 2021-07-05 19:32:12 +03:00
Manolis Papadeas 4b191139f6 Fix timeline's resize grabber not responding immediatly
It seems that the Canvas-Timeline SplitContainer's split offset had a hardcoded value
2021-07-04 16:09:21 +03:00
Manolis Papadeas cd811d7e78 Fixed issue where "Layer 0" would be renamed when it changed position 2021-07-04 15:29:44 +03:00
Manolis Papadeas 9234005d1a Minor drawing optimization 2021-07-01 18:14:49 +03:00
Manolis Papadeas 43bd054df6 Update translations
Hopefully the final translations for 0.9?
2021-06-30 00:01:39 +03:00
Manolis Papadeas c71d371c8c Change shortcuts of the new tools 2021-06-28 21:52:45 +03:00
Manolis Papadeas 21e2cd6bd0 Dragging and dropping frames to re-arrange them no longer makes selected_cels empty 2021-06-27 18:15:06 +03:00
Manolis Papadeas 98d41fca14 Remove Global.find_node_by_name()
Use the built-in find_node() method instead.
2021-06-26 14:01:07 +03:00
Manolis Papadeas e4aff633bb Change "Current cel" strings to "Selected cels"
Because now we have the ability to select multiple cels
2021-06-25 17:58:41 +03:00
Manolis Papadeas 02278e5fee Fix crash when importing a new project on an empty project 2021-06-24 20:32:30 +03:00
Manolis Papadeas f5d07e660d Do not clear content from selection in selected cels when moving if Alt has been pressed beforehand
This is about Alt + mouse click when moving a selection. See https://github.com/Orama-Interactive/Pixelorama/issues/129#issuecomment-756799706 for more info
2021-06-23 20:38:17 +03:00
Manolis Papadeas 5b74a4292d Fix pasting not working properly on multiple selected cels 2021-06-22 01:46:52 +03:00
Manolis Papadeas db0799bc12 Added Ukrainian 2021-06-21 00:24:39 +03:00
Manolis Papadeas ac631e3e3d Transform selected content of multiple selected cels
Does not work with rotation. It might be a good idea to replace this whole system with one that uses a transformation matrix, to handle rotation and skewing more easily in the future. I'm not a huge fan of this current code.
2021-06-19 19:29:32 +03:00
Laurenz Reinthaler a899d2591d
Use CMD+Shift+H for showing the pixel grid on OSX (#494)
Co-authored-by: Laurenz Reinthaler <reinthalerlaurenz@gmail.com>
2021-06-15 13:03:19 -07:00
Manolis Papadeas 18592ed7c0 Minor UI changes 2021-06-15 01:03:46 +03:00
Manolis Papadeas 79b37a95b3 Fix palette importing not including all colors if they have more than 64 colors 2021-06-14 20:38:46 +03:00
Manolis Papadeas 791e966a71 Update Previews on all mouse events 2021-06-14 19:21:58 +03:00
Manolis Papadeas bdd06d42ce Added tool button size option in the Preferences 2021-06-14 02:14:31 +03:00
Manolis Papadeas 20f5a063fd Get palette colors from all selected cels 2021-06-13 18:27:48 +03:00
Manolis Papadeas de850ce8a1 Ability to select multiple cels and edit them all at once
A rather significant change, so, while I have tested it, it might still be buggy. Implements a part of #306.
2021-06-12 01:06:13 +03:00
Manolis Papadeas 73cce5b740 Set frame delay's min value at 0.01, does not let it become 0 2021-06-11 22:56:38 +03:00
Manolis Papadeas feece75935 Added Norwegian Bokmål 2021-06-11 19:38:34 +03:00
Manolis Papadeas 88e95ce35f Very minor code cleanup in 4 tools 2021-06-09 17:31:58 +03:00
Manolis Papadeas f1ea8e30b2 Fix animation tag spacing 2021-06-09 17:17:53 +03:00
Manolis Papadeas fd8b6b7385 Don't call Project.frame_changed() twice at the beginning 2021-06-07 20:05:50 +03:00
Manolis Papadeas e9bf310934 Implement layer and frame dragging and dropping to re-arrange them in the timeline
Part of #306
2021-06-06 02:19:34 +03:00
Manolis Papadeas 1a87321437 Added a Delete option in cel's right click menu
Delete doesn't actually delete a cel, it just clears its contents. Maybe renaming it to something else would be a good idea.
2021-06-05 13:38:32 +03:00
Manolis Papadeas e7a5b45536 Clicking on a layer button now selects the layer. Double clicking it allows renaming 2021-06-05 03:06:07 +03:00
Manolis Papadeas ecd08ce132 Add a right click popup menu on the frame buttons and move most of the frame related options there
These options used to be on the right click popup menu of the cel buttons. Now, cel options only contain Link/Unlink Cel, for now.
2021-06-05 02:37:33 +03:00
Manolis Papadeas 39b0baca84 Frame numbers in the timeline above the cels are now clickable buttons 2021-06-05 02:11:22 +03:00
Manolis Papadeas a4c9e0e8dd Use AutoInvertColors shader for the cursor tool icons 2021-06-05 02:01:04 +03:00
Manolis Papadeas a67855a7f2 Fix RestoreDefaultButton having an alpha value of 0.5 2021-06-04 22:13:48 +03:00
Manolis Papadeas ec1b29eb5e Let the user change icon colors regardless of theme 2021-06-04 21:44:05 +03:00
Manolis Papadeas 12ce12a292 Replace button icons with single-color textures that change color automatically depending on the theme
There is no longer any need for having specific graphics for each theme, as white colored textures can change their modulation to any color.
2021-06-03 22:42:08 +03:00
Manolis Papadeas fd45344e6b Escape cancels polygon selection making 2021-06-02 03:33:19 +03:00
Manolis Papadeas 489749e305 Fix division by zero crash 2021-06-01 18:43:23 +03:00
Manolis Papadeas 5e1c9dc73b Fix bug where you couldn't resize the selection after pasting 2021-06-01 18:19:16 +03:00
Manolis Papadeas 64e9d14a0e Use Texture resources instead of Image for tool cursor icons 2021-05-31 21:39:33 +03:00
Manolis Papadeas ed229565ad Resize selection with gizmo from center by holding Control after clicking 2021-05-31 03:04:10 +03:00
Manolis Papadeas 2a9420700b Fix image effect preview background not keeping its aspect ratio 2021-05-30 19:20:56 +03:00
Manolis Papadeas 207b3a5630 Update ShaderEffect.gd 2021-05-30 17:42:50 +03:00
Manolis Papadeas 43e733fe65 Fix Move tool's snap to grid movement and take grid offset into account 2021-05-28 17:43:50 +03:00
Manolis Papadeas 6d2f02b782 Let the user change border color and toggle the marching ants effect in the preferences 2021-05-28 03:46:16 +03:00
Manolis Papadeas 5a93af7477 Fix palette highlight not being shown over the selected swatch 2021-05-27 03:14:19 +03:00
Manolis Papadeas 1e6460e439 Keep colors of a palette if the width gets bigger and the height gets smaller 2021-05-26 15:48:26 +03:00
Manolis Papadeas bd84fbbe39 Rename the Lighten/Darken tool to Shading tool 2021-05-26 02:17:49 +03:00
Manolis Papadeas bd085786d5 Fixed issue when pasting and the clipboard image is empty 2021-05-25 22:50:35 +03:00
Manolis Papadeas a77cc05446 Made brush creation from selection a separate menu option
Also works with Ctrl+B. Copying no longer creates a project brush.
2021-05-25 22:48:37 +03:00
Manolis Papadeas 950f075269 Fix resizing palette issue
Having one dimension less than 8 and one higher than 8 caused issues. This should now be fixed.
2021-05-25 14:24:30 +03:00
Manolis Papadeas 4e8acdf002 Updated Translations.pot and some tool hint tooltips 2021-05-25 02:51:10 +03:00
Variable 0257adb97b
Set project name (#490)
* Set project name. Also fixed a bug

Added ability to set project name also fixed a bug that "if the aspect ratio button is pressed and a template of different width and height were selected, then the button also applied on them e.g a template of (but it shouldn't)"
Example: write 1 in width, 2 in height, enable aspect ratio, and then try to change template... a template of 256x240 will give 120x240

* Add files via upload

* Adjust save name to project name

* Add files via upload
2021-05-24 07:03:56 -07:00
Variable 62dc608eea
"Fill inside" option in pencil tool (#489)
I modified some code from  "EIRTeam/Pixelorama" and merged it with pencil tool.
2021-05-23 14:58:19 -07:00
Manolis Papadeas 1b286a95ab Optimize AutoInvertColors shader
Not sure if that single if statement counts as branching code, but it's generally a good idea to avoid if statements in shader code, so I used step instead.
2021-05-22 16:08:11 +03:00
Igor Santarek c5d1e3b52b
Fix for #341. :) (#488) 2021-05-21 15:55:06 -07:00
Manolis Papadeas 5b6f4ebe3e Added Polygon selection tool
Cursor icon is temporary. It works by clicking multiple times on the places you want to create edges, and to complete the polygon you either have to click at the first edge (if you hover the mouse, a circle appears in that position), or you can auto-fill by double clicking.
2021-05-18 01:56:55 +03:00
Manolis Papadeas de649c2057 Simplified AutoInvertColors shader 2021-05-17 03:08:25 +03:00
Manolis Papadeas 6499c0d3d5 Auto invert preview colors based on the screen color
Basically, when the background color of the screen at certain points is dark, the preview at that spot is white, and when it is bright, the preview is white at that spot. This helps to keep the previews always distinguishable, regardless of the background color.
2021-05-17 02:24:49 +03:00
Manolis Papadeas 61e7633365 Optimize Lasso tool's draw_preview()
Do not have it run when we're not creating a selection
2021-05-16 18:55:34 +03:00
Manolis Papadeas b8d055fe01 Added lasso / free select tool
Temporary icon, probably. Should work without problems, but more testing would be nice.
2021-05-16 03:52:13 +03:00
Manolis Papadeas 909f9480cc Correct rectangular and elliptical selection mirroring 2021-05-16 03:19:49 +03:00
Manolis Papadeas d13c5c1063 Added ellipse selection tool
Icons most likely temporary. A bit problematic when the selection is in negative coords and the preview does not work well with mirroring and mirror view. Same is true for the shape tools.
2021-05-14 03:48:33 +03:00
Manolis Papadeas 6b9f860618 Fix brushes being drawn flipped horizontally
My bad!
2021-05-13 21:50:55 +03:00
Manolis Papadeas b28e89e5c4 Users can now resize the left tool bar
Useful since the number of tools has started to grow a lot, and some monitors may not have enough vertical space for all of them.
2021-05-13 01:15:11 +03:00
Manolis Papadeas 336594272c Fix selection resizing issue after having moved the content first 2021-05-12 16:27:35 +03:00
Manolis Papadeas 1827381439 Remove unnecessary image.lock() lines 2021-05-12 15:51:31 +03:00
Manolis Papadeas e8b36bbc61 Fix symmetry guide crash when opening pxo files
Related to the PoolVectorArray locking issue (#331). This still doesn't fix the issue itself, but at least Pixelorama does not crash anymore. It is still possible, though, to fail to load a guide when opening a project. Opening it again may solve the issue.
2021-05-12 15:35:20 +03:00
Manolis Papadeas 99ce07b3ab Added a new line tool
One of the most requested tools has finally been added!
2021-05-12 04:35:20 +03:00
Manolis Papadeas 36652c6b56 Update a palette string 2021-05-11 21:03:11 +03:00
Manolis Papadeas 9e7de0022e Change strings of the select menu 2021-05-11 19:48:16 +03:00
Manolis Papadeas 0b9eb2bbed Change the project's name before saving the pxo file 2021-05-11 14:51:14 +03:00
Manolis Papadeas 1b80100588 Stop movement if content transformation has been confirmed while content is being moved 2021-05-11 04:41:30 +03:00
Manolis Papadeas 969b096efc Alt + mouse click when resizing with gizmos now works as intended when there is an active transformation occurring 2021-05-11 04:15:42 +03:00
Manolis Papadeas 47e83d7163 Added UndoRedo support for selection transformations for tool options and fixed resize content behavior 2021-05-11 00:27:57 +03:00
Manolis Papadeas c859834f7c Fix crash when deleting a frame or layer and there is a transformation occurring 2021-05-10 22:34:40 +03:00
Manolis Papadeas 24da4bd703 Fix selection resizing not keeping the original bitmap after gizmo release 2021-05-10 19:59:55 +03:00
Manolis Papadeas e86dde2fb5 Do not require confirmation when transforming a selection with invisible contents 2021-05-10 18:44:12 +03:00
Variable 729c3ae1af
Tall wide screen corrections (#478)
* a minor visibility change.

made the nodes that were not needed in wide-screen "Invicible"
the visibility will now be controlled procedurally

* Added some lines of code in "change_ui_layout()"

The added lines will control node visibility changes to adjust to current screen mode

* added a line to fix tall-screen "zen-mode"
2021-05-10 08:05:15 -07:00
Manolis Papadeas 70d5fad9fd Make selection tool options not editable when there is no selection 2021-05-09 00:56:23 +03:00
Manolis Papadeas 6adb01aac1 Cursor shape no longer changes when a gizmo is being dragged and the mouse cursor goes above another gizmo 2021-05-08 16:06:02 +03:00