[baobab/wip/grid-layout: 5/6] Implement new layout for the location view



commit ae7bd8bf85d3c86d5012c8020f18e88ddb20b6cc
Author: Stefano Facchini <stefano facchini gmail com>
Date:   Sun Apr 15 15:19:25 2012 +0200

    Implement new layout for the location view
    
    Add a flow container for the location widgets and use it to implement a
    new location view.

 src/Makefile.am               |    7 +-
 src/baobab-location-view.vala |  203 +++++++++++++++++++++++++++++++++++++++++
 src/baobab-main-window.ui     |   11 +--
 src/baobab-watermark.svg      |   61 ++++++++++++
 src/baobab-window.vala        |   31 ++++--
 src/baobab.css                |   11 ++
 src/baobab.gresource.xml      |    1 +
 7 files changed, 305 insertions(+), 20 deletions(-)
---
diff --git a/src/Makefile.am b/src/Makefile.am
index 8daceb4..da001a6 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -33,6 +33,7 @@ baobab_SOURCES = \
 	baobab-location-monitor.vala	\
 	baobab-location.vala		\
 	baobab-location-widget.vala	\
+	baobab-location-view.vala	\
 	baobab-scanner.vala		\
 	baobab-window.vala		\
 	main.vala			\
@@ -61,6 +62,7 @@ MAINTAINERCLEANFILES = \
 	baobab-location-monitor.c	\
 	baobab-location.c		\
 	baobab-location-widget.c	\
+	baobab-location-view.c		\
 	baobab-scanner.c		\
 	baobab-window.c			\
 	baobab_vala.stamp		\
@@ -70,7 +72,8 @@ MAINTAINERCLEANFILES = \
 EXTRA_DIST = \
 	baobab.gresource.xml \
 	baobab-main-window.ui \
-	baobab-menu.ui	\
-	baobab.css
+	baobab-menu.ui \
+	baobab.css \
+	baobab-watermark.svg
 
 -include $(top_srcdir)/git.mk
