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 12, 2024
1 parent 1064ea9 commit d874393
Show file tree
Hide file tree
Showing 10 changed files with 206 additions and 67 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.
41 changes: 19 additions & 22 deletions content/hub/feature-test/folder/Paint-Tool.md
Original file line number Diff line number Diff line change
@@ -1,44 +1,41 @@
---
type: docs
---

# Objective

Improve the quality of the painting experience in Artbox
Improve the quality of the user interface in Artbox by providing configurable tooltips.

## Related Links

- Branches: Artbox and [feature-painttool](https://gitlab.gnome.org/pixelmixer/artbox/-/tree/feature-painttool?ref_type=heads)

## Design Revisions

| **Revision** | **Current Design** | **Issues** | **Changes** |
|--------------------------------------------|---------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|-----------------------------------------------------------|
| **1. Easy Cursor Location** | The Tool Cursor can be turned off in Preferences, and the pointer, leaving the only the brush outline. This is good, but causes issues. | A small and minimal cursor can be hard to locate | There is a minimum screen size for the cursor, and a small 'filled' 'contact' circle is always drawn |
| **2. Indicate Erase Mode** | New Feature | It's not possible to tell if the paintbrush is about to erase whilst looking at the cursor | Detect the 'Eraser Tool' and 'Erase Paint' mode, change the cursor to a dashed circle |
| **3. Simple Brush Boundary** | Image brushes are drawn as complex outlines based on the image | They can make a distracting paintbrush when the image is large and noisy | Draw a simple circular boundary if the 'Simple Brush Boundary' option is checked in the Paintbrush Options |
| **Revision** | **Current Design** | **Issues** | **Changes** |
|--------------------------|------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------|
| **1. Configurable Tooltips** | Tooltip visibility is globally enabled or disabled by default | Users cannot selectively control tooltip visibility, which can lead to cluttered UIs or unclear tool guidance | Introduced a new configuration option, `show_tool_tips`, allowing users to toggle tooltips on or off in Preferences. |

## MR Description

This MR improves the painting experience by refining brush cursor behavior and adding new visual cues, with technical adjustments to enhance usability and provide better feedback during painting.
This MR introduces a configuration option for tooltips in the Artbox GUI, allowing users to enable or disable tooltips according to their preference. The tooltip visibility applies to various UI components such as tool buttons and dock tabs, offering a customizable interface experience.

### Changes

1. **Easy Cursor Location**:
- Introduced a new function `gimp_draw_brush_cursor` that ensures a minimum cursor size, even when the brush is very small or not visible (e.g., zero-pressure).
- Defined constants `FINDER_SIZE` and `CORE_SIZE` to ensure a small 'filled' contact circle is always drawn, making the cursor easier to locate.
- If the brush outline is too small, `should_locate` triggers a fallback locator circle.
1. **Configurable Tooltip Property**:
- Added a new `show_tool_tips` property in the `GimpGuiConfig` structure.
- This property is defined in `gimpguiconfig.c` and `gimpguiconfig.h` and is registered in the `GimpGuiConfigClass` as a boolean preference, with an accessible blurb description for users.

2. **Indicate Erase Mode**:
- The new `gimp_is_erasing_paint` function detects when the user is in 'Eraser Tool' mode or the 'Erase Paint' blending mode.
- When erasing is active, the cursor switches to a dashed circle by invoking `gimp_draw_arc_circle`, providing clear visual feedback.
- A small filled circle is also drawn at the center to help users identify the brush's contact point.
2. **Tooltip Preference Integration**:
- Integrated the `show_tool_tips` property with the `Preferences` dialog:
- Added a checkbox option, "Show tool _tips," within the `General` section of the Preferences dialog.
- The checkbox controls the `show_tool_tips` property, giving users an intuitive toggle for tooltip display.

3. **Simple Brush Boundary**:
- Added a new boolean option `brush_simple_boundary` in the Paintbrush Options GUI.
- In the `gimp_paint_tool_draw` function, the standard complex outline of the brush (derived from the image brush mask) is bypassed when this option is enabled.
- Instead, a simple circular boundary is drawn by the `draw_brush_circle` function, providing a cleaner, less noisy visual representation for large or complex brushes.
3. **Dynamic Tooltip Handling**:
- Updated tooltip-related code in `gimpdockbook.c` and `gimptoolbutton.c` to conditionally check `show_tool_tips`:
- In `gimp_dockbook_create_tab_widget`, tooltips are only displayed if `show_tool_tips` is enabled, and otherwise remain hidden.
- In `gimp_tool_button_query_tooltip`, a similar conditional check prevents tooltip display when `show_tool_tips` is set to `FALSE`.

### Benefit

- These updates improve the visual clarity and feedback of the brush cursor during painting. The small contact circle ensures the cursor is always visible, the dashed circle gives clear feedback in erase mode, and the simple brush boundary reduces distractions from complex brush shapes.
- The addition of the `show_tool_tips` option enhances user control over the interface, reducing UI clutter for users who prefer minimal tool guidance, while retaining tooltip functionality for those who rely on detailed tool descriptions.

---
42 changes: 21 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,19 @@ 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. |

## MR Description

Expand All @@ -34,24 +31,27 @@ 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.

### 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.
Loading

0 comments on commit d874393

Please sign in to comment.