summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyuan Choi <ryuan.choi@gmail.com>2014-10-06 08:08:24 +0900
committerRyuan Choi <ryuan.choi@gmail.com>2014-10-06 08:08:24 +0900
commitecdacf03537f210f17c3c572e13f20023f32992f (patch)
tree9c4f86c293472f4d6edf0838eaa283031d43d401
parent9a6dce7f68631f925c949d299ba2131c31e91ee0 (diff)
downloadelementary-ecdacf03537f210f17c3c572e13f20023f32992f.tar.gz
Introduce current_name_{set|get}
Summary: When fileselector is opened, it would be nice to be able to provide initial filename. Like "Untitled Document" in Gedit, when save for the first time. More details in Gedit, Gedit provies default name, "Untitled Document" and does not change default name while navigating directories. Once we selected any file, Gedit changes value of name entry to selected filename and it is not also changed while navigating directories. @feature Reviewers: seoz, yakov-g Reviewed By: yakov-g Subscribers: seoz Maniphest Tasks: T1664 Differential Revision: https://phab.enlightenment.org/D1504
-rw-r--r--src/bin/test_fileselector.c3
-rw-r--r--src/lib/elc_fileselector.c46
-rw-r--r--src/lib/elc_fileselector_legacy.h3
-rw-r--r--src/lib/elm_fileselector.eo1
-rw-r--r--src/lib/elm_interface_fileselector.eo11
5 files changed, 55 insertions, 9 deletions
diff --git a/src/bin/test_fileselector.c b/src/bin/test_fileselector.c
index b32cd87bd..18dcae602 100644
--- a/src/bin/test_fileselector.c
+++ b/src/bin/test_fileselector.c
@@ -550,6 +550,9 @@ test_fileselector(void *data EINA_UNUSED,
/* start the fileselector in the home dir */
elm_fileselector_path_set(fs, getenv("HOME"));
+ /* provides suggested name (just for showing) */
+ elm_fileselector_current_name_set(fs, "No name");
+
/* add filesters */
elm_fileselector_mime_types_filter_append(fs, "text/*", "Text Files");
elm_fileselector_mime_types_filter_append(fs, "image/*", "Image Files");
diff --git a/src/lib/elc_fileselector.c b/src/lib/elc_fileselector.c
index 7a83cd177..9ca256314 100644
--- a/src/lib/elc_fileselector.c
+++ b/src/lib/elc_fileselector.c
@@ -553,7 +553,6 @@ _signal_first(Listing_Request *lreq)
elm_gengrid_clear(lreq->sd->files_view);
eina_stringshare_replace(&lreq->sd->path, lreq->path);
_anchors_do(lreq->obj, lreq->path);
- elm_object_text_set(lreq->sd->name_entry, "");
}
lreq->first = EINA_FALSE;
@@ -690,6 +689,11 @@ _populate(Evas_Object *obj,
_ls_done_cb, _ls_error_cb, lreq);
elm_progressbar_pulse(sd->spinner, EINA_TRUE);
elm_layout_signal_emit(lreq->obj, "elm,action,spinner,show", "elm");
+
+ // Clear name entry not in case of save mode.
+ if (elm_object_disabled_get(sd->name_entry))
+ elm_object_text_set(sd->name_entry, "");
+
}
static void
@@ -874,15 +878,10 @@ _on_item_selected(void *data,
evas_object_smart_callback_call(data, SIG_SELECTED, (void *)path);
}
- else
+ else if (sd->multi && is_dir && sd->double_tap_navigation)
{
- if (sd->multi && is_dir && sd->double_tap_navigation)
- {
- _clear_selections(sd, it);
- sd->dir_selected = EINA_TRUE;
- }
-
- elm_object_text_set(sd->name_entry, "");
+ _clear_selections(sd, it);
+ sd->dir_selected = EINA_TRUE;
}
/* We need to populate, if path is directory and:
@@ -1946,6 +1945,35 @@ _elm_fileselector_elm_interface_fileselector_selected_paths_get(Eo *obj EINA_UNU
return NULL;
}
+EAPI const char *
+elm_fileselector_current_name_get(const Evas_Object *obj)
+{
+ ELM_FILESELECTOR_INTERFACE_CHECK(obj, NULL);
+ const char *ret = NULL;
+ eo_do((Eo *) obj, ret = elm_interface_fileselector_current_name_get());
+ return ret;
+}
+
+EOLIAN static const char *
+_elm_fileselector_elm_interface_fileselector_current_name_get(Eo *obj EINA_UNUSED, Elm_Fileselector_Data *sd)
+{
+ return elm_object_text_get(sd->name_entry);
+}
+
+EAPI void
+elm_fileselector_current_name_set(Evas_Object *obj,
+ const char *name)
+{
+ ELM_FILESELECTOR_INTERFACE_CHECK(obj);
+ eo_do((Eo *) obj, elm_interface_fileselector_current_name_set(name));
+}
+
+EOLIAN static void
+_elm_fileselector_elm_interface_fileselector_current_name_set(Eo *obj EINA_UNUSED, Elm_Fileselector_Data *sd, const char *name)
+{
+ elm_object_text_set(sd->name_entry, name);
+}
+
static Elm_Fileselector_Filter *
_filter_add(Elm_Fileselector_Data *sd, const char *filter_name)
{
diff --git a/src/lib/elc_fileselector_legacy.h b/src/lib/elc_fileselector_legacy.h
index 9aa97d182..2c7fcd6a5 100644
--- a/src/lib/elc_fileselector_legacy.h
+++ b/src/lib/elc_fileselector_legacy.h
@@ -245,6 +245,9 @@ EAPI Eina_Bool elm_fileselector_selected_set(Evas_Object *obj, const
*/
EAPI const char *elm_fileselector_selected_get(const Evas_Object *obj);
+EAPI void elm_fileselector_current_name_set(Evas_Object *obj, const char *name);
+EAPI const char *elm_fileselector_current_name_get(const Evas_Object *obj);
+
/**
* Get a list of selected paths in the file selector.
*
diff --git a/src/lib/elm_fileselector.eo b/src/lib/elm_fileselector.eo
index 9b85ae434..ea68eb226 100644
--- a/src/lib/elm_fileselector.eo
+++ b/src/lib/elm_fileselector.eo
@@ -62,6 +62,7 @@ class Elm_Fileselector (Elm_Layout, Elm_Interface_Fileselector,
Elm_Interface_Fileselector.multi_select;
Elm_Interface_Fileselector.folder_only;
Elm_Interface_Fileselector.mode;
+ Elm_Interface_Fileselector.current_name;
Elm_Interface_Atspi_Widget_Action.elm_actions.get;
}
events {
diff --git a/src/lib/elm_interface_fileselector.eo b/src/lib/elm_interface_fileselector.eo
index 401e33e05..c239cf6ba 100644
--- a/src/lib/elm_interface_fileselector.eo
+++ b/src/lib/elm_interface_fileselector.eo
@@ -123,6 +123,17 @@ interface Elm_Interface_Fileselector ()
const(list)* ret;
}
}
+ current_name {
+ set {
+ /*@ Set, */
+ }
+ get {
+ /*@ Get */
+ }
+ values {
+ const(char)* name;
+ }
+ }
}
methods {
custom_filter_append {