lp:~smspillaz/unity/unity.half_fix_883836

Created by Sam Spilsbury and last modified
Get this branch:
bzr branch lp:~smspillaz/unity/unity.half_fix_883836
Only Sam Spilsbury can upload to this branch. If you are Sam Spilsbury please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Sam Spilsbury
Project:
Unity
Status:
Development

Recent revisions

1783. By Sam Spilsbury

Add include guards and derive from sigc::trackable

1782. By Sam Spilsbury

  Added a small ScreenSaverHandler class to monitor changes in screensaver
  state. Note that at the moment it doesn't work because gnome-screensaver
  doesn't emit the ActiveChanged signal until it gets the grab, and the whole
  purpose of this is to watch for ActiveChanged in order to release the grabs.

  Tests included show that the detection code works.

1781. By Marco Trevisan (Treviño)

glib::Object: review to support more operators and to improve operations

 - Added a constructor that allows to ref the wrapped object.
 - Added support for the swap operations
 - Using the copy and swap idiom on the operator=
 - Moved some methods to const
 - Added support for the == and != operators
 - Added utility function to cast object to another type.

All these features allows, amongs the others, to add glib::Object's
to standard containers such as lists and to lookup and remove items.

Then using it on PanelMenuView.

Including tests.. Fixes: . Appoved by Tim Penhey.

1780. By Marco Trevisan (Treviño)

Implemented the design bug #874254 to make a newly opened application to quickly show its menus when firstly mapped using a slightly longer fade effect (now set to 200ms to fade in and 300ms to fade out).
To work properly, this feature, requires the merge of the BAMF branch lp:~3v1n0/bamf/always-notify-view otherwise sticky applications won't be show their menus when opened.

I've also added some fixes and features to the Animator class, and improved the drawing of the fading panel entries.

Plus, I've integrated the bug #875472, introducing 5 new configuration parameters to customize the fading timings and the menu discover-ability time.

Tests for this will be done when the autopilot system will be ready.. Fixes: https://bugs.launchpad.net/bugs/874254, https://bugs.launchpad.net/bugs/875472. Appoved by Tim Penhey.

1779. By Marco Trevisan (Treviño)

In the current unity implementation when an indicator is opened, there's no way to send it scroll or middle-click events.

This commit fixes this, applying an exception to the case of the appmenu entries, that should handle the middle-click like any other click.

Testing this with autopilot plus a fake indicator which reports events should be doable in the near future.. Fixes: https://bugs.launchpad.net/bugs/722082. Appoved by Tim Penhey.

1778. By Andrea Azzarone

Removes shows-on-edge setting.. Fixes: https://bugs.launchpad.net/bugs/853086. Appoved by Tim Penhey, Marco Trevisan (Treviño).

1777. By Thomi Richards

This branch adds XPath-like query capabilities to the DBus debug interface. This allows autopilot tests to specify precise queries to retrieve only the part of the state tree they wish to inspect. We don't support the full XPath syntax (far from it!), a brief description of the syntax supported is given below:

== XPath Syntax ==

"", "/", and "/Unity" all select the root node of the tree. This is exactly the same as if you had not specified a piece name in the old code (so old autopilot tests will continue to work without change).

Absolute paths start with a forward-slash ("/") and may specify a full path to a node. For example, to get the SearchBar node, a test might specify: "/Unity/DashController/DashView/SearchBar".

Tests may also specify relative paths. For example, to get the SearchBar node, no matter where it is in the introspection tree, a test can use the query string "//SearchBar". Note that this can (and often does) return multiple results (for e.g.- a query of "//LauncherIcon" returns all the launcher icons in the introspection tree).

You can also specify children of a relative query, for example "//Launcher/LauncherIcon" returns all the LauncherIcon nodes that are direct children of the Launcher node - this may return different results to the query "//LauncherIcon" if LauncherIcon nodes are added to the introspection tree somewhere else.

Finally, you can restrict which items are returned by querying a node's properties. For example, to get all the launchers that are hidden, tests can use the query "//Launcher[hidden=True]". Just like previous examples, you can select child nodes this way as well: "//Launcher[hidden=true]/LauncherIcon" does what you'd expect. Currently you can inspect all string, boolean, and integer properties. CUrrently you cannot restrict based on more than one property at once: the following DOES NOT WORK: "//Launcher[hidden=True,otherproperty=foo]".

== Performance ==

I've run tests by querying the DBus interface with different queries and measuring the performance. See the following table:

Old method (current code): 24 mS (average) query = ""
New method (proposed code): 22 mS (average) query = ""
New method (proposed code): 21 mS (average) query = "/Unity"
New method (proposed code): 2mS (average) query = "/Unity/DashController/DashView/SearchBar" *

New Method (proposed code): 2mS (average) query = "//SearchBar" *
New Method (proposed code): 33mS (average) query = "//Launcher[hidden=True]" **

Notes:
 * This result indicates to me that most of the work is in actually sending data over DBus, rather than collecting & processing which nodes to send.
 ** property inspection is slow since the Introspectable::AddProperties method needs to be called twice - once to check if the property is there, and check it's value, and again when the actual introspection happens.

== Tests ==

There's a set of tests that ensure that the XPath stuff works as expected.

== Points of interest / controversial stuff ==

 * I've had to change the scope of Introspectable::AddProperties so I can access an introspectable's properties. The alternatives to this are: 1) call Introspect() instead - this is too slow, since it introspects the object and all children, recursively. 2) use friend classes - this is just plain bad.

 * I've kept all the code in DebugDBusInterface.cpp - there's an argument for moving the XPathQueryPart class into a separate file, but it's only ever going to be used here.

 * This is my first serious code for unity, so I welcome any feedback you have, but be gentle!

. Fixes: . Appoved by Sam Spilsbury.

1776. By Michal Hruby

Integration with libunity-5.0. Note that this branch breaks UnityCore API (which was therefore bumped to unity-core-5.0).. Fixes: . Appoved by Gord Allott.

1775. By Andrea Azzarone

Uses a two state item (Lock to launcher/Unlock from launcher) instead of the current checkbox option.. Fixes: https://bugs.launchpad.net/bugs/874380. Appoved by Mirco Müller, Marco Trevisan (Treviño).

1774. By Mirco Müller

This fixes the alignment of the baseline of both text-labels (both on the same baseline now), uses updated/correct artwork-assets for the expander-arrows and corrects the spacing between icon, name, expander-label and expander-arrows.

There is no test other than the before/after screenshots I provide here...

http://people.canonical.com/~mmueller/748101-before.png
http://people.canonical.com/~mmueller/748101-after.png. Fixes: https://bugs.launchpad.net/bugs/748101. Appoved by Sam Spilsbury.

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
lp:unity
This branch contains Public information 
Everyone can see this information.

Subscribers