|
|
@@ -31,7 +31,7 @@ struct _OupisWindow
|
|
|
GtkScrolledWindow *scrolledwindow;
|
|
|
GtkListView *listview;
|
|
|
GtkSingleSelection *singleselection;
|
|
|
- GtkDirectoryList *directorylist;
|
|
|
+ GListStore *liststore;
|
|
|
};
|
|
|
|
|
|
G_DEFINE_FINAL_TYPE (OupisWindow, oupis_window, ADW_TYPE_APPLICATION_WINDOW)
|
|
|
@@ -46,17 +46,26 @@ str_to_lc_ascii (const gchar* string)
|
|
|
|
|
|
static void
|
|
|
oupis_window__search_request (GtkSearchEntry *self,
|
|
|
- gpointer userdata)
|
|
|
+ OupisWindow *window)
|
|
|
{
|
|
|
- const char* request;
|
|
|
- char* request_lc_ascii;
|
|
|
- GFile * directory;
|
|
|
- GFileEnumerator * direnum;
|
|
|
- GError *error = NULL;
|
|
|
- GFileInfo *info;
|
|
|
- const gchar *infoname;
|
|
|
- gchar *infoname_lc_ascii;
|
|
|
-
|
|
|
+ const char* request;
|
|
|
+ char* request_lc_ascii;
|
|
|
+ GFile *directory;
|
|
|
+ GFileEnumerator *direnum;
|
|
|
+ GError *error = NULL;
|
|
|
+ GFileInfo *info;
|
|
|
+ GFile *file;
|
|
|
+ const gchar * infoname;
|
|
|
+ gchar * infoname_lc_ascii;
|
|
|
+
|
|
|
+ gchar * procdir = "/home/vetetix/Code/Gendarmerie/Oupis/procedures";
|
|
|
+ gchar *proctype[] = { "Administratif",
|
|
|
+ "Judiciaire",
|
|
|
+ "Courriers",
|
|
|
+ "MainCourante",
|
|
|
+ "Militaire"};
|
|
|
+
|
|
|
+ g_list_store_remove_all (window->liststore);
|
|
|
|
|
|
request = gtk_editable_get_text (GTK_EDITABLE (self));
|
|
|
g_print ("Request: %s\n", request);
|
|
|
@@ -64,7 +73,6 @@ oupis_window__search_request (GtkSearchEntry *self,
|
|
|
g_print (" R_l_a: %s\n", request_lc_ascii);
|
|
|
|
|
|
directory = g_file_new_for_path (".");
|
|
|
-
|
|
|
direnum = g_file_enumerate_children (directory,
|
|
|
"standard::name,standard::display-name",
|
|
|
G_FILE_QUERY_INFO_NONE,
|
|
|
@@ -74,7 +82,7 @@ oupis_window__search_request (GtkSearchEntry *self,
|
|
|
|
|
|
while (TRUE)
|
|
|
{
|
|
|
- if (!g_file_enumerator_iterate (direnum, &info, NULL, NULL, &error))
|
|
|
+ if (!g_file_enumerator_iterate (direnum, &info, &file, NULL, &error))
|
|
|
goto out;
|
|
|
if (!info)
|
|
|
break;
|
|
|
@@ -83,6 +91,7 @@ oupis_window__search_request (GtkSearchEntry *self,
|
|
|
|
|
|
if (g_strrstr (infoname_lc_ascii, request_lc_ascii)) {
|
|
|
g_print ("%s\n", infoname);
|
|
|
+ g_list_store_insert (window->liststore, 0, file);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
@@ -99,14 +108,14 @@ oupis_window__search_request (GtkSearchEntry *self,
|
|
|
}
|
|
|
|
|
|
static void
|
|
|
-listview_activate (GtkListView *listview, int position, gpointer user_data) {
|
|
|
- GFile *file;
|
|
|
+listview_activate (GtkListView *listview, int position, OupisWindow *window) {
|
|
|
GError *error = NULL;
|
|
|
- GFileInfo *info = G_FILE_INFO (g_list_model_get_item (G_LIST_MODEL (gtk_list_view_get_model (listview)), position));
|
|
|
+ GFile *file = G_FILE (g_list_model_get_item (G_LIST_MODEL (gtk_list_view_get_model (listview)), position));;
|
|
|
+ //GFileInfo *info = G_FILE_INFO (g_list_model_get_item (G_LIST_MODEL (gtk_list_view_get_model (listview)), position));
|
|
|
|
|
|
- g_print ("%s\n", g_file_info_get_name (info));
|
|
|
+ g_print ("%s\n", g_file_get_basename (file));
|
|
|
|
|
|
- file = G_FILE (g_file_info_get_attribute_object (info, "standard::file"));
|
|
|
+ //file = G_FILE (g_file_info_get_attribute_object (info, "standard::file"));
|
|
|
|
|
|
//TODO rendre cet appel async et gérer les éventuelles erreurs
|
|
|
g_app_info_launch_default_for_uri (g_file_get_uri (file), NULL, &error);
|
|
|
@@ -115,22 +124,23 @@ listview_activate (GtkListView *listview, int position, gpointer user_data) {
|
|
|
g_print ("%s\n", error->message);
|
|
|
}
|
|
|
|
|
|
- g_object_unref (info);
|
|
|
+ g_object_unref (file);
|
|
|
}
|
|
|
|
|
|
|
|
|
static GIcon *
|
|
|
-get_icon (GtkListItem *item, GFileInfo *info) {
|
|
|
+get_icon (GtkListItem *item, GFile *file) {
|
|
|
GIcon *icon;
|
|
|
/* g_file_info_get_icon can return NULL */
|
|
|
+ //TODO corriger ou supprimer
|
|
|
icon = G_IS_FILE_INFO (info) ? g_file_info_get_icon (info) : NULL;
|
|
|
return icon ? g_object_ref (icon) : NULL;
|
|
|
}
|
|
|
|
|
|
|
|
|
static char *
|
|
|
-get_file_name (GtkListItem *item, GFileInfo *info) {
|
|
|
- return G_IS_FILE_INFO (info) ? g_strdup (g_file_info_get_name (info)) : NULL;
|
|
|
+get_file_name (GtkListItem *item, GFile *file) {
|
|
|
+ return G_IS_FILE (file) ? g_strdup (g_file_get_basename (file)) : NULL;
|
|
|
}
|
|
|
|
|
|
static void
|
|
|
@@ -143,7 +153,7 @@ oupis_window_class_init (OupisWindowClass *klass)
|
|
|
gtk_widget_class_bind_template_child (widget_class, OupisWindow, scrolledwindow);
|
|
|
gtk_widget_class_bind_template_child (widget_class, OupisWindow, listview);
|
|
|
gtk_widget_class_bind_template_child (widget_class, OupisWindow, singleselection);
|
|
|
- gtk_widget_class_bind_template_child (widget_class, OupisWindow, directorylist);
|
|
|
+ gtk_widget_class_bind_template_child (widget_class, OupisWindow, liststore);
|
|
|
|
|
|
gtk_widget_class_bind_template_callback (widget_class, oupis_window__search_request);
|
|
|
gtk_widget_class_bind_template_callback (widget_class, listview_activate);
|
|
|
@@ -160,6 +170,6 @@ oupis_window_init (OupisWindow *self)
|
|
|
gtk_widget_init_template (GTK_WIDGET (self) );
|
|
|
|
|
|
file = g_file_new_for_path (".");
|
|
|
- gtk_directory_list_set_file (GTK_DIRECTORY_LIST (self->directorylist), file);
|
|
|
+ //gtk_directory_list_set_file (GTK_DIRECTORY_LIST (self->directorylist), file);
|
|
|
g_object_unref (file);
|
|
|
}
|