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

139 commits

Author SHA1 Message Date
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 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 7e9d9a6a73 Make layer button container change color based on theme
Also removed unneeded node from AnimationTimeline
2022-01-31 18:25:52 +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 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 057318f659 Pause the app when it loses focus instead of limiting its FPS 2021-12-11 20:02:51 +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 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 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 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 536250f517 Moved some variables away from Global 2021-11-23 02:36:22 +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
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
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 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 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
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
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
Manolis Papadeas c71d371c8c Change shortcuts of the new tools 2021-06-28 21:52:45 +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 db0799bc12 Added Ukrainian 2021-06-21 00:24:39 +03:00
Manolis Papadeas bdd06d42ce Added tool button size option in the Preferences 2021-06-14 02:14:31 +03:00
Manolis Papadeas feece75935 Added Norwegian Bokmål 2021-06-11 19:38:34 +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 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 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 bd84fbbe39 Rename the Lighten/Darken tool to Shading tool 2021-05-26 02:17:49 +03:00
Manolis Papadeas baba43d274 Change the way of how tool icon blue-orange backgrounds work
Instead of having a gazillion icons for each tool and its blue-orange variations, which led us to create 4 different textures for each tool, now we only need one texture for each tool and each theme. The blue-orange background has been made into a different TextureRect for each button.

