Skip to content

Commit

Permalink
bump to 3.0
Browse files Browse the repository at this point in the history
  • Loading branch information
script-fu committed Nov 13, 2024
1 parent 1064ea9 commit d4647f5
Show file tree
Hide file tree
Showing 10 changed files with 247 additions and 45 deletions.
11 changes: 3 additions & 8 deletions content/hub/docs/folder/Technical-Guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ A convert branch is used to adjust the latest GIMP master branch to support the

The current strategy is to place any heavily modified file that supports multiple feature branches—through the addition of new data structures—into a convert branch. This approach helps consolidate overlapping changes in one place, while maintaining the core code that performs the main functions in separate feature branches.

The convert branches are:
The current convert branches are:

- **convert-to-artbox:** The main branch that combines all other convert branches.
- **convert-data-remote:** Handles the gimp-data remote url.
Expand All @@ -96,16 +96,11 @@ These conflicts can be resolved fairly easily due to the automated construction

#### Example of a Convert Branch

A unusually complex convert branch like 'convert-paintbrush-all-merged' is itself a combined branch that integrates multiple smaller changes.
A unusually complex convert branch like 'convert-paintbrush-all-merged' is a branch that integrates multiple smaller changes, it's commit history is more than one change.

- convert-paintbrush-all-merged: Integrates modifications to the paintbrush tool, history is intact.
- convert-paintbrush-simple-boundary
- convert-paintbrush-simple-boundary
- convert-paintbrush-status-alt
- convert-paintbrush-erase
...

These sub-branches implement smaller, specific changes. If a conflict arises between convert-paintbrush-all-merged and the GIMP development branch, an interactive rebase can be done to edit and resolve that particular commit.
If a conflict arises between convert-paintbrush-all-merged and the GIMP development branch, an interactive rebase can be done to edit and resolve that particular commit.

### Feature Branches

Expand Down
11 changes: 6 additions & 5 deletions content/hub/feature-test/folder/Dynamic-Velocity-Output.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,28 +4,29 @@ type: docs

# Objective

Make sense of the mapping graphs for dynamic features by removing the velocity inversion.
Remove the velocity inversion, so that the dynamic mapping graphs representation is accurate.

## Related Links

- Branches: Artbox and [feature-remove-inverted-dynamic-velocity](https://gitlab.gnome.org/pixelmixer/artbox/-/tree/feature-remove-inverted-dynamic-velocity?ref_type=heads)
- https://gitlab.gnome.org/GNOME/gimp/-/issues/958

## Design Revisions

| **Revision** | **Current Design** | **Issues** | **Changes** |
|--------------------------------------------|---------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|-----------------------------------------------------------|
| **1. Remove Velocity Inversion** | Velocity is math inverted | The max and min values are inverted in the spacing curve graph | The velocity math is not inverted and the graph for velocity mapping is accurate |
| **1. Remove Velocity Inversion** | The velocity calculations are inverted | The maximum and minimum values are inverted in the spacing curve graph | The velocity calculations are no longer inverted, and the velocity mapping graph is accurate |

## MR Description

This MR removes the velocity inversion in the dynamic features, ensuring the velocity mapping is more intuitive and accurate.
This merge request removes the velocity inversion in dynamics, simplifying the velocity mapping for easier use.

### Changes

- **Remove Velocity Inversion**:
- The velocity is no longer inverted (`1.0 - coords->velocity` removed).
- Now, `coords->velocity` is mapped directly, making the graph for velocity mapping more accurate.
- `coords->velocity` is mapped directly, making the graph for velocity mapping more accurate.

### Benefit

- This change ensures that the velocity mapping in the dynamic features behaves correctly, making it easier for users to understand and control their brush settings without inverted values.
- This change corrects the velocity mapping in dynamic features, helping users understand and control brush settings without dealing with inverted values.
48 changes: 27 additions & 21 deletions content/hub/feature-test/folder/Paintbrush-Options.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
---
type: docs
---

# Objective

Improve the usability of the Paintbrush GUI.
Expand All @@ -14,18 +10,20 @@ Improve the usability of the Paintbrush GUI.

## Related Links

- Branches: Artbox and [feature-paintbrush-options](https://gitlab.gnome.org/pixelmixer/artbox/-/tree/feature-paintbrush-options?ref_type=heads)
- Branches: Artbox and [convert-paintbrush-all-merged](https://gitlab.gnome.org/pixelmixer/artbox/-/tree/convert-paintbrush-all-merged?ref_type=heads)

## Design Revisions

| **Revision** | **Current Design** | **Issues** | **Changes** |
|--------------------------------------------|---------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|-----------------------------------------------------------|
| **1. Remove Reset Brush Button** | Option sliders have a reset button to default values. | Rarely used; adds complexity to the GUI. | Remove the reset to default button. |
| **2. Remove Brush Link Button** | Brush link button allows linking to brush editor options. | Difficult to explain and justify; causes confusion | Remove the link button. |
| **3. Add Expander for Additional Options** | Options added to the end of paintbrush settings; more options will be added in the future | Lesser-used options clutter the interface and reduce dock space efficiency | Add an "Additional Options" expander for lesser-used items |
| **4. Separate Dynamics** | 'Enable Dynamics' contains the 'Fade and Colour' options| The 'Fade and Colour' options take up a lot of space, and do not need to be visible all the time.| Add a "Dynamic Fade and Colour" expander, visible when Enable Dynamics is checked |
| **5. Compact Resource Chooser** | Picking a resource such as a brush or a dynamic is done via a chooser, see the Paintbrush GUI | The chooser is takes up two rows of the dockable due to a label above the combo box. The icons on either side are distorted to fill the gap, which looks bad. GUI space is wasted | Remove the label and the chooser becomes compact. The purpose of the chooser is self evident and does not need a label|
| **6.Smooth Stroke Position** | 'Smooth Stroke' is in low down in the dock | It's a frequently used option for painting | Move higher up the dock |
| **Revision** | **Current Design** | **Issues** | **Changes** |
|--------------|---------------------|------------|-------------|
| **1. Remove Reset Brush Button** | Option sliders have a reset button to default brush values. | Rarely used in some workflows; adds complexity to the GUI. | Remove the reset to default button. Instead, <kbd>Ctrl + Click</kbd> on the slider to reset it to the brush default. |
| **2. Adapt Brush Link Button** | Brush link button allows linking to brush editor options and brush changes. | Difficult to explain and used in some workflows, not all; causes confusion. | Rename the button to Brush Update Button. Make it optional via a Tool Options -> Paintbrush preference. Add more clarity and information to the tooltip. |
| **3. Add Expander for Additional Options** | Options are added to the end of Paintbrush settings; more options will be added in the future. | Lesser-used options clutter the interface and reduce dock space efficiency. | Add an "Additional Options" expander for lesser-used items. |
| **4. Separate Dynamics** | 'Enable Dynamics' contains the 'Fade and Colour' options. | The 'Fade and Colour' options take up a lot of space and do not need to be visible all the time. | Add a "Dynamic Fade and Colour" expander, visible only when Enable Dynamics is checked. |
| **5. Compact Resource Chooser** | Picking a resource such as a brush or a dynamic is done via a chooser in the Paintbrush GUI. | The chooser takes up two rows of the dockable panel due to a label above the combo box. The icons on either side are distorted to fill the gap, which looks poor. GUI space is wasted. | Remove the label to make the chooser more compact. The purpose of the chooser is self-evident and does not need a label. |
| **6. Smooth Stroke Position** | 'Smooth Stroke' is located lower down in the dock. | It’s a frequently used option for painting. | Move it higher up in the dock within 'Stroke Effects'. |
| **7. Stroke Effects Expander** | New feature. | Options clutter the Paintbrush GUI, or don't flow visually. | Create a 'Stroke Effects' expander to organize these related options. The state of the expander is saved and restored. |
| **8. Pick Layer** | New feature. | It's difficult to find layers in complex layer stacks | Added an option in `Additional Options` to `Pick Layer`. The layer under the brush is selected when Alt is pressed. |

## MR Description

Expand All @@ -34,24 +32,32 @@ This MR enhances the Paintbrush GUI in several ways, making it more intuitive an
### Changes

1. **Remove Reset Brush Button**:
- Removed the reset buttons for brush size, aspect ratio, angle, spacing, and hardness from the Paintbrush options. The code for resetting these properties, along with the corresponding signals, was removed to simplify the interface.
- Removed the reset buttons for brush size, aspect ratio, angle, spacing, and hardness from the Paintbrush options. The code for resetting these properties, along with the corresponding signals, was removed to simplify the interface.

2. **Remove Brush Link Button**:
- Removed the 'Link to Brush Editor' button, which previously allowed linking the paintbrush options to the brush editor options. This simplifies the GUI by removing a confusing feature that was rarely used.
- Removed the 'Link to Brush Editor' button, which previously allowed linking the Paintbrush options to the Brush Editor options. This simplifies the GUI by removing a confusing feature that was rarely used.

3. **Add Expander for Additional Options**:
- Introduced a new "Additional Options" expander in the Paintbrush options panel. This organizes less frequently used options (such as the 'Lock Brush to View' and 'Simple Brush Boundary' toggles) into a collapsible section, saving space and removing clutter from the GUI.
- Introduced a new "Additional Options" expander in the Paintbrush options panel. This organizes less frequently used options (such as 'Lock Brush to View' and 'Simple Brush Boundary' toggles) into a collapsible section, saving space and reducing clutter in the GUI.

4. **Separate Dynamics (Fade and Colour)**:
- Moved the 'Fade and Colour' options (related to brush dynamics) into a separate expander that appears only when 'Enable Dynamics' is checked. This keeps the interface cleaner by hiding these advanced options when dynamics are not in use.
- Added `fade-multiply` and `brush-pressure-multiply` toggles to enable pressure and fade dynamics, providing more fine-tuned control.
- Moved the 'Fade and Colour' options (related to brush dynamics) into a separate expander that appears only when 'Enable Dynamics' is checked. This keeps the interface cleaner by hiding these advanced options when dynamics are not in use.
- Added `fade-multiply` and `brush-pressure-multiply` toggles to enable pressure and fade dynamics, providing more fine-tuned control.

5. **Compact Resource Chooser**:
- Removed the label from the resource chooser (used for selecting brushes, dynamics, etc.), making the chooser more compact and saving space in the dockable panel. The chooser’s function is self-explanatory, so the label was deemed unnecessary.
- Removed the label from the resource chooser (used for selecting brushes, dynamics, etc.), making the chooser more compact and saving space in the dockable panel. The chooser’s function is self-explanatory, so the label was deemed unnecessary.

6. **Smooth Stroke Position**:
- Moved the 'Smooth Stroke' options higher up in the Paintbrush options panel, reflecting its frequent use. This improves accessibility and better aligns with user expectations.
- Moved the 'Smooth Stroke' options higher up in the Paintbrush options panel, reflecting its frequent use. This improves accessibility and better aligns with user expectations.

7. **Stroke Effects Expander**:
- Added a new "Stroke Effects" expander to group related stroke options into one collapsible section. The state of the expander is saved and restored across sessions, preserving the user's preference for a consistent experience.

8. **Pick Layer**:
- Added a new "Pick Layer" option in the **Additional Options** expander. This feature allows users to hold the <kbd>Alt</kbd> key to automatically select the layer under the brush cursor. This option simplifies workflows with complex layer stacks by enabling quick access to the correct layer without manually searching through the layers panel.

### Benefit

- This set of changes significantly improves the usability and efficiency of the Paintbrush GUI. By reducing visual clutter, hiding advanced options behind expanders, and simplifying the interface, users can now navigate the Paintbrush settings more easily while still accessing the features they need.
This set of changes significantly improves the usability and efficiency of the Paintbrush GUI. By reducing visual clutter, hiding advanced options behind expanders, and simplifying the interface, users can now navigate the Paintbrush settings more easily while still accessing the features they need.

`Pick Layer` reduces layer stack searching and will be improved to handle multiple layers under the cursor in the future.
54 changes: 54 additions & 0 deletions content/hub/feature-test/folder/Path-Tool.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
type: docs
---

# Objective

Enhance path editing, snapping, and visibility features while refining path commitment behavior to prevent unintentional selections.

## Related Links

- Branches: Artbox, [feature-snap-to-path-distance](https://gitlab.gnome.org/pixelmixer/artbox/-/tree/feature-snap-to-path-distance?ref_type=heads), [feature-path-editing](https://gitlab.gnome.org/pixelmixer/artbox/-/tree/feature-path-editing?ref_type=heads)

## Design Revisions

| **Revision** | **Current Design** | **Issues** | **Changes** |
|--------------------------------|-------------------------------------------------------|-------------------------------------------------------------------|--------------------------------------------------------|
| **1. Path Snap Distance** | Snapping uses a single distance for grid, guides, and paths. | Users can't adjust snapping precision separately for paths. | Introduced an independent `Active Paths` snap preference option. |
| **2. Path Visibility Control** | Created paths aren't visible by default. | Users need to manually enable visibility for new paths. | Added visibility control for paths at creation via a new `Visible` property. |
| **3. Handle Locking** | No lock handles option for path editing. | Limits, making certain edits awkward. | Added a `lock_handles` property to lock handles during editing. |
| **4. Enhanced Movement Controls** | Movement lacks refined state controls for duplicating and snapping. | Limited control and feedback for path manipulation workflows. | Added automatic `Move` mode upon path duplication, intuitive handle and curve point movement, and a "Finish Edit Mode" button. |
| **5. Enter Key Path Commitment** | Enter previously selected enclosed area on path commitment. | Selection behavior was often distracting and unwanted. | Updated Enter to commit path edits without selecting enclosed areas. |

## MR Description

This merge request refines snapping, visibility, movement, handle locking, and commit behavior, providing users with greater flexibility and control in path manipulation.

### Changes

1. **Path Snap Distance**:
- Extended `gimp_image_snap_point` in `gimpimage-snap.c` to accept new `epsilon_path_x` and `epsilon_path_y` parameters, enabling different snapping tolerances for paths compared to other elements.
- Updated `gimp_display_shell_snap_coords` to include a `snap_path_distance` property, adding flexibility to set path-specific snap distance through the display configuration.

2. **Path Visibility Control**:
- Added a `visible` property in `GimpToolPathPrivate` to make paths visible upon creation by default.
- Integrated `PROP_VISIBLE` into the vector tool options, along with a "Visible Path" checkbox in the tool options GUI for quick user control over path visibility.

3. **Handle Locking**:
- Introduced the `lock_handles` property to lock anchor handles during path editing, providing finer control over handle manipulation.
- Added a "Lock Handles" option in the GUI, allowing users to easily enable or disable handle locking.

4. **Enhanced Movement Controls**:
- Automatically switches to `Move` mode after duplicating a path, simplifying workflow and enhancing path manipulation.
- Updated path handle and curve point interactions for a more intuitive editing experience.
- Added a "Finish Edit Mode" button in vector tool options, allowing users to quickly exit edit mode and return to normal workflows.

5. **Enter Key Path Commitment**:
- Updated the `Enter` key functionality to commit path edits without selecting the enclosed area, preventing unintended selections that could disrupt workflow, especially with linear paths.

### Benefit

- **Improved Snap Control**: Users can adjust snap distances independently for paths, providing more precise control based on element type (e.g., paths vs. grids).
- **Enhanced Workflow with Auto-Visibility**: Paths are automatically visible upon creation, improving user feedback and reducing manual toggling.
- **Streamlined Movement & Editing**: Movement and editing controls are more refined, with automatic `Move` mode for path duplicates, handle locking options, and a quick exit button from edit mode.
- **Refined Path Commitment**: The Enter key now only commits path changes without selecting enclosed areas, reducing distractions and providing a smoother workflow for linear and complex paths.
Loading

0 comments on commit d4647f5

Please sign in to comment.