Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FreeRDP/Remmina.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorYoucef Nafa <youcef@gmail.com>2022-08-02 02:07:19 +0300
committerYoucef Nafa <youcef@gmail.com>2022-08-02 02:07:19 +0300
commit9d562002b4b940c5219457b80ce73875ae9c2475 (patch)
tree965c38ac49b4c52af6df3627bcfb9645108334db /src
parent99da7649bfd9caef2d06c760dd0ddd6cef57ab77 (diff)
add modified date to ftp file list
Diffstat (limited to 'src')
-rw-r--r--src/remmina_ftp_client.c31
-rw-r--r--src/remmina_ftp_client.h1
-rw-r--r--src/remmina_sftp_client.c3
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);
}