improve avatar manipulation
Changes interface to mimick the one in Gnome Contacts:
- no more trash or export buttons
- the first choice is to take a photo or import
- adds return/undo buttons during selection process
Change-Id: I432f4bad48c1379f6fb26569edea32a24cbb98e9
Tuleap: #840
diff --git a/ui/avatarmanipulation.ui b/ui/avatarmanipulation.ui
index 5b83dd4..f54e7f5 100644
--- a/ui/avatarmanipulation.ui
+++ b/ui/avatarmanipulation.ui
@@ -1,34 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.19.0 -->
<interface>
<requires lib="gtk+" version="3.10"/>
<object class="GtkImage" id="image_add_symbolic">
<property name="visible">True</property>
- <property name="can_focus">False</property>
<property name="icon_name">list-add-symbolic</property>
</object>
<object class="GtkImage" id="image_camera_photo">
<property name="visible">True</property>
- <property name="can_focus">False</property>
<property name="icon_name">camera-photo-symbolic</property>
</object>
- <object class="GtkImage" id="image_save_symbolic">
- <property name="can_focus">False</property>
- <property name="icon_name">document-save-symbolic</property>
- </object>
- <object class="GtkImage" id="image_select_symbolic">
+ <object class="GtkImage" id="image_take_photo">
<property name="visible">True</property>
- <property name="can_focus">False</property>
<property name="icon_name">object-select-symbolic</property>
</object>
- <object class="GtkImage" id="image_trash_symbolic">
+ <object class="GtkImage" id="image_select_area">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="icon_name">user-trash-symbolic</property>
+ <property name="icon_name">object-select-symbolic</property>
+ </object>
+ <object class="GtkImage" id="image_return_photo">
+ <property name="visible">True</property>
+ <property name="icon_name">edit-undo-symbolic</property>
+ </object>
+ <object class="GtkImage" id="image_return_edit">
+ <property name="visible">True</property>
+ <property name="icon_name">edit-undo-symbolic</property>
</object>
<template class="AvatarManipulation" parent="GtkBox">
<property name="visible">True</property>
- <property name="can_focus">False</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="orientation">vertical</property>
@@ -73,90 +71,108 @@
<child>
<object class="GtkBox" id="box_controls">
<property name="visible">True</property>
- <property name="can_focus">False</property>
<property name="halign">center</property>
<property name="valign">center</property>
- <style>
- <class name="linked"/>
- <class name="horizontal"/>
- </style>
+
+ <!-- initial state: take photo or choose image -->
<child>
- <object class="GtkButton" id="button_take_photo">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="halign">center</property>
- <property name="valign">center</property>
- <property name="image">image_camera_photo</property>
- <property name="always_show_image">True</property>
- <property name="tooltip-text" translatable="yes">Take photo</property>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="button_trash_avatar">
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="halign">center</property>
- <property name="valign">center</property>
- <property name="image">image_trash_symbolic</property>
- <property name="always_show_image">True</property>
- <property name="tooltip-text" translatable="yes">Delete current image</property>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="button_set_avatar">
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="halign">center</property>
- <property name="valign">center</property>
- <property name="image">image_select_symbolic</property>
- <property name="tooltip-text" translatable="yes">Set selection as image</property>
+ <object class="GtkBox" id="button_box_current">
+ <style>
+ <class name="linked"/>
+ </style>
+ <child>
+ <object class="GtkButton" id="button_start_camera">
+ <property name="visible">True</property>
+ <property name="receives_default">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="image">image_camera_photo</property>
+ <property name="tooltip-text" translatable="yes">Take photo</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="button_choose_picture">
+ <property name="visible">True</property>
+ <property name="receives_default">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="image">image_add_symbolic</property>
+ <property name="tooltip-text" translatable="yes">Choose image from file</property>
+ </object>
+ </child>
</object>
<packing>
<property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
+ <property name="fill">False</property>
</packing>
</child>
+
+ <!-- 2nd state: snap photo or return -->
<child>
- <object class="GtkButton" id="button_choose_picture">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="halign">center</property>
- <property name="valign">center</property>
- <property name="image">image_add_symbolic</property>
- <property name="tooltip-text" translatable="yes">Choose image from file</property>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">3</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="button_export_avatar">
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="image">image_save_symbolic</property>
- <property name="tooltip-text" translatable="yes">Save image to file</property>
+ <object class="GtkBox" id="button_box_photo">
+ <style>
+ <class name="linked"/>
+ </style>
+ <child>
+ <object class="GtkButton" id="button_take_photo">
+ <property name="visible">True</property>
+ <property name="receives_default">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="image">image_take_photo</property>
+ <property name="tooltip-text" translatable="yes">Take photo</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="button_return_photo">
+ <property name="visible">True</property>
+ <property name="receives_default">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="image">image_return_photo</property>
+ <property name="tooltip-text" translatable="yes">Return</property>
+ </object>
+ </child>
</object>
<packing>
<property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">4</property>
+ <property name="fill">False</property>
</packing>
</child>
+
+ <!-- 3rd state: select photo area or return -->
+ <child>
+ <object class="GtkBox" id="button_box_edit">
+ <style>
+ <class name="linked"/>
+ </style>
+ <child>
+ <object class="GtkButton" id="button_set_avatar">
+ <property name="visible">True</property>
+ <property name="receives_default">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="image">image_select_area</property>
+ <property name="tooltip-text" translatable="yes">Set selection as image</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="button_return_edit">
+ <property name="visible">True</property>
+ <property name="receives_default">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="image">image_return_edit</property>
+ <property name="tooltip-text" translatable="yes">Return</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
</object>
<packing>
<property name="expand">False</property>