diff --git a/src/baobab-location-view.vala b/src/baobab-location-view.vala
new file mode 100644
index 0000000..cc3c11f
--- /dev/null
+++ b/src/baobab-location-view.vala
@@ -0,0 +1,203 @@
+/* -*- indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* Baobab - disk usage analyzer
+ *
+ * Copyright (C) 2012  Stefano Facchini <stefano facchini gmail com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+
+namespace Baobab {
+
+    public class LocationView : Gtk.Grid {
+        private LocationFlowContainer volume_container;
+        private LocationFlowContainer folder_container;
+
+        public LocationView () {
+            orientation = Gtk.Orientation.VERTICAL;
+            hexpand = true;
+            vexpand = true;
+            margin = 10;
+
+            Gtk.Label label;
+
+            label = new Gtk.Label (_("Volumes"));
+            label.set_markup ("<b>" + _("Volumes") + "</b>");
+            label.halign = Gtk.Align.START;
+            label.margin_bottom = 10;
+            add (label);
+            label.show ();
+
+            volume_container = new LocationFlowContainer ();
+            add (volume_container);
+            volume_container.show ();
+
+            label = new Gtk.Label (_("Folders"));
+            label.set_markup ("<b>" + _("Folders") + "</b>");
+            label.halign = Gtk.Align.START;
+            label.margin_top = 24;
+            label.margin_bottom = 10;
+            add (label);
+            label.show ();
+
+            folder_container = new LocationFlowContainer ();
+            add (folder_container);
+            folder_container.show ();
+        }
+
+        public void add_to_volumes (LocationWidget location_widget) {
+            volume_container.add (location_widget);
+        }
+
+        public void add_to_folders (LocationWidget location_widget) {
+            folder_container.add (location_widget);
+        }
+
+        public void clear () {
+            volume_container.clear ();
+            folder_container.clear ();
+        }
+    }
+
+    public class LocationFlowContainer : Gtk.Container {
+        private int _column_spacing = 20;
+        public int column_spacing {
+            get {
+                return _column_spacing;
+            }
+
+            set {
+                _column_spacing = value;
+                queue_resize ();
+            }
+        }
+
+        private int _row_spacing = 20;
+        public int row_spacing {
+            get {
+                return _row_spacing;
+            }
+            set {
+                _row_spacing = value;
+                queue_resize ();
+            }
+        }
+
+        int columns;
+        int rows;
+
+        List<Gtk.Widget> children = null;
+
+        public LocationFlowContainer () {
+            hexpand = true;
+
+            set_has_window (false);
+        }
+
+        public void clear () {
+            this.foreach ((widget) => { widget.destroy (); });
+        }
+
+        protected override Gtk.SizeRequestMode get_request_mode () {
+            return Gtk.SizeRequestMode.HEIGHT_FOR_WIDTH;
+        }
+
+        protected override void get_preferred_width (out int minimum, out int natural) {
+            int width = 0;
+
+            if (children.length () > 0) {
+                children.data.get_preferred_width (null, out width);
+            }
+
+            minimum = natural = width;
+        }
+
+        protected override void get_preferred_height_for_width (int width, out int minimum, out int natural) {
+            int height = 0;
+
+            var n_children = children.length ();
+            if (n_children > 0) {
+                int child_width, child_height;
+                children.data.get_preferred_width (null, out child_width);
+                children.data.get_preferred_height (null, out child_height);
+
+                int n_columns = (width + column_spacing) / (child_width + column_spacing);
+                int n_rows = (int) Math.ceil((double) n_children / n_columns);
+                height = (child_height + row_spacing) * n_rows - row_spacing;
+            }
+
+            minimum = natural = height;
+        }
+
+        protected override void size_allocate (Gtk.Allocation alloc) {
+            set_allocation (alloc);
+
+            if (children.length () == 0) {
+                return;
+            }
+
+            int child_width, child_height;
+            children.data.get_preferred_width (null, out child_width);
+            children.data.get_preferred_height (null, out child_height);
+
+            columns = (alloc.width + column_spacing) / (child_width + column_spacing);
+            rows = 0;
+
+            int col = 0;
+            foreach (var child in children) {
+                var child_alloc = Gtk.Allocation ();
+                child_alloc.x = alloc.x + col * (child_width + column_spacing);
+                child_alloc.y = alloc.y + rows * (child_height + row_spacing);
+                child_alloc.width = child_width;
+                child_alloc.height = child_height;
+
+                child.size_allocate (child_alloc);
+
+                if (++col >= columns) {
+                    col = 0;
+                    rows++;
+                }
+            }
+        }
+
+        protected override void forall_internal (bool include_internals, Gtk.Callback callback) {
+            unowned List<Gtk.Widget> list = children;
+            while (list != null) {
+                Gtk.Widget child = list.data;
+                list = list.next;
+
+                callback (child);
+            }
+        }
+
+        protected override void remove (Gtk.Widget widget) {
+            foreach (var child in children) {
+                if (child == widget) {
+                    widget.unparent ();
+                    children.remove (widget);
+
+                    queue_resize ();
+
+                    break;
+                }
+            }
+        }
+
+        protected override void add (Gtk.Widget widget) {
+            widget.set_parent (this);
+            widget.show ();
+            children.append (widget);
+        }
+    }
+}
diff --git a/src/baobab-main-window.ui b/src/baobab-main-window.ui
index 828a14e..7974688 100644
--- a/src/baobab-main-window.ui
+++ b/src/baobab-main-window.ui
@@ -191,19 +191,14 @@
             <property name="visible">True</property>
             <property name="orientation">vertical</property>
             <child>
-              <object class="GtkScrolledWindow" id="volume-scrolled-window">
+              <object class="GtkScrolledWindow" id="location-scrolled-window">
                 <property name="visible">True</property>
                 <property name="vexpand">True</property>
                 <property name="hexpand">True</property>
+                <property name="shadow_type">in</property>
                 <child>
-                  <object class="GtkViewport" id="volume-viewport">
+                  <object class="GtkViewport" id="location-viewport">
                     <property name="visible">True</property>
-                    <child>
-                      <object class="GtkGrid" id="location-view">
-                        <property name="visible">True</property>
-                        <property name="orientation">vertical</property>
-                      </object>
-                    </child>
                   </object>
                 </child>
               </object>
diff --git a/src/baobab-watermark.svg b/src/baobab-watermark.svg
new file mode 100644
index 0000000..ef038cc
--- /dev/null
+++ b/src/baobab-watermark.svg
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   id="svg5886"
+   version="1.1"
+   inkscape:version="0.48.3.1 r9886"
+   width="1280"
+   height="1024"
+   sodipodi:docname="watermark.svg">
+  <metadata
+     id="metadata5892">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs5890" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1366"
+     inkscape:window-height="709"
+     id="namedview5888"
+     showgrid="false"
+     inkscape:zoom="0.5"
+     inkscape:cx="626.48917"
+     inkscape:cy="403.32494"
+     inkscape:window-x="0"
+     inkscape:window-y="27"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg5886"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0" />
+  <path
+     style="fill:#cccccc"
+     d="m 877.01839,191.04346 c -11.40335,18.96201 -38.06211,107.17899 -43.21875,65.2602 5.20015,55.5288 -28.8997,92.42231 -73.84375,120.08037 -11.62694,-15.74686 12.40129,-100.91767 2.70693,-49.28321 6.20826,-19.9165 65.77965,-57.93163 46.19932,-52.32049 -48.63681,16.62267 -4.92495,-17.42745 -2.64278,-39.57332 -23.37368,33.66232 -16.61737,3.01347 -4.36882,-11.45401 -24.02152,19.2012 -46.79497,21.63289 -17.02399,-8.34851 -5.31591,-15.17987 -38.01082,61.17847 -33.30884,17.27376 -11.45668,21.58088 -37.51266,19.1983 -35.89332,58.48165 -1.7244,3.90511 -6.76731,-50.16845 -7.45189,-1.92736 3.23279,19.08556 18.20666,48.82221 -3.93536,26.62697 15.91237,28.05716 22.02135,44.62674 -8.36628,17.754 -12.30652,-13.0816 -52.58544,33.71443 -24.76213,-13.73966 -10.12348,-1.54789 -33.26455,62.16543 -58.69636,65.82424 2.39656,-35.29403 -10.73634,15.7089 -6.22781,-27.71862 -7.77316,-23.10281 41.93477,-67.52129 27.52865,-70.54454 -12.97079,52.86158 -24.88121,-44.76405 -22.97607,11.63419 1.19355,
 47.57203 -15.08343,21.31403 -13.375,1.36333 -11.24808,17.29163 16.47897,75.86283 -10.41814,30.13789 -7.79971,-31.56412 -17.55864,-18.96611 -18.98807,5.31814 -17.71753,-24.95676 -17.91473,-8.35817 -14.06254,0.13397 -12.62721,-27.88038 -34.08179,41.90713 -41.53125,-3.94647 1.85073,-29.11418 -11.83615,-32.29434 -25.56959,-23.98231 -7.1885,-49.24772 -2.04598,43.00814 -16.86828,-11.12397 -2.31176,-23.53444 -22.77446,-37.68166 -7.07196,-5.42401 -49.78027,-37.02782 23.9373,27.88097 19.86231,45.93374 18.56138,74.39541 -36.18187,-66.85819 -26.08568,-2.28356 20.37841,52.48682 -35.64398,-43.58349 -28.8293,-38.56639 27.09385,38.1492 -29.18945,-12.06967 -9.48833,31.85721 -9.0745,1.40969 -25.82166,-44.61791 -10.58024,-0.17811 29.39272,23.31159 -2.39721,54.44864 -9.06157,10.84947 -13.37231,-23.09515 -19.06942,-27.12644 -12.13863,1.92469 -15.44162,-18.10002 -38.84529,-29.80854 -11.4639,1.06399 2.20413,16.89496 -31.06801,-19.61832 -21.59811,17.22067 3.79173,12.31567 -2.86655,42.16887 -9.1365
 4,13.81304 -1.94359,17.50166 32.93566,47.92448 -5.84518,32.51516 -10.12177,-9.84896 -27.85979,48.9227 -41.24882,3.73258 -4.35698,1.97926 11.76974,57.56216 7.81132,69.45652 8.44886,27.39164 -67.44966,-64.53583 -18.40625,-52.55982 -1.0288,-23.98708 -22.66724,-58.60112 -13.78125,-15.14011 -11.94372,-1.23819 -41.91263,-58.44966 -33.57097,-6.8161 -65.30348,-62.39749 70.44953,71.84877 -6.93928,45.95248 -22.45037,-0.26767 -56.11824,-67.87722 -32.3632,-12.98153 -13.74078,-23.49801 -94.42695,-27.57732 -36.73773,-3.41454 -67.85751,2.5688 76.80956,8.6158 20.01743,25.55016 -31.01769,6.7479 -33.86528,-20.61637 -58.78125,-8.57461 19.46496,54.24105 -44.047931,-51.35492 -40.281248,-33.15036 19.336028,42.67366 -65.633325,-47.95232 -29.818324,-7.37432 30.761199,33.83779 -29.855585,-17.5064 -31.337926,20.07478 1.214622,3.64365 31.592274,31.2442 -4.46404,10.46619 15.417433,9.23801 40.646596,42.75278 14.49529,23.90399 -26.5290653,-29.57993 -3.85726,40.23118 26.908742,37.29821 44.774326,-11.11183
  48.318266,71.96169 18.216258,42.74339 -8.073099,19.49581 -85.3681275,-76.13079 -49.167952,-22.55867 -17.316162,-3.12298 -44.975804,-21.44587 -13.372712,2.69663 15.944728,3.09648 49.117323,22.94666 14.593183,25.49666 24.78776,-2.74399 61.370102,12.42984 15.540155,14.44864 11.489464,8.05989 70.000564,-14.2915 27.754973,10.14022 66.423861,20.38302 -67.8539069,-2.08938 -3.247652,18.36164 -31.000793,-7.46029 -40.49656,15.19541 -4.068745,10.97071 16.716312,0.75742 62.901008,-26.69227 37.139108,2.78349 -20.77605,1.17835 -53.398048,14.33501 -11.331119,9.97563 -29.779754,25.00555 63.770759,-22.93446 45.974639,-0.45589 -32.87157,-1.26735 -54.027133,33.53765 -7.58423,16.61846 36.07872,-5.96759 22.53922,3.00925 42.55452,14.17161 34.14269,2.08614 28.30888,21.02961 16.68458,26.57986 43.60649,-22.67238 82.71097,51.36394 135.984,21.51164 55.18523,-10.75398 85.55995,-7.50293 133.78097,-5.33982 34.209,-1.43273 -13.14905,24.6304 21.19669,19.65417 -29.50811,16.89156 -49.25227,-11.08099 -68.532
 09,6.45293 -34.26047,-19.05571 -66.07899,7.36372 -101.99961,-10.61651 53.06076,6.34038 -52.84474,14.44032 -12.15549,14.42624 -16.13248,18.67571 -44.12487,28.80612 -5.50836,20.14378 -34.47303,57.93387 19.48048,-37.2069 49.7008,-12.96763 10.08207,-15.33053 -13.91702,55.13867 -44.46183,49.82994 -27.08239,20.59564 -10.14431,4.43703 2.3021,8.31117 -50.69294,56.26252 58.51241,-52.47054 16.63032,9.10495 -3.05737,-14.89057 48.95685,-21.5434 20.75,-1.36333 -13.16142,19.25193 76.72204,-54.30777 40.125,-7.1754 -23.99806,27.17863 51.98126,-41.25914 24.59801,4.67988 -4.36077,23.65954 63.04428,-54.89096 31.15199,-0.87691 16.10931,-16.37009 35.96524,-12.59797 33.03125,-21.20331 41.87216,-36.63753 93.00654,20.13167 103.66593,60.07797 9.77427,24.83464 -9.41909,77.36892 -19.50968,26.38562 -13.28494,-13.04945 15.86748,-7.58651 9.60153,-35.92683 -15.49894,47.01663 -33.45505,-54.96784 -26.53328,6.75056 -4.42483,-3.33299 -23.4873,-87.25709 -14.74462,-26.28104 -9.05726,22.10994 -27.29093,-29.10088
  -17.76609,9.98605 -23.17982,-25.2495 20.87682,51.24312 -12.63089,2.46405 -8.42009,-58.55727 -57.20167,6.77396 -8.29532,16.83615 25.94318,27.75881 -28.80605,-5.19989 11.09115,26.3914 1.62701,30.67516 -56.47752,-64.70484 -41.22899,-10.10405 -12.36665,-11.30163 -34.23064,-33.86414 -11.73773,-2.80695 14.887,10.36902 42.32744,3.97723 22.93174,12.97767 -39.55438,9.25486 63.02759,16.55469 16.08534,27.85673 54.4583,-7.58133 105.77979,38.84714 77.26331,92.03642 -11.59015,35.97826 -4.18154,57.97486 34.95663,48.69296 72.52324,0 145.04648,0 217.56972,0 -4.46814,-58.33866 -23.04815,-114.70275 -47.59375,-167.50979 36.86565,-40.0839 106.83013,-24.71169 156.01342,-45.74193 74.39105,-14.70087 130.22929,-67.80772 186.24819,-114.63631 25.2633,-29.85057 71.7756,-20.47864 96.5598,-14.27515 -52.0821,-17.65354 13.4654,-5.5946 24.5514,-20.09817 -64.9089,19.11049 67.3615,-53.1263 17.3147,-18.64489 44.5386,-2.41456 8.2384,-31.5259 -14.0925,-8.26516 30.684,-26.68354 -53.0565,9.62177 -3.6421,-18.84616
  30.9817,-14.82504 -19.3158,-44.15902 15.0008,-52.23816 -20.1876,55.54257 28.1961,-35.84461 15.14,-23.15114 -22.6969,6.04566 62.2643,-51.67626 6.411,-16.22359 -27.0657,5.56559 38.057,-36.27184 -10.9941,-11.2288 -24.1119,37.0278 -8.8388,-9.52499 4.0052,-28.96924 -26.6412,-20.54418 -19.8464,34.02822 -29.3675,-2.41203 -20.635,18.5482 -17.5389,-7.62441 -32.4608,23.85358 -14.7457,34.7608 1.9507,-71.15988 -24.1361,-20.40013 -3.764,26.37549 -24.4113,43.80698 -9.4577,6.01346 -11.8669,-8.08416 -25.0904,83.74365 -30.2322,75.72391 7.5097,-18.91475 -3.228,-77.61417 -3.0722,-24.09664 -12.5761,36.32222 -20.0163,-91.25393 -48.673,-32.78307 2.0797,-2.27104 26.8618,-89.44275 6.6068,-33.88277 -22.8635,32.38953 9.1772,-38.77487 -17.0136,-2.2722 11.5821,24.53506 -27.6513,78.11569 -33.6934,72.78367 23.6492,-26.40876 -11.0257,-7.56247 -0.7036,-40.1893 -13.7037,-38.46887 0.6399,50.15464 -14.7813,-3.04954 2.0294,-1.08062 7.4721,69.91938 -13.5181,61.64459 12.331,-29.67754 9.7638,-51.75458 -6.38733,-
 10.05649 -3.74789,22.36885 -45.77837,49.15804 -20.99282,7.33972 4.38038,-33.15881 -19.00708,18.34205 -3.72223,-23.57748 -25.76904,6.93548 -59.84399,34.37978 -63.93879,51.50124 0.62027,-45.06145 22.80609,-85.94496 56.18431,-106.40456 19.34908,-17.839 63.23806,-32.61111 28.22873,-35.88176 21.69883,-1.8611 57.54153,-14.05886 10.06213,-8.9894 13.7838,-7.00416 56.9017,-8.97433 36.5216,-29.53775 -24.4151,5.02282 -52.02903,-3.36603 -52.53121,17.11333 -5.88038,-21.46732 38.52911,-37.88905 41.65621,-39.85936 -1.7928,-30.87506 88.2846,-38.88213 53.6994,-45.66736 24.0666,-18.0338 0.2333,-22.95396 2.8944,-18.05021 6.678,-9.12384 -38.4472,12.32792 -17.8438,-23.49945 2.211,-4.45612 3.6706,34.82641 7.5133,0.54235 -1.4302,-31.79253 -23.2884,7.71389 -17.861,-34.29832 -6.9863,18.29089 -8.6527,70.4285 -31.3677,29.38374 -32.3772,37.08802 16.9501,-61.35406 -4.8158,-42.3755 1.4579,35.96259 -10.9968,2.77247 -10.1876,8.7181 -0.4114,33.06108 -34.74591,36.84514 -15.99991,2.58315 -1.33483,-18.10677 -3
 6.95687,39.08317 -40.28125,57.9055 -22.69748,53.07629 10.4172,-74.95134 -20.21942,-7.64222 -6.29731,4.53009 -2.69055,-45.43926 -11.96808,-7.78489 -3.8472,21.47372 -10.57806,38.48237 -11.5625,9.14864 -2.31254,23.02281 -51.10532,29.5339 -15.02862,8.86604 -7.13908,-13.10692 46.82354,-41.59117 5.25653,-21.7789 16.6622,-27.25427 12.52049,-21.00628 -13.35291,-20.2375 -8.53583,-11.22119 5.96259,-16.35124 -19.97856,-10.31721 19.06664,-16.49159 44.60577,-22.38623 22.75981,-43.89296 -8.65798,-0.034 13.23736,-53.31394 -6.55918,-12.49885 -18.73912,26.65795 -3.49479,-16.70634 -4.56582,-24.81322 z m 8.125,45.49205 c 3.5941,12.85422 -14.78769,14.12194 0,-4e-5 l 0,4e-5 z m -22.5,2.94192 c 10.61654,12.05686 -18.72679,13.88709 0,0 z m -81.78125,7.21127 c 9.60459,32.05756 -25.76282,44.83394 -22.84375,31.89466 -19.1697,28.25093 8.71421,-42.13061 22.84375,-31.89466 z m 81.5,13.88441 c -1.24076,30.23505 -27.17303,29.66202 -6.125,3.04954 l 6.125,-3.04954 0,0 z m 7.25,18.01025 c 9.22312,12.23439 -2
 2.63806,12.85544 0,0 z m 109.375,0.7893 c 8.66991,17.08927 -24.80785,31.1663 -5.28125,6.2426 l 5.28125,-6.2426 z m -139.46875,5.95558 c 15.10745,18.79511 -21.92238,13.34486 0,0 z m -109.09375,1.50683 c 14.38635,22.81501 -2.45081,108.04146 -1.5472,36.30599 0.84749,-11.70912 -3.37772,-25.19892 1.5472,-36.30599 z m 50.5625,1.54272 c 4.73996,14.89049 -25.92952,18.29826 -4.79043,2.14715 l 4.79043,-2.14715 z m 104.9375,0.1435 c 11.42149,16.11114 -36.62027,5.55849 0,0 z m 100.5,5.59682 c 19.84416,16.5676 -7.28372,25.75231 0,0 z m -236.21875,0.96867 c 3.29897,20.80351 -16.01087,11.81156 0,0 z m 101.4375,3.22893 c 8.3642,23.19298 59.85879,-13.99378 27.44639,20.50992 -31.82895,42.7176 -40.73698,17.22065 -27.44639,-20.50992 z m 125.5625,8.07235 c 23.36861,34.12158 -18.25937,13.47997 -17.03125,47.68054 -29.5437,20.17337 10.08253,-20.70728 -10.21606,-16.89555 7.03891,-11.46612 15.28812,-24.0442 27.24731,-30.78499 z m 41.62501,2.61902 c 7.9633,23.82192 -15.54,25.53251 0,0 z m -178.71876,0
 .32289 c 5.77921,22.40159 -19.81963,20.3869 0,0 z m -339.4375,0.43052 c 15.09594,18.82888 -21.95437,13.30162 0,0 z m 28.28125,3.65946 c -16.0093,33.38057 0.11553,51.57089 0,0 z m 194.9375,1.57859 c 6.30621,16.48299 -5.81037,18.78671 0,0 z m -147.15625,3.15717 c 12.52409,20.95175 -8.13988,39.47055 -1.44388,4.03966 l 1.44388,-4.03966 z m -81.21875,9.32802 c 17.99481,8.42855 -15.91961,29.06646 -3.82667,2.74752 l 3.82667,-2.74752 z m 505.34371,4.87928 c 10.6352,12.11835 -18.80301,13.79191 0,0 z m -226.74996,1.00456 c -24.72346,28.73167 -0.93771,28.77404 0,0 z m -228.84375,0.68166 c 6.79398,9.10516 -5.036,23.36021 0,0 z m 277.125,0.75342 c 22.09726,20.57263 -11.52692,23.65881 -10.75,27.80468 -10.39252,45.94442 -13.21226,-30.77326 10.75,-27.80468 z m -429.53125,3.22893 c 19.43849,20.97533 -5.77684,23.27687 0,0 z m 292.28125,0.28701 c 8.31819,30.66365 -30.71482,68.83221 -11.15313,15.19887 2.18161,-5.89838 5.2438,-12.14905 11.15313,-15.19887 z m 300.8125,4.12586 c 5.34326,11.09767 -
 22.42957,6.79526 0,0 z m -71.0625,0.60991 c 10.21334,21.24761 -10.36922,66.38014 -4.26298,15.99316 -11.51466,6.29917 2.48186,-14.51631 4.26298,-15.99316 z m -69.875,0.50228 c -8.62963,27.13362 -21.05915,4.42187 0,0 z m 56.90625,0.43052 c 8.69056,25.76538 -12.56316,82.91635 -29.5947,64.45201 11.11966,-11.99591 28.41308,-45.04493 8.56345,-25.95598 2.79673,-13.37321 15.58424,-25.45041 21.03125,-38.49603 z m -338.65625,0.39465 c 12.24125,26.45127 -27.18832,35.14674 0,0 z m 498.78121,0.1435 c 13.5083,11.73436 -28.566,7.92043 0,0 z m -556.06246,0.3229 c 20.80316,14.0002 4.83946,79.06595 4.14827,24.09216 -20.67604,18.55925 -19.43891,-21.51604 -4.14827,-24.09216 z m -148.21875,3.04954 c 19.83409,16.51686 -7.27186,25.7077 0,0 z m 384.625,4.01822 c 10.64558,16.13489 -17.30257,22.13432 0,0 z m -75.21875,1.21982 c -13.95413,7.83743 -2.47044,83.31177 -17.66213,37.22338 8.58124,-12.21024 -1.91783,-34.21246 17.66213,-37.22338 z m 128.5,4.98691 c 8.62534,30.24119 -59.17734,56.30864 -22.1875
 ,19.30183 10.22225,-0.0118 13.99293,-15.00348 22.1875,-19.30183 z m -268.25,0.35876 c 6.73082,8.49927 -4.94546,24.23898 0,0 z m -154.8125,5.9556 c -1.92589,14.56858 17.66541,28.98756 2.79286,53.91076 -18.20547,-7.98886 -10.49936,-41.04929 -2.79286,-53.91076 z m 269.90625,0.32288 c 6.25715,39.64591 -16.5477,12.60901 0,0 z m 77.59375,1.82973 c 15.38066,12.51989 30.75009,82.30939 -2.35704,44.85343 46.08972,14.43557 -13.14066,-29.43077 2.35704,-44.85343 z m 302.06246,0.4664 c -4.3841,11.79219 -40.92117,39.71149 -50.71871,39.85936 -0.61851,-32.35324 24.31974,-33.15435 50.71871,-39.85936 z m -480.93746,1.04043 c 25.514,22.84623 -2.82318,21.7601 0,0 z m 34.96875,1.54272 c 21.5129,15.67388 -15.01789,39.44882 0.69442,9.04305 -21.14148,21.33127 -6.45191,-4.99166 -0.69442,-9.04305 z m 122.09375,1.93735 c 23.62653,14.11921 -10.07867,15.44812 0,0 z m -241.625,1.50684 c 7.87752,14.0897 -18.10393,10.92857 0,-5e-5 l 0,5e-5 z m 7.21875,0.0718 c 15.95198,4.75366 30.67302,29.41732 7.78125,7.78
 531 l -7.78125,-7.78531 z m 392.0625,0.75342 c -9.61162,23.04621 31.06486,-8.68626 10.11327,15.28772 -13.33901,4.54506 -30.2006,-7.95656 -10.11327,-15.28772 z m -261.25,6.2426 c 7.25987,21.27365 -6.85141,26.81636 0,0 z m -163.28125,1.11219 c 24.52472,8.65011 -16.52959,37.64605 0,0 z m 256.375,1.50683 c 8.4223,10.03959 -19.80044,73.2301 -8.03554,29.83282 -26.08844,13.23693 5.3347,-12.43264 -1.71446,-23.87724 l 4.93277,-4.26508 4.81723,-1.6905 0,0 z m -222.8125,5.05866 c 6.86778,9.18942 -5.00032,23.05409 0,0 z m 331.1875,1.00456 c 20.42353,15.98531 -28.21344,12.10286 0,5e-5 l 0,-5e-5 z m -158.6875,2.18849 c 43.16342,25.96971 -85.23694,103.00075 -24.53125,45.06153 -22.92388,15.45384 -45.1594,14.62674 -12.13407,-7.21137 34.83928,-23.64454 -50.40003,15.40144 -14.17843,-11.73169 14.90662,-12.51532 30.14582,-25.36337 50.84375,-26.11847 z m -158.5625,3.22893 c 37.08355,3.44364 18.31391,52.19458 17.84375,55.42998 0.21143,-14.53533 -31.76202,-21.79153 -24.53125,-29.31151 -6.9748,18.72
 968 -1.27296,-32.54167 6.6875,-26.11847 z m -227.9375,3.33656 c 6.80624,8.82587 -4.99063,23.68882 0,0 z m 777.06246,0.28702 c -30.75045,13.34826 3.1644,16.80024 0,0 z m -161.65621,0.1435 c 11.99015,15.84193 -34.75024,12.80738 0,0 z m -164.5625,4.41288 c 20.64577,9.22369 -11.20987,11.53193 0,0 z m -307.96875,4.26937 c -5.38349,19.77571 7.20226,76.55654 -12.1688,25.48951 0.45782,-8.5227 6.78111,-18.97651 12.1688,-25.48951 z m 535.25,0.53815 c 9.23795,24.71884 -49.09957,27.57267 -9.90667,4.36937 l 9.90667,-4.36937 z m -152.96875,3.69534 c 61.60281,-3.48506 -19.85013,43.85649 0,0 z m -429,4.5205 c 23.42541,11.17421 -15.48528,12.40848 0,0 z m 52.78125,0.32289 c 39.88029,13.03324 -16.70938,12.63878 0,0 z m -360.718748,3.76703 c 30.126167,-3.98311 70.488778,65.39576 25.5,19.44526 -18.700223,-10.29723 23.916248,29.3891 -8.476819,8.42162 -11.34914,-3.6709 -11.629804,-20.5337 -19.804431,-20.18928 l 0.758224,-5.67742 2.023026,-2.00025 0,7e-5 z m 129.031248,0.82517 c 22.03931,10.19301 -
 4.21245,17.17923 0,0 z m 161.0625,0 c 16.20034,10.30861 -9.77812,13.90763 0,0 z m 496.8125,1.54271 c 33.99837,13.154 -19.01186,86.03961 4.85588,32.99647 -32.73194,37.97805 -3.2593,-21.38779 -4.85588,-32.99647 z m -130.65625,3.33656 c 15.72474,13.2106 -22.35755,10.31297 0,0 z m 25.0625,0 c 20.99284,7.53072 -0.73856,13.6301 0,0 z m -354.0625,1.00456 c 20.23697,14.35301 -5.88267,16.57447 0,0 z m 400.75,0.53816 c 27.88447,17.94914 -0.19581,28.08709 0,0 z m -114.375,0.0717 c 7.96501,14.01004 -18.09739,10.96519 0,-5e-5 l 0,5e-5 z m -410.46875,3.26481 c 2.93055,21.96009 19.16239,21.32385 0,0 z m 165.5,0 c 24.59969,24.36056 -28.16906,21.11528 0,0 z m 37.625,0 c 22.85032,13.98578 11.01821,23.4835 0,0 z m 294,0 c 16.21783,10.33165 -9.77822,13.98357 0,0 z m 233.375,0.14351 c 21.21903,14.10852 -46.07209,7.72281 0,0 z m -631.15625,2.76252 c 28.85746,3.91628 32.6734,44.12367 1.47027,12.55911 -2.41428,-1.78399 -8.92657,-11.51306 -1.47027,-12.55911 z m 168.15625,4.26937 c 28.11989,19.48458 
 20.57642,35.19773 0,0 z m -37.46875,2.58315 c 22.78745,16.38767 11.61441,22.52595 0,0 z m 414.34375,0 c -13.38709,24.22523 -21.32141,14.27503 0,0 z m -506.96875,0.93279 c 16.80903,30.24139 -5.03893,28.94436 0,0 z m -280.124998,0.57404 c 13.690358,15.20747 -4.401986,14.23388 0,0 z m 539.249998,0.35877 c 11.36898,24.03146 -21.37497,26.85315 0,0 z m -308.34375,0.60991 c 19.58746,13.46876 -9.04422,12.66686 0,0 z m 397.21875,2.43964 c 69.78828,27.52982 -39.45307,20.13246 0,0 z m 221.53125,1.97324 c 53.32826,-9.27259 -27.26093,74.98419 -12.33597,14.07381 -1.03393,-6.93694 4.49763,-15.40151 12.33597,-14.07381 z m -47.6875,3.33655 c 14.32092,9.12718 3.1817,21.93196 0,0 z m -228.1875,1.39921 c 33.57584,20.14252 -61.40084,38.67681 -16.48443,12.76342 5.60945,-3.44061 9.02104,-12.04437 16.48443,-12.76342 z m 383.15626,3.15717 c -5.6468,10.10493 -9.2907,60.68265 -21.3074,32.26823 -10.6035,63.37796 36.6749,-16.28799 21.3074,-32.26823 z m -430.25001,0.50227 c 6.57003,18.70156 -32.06508,23.
 9693 0,0 z M 54.674642,459.4752 c 37.795399,22.22587 11.886587,35.98947 0,0 z m 198.531248,0 c 22.33094,9.25999 -7.74204,13.75482 0,0 z m 156.34375,0 c 23.49593,11.09006 -15.49394,12.38561 0,0 z m 569.125,0.39463 c -1.69352,21.90784 -31.91385,25.08687 0,0 z m -36.59375,1.29158 c -6.0205,16.93874 7.17961,14.90225 0,0 z m -45,0.68166 c 17.05621,12.3215 -29.34153,12.57729 0,0 z m -573,2.47551 c 4.98783,17.87054 21.93414,41.52138 -1.2809,26.63322 4.12103,38.20081 -15.34818,-23.28905 1.2809,-26.63322 z m 593.875,0.0358 c 8.76813,36.48682 -12.96403,79.99546 -15.07364,50.72875 -6.45786,-12.93688 0.58265,-41.85038 15.07364,-50.72875 z m -732.65625,0.60997 c 16.97211,4.70527 -17.45843,4.26934 0,0 z m 600.5625,1.79384 c 34.84408,23.27089 1.65107,19.91272 0,0 z m -433.6875,0.25115 c 38.58034,14.22964 -3.23872,33.21527 0,0 z m 134.28125,2.54726 c 29.22309,9.2028 -8.78885,8.36916 0,0 z m 242.5625,1.97324 c 38.1522,9.21698 -23.82709,31.28969 0,0 z m -518.03125,3.04955 c 21.25075,1.01607 7
 4.69838,3.46563 56.71875,18.79955 36.73172,27.73748 -28.25778,6.95522 -42.34375,-2.29614 -7.82085,-4.1169 -41.72507,-6.55662 -14.375,-16.50341 z m 476.875,2.11674 c -9.51825,15.83381 -48.91791,13.78585 0,0 z m 187.46875,2.332 c 27.49546,1.58769 20.7,49.89087 -0.97045,11.64353 20.17788,20.86993 -2.08283,61.1256 -5.21766,15.0496 0.64754,-8.79364 -12.28534,-29.73921 6.18811,-26.69313 z m -648.3125,0.60991 c -30.59355,3.62655 31.24414,3.40803 0,0 z m 947.40621,1.79385 c 5.7627,16.97913 -13.1619,18.17668 0,0 z m -983.62496,2.47555 c 25.52306,29.58918 -7.59805,26.28568 0,0 z m 16.03125,4.87928 c 29.765,6.45001 52.18049,61.2902 8.90625,22.459 -10.53732,-1.41694 -13.93051,-14.69772 -8.90625,-22.459 z m 77,0.25113 c 30.35572,9.18793 -0.47118,17.22067 0,3e-5 l 0,-3e-5 z m 171.25,0.17939 c 39.16594,-3.37102 -13.23845,11.97372 22.0813,9.64927 50.52264,28.71341 -47.18035,14.83419 -45.95065,15.08433 44.22925,23.51525 -31.54044,20.17982 -0.4744,-15.22627 4.73358,-8.78911 15.52459,-9.65565 
 24.34375,-9.50733 z m -402.343748,0.17939 c 13.402888,7.37813 -19.911911,1.93705 0,0 z m 91.156248,0.64578 c 44.14046,6.04981 33.42191,44.27693 7.34375,22.74602 -5.83035,3.9109 -38.39662,-30.85011 -7.34375,-22.74602 z m 201.25,0.39465 c 20.65855,9.10414 -11.20827,11.61309 0,0 z m 388.625,0.64578 c 50.67888,2.10089 20.47621,114.56297 -24.0156,53.80575 -79.04361,11.83518 75.56734,-43.10321 0.81324,-27.82976 -34.62712,5.46006 7.34879,-35.62592 23.20236,-25.97599 z m -80.40625,2.58314 c 16.84973,8.97022 -26.39183,21.76388 0,0 z m 20.0625,0 c 10.00223,11.90934 -23.61099,13.30761 0,0 z m 12.6875,4.87928 c -13.34951,24.23426 -21.37355,14.25773 0,0 z m -274.625,1.7221 c 6.87503,9.17543 -4.99938,23.06499 0,0 z m 766.53116,1.14806 c -8.3473,30.73893 5.0569,54.01561 -22.7436,47.50939 -32.9016,-0.94022 17.1691,-39.20001 22.7436,-47.50939 z m -320.12491,1.7221 c 27.98801,21.9617 -3.3185,22.81904 0,0 z m 232.74991,4.30524 c 16.126,20.95302 7.8451,12.37536 -5.4721,8.53205 -4.5943,28.94708 
 -7.5174,13.88806 -28.7153,18.05281 8.9237,-11.12257 20.8087,-21.34338 34.1874,-26.58486 z m -428.62491,3.19305 c 20.02447,8.84346 -17.46418,8.24235 0,0 z m 229.0625,2.58315 c 21.38614,16.28142 -8.10784,20.59923 0,0 z m -595.5,0.46639 c 22.90628,-2.11063 51.39515,13.07011 9.19326,8.51322 -9.46012,1.90138 -35.26316,-9.68731 -9.19326,-8.51322 z m -175.84375,1.68623 c 22.74351,10.00862 -27.129812,6.76036 0,0 z m 1102.65616,3.80296 c 14.9885,21.60995 -52.4624,46.10342 -12.3764,10.07793 l 5.0454,-5.62664 7.331,-4.45129 0,0 z m -449.90616,0.78929 c 3.30209,20.77757 -15.95025,11.83936 0,0 z m 57.96875,4.12586 c 19.82034,35.43034 -10.76759,20.94875 0,0 z m -226.75,0.35877 c 18.57307,0.69308 59.88115,23.24325 16.41148,13.33787 -37.94044,-10.53485 -24.95643,5.87623 1.48021,11.69914 -27.16563,10.62872 -29.24274,13.198 3.58265,11.16689 36.24472,5.67159 -11.9267,10.27451 8.3874,21.81268 -22.88076,41.64916 -105.87554,54.1673 -129.02203,15.2496 -30.43789,-50.8346 38.26821,-41.35718 47.12996
 ,-52.85739 -57.05895,1.73206 24.21404,-12.86455 40.53033,-15.13487 3.20642,-2.61114 7.21237,-5.09583 11.5,-5.27392 z m -486.1875,3.44419 c 29.29735,9.4903 -21.762806,12.18871 0,0 z m 731.46875,1.65035 c 20.61854,9.18513 -11.29374,11.53126 0,0 z m -399.03125,3.83884 c 24.93317,2.87636 -23.18863,4.2203 0,0 z m -229.625,1.04043 c 20.59334,9.23487 -11.28747,11.49456 0,0 z m 641.75,0.21526 c 25.02141,10.15085 40.33069,70.04436 11.62047,26.62275 -4.14584,-7.24108 -14.90372,-18.40681 -11.62047,-26.62275 z m 39.875,4.73577 c 8.45687,10.70232 -7.393,20.39635 0,0 z m 183.90621,1.50683 c 11.1449,27.62133 3.0013,35.12829 -7.0992,9.41344 0.247,-3.70653 2.828,-9.01397 7.0992,-9.41344 z m -952.31246,1.68621 c 33.65161,4.67647 63.64217,89.38109 13.62602,37.24659 -6.79755,-5.30431 -36.32203,-36.04723 -13.62602,-37.24659 z m 715.4375,0 c 20.95678,13.19311 11.31924,39.93101 -4.54472,4.01355 l 0.73628,-3.08138 3.80844,-0.93217 0,0 z m 256.90616,4.41288 c 27.7088,25.69197 -23.8417,47.78596 -6.26
 24,8.09798 1.4405,-1.40221 2.6659,-8.0362 6.2624,-8.09798 z m -989.12491,1.47096 c 20.23851,14.4767 -5.88756,16.54749 0,0 z m 698.09375,0.82517 c 30.06752,24.64978 11.86402,14.76195 -11.4927,6.9419 l 4.9302,-4.03586 6.5625,-2.90604 z m 257.84376,3.80296 c 14.5304,22.68051 16.1024,48.60215 -4.8126,12.84388 -6.0703,-4.31361 1.2999,-10.4351 4.8126,-12.84388 z m -721.53126,4.16173 c 24.27109,-7.27607 82.01183,26.36695 74.96875,41.68909 -13.39036,-10.96445 -6.53559,5.74947 -23.6875,-10.69135 -18.13762,-4.9333 16.24182,26.13666 -10.46875,5.66857 -15.52185,-11.62569 -47.488,-34.27968 -35.65625,-12.52108 -16.38163,-7.79495 -52.25283,-29.49028 -5.15625,-24.14523 z m 708.18746,1.04044 c -5.6352,22.52957 -31.8551,32.68983 -33.4062,25.68794 -60.66459,19.41122 17.7712,-24.81432 33.4062,-25.68794 z m -120.96871,0.6099 c -0.87393,11.16186 -20.02379,65.28373 -18.66927,30.45597 12.48054,-5.57656 -3.07665,-27.8858 18.66927,-30.45597 z m -740.21875,0.43054 c 33.80861,8.06729 -8.68126,18.82455 
 0,0 z m 73.15625,2.87016 c 8.85207,26.80824 48.92025,-6.58406 59.53451,13.85476 -20.29241,-10.42818 -55.09892,18.49065 -56.64568,23.78814 33.43671,-26.45544 101.2023,-1.71519 108.98617,18.50461 -31.54609,-12.08635 -51.10149,-9.05093 -84.96555,-9.11756 29.58982,-4.18874 24.85036,12.32627 9.02972,14.01234 26.19691,-5.48203 53.7201,1.95033 12.75319,10.77605 18.03441,-5.2372 102.99447,-7.30394 42.53549,2.0054 -42.30834,22.71722 -103.01128,25.27082 -135.90999,-15.00657 -26.14939,-58.43213 8.97642,38.22556 -8.72502,1.48904 -48.94439,-43.44048 27.78117,-52.25373 53.40716,-60.30621 z m 421.0625,0.53815 c 54.44965,34.78645 -76.08301,37.01116 0,0 z m 112.28125,1.68621 c 28.10364,5.78378 39.10032,39.50631 7.56038,7.48707 -1.40479,34.28063 -35.23644,-0.72775 -7.56038,-7.48707 z m 380.93746,0.89693 c 10.5061,26.9718 -19.7206,10.96806 -30.5735,27.92725 -9.2308,33.78493 -35.4783,-1.05736 -1.739,-19.20914 10.9557,-2.25373 21.2465,-7.04383 32.3125,-8.71811 z m -330.90621,4.12586 c 27.0229,0.
 18028 -26.14346,47.76812 4.03125,25.22153 -7.67407,-3.24203 -9.54456,-19.76371 -4.03125,-25.22153 z m -587.28125,2.29613 c -17.06522,4.96224 -76.98465,19.52669 -25.36777,22.81863 10.31836,7.71869 52.47358,-19.41718 25.36777,-22.81863 z m 458.96875,0.78929 c 24.12723,3.02983 -23.37155,4.09272 0,0 z m 144.0625,1.04043 c 22.15889,9.32596 6.9757,66.80001 0,0 z m 344.46871,7.46243 c 7.8486,27.41724 -25.2771,24.7108 0,0 z m -954.46871,1.11218 c 16.29381,8.4676 -47.44402,9.74139 0,0 z m 453.84375,1.75798 c 5.3751,12.06583 -25.84978,7.20727 0,0 z m 25.5625,7.49828 c 11.01264,16.25351 -21.28767,14.5304 0,0 z m -65.875,0.0718 c 21.90417,7.91024 -30.08737,10.67842 0,0 z m 429.65616,0 c 18.0508,26.01224 -8.6872,19.6666 0,0 z m 123.2188,4.87927 c 4.6513,14.90317 -25.9205,18.28767 -4.7905,2.14714 l 4.7905,-2.14714 z m -207.4688,5.81207 c 19.2577,14.7678 -66.93641,45.44782 -22.54257,9.96591 6.68177,-4.76113 14.18057,-9.18077 22.54257,-9.96591 z m 62.1563,0.28702 c 22.6508,8.28092 -12.3744,
 26.78882 3.9057,31.56142 -31.0126,14.3455 -24.9284,-22.69339 -3.9057,-31.56142 z m -375.65621,0.75342 c -10.06611,10.69888 12.12377,32.69925 24.74368,8.14031 -12.81749,46.50319 -31.98944,109.85628 -90.43212,111.39777 -48.66163,-34.19338 -10.87724,-99.28141 34.21969,-114.33591 10.70673,-0.14371 21.18257,-2.41701 31.46875,-5.20217 z m 331.46871,3.37244 c 23.7753,17.55497 -35.7608,16.65822 0,0 z M 780.98714,609.477 c 38.27926,0.59789 -9.70099,32.28377 32.40763,21.88097 -3.04066,17.25398 -38.85889,18.89187 1.65598,19.60702 67.92959,-1.38312 -20.14206,104.02062 -53.29515,51.04155 -2.52491,-30.11491 6.26037,-66.68781 19.23154,-92.52954 z m 416.24996,3.4442 c 3.5875,12.84017 -14.7826,14.17504 0,-4e-5 l 0,4e-5 z m -780.15621,8.00057 c 25.98147,11.88166 4.59746,19.36609 0,0 z m 626.84371,0.17939 c 14.8557,16.07749 -34.3202,6.87955 0,0 z m 104.9063,1.36332 c -9.4346,19.24935 -51.6419,32.90453 -17.2723,5.97516 l 9.741,-4.14543 7.5313,-1.82973 0,0 z m -138.3438,11.30126 c 58.589,13.7713
 4 23.6761,92.15274 -27.31709,91.04577 -49.89784,22.4723 -106.06423,29.70294 -160.19048,26.58619 34.99223,-12.4502 49.97838,-46.97471 57.3652,-76.43903 24.65832,0.42534 34.23317,-8.4666 7.39241,-7.57618 35.16977,-8.9857 80.16381,-31.51504 107.83337,-16.58975 -41.53446,-31.17757 16.28089,4.5772 14.91659,-17.027 z m 184.3125,1.97324 c 34.963,18.55091 -35.33,19.93484 0.8437,7.9647 15.524,5.92325 0.3097,-5.25404 -0.8437,-7.9647 z m -33.6875,1.32744 c 7.9569,13.98706 -18.1452,10.94359 0,-5e-5 l 0,5e-5 z m -793.37496,0.68166 c 22.97008,9.32018 -20.16552,9.73883 0,0 z m 466.78125,2.58315 c 21.90417,7.91026 -30.08736,10.67837 0,0 z m 387.87491,0 c 21.9044,7.91009 -30.0873,10.67855 0,0 z M 173.51839,655.61485 c -30.66969,3.61779 31.25962,3.41636 0,0 z m 921.18751,5.66857 c -7.9348,28.16169 -21.6864,3.46451 0,0 z m -255.18751,14.96071 c 8.49159,10.6006 -7.37016,20.47871 0,0 z m -460.90625,32.54045 c 18.00821,12.89314 -17.4411,11.70596 0,0 z m 5,20.41402 c 61.51946,-0.20714 -48.92548,66
 .77991 -17.63253,14.39188 41.42435,-8.81981 3.88407,-2.96527 9.7018,-13.13603 l 6.43073,-1.21998 1.5,-0.0358 0,-7e-5 z m -39.84375,18.69191 c 9.03141,29.63024 -23.35454,17.02498 0,0 z m 75.25,19.55298 c 9.93351,9.83142 -15.20196,11.44863 0,0 z m 49.875,25.04214 c 30.34043,25.74669 -5.84386,40.02025 0,0 z m 35.90625,19.33772 c 14.33751,9.29056 3.15554,21.87142 0,0 z m 13.4375,10.29669 c 23.94789,17.14572 7.58221,41.75351 -1,9.61504 l 1,-9.61504 0,0 z m -14.78125,18.62017 c 17.9797,12.92906 -17.42093,11.76722 0,0 z"
+     id="path5896"
+     inkscape:connector-curvature="0" />
+</svg>
diff --git a/src/baobab-window.vala b/src/baobab-window.vala
index 0d4c600..c19f69b 100644
--- a/src/baobab-window.vala
+++ b/src/baobab-window.vala
@@ -35,7 +35,7 @@ namespace Baobab {
         Gtk.Label infobar_secondary;
         Gtk.TreeView treeview;
         Gtk.Notebook chart_notebook;
-        Gtk.Grid location_view;
+        LocationView location_view;
         Chart rings_chart;
         Chart treemap_chart;
         Gtk.Spinner spinner;
@@ -139,9 +139,9 @@ namespace Baobab {
             rings_chart = builder.get_object ("rings-chart") as Chart;
             treemap_chart = builder.get_object ("treemap-chart") as Chart;
             spinner = builder.get_object ("spinner") as Gtk.Spinner;
-            location_view = builder.get_object ("location-view") as Gtk.Grid;
+            location_view = builder.get_object ("location-view") as Baobab.LocationView;
 
-            setup_home_page ();
+            setup_home_page (builder);
             setup_treeview (builder);
 
             var infobar_close_button = builder.get_object ("infobar-close-button") as Gtk.Button;
@@ -168,7 +168,6 @@ namespace Baobab {
             set_hide_titlebar_when_maximized (true);
 
             set_ui_page (UIPage.HOME);
-
             set_busy (false);
 
             show ();
@@ -346,7 +345,7 @@ namespace Baobab {
         }
 
         void update_locations () {
-            location_view.foreach ((widget) => { widget.destroy (); });
+            location_view.clear ();
 
             foreach (var location in location_monitor.get_locations ()) {
                 LocationWidget loc_widget;
@@ -354,6 +353,7 @@ namespace Baobab {
                     loc_widget = new LocationWidget (location, (location_) => {
                         on_scan_home_activate ();
                     });
+                    location_view.add_to_folders (loc_widget);
                 } else {
                     loc_widget = new LocationWidget (location, (location_) => {
                         location_.mount_volume.begin ((location__, res) => {
@@ -365,15 +365,26 @@ namespace Baobab {
                             }
                         });
                     });
+                    if (location.volume != null || location.mount_point == "/") {
+                        location_view.add_to_volumes (loc_widget);
+                    } else {
+                        location_view.add_to_folders (loc_widget);
+                    }
                 }
-
-                location_view.add (loc_widget);
             }
-
-            location_view.show_all ();
         }
 
-        void setup_home_page () {
+        void setup_home_page (Gtk.Builder builder) {
+            var scrolled_window = builder.get_object ("location-scrolled-window") as Gtk.ScrolledWindow;
+            scrolled_window.name = "baobab-location-scrolled-window";
+
+            location_view = new LocationView ();
+            location_view.show ();
+
+            var viewport = builder.get_object ("location-viewport") as Gtk.Viewport;
+            viewport.name = "baobab-location-viewport";
+            viewport.add (location_view);
+
             location_monitor = LocationMonitor.get ();
             location_monitor.changed.connect (() => { update_locations (); });
             update_locations ();
diff --git a/src/baobab.css b/src/baobab.css
index 49bcd02..c2ed98c 100644
--- a/src/baobab.css
+++ b/src/baobab.css
@@ -2,6 +2,17 @@
 @define-color location_bg_b alpha(shade(@theme_base_color, 0.9), 0.8);
 @define-color location_bg_c alpha(shade(@theme_base_color, 0.98), 0.8);
 
+#baobab-location-scrolled-window {
+    border-width: 1px 0 0 0;
+}
+
+#baobab-location-viewport {
+    background-image: url("resource:///org/gnome/baobab/ui/baobab-watermark.svg");
+    background-repeat: no-repeat;
+    background-size: contain;
+    background-position: right bottom;
+}
+
 BaobabBaseLocationWidget {
     padding: 6px;
 
diff --git a/src/baobab.gresource.xml b/src/baobab.gresource.xml
index aed7e6a..3616384 100644
--- a/src/baobab.gresource.xml
+++ b/src/baobab.gresource.xml
@@ -4,5 +4,6 @@
     <file preprocess="xml-stripblanks">baobab-main-window.ui</file>
     <file preprocess="xml-stripblanks">baobab-menu.ui</file>
     <file>baobab.css</file>
+    <file preprocess="xml-stripblanks">baobab-watermark.svg</file>
   </gresource>
 </gresources>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]