This makes it easier for people to create new tools. Now, each new tool requires 3 textures (to cover every theme), instead of 12(!). I'm hoping to bring the number down to 1 in a future commit, by automating the theme color converting process.
2021-04-18 15:36:08 +03:00
Martin Novák 42696e7b37
Replace old palette system with a new one (#447)
* Replace old palette system with a new one

* Replace default json palettes with new resource versions

* Add missing translation strings

* Fix Erevoid's issues 2, 3 and 4

* Rewrite palette grid to improve performance
Add middle click scrolling

* Fix index conversion functions

* Fix palettes editing by copying them to XDG user write path

* Add Windows specific fixes

* Add import support for old json palette format

* Add create/edit palette settings check.
Hide add/delete color buttons when no palette is displayed.
2021-04-16 11:09:03 -07:00
Manolis Papadeas cffba7edde Added an option in the Preferences for interface dimming on dialog popup 2021-03-17 19:28:01 +02:00
Manolis Papadeas 097367ac45 Added a missing comma on a string 2021-02-01 17:48:28 +02:00
Manolis Papadeas f03dcfe230 Made Pan tool's shortcut change-able, and added missing translations 2021-01-21 01:58:15 +02:00
kleonc 63838964b3
Renamed enums to follow recommended naming convention (#437) 2021-01-20 06:59:42 -08:00
kleonc eeb97f71e4
One shared offset for rectangular and isometric grids, added "Draw Grid over Tile Mode" toggle (#434)
* One shared offset for rectangular and isometric grids

* One draw call per grid

* Added "Draw Grid over Tile Mode" toggle
2021-01-19 16:17:33 -08:00
kleonc 9c520a65e9
Refactored isometric grid (#430)
* Move get_tile_mode_rect() method to the Project class

* Refactored isometric grid

Now it should be drawn properly in the target rect.
Settings (in pixels):
- cell's AABB size,
- offset from the canvas origin.
2021-01-18 12:59:26 -08:00
kleonc db9980a883
Draw Grid only over Canvas. Added PixelGrid. (#427)
* Draw grid only over the Canvas (when in tiling mode)

* Replace some magic numbers with enums.

It's too easy to break something when adding something new in here. Should be a little harder now.

* Added Pixel Grid.

- Pixel grid is shown only when it's enabled and camera is zoomed close enough.
- Settings: pixel_grid_show_at_zoom (as a percentage because that's what's shown in the settings panel), pixel_grid_color. Default values might need changing.
- To distinguish between grid and pixel grid default settings for grid width, grid height are changed.
- Now both grid and pixel grid are drawn above (after) tile mode. Grid is drawn above (after) pixel grid.
2021-01-16 10:24:46 -08:00
Manolis Papadeas 4da4f4ebb8 If it's trying to load a theme that doesn't exist, default to the first theme
Useful for cases where a user uses a version with a theme, and goes to a previous version where that theme does not exist
2021-01-10 18:20:17 +02:00
Manolis Papadeas 8daacbac5e Added "Performance" tab in Preferences that exposes options related to the application's FPS to the user
This also makes the behavior added in #394 toggle-able.
2021-01-05 20:01:50 +02:00
Manolis Papadeas 359f0d473c Added Japanese translation 2020-12-12 15:05:03 +02:00
Manolis Papadeas 4ca4cbcc01 Added Turkish translation 2020-12-10 20:39:29 +02:00
Manolis Papadeas c39bfe992b Remove wront hint_tooltips from the Preferences 2020-11-18 19:11:48 +02:00
Manolis Papadeas 28ca2cd87e Small improvements and bug fixes to the Display Scale option
When clicking Apply, the zoom level now gets fit to the frame, and the Preferences dialog keeps its focus and its tabs.
2020-11-10 01:32:27 +02:00
Manolis Papadeas f259ceb5e6 Change "Shrink GUI" to "Display Scale" and its step to 0.1 2020-11-09 14:15:42 +02:00
Manolis Papadeas 17b3ed4e88 Moved "Shrink GUI" option from Startup to Interface
Themes are also in the Interface category now, in the Preferences
2020-11-09 01:52:53 +02:00
Manolis Papadeas bd10680f63 Minor changes to the shrink option 2020-11-07 19:12:31 +02:00
gschwind 279228daba
Implement shrink option (#376)
* Add shrink option that allow change default shrink

Shrink option allow to scale the godot application. This path enable
dynamic change of this value in the options.

* Fix the computation of cursor location

For an unknown reason the function get_local_mouse_position return
incorrect current_pixel when shrink is not 1. This path compute the
transformation manually and povide correct values for any shrink value.
2020-11-06 17:57:35 -08:00
Manolis Papadeas 0d5b4416a4 Changed CJK font and fixed some character issues
- The CJK font (for Chinese & Korean) was changed to DroidSansFallback from NotoSansCJKtc. This results in a much smaller exported `.pck` (over 10MB less)

- Fixed Chinese and Korean characters not displaying properly in the Splash dialog and the About dialog.
2020-10-29 00:45:23 +02:00
dasimonde d85efce73a
Add feature request #358 (#368)
* Add feautre request #358

* Remove the if statement in src/UI/Canvas/TileMode.gd

Co-authored-by: Daniel Simon <dasimon@gmx.org>
2020-10-25 16:10:14 -07:00
OverloadedOrama 1ca4b6a199 Fix positioning of the restore default button in Preferences 2020-10-01 22:57:03 +03:00
Erevos 41a9107c45
Theme edits (#342)
* Theme edits

Changed all the themes to be more consistent, buttons and panel containers have rounded edges. Note that the spacings have been switched too, so it needs subtle remakes in the placing of each element. Especially the tool buttons. Also check the themes on preferences (need better spacing) and rulers are not included.

* Some UI fixes

* Reduced size of themes

* Fixed more spacing issues and replaced timeline grabber icon

* Removed old theme icons

* Change purple and light rulers

* Fix purple top menu & caramel rulers

Co-authored-by: Erevoid <Erevoid@users.noreply.github.com>
Co-authored-by: OverloadedOrama <35376950+OverloadedOrama@users.noreply.github.com>
2020-09-29 18:00:43 +03:00
OverloadedOrama 850c5606de Added missing translations
And added hint tooltips to "Pixel Perfect" and "Overwrite Color" buttons
2020-08-27 14:30:26 +03:00
OverloadedOrama a65fc0e00c Added Romanian and Korean 2020-08-25 17:17:43 +03:00
OverloadedOrama 8d1c2e96f3 Finished implementing the isometric grid - Closes #305
Added the ability to change grid type in Preferences, and made an isometric cell size value which affects just the size of the cells of the isometric grid. Also updated translations.
2020-08-20 00:12:07 +03:00
OverloadedOrama 14d958e55f Moved tile mode drawing logic from Canvas to a new script
I mostly did it so I could move tile mode logic into a new node, so I could have control over the drawing order. TileMode.gd also always draws 8 blank rectangles, which are being drawn on top of the grid, in order to hide it if it gets out of boundaries. We are now very close to implementing an isometric grid, #305.

This shouldn't have much of a performance impact, but some more testing is most likely needed.
2020-08-18 17:03:49 +03:00
OverloadedOrama 15cc80bcf7 Updated translations and changelog 2020-08-18 00:01:45 +03:00
OverloadedOrama 35b2c201ae Changed how isometric grid is drawn
Instead of drawing individual lines, execute draw_isometric_tile() multiple times. What this method does is basically draws a single isometric tile, which then gets repeated for the entire canvas size. Also moved all the grid logic to a new script, which gets updated less often that Canvas.gd, for optimization purposes.

Works better than the previous method, although it might be a bit slower, and currently does not work well if the canvas size is not divisible by the grid size. For now, it only gets affected by the grid width. Changing grid height has no effect.
2020-08-17 22:54:33 +03:00
Kinwailo 39808082b6
add follow canvas movement and scale option to transparent checker (#311) 2020-08-17 22:30:58 +03:00
OverloadedOrama 0fbc2987ca Generate theme buttons via code
Instead of having hardcoded nodes. This makes implementing new themes a bit easier.
2020-08-15 00:10:34 +03:00
OverloadedOrama 79bd015c19 Put top menu & ruler styles inside the themes
Instead of using stylebox files.
2020-08-14 00:22:49 +03:00
OverloadedOrama 8734659da1 Added Hungarian, updated list of translators
Norwegian isn't working for some reason.
2020-08-10 03:26:55 +03:00
OverloadedOrama d49c280179 Create language radiobuttons from script 2020-08-10 03:01:46 +03:00
OverloadedOrama 7e3fd089e4 Added color previews next to the themes in Preferences 2020-07-29 04:40:27 +03:00
OverloadedOrama db606a5051 Added a dark texture for the restore to default button
For light & caramel themes
2020-07-29 03:36:19 +03:00
OverloadedOrama 051f3df147 Buttons to reset preferences to default
Similar functionality with Godot's default buttons. The buttons currently aren't visible with the gold & light themes.
2020-07-29 03:16:02 +03:00
OverloadedOrama f88d201e1a Organized Preferences better
As a result, "General" no longer exists.
2020-07-29 01:54:15 +03:00
OverloadedOrama 41a56eec7a Restore backup system in HTML5
Apparently backups do get stored in HTML5. I did not know that. I'm keeping "open last project" hidden though.
2020-06-25 23:25:46 +03:00
OverloadedOrama b8bdcfbb62 Fix Preferences having "General" always chosen when the dialog pops up 2020-06-25 22:27:08 +03:00
OverloadedOrama 8bb1e61d8f If it's HTML5, hide Autosave and Open Last Project options in Preferences 2020-06-25 18:08:39 +03:00
OverloadedOrama 8064d7b459 Fixed shadowed variables crashes/warnings occurring in Godot 3.2.2-rc1 2020-06-13 15:25:12 +03:00
OverloadedOrama 709a401373 Save backups for all opened projects
current_save_paths and backup_save_paths in OpenSave.gd are arrays now, have paths for every project
2020-06-06 02:16:53 +03:00
OverloadedOrama 4e111a7ac0 Created a Projects class
A Project class contains project-specific data like name, undo_redo, frames, layers, tags and brushes. These variables have been moved from Global. This is the first step towards multiple tab support, where each tab will be a different Project.
2020-06-04 21:05:36 +03:00
OverloadedOrama 2f5354ae4d Fixed issue with autosave working even if it's turned off 2020-06-04 14:42:23 +03:00
OverloadedOrama 54b628f6cb Made a Frame class, no longer use multiple Canvases for multiple frames
The Canvas is now single node, instead of having multiple canvases for each frame. This should also be a performance optimization, since there are less canvas nodes, so there are less _input() calls. It should also fix a rare Undo/Redo issue with motion drawing and making lines. Could be unstable, needs more testing.

As a side effect, the guides are now the same for all frames, so this should also close #246.
2020-06-03 02:14:24 +03:00
OverloadedOrama 1762383c6b Use enum instead of strings for Global.theme_type
Another potential small performance boost when changing themes.
2020-06-01 03:36:07 +03:00
OverloadedOrama 9b4956b4f1 Even more Global left/right variables became arrays
ColorAndToolOptions has now the same code for left and right tool options, with more similar refactoring coming soon to places like Canvas and DrawingAlgos
2020-06-01 00:44:53 +03:00
OverloadedOrama 15ef00bf46 Language and theme checkboxes are now radio buttons 2020-05-31 23:48:06 +03:00
OverloadedOrama 71fa2795b1 Added ItemList to themes 2020-05-31 23:43:24 +03:00
Kinwailo 69f08e90fd
Refactoring perferences dialog (#251) 2020-05-31 23:04:59 +03:00
OverloadedOrama a5e10631cd Moved shortcuts code from PreferencesDialog 2020-05-28 19:51:25 +03:00
OverloadedOrama 0e63860092 Split theme related code from PreferencesDialog into HandleThemes.gd 2020-05-28 03:49:14 +03:00
OverloadedOrama 379b574257 Split code from PreferencesDialog.gd to HandleLanguages.gd
Also moved PreferencesDialog script & scene to src/Preferences. More Preferences code splitting will follow.
2020-05-28 03:41:28 +03:00