Skip to content

Conversation

@devin-ai-integration
Copy link

@devin-ai-integration devin-ai-integration bot commented Apr 5, 2025

GTK4 Migration Improvements

This PR completes the GTK4 migration for SolveSpace with the following enhancements:

Internationalization Support

  • Improved language selection in preferences with proper locale handling
  • Added RTL language support for Arabic, Hebrew, Persian, and other RTL languages
  • Enhanced text direction handling in CSS for RTL languages

Accessibility Enhancements

  • Implemented operation mode announcements for screen readers using GTK4's update_property API
  • Added proper accessibility labels and descriptions for UI elements
  • Enhanced keyboard navigation support

CSS Styling Improvements

  • Extracted CSS from raw strings into separate files for better maintainability
  • Implemented file-based CSS loading with fallback to embedded strings
  • Added dark mode styling with CSS variables
  • Ensured 3D canvas colors remain consistent across theme changes

Event Controller Replacements

  • Replaced signal handlers with GTK4 event controllers
  • Implemented PropertyExpression for reactive UI binding
  • Enhanced touch screen support with gesture controllers

Cross-Platform Compatibility

  • Ensured no Linux-specific code is used
  • Maintained compatibility with Windows and macOS builds
  • Updated Flatpak manifest with correct GTK4 dependencies

Testing

  • Tested in Ubuntu 24.04 Docker environment
  • Verified language selection and RTL support
  • Tested accessibility features with screen readers
  • Verified dark mode appearance with both light and dark system themes

This PR addresses the requirements in issue solvespace#1560 for the GTK4 migration.

Link to Devin run: https://app.devin.ai/sessions/80839d35747c407fa31aa0e59c2d85b5
Requested by: Erkin Alp Güney

devin-ai-integration bot and others added 30 commits April 3, 2025 14:35
Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
…event Git fallbacks

Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
… build failures

Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
…environments

Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
…Y_VERSION_MINIMUM to Windows build

Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
…mprove menu handling in header bar

Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
…er GTK4 response handling

Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
…f get_item_attribute

Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
…der 80 characters

Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
…of iterate_item_attributes

Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
…_item_attribute_value

Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
…f get_item_attribute

Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
…ring

Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
…controllers, and better CSS styling

Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
devin-ai-integration bot and others added 30 commits April 9, 2025 13:07
Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
… improvements for GTK4 migration

Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
…n support

Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
…olorPickerDone method

Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
…ed strings

Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
…ode announcements for screen readers

Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
…ssibility

Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
…upport

Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
…or better maintainability

Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
…r for GTK4 compatibility

Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
…ility

Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
…r GTK4 compatibility

Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
… structure

Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
…tibility

Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
…lementation

Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
…dling

Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
…dling with accessibility annotations

Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants