Preferences dialog. Users can change the slideshow parameters, and tell ephoto to start from the last remembered dir, if it was started with no arguments

SVN revision: 52464
This commit is contained in:
Viktor Kojouharov 2010-09-19 15:30:36 +00:00
parent 574483bb47
commit ca05627df0
11 changed files with 269 additions and 88 deletions

View File

@ -192,18 +192,18 @@ AC_ARG_ENABLE([libexif],
AC_MSG_CHECKING([whether ethumb is built])
AC_MSG_RESULT([${_ephoto_enable_libexif}])
have_libexif="no"
have_libexif="No"
if test "x${_ephoto_enable_libexif}" = "xyes" ; then
PKG_CHECK_MODULES(EXIF, libexif, [
have_libexif="yes"
have_libexif="Yes"
AC_DEFINE(HAVE_LIBEXIF, 1, [have libexif support])
],[
have_libexif="no"
have_libexif="No"
])
fi
AM_CONDITIONAL(BUILD_LIBEXIF, test $have_libexif = yes)
AM_CONDITIONAL(BUILD_LIBEXIF, test $have_libexif = Yes)
AC_OUTPUT([
Makefile

BIN
data/images/preferences.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@ -9,6 +9,7 @@ ephoto_SOURCES = \
ephoto.c \
ephoto.h \
ephoto_config.c \
ephoto_preferences.c \
ephoto_flow_browser.c \
ephoto_main.c \
ephoto_slideshow.c \

View File

@ -54,17 +54,23 @@ main(int argc, char **argv)
}
else if (ecore_file_is_dir(argv[1]))
{
ephoto_create_main_window(argv[1], NULL);
char *real;
real = ecore_file_realpath(argv[1]);
ephoto_create_main_window(real, NULL);
free(real);
}
else if (ecore_file_exists(argv[1]))
{
char *directory;
char *directory, *real;
const char *image;
image = eina_stringshare_add(argv[1]);
directory = ecore_file_dir_get(argv[1]);
ephoto_create_main_window(directory, image);
real = ecore_file_realpath(directory);
ephoto_create_main_window(real, image);
free(directory);
free(real);
}
else
{

View File

@ -37,6 +37,9 @@ Eina_Bool ephoto_config_init(Ephoto *em);
void ephoto_config_save(Ephoto *em, Eina_Bool instant);
void ephoto_config_free(Ephoto *em);
/* Preferences */
void ephoto_show_preferences(Ephoto *em);
/*Ephoto Flow Browser*/
Evas_Object *ephoto_create_flow_browser(Evas_Object *parent);
void ephoto_flow_browser_image_set(Evas_Object *obj, const char *current_image);
@ -52,7 +55,7 @@ void ephoto_hide_slideshow(void);
void ephoto_delete_slideshow(void);
/*Ephoto Thumb Browser*/
Evas_Object *ephoto_create_thumb_browser(Evas_Object *parent, const char *directory);
Evas_Object *ephoto_create_thumb_browser(Evas_Object *parent);
void ephoto_populate_thumbnails(Evas_Object *obj);
/* smart callbacks called:
* "selected" - an item in the thumb browser is selected. The selected file is passed as event_info argument.
@ -80,6 +83,12 @@ struct _Ephoto_Config
int config_version;
int thumb_size;
int remember_directory;
const char *directory;
double slideshow_timeout;
const char *slideshow_transition;
};
/*Ephoto Main Structure*/
@ -92,9 +101,9 @@ struct _Ephoto
Evas_Object *flow_browser;
Evas_Object *slideshow;
Evas_Object *thumb_browser;
Evas_Object *prefs_win;
Eina_List *images;
Ephoto_State state;
const char *cur_directory;
Ephoto_Config *config;

View File

@ -1,6 +1,6 @@
#include "ephoto.h"
#define CONFIG_VERSION 1
#define CONFIG_VERSION 2
static int _ephoto_config_load(Ephoto *em);
static Eina_Bool _ephoto_on_config_save(void *data);
@ -10,7 +10,7 @@ ephoto_config_init(Ephoto *em)
{
Eet_Data_Descriptor_Class eddc;
if (!eet_eina_file_data_descriptor_class_set(&eddc, sizeof (eddc), "Ephoto_Config", sizeof(Ephoto_Config)))
if (!eet_eina_stream_data_descriptor_class_set(&eddc, sizeof (eddc), "Ephoto_Config", sizeof(Ephoto_Config)))
{
ERR("Unable to create the config data descriptor!");
return EINA_FALSE;
@ -24,6 +24,10 @@ ephoto_config_init(Ephoto *em)
#define C_VAL(edd, type, member, dtype) EET_DATA_DESCRIPTOR_ADD_BASIC(edd, type, #member, member, dtype)
C_VAL(D, T, config_version, EET_T_INT);
C_VAL(D, T, thumb_size, EET_T_INT);
C_VAL(D, T, remember_directory, EET_T_INT);
C_VAL(D, T, directory, EET_T_STRING);
C_VAL(D, T, slideshow_timeout, EET_T_DOUBLE);
C_VAL(D, T, slideshow_transition, EET_T_STRING);
switch (_ephoto_config_load(em))
{
@ -31,8 +35,18 @@ ephoto_config_init(Ephoto *em)
/* Start a new config */
em->config->config_version = CONFIG_VERSION;
em->config->thumb_size = 256;
em->config->remember_directory = 1;
em->config->slideshow_timeout = 4.0;
em->config->slideshow_transition = "fade";
break;
case -1:
if (em->config->config_version < 2)
{
em->config->remember_directory = 1;
em->config->slideshow_timeout = 4.0;
em->config->slideshow_transition = "fade";
}
/* Incremental additions */
em->config->config_version = CONFIG_VERSION;
break;
@ -47,7 +61,10 @@ void
ephoto_config_save(Ephoto *em, Eina_Bool instant)
{
if (em->config_save)
{
ecore_timer_del(em->config_save);
em->config_save = NULL;
}
if (instant)
_ephoto_on_config_save(em);

View File

@ -304,7 +304,7 @@ _ephoto_go_back(void *data, Evas_Object *obj, void *event_info)
evas_object_smart_callback_call(ef->flow_browser, "delete,request", NULL);
/* elm_toolbar_item_unselect_all(ef->toolbar); */
/* em->thumb_browser = ephoto_create_thumb_browser(em->layout, ecore_file_dir_get(ef->cur_image)); */
/* em->thumb_browser = ephoto_create_thumb_browser(em->layout); */
/* elm_layout_content_set(em->layout, "ephoto.content.swallow", em->thumb_browser); */
}

View File

@ -7,23 +7,17 @@ Ephoto *em;
static void _ephoto_delete_main_window(void *data, Evas_Object *obj, void *event_info);
static void _ephoto_flow_browser_delete_cb(void *data, Evas_Object *obj, void *event_info);
static void _ephoto_thumb_browser_selected_cb(void *data, Evas_Object *obj, void *event_info);
static void _ephoto_thumb_browser_directory_changed_cb(void *data, Evas_Object *obj, void *event_info);
/* Objects Callbacks */
static void
_ephoto_flow_browser_delete_cb(void *data, Evas_Object *obj, void *event_info)
{
em->thumb_browser = ephoto_create_thumb_browser(em->layout, em->cur_directory);
em->thumb_browser = ephoto_create_thumb_browser(em->layout);
elm_layout_content_set(em->layout, "ephoto.content.swallow", em->thumb_browser);
evas_object_smart_callback_add(em->thumb_browser,
"selected",
_ephoto_thumb_browser_selected_cb,
NULL);
evas_object_smart_callback_add(em->thumb_browser,
"directory,changed",
_ephoto_thumb_browser_directory_changed_cb,
NULL);
em->state = EPHOTO_STATE_THUMB;
}
@ -42,19 +36,12 @@ _ephoto_thumb_browser_selected_cb(void *data, Evas_Object *obj, void *event_info
em->state = EPHOTO_STATE_FLOW;
}
static void
_ephoto_thumb_browser_directory_changed_cb(void *data, Evas_Object *obj, void *event_info)
{
const char *dir = event_info;
eina_stringshare_del(em->cur_directory);
em->cur_directory = eina_stringshare_add(dir);
}
/*Create the main ephoto window*/
void
ephoto_create_main_window(const char *directory, const char *image)
{
char current_directory[PATH_MAX];
em = calloc(1, sizeof(Ephoto));
if (!ephoto_config_init(em))
_ephoto_delete_main_window(NULL, NULL, NULL);
@ -89,11 +76,36 @@ ephoto_create_main_window(const char *directory, const char *image)
evas_object_show(em->layout);
/* Prepare the slideshow beforehand, in order
* to obtain the list of transitions */
ephoto_create_slideshow();
if (!directory)
{
getcwd(current_directory, PATH_MAX);
}
if (!em->config->directory)
{
if (directory)
em->config->directory = eina_stringshare_add(directory);
else
em->config->directory = eina_stringshare_add(current_directory);
}
else if (directory || !em->config->remember_directory)
{
if (directory)
eina_stringshare_replace(&em->config->directory,
directory);
else
eina_stringshare_replace(&em->config->directory,
current_directory);
}
if (image)
{
em->flow_browser = ephoto_create_flow_browser(em->layout);
ephoto_flow_browser_image_set(em->flow_browser, image);
em->cur_directory = eina_stringshare_add(ecore_file_dir_get(image));
eina_stringshare_del(image);
elm_layout_content_set(em->layout, "ephoto.content.swallow", em->flow_browser);
evas_object_smart_callback_add(em->flow_browser,
@ -104,18 +116,13 @@ ephoto_create_main_window(const char *directory, const char *image)
}
else
{
em->thumb_browser = ephoto_create_thumb_browser(em->layout, directory);
em->cur_directory = eina_stringshare_add(directory);
em->thumb_browser = ephoto_create_thumb_browser(em->layout);
evas_object_show(em->thumb_browser);
elm_layout_content_set(em->layout, "ephoto.content.swallow", em->thumb_browser);
evas_object_smart_callback_add(em->thumb_browser,
"selected",
_ephoto_thumb_browser_selected_cb,
NULL);
evas_object_smart_callback_add(em->thumb_browser,
"directory,changed",
_ephoto_thumb_browser_directory_changed_cb,
NULL);
em->state = EPHOTO_STATE_THUMB;
}

View File

@ -0,0 +1,153 @@
#include "ephoto.h"
static void _ephoto_preferences_pager_switch(void *data, Evas_Object *obj, void *event_info);
static void _ephoto_preferences_hide(void *data, Evas_Object *obj, void *event_info);
static void _ephoto_preferences_item_change(void *data, Evas_Object *obj, void *event_info);
static void _ephoto_preferences_slideshow_transition(void *data, Evas_Object *obj, void *event_info);
void
ephoto_show_preferences(Ephoto *em)
{
if (!em->prefs_win)
{
Evas_Object *o, *tb, *box, *pager, *pg1, *pg2, *pg3;
const Eina_List *transitions, *l;
const char *transition;
em->prefs_win = o = elm_win_inwin_add(em->win);
elm_object_style_set(o, "minimal");
box = elm_box_add(em->prefs_win);
evas_object_show(box);
evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_win_inwin_content_set(o, box);
tb = elm_toolbar_add(box);
elm_toolbar_homogenous_set(tb, EINA_FALSE);
evas_object_size_hint_align_set(tb, EVAS_HINT_FILL, 0.5);
elm_box_pack_end(box, tb);
evas_object_show(tb);
pager = elm_pager_add(box);
pg1 = elm_box_add(pager);
evas_object_size_hint_weight_set(pg1, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_show(pg1);
elm_pager_content_push(pager, pg1);
elm_toolbar_item_add(tb, NULL, "General", _ephoto_preferences_pager_switch, pg1);
o = elm_check_add(pg1);
elm_check_label_set(o, "Remember last used directory");
elm_check_state_set(o, em->config->remember_directory);
evas_object_data_set(o, "config", "remember_directory");
evas_object_smart_callback_add(o, "changed",
_ephoto_preferences_item_change, em);
elm_box_pack_end(pg1, o);
evas_object_show(o);
elm_box_pack_end(box, pager);
evas_object_show(pager);
pg2 = elm_table_add(pager);
evas_object_size_hint_weight_set(pg2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_show(pg2);
elm_pager_content_push(pager, pg2);
elm_toolbar_item_add(tb, NULL, "Slideshow", _ephoto_preferences_pager_switch, pg2);
o = elm_label_add(pg2);
elm_label_label_set(o, "Delay:");
evas_object_show(o);
elm_table_pack(pg2, o, 0, 0, 1, 1);
o = elm_spinner_add(pg2);
elm_spinner_label_format_set(o, "%1.1f seconds");
elm_spinner_step_set(o, 0.1);
elm_spinner_min_max_set(o, 1.0, 10.0);
elm_spinner_value_set(o, em->config->slideshow_timeout);
evas_object_data_set(o, "config", "slideshow_timeout");
evas_object_smart_callback_add(o, "delay,changed",
_ephoto_preferences_item_change, em);
evas_object_show(o);
elm_table_pack(pg2, o, 1, 0, 1, 1);
o = elm_label_add(pg2);
elm_label_label_set(o, "Transition:");
evas_object_show(o);
elm_table_pack(pg2, o, 0, 1, 1, 1);
/* XXX: The page cannot be the parent, since
* the items will be clipped to it */
o = elm_hoversel_add(em->win);
elm_hoversel_label_set(o, em->config->slideshow_transition);
transitions = elm_slideshow_transitions_get(em->slideshow);
EINA_LIST_FOREACH(transitions, l, transition)
{
elm_hoversel_item_add(o, transition, NULL, ELM_ICON_NONE, _ephoto_preferences_slideshow_transition, em);
}
evas_object_show(o);
elm_table_pack(pg2, o, 1, 1, 1, 1);
pg3 = elm_box_add(pager);
evas_object_size_hint_weight_set(pg3, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_show(pg3);
elm_pager_content_push(pager, pg3);
elm_toolbar_item_add(tb, NULL, "External Editor", _ephoto_preferences_pager_switch, pg3);
o = elm_button_add(box);
elm_button_label_set(o, "Close");
evas_object_size_hint_align_set(o, 1.0, 0.5);
evas_object_smart_callback_add(o, "clicked", _ephoto_preferences_hide, em);
elm_box_pack_end(box, o);
evas_object_show(o);
elm_toolbar_item_select_first(tb);
elm_pager_content_promote(pager, pg1);
}
elm_win_inwin_activate(em->prefs_win);
}
static void
_ephoto_preferences_pager_switch(void *data, Evas_Object *obj, void *event_info)
{
Evas_Object *o = data;
/* XXX: Useful function, but not currently exported as public */
Evas_Object *pager = elm_widget_parent_get(o);
elm_pager_content_promote(pager, o);
}
static void
_ephoto_preferences_item_change(void *data, Evas_Object *obj, void *event_info)
{
Ephoto *em = data;
const char *key = evas_object_data_get(obj, "config");
if (!strcmp(key, "remember_directory"))
em->config->remember_directory = elm_check_state_get(obj);
else if (!strcmp(key, "slideshow_timeout"))
em->config->slideshow_timeout = elm_spinner_value_get(obj);
ephoto_config_save(em, EINA_FALSE);
}
static void
_ephoto_preferences_slideshow_transition(void *data, Evas_Object *obj, void *event_info)
{
Ephoto *em = data;
Elm_Hoversel_Item *it = event_info;
const char *transition = elm_hoversel_item_label_get(it);
elm_hoversel_label_set(obj, transition);
em->config->slideshow_transition = transition;
ephoto_config_save(em, EINA_FALSE);
}
static void
_ephoto_preferences_hide(void *data, Evas_Object *obj, void *event_info)
{
Ephoto *em = data;
evas_object_hide(em->prefs_win);
}

View File

@ -14,7 +14,6 @@ ephoto_create_slideshow(void)
em->slideshow = elm_slideshow_add(em->win);
elm_slideshow_loop_set(em->slideshow, EINA_TRUE);
elm_slideshow_layout_set(em->slideshow, "fullscreen");
elm_slideshow_transition_set(em->slideshow, "fade");
evas_object_size_hint_weight_set(em->slideshow, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(em->slideshow, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_event_callback_add(em->slideshow, EVAS_CALLBACK_MOUSE_DOWN,
@ -29,7 +28,8 @@ ephoto_show_slideshow(int view, const char *current_image)
const char *image;
int x, y, w, h;
ephoto_create_slideshow();
elm_slideshow_transition_set(em->slideshow, em->config->slideshow_transition);
elm_slideshow_timeout_set(em->slideshow, em->config->slideshow_timeout);
return_view = view;
cur_image = current_image;
@ -48,14 +48,13 @@ ephoto_show_slideshow(int view, const char *current_image)
}
evas_object_show(em->slideshow);
elm_win_resize_object_add(em->win, em->slideshow);
elm_slideshow_timeout_set(em->slideshow, 4);
}
/*Hide the slideshow object*/
void
ephoto_hide_slideshow(void)
{
ephoto_delete_slideshow();
evas_object_hide(em->slideshow);
// FIXME
/*
if (return_view == 0)

View File

@ -20,7 +20,6 @@ struct _Ephoto_Thumb_Browser
Evas_Object *fsel_win;
Elm_Gengrid_Item_Class eg;
Ethumb_Client *ec;
const char *current_directory;
Eio_File *list;
};
@ -42,14 +41,14 @@ static void _ephoto_thumb_clicked(void *data, Evas_Object *obj, void *event_info
static void _ephoto_view_large(void *data, Evas_Object *obj, void *event_info);
static void _ephoto_change_directory(void *data, Evas_Object *obj, void *event_info);
static void _ephoto_view_slideshow(void *data, Evas_Object *obj, void *event_info);
static void _ephoto_preferences(void *data, Evas_Object *obj, void *event_info);
static void _ephoto_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
static void _ephoto_show_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
/*Create the thumbnail browser object*/
Evas_Object *
ephoto_create_thumb_browser(Evas_Object *parent, const char *directory)
ephoto_create_thumb_browser(Evas_Object *parent)
{
Evas_Object *o;
char buf[PATH_MAX];
Ephoto_Thumb_Browser *tb;
tb = calloc(1, sizeof(Ephoto_Thumb_Browser));
@ -67,16 +66,6 @@ ephoto_create_thumb_browser(Evas_Object *parent, const char *directory)
evas_object_size_hint_fill_set(tb->layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_show(tb->layout);
if (!directory)
{
getcwd(buf, PATH_MAX);
tb->current_directory = eina_stringshare_add(buf);
}
else
{
tb->current_directory = eina_stringshare_add(directory);
}
tb->thbox = elm_box_add(tb->layout);
elm_box_horizontal_set(tb->thbox, EINA_TRUE);
evas_object_size_hint_weight_set(tb->thbox, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
@ -84,7 +73,7 @@ ephoto_create_thumb_browser(Evas_Object *parent, const char *directory)
elm_layout_content_set(tb->layout, "ephoto.location.swallow", tb->thbox);
tb->dir_label = elm_label_add(tb->thbox);
elm_label_label_set(tb->dir_label, tb->current_directory);
elm_label_label_set(tb->dir_label, em->config->directory);
evas_object_size_hint_weight_set(tb->dir_label, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(tb->dir_label, 0.01, 0.5);
elm_box_pack_end(tb->thbox, tb->dir_label);
@ -139,6 +128,10 @@ ephoto_create_thumb_browser(Evas_Object *parent, const char *directory)
elm_icon_file_set(o, PACKAGE_DATA_DIR "/images/play_slideshow.png", NULL);
elm_toolbar_item_add(tb->toolbar, o, "Play Slideshow", _ephoto_view_slideshow, tb);
o = elm_icon_add(tb->toolbar);
elm_icon_file_set(o, PACKAGE_DATA_DIR "/images/preferences.png", NULL);
elm_toolbar_item_add(tb->toolbar, o, "Preferences", _ephoto_preferences, tb);
tb->eg.item_style = "ephoto";
tb->eg.func.label_get = _ephoto_get_label;
tb->eg.func.icon_get = _ephoto_get_icon;
@ -156,7 +149,10 @@ static void
_ephoto_show_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
Ephoto_Thumb_Browser *tb = evas_object_data_get(obj, "thumb_browser");
char *buffer;
int length;
/* Ephoto_Thumb_Browser *tb = evas_object_data_get(obj, "thumb_browser"); */
/* evas_object_show(tb->toolbar); */
/* evas_object_show(tb->thumb_browser); */
@ -164,18 +160,10 @@ _ephoto_show_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
/* evas_object_show(tb->thumb_slider); */
/* evas_object_show(tb->thbox); */
if (tb->current_directory)
{
char *buffer;
int length;
length = strlen(tb->current_directory) + strlen("Ephoto - ") + 1;
buffer = alloca(length);
snprintf(buffer, length, "Ephoto - %s", tb->current_directory);
elm_win_title_set(em->win, buffer);
} else {
elm_win_title_set(em->win, "Ephoto");
}
length = strlen(em->config->directory) + strlen("Ephoto - ") + 1;
buffer = alloca(length);
snprintf(buffer, length, "Ephoto - %s", em->config->directory);
elm_win_title_set(em->win, buffer);
}
/* Use ecore thread facility to avoid lock completly */
@ -243,12 +231,10 @@ ephoto_populate_thumbnails(Evas_Object *obj)
{
Ephoto_Thumb_Browser *tb = evas_object_data_get(obj, "thumb_browser");
if (!tb->current_directory) return ;
if (!efreet_mime_init())
fprintf(stderr, "Could not init efreet_mime!\n");
tb->list = eio_file_ls(tb->current_directory,
tb->list = eio_file_ls(em->config->directory,
_ephoto_populate_filter,
_ephoto_populate_main,
_ephoto_populate_end,
@ -399,8 +385,7 @@ _ephoto_thumb_clicked(void *data, Evas_Object *obj, void *event_info)
static void
_ephoto_fileselector_shown(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
Ephoto_Thumb_Browser *tb = data;
elm_fileselector_path_set(obj, tb->current_directory);
elm_fileselector_path_set(obj, em->config->directory);
evas_render(em->e);
}
@ -416,8 +401,11 @@ _ephoto_directory_chosen(void *data, Evas_Object *obj, void *event_info)
directory = elm_fileselector_selected_get(obj);
if ((directory) && (eina_stringshare_replace(&tb->current_directory, directory)))
if ((directory) && (eina_stringshare_replace(&em->config->directory, directory)))
{
char *buffer;
int length;
l = elm_gengrid_items_get(tb->thumb_browser);
EINA_LIST_FOREACH(l, iter, item)
{
@ -430,23 +418,15 @@ _ephoto_directory_chosen(void *data, Evas_Object *obj, void *event_info)
eina_list_free(em->images);
em->images = NULL;
ephoto_populate_thumbnails(tb->layout);
elm_label_label_set(tb->dir_label, tb->current_directory);
elm_label_label_set(tb->dir_label, em->config->directory);
if (tb->current_directory)
{
char *buffer;
int length;
length = strlen(tb->current_directory) + strlen("Ephoto - ") + 1;
buffer = alloca(length);
snprintf(buffer, length, "Ephoto - %s", tb->current_directory);
elm_win_title_set(em->win, buffer);
} else {
elm_win_title_set(em->win, "Ephoto");
}
length = strlen(em->config->directory) + strlen("Ephoto - ") + 1;
buffer = alloca(length);
snprintf(buffer, length, "Ephoto - %s", em->config->directory);
elm_win_title_set(em->win, buffer);
}
evas_object_smart_callback_call(tb->layout, "directory,changed", (char *)tb->current_directory);
evas_object_smart_callback_call(tb->layout, "directory,changed", (char *) em->config->directory);
evas_object_del(tb->fsel_win);
elm_toolbar_item_unselect_all(tb->toolbar);
@ -495,7 +475,7 @@ _ephoto_change_directory(void *data, Evas_Object *obj, void *event_info)
fsel = elm_fileselector_add(tb->fsel_win);
elm_fileselector_folder_only_set(fsel, EINA_TRUE);
elm_fileselector_buttons_ok_cancel_set(fsel, EINA_TRUE);
elm_fileselector_path_set(fsel, tb->current_directory);
elm_fileselector_path_set(fsel, em->config->directory);
evas_object_event_callback_add(fsel, EVAS_CALLBACK_SHOW,
_ephoto_fileselector_shown, tb);
evas_object_smart_callback_add(fsel, "done",
@ -519,6 +499,16 @@ _ephoto_view_slideshow(void *data, Evas_Object *obj, void *event_info)
elm_toolbar_item_unselect_all(tb->toolbar);
}
/* Show the preferences window */
static void
_ephoto_preferences(void *data, Evas_Object *obj, void *event_info)
{
Ephoto_Thumb_Browser *tb = data;
ephoto_show_preferences(em);
elm_toolbar_item_unselect_all(tb->toolbar);
}
/*Destroy the thumbnail browser object itself*/
static void
_ephoto_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
@ -536,6 +526,5 @@ _ephoto_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
eina_stringshare_del(etd->file);
free(etd);
}
eina_stringshare_del(tb->current_directory);
ethumb_client_disconnect(tb->ec);
}