Commit 39cf8e6e authored by Jim Nelson's avatar Jim Nelson

Forgot to commit icons in last update. Also added first steps toward sorting.

parent f6bcadf0
......@@ -57,6 +57,7 @@ public class CollectionPage : Gtk.ScrolledWindow {
private Gee.HashSet<Thumbnail> selectedList = new Gee.HashSet<Thumbnail>();
private int scale = Thumbnail.DEFAULT_SCALE;
private bool improval_scheduled = false;
private bool displayTitles = true;
// TODO: Mark fields for translation
private const Gtk.ActionEntry[] ACTIONS = {
......@@ -71,6 +72,9 @@ public class CollectionPage : Gtk.ScrolledWindow {
{ "IncreaseSize", Gtk.STOCK_ZOOM_IN, "Zoom _in", "KP_Add", "Increase the magnification of the thumbnails", on_increase_size },
{ "DecreaseSize", Gtk.STOCK_ZOOM_OUT, "Zoom _out", "KP_Subtract", "Decrease the magnification of the thumbnails", on_decrease_size },
{ "View", null, "_View", null, null, null },
{ "ViewTitle", null, "_Titles", "<Ctrl><Shift>T", "Display the title of each photo", on_display_titles },
{ "Help", null, "_Help", null, null, null },
{ "About", Gtk.STOCK_ABOUT, "_About", null, "About this application", on_about }
};
......@@ -174,6 +178,7 @@ public class CollectionPage : Gtk.ScrolledWindow {
public void add_photo(PhotoID photoID, File file) {
Thumbnail thumbnail = new Thumbnail(photoID, file, scale);
thumbnail.display_title(displayTitles);
thumbnailList.add(thumbnail);
......@@ -504,6 +509,16 @@ public class CollectionPage : Gtk.ScrolledWindow {
});
}
private void on_display_titles() {
displayTitles = (displayTitles) ? false : true;
foreach (Thumbnail thumbnail in thumbnailList) {
thumbnail.display_title(displayTitles);
}
layout.refresh();
}
private double scaleToSlider(int value) {
assert(value >= Thumbnail.MIN_SCALE);
assert(value <= Thumbnail.MAX_SCALE);
......
......@@ -262,13 +262,31 @@ public class PhotoExif {
return datetime.get_value();
}
public bool get_datetime_time(out time_t timet) {
string text = get_datetime();
if (text == null)
return false;
Time tm = Time();
int count = text.scanf("%d:%d:%d %d:%d:%d", &tm.year, &tm.month, &tm.day, &tm.hour,
&tm.minute, &tm.second);
if (count != 6)
return false;
tm.year -= 1900;
tm.month--;
tm.isdst = -1;
timet = tm.mktime();
return true;
}
private void update() {
// TODO: Update internal data structures if file changes
if (exifData != null)
return;
debug("Loading EXIF from %s", file.get_path());
exifData = Exif.Data.new_from_file(file.get_path());
// TODO: Better error handling
assert(exifData != null);
......
......@@ -26,15 +26,19 @@ public class Thumbnail : Gtk.Alignment {
private Gdk.Pixbuf cached = null;
private Gdk.InterpType scaledInterp = LOW_QUALITY_INTERP;
private PhotoExif exif;
private string titleText;
private time_t time = time_t();
public Thumbnail(PhotoID photoID, File file, int scale = DEFAULT_SCALE) {
this.photoID = photoID;
this.file = file;
this.scale = scale;
this.titleText = file.get_basename();
this.exif = new PhotoExif(file);
this.originalDim = new PhotoTable().get_dimensions(photoID);
this.scaledDim = get_scaled_dimensions(originalDim, scale);
this.scaledDim = get_rotated_dimensions(scaledDim, exif.get_orientation());
exif.get_datetime_time(out this.time);
// bottom-align everything
set(0, 1, 0, 0);
......@@ -45,8 +49,7 @@ public class Thumbnail : Gtk.Alignment {
// requisition size, even when it contains no pixbuf
image.set_size_request(scaledDim.width, scaledDim.height);
// TODO: Is EXIF information cached in memory?
title = new Gtk.Label(build_exposed_title());
title = new Gtk.Label(titleText);
title.set_use_underline(false);
title.set_justify(Gtk.Justification.LEFT);
title.set_alignment(0, 0);
......@@ -69,6 +72,20 @@ public class Thumbnail : Gtk.Alignment {
return file;
}
public int64 get_filesize() {
int64 fileSize = -1;
try {
FileInfo info = file.query_info(FILE_ATTRIBUTE_STANDARD_SIZE,
FileQueryInfoFlags.NOFOLLOW_SYMLINKS, null);
fileSize = info.get_size();
} catch(Error err) {
error("%s", err.message);
}
return fileSize;
}
public PhotoID get_photo_id() {
return photoID;
}
......@@ -107,31 +124,14 @@ public class Thumbnail : Gtk.Alignment {
} catch (Error err) {
error("%s", err.message);
}
title.set_text(build_exposed_title());
}
private string build_exposed_title() {
int64 fileSize = 0;
try {
FileInfo info = file.query_info(FILE_ATTRIBUTE_STANDARD_SIZE,
FileQueryInfoFlags.NOFOLLOW_SYMLINKS, null);
fileSize = info.get_size();
} catch(Error err) {
error("%s", err.message);
}
Dimensions dim;
bool dimFound = exif.get_dimensions(out dim);
string datetime = exif.get_datetime();
return "%s\n%s\n%s\n%s\n%lld bytes".printf(
file.get_basename(),
(datetime != null) ? datetime : "",
(dimFound) ? "%d x %d".printf(dim.width, dim.height) : "",
exif.get_orientation().get_description(),
fileSize);
public void display_title(bool display) {
title.visible = display;
}
public time_t get_time_t() {
return time;
}
public void select() {
......
<?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://web.resource.org/cc/"
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.44"
version="1.0"
sodipodi:docbase="/home/lapo/Icone/cvs/gnome-icon-theme/scalable/actions"
sodipodi:docname="object-rotate-left.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/home/lapo/Desktop/rotate.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs4">
<linearGradient
inkscape:collect="always"
id="linearGradient3263">
<stop
style="stop-color:white;stop-opacity:1;"
offset="0"
id="stop3265" />
<stop
style="stop-color:white;stop-opacity:0;"
offset="1"
id="stop3267" />
</linearGradient>
<linearGradient
id="linearGradient3252">
<stop
id="stop3254"
offset="0"
style="stop-color:#fcaf3e;stop-opacity:1" />
<stop
style="stop-color:#ffcf82;stop-opacity:1;"
offset="0.24886067"
id="stop3258" />
<stop
id="stop3260"
offset="0.60878158"
style="stop-color:#fcaf3e;stop-opacity:1;" />
<stop
id="stop3256"
offset="1"
style="stop-color:white;stop-opacity:1;" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient3209">
<stop
style="stop-color:black;stop-opacity:1;"
offset="0"
id="stop3211" />
<stop
style="stop-color:black;stop-opacity:0;"
offset="1"
id="stop3213" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3263"
id="linearGradient3315"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1,0,0,1,48.99999,-118)"
x1="21.125"
y1="27.875"
x2="18.625"
y2="41.040001" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3263"
id="linearGradient3317"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1,0,0,1,48.99999,-118)"
x1="21.875"
y1="8.75"
x2="10.875"
y2="22.125" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3252"
id="linearGradient3319"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-2.179382,0,0,2.078418,60.66391,-116.5604)"
x1="25.956575"
y1="5.2073736"
x2="21.789337"
y2="21.515211" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3209"
id="radialGradient3321"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.537849,0,7.842131)"
cx="12.15625"
cy="16.96875"
fx="12.15625"
fy="16.96875"
r="7.84375" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#afafaf"
borderopacity="1"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="-114.9205"
inkscape:cy="182.53124"
inkscape:document-units="px"
inkscape:current-layer="layer1"
width="48px"
height="48px"
gridspacingx="0.5px"
gridspacingy="0.5px"
inkscape:showpageshadow="false"
borderlayer="true"
gridempspacing="2"
inkscape:window-width="1085"
inkscape:window-height="880"
inkscape:window-x="0"
inkscape:window-y="145"
showgrid="false"
showguides="true"
showborder="true"
inkscape:guide-bbox="true"
inkscape:grid-points="true" />
<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" />
<dc:creator>
<cc:Agent>
<dc:title>Lapo Calamandrei</dc:title>
</cc:Agent>
</dc:creator>
<cc:license
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
<dc:title>Rotate Left</dc:title>
<dc:date>2006-10-02</dc:date>
<dc:subject>
<rdf:Bag>
<rdf:li>object</rdf:li>
<rdf:li>rotate</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="g3486"
transform="translate(0,120)">
<path
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/lapo/Desktop/rotate.png"
transform="matrix(-2.67729,0,0,2.133333,57.5458,-117.2)"
d="M 20 16.96875 A 7.84375 4.21875 0 1 1 4.3125,16.96875 A 7.84375 4.21875 0 1 1 20 16.96875 z"
sodipodi:ry="4.21875"
sodipodi:rx="7.84375"
sodipodi:cy="16.96875"
sodipodi:cx="12.15625"
id="path3275"
style="opacity:0.15;color:black;fill:url(#radialGradient3321);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;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"
sodipodi:type="arc" />
<path
sodipodi:nodetypes="cccccccccccc"
id="path3277"
d="M 36.828985,-115.5 C 25.381932,-115.5 16.499993,-106.41675 16.499993,-95.5 L 16.499993,-92.5 L 7.706173,-92.5 L 22.999993,-76 L 38.217521,-92.5 L 29.499993,-92.5 L 29.499993,-95.5 C 29.499993,-99.723791 32.400015,-102.5 36.828985,-102.5 L 46.499993,-102.5 L 46.499993,-115.5 L 36.828985,-115.5 z "
style="color:black;fill:url(#linearGradient3319);fill-opacity:1;fill-rule:nonzero;stroke:#ce5c00;stroke-width:0.99999994;stroke-linecap:round;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" />
<path
sodipodi:nodetypes="ccccccscc"
id="path3279"
d="M 17.499993,-91.5 L 17.499993,-95.5 C 17.499993,-105.87535 25.896261,-114.5 36.812493,-114.5 L 45.499993,-114.5 L 45.499993,-103.5 L 36.843743,-103.5 C 34.420315,-103.5 32.303004,-102.73293 30.812493,-101.3125 C 29.321982,-99.892067 28.499993,-97.841924 28.499993,-95.5 L 28.499993,-91.5"
style="opacity:1;color:black;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3317);stroke-width:0.99999994;stroke-linecap:round;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" />
<path
sodipodi:nodetypes="ccccc"
id="path3281"
d="M 28.499993,-91.5 L 35.906243,-91.5 L 22.968743,-77.46875 L 9.999993,-91.5 L 17.499993,-91.5"
style="opacity:1;color:black;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3315);stroke-width:0.99999994;stroke-linecap:round;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" />
</g>
</g>
</svg>
<?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://web.resource.org/cc/"
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.44"
version="1.0"
sodipodi:docbase="/home/lapo/Icone/cvs/gnome-icon-theme/scalable/actions"
sodipodi:docname="object-rotate-right.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/home/lapo/Desktop/rotate.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs4">
<linearGradient
inkscape:collect="always"
id="linearGradient3263">
<stop
style="stop-color:white;stop-opacity:1;"
offset="0"
id="stop3265" />
<stop
style="stop-color:white;stop-opacity:0;"
offset="1"
id="stop3267" />
</linearGradient>
<linearGradient
id="linearGradient3252">
<stop
id="stop3254"
offset="0"
style="stop-color:#fcaf3e;stop-opacity:1" />
<stop
style="stop-color:#ffcf82;stop-opacity:1;"
offset="0.24886067"
id="stop3258" />
<stop
id="stop3260"
offset="0.60878158"
style="stop-color:#fcaf3e;stop-opacity:1;" />
<stop
id="stop3256"
offset="1"
style="stop-color:white;stop-opacity:1;" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient3209">
<stop
style="stop-color:black;stop-opacity:1;"
offset="0"
id="stop3211" />
<stop
style="stop-color:black;stop-opacity:0;"
offset="1"
id="stop3213" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3209"
id="radialGradient2333"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.537849,0,7.842131)"
cx="12.15625"
cy="16.96875"
fx="12.15625"
fy="16.96875"
r="7.84375" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3252"
id="linearGradient2345"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.179382,0,0,2.078418,-9.66392,-176.5604)"
x1="9.614049"
y1="2.2441149"
x2="14.733438"
y2="22.278046" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3263"
id="linearGradient3269"
x1="17.5"
y1="9.625"
x2="13.75"
y2="27.125"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(2,-178)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3263"
id="linearGradient3273"
gradientUnits="userSpaceOnUse"
x1="18.625"
y1="27.875"
x2="18.625"
y2="41.040001"
gradientTransform="translate(2,-178)" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#afafaf"
borderopacity="1"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="-114.9205"
inkscape:cy="-57.46876"
inkscape:document-units="px"
inkscape:current-layer="layer1"
width="48px"
height="48px"
gridspacingx="0.5px"
gridspacingy="0.5px"
inkscape:showpageshadow="false"
borderlayer="true"
gridempspacing="2"
inkscape:window-width="1085"
inkscape:window-height="880"
inkscape:window-x="0"
inkscape:window-y="145"
showgrid="false"
showguides="true"
showborder="false"
inkscape:guide-bbox="true"
inkscape:grid-points="true" />
<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" />
<dc:creator>
<cc:Agent>
<dc:title>Lapo Calamandrei</dc:title>
</cc:Agent>
</dc:creator>
<cc:license
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
<dc:title>Rotate Right</dc:title>
<dc:date>2006-10-02</dc:date>
<dc:subject>
<rdf:Bag>
<rdf:li>Object</rdf:li>
<rdf:li>rotate</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="g3492"
transform="translate(0,180)">
<path
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/lapo/Desktop/rotate.png"
transform="matrix(2.67729,0,0,2.133333,-6.545807,-177.2)"
d="M 20 16.96875 A 7.84375 4.21875 0 1 1 4.3125,16.96875 A 7.84375 4.21875 0 1 1 20 16.96875 z"
sodipodi:ry="4.21875"
sodipodi:rx="7.84375"
sodipodi:cy="16.96875"
sodipodi:cx="12.15625"
id="path2325"
style="opacity:0.15;color:black;fill:url(#radialGradient2333);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;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"
sodipodi:type="arc" />
<path
sodipodi:nodetypes="cccccccccccc"
id="path2329"
d="M 14.171008,-175.5 C 25.618061,-175.5 34.5,-166.41675 34.5,-155.5 L 34.5,-152.5 L 43.29382,-152.5 L 28,-136 L 12.782472,-152.5 L 21.5,-152.5 L 21.5,-155.5 C 21.5,-159.72379 18.599978,-162.5 14.171008,-162.5 L 4.5,-162.5 L 4.5,-175.5 L 14.171008,-175.5 z "
style="color:black;fill:url(#linearGradient2345);fill-opacity:1;fill-rule:nonzero;stroke:#ce5c00;stroke-width:0.99999994;stroke-linecap:round;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" />
<path
sodipodi:nodetypes="ccccccscc"
id="path3238"
d="M 33.5,-151.5 L 33.5,-155.5 C 33.5,-165.87535 25.103732,-174.5 14.1875,-174.5 L 5.5,-174.5 L 5.5,-163.5 L 14.15625,-163.5 C 16.579678,-163.5 18.696989,-162.73293 20.1875,-161.3125 C 21.678011,-159.89207 22.5,-157.84192 22.5,-155.5 L 22.5,-151.5"
style="opacity:1;color:black;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3269);stroke-width:0.99999994;stroke-linecap:round;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" />
<path
sodipodi:nodetypes="ccccc"
id="path3271"
d="M 22.5,-151.5 L 15.09375,-151.5 L 28.03125,-137.46875 L 41,-151.5 L 33.5,-151.5"
style="opacity:1;color:black;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3273);stroke-width:0.99999994;stroke-linecap:round;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" />
</g>
</g>
</svg>
......@@ -19,6 +19,10 @@
<menuitem name="Mirror" action="Mirror" />
</menu>
<menu name="ViewMenu" action="View">
<menuitem name="View Title" action="ViewTitle" />
</menu>
<menu name="HelpMenu" action="Help">
<menuitem name="HelpAbout" action="About" />
</menu>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment