diff --git a/docs/changelog.md b/docs/changelog.md index 8d7d53f5..7aab75bd 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -27,6 +27,8 @@ This will be the last "major" version using Godot 3. After this release i will s - Improved translations: Spanish, Brasilian Portuguese - Improved UI auto scaling, especially for Windows and OSX - Moved to grid toggle button from the toolbar to the settings +- Removed the canvas background color from the toolbar and moved it to Settings > Canvas Color. The previous setting (Appearance > Default canvas color was removed) +- `.lorien` files do no longer store the canvas background color - Updated to Godot 3.5.3 ## [0.5.0] - 2022-06-12 diff --git a/lorien/Assets/I18n/de.txt b/lorien/Assets/I18n/de.txt index de55c6ab..56126c99 100644 --- a/lorien/Assets/I18n/de.txt +++ b/lorien/Assets/I18n/de.txt @@ -60,12 +60,12 @@ SETTINGS_APPEARANCE Ansicht SETTINGS_RENDERING Rendering SETTINGS_PRESSURE_SENSITIVITY Druckempfindlichkeit SETTINGS_BRUSH_SIZE Default Pinsel Größe -SETTINGS_CANVAS_COLOR Default Canvas Farbe SETTINGS_PROJECT_FOLDER Default Project Ordner SETTINGS_LANGUAGE Sprache SETTINGS_THEME Theme SETTINGS_GRID_SIZE Grid Größe SETTINGS_GRID_PATTERN Grid Pattern +SETTINGS_CANVAS_COLOR Canvas Farbe SETTINGS_AA_METHOD Anti Aliasing Methode SETTINGS_AA_METHOD_NONE Keine SETTINGS_FPS_FOREGROUND Vordergrund Fps diff --git a/lorien/Assets/I18n/en.txt b/lorien/Assets/I18n/en.txt index 6dd45b50..3a74e4dc 100644 --- a/lorien/Assets/I18n/en.txt +++ b/lorien/Assets/I18n/en.txt @@ -62,7 +62,6 @@ SETTINGS_RENDERING Rendering SETTINGS_KEYBINDINGS Keybindings SETTINGS_PRESSURE_SENSITIVITY Pressure Sensitivity SETTINGS_BRUSH_SIZE Default Brush Size -SETTINGS_CANVAS_COLOR Default Canvas Color SETTINGS_PROJECT_FOLDER Default Project Folder SETTINGS_GRID_SIZE Grid Size SETTINGS_LANGUAGE Language @@ -72,6 +71,7 @@ SETTINGS_UI_SCALE_AUTO Auto SETTINGS_UI_SCALE_CUSTOM Custom SETTINGS_GRID_SIZE Grid Size SETTINGS_GRID_PATTERN Grid Pattern +SETTINGS_CANVAS_COLOR Canvas Color SETTINGS_AA_METHOD Anti Aliasing Method SETTINGS_AA_METHOD_NONE None SETTINGS_FPS_FOREGROUND Foreground Fps diff --git a/lorien/Assets/I18n/es.txt b/lorien/Assets/I18n/es.txt index 6ba2ca07..c3fa7638 100644 --- a/lorien/Assets/I18n/es.txt +++ b/lorien/Assets/I18n/es.txt @@ -59,7 +59,7 @@ SETTINGS_APPEARANCE Apariencia SETTINGS_RENDERING Renderizado SETTINGS_PRESSURE_SENSITIVITY Sensibilidad de Presión SETTINGS_BRUSH_SIZE Tamaño de Pincel Predeterminado -SETTINGS_CANVAS_COLOR Color de Canvas Predeterminado +SETTINGS_CANVAS_COLOR Color de Canvas SETTINGS_PROJECT_FOLDER Carpeta de Proyectos Predeterminada SETTINGS_LANGUAGE Idioma SETTINGS_THEME Tema diff --git a/lorien/Assets/I18n/fr.txt b/lorien/Assets/I18n/fr.txt index 92d158c4..16719c4a 100644 --- a/lorien/Assets/I18n/fr.txt +++ b/lorien/Assets/I18n/fr.txt @@ -59,7 +59,6 @@ SETTINGS_APPEARANCE Apparence SETTINGS_RENDERING Affichage SETTINGS_PRESSURE_SENSITIVITY Sensibilité de la pression SETTINGS_BRUSH_SIZE Épaisseur par défaut de la brosse -SETTINGS_CANVAS_COLOR Couleur par défaut du canevas SETTINGS_PROJECT_FOLDER Dossier par défaut du projet SETTINGS_LANGUAGE Langue SETTINGS_THEME Thème @@ -67,6 +66,7 @@ SETTINGS_AA_METHOD Méthode d'anticrénelage SETTINGS_AA_METHOD_NONE Aucun SETTINGS_FPS_FOREGROUND Fps lorsque actif SETTINGS_FPS_BACKGROUND Fps lorsque inactif +SETTINGS_CANVAS_COLOR Couleur du canevas SETTINGS_BRUSH_CAPS Extrémités des tracés SETTINGS_BRUSH_CAPS_FLAT Plates SETTINGS_BRUSH_CAPS_ROUND Arrondies diff --git a/lorien/Assets/I18n/it.txt b/lorien/Assets/I18n/it.txt index b5b60bf8..f8bfbe74 100644 --- a/lorien/Assets/I18n/it.txt +++ b/lorien/Assets/I18n/it.txt @@ -27,8 +27,7 @@ TOOLBAR_TOOLTIP_LINE_TOOL Strumento Linea {{ shortcut_list("shortcut_line_ TOOLBAR_TOOLTIP_ERASER_TOOL Gomma per cancellare {{ shortcut_list("shortcut_eraser_tool") }} TOOLBAR_TOOLTIP_SELECT_TOOL Seleziona strumento {{ shortcut_list("shortcut_select_tool") }} TOOLBAR_TOOLTIP_BRUSH_COLOR Colore Pennello -TOOLBAR_TOOLTIP_BRUSH_SIZE Dimensione del Pennello -TOOLBAR_TOOLTIP_CANVAS_COLOR Colore della Tela +TOOLBAR_TOOLTIP_BRUSH_SIZE Dimensione del Pennello TOOLBAR_FULLSCREEN_TOGGLE Commuta la modalità a schermo intero # ----------------------------------------------------------------------------- @@ -60,7 +59,6 @@ SETTINGS_APPEARANCE Aspetto SETTINGS_RENDERING Rendering SETTINGS_PRESSURE_SENSITIVITY Sensibilità alla pressione SETTINGS_BRUSH_SIZE Dimensione Pennello Predefinita -SETTINGS_CANVAS_COLOR Colore Tela Predefinito SETTINGS_PROJECT_FOLDER Cartella di Progetto Predefinita SETTINGS_LANGUAGE Lingua SETTINGS_THEME Tema @@ -68,6 +66,7 @@ SETTINGS_AA_METHOD Metodo Anti-Aliasing SETTINGS_AA_METHOD_NONE Nessuno SETTINGS_FPS_FOREGROUND Fps in primo piano SETTINGS_FPS_BACKGROUND Fps sullo sfondo +SETTINGS_CANVAS_COLOR Colore della Tela SETTINGS_BRUSH_CAPS Modalità arrotondamento pennello SETTINGS_BRUSH_CAPS_FLAT Piatto SETTINGS_BRUSH_CAPS_ROUND Rotondo diff --git a/lorien/Assets/I18n/ko.txt b/lorien/Assets/I18n/ko.txt index 94ec9dfe..f72151f2 100644 --- a/lorien/Assets/I18n/ko.txt +++ b/lorien/Assets/I18n/ko.txt @@ -29,7 +29,6 @@ TOOLBAR_TOOLTIP_ERASER_TOOL 지우개 {{ shortcut_list("shortcut_eraser_tool TOOLBAR_TOOLTIP_SELECT_TOOL 범위 선택 {{ shortcut_list("shortcut_select_tool") }} TOOLBAR_TOOLTIP_BRUSH_COLOR 브러쉬 색깔 TOOLBAR_TOOLTIP_BRUSH_SIZE 브러쉬 크기 -TOOLBAR_TOOLTIP_CANVAS_COLOR 배경 색깔 TOOLBAR_FULLSCREEN_TOGGLE 전체화면/원래대로 # ----------------------------------------------------------------------------- @@ -61,7 +60,6 @@ SETTINGS_APPEARANCE 모양 SETTINGS_RENDERING 렌더링 SETTINGS_PRESSURE_SENSITIVITY 필압 민감도 SETTINGS_BRUSH_SIZE 기본 브러쉬 크기 -SETTINGS_CANVAS_COLOR 기본 배경 색깔 SETTINGS_PROJECT_FOLDER 기본 프로젝트 풀더 SETTINGS_LANGUAGE 언어 SETTINGS_THEME 테마 @@ -72,6 +70,7 @@ SETTINGS_AA_METHOD 안티에일리어싱 SETTINGS_AA_METHOD_NONE 없음 SETTINGS_FPS_FOREGROUND 필기 프레임 SETTINGS_FPS_BACKGROUND 배경 프레임 +SETTINGS_CANVAS_COLOR 배경 색깔 SETTINGS_BRUSH_CAPS 브러쉬 끝 부분 모양 SETTINGS_BRUSH_CAPS_FLAT 평평하게 SETTINGS_BRUSH_CAPS_ROUND 둥굴게 diff --git a/lorien/Assets/I18n/pt-BR.txt b/lorien/Assets/I18n/pt-BR.txt index 575a37f1..4f6eb712 100644 --- a/lorien/Assets/I18n/pt-BR.txt +++ b/lorien/Assets/I18n/pt-BR.txt @@ -29,7 +29,6 @@ TOOLBAR_TOOLTIP_ERASER_TOOL Borracha {{ shortcut_list("shortcut_eraser_tool" TOOLBAR_TOOLTIP_SELECT_TOOL Ferramenta de Seleção {{ shortcut_list("shortcut_select_tool") }} TOOLBAR_TOOLTIP_BRUSH_COLOR Cor do Pincel TOOLBAR_TOOLTIP_BRUSH_SIZE Tamanho do Pincel -TOOLBAR_TOOLTIP_CANVAS_COLOR Cor da Área de Desenho TOOLBAR_FULLSCREEN_TOGGLE (Des)ativar Tela Cheia # ----------------------------------------------------------------------------- @@ -62,7 +61,7 @@ SETTINGS_RENDERING Renderização SETTINGS_KEYBINDINGS Teclas de Atalho SETTINGS_PRESSURE_SENSITIVITY Sensibilidade à Pressão SETTINGS_BRUSH_SIZE Tamanho Padrão do Pincel -SETTINGS_CANVAS_COLOR Cor Padrão da Área de Desenho +SETTINGS_CANVAS_COLOR Cor da Área de Desenho SETTINGS_PROJECT_FOLDER Pasta Padrão do Projeto SETTINGS_LANGUAGE Idioma SETTINGS_THEME Tema diff --git a/lorien/Assets/I18n/ru.txt b/lorien/Assets/I18n/ru.txt index 6c5a6c2b..387d5534 100644 --- a/lorien/Assets/I18n/ru.txt +++ b/lorien/Assets/I18n/ru.txt @@ -26,7 +26,6 @@ TOOLBAR_TOOLTIP_RECTANGLE_TOOL Rectangle Tool {{ shortcut_list("shortcut_rectan TOOLBAR_TOOLTIP_LINE_TOOL Линия {{ shortcut_list("shortcut_line_tool") }} TOOLBAR_TOOLTIP_ERASER_TOOL Стерка {{ shortcut_list("shortcut_eraser_tool") }} TOOLBAR_TOOLTIP_SELECT_TOOL Выделить {{ shortcut_list("shortcut_select_tool") }} -TOOLBAR_TOOLTIP_BRUSH_COLOR Цвет кисти TOOLBAR_TOOLTIP_BRUSH_SIZE Размер кисти TOOLBAR_TOOLTIP_CANVAS_COLOR Цвет холста @@ -59,7 +58,7 @@ SETTINGS_APPEARANCE Внешний вид SETTINGS_RENDERING Рендеринг SETTINGS_PRESSURE_SENSITIVITY Pressure Sensitivity # TODO SETTINGS_BRUSH_SIZE Размер кисти по умолчанию -SETTINGS_CANVAS_COLOR Цвет холста по умолчанию +SETTINGS_CANVAS_COLOR Цвет кисти SETTINGS_PROJECT_FOLDER Папка проекта по умолчанию SETTINGS_LANGUAGE Язык SETTINGS_THEME Тема diff --git a/lorien/Assets/I18n/tr.txt b/lorien/Assets/I18n/tr.txt index b72a534a..eea9ba26 100644 --- a/lorien/Assets/I18n/tr.txt +++ b/lorien/Assets/I18n/tr.txt @@ -29,7 +29,6 @@ TOOLBAR_TOOLTIP_ERASER_TOOL Silgi {{ shortcut_list("shortcut_eraser_tool") } TOOLBAR_TOOLTIP_SELECT_TOOL Seçim Aracı {{ shortcut_list("shortcut_select_tool") }} TOOLBAR_TOOLTIP_BRUSH_COLOR Fırça Rengi TOOLBAR_TOOLTIP_BRUSH_SIZE Fırça Boyutu -TOOLBAR_TOOLTIP_CANVAS_COLOR Tuval Rengi TOOLBAR_FULLSCREEN_TOGGLE Tam Ekran # ----------------------------------------------------------------------------- @@ -62,7 +61,7 @@ SETTINGS_RENDERING Rendering SETTINGS_KEYBINDINGS Tuşlar SETTINGS_PRESSURE_SENSITIVITY Basınç Hassaslığı SETTINGS_BRUSH_SIZE Varsayılan Fırça Boyutu -SETTINGS_CANVAS_COLOR Varsayılan Tuval Rengi +SETTINGS_CANVAS_COLOR Tuval Rengi SETTINGS_PROJECT_FOLDER Varsayılan Proje Klasörü SETTINGS_GRID_SIZE Izgara Boyutu SETTINGS_LANGUAGE Dil diff --git a/lorien/Assets/I18n/zh-CN.txt b/lorien/Assets/I18n/zh-CN.txt index 37e18b8d..d2569c1c 100644 --- a/lorien/Assets/I18n/zh-CN.txt +++ b/lorien/Assets/I18n/zh-CN.txt @@ -29,7 +29,6 @@ TOOLBAR_TOOLTIP_ERASER_TOOL 橡皮擦 {{ shortcut_list("shortcut_eraser_tool TOOLBAR_TOOLTIP_SELECT_TOOL 选择工具 {{ shortcut_list("shortcut_select_tool") }} TOOLBAR_TOOLTIP_BRUSH_COLOR 画笔颜色 TOOLBAR_TOOLTIP_BRUSH_SIZE 画笔大小 -TOOLBAR_TOOLTIP_CANVAS_COLOR 画布颜色 TOOLBAR_FULLSCREEN_TOGGLE 切换全屏 # ----------------------------------------------------------------------------- @@ -61,7 +60,7 @@ SETTINGS_APPEARANCE 外观 SETTINGS_RENDERING 渲染 SETTINGS_PRESSURE_SENSITIVITY 压力敏感度 SETTINGS_BRUSH_SIZE 默认画笔大小 -SETTINGS_CANVAS_COLOR 默认画布颜色 +SETTINGS_CANVAS_COLOR 画布颜色 SETTINGS_PROJECT_FOLDER 默认项目路径 SETTINGS_LANGUAGE 语言 SETTINGS_THEME 主题 diff --git a/lorien/Assets/I18n/zh-TW.txt b/lorien/Assets/I18n/zh-TW.txt index 4006a666..e0d08b4e 100644 --- a/lorien/Assets/I18n/zh-TW.txt +++ b/lorien/Assets/I18n/zh-TW.txt @@ -29,7 +29,6 @@ TOOLBAR_TOOLTIP_ERASER_TOOL 橡皮擦 {{ shortcut_list("shortcut_eraser_tool TOOLBAR_TOOLTIP_SELECT_TOOL 選擇工具 {{ shortcut_list("shortcut_select_tool") }} TOOLBAR_TOOLTIP_BRUSH_COLOR 畫筆顏色 TOOLBAR_TOOLTIP_BRUSH_SIZE 畫筆大小 -TOOLBAR_TOOLTIP_CANVAS_COLOR 畫布底色 TOOLBAR_FULLSCREEN_TOGGLE 全螢幕切換 # ----------------------------------------------------------------------------- @@ -61,7 +60,7 @@ SETTINGS_APPEARANCE 外觀 SETTINGS_RENDERING 渲染 SETTINGS_PRESSURE_SENSITIVITY 筆壓敏感度 SETTINGS_BRUSH_SIZE 預設畫筆大小 -SETTINGS_CANVAS_COLOR 預設畫布底色 +SETTINGS_CANVAS_COLOR 畫布底色 SETTINGS_PROJECT_FOLDER 預設專案目錄 SETTINGS_LANGUAGE 語言 SETTINGS_THEME 佈景主題 diff --git a/lorien/InfiniteCanvas/InfiniteCanvas.gd b/lorien/InfiniteCanvas/InfiniteCanvas.gd index f7bafcd1..8372e41d 100644 --- a/lorien/InfiniteCanvas/InfiniteCanvas.gd +++ b/lorien/InfiniteCanvas/InfiniteCanvas.gd @@ -37,6 +37,7 @@ var _scale := Config.DEFAULT_UI_SCALE func _ready(): _optimizer = BrushStrokeOptimizer.new() _brush_size = Settings.get_value(Settings.GENERAL_DEFAULT_BRUSH_SIZE, Config.DEFAULT_BRUSH_SIZE) + set_background_color(Settings.get_value(Settings.APPEARANCE_CANVAS_COLOR, Config.DEFAULT_CANVAS_COLOR)) _active_tool._on_brush_size_changed(_brush_size) _active_tool.enabled = false diff --git a/lorien/InfiniteCanvas/InfiniteCanvasGrid.gd b/lorien/InfiniteCanvas/InfiniteCanvasGrid.gd index 6cff1ff9..7945a20d 100644 --- a/lorien/InfiniteCanvas/InfiniteCanvasGrid.gd +++ b/lorien/InfiniteCanvas/InfiniteCanvasGrid.gd @@ -42,6 +42,7 @@ func set_grid_pattern(pattern: int) -> void: # ------------------------------------------------------------------------------------------------- func set_canvas_color(c: Color) -> void: _grid_color = c * 1.25 + update() # ------------------------------------------------------------------------------------------------- func set_grid_scale(size: float): diff --git a/lorien/Main.gd b/lorien/Main.gd index a4fb0a9d..852bf655 100644 --- a/lorien/Main.gd +++ b/lorien/Main.gd @@ -31,7 +31,6 @@ func _ready(): OS.set_window_title("Lorien v%s" % Config.VERSION_STRING) get_tree().set_auto_accept_quit(false) - _canvas.set_background_color(Config.DEFAULT_CANVAS_COLOR) var docs_folder = OS.get_system_dir(OS.SYSTEM_DIR_DOCUMENTS) _file_dialog.current_dir = Settings.get_value(Settings.GENERAL_DEFAULT_PROJECT_DIR, docs_folder) _export_dialog.current_dir = Settings.get_value(Settings.GENERAL_DEFAULT_PROJECT_DIR, docs_folder) @@ -47,7 +46,6 @@ func _ready(): _toolbar.connect("new_project", self, "_on_create_new_project") _toolbar.connect("save_project", self, "_on_save_project") _toolbar.connect("brush_size_changed", self, "_on_brush_size_changed") - _toolbar.connect("canvas_background_changed", self, "_on_canvas_background_changed") _toolbar.connect("tool_changed", self, "_on_tool_changed") _menubar.connect("create_new_project", self, "_on_create_new_project") @@ -72,6 +70,7 @@ func _ready(): _settings_dialog.connect("ui_scale_changed", self, "_on_scale_changed") _settings_dialog.connect("grid_size_changed", self, "_on_grid_size_changed") _settings_dialog.connect("grid_pattern_changed", self, "_on_grid_pattern_changed") + _settings_dialog.connect("canvas_color_changed", self, "_on_canvas_color_changed") # Initialize scale _on_scale_changed() @@ -237,10 +236,6 @@ func _make_project_active(project: Project) -> void: _menubar.make_tab(project) _menubar.set_tab_active(project) - # TODO: find a better way to apply the color to the picker - var default_canvas_color = Config.DEFAULT_CANVAS_COLOR.to_html() - _background_color_picker.color = Color(project.meta_data.get(ProjectMetadata.CANVAS_COLOR, default_canvas_color)) - # ------------------------------------------------------------------------------------------------- func _is_mouse_on_ui() -> bool: var on_ui := Utils.is_mouse_in_control(_menubar) @@ -339,6 +334,11 @@ func _on_grid_size_changed(size: int) -> void: func _on_grid_pattern_changed(pattern: int) -> void: _canvas_grid.set_grid_pattern(pattern) +# ------------------------------------------------------------------------------------------------- +func _on_canvas_color_changed(color: Color) -> void: + _canvas.set_background_color(color) + _canvas_grid.set_canvas_color(color) + # ------------------------------------------------------------------------------------------------- func _on_clear_canvas() -> void: _canvas.clear() @@ -408,10 +408,6 @@ func _on_file_selected_to_save_project(filepath: String) -> void: # ------------------------------------------------------------------------------------------------- func _on_canvas_background_changed(color: Color) -> void: _canvas.set_background_color(color) - var project: Project = ProjectManager.get_active_project() - if project != null: - project.meta_data[ProjectMetadata.CANVAS_COLOR] = color.to_html() - project.dirty = true # ------------------------------------------------------------------------------------------------- func _on_undo_action() -> void: diff --git a/lorien/Main.tscn b/lorien/Main.tscn index 8cc61cee..701de673 100644 --- a/lorien/Main.tscn +++ b/lorien/Main.tscn @@ -58,7 +58,6 @@ margin_top = 38.0 margin_right = 1920.0 margin_bottom = 78.0 file_dialog_path = NodePath("../../FileDialog") -background_color_picker_path = NodePath("../../BackgroundColorPickerPopup/PanelContainer/ColorPicker") [node name="Statusbar" parent="." instance=ExtResource( 3 )] anchor_top = 1.0 @@ -92,10 +91,10 @@ margin_bottom = 202.0 custom_styles/panel = SubResource( 1 ) [node name="ColorPicker" type="ColorPicker" parent="BackgroundColorPickerPopup/PanelContainer"] -margin_left = 64.0 -margin_top = 64.0 -margin_right = 373.0 -margin_bottom = 468.0 +margin_left = 84.0 +margin_top = 84.0 +margin_right = 393.0 +margin_bottom = 488.0 edit_alpha = false presets_enabled = false presets_visible = false @@ -207,6 +206,7 @@ margin_bottom = 45.0 popup_exclusive = true [node name="AboutDialog" parent="." instance=ExtResource( 9 )] +visible = false anchor_left = 0.5 anchor_top = 0.5 anchor_right = 0.5 diff --git a/lorien/Misc/Settings.gd b/lorien/Misc/Settings.gd index 2e623482..0f5a37de 100644 --- a/lorien/Misc/Settings.gd +++ b/lorien/Misc/Settings.gd @@ -4,7 +4,6 @@ extends Node const DEFAULT_SECTION := "settings" const SHORTCUTS_SECTION := "shortcuts" const GENERAL_PRESSURE_SENSITIVITY := "general_pressure_sensitvity" -const GENERAL_DEFAULT_CANVAS_COLOR := "general_default_canvas_color" const GENERAL_DEFAULT_BRUSH_SIZE := "general_default_brush_size" const GENERAL_DEFAULT_PROJECT_DIR := "general_default_project_dir" const GENERAL_LANGUAGE := "general_language" @@ -13,6 +12,7 @@ const APPEARANCE_UI_SCALE_MODE := "appearance_ui_scale_mode" const APPEARANCE_UI_SCALE := "appearance_ui_scale" const APPEARANCE_GRID_PATTERN := "appearance_grid_pattern" const APPEARANCE_GRID_SIZE := "appearance_grid_size" +const APPEARANCE_CANVAS_COLOR := "appearance_canvas_color" const RENDERING_AA_MODE := "rendering_aa_mode" const RENDERING_FOREGROUND_FPS := "rendering_foreground_fps" const RENDERING_BACKGROUND_FPS := "rendering_background_fps" diff --git a/lorien/ProjectManager/ProjectManager.gd b/lorien/ProjectManager/ProjectManager.gd index 245dff3d..cfa44334 100644 --- a/lorien/ProjectManager/ProjectManager.gd +++ b/lorien/ProjectManager/ProjectManager.gd @@ -45,10 +45,7 @@ func add_project(filepath: String = "") -> Project: print_debug("Project already in open project list") return p - var canvas_color: Color = Settings.get_value(Settings.GENERAL_DEFAULT_CANVAS_COLOR, Config.DEFAULT_CANVAS_COLOR) - var project := Project.new() - project.meta_data[ProjectMetadata.CANVAS_COLOR] = canvas_color.to_html(false) project.id = _open_projects.size() project.filepath = filepath project.loaded = project.filepath.empty() # empty/unsaved/new projects are loaded by definition diff --git a/lorien/ProjectManager/ProjectMetadata.gd b/lorien/ProjectManager/ProjectMetadata.gd index e8361407..694ab589 100644 --- a/lorien/ProjectManager/ProjectMetadata.gd +++ b/lorien/ProjectManager/ProjectMetadata.gd @@ -4,7 +4,6 @@ extends Node const CAMERA_ZOOM := "camera_zoom" const CAMERA_OFFSET_X := "camera_offset_x" const CAMERA_OFFSET_Y := "camera_offset_y" -const CANVAS_COLOR := "canvas_color" # ------------------------------------------------------------------------------------------------- func make_dict(canvas: InfiniteCanvas) -> Dictionary: @@ -14,7 +13,6 @@ func make_dict(canvas: InfiniteCanvas) -> Dictionary: CAMERA_OFFSET_X: str(cam.offset.x), CAMERA_OFFSET_Y: str(cam.offset.y), CAMERA_ZOOM: str(cam.zoom.x), - CANVAS_COLOR: canvas.get_background_color().to_html(false), } # ------------------------------------------------------------------------------------------------- @@ -24,14 +22,6 @@ func apply_from_dict(meta_data: Dictionary, canvas: InfiniteCanvas) -> void: var new_cam_zoom_str: String = meta_data.get(CAMERA_ZOOM, "1.0") var new_cam_offset_x_str: String = meta_data.get(CAMERA_OFFSET_X, "0.0") var new_cam_offset_y_str: String = meta_data.get(CAMERA_OFFSET_Y, "0.0") - var new_canvas_color: String = meta_data.get(CANVAS_COLOR, Config.DEFAULT_CANVAS_COLOR.to_html()) cam.offset = Vector2(float(new_cam_offset_x_str), float(new_cam_offset_y_str)) cam.set_zoom_level(float(new_cam_zoom_str)) - canvas.set_background_color(Color(new_canvas_color)) - -# ------------------------------------------------------------------------------------------------- -func get_canvas_color_from_dict(meta_data: Dictionary) -> Color: - if meta_data.has(CANVAS_COLOR): - return Color(meta_data[CANVAS_COLOR]) - return Config.DEFAULT_CANVAS_COLOR diff --git a/lorien/UI/Dialogs/SettingsDialog.gd b/lorien/UI/Dialogs/SettingsDialog.gd index d32a1c72..087dea8b 100644 --- a/lorien/UI/Dialogs/SettingsDialog.gd +++ b/lorien/UI/Dialogs/SettingsDialog.gd @@ -17,6 +17,7 @@ const UI_SCALE_CUSTOM_INDEX := 1 # ------------------------------------------------------------------------------------------------- signal ui_scale_changed +signal canvas_color_changed(color) signal grid_size_changed(size) signal grid_pattern_changed(pattern) @@ -27,7 +28,7 @@ onready var _tab_appearance: Control = $MarginContainer/TabContainer/Appearance onready var _tab_rendering: Control = $MarginContainer/TabContainer/Rendering onready var _pressure_sensitivity: SpinBox = $MarginContainer/TabContainer/General/VBoxContainer/PressureSensitivity/PressureSensitivity onready var _brush_size: SpinBox = $MarginContainer/TabContainer/General/VBoxContainer/DefaultBrushSize/DefaultBrushSize -onready var _canvas_color: ColorPickerButton = $MarginContainer/TabContainer/General/VBoxContainer/DefaultCanvasColor/DefaultCanvasColor +onready var _canvas_color: ColorPickerButton = $MarginContainer/TabContainer/Appearance/VBoxContainer/CanvasColor/CanvasColor onready var _project_dir: LineEdit = $MarginContainer/TabContainer/General/VBoxContainer/DefaultSaveDir/DefaultSaveDir onready var _theme: OptionButton = $MarginContainer/TabContainer/Appearance/VBoxContainer/Theme/Theme onready var _aa_mode: OptionButton = $MarginContainer/TabContainer/Rendering/VBoxContainer/AntiAliasing/AntiAliasing @@ -59,7 +60,7 @@ func _apply_language() -> void: # ------------------------------------------------------------------------------------------------- func _set_values() -> void: var brush_size = Settings.get_value(Settings.GENERAL_DEFAULT_BRUSH_SIZE, Config.DEFAULT_BRUSH_SIZE) - var canvas_color = Settings.get_value(Settings.GENERAL_DEFAULT_CANVAS_COLOR, Config.DEFAULT_CANVAS_COLOR) + var canvas_color = Settings.get_value(Settings.APPEARANCE_CANVAS_COLOR, Config.DEFAULT_CANVAS_COLOR) var project_dir = Settings.get_value(Settings.GENERAL_DEFAULT_PROJECT_DIR, "") var theme = Settings.get_value(Settings.APPEARANCE_THEME, Types.UITheme.DARK) var aa_mode = Settings.get_value(Settings.RENDERING_AA_MODE, Config.DEFAULT_AA_MODE) @@ -96,7 +97,7 @@ func _set_values() -> void: match grid_pattern: Types.GridPattern.DOTS: _grid_pattern.selected = GRID_PATTERN_DOTS_INDEX Types.GridPattern.LINES: _grid_pattern.selected = GRID_PATTERN_LINES_INDEX - Types.GridPattern.NONE: _grid_pattern.selected = GRID_PATTERN_NONE_INDEX + Types.GridPattern.NONE: _grid_pattern.selected = GRID_PATTERN_NONE_INDEX _project_dir.text = project_dir _foreground_fps.value = foreground_fps _background_fps.value = background_fps @@ -146,8 +147,9 @@ func _on_DefaultBrushSize_value_changed(value: int) -> void: Settings.set_value(Settings.GENERAL_DEFAULT_BRUSH_SIZE, int(value)) # ------------------------------------------------------------------------------------------------- -func _on_DefaultCanvasColor_color_changed(color: Color) -> void: - Settings.set_value(Settings.GENERAL_DEFAULT_CANVAS_COLOR, color) +func _on_CanvasColor_color_changed(color: Color) -> void: + Settings.set_value(Settings.APPEARANCE_CANVAS_COLOR, color) + emit_signal("canvas_color_changed", color) # ------------------------------------------------------------------------------------------------- func _on_GridSize_value_changed(value: int) -> void: diff --git a/lorien/UI/Dialogs/SettingsDialog.tscn b/lorien/UI/Dialogs/SettingsDialog.tscn index b5d5361d..bf50c55f 100644 --- a/lorien/UI/Dialogs/SettingsDialog.tscn +++ b/lorien/UI/Dialogs/SettingsDialog.tscn @@ -8,11 +8,12 @@ [sub_resource type="StyleBoxEmpty" id=1] -[sub_resource type="StyleBoxEmpty" id=2] - [sub_resource type="StyleBoxEmpty" id=3] +[sub_resource type="StyleBoxEmpty" id=2] + [node name="SettingsDialog" type="WindowDialog"] +visible = true margin_right = 520.0 margin_bottom = 250.0 rect_min_size = Vector2( 520, 270 ) @@ -42,6 +43,7 @@ __meta__ = { } [node name="General" type="Control" parent="MarginContainer/TabContainer"] +visible = false anchor_right = 1.0 anchor_bottom = 1.0 margin_top = 27.0 @@ -108,37 +110,10 @@ min_value = 1.0 value = 12.0 allow_greater = true -[node name="DefaultCanvasColor" type="HBoxContainer" parent="MarginContainer/TabContainer/General/VBoxContainer"] -margin_top = 66.0 -margin_right = 496.0 -margin_bottom = 83.0 -size_flags_horizontal = 3 - -[node name="Label" type="Label" parent="MarginContainer/TabContainer/General/VBoxContainer/DefaultCanvasColor"] -margin_right = 246.0 -margin_bottom = 17.0 -size_flags_horizontal = 3 -size_flags_vertical = 6 -text = "SETTINGS_CANVAS_COLOR" - -[node name="DefaultCanvasColor" type="ColorPickerButton" parent="MarginContainer/TabContainer/General/VBoxContainer/DefaultCanvasColor"] -margin_left = 250.0 -margin_right = 496.0 -margin_bottom = 17.0 -size_flags_horizontal = 3 -custom_styles/hover = SubResource( 2 ) -custom_styles/pressed = SubResource( 2 ) -custom_styles/focus = SubResource( 2 ) -custom_styles/disabled = SubResource( 2 ) -custom_styles/normal = SubResource( 2 ) -flat = true -color = Color( 0.12549, 0.129412, 0.141176, 1 ) -edit_alpha = false - [node name="DefaultSaveDir" type="HBoxContainer" parent="MarginContainer/TabContainer/General/VBoxContainer"] -margin_top = 87.0 +margin_top = 66.0 margin_right = 496.0 -margin_bottom = 108.0 +margin_bottom = 87.0 size_flags_horizontal = 3 [node name="Label" type="Label" parent="MarginContainer/TabContainer/General/VBoxContainer/DefaultSaveDir"] @@ -159,15 +134,15 @@ placeholder_text = "e.g. C:/Users/me/Lorien" placeholder_alpha = 0.5 [node name="HSeparator4" type="HSeparator" parent="MarginContainer/TabContainer/General/VBoxContainer"] -margin_top = 112.0 +margin_top = 91.0 margin_right = 496.0 -margin_bottom = 136.0 +margin_bottom = 115.0 custom_constants/separation = 24 [node name="Language" type="HBoxContainer" parent="MarginContainer/TabContainer/General/VBoxContainer"] -margin_top = 140.0 +margin_top = 119.0 margin_right = 496.0 -margin_bottom = 165.0 +margin_bottom = 144.0 size_flags_horizontal = 3 [node name="Label" type="Label" parent="MarginContainer/TabContainer/General/VBoxContainer/Language"] @@ -186,9 +161,9 @@ size_flags_horizontal = 3 text = "English" [node name="HSeparator" type="HSeparator" parent="MarginContainer/TabContainer/General/VBoxContainer"] -margin_top = 169.0 +margin_top = 148.0 margin_right = 496.0 -margin_bottom = 181.0 +margin_bottom = 160.0 custom_constants/separation = 12 custom_styles/separator = SubResource( 3 ) @@ -202,7 +177,6 @@ text = "SETTINGS_RESTART_NOTICE" align = 1 [node name="Appearance" type="Control" parent="MarginContainer/TabContainer"] -visible = false anchor_right = 1.0 anchor_bottom = 1.0 margin_top = 27.0 @@ -285,10 +259,37 @@ step = 0.1 value = 1.0 script = ExtResource( 3 ) -[node name="GridPattern" type="HBoxContainer" parent="MarginContainer/TabContainer/Appearance/VBoxContainer"] +[node name="CanvasColor" type="HBoxContainer" parent="MarginContainer/TabContainer/Appearance/VBoxContainer"] margin_top = 74.0 margin_right = 496.0 -margin_bottom = 99.0 +margin_bottom = 91.0 +size_flags_horizontal = 3 + +[node name="Label" type="Label" parent="MarginContainer/TabContainer/Appearance/VBoxContainer/CanvasColor"] +margin_right = 246.0 +margin_bottom = 17.0 +size_flags_horizontal = 3 +size_flags_vertical = 6 +text = "SETTINGS_CANVAS_COLOR" + +[node name="CanvasColor" type="ColorPickerButton" parent="MarginContainer/TabContainer/Appearance/VBoxContainer/CanvasColor"] +margin_left = 250.0 +margin_right = 496.0 +margin_bottom = 17.0 +size_flags_horizontal = 3 +custom_styles/hover = SubResource( 2 ) +custom_styles/pressed = SubResource( 2 ) +custom_styles/focus = SubResource( 2 ) +custom_styles/disabled = SubResource( 2 ) +custom_styles/normal = SubResource( 2 ) +flat = true +color = Color( 0.12549, 0.129412, 0.141176, 1 ) +edit_alpha = false + +[node name="GridPattern" type="HBoxContainer" parent="MarginContainer/TabContainer/Appearance/VBoxContainer"] +margin_top = 95.0 +margin_right = 496.0 +margin_bottom = 120.0 size_flags_horizontal = 3 [node name="Label" type="Label" parent="MarginContainer/TabContainer/Appearance/VBoxContainer/GridPattern"] @@ -310,9 +311,9 @@ items = [ "Dots", null, false, 0, null, "Lines", null, false, 1, null, "None", n selected = 0 [node name="GridSize" type="HBoxContainer" parent="MarginContainer/TabContainer/Appearance/VBoxContainer"] -margin_top = 103.0 +margin_top = 124.0 margin_right = 496.0 -margin_bottom = 124.0 +margin_bottom = 145.0 size_flags_horizontal = 3 [node name="Label" type="Label" parent="MarginContainer/TabContainer/Appearance/VBoxContainer/GridSize"] @@ -335,9 +336,9 @@ value = 12.0 allow_greater = true [node name="HSeparator5" type="HSeparator" parent="MarginContainer/TabContainer/Appearance/VBoxContainer"] -margin_top = 128.0 +margin_top = 149.0 margin_right = 496.0 -margin_bottom = 140.0 +margin_bottom = 161.0 custom_constants/separation = 12 custom_styles/separator = SubResource( 1 ) @@ -506,13 +507,13 @@ dialog_autowrap = true [connection signal="value_changed" from="MarginContainer/TabContainer/General/VBoxContainer/PressureSensitivity/PressureSensitivity" to="." method="_on_PressureSensitivity_value_changed"] [connection signal="value_changed" from="MarginContainer/TabContainer/General/VBoxContainer/DefaultBrushSize/DefaultBrushSize" to="." method="_on_DefaultBrushSize_value_changed"] -[connection signal="color_changed" from="MarginContainer/TabContainer/General/VBoxContainer/DefaultCanvasColor/DefaultCanvasColor" to="." method="_on_DefaultCanvasColor_color_changed"] [connection signal="text_changed" from="MarginContainer/TabContainer/General/VBoxContainer/DefaultSaveDir/DefaultSaveDir" to="." method="_on_DefaultSaveDir_text_changed"] [connection signal="item_selected" from="MarginContainer/TabContainer/General/VBoxContainer/Language/OptionButton" to="." method="_on_OptionButton_item_selected"] [connection signal="item_selected" from="MarginContainer/TabContainer/Appearance/VBoxContainer/Theme/Theme" to="." method="_on_Theme_item_selected"] [connection signal="item_selected" from="MarginContainer/TabContainer/Appearance/VBoxContainer/UIScale/HBoxContainer/UIScaleOptions" to="." method="_on_UIScaleOptions_item_selected"] [connection signal="gui_input" from="MarginContainer/TabContainer/Appearance/VBoxContainer/UIScale/HBoxContainer/UIScale" to="MarginContainer/TabContainer/Appearance/VBoxContainer/UIScale/HBoxContainer/UIScale" method="_on_UIScale_gui_input"] [connection signal="value_changed" from="MarginContainer/TabContainer/Appearance/VBoxContainer/UIScale/HBoxContainer/UIScale" to="." method="_on_UIScale_value_changed"] +[connection signal="color_changed" from="MarginContainer/TabContainer/Appearance/VBoxContainer/CanvasColor/CanvasColor" to="." method="_on_CanvasColor_color_changed"] [connection signal="item_selected" from="MarginContainer/TabContainer/Appearance/VBoxContainer/GridPattern/GridPattern" to="." method="_on_GridPattern_item_selected"] [connection signal="value_changed" from="MarginContainer/TabContainer/Appearance/VBoxContainer/GridSize/GridSize" to="." method="_on_GridSize_value_changed"] [connection signal="item_selected" from="MarginContainer/TabContainer/Rendering/VBoxContainer/AntiAliasing/AntiAliasing" to="." method="_on_AntiAliasing_item_selected"] diff --git a/lorien/UI/Toolbar.gd b/lorien/UI/Toolbar.gd index 93010c7e..0f077f29 100644 --- a/lorien/UI/Toolbar.gd +++ b/lorien/UI/Toolbar.gd @@ -9,7 +9,6 @@ signal undo_action signal redo_action signal toggle_brush_color_picker signal brush_size_changed(size) -signal canvas_background_changed(color) signal tool_changed(t) # ------------------------------------------------------------------------------------------------- @@ -19,7 +18,6 @@ const BUTTON_NORMAL_COLOR = Color.white # ------------------------------------------------------------------------------------------------- export var file_dialog_path: NodePath -export var background_color_picker_path: NodePath onready var _new_button: TextureButton = $Console/Left/NewFileButton onready var _save_button: TextureButton = $Console/Left/SaveFileButton @@ -30,8 +28,6 @@ onready var _redo_button: TextureButton = $Console/Left/RedoButton onready var _color_button: Button = $Console/Left/ColorButton onready var _brush_size_label: Label = $Console/Left/BrushSizeLabel onready var _brush_size_slider: HSlider = $Console/Left/BrushSizeSlider -onready var _background_color_picker: ColorPicker = get_node(background_color_picker_path) -onready var _background_color_picker_popup: Popup = get_node(background_color_picker_path).get_parent().get_parent() # meh... onready var _fullscreen_btn: TextureButton = $Console/Right/FullscreenButton onready var _tool_btn_brush: TextureButton = $Console/Left/BrushToolButton onready var _tool_btn_rectangle: TextureButton = $Console/Left/RectangleToolButton @@ -45,8 +41,6 @@ var _last_active_tool_button: TextureButton # ------------------------------------------------------------------------------------------------- func _ready(): var brush_size: int = Settings.get_value(Settings.GENERAL_DEFAULT_BRUSH_SIZE, Config.DEFAULT_BRUSH_SIZE) - get_tree().get_root().connect("size_changed", self, "_on_window_resized") - _background_color_picker.connect("color_changed", self, "_on_background_color_changed") _brush_size_label.text = str(brush_size) _brush_size_slider.value = brush_size _last_active_tool_button = _tool_btn_brush @@ -155,19 +149,6 @@ func _on_SelectToolButton_pressed(): _change_active_tool_button(_tool_btn_selection) emit_signal("tool_changed", Types.Tool.SELECT) -# ------------------------------------------------------------------------------------------------- -func _on_BackgroundColorButton_pressed(): - _background_color_picker_popup.popup() - - # Stop popup from automatically adjusting position - _background_color_picker_popup.rect_position.y = get_parent().rect_size.y - -# Workaround for a bug in godot: https://github.com/godotengine/godot/issues/38171 -# ------------------------------------------------------------------------------------------------- -func _on_window_resized() -> void: - if _background_color_picker_popup.visible: - _background_color_picker_popup.rect_position.x = rect_size.x - _background_color_picker_popup.rect_size.x - # ------------------------------------------------------------------------------------------------- func _on_FullscreenButton_toggled(button_pressed): OS.set_window_fullscreen(button_pressed) diff --git a/lorien/UI/Toolbar.tscn b/lorien/UI/Toolbar.tscn index 6c2a707f..fae5d6b5 100644 --- a/lorien/UI/Toolbar.tscn +++ b/lorien/UI/Toolbar.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=22 format=2] +[gd_scene load_steps=21 format=2] [ext_resource path="res://Assets/Icons/save_file.png" type="Texture" id=1] [ext_resource path="res://Assets/Icons/open_file.png" type="Texture" id=2] @@ -11,7 +11,6 @@ [ext_resource path="res://Assets/Icons/eraser_tool.png" type="Texture" id=9] [ext_resource path="res://Assets/Icons/rectangle_tool.png" type="Texture" id=10] [ext_resource path="res://Assets/Icons/line_tool.png" type="Texture" id=11] -[ext_resource path="res://Assets/Icons/canvas_color_tool.png" type="Texture" id=12] [ext_resource path="res://UI/Components/FlatTextureButton.gd" type="Script" id=13] [ext_resource path="res://Assets/Fonts/font_small.tres" type="DynamicFont" id=14] [ext_resource path="res://UI/Themes/theme_dark.tres" type="Theme" id=15] @@ -311,20 +310,6 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="BackgroundColorButton" type="TextureButton" parent="Console/Right"] -margin_left = 896.0 -margin_top = 12.0 -margin_right = 912.0 -margin_bottom = 28.0 -hint_tooltip = "TOOLBAR_TOOLTIP_CANVAS_COLOR" -size_flags_horizontal = 4 -size_flags_vertical = 4 -action_mode = 0 -texture_normal = ExtResource( 12 ) -script = ExtResource( 13 ) -hover_tint = Color( 0.662745, 0.945098, 0.87451, 1 ) -pressed_tint = Color( 0.572549, 1, 0.894118, 1 ) - [node name="FullscreenButton" type="TextureButton" parent="Console/Right"] margin_left = 924.0 margin_top = 11.0 @@ -360,5 +345,4 @@ custom_styles/separator = SubResource( 2 ) [connection signal="pressed" from="Console/Left/SelectionToolButton" to="." method="_on_SelectToolButton_pressed"] [connection signal="pressed" from="Console/Left/ColorButton" to="." method="_on_ColorButton_pressed"] [connection signal="value_changed" from="Console/Left/BrushSizeSlider" to="." method="_on_BrushSizeSlider_value_changed"] -[connection signal="pressed" from="Console/Right/BackgroundColorButton" to="." method="_on_BackgroundColorButton_pressed"] [connection signal="toggled" from="Console/Right/FullscreenButton" to="." method="_on_FullscreenButton_toggled"]