GNOME Bugzilla – Bug 588090
sidebar work, wanda widget
Last modified: 2010-12-15 10:07:28 UTC
Attaching the current state of my sidebar work. There will be more at some point but these parts are all ready for review.
Created attachment 138042 [details] [review] Animate the sidebar rather than the individual widgets within it Also lets us change the animation so the sidebar goes completely off the screen when switching modes, to hide the fact that sometimes the widgets change height when switching.
Created attachment 138043 [details] [review] Animate the sidebar when it is hidden/shown
Created attachment 138044 [details] [review] Track changes to the sidebar/widgets gconf key This lets you use gconf-editor as a sidebar editor (including adding/removing widgets and changing their order). You need to run gconf-editor either from within gnome-shell or else from within jhbuild run in order to get the default value for sidebar/widgets to show up before you make any changes.
Created attachment 138045 [details] [review] Fix single-actor widgets clutter_actor_unparent() is for use by container implementations only, unlike gtk_widget_unparent()
Created attachment 138046 [details] [review] A Widget Called Wanda Quick port of the fish panel applet, using libsoup to fetch fortunes. Not currently animated. There seems to be a bug in Chrome that makes the struts wobble for a second when the fortune appears...
Created attachment 138065 [details] [review] A Widget Called Wanda Quick port of the fish panel applet, using libsoup to fetch fortunes. Now with animation! I copied a bit of Jeremy's code (using clip to handle the animation rather than slicing into frames), but replaced the Clutter.Timeline with a gtimeout (since Clutter.Timeline changed enough in 1.0 that I couldn't see immediately how to port it, and Tweener doesn't let you loop forever).
Comment on attachment 138042 [details] [review] Animate the sidebar rather than the individual widgets within it Do you need to remove any existing tweens on state transitions? Otherwise loosk good to me.
Comment on attachment 138043 [details] [review] Animate the sidebar when it is hidden/shown Maybe split that function a bit so we also slide in the sidebar on initial load? Looks good.
Comment on attachment 138044 [details] [review] Track changes to the sidebar/widgets gconf key + for (old in existingWidgets) Missing a let. Looks good for now, though longer term it'd be nice to animate the widgets moving on change. Probably should do this to a Tidy.Grid like widget.
Comment on attachment 138065 [details] [review] A Widget Called Wanda Can you bind the polling to the visibility? For example if the screensaver is active we shouldn't be polling. Is there any caching of the fortune content (at the libsoup level)? I wonder if it's worth biting the bullet now and figuring out how widgets work at a filesystem level, rather than having to include data in our main data/ Makefile.am.
(In reply to comment #9) > Looks good for now, though longer term it'd be nice to animate the widgets > moving on change. Well, normally you'd edit the sidebar with the in-process sidebar-editing UI (that doesn't exist yet), and that would let you drag and drop widgets around, and the animation would all be part of the drag and drop process. The slideOut/slideIn would only run if you changed the widget list behind its back. Although I guess even in that case we could animate simple transitions (like adding or removing a single widget). (In reply to comment #10) > Can you bind the polling to the visibility? For example if the screensaver is > active we shouldn't be polling. I though about that, but it seemed like a lot of work for a fortune-telling fish. (The panel applet doesn't worry about it either.) > Is there any caching of the fortune content (at the libsoup level)? No, it's different every time. (It's in the form of an RSS feed, but it's randomly generated.) > I wonder if it's worth biting the bullet now and figuring out how widgets work > at a filesystem level, rather than having to include data in our main data/ > Makefile.am. Hm... probably Widget should have a get_resource() method or something that knows how to find other resources associated with the widget. Widgets could be distributed as tarballs or zip files, and then either uncompress them when they're added to the sidebar, or else have a special imports.widgets namespace that extracts the javascript (and resources) directly out of the zip/tar files as needed.
(bugzilla spam: populating the new "extensions" component with bugs discussing features that are not part of the core spec, but could be implemented externally once the extension system is done.)
Comment on attachment 138045 [details] [review] Fix single-actor widgets just getting this off the "accept-commit_now" patch list... Attachment 138045 [details] pushed as a4feb91 - Fix single-actor widgets
don't think there's really any reason to keep this old bug around