diff options
author | Youcef Nafa <youcef@gmail.com> | 2022-08-02 02:07:19 +0300 |
---|---|---|
committer | Youcef Nafa <youcef@gmail.com> | 2022-08-02 02:07:19 +0300 |
commit | 9d562002b4b940c5219457b80ce73875ae9c2475 (patch) | |
tree | 965c38ac49b4c52af6df3627bcfb9645108334db /src | |
parent | 99da7649bfd9caef2d06c760dd0ddd6cef57ab77 (diff) |
add modified date to ftp file list
Diffstat (limited to 'src')
-rw-r--r-- | src/remmina_ftp_client.c | 31 | ||||
-rw-r--r-- | src/remmina_ftp_client.h | 1 | ||||
-rw-r--r-- | src/remmina_sftp_client.c | 3 |
3 files changed, 33 insertions, 2 deletions
diff --git a/src/remmina_ftp_client.c b/src/remmina_ftp_client.c index d0f1a3469..80ed95fc3 100644 --- a/src/remmina_ftp_client.c +++ b/src/remmina_ftp_client.c @@ -282,6 +282,25 @@ static void remmina_ftp_client_cell_data_permission(GtkTreeViewColumn *col, GtkC g_object_set(renderer, "text", buf, NULL); } +static void remmina_ftp_client_cell_data_modified(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, + GtkTreeIter *iter, gpointer user_data) +{ + TRACE_CALL(__func__); + gint32 modified = 0; + GDateTime *datetime; + gchar* str; + + gtk_tree_model_get(model, iter, REMMINA_FTP_FILE_COLUMN_MODIFIED, &modified, -1); + + datetime = g_date_time_new_from_unix_local(modified); + str = g_date_time_format(datetime, "\%Y-\%m-\%d \%H:\%M:\%S"); + + g_object_set(renderer, "text", str, NULL); + + g_date_time_unref(datetime); + g_free(str); +} + static void remmina_ftp_client_cell_data_size_progress(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { @@ -946,10 +965,18 @@ static void remmina_ftp_client_init(RemminaFTPClient *client) gtk_tree_view_column_set_sort_column_id(column, REMMINA_FTP_FILE_COLUMN_PERMISSION); gtk_tree_view_append_column(GTK_TREE_VIEW(priv->file_list_view), column); + renderer = gtk_cell_renderer_text_new(); + column = gtk_tree_view_column_new_with_attributes(_("Modified"), renderer, "text", REMMINA_FTP_FILE_COLUMN_MODIFIED, + NULL); + gtk_tree_view_column_set_resizable(column, TRUE); + gtk_tree_view_column_set_cell_data_func(column, renderer, remmina_ftp_client_cell_data_modified, NULL, NULL); + gtk_tree_view_column_set_sort_column_id(column, REMMINA_FTP_FILE_COLUMN_MODIFIED); + gtk_tree_view_append_column(GTK_TREE_VIEW(priv->file_list_view), column); + /* Remote File List - Model */ priv->file_list_model = GTK_TREE_MODEL( gtk_list_store_new(REMMINA_FTP_FILE_N_COLUMNS, G_TYPE_INT, G_TYPE_STRING, G_TYPE_FLOAT, G_TYPE_STRING, - G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING)); + G_TYPE_STRING, G_TYPE_INT, G_TYPE_INT, G_TYPE_STRING)); priv->file_list_filter = gtk_tree_model_filter_new(priv->file_list_model, NULL); gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(priv->file_list_filter), @@ -1099,6 +1126,7 @@ void remmina_ftp_client_add_file(RemminaFTPClient *client, ...) gint type; gchar *name; gchar *ptr; + gint32 modified; va_start(args, client); gtk_list_store_append(store, &iter); @@ -1108,6 +1136,7 @@ void remmina_ftp_client_add_file(RemminaFTPClient *client, ...) gtk_tree_model_get(GTK_TREE_MODEL(store), &iter, REMMINA_FTP_FILE_COLUMN_TYPE, &type, REMMINA_FTP_FILE_COLUMN_NAME, &name, + REMMINA_FTP_FILE_COLUMN_MODIFIED, &modified, -1); ptr = g_strdup_printf("%i%s", type, name); diff --git a/src/remmina_ftp_client.h b/src/remmina_ftp_client.h index e056d3b32..a52869c31 100644 --- a/src/remmina_ftp_client.h +++ b/src/remmina_ftp_client.h @@ -82,6 +82,7 @@ enum { REMMINA_FTP_FILE_COLUMN_USER, REMMINA_FTP_FILE_COLUMN_GROUP, REMMINA_FTP_FILE_COLUMN_PERMISSION, + REMMINA_FTP_FILE_COLUMN_MODIFIED, REMMINA_FTP_FILE_COLUMN_NAME_SORT, /* Auto populate */ REMMINA_FTP_FILE_N_COLUMNS }; diff --git a/src/remmina_sftp_client.c b/src/remmina_sftp_client.c index 4aac1b025..bb8555cbf 100644 --- a/src/remmina_sftp_client.c +++ b/src/remmina_sftp_client.c @@ -803,7 +803,7 @@ remmina_sftp_client_on_opendir(RemminaSFTPClient *client, gchar *dir, gpointer d if (g_strcmp0(sftpattr->name, ".") != 0 && g_strcmp0(sftpattr->name, "..") != 0) { GET_SFTPATTR_TYPE(sftpattr, type); - + tmp = remmina_ssh_convert(REMMINA_SSH(client->sftp), sftpattr->name); remmina_ftp_client_add_file(REMMINA_FTP_CLIENT(client), REMMINA_FTP_FILE_COLUMN_TYPE, type, @@ -812,6 +812,7 @@ remmina_sftp_client_on_opendir(RemminaSFTPClient *client, gchar *dir, gpointer d REMMINA_FTP_FILE_COLUMN_USER, sftpattr->owner, REMMINA_FTP_FILE_COLUMN_GROUP, sftpattr->group, REMMINA_FTP_FILE_COLUMN_PERMISSION, sftpattr->permissions, + REMMINA_FTP_FILE_COLUMN_MODIFIED, sftpattr->mtime, -1); g_free(tmp); } |