GSoC 2022: Update Pitivi to use GTK4 instead of GTK+ 3
Current major issues:
-
GdkPixbuf is deemphasized, causing sizing issues and type mismatches (Partially done) - Guide Link -
GtkLayout replacement required - Guide Link -
Viewer (Reliant on GtkSink port) -
Symbolic icons colour change issue - Guide Link -
GtkPopover - Guide Link -
Drop the use of Dialog.run (Partially done) - Guide Link -
Implement Drag and Drop EventController - Guide Link -
Drop use of GdkScreen - Guide Link -
Update to GtkFileChooser API changes - Guide Link -
Adapt to GtkHeaderBar API changes - Guide Link -
Fix Unittests -
Fix Interactive Intro (Reliant on GtkPopover changes) -
Replace "configure-event" and "size-allocate" signals
Done:
-
Replace GtkButtonBox, GtkEventBox, GtkAlignment -
Drop Stock Buttons -
Replace GtkBox expand and fill properties -
Remove "app_paintable" -
Change dependency to GTK4 -
Replace pack_start and pack_end -
Implement new cursor API -
Remove GtkBin -
Replace FIleChooserButton -
Implement GtkIconTheme changes -
Update matplotlib dependency to GTK4 backend -
Update to new GtkButton Image API -
Implement GtkHeaderBar API changes -
Replace GtkPaned API, GtkToolBar, GtkContainer -
Implement GtkSearchEntry changes -
Implement GtkInfoBar changes -
Connect GtkBuildable signals at initialization -
Implement GtkScrolledWindow changes -
Replace GtkShadowType, GtkRelief, GtkPopover::modal, set_line_wrap, use_action_appearance properties -
Implement GtkSpinButton API changes -
Drop use of show_all() -
Implement new GtkIconSize -
Replace AtkObject -
Remove packing elements in UI files -
Implement GtkLabel changes -
Drop use of "visible_window" -
Drop use of GtkActionGroup -
Implement GtkMenuButton changes -
Change version in AboutWindow -
Adapt to GDateTime changes -
Implement GtkPopoverMenu changes -
Replace delete-event -
Implement GtkCheckBox and GtkRadioButton changes -
Use Gfile in FileChooser -
Implement GtkStyleContext API changes -
Replace GTK_STYLE_CLASS_* -
Implement draw-value changes for scale -
Implement GtkEventController