SugarShellRefactoring
Jump to navigation
Jump to search
Introduction
For Update.2, we intend to reorganize parts of the UI of the home view and the frame.
See Designs/Activity_Management and Designs/Frame for explanation of these changes.
Below is a very loose brainstorm of the action items to perform for Update.2. We need to devote more thinking and discussion so the list "solidifies" a bit.
Action items
Infrastructure
- Split the library into separate modules. sugar-base, sugar-graphics, sugar-activity.
- Create personal git repositories.
- Add sugar.modules to jhbuild upstream and build from there. Document how to setup jhbuild.
- Switch to matchbox-2 (if it works well enough).
- Move to goocanvas (?)
- Make the shell model a singleton accessible from anywhere inside the shell. (?)
- HTray and VTray inherit from gtk.Box, but store its children in a different structure so many methods in the base class doesn't work. Not sure what we can do here.
Frame
- Move to gtk only.
- Add devices to the bottom frame.
- Add running activities to the top frame.
- Add clipboard to the left frame.
- Add zoom levels to the top frame.
- Add buddies to the right frame.
- Implement notifications.
- Implement buddies palette.
- Implement devices palette.
- Implement clipboard palette.
- Implement activity palette.
- Implement journal palette.
- Show the frame during activity switching.
Home view
- Investigate using goocanvas.
- Implement dynamic activity ring.
- Implement activity palettes.
- Implement xo palette.
- Add toolbar.
Activity list
- Use goocanvas?
- Generic list "widget"?
Journal
- Move the journal into the shell process.
Misc
- Make the activity registry private to the shell.
- Get rid of the custom X properties to facilitate porting (startup-notification? icon set by the activity?)