Initial Branches
Foundation branches that prepare GIMP source and provide essential utilities for other branches.
Branch Overview
gimp-source
Purpose: Clone of GIMP master with CI configuration adapted for Artbox development.
Role: Starting point for all Artbox development, providing a clean GIMP base with Artbox-specific modifications.
Files Modified:
.gitlab-ci.yml
→.gitlab-ci-master.yml
(CI configuration backup).gitmodules
(submodule reference updates)gimp-data
(submodule pointer updates)
Implementation: Clones GIMP master and makes infrastructure changes. The GitLab CI configuration is backed up and modified for Artbox’s build pipeline, git submodule references are updated to point to Artbox-compatible versions, and the gimp-data submodule is adjusted.
convert-app-core-item
Purpose: Adds utility functions for item geometry calculation, hierarchy analysis, and layer type detection.
Role: Foundation layer providing core item management utilities needed by other branches for item operations.
Files Modified:
app/core/gimpitem.c
(62 lines added - 4 new utility functions)app/core/gimpitem.h
(7 lines added - function declarations)
Implementation: Introduces four utility functions to the core item system:
gimp_item_get_bounding_box()
: Calculates the bounding rectangle of any item by combining its offset position with its dimensions, used for layout and positioning operations.gimp_item_get_depth()
: Determines how deeply nested an item is in the layer hierarchy, with protection against circular references (max 1000 iterations). Returns -1 if circular reference detected.gimp_item_is_group_layer()
: Type-safe detection of group layers, providing identification of layer groups vs. regular layers.gimp_item_is_basic_layer()
: Identifies basic (non-group) layers by checking if an item is a layer but not a group layer.
These utilities form the foundation for layer management, selection operations, and hierarchy-based features throughout Artbox. The bounding box calculation is particularly important for automation scripts and selection tools.
convert-tool-preset
Purpose: Utility branch providing data structures for tool presets that other convert branches depend on.
Role: Foundation branch that must be processed first in any construction sequence, providing core tool preset functionality.
Files Modified:
app/core/gimptoolpreset.c
(280 lines added/modified - core tool preset implementation)app/core/gimptoolpreset.h
(15 lines modified - tool preset interface)app/widgets/gimpdeviceinfo.c
(8 lines modified - device integration)app/widgets/gimptoolpreseteditor.c
(44 lines modified - preset editor improvements)
Implementation: Expands tool preset functionality with 275 net lines of new code. The core changes in gimptoolpreset.c
provide data structures and handling for tool presets, while header modifications in gimptoolpreset.h
expose new interfaces. Device integration improvements in gimpdeviceinfo.c
ensure interaction with input devices, and the preset editor receives enhanced functionality. These modifications form the foundation that other convert branches rely on for tool management.
convert-icon-picker
Purpose: Icon picker interface enhancements.
Role: Improved icon selection and management.
Files Modified:
app/widgets/gimpdynamicseditor.c
app/widgets/gimpiconpicker.c
app/widgets/gimpiconpicker.h
app/widgets/gimppropwidgets.c
app/widgets/gimppropwidgets.h
app/widgets/gimptemplateeditor.c
app/widgets/gimptoolpreseteditor.c
Implementation: Enhances the icon picker interface for better icon selection and visual feedback.
convert-pref-all-merged
Purpose: Preferences system overhaul introducing selection highlighting, path visualization, and configuration management for Artbox-specific features.
Role: Configuration system expansion that provides the foundation for user customization and visual feedback systems throughout Artbox.
Files Modified (10 files, 1343 insertions, 19 deletions):
app/config/gimpcoreconfig.c
(93 insertions, 1 deletion): Core configuration with selection highlighting and path line propertiesapp/config/gimpcoreconfig.h
(6 insertions): New configuration property declarationsapp/config/gimpdisplayconfig.c
(14 insertions): Display-specific configuration enhancementsapp/config/gimpdisplayconfig.h
(1 insertion): Display configuration property declarationsapp/config/gimpguiconfig.c
(566 insertions, 1 deletion): Major GUI configuration expansion with advanced user interface optionsapp/config/gimpguiconfig.h
(38 insertions): Extensive GUI configuration property declarationsapp/config/gimprc-blurbs.h
(29 insertions): Configuration help text and descriptionsapp/dialogs/preferences-dialog-utils.c
(298 insertions): New preference dialog utility functionsapp/dialogs/preferences-dialog-utils.h
(8 insertions): Preference dialog utility declarationsapp/dialogs/preferences-dialog.c
(309 insertions, 1 deletion): Major preferences dialog expansion
Implementation: This branch represents an enhancement to Artbox’s configuration system with several improvements:
Selection Highlighting System: Introduces selection visualization options:
PROP_SELECTION_HIGHLIGHTING
: Boolean toggle for selection highlighting featurePROP_SELECTION_HIGHLIGHT_COLOR
: Customizable selection highlighting color (default: black with 0.5 alpha)PROP_SELECTION_LINE_WIDTH
: Configurable selection line thicknessPROP_SELECTION_LINE_ALPHA
: Adjustable selection line transparency
Path Visualization: Adds path rendering controls:
PROP_PATH_LINE_WIDTH
: Customizable path line thickness for better visibilityPROP_PATH_LINE_ALPHA
: Adjustable path line transparency for optimal contrast
GUI Configuration Expansion: Enhancement to GUI configuration (566 lines added) including:
- User interface customization options
- Layout and behavior controls
- Accessibility features
- Workflow optimization settings
Preference Dialog System Overhaul: Expansion of preference management:
- New utility functions (298 lines) for preference dialog construction
- Preference organization and categorization
- Improved user experience for configuration management
- Better validation and error handling
Configuration Architecture Enhancement: Improved configuration system architecture with:
- Better property management and type safety
- Default value handling
- Improved configuration persistence
- Better integration with Artbox-specific features
This overhaul provides users with customization capabilities while establishing a foundation for Artbox’s visual feedback and user interface systems.