Merge lp:~gordallott/unity/dash-legal-link into lp:unity
- dash-legal-link
- Merge into trunk
Status: | Merged | ||||||||
---|---|---|---|---|---|---|---|---|---|
Merged at revision: | 2965 | ||||||||
Proposed branch: | lp:~gordallott/unity/dash-legal-link | ||||||||
Merge into: | lp:unity | ||||||||
Diff against target: |
304 lines (+138/-8) 6 files modified
dash/LensBar.cpp (+94/-5) dash/LensBar.h (+19/-2) plugins/unityshell/resources/information_icon.svg (+14/-0) plugins/unityshell/resources/searchingthedashlegalnotice.html (+1/-0) unity-shared/DashStyle.cpp (+7/-0) unity-shared/DashStyle.h (+3/-1) |
||||||||
To merge this branch: | bzr merge lp:~gordallott/unity/dash-legal-link | ||||||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
PS Jenkins bot (community) | continuous-integration | Needs Fixing | |
Timo Jyrinki | Approve | ||
Review via email:
|
Commit message
adds a legal link to the dash, also a new resource
Description of the change
adds a legal link to the dash
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Marco Trevisan (Treviño) (3v1n0) wrote : | # |
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Marco Trevisan (Treviño) (3v1n0) wrote : | # |
143 + auto geo = GetAbsoluteGeom
Ah, use auto const& instead ;)
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Gord Allott (gordallott) wrote : | # |
> Looks good and works well...
>
> 29 + glib::String cachedir(
>
> No need to strdup it, just assign that to std::string... It should be never
> NULL, in case just check for that.
>
> 30 + legal_seen_
>
> Since we have an unity .cache dir, I'd just add there... i.e.
> cachedir/
we don't have a unity cache directory, not anymore.
>
> 68 + QueueRelayout();
> 69 + QueueDraw();
>
> The first is enough, as does also redraw.
>
> 64 + info_icon_
> 65 + legal_-
> 67 + DoOpenLegalise();
>
> Wouldn't be better to open the legalise (and close the dash) and then switch
> the icon visibility?
>
> 95 + std::string legal_file_path = "file://";
> 96 + legal_file_
> 97 + legal_file_
>
> Why not just doing:
> std::string legal_file_path = "file://" PKGDATADIR
> "/searchingthed
personal preference
>
> 221 + nux::LayeredLayout* layered_layout_;
> 222 + nux::HLayout *legal_layout_;
>
> It seems you don't need to keep these in class.
>
> Finally, both the icon and the text are always built, only their visibility is
> switched, couldn't avoid this (and then only allocate only the needed
> resources)?
they could, but there is little reason to, its less than 2kb of memory.
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Timo Jyrinki (timo-jyrinki) wrote : | # |
This has been in 6.0 series already for some time (in this final form), would be good to have in lp:unity as well?
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Autolanding.
More details in the following jenkins job:
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Martin Mrazik (mrazik) wrote : | # |
Gord, can you please merge with lp:unity and then re-upload your branch? The above is a jenkins error but it is a bit of corner case and left-over from the migration to inline packaging. Instead of creating some weird hack it would be easier to manually get the packaging into your branch (by merging with trunk). Many thanks!
Preview Diff
1 | === modified file 'dash/LensBar.cpp' |
2 | --- dash/LensBar.cpp 2012-09-18 13:59:06 +0000 |
3 | +++ dash/LensBar.cpp 2012-10-15 16:31:20 +0000 |
4 | @@ -16,11 +16,17 @@ |
5 | * Authored by: Neil Jagdish Patel <neil.patel@canonical.com> |
6 | */ |
7 | |
8 | +#include <glib/gstdio.h> |
9 | +#include "LensBar.h" |
10 | #include <NuxCore/Logger.h> |
11 | #include "config.h" |
12 | +#include <Nux/HLayout.h> |
13 | +#include <Nux/LayeredLayout.h> |
14 | |
15 | +#include "unity-shared/DashStyle.h" |
16 | +#include "unity-shared/StaticCairoText.h" |
17 | #include "unity-shared/CairoTexture.h" |
18 | -#include "LensBar.h" |
19 | +#include "unity-shared/UBusMessages.h" |
20 | |
21 | namespace unity |
22 | { |
23 | @@ -41,7 +47,12 @@ |
24 | |
25 | LensBar::LensBar() |
26 | : nux::View(NUX_TRACKER_LOCATION) |
27 | + , info_previously_shown_(false) |
28 | { |
29 | + glib::String cachedir(g_strdup(g_get_user_cache_dir())); |
30 | + legal_seen_file_path_ = cachedir.Str() + "/unitydashlegalseen"; |
31 | + info_previously_shown_ = (g_file_test(legal_seen_file_path_.c_str(), G_FILE_TEST_EXISTS)) ? true : false; |
32 | + |
33 | SetupBackground(); |
34 | SetupLayout(); |
35 | SetupHomeLens(); |
36 | @@ -58,10 +69,50 @@ |
37 | |
38 | void LensBar::SetupLayout() |
39 | { |
40 | + legal_layout_ = new nux::HLayout(NUX_TRACKER_LOCATION); |
41 | + std::string legal_text("<span underline='single'>"); |
42 | + legal_text.append(g_dgettext("credentials-control-center", "Legal notice")); |
43 | + legal_text.append("</span>"); |
44 | + legal_ = new nux::StaticCairoText(legal_text); |
45 | + legal_->SetFont("Ubuntu 14px"); |
46 | + legal_layout_->AddSpace(1, 1); |
47 | + legal_layout_->SetLeftAndRightPadding(0, 10); |
48 | + info_icon_ = new IconTexture(Style::Instance().GetInformationTexture(), 22, 22); |
49 | + legal_layout_->AddView(info_icon_, 0, nux::MINOR_POSITION_CENTER, nux::MINOR_SIZE_MATCHCONTENT); |
50 | + legal_layout_->AddView(legal_, 0, nux::MINOR_POSITION_CENTER, nux::MINOR_SIZE_MATCHCONTENT); |
51 | + |
52 | + info_icon_->SetVisible(info_previously_shown_); |
53 | + legal_->SetVisible(!info_previously_shown_); |
54 | + |
55 | + info_icon_->mouse_click.connect([&] (int a, int b, unsigned long c, unsigned long d) |
56 | + { |
57 | + DoOpenLegalise(); |
58 | + }); |
59 | + |
60 | + legal_->mouse_click.connect([&] (int a, int b, unsigned long c, unsigned long d) |
61 | + { |
62 | + info_previously_shown_ = true; |
63 | + |
64 | + info_icon_->SetVisible(info_previously_shown_); |
65 | + legal_->SetVisible(!info_previously_shown_); |
66 | + |
67 | + DoOpenLegalise(); |
68 | + QueueRelayout(); |
69 | + QueueDraw(); |
70 | + }); |
71 | + |
72 | + |
73 | layout_ = new nux::HLayout(NUX_TRACKER_LOCATION); |
74 | layout_->SetContentDistribution(nux::MAJOR_POSITION_CENTER); |
75 | - SetLayout(layout_); |
76 | + |
77 | + layered_layout_ = new nux::LayeredLayout(); |
78 | + layered_layout_->AddLayer(layout_); |
79 | + layered_layout_->AddLayout(legal_layout_); |
80 | + layered_layout_->SetPaintAll(true); |
81 | + layered_layout_->SetInputMode(nux::LayeredLayout::InputMode::INPUT_MODE_COMPOSITE); |
82 | |
83 | + SetLayout(layered_layout_); |
84 | + |
85 | SetMinimumHeight(LENSBAR_HEIGHT); |
86 | SetMaximumHeight(LENSBAR_HEIGHT); |
87 | } |
88 | @@ -79,6 +130,23 @@ |
89 | icon->key_nav_focus_activate.connect([&, icon](nux::Area*){ SetActive(icon); }); |
90 | } |
91 | |
92 | +void LensBar::DoOpenLegalise() |
93 | +{ |
94 | + glib::Error error; |
95 | + std::string legal_file_path = "file://"; |
96 | + legal_file_path.append(PKGDATADIR); |
97 | + legal_file_path.append("/searchingthedashlegalnotice.html"); |
98 | + g_app_info_launch_default_for_uri(legal_file_path.c_str(), NULL, &error); |
99 | + if (error) |
100 | + { |
101 | + LOG_ERROR(logger) << "Could not open legal uri: " << error.Message(); |
102 | + } |
103 | + |
104 | + g_creat(legal_seen_file_path_.c_str(), S_IRWXU); |
105 | + |
106 | + ubus_.SendMessage(UBUS_PLACE_VIEW_CLOSE_REQUEST); |
107 | +} |
108 | + |
109 | void LensBar::AddLens(Lens::Ptr& lens) |
110 | { |
111 | LensBarIcon* icon = new LensBarIcon(lens->id, lens->icon_hint); |
112 | @@ -112,7 +180,7 @@ |
113 | |
114 | bg_layer_->SetGeometry(base); |
115 | nux::GetPainter().RenderSinglePaintLayer(graphics_engine, base, bg_layer_.get()); |
116 | - |
117 | + |
118 | graphics_engine.PopClippingRectangle(); |
119 | } |
120 | |
121 | @@ -139,11 +207,11 @@ |
122 | } |
123 | else if (!IsFullRedraw()) |
124 | { |
125 | - ++pushed_paint_layers; |
126 | + pushed_paint_layers += 2; |
127 | nux::GetPainter().PushLayer(graphics_engine, bg_layer_->GetGeometry(), bg_layer_.get()); |
128 | } |
129 | |
130 | - layout_->ProcessDraw(graphics_engine, true); |
131 | + GetLayout()->ProcessDraw(graphics_engine, true); |
132 | |
133 | if (pushed_paint_layers) |
134 | nux::GetPainter().PopBackground(pushed_paint_layers); |
135 | @@ -172,6 +240,27 @@ |
136 | graphics_engine.PopClippingRectangle(); |
137 | } |
138 | |
139 | +nux::Area* LensBar::FindAreaUnderMouse(const nux::Point& mouse_position, nux::NuxEventType event_type) |
140 | +{ |
141 | + //LayeredLayout is acting a little screwy, events are not passing past the first layout like instructed, |
142 | + //so we manually override if the cursor is on the right hand side of the lensbar |
143 | + auto geo = GetAbsoluteGeometry(); |
144 | + int info_width = (info_previously_shown_) ? info_icon_->GetGeometry().width : legal_->GetGeometry().width; |
145 | + |
146 | + if (mouse_position.x - geo.x < geo.width - info_width - 10) |
147 | + { |
148 | + return nux::View::FindAreaUnderMouse(mouse_position, event_type); |
149 | + } |
150 | + else |
151 | + { |
152 | + if (info_previously_shown_) |
153 | + return dynamic_cast<nux::Area*>(info_icon_); |
154 | + else |
155 | + return dynamic_cast<nux::Area*>(legal_); |
156 | + } |
157 | + |
158 | +} |
159 | + |
160 | void LensBar::SetActive(LensBarIcon* activated) |
161 | { |
162 | bool state_changed = false; |
163 | |
164 | === modified file 'dash/LensBar.h' |
165 | --- dash/LensBar.h 2012-05-06 23:48:38 +0000 |
166 | +++ dash/LensBar.h 2012-10-15 16:31:20 +0000 |
167 | @@ -25,21 +25,27 @@ |
168 | |
169 | #include <NuxGraphics/GraphicsEngine.h> |
170 | #include <Nux/Nux.h> |
171 | -#include <Nux/HLayout.h> |
172 | +#include <Nux/PaintLayer.h> |
173 | #include <Nux/View.h> |
174 | #include <UnityCore/Lens.h> |
175 | |
176 | #include "unity-shared/IconTexture.h" |
177 | #include "unity-shared/Introspectable.h" |
178 | +#include "unity-shared/UBusWrapper.h" |
179 | #include "LensBarIcon.h" |
180 | |
181 | namespace nux |
182 | { |
183 | class AbstractPaintLayer; |
184 | +class HLayout; |
185 | +class LayeredLayout; |
186 | +class StaticCairoText; |
187 | } |
188 | |
189 | namespace unity |
190 | { |
191 | +class IconTexture; |
192 | + |
193 | namespace dash |
194 | { |
195 | |
196 | @@ -62,24 +68,35 @@ |
197 | void SetupBackground(); |
198 | void SetupLayout(); |
199 | void SetupHomeLens(); |
200 | + void DoOpenLegalise(); |
201 | |
202 | void Draw(nux::GraphicsEngine& gfx_context, bool force_draw); |
203 | void DrawContent(nux::GraphicsEngine& gfx_context, bool force_draw); |
204 | |
205 | + nux::Area* FindAreaUnderMouse(const nux::Point& mouse_position, nux::NuxEventType event_type); |
206 | + |
207 | void SetActive(LensBarIcon* icon); |
208 | |
209 | bool AcceptKeyNavFocus(); |
210 | std::string GetName() const; |
211 | void AddProperties(GVariantBuilder* builder); |
212 | |
213 | -private: |
214 | std::string GetActiveLensId() const; |
215 | typedef std::unique_ptr<nux::AbstractPaintLayer> LayerPtr; |
216 | |
217 | LensIcons icons_; |
218 | |
219 | + UBusManager ubus_; |
220 | + |
221 | + nux::LayeredLayout* layered_layout_; |
222 | + nux::HLayout *legal_layout_; |
223 | + nux::StaticCairoText *legal_; |
224 | nux::HLayout* layout_; |
225 | LayerPtr bg_layer_; |
226 | + IconTexture* info_icon_; |
227 | + |
228 | + bool info_previously_shown_; |
229 | + std::string legal_seen_file_path_; |
230 | }; |
231 | |
232 | } // namespace dash |
233 | |
234 | === added file 'plugins/unityshell/resources/information_icon.svg' |
235 | --- plugins/unityshell/resources/information_icon.svg 1970-01-01 00:00:00 +0000 |
236 | +++ plugins/unityshell/resources/information_icon.svg 2012-10-15 16:31:20 +0000 |
237 | @@ -0,0 +1,14 @@ |
238 | +<?xml version="1.0" encoding="utf-8"?> |
239 | +<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> |
240 | +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> |
241 | +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" |
242 | + width="22px" height="22px" viewBox="0 0 22 22" enable-background="new 0 0 22 22" xml:space="preserve"> |
243 | +<g> |
244 | + <g> |
245 | + <path fill="#FFFFFF" d="M11,2c-4.971,0-9,4.03-9,9s4.029,9,9,9s9-4.03,9-9S15.971,2,11,2z M12.007,17.01h-2.004V9.001h2.004V17.01 |
246 | + z M11.877,6.903c-0.245,0.224-0.534,0.336-0.868,0.336c-0.346,0-0.64-0.112-0.885-0.336C9.88,6.68,9.757,6.378,9.757,5.998 |
247 | + c0-0.392,0.123-0.699,0.367-0.924c0.245-0.223,0.539-0.335,0.885-0.335c0.334,0,0.623,0.112,0.868,0.335 |
248 | + c0.244,0.225,0.366,0.532,0.366,0.924C12.243,6.378,12.121,6.68,11.877,6.903z"/> |
249 | + </g> |
250 | +</g> |
251 | +</svg> |
252 | |
253 | === added file 'plugins/unityshell/resources/searchingthedashlegalnotice.html' |
254 | --- plugins/unityshell/resources/searchingthedashlegalnotice.html 1970-01-01 00:00:00 +0000 |
255 | +++ plugins/unityshell/resources/searchingthedashlegalnotice.html 2012-10-15 16:31:20 +0000 |
256 | @@ -0,0 +1,1 @@ |
257 | +<html><head><title>searching the dash legal notice</title><style type="text/css">ol{margin:0;padding:0}.c0{color:#000080;font-family:"Ubuntu";text-decoration:underline}.c8{list-style-type:disc;margin:0;padding:0}.c4{color:#1155cc;font-family:"Ubuntu";text-decoration:underline}.c10{max-width:499.5pt;background-color:#ffffff;padding:72pt 58.5pt 72pt 54pt}.c1{color:inherit;text-decoration:inherit}.c7{padding-left:0pt;margin-left:36pt}.c6{font-weight:bold}.c9{text-align:center}.c2{direction:ltr}.c5{font-family:"Ubuntu"}.c3{height:11pt}.title{padding-top:24pt;line-height:1.15;text-align:left;color:#000000;font-size:36pt;font-family:"Arial";font-weight:bold;padding-bottom:6pt}.subtitle{padding-top:18pt;line-height:1.15;text-align:left;color:#666666;font-style:italic;font-size:24pt;font-family:"Georgia";padding-bottom:4pt}li{color:#000000;font-size:11pt;font-family:"Arial"}p{color:#000000;font-size:11pt;margin:0;font-family:"Arial"}h1{padding-top:24pt;line-height:1.15;text-align:left;color:#000000;font-size:18pt;font-family:"Arial";font-weight:bold;padding-bottom:6pt}h2{padding-top:18pt;line-height:1.15;text-align:left;color:#000000;font-size:14pt;font-family:"Arial";font-weight:bold;padding-bottom:4pt}h3{padding-top:14pt;line-height:1.15;text-align:left;color:#666666;font-size:12pt;font-family:"Arial";font-weight:bold;padding-bottom:4pt}h4{padding-top:12pt;line-height:1.15;text-align:left;color:#666666;font-style:italic;font-size:11pt;font-family:"Arial";padding-bottom:2pt}h5{padding-top:11pt;line-height:1.15;text-align:left;color:#666666;font-size:10pt;font-family:"Arial";font-weight:bold;padding-bottom:2pt}h6{padding-top:10pt;line-height:1.15;text-align:left;color:#666666;font-style:italic;font-size:10pt;font-family:"Arial";padding-bottom:2pt}</style></head><body class="c10"><p class="c2 c9"><span class="c5"> </span><span class="c6 c5">Searching in the dash - Legal notice</span></p><p class="c2 c3"><span class="c6 c5"></span></p><p class="c2"><span class="c5">This search function is provided to you by Canonical Group Limited (Canonical). This legal notice applies to searching in the dash and incorporates the terms of Canonical's</span><span class="c0"> </span><span class="c4"><a class="c1" href="http://www.canonical.com/legal">legal notice</a></span><span class="c0"> </span><span class="c5">(and privacy policy). </span></p><p class="c2 c3"><span class="c5"></span></p><p class="c2"><span class="c6 c5">Collection and use of data</span></p><p class="c2"><span class="c5">When you enter a search term into the dash Ubuntu will search your Ubuntu computer and will record the search terms locally. </span></p><p class="c2 c3"><span class="c5"></span></p><p class="c2"><span class="c5">Unless you have opted out (see the “Online Search” section below), we will also send your keystrokes as a search term to productsearch.ubuntu.com and selected third parties so that we may complement your search results with online search results from such third parties including: Facebook, Twitter, BBC and Amazon. Canonical and these selected third parties will collect your search terms and use them to provide you with search results while using Ubuntu. </span></p><p class="c2 c3"><span class="c5"></span></p><p class="c2"><span class="c5">By searching in the dash you consent to:</span></p><p class="c2 c3"><span class="c5"></span></p><ol class="c8" start="1"><li class="c7 c2"><span class="c5">the collection and use of your search terms and IP address in this way; and</span></li><li class="c2 c7"><span class="c5">the storage of your search terms and IP address by Canonical and such selected third parties (if applicable).</span></li></ol><p class="c2 c3"><span class="c5"></span></p><p class="c2"><span class="c5">Canonical will only use your search terms and IP address in accordance with this legal notice and </span><span class="c4"><a class="c1" href="http://www.ubuntu.com/aboutus/privacypolicy">our privacy</a></span><span class="c4"><a class="c1" href="http://www.ubuntu.com/aboutus/privacypolicy"> policy</a></span><span class="c5">.</span><span class="c5"> Please see </span><span class="c4"><a class="c1" href="http://www.ubuntu.com/aboutus/privacypolicy">our privacy</a></span><span class="c4"><a class="c1" href="http://www.ubuntu.com/aboutus/privacypolicy"> policy</a></span><span class="c5"> </span><span class="c5">for further information about how Canonical protects your personal information. For information on how our selected third parties may use your information, please see their privacy policies.</span></p><p class="c2 c3"><span class="c5"></span></p><p class="c2"><span class="c6 c5">Online Search</span></p><p class="c2"><span class="c5">You may restrict your dash so that we don’t send searches to third parties and you don't receive online search results. To do this go to the Privacy panel and toggle the ‘Include online search results’ option to off. The Privacy panel can be found in your System Settings or via a dash search. For a current list of our selected third parties, please see </span><span class="c4"><a class="c1" href="http://www.ubuntu.com/privacypolicy/thirdparties">www.ubuntu.com/privacypolicy/thirdparties</a></span><span class="c5">.</span></p><p class="c2 c3"><span class="c5"></span></p><p class="c2"><span class="c5 c6">Changes</span></p><p class="c2"><span class="c5">Although most changes are likely to be minor, Canonical may change this legal notice from time to time, and at Canonical's sole discretion. Please check this page from time to time for any changes to this legal notice as we will not be able to notify you directly.</span></p><p class="c2 c3"><span class="c5"></span></p><p class="c2"><span class="c6 c5">How to contact us</span></p><p class="c2"><span class="c5">Please submit any questions or comments about searching in the dash or this legal notice by contacting us at the following address: Canonical Group Ltd, 5th Floor, Blue Fin Building, 110 Southwark Street, London, England, SE1 0SU.</span></p></body></html> |
258 | |
259 | === modified file 'unity-shared/DashStyle.cpp' |
260 | --- unity-shared/DashStyle.cpp 2012-10-10 14:25:59 +0000 |
261 | +++ unity-shared/DashStyle.cpp 2012-10-15 16:31:20 +0000 |
262 | @@ -221,6 +221,7 @@ |
263 | LazyLoadTexture search_close_texture_; |
264 | LazyLoadTexture search_spin_texture_; |
265 | |
266 | + LazyLoadTexture information_texture_; |
267 | |
268 | LazyLoadTexture refine_gradient_corner_; |
269 | LazyLoadTexture refine_gradient_dash_; |
270 | @@ -268,6 +269,7 @@ |
271 | , search_circle_texture_("/search_circle.svg", 32) |
272 | , search_close_texture_("/search_close.svg", 32) |
273 | , search_spin_texture_("/search_spin.svg", 32) |
274 | + , information_texture_("/information_icon.svg") |
275 | , refine_gradient_corner_("/refine_gradient_corner.png") |
276 | , refine_gradient_dash_("/refine_gradient_dash.png") |
277 | , refine_gradient_no_refine_dash_("/refine_gradient_dash_no_refine.png") |
278 | @@ -2211,6 +2213,11 @@ |
279 | return pimpl->search_spin_texture_.texture(); |
280 | } |
281 | |
282 | +nux::BaseTexture* Style::GetInformationTexture() |
283 | +{ |
284 | + return pimpl->information_texture_.texture(); |
285 | +} |
286 | + |
287 | nux::BaseTexture* Style::GetRefineTextureCorner() |
288 | { |
289 | return pimpl->refine_gradient_corner_.texture(); |
290 | |
291 | === modified file 'unity-shared/DashStyle.h' |
292 | --- unity-shared/DashStyle.h 2012-10-10 14:25:59 +0000 |
293 | +++ unity-shared/DashStyle.h 2012-10-15 16:31:20 +0000 |
294 | @@ -203,7 +203,9 @@ |
295 | nux::BaseTexture* GetStarDeselectedIcon(); |
296 | nux::BaseTexture* GetStarSelectedIcon(); |
297 | nux::BaseTexture* GetStarHighlightIcon(); |
298 | - |
299 | + |
300 | + nux::BaseTexture* GetInformationTexture(); |
301 | + |
302 | nux::BaseTexture* GetRefineTextureCorner(); |
303 | nux::BaseTexture* GetRefineTextureDash(); |
304 | nux::BaseTexture* GetRefineNoRefineTextureDash(); |
Looks good and works well...
29 + glib::String cachedir( g_strdup( g_get_user_ cache_dir( )));
No need to strdup it, just assign that to std::string... It should be never NULL, in case just check for that.
30 + legal_seen_ file_path_ = cachedir.Str() + "/unitydashlega lseen";
Since we have an unity .cache dir, I'd just add there... i.e. cachedir/ unity/dashlegal seen
68 + QueueRelayout();
69 + QueueDraw();
The first is enough, as does also redraw.
64 + info_icon_ ->SetVisible( info_previously _shown_ ); >SetVisible( !info_previousl y_shown_ );
65 + legal_-
67 + DoOpenLegalise();
Wouldn't be better to open the legalise (and close the dash) and then switch the icon visibility?
95 + std::string legal_file_path = "file://"; path.append( PKGDATADIR) ; path.append( "/searchingthed ashlegalnotice. html");
96 + legal_file_
97 + legal_file_
Why not just doing: ashlegalnotice. html";
std::string legal_file_path = "file://" PKGDATADIR "/searchingthed
221 + nux::LayeredLayout* layered_layout_;
222 + nux::HLayout *legal_layout_;
It seems you don't need to keep these in class.
Finally, both the icon and the text are always built, only their visibility is switched, couldn't avoid this (and then only allocate only the needed resources)?