Fix some stuff, including sort when data is dragged in
This commit is contained in:
parent
5ade76e2f8
commit
309efa4298
@ -54,6 +54,8 @@ ecdb_custom_filelist_dnd_dropped_cb(Ewl_Widget *w, void *ev,
|
|||||||
/* Cheap and dirty hax */
|
/* Cheap and dirty hax */
|
||||||
/* XXX FIXME XXX */
|
/* XXX FIXME XXX */
|
||||||
path = strdup(&files[i][7]);
|
path = strdup(&files[i][7]);
|
||||||
|
if (!ecore_file_exists(path))
|
||||||
|
break;
|
||||||
child = ecdb_source_new();
|
child = ecdb_source_new();
|
||||||
ecdb_source_data_set(child, path);
|
ecdb_source_data_set(child, path);
|
||||||
ecdb_source_child_append(parent, child);
|
ecdb_source_child_append(parent, child);
|
||||||
@ -61,6 +63,12 @@ ecdb_custom_filelist_dnd_dropped_cb(Ewl_Widget *w, void *ev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
ecdb_custom_filelist_directory_set(EWL_FILELIST(w), parent);
|
ecdb_custom_filelist_directory_set(EWL_FILELIST(w), parent);
|
||||||
|
|
||||||
|
/* And filter it here -- a bit of a hack */
|
||||||
|
ewl_filelist_model_data_sort(ewl_mvc_data_get
|
||||||
|
(EWL_MVC(EWL_FILELIST(w)->controller)),
|
||||||
|
0, EWL_SORT_DIRECTION_ASCENDING);
|
||||||
|
ewl_mvc_dirty_set(EWL_MVC(EWL_FILELIST(w)->controller), TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -76,7 +84,6 @@ ecdb_custom_filelist_directory_set(Ewl_Filelist *fl, Ecdb_Source *src)
|
|||||||
|
|
||||||
data = ecdb_custom_filelist_directory_new(src);
|
data = ecdb_custom_filelist_directory_new(src);
|
||||||
ewl_mvc_data_set(EWL_MVC(fl->controller), data);
|
ewl_mvc_data_set(EWL_MVC(fl->controller), data);
|
||||||
ewl_mvc_dirty_set(EWL_MVC(fl->controller), TRUE);
|
|
||||||
ev_data.response = EWL_FILELIST_EVENT_DIR_CHANGE;
|
ev_data.response = EWL_FILELIST_EVENT_DIR_CHANGE;
|
||||||
ewl_callback_call_with_event_data(EWL_WIDGET(fl),
|
ewl_callback_call_with_event_data(EWL_WIDGET(fl),
|
||||||
EWL_CALLBACK_VALUE_CHANGED, &ev_data);
|
EWL_CALLBACK_VALUE_CHANGED, &ev_data);
|
||||||
@ -109,11 +116,6 @@ ecdb_custom_filelist_directory_new(Ecdb_Source *parent)
|
|||||||
|
|
||||||
while ((src = parent->children[i]))
|
while ((src = parent->children[i]))
|
||||||
{
|
{
|
||||||
if (!ecore_file_exists(src->dst))
|
|
||||||
{
|
|
||||||
printf("File doesn't exist: %s\n", src->dst);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
file = calloc(1, sizeof(Ewl_Filelist_File));
|
file = calloc(1, sizeof(Ewl_Filelist_File));
|
||||||
file->name = ecore_string_instance(src->dst);
|
file->name = ecore_string_instance(src->dst);
|
||||||
|
|
||||||
|
@ -234,23 +234,22 @@ static void
|
|||||||
_filter_change_cb(Ewl_Widget *w, void *ev, void *data)
|
_filter_change_cb(Ewl_Widget *w, void *ev, void *data)
|
||||||
{
|
{
|
||||||
char *filter;
|
char *filter;
|
||||||
Ewl_Filelist_Filter *f;
|
Ewl_Filelist_Filter *old, *new;
|
||||||
|
|
||||||
/* Fix this is ewl at some point */
|
|
||||||
f = ewl_filelist_filter_get(EWL_FILELIST(data));
|
|
||||||
if (f)
|
|
||||||
{
|
|
||||||
FREE(f->extension);
|
|
||||||
FREE(f);
|
|
||||||
}
|
|
||||||
|
|
||||||
filter = ewl_text_text_get(EWL_TEXT(w));
|
filter = ewl_text_text_get(EWL_TEXT(w));
|
||||||
f = calloc(1, sizeof(Ewl_Filelist_Filter));
|
new = calloc(1, sizeof(Ewl_Filelist_Filter));
|
||||||
if (!f)
|
if (!new)
|
||||||
return;
|
return;
|
||||||
|
new->extension = filter;
|
||||||
|
|
||||||
f->mime_list = NULL;
|
/* Fix this is ewl at some point */
|
||||||
f->extension = filter;
|
old = ewl_filelist_filter_get(EWL_FILELIST(data));
|
||||||
ewl_filelist_filter_set(EWL_FILELIST(data), f);
|
if (old)
|
||||||
|
{
|
||||||
|
FREE(old->extension);
|
||||||
|
FREE(old);
|
||||||
|
}
|
||||||
|
|
||||||
|
ewl_filelist_filter_set(EWL_FILELIST(data), new);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user