[gnome-disk-utility] Expose a way to detach devices
- From: David Zeuthen <davidz src gnome org>
- To: svn-commits-list gnome org
- Subject: [gnome-disk-utility] Expose a way to detach devices
- Date: Mon, 15 Jun 2009 11:33:54 -0400 (EDT)
commit 5cabc2c3e79d226fc6b99dfe1738d5dbe2370157
Author: David Zeuthen <davidz redhat com>
Date: Sun Jun 14 13:52:37 2009 -0400
Expose a way to detach devices
data/icons/16x16/Makefile.am | 1 +
data/icons/16x16/gdu-detach.png | Bin 0 -> 594 bytes
data/icons/22x22/Makefile.am | 1 +
data/icons/22x22/gdu-detach.png | Bin 0 -> 971 bytes
data/icons/48x48/Makefile.am | 1 +
data/icons/48x48/gdu-detach.png | Bin 0 -> 2490 bytes
data/icons/scalable/Makefile.am | 1 +
data/icons/scalable/gdu-detach.svg | 1111 ++++++++++++++++++++++++++++++++++++
src/gdu/gdu-util.c | 2 +
src/palimpsest/gdu-shell.c | 45 ++-
10 files changed, 1158 insertions(+), 4 deletions(-)
---
diff --git a/data/icons/16x16/Makefile.am b/data/icons/16x16/Makefile.am
index 5e24a54..d095498 100644
--- a/data/icons/16x16/Makefile.am
+++ b/data/icons/16x16/Makefile.am
@@ -2,6 +2,7 @@ icondir = $(datadir)/icons/hicolor/16x16/apps
icon_DATA = \
palimpsest.png \
gdu-eject.png \
+ gdu-detach.png \
gdu-mount.png \
gdu-unmount.png \
gdu-raid-array.png \
diff --git a/data/icons/16x16/gdu-detach.png b/data/icons/16x16/gdu-detach.png
new file mode 100644
index 0000000..5c1fd93
Binary files /dev/null and b/data/icons/16x16/gdu-detach.png differ
diff --git a/data/icons/22x22/Makefile.am b/data/icons/22x22/Makefile.am
index c78dfad..f87c92d 100644
--- a/data/icons/22x22/Makefile.am
+++ b/data/icons/22x22/Makefile.am
@@ -2,6 +2,7 @@ icondir = $(datadir)/icons/hicolor/22x22/apps
icon_DATA = \
palimpsest.png \
gdu-eject.png \
+ gdu-detach.png \
gdu-mount.png \
gdu-unmount.png \
gdu-raid-array.png \
diff --git a/data/icons/22x22/gdu-detach.png b/data/icons/22x22/gdu-detach.png
new file mode 100644
index 0000000..e23073d
Binary files /dev/null and b/data/icons/22x22/gdu-detach.png differ
diff --git a/data/icons/48x48/Makefile.am b/data/icons/48x48/Makefile.am
index 082659f..95b7ea5 100644
--- a/data/icons/48x48/Makefile.am
+++ b/data/icons/48x48/Makefile.am
@@ -2,6 +2,7 @@ icondir = $(datadir)/icons/hicolor/48x48/apps
icon_DATA = \
palimpsest.png \
gdu-eject.png \
+ gdu-detach.png \
gdu-mount.png \
gdu-unmount.png \
gdu-raid-array.png \
diff --git a/data/icons/48x48/gdu-detach.png b/data/icons/48x48/gdu-detach.png
new file mode 100644
index 0000000..4206e5f
Binary files /dev/null and b/data/icons/48x48/gdu-detach.png differ
diff --git a/data/icons/scalable/Makefile.am b/data/icons/scalable/Makefile.am
index 9c049b2..4d4f72b 100644
--- a/data/icons/scalable/Makefile.am
+++ b/data/icons/scalable/Makefile.am
@@ -2,6 +2,7 @@ icondir = $(datadir)/icons/hicolor/scalable/apps
icon_DATA = \
palimpsest.svg \
gdu-eject.svg \
+ gdu-detach.svg \
gdu-mount.svg \
gdu-unmount.svg \
gdu-raid-array.svg \
diff --git a/data/icons/scalable/gdu-detach.svg b/data/icons/scalable/gdu-detach.svg
new file mode 100644
index 0000000..257f569
--- /dev/null
+++ b/data/icons/scalable/gdu-detach.svg
@@ -0,0 +1,1111 @@
+<?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:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="48"
+ height="48"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46+devel"
+ version="1.0"
+ sodipodi:docname="gdu-detach.svg"
+ inkscape:export-filename="/home/davidz/Desktop/drive-harddisk-22.png"
+ inkscape:export-xdpi="41.25"
+ inkscape:export-ydpi="41.25"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs4">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 24 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="48 : 24 : 1"
+ inkscape:persp3d-origin="24 : 16 : 1"
+ id="perspective168" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5837">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop5839" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop5841" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5837"
+ id="linearGradient5848"
+ gradientUnits="userSpaceOnUse"
+ x1="10"
+ y1="44.016026"
+ x2="10"
+ y2="12.805173"
+ gradientTransform="matrix(0.9130435,0,0,0.9130435,1.7173913,2.2608696)" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5551">
+ <stop
+ style="stop-color:#d80000;stop-opacity:1;"
+ offset="0"
+ id="stop5553" />
+ <stop
+ style="stop-color:#ff1919;stop-opacity:1"
+ offset="1"
+ id="stop5555" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5551"
+ id="linearGradient5569"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.8216585,0,0,1.8541455,19.808292,-28.322168)"
+ x1="-5"
+ y1="30.485746"
+ x2="-5"
+ y2="28" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5113">
+ <stop
+ style="stop-color:white;stop-opacity:1;"
+ offset="0"
+ id="stop5115" />
+ <stop
+ style="stop-color:white;stop-opacity:0;"
+ offset="1"
+ id="stop5117" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2916">
+ <stop
+ style="stop-color:white;stop-opacity:1;"
+ offset="0"
+ id="stop2918" />
+ <stop
+ style="stop-color:white;stop-opacity:0;"
+ offset="1"
+ id="stop2920" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2902">
+ <stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0"
+ id="stop2905" />
+ <stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop2907" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2986">
+ <stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0"
+ id="stop2988" />
+ <stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop2990" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2967">
+ <stop
+ style="stop-color:white;stop-opacity:1;"
+ offset="0"
+ id="stop2969" />
+ <stop
+ style="stop-color:white;stop-opacity:0;"
+ offset="1"
+ id="stop2971" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2064">
+ <stop
+ id="stop2066"
+ offset="0"
+ style="stop-color:white;stop-opacity:1;" />
+ <stop
+ style="stop-color:#555753;stop-opacity:0.60000002;"
+ offset="0.5"
+ id="stop2070" />
+ <stop
+ id="stop2068"
+ offset="1"
+ style="stop-color:#555753;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient9641">
+ <stop
+ style="stop-color:white;stop-opacity:1"
+ offset="0"
+ id="stop9643" />
+ <stop
+ style="stop-color:#888a85;stop-opacity:1"
+ offset="1"
+ id="stop9645" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient9633">
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0"
+ id="stop9635" />
+ <stop
+ style="stop-color:#888a85;stop-opacity:1"
+ offset="1"
+ id="stop9639" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient9613">
+ <stop
+ style="stop-color:white;stop-opacity:1"
+ offset="0"
+ id="stop9615" />
+ <stop
+ id="stop9619"
+ offset="0.5"
+ style="stop-color:white;stop-opacity:1;" />
+ <stop
+ style="stop-color:#cccfca;stop-opacity:1"
+ offset="1"
+ id="stop9617" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8710">
+ <stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0"
+ id="stop8712" />
+ <stop
+ style="stop-color:white;stop-opacity:1;"
+ offset="1"
+ id="stop8714" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8631">
+ <stop
+ id="stop8633"
+ offset="0"
+ style="stop-color:#eeeeec;stop-opacity:1" />
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:1;"
+ offset="0.2"
+ id="stop8637" />
+ <stop
+ id="stop8635"
+ offset="1"
+ style="stop-color:#babdb6;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8625">
+ <stop
+ id="stop8627"
+ offset="0"
+ style="stop-color:white;stop-opacity:1" />
+ <stop
+ id="stop8629"
+ offset="1"
+ style="stop-color:#babdb6;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8613">
+ <stop
+ style="stop-color:#babdb6;stop-opacity:1"
+ offset="0"
+ id="stop8615" />
+ <stop
+ style="stop-color:#2e3436;stop-opacity:1"
+ offset="1"
+ id="stop8617" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5740">
+ <stop
+ style="stop-color:#d0d0cb;stop-opacity:1;"
+ offset="0"
+ id="stop5742" />
+ <stop
+ style="stop-color:#babdb6;stop-opacity:1"
+ offset="1"
+ id="stop5744" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5690">
+ <stop
+ style="stop-color:white;stop-opacity:1;"
+ offset="0"
+ id="stop5692" />
+ <stop
+ style="stop-color:#888a85;stop-opacity:0.59848487"
+ offset="1"
+ id="stop5694" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2899">
+ <stop
+ id="stop2901"
+ offset="0"
+ style="stop-color:#555753;stop-opacity:1" />
+ <stop
+ id="stop2903"
+ offset="1"
+ style="stop-color:#2e3436;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3468">
+ <stop
+ style="stop-color:#fdfdfc;stop-opacity:1"
+ offset="0"
+ id="stop3470" />
+ <stop
+ style="stop-color:white;stop-opacity:0.37121212"
+ offset="1"
+ id="stop3472" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2909">
+ <stop
+ style="stop-color:white;stop-opacity:0;"
+ offset="0"
+ id="stop2911" />
+ <stop
+ id="stop2917"
+ offset="0.5"
+ style="stop-color:white;stop-opacity:1;" />
+ <stop
+ style="stop-color:white;stop-opacity:0;"
+ offset="1"
+ id="stop2913" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2839">
+ <stop
+ style="stop-color:white;stop-opacity:0.25773194;"
+ offset="0"
+ id="stop2841" />
+ <stop
+ id="stop2847"
+ offset="0.5472973"
+ style="stop-color:white;stop-opacity:1;" />
+ <stop
+ style="stop-color:white;stop-opacity:0.24705882;"
+ offset="0.66243607"
+ id="stop2849" />
+ <stop
+ id="stop2851"
+ offset="0.875"
+ style="stop-color:white;stop-opacity:0.83505154;" />
+ <stop
+ style="stop-color:white;stop-opacity:0;"
+ offset="1"
+ id="stop2843" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2900">
+ <stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="0"
+ id="stop2902" />
+ <stop
+ id="stop2908"
+ offset="0.5"
+ style="stop-color:black;stop-opacity:1;" />
+ <stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop2904" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2886">
+ <stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0"
+ id="stop2888" />
+ <stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop2890" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3468"
+ id="linearGradient3474"
+ x1="24.748737"
+ y1="35.354588"
+ x2="24.998737"
+ y2="14.997767"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.995556,0,-3.931113)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2886"
+ id="radialGradient4700"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.095822,0,0,3.101282,-9.53921,-94.5433)"
+ cx="0"
+ cy="17"
+ fx="0"
+ fy="17"
+ r="2" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2886"
+ id="radialGradient4702"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.095822,0,0,3.101282,38.20996,-10.90025)"
+ cx="0"
+ cy="17"
+ fx="0"
+ fy="17"
+ r="2" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2900"
+ id="linearGradient4704"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.047911,0,0,2.067521,1.347566,6.673675)"
+ x1="9.8994951"
+ y1="20"
+ x2="9.8994951"
+ y2="13.979153" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2909"
+ id="linearGradient4711"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.42294,10.5,-14.95703)"
+ x1="15.335379"
+ y1="33.06237"
+ x2="20.329321"
+ y2="36.37693" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2909"
+ id="linearGradient4713"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.42294,-0.875,-15.04578)"
+ x1="15.335379"
+ y1="33.06237"
+ x2="20.329321"
+ y2="36.37693" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2909"
+ id="linearGradient4715"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.459833,0,-0.391165,1.370105,40.62503,-13.29892)"
+ x1="15.335379"
+ y1="33.06237"
+ x2="20.329321"
+ y2="36.37693" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5740"
+ id="radialGradient5748"
+ cx="25.251999"
+ cy="16.47991"
+ fx="25.251999"
+ fy="16.47991"
+ r="21.980215"
+ gradientTransform="matrix(1.032991,-0.596398,0.575121,0.99614,-12.23456,11.55448)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2064"
+ id="linearGradient5790"
+ gradientUnits="userSpaceOnUse"
+ x1="18.048874"
+ y1="25.461344"
+ x2="22.211937"
+ y2="12.143078"
+ gradientTransform="matrix(0.940224,0,0,0.931632,1.331811,1.401537)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8631"
+ id="linearGradient5865"
+ x1="24"
+ y1="36.638382"
+ x2="25.818018"
+ y2="6.8314762"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2839"
+ id="linearGradient7658"
+ gradientUnits="userSpaceOnUse"
+ x1="27.057796"
+ y1="12.669416"
+ x2="32.042896"
+ y2="31.219666" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5690"
+ id="linearGradient8603"
+ x1="20.304037"
+ y1="24.035707"
+ x2="18.498415"
+ y2="40.647167"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8613"
+ id="radialGradient8619"
+ cx="7.5177727"
+ cy="30.573555"
+ fx="7.5177727"
+ fy="30.573555"
+ r="0.53125"
+ gradientTransform="matrix(1.662477,0,0,1.61358,-4.989175,-18.65647)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9613"
+ id="radialGradient8623"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.389748,0,0,1.348872,-2.91982,-10.63815)"
+ cx="7.5191436"
+ cy="30.304251"
+ fx="7.5191436"
+ fy="30.304251"
+ r="0.53125" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9633"
+ id="radialGradient8664"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.569487,0,0,1.523325,-4.288627,-15.92107)"
+ cx="7.5336008"
+ cy="30.307562"
+ fx="7.5336008"
+ fy="30.307562"
+ r="0.53125" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8613"
+ id="radialGradient8666"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.662477,0,0,1.61358,-4.989175,-18.65647)"
+ cx="7.5177727"
+ cy="30.573555"
+ fx="7.5177727"
+ fy="30.573555"
+ r="0.53125" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8625"
+ id="radialGradient8676"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.662477,0,0,1.61358,-4.989175,-18.65647)"
+ cx="7.4792061"
+ cy="30.36071"
+ fx="7.4792061"
+ fy="30.36071"
+ r="0.53125" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8613"
+ id="radialGradient8678"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.662477,0,0,1.61358,-4.989175,-18.65647)"
+ cx="7.5177727"
+ cy="30.573555"
+ fx="7.5177727"
+ fy="30.573555"
+ r="0.53125" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9641"
+ id="radialGradient8680"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.662477,0,0,1.61358,-4.989175,-18.65647)"
+ cx="7.4893188"
+ cy="30.337601"
+ fx="7.4893188"
+ fy="30.337601"
+ r="0.53125" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8613"
+ id="radialGradient8682"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.662477,0,0,1.61358,-4.989175,-18.65647)"
+ cx="7.5177727"
+ cy="30.573555"
+ fx="7.5177727"
+ fy="30.573555"
+ r="0.53125" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8710"
+ id="linearGradient8716"
+ x1="40.617188"
+ y1="30.554688"
+ x2="40.710938"
+ y2="30.359375"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8710"
+ id="linearGradient9605"
+ gradientUnits="userSpaceOnUse"
+ x1="40.617188"
+ y1="30.554688"
+ x2="40.710938"
+ y2="30.359375"
+ gradientTransform="matrix(0.602867,-0.797841,0.797841,0.602867,-41.12611,44.62773)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8710"
+ id="linearGradient9649"
+ gradientUnits="userSpaceOnUse"
+ x1="40.617188"
+ y1="30.554688"
+ x2="40.710938"
+ y2="30.359375"
+ gradientTransform="matrix(0.866025,-0.5,0.5,0.866025,-38.79233,7.403385)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8710"
+ id="linearGradient9654"
+ gradientUnits="userSpaceOnUse"
+ x1="40.617188"
+ y1="30.554688"
+ x2="40.710938"
+ y2="30.359375"
+ gradientTransform="matrix(0.707107,0.527555,-0.707107,0.527555,29.0058,-24.09196)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2967"
+ id="linearGradient2973"
+ x1="12.5"
+ y1="43.1875"
+ x2="12.5"
+ y2="34.045513"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2899"
+ id="linearGradient5655"
+ gradientUnits="userSpaceOnUse"
+ x1="53.812813"
+ y1="43.573235"
+ x2="-2.8138931"
+ y2="35.500015"
+ gradientTransform="translate(0,50)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2986"
+ id="linearGradient2992"
+ x1="21.9375"
+ y1="39"
+ x2="21.9375"
+ y2="37.995617"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2902"
+ id="linearGradient2910"
+ x1="22.101398"
+ y1="27.658131"
+ x2="22.971142"
+ y2="20.903238"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,2)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2916"
+ id="linearGradient2922"
+ x1="24.847851"
+ y1="28.908398"
+ x2="24.847851"
+ y2="25.757175"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,2)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5113"
+ id="linearGradient5377"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,-1.004639,1,0,-1.992111,51.04406)"
+ x1="43.129921"
+ y1="15.195395"
+ x2="7.9313831"
+ y2="34.731434" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5113"
+ id="linearGradient5379"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,-1.004639,1,0,-1.992111,51.04406)"
+ x1="43.129921"
+ y1="15.195395"
+ x2="7.9313831"
+ y2="34.731434" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5113"
+ id="linearGradient5381"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.353553,44.057241)"
+ x1="18.396891"
+ y1="-11.068471"
+ x2="43.502598"
+ y2="-1.6083169" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5113"
+ id="linearGradient5605"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,-1.004639,1,0,-1.992111,51.04406)"
+ x1="43.129921"
+ y1="15.195395"
+ x2="7.9313831"
+ y2="34.731434" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5113"
+ id="linearGradient5608"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,-0.653741,0.6507223,0,15.188696,41.249995)"
+ x1="43.129921"
+ y1="15.195395"
+ x2="7.9313831"
+ y2="34.731434" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5113"
+ id="linearGradient6586"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.5830829,0,0,0.6507223,16.919194,33.197988)"
+ x1="18.396891"
+ y1="-11.068471"
+ x2="43.502598"
+ y2="-1.6083169" />
+ <inkscape:perspective
+ id="perspective342"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666"
+ borderopacity="0.36078431"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="8"
+ inkscape:cx="27.697013"
+ inkscape:cy="21.950378"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="48px"
+ height="48px"
+ inkscape:showpageshadow="false"
+ showgrid="false"
+ inkscape:window-width="701"
+ inkscape:window-height="581"
+ inkscape:window-x="0"
+ inkscape:window-y="15"
+ showborder="true"
+ inkscape:grid-points="true"
+ inkscape:grid-bbox="true"
+ borderlayer="true"
+ showguides="false"
+ inkscape:guide-bbox="true">
+ <sodipodi:guide
+ orientation="horizontal"
+ position="12"
+ id="guide2023" />
+ <sodipodi:guide
+ orientation="horizontal"
+ position="27.5"
+ id="guide2025" />
+ <inkscape:grid
+ id="GridFromPre046Settings"
+ type="xygrid"
+ originx="0px"
+ originy="0px"
+ spacingx="0.5px"
+ spacingy="0.5px"
+ color="#0000ff"
+ empcolor="#0000ff"
+ opacity="0.2"
+ empopacity="0.4"
+ empspacing="2" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Jakub Steiner, Lapo Calamandrei</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:contributor>
+ <dc:title></dc:title>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>hdd</rdf:li>
+ <rdf:li>drive</rdf:li>
+ <rdf:li>hard</rdf:li>
+ <rdf:li>fixed</rdf:li>
+ <rdf:li>media</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/SourceCode" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Livello 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ style="display:inline">
+ <g
+ id="g3519"
+ style="opacity:0.7"
+ transform="matrix(1.030831,0,0,1.151147,-0.73609,-12.57431)"
+ inkscape:export-filename="/home/lapo/Desktop/uhm.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <rect
+ transform="scale(-1,-1)"
+ y="-48.024086"
+ x="-9.5392103"
+ height="12.405126"
+ width="8.1916437"
+ id="rect2884"
+ style="opacity:1;fill:url(#radialGradient4700);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ y="35.618961"
+ x="38.209965"
+ height="12.405126"
+ width="8.1916437"
+ id="rect2894"
+ style="opacity:1;fill:url(#radialGradient4702);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ y="35.618961"
+ x="9.5392103"
+ height="12.405126"
+ width="28.670753"
+ id="rect2898"
+ style="opacity:1;fill:url(#linearGradient4704);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <g
+ id="g5672"
+ transform="translate(0,-48.99747)">
+ <path
+ sodipodi:nodetypes="ccccccccccccc"
+ id="rect2010"
+ d="M 4.5182287,80.500013 L 43.481768,80.500013 C 44.045867,80.500013 44.499997,80.954143 44.499997,81.518242 L 44.499997,84.481785 C 44.499997,85.797369 44.049766,87.500013 42.044268,87.500013 L 40.5,87.5 L 40.5,88.5 L 7.5,88.5 L 7.5,87.5 L 5.6432287,87.500013 C 4.3720234,87.500013 3.5000005,86.615386 3.5000005,85.244348 L 3.5000005,81.518242 C 3.5000005,80.954143 3.9541302,80.500013 4.5182287,80.500013 z "
+ style="color:black;fill:url(#linearGradient5655);fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.4;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+ <path
+ transform="translate(0,50)"
+ style="opacity:0.1;color:black;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient2973);stroke-width:0.99999988;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:1.4;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ d="M 4.59375,31.59375 L 4.59375,35.323493 C 4.59375,35.923112 4.9694005,36.428347 5.4800776,36.428347 L 42.426407,36.428347 C 42.938876,36.428347 43.40625,35.921112 43.40625,35.411881 L 43.40625,31.59375 L 4.59375,31.59375 z "
+ id="path2076"
+ sodipodi:nodetypes="ccccccc" />
+ <g
+ transform="translate(0,50)"
+ style="opacity:0.5"
+ id="g4706">
+ <path
+ style="opacity:0.10952382;fill:url(#linearGradient4711);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 26.144738,32.088747 C 26.144738,32.088747 24.642136,37.622686 22.918563,38 C 22.918563,38 29.149941,37.874229 29.149941,37.874229 C 30.537013,37.556768 32.508699,32.088747 32.508699,32.088747 L 26.144738,32.088747 z "
+ id="path2907"
+ sodipodi:nodetypes="ccccc"
+ inkscape:export-filename="/home/lapo/Desktop/uhm.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/lapo/Desktop/uhm.png"
+ sodipodi:nodetypes="ccccc"
+ id="path2892"
+ d="M 14.769738,32 C 14.769738,32 13.267136,37.533939 11.543563,37.911253 C 11.543563,37.911253 17.774941,37.785482 17.774941,37.785482 C 19.162013,37.468021 21.133699,32 21.133699,32 L 14.769738,32 z "
+ style="opacity:0.10952382;fill:url(#linearGradient4713);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/lapo/Desktop/uhm.png"
+ sodipodi:nodetypes="ccccc"
+ id="path2896"
+ d="M 34.886139,32 C 34.886139,32 32.673915,37.328458 31.777636,37.691761 C 31.777636,37.691761 34.677605,37.57066 34.677605,37.57066 C 35.402697,37.264987 37.8125,32 37.8125,32 L 34.886139,32 z "
+ style="opacity:0.10952382;fill:url(#linearGradient4715);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+ </g>
+ <path
+ style="fill:url(#radialGradient5748);fill-opacity:1;stroke:#888a85;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 11.693127,10.498788 L 36.265693,10.498788 C 37.949863,10.498788 38.66221,10.616267 39.305712,12.883793 L 44.380203,30.764912 C 44.881227,32.530383 43.024355,33.500013 41.340185,33.500013 L 6.6186312,33.500013 C 4.7502232,33.500013 3.1292479,32.318596 3.578613,30.764912 L 8.8290448,12.611497 C 9.3973456,10.646592 10.008957,10.498788 11.693127,10.498788 z "
+ id="rect1879"
+ sodipodi:nodetypes="cczzcczzc"
+ inkscape:export-filename="/home/lapo/Desktop/uhm.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <path
+ sodipodi:type="inkscape:offset"
+ inkscape:radius="-0.5"
+ inkscape:original="M 11.6875 10.5 C 10.00333 10.5 9.4120513 10.660095 8.84375 12.625 L 3.59375 30.75 C 3.1443849 32.303684 4.7565918 33.500002 6.625 33.5 L 41.34375 33.5 C 43.02792 33.5 44.876024 32.515471 44.375 30.75 L 39.3125 12.875 C 38.668998 10.607474 37.965419 10.5 36.28125 10.5 L 11.6875 10.5 z "
+ style="opacity:0.46240599;fill:url(#linearGradient7658);fill-opacity:1;stroke:none;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="path5806"
+ d="M 11.6875,11 C 10.861258,11 10.40275,11.065232 10.125,11.25 C 9.8472503,11.434768 9.5847988,11.808525 9.3125,12.75 L 4.0625,30.875 C 3.8916752,31.465628 4.0939747,31.914316 4.5625,32.3125 C 5.0310253,32.710684 5.7975106,33.000001 6.625,33 L 41.34375,33 C 42.088405,33 42.882691,32.7518 43.375,32.375 C 43.867309,31.9982 44.106017,31.578923 43.90625,30.875 L 38.84375,13 C 38.534499,11.910283 38.220548,11.458908 37.90625,11.25 C 37.591952,11.041092 37.112699,11 36.28125,11 L 11.6875,11 z " />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;color:black;fill:url(#radialGradient8623);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.4;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="path8621"
+ sodipodi:cx="7.625"
+ sodipodi:cy="30.578125"
+ sodipodi:rx="0.53125"
+ sodipodi:ry="0.515625"
+ d="M 8.15625 30.578125 A 0.53125 0.515625 0 1 1 7.09375,30.578125 A 0.53125 0.515625 0 1 1 8.15625 30.578125 z"
+ transform="matrix(-2.628602,0,0,1.777765,27.79309,-23.77739)" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:url(#linearGradient5790);stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 16.110953,12.552805 C 15.537372,12.552805 15.082583,12.984626 15.082583,13.542664 L 14.14236,16.773465 C 11.282398,18.049979 9.5000048,19.872538 9.5000048,21.897441 C 9.5000048,25.754398 15.979029,28.88468 23.985327,28.884681 C 31.991623,28.884681 38.500032,25.754397 38.500031,21.897441 C 38.500031,19.858407 36.66444,18.022053 33.76953,16.744352 L 32.829306,13.542664 C 32.829306,12.984626 32.374518,12.552805 31.800936,12.552805 L 16.110953,12.552805 z "
+ id="path2784"
+ sodipodi:nodetypes="cccssscccc" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:url(#linearGradient3474);stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ d="M 11.6875,11.500005 C 10.884376,11.500005 10.590332,11.570515 10.46875,11.655561 C 10.347168,11.740606 10.111043,12.057681 9.78125,12.962228 L 4.53125,31.100014 C 4.3975296,31.466779 4.4764233,31.633879 4.84375,31.940014 C 5.2110767,32.24615 5.910443,32.500014 6.625,32.500015 L 41.34375,32.500015 C 41.983543,32.500015 42.737095,32.262061 43.125,31.971125 C 43.512905,31.68019 43.613311,31.588316 43.4375,31.100014 L 38.375,13.242228 C 37.997794,12.194568 37.69292,11.802931 37.53125,11.686672 C 37.36958,11.570413 37.087539,11.500005 36.28125,11.500005 L 11.6875,11.500005 z "
+ id="path3394"
+ sodipodi:nodetypes="csccsccsccscc" />
+ <g
+ id="g5657"
+ transform="translate(7,-1)"
+ style="opacity:0.3028571">
+ <rect
+ ry="0.74712253"
+ rx="0.75130093"
+ y="35.500008"
+ x="18.499996"
+ height="1.9999924"
+ width="14.000004"
+ id="rect5641"
+ style="opacity:1;color:black;fill:white;fill-opacity:1;fill-rule:nonzero;stroke:#eeeeec;stroke-width:1.00000024;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.4;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ y="36"
+ x="19"
+ height="1"
+ width="1"
+ id="rect5645"
+ style="opacity:1;color:black;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.4;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ y="36"
+ x="22"
+ height="1"
+ width="1"
+ id="rect5647"
+ style="opacity:1;color:black;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.4;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ y="36"
+ x="24"
+ height="1"
+ width="1"
+ id="rect5649"
+ style="opacity:1;color:black;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.4;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ y="36"
+ x="26"
+ height="1"
+ width="1"
+ id="rect5651"
+ style="opacity:1;color:black;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.4;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ y="36"
+ x="29"
+ height="1"
+ width="2"
+ id="rect5653"
+ style="opacity:1;color:black;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.4;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+ </g>
+ <path
+ sodipodi:type="inkscape:offset"
+ inkscape:radius="-0.44194174"
+ inkscape:original="M 16.125 12.5625 C 15.55142 12.5625 15.09375 12.973212 15.09375 13.53125 L 14.15625 16.78125 C 11.296288 18.057765 9.5 19.881347 9.5 21.90625 C 9.5 25.763206 15.993702 28.874999 24 28.875 C 32.006296 28.874999 38.500001 25.763206 38.5 21.90625 C 38.5 19.867215 36.67616 18.027701 33.78125 16.75 L 32.84375 13.53125 C 32.843748 12.973212 32.386082 12.5625 31.8125 12.5625 L 16.125 12.5625 z "
+ style="fill:url(#linearGradient5865);fill-opacity:1;stroke:none;stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="path5857"
+ d="M 16.125,13 C 15.762388,13 15.53125,13.214848 15.53125,13.53125 C 15.537172,13.572706 15.537172,13.614794 15.53125,13.65625 L 14.59375,16.90625 C 14.55648,17.032564 14.464823,17.135678 14.34375,17.1875 C 12.953848,17.807869 11.845241,18.565737 11.09375,19.375 C 10.342259,20.184263 9.9375,21.02448 9.9375,21.90625 C 9.9375,23.586705 11.392464,25.21545 13.9375,26.4375 C 16.482536,27.65955 20.054107,28.4375 24,28.4375 C 27.945892,28.4375 31.517463,27.65955 34.0625,26.4375 C 36.607537,25.21545 38.0625,23.586705 38.0625,21.90625 C 38.0625,21.018499 37.668724,20.159037 36.90625,19.34375 C 36.143776,18.528463 35.000895,17.777309 33.59375,17.15625 C 33.472677,17.104428 33.38102,17.001314 33.34375,16.875 L 32.40625,13.65625 C 32.400328,13.614794 32.400328,13.572706 32.40625,13.53125 C 32.406249,13.214846 32.175114,13 31.8125,13 L 16.125,13 z " />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.9;color:black;fill:black;fill-opacity:0.05303028;fill-rule:nonzero;stroke:url(#linearGradient8603);stroke-width:2.52015233;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.4;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="path8595"
+ sodipodi:cx="16.970562"
+ sodipodi:cy="25.107418"
+ sodipodi:rx="7.7781744"
+ sodipodi:ry="4.2868347"
+ d="M 24.748736 25.107418 A 7.7781744 4.2868347 0 1 1 9.1923876,25.107418 A 7.7781744 4.2868347 0 1 1 24.748736 25.107418 z"
+ transform="matrix(0.449978,0,0,0.349909,16.36363,12.21469)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;color:black;fill:url(#radialGradient8619);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.4;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="path8611"
+ sodipodi:cx="7.625"
+ sodipodi:cy="30.578125"
+ sodipodi:rx="0.53125"
+ sodipodi:ry="0.515625"
+ d="M 8.15625 30.578125 A 0.53125 0.515625 0 1 1 7.09375,30.578125 A 0.53125 0.515625 0 1 1 8.15625 30.578125 z"
+ transform="matrix(1.411772,0,0,0.969697,-3.014767,0.848485)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;color:black;fill:url(#radialGradient8664);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.46259445;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.4;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="path8660"
+ sodipodi:cx="7.625"
+ sodipodi:cy="30.578125"
+ sodipodi:rx="0.53125"
+ sodipodi:ry="0.515625"
+ d="M 8.15625 30.578125 A 0.53125 0.515625 0 1 1 7.09375,30.578125 A 0.53125 0.515625 0 1 1 8.15625 30.578125 z"
+ transform="matrix(-2.628602,0,0,1.777765,60.79309,-23.77739)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;color:black;fill:url(#radialGradient8666);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.4;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="path8662"
+ sodipodi:cx="7.625"
+ sodipodi:cy="30.578125"
+ sodipodi:rx="0.53125"
+ sodipodi:ry="0.515625"
+ d="M 8.15625 30.578125 A 0.53125 0.515625 0 1 1 7.09375,30.578125 A 0.53125 0.515625 0 1 1 8.15625 30.578125 z"
+ transform="matrix(1.411772,0,0,0.969697,29.98523,0.848485)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;color:black;fill:url(#radialGradient8676);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.4;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="path8668"
+ sodipodi:cx="7.625"
+ sodipodi:cy="30.578125"
+ sodipodi:rx="0.53125"
+ sodipodi:ry="0.515625"
+ d="M 8.15625 30.578125 A 0.53125 0.515625 0 1 1 7.09375,30.578125 A 0.53125 0.515625 0 1 1 8.15625 30.578125 z"
+ transform="matrix(-2.628602,0,0,1.777765,31.79309,-40.77739)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;color:black;fill:url(#radialGradient8678);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.4;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="path8670"
+ sodipodi:cx="7.625"
+ sodipodi:cy="30.578125"
+ sodipodi:rx="0.53125"
+ sodipodi:ry="0.515625"
+ d="M 8.15625 30.578125 A 0.53125 0.515625 0 1 1 7.09375,30.578125 A 0.53125 0.515625 0 1 1 8.15625 30.578125 z"
+ transform="matrix(1.411772,0,0,0.969697,0.985233,-16.15152)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;color:black;fill:url(#radialGradient8680);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.4;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="path8672"
+ sodipodi:cx="7.625"
+ sodipodi:cy="30.578125"
+ sodipodi:rx="0.53125"
+ sodipodi:ry="0.515625"
+ d="M 8.15625 30.578125 A 0.53125 0.515625 0 1 1 7.09375,30.578125 A 0.53125 0.515625 0 1 1 8.15625 30.578125 z"
+ transform="matrix(-2.628602,0,0,1.777765,56.3029,-40.77739)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;color:black;fill:url(#radialGradient8682);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.4;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="path8674"
+ sodipodi:cx="7.625"
+ sodipodi:cy="30.578125"
+ sodipodi:rx="0.53125"
+ sodipodi:ry="0.515625"
+ d="M 8.15625 30.578125 A 0.53125 0.515625 0 1 1 7.09375,30.578125 A 0.53125 0.515625 0 1 1 8.15625 30.578125 z"
+ transform="matrix(1.411772,0,0,0.969697,25.49504,-16.15152)" />
+ <path
+ style="opacity:0.4;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient8716);stroke-width:0.29999995;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 40.328109,30.261401 L 41.203108,30.691733"
+ id="path8700" />
+ <path
+ style="opacity:0.4;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient9605);stroke-width:0.29999995;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ d="M 7.330186,30.695906 L 8.201031,30.257228"
+ id="path9603" />
+ <path
+ style="opacity:0.4;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient9649);stroke-width:0.29999995;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ d="M 11.263531,13.446473 L 12.236468,13.381651"
+ id="path9647" />
+ <path
+ style="opacity:0.4;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient9654);stroke-width:0.29999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ d="M 36.124038,13.147874 L 36.438465,13.836508"
+ id="path9652" />
+ <rect
+ style="opacity:0.12000002;color:black;fill:url(#linearGradient2992);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.68183619;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="rect2984"
+ width="32.03125"
+ height="1"
+ x="8"
+ y="38" />
+ <path
+ style="opacity:0.12000002;color:black;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient2910);stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ d="M 10.460155,15.082355 L 6.8513979,27.675762 C 8.2982685,28.375511 10.625,29.167061 10.429825,31.533131 L 37.299883,31.533131 C 37.869398,29.640915 39.875,28.375 41.34614,28.25 L 37.498106,15.082355 L 32.350135,12.523347 L 14.318912,12.523347 L 10.460155,15.082355 z "
+ id="path1997"
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path2912"
+ d="M 7.9763979,27.050762 C 9.4232685,27.750511 11.15533,28.484003 11.402097,30.408131 L 36.857941,30.408131 C 37.427456,28.515915 38.875,27.5 40.34614,27.375 L 7.9763979,27.050762 z "
+ style="opacity:0.83428572;color:black;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient2922);stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+ <g
+ style="display:inline"
+ id="g5480"
+ transform="translate(2.1019902,-6.6834655)">
+ <rect
+ y="23.781591"
+ x="23.246136"
+ height="14.053748"
+ width="14.053748"
+ id="rect4464"
+ style="fill:#e91b1b;fill-opacity:1;stroke:#a60f11;stroke-width:0.75;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none" />
+ <rect
+ y="24.452875"
+ x="23.917419"
+ height="12.711183"
+ width="12.711183"
+ id="rect5476"
+ style="fill:#e91b1b;fill-opacity:1;stroke:#fb5e5e;stroke-width:0.75;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline" />
+ <path
+ id="path5478"
+ d="m 23.59969,37.481786 13.258253,-13.346641 0,13.346641 -13.258253,0 z"
+ style="fill:#a60f11;fill-opacity:0.3;fill-rule:evenodd;stroke:none" />
+ </g>
+ </g>
+</svg>
diff --git a/src/gdu/gdu-util.c b/src/gdu/gdu-util.c
index f498327..9589262 100644
--- a/src/gdu/gdu-util.c
+++ b/src/gdu/gdu-util.c
@@ -319,6 +319,8 @@ gdu_get_job_description (const char *job_id)
s = g_strdup (_("Running S.M.A.R.T. Self Test"));
} else if (strcmp (job_id, "DriveEject") == 0) {
s = g_strdup (_("Ejecting Media"));
+ } else if (strcmp (job_id, "DriveDetach") == 0) {
+ s = g_strdup (_("Detaching Device"));
} else if (strcmp (job_id, "ForceUnmount") == 0) {
s = g_strdup (_("Forcibly Unmounting Filesystem"));
} else if (strcmp (job_id, "ForceLuksTeardown") == 0) {
diff --git a/src/palimpsest/gdu-shell.c b/src/palimpsest/gdu-shell.c
index 0d2a46d..7c56ea3 100644
--- a/src/palimpsest/gdu-shell.c
+++ b/src/palimpsest/gdu-shell.c
@@ -566,6 +566,7 @@ gdu_shell_update (GduShell *shell)
gboolean can_mount;
gboolean can_unmount;
gboolean can_eject;
+ gboolean can_detach;
gboolean can_lock;
gboolean can_unlock;
gboolean can_start;
@@ -584,6 +585,7 @@ gdu_shell_update (GduShell *shell)
can_fsck = FALSE;
can_unmount = FALSE;
can_eject = FALSE;
+ can_detach = FALSE;
can_unlock = FALSE;
can_lock = FALSE;
unlocked_by_uid = 0;
@@ -643,11 +645,11 @@ gdu_shell_update (GduShell *shell)
if (GDU_IS_DRIVE (shell->priv->presentable_now_showing)) {
if (gdu_device_is_removable (device) &&
- gdu_device_is_media_available (device) &&
- (gdu_device_drive_get_is_media_ejectable (device) ||
- gdu_device_drive_get_requires_eject (device))) {
+ gdu_device_is_media_available (device))
can_eject = TRUE;
- }
+
+ if (gdu_device_drive_get_can_detach (device))
+ can_detach = TRUE;
can_erase = TRUE;
if (gdu_drive_is_activatable (GDU_DRIVE (shell->priv->presentable_now_showing)) &&
@@ -668,6 +670,7 @@ gdu_shell_update (GduShell *shell)
gtk_action_set_sensitive (gtk_action_group_get_action (shell->priv->action_group, "mount"), can_mount);
gtk_action_set_sensitive (gtk_action_group_get_action (shell->priv->action_group, "unmount"), can_unmount);
gtk_action_set_sensitive (gtk_action_group_get_action (shell->priv->action_group, "eject"), can_eject);
+ gtk_action_set_sensitive (gtk_action_group_get_action (shell->priv->action_group, "detach"), can_detach);
gtk_action_set_sensitive (gtk_action_group_get_action (shell->priv->action_group, "fsck"), can_fsck);
gtk_action_set_sensitive (gtk_action_group_get_action (shell->priv->action_group, "lock"), can_lock);
gtk_action_set_sensitive (gtk_action_group_get_action (shell->priv->action_group, "unlock"), can_unlock);
@@ -1041,6 +1044,37 @@ eject_action_callback (GtkAction *action, gpointer user_data)
}
}
+static void
+detach_op_callback (GduDevice *device,
+ GError *error,
+ gpointer user_data)
+{
+ ShellPresentableData *data = user_data;
+ if (error != NULL) {
+ gdu_shell_raise_error (data->shell,
+ data->presentable,
+ error,
+ _("Error detaching device"));
+ g_error_free (error);
+ }
+ shell_presentable_free (data);
+}
+
+static void
+detach_action_callback (GtkAction *action, gpointer user_data)
+{
+ GduShell *shell = GDU_SHELL (user_data);
+ GduDevice *device;
+
+ device = gdu_presentable_get_device (shell->priv->presentable_now_showing);
+ if (device != NULL) {
+ gdu_device_op_drive_detach (device,
+ detach_op_callback,
+ shell_presentable_new (shell, shell->priv->presentable_now_showing));
+ g_object_unref (device);
+ }
+}
+
static void unlock_action_do (GduShell *shell,
GduPresentable *presentable,
@@ -1531,6 +1565,7 @@ static const gchar *ui =
" <menuitem action='mount'/>"
" <menuitem action='unmount'/>"
" <menuitem action='eject'/>"
+ " <menuitem action='detach'/>"
" <separator/>"
" <menuitem action='fsck'/>"
" <separator/>"
@@ -1551,6 +1586,7 @@ static const gchar *ui =
" <toolitem action='mount'/>"
" <toolitem action='unmount'/>"
" <toolitem action='eject'/>"
+ " <toolitem action='detach'/>"
" <separator/>"
" <toolitem action='fsck'/>"
" <separator/>"
@@ -1573,6 +1609,7 @@ static GtkActionEntry entries[] = {
{"mount", "gdu-mount", N_("_Mount"), NULL, N_("Mount the filesystem on device"), G_CALLBACK (mount_action_callback)},
{"unmount", "gdu-unmount", N_("_Unmount"), NULL, N_("Unmount the filesystem"), G_CALLBACK (unmount_action_callback)},
{"eject", "gdu-eject", N_("_Eject"), NULL, N_("Eject media from the device"), G_CALLBACK (eject_action_callback)},
+ {"detach", "gdu-detach", N_("_Detach"), NULL, N_("Detach the device from the system, powering it off"), G_CALLBACK (detach_action_callback)},
{"unlock", "gdu-encrypted-unlock", N_("_Unlock"), NULL, N_("Unlock the encrypted device, making the data available in cleartext"), G_CALLBACK (unlock_action_callback)},
{"lock", "gdu-encrypted-lock", N_("_Lock"), NULL, N_("Lock the encrypted device, making the cleartext data unavailable"), G_CALLBACK (lock_action_callback)},
{"start", "gdu-raid-array-start", N_("_Start"), NULL, N_("Start the array"), G_CALLBACK (start_action_callback)},
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]