[gnome-commander] Renamed gnome-cmd-file-info class to gnome-cmd-file-base



commit d18ebb4948366897bc9b475813c3dd2ab1099770
Author: Uwe Scholz <u scholz83 gmx de>
Date:   Fri Jan 1 18:20:08 2021 +0100

    Renamed gnome-cmd-file-info class to gnome-cmd-file-base

 libgcmd/Makefile.am                                |  2 +-
 ...ome-cmd-file-info.cc => gnome-cmd-file-base.cc} | 22 ++++----
 libgcmd/gnome-cmd-file-base.h                      | 58 ++++++++++++++++++++++
 libgcmd/gnome-cmd-file-info.h                      | 54 --------------------
 libgcmd/libgcmd.h                                  |  2 +-
 plugins/fileroller/file-roller-plugin.cc           | 26 +++++-----
 src/gnome-cmd-file.cc                              |  8 +--
 src/gnome-cmd-file.h                               |  4 +-
 8 files changed, 89 insertions(+), 87 deletions(-)
---
diff --git a/libgcmd/Makefile.am b/libgcmd/Makefile.am
index 6f0b2dbc..c6cc47f3 100644
--- a/libgcmd/Makefile.am
+++ b/libgcmd/Makefile.am
@@ -13,7 +13,7 @@ pkglib_LTLIBRARIES = libgcmd.la
 
 libgcmd_la_SOURCES = \
        gnome-cmd-plugin.h gnome-cmd-plugin.cc \
-       gnome-cmd-file-info.h gnome-cmd-file-info.cc \
+       gnome-cmd-file-base.h gnome-cmd-file-base.cc \
        gnome-cmd-dialog.h gnome-cmd-dialog.cc \
        gnome-cmd-string-dialog.h gnome-cmd-string-dialog.cc \
        gnome-cmd-state.h \
diff --git a/libgcmd/gnome-cmd-file-info.cc b/libgcmd/gnome-cmd-file-base.cc
similarity index 68%
rename from libgcmd/gnome-cmd-file-info.cc
rename to libgcmd/gnome-cmd-file-base.cc
index c04b711e..0df1f73c 100644
--- a/libgcmd/gnome-cmd-file-info.cc
+++ b/libgcmd/gnome-cmd-file-base.cc
@@ -1,5 +1,5 @@
-/** 
- * @file gnome-cmd-file-info.cc
+/**
+ * @file gnome-cmd-file-base.cc
  * @copyright (C) 2001-2006 Marcus Bjurman\n
  * @copyright (C) 2007-2012 Piotr Eljasiak\n
  * @copyright (C) 2013-2020 Uwe Scholz\n
@@ -22,36 +22,36 @@
 #include <config.h>
 
 #include "libgcmd-deps.h"
-#include "gnome-cmd-file-info.h"
+#include "gnome-cmd-file-base.h"
 
 using namespace std;
 
 
-G_DEFINE_TYPE (GnomeCmdFileInfo, gnome_cmd_file_info, G_TYPE_OBJECT)
+G_DEFINE_TYPE (GnomeCmdFileBase, gnome_cmd_file_base, G_TYPE_OBJECT)
 
 
-static void gnome_cmd_file_info_init (GnomeCmdFileInfo *self)
+static void gnome_cmd_file_base_init (GnomeCmdFileBase *self)
 {
 }
 
 
-static void gnome_cmd_file_info_finalize (GObject *object)
+static void gnome_cmd_file_base_finalize (GObject *object)
 {
-    GnomeCmdFileInfo *self = GNOME_CMD_FILE_INFO (object);
+    GnomeCmdFileBase *self = GNOME_CMD_FILE_BASE (object);
 
     gnome_vfs_file_info_unref (self->gnomeVfsFileInfo);
     if (self->uri)
         gnome_vfs_uri_unref (self->uri);
 
-    G_OBJECT_CLASS (gnome_cmd_file_info_parent_class)->finalize (object);
+    G_OBJECT_CLASS (gnome_cmd_file_base_parent_class)->finalize (object);
 }
 
 
-static void gnome_cmd_file_info_class_init (GnomeCmdFileInfoClass *klass)
+static void gnome_cmd_file_base_class_init (GnomeCmdFileBaseClass *klass)
 {
-    gnome_cmd_file_info_parent_class = (GObjectClass *) g_type_class_peek_parent (klass);
+    gnome_cmd_file_base_parent_class = (GObjectClass *) g_type_class_peek_parent (klass);
 
     GObjectClass *object_class = (GObjectClass *) klass;
 
-    object_class->finalize = gnome_cmd_file_info_finalize;
+    object_class->finalize = gnome_cmd_file_base_finalize;
 }
diff --git a/libgcmd/gnome-cmd-file-base.h b/libgcmd/gnome-cmd-file-base.h
new file mode 100644
index 00000000..2c905cbe
--- /dev/null
+++ b/libgcmd/gnome-cmd-file-base.h
@@ -0,0 +1,58 @@
+/**
+ * @file gnome-cmd-file-base.h
+ * @copyright (C) 2001-2006 Marcus Bjurman\n
+ * @copyright (C) 2007-2012 Piotr Eljasiak\n
+ * @copyright (C) 2013-2020 Uwe Scholz\n
+ *
+ * @copyright This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * @copyright This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * @copyright You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#pragma once
+
+#define GNOME_CMD_TYPE_FILE_BASE              (gnome_cmd_file_base_get_type ())
+#define GNOME_CMD_FILE_BASE(obj)              (G_TYPE_CHECK_INSTANCE_CAST((obj), GNOME_CMD_TYPE_FILE_BASE, 
GnomeCmdFileBase))
+#define GNOME_CMD_FILE_BASE_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST((klass), GNOME_CMD_TYPE_FILE_BASE, 
GnomeCmdFileBaseClass))
+#define GNOME_CMD_IS_FILE_BASE(obj)           (G_TYPE_CHECK_INSTANCE_TYPE((obj), GNOME_CMD_TYPE_FILE_BASE))
+#define GNOME_CMD_IS_FILE_BASE_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GNOME_CMD_TYPE_FILE_BASE))
+#define GNOME_CMD_FILE_BASE_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS((obj), GNOME_CMD_TYPE_FILE_BASE, 
GnomeCmdFileBaseClass))
+
+
+GType gnome_cmd_file_base_get_type ();
+
+
+struct GnomeCmdFileBase
+{
+    GObject parent;
+
+    GnomeVFSURI *uri;
+    GnomeVFSFileInfo *gnomeVfsFileInfo;
+    GFile *gFile;
+    GFileInfo *gFileInfo;
+
+    void setup(GnomeVFSURI *uri, GnomeVFSFileInfo *info, GFile *gFile, GFileInfo *gFileInfo);
+};
+
+struct GnomeCmdFileBaseClass
+{
+    GObjectClass parent_class;
+};
+
+inline void GnomeCmdFileBase::setup(GnomeVFSURI *uri_setup, GnomeVFSFileInfo *info_setup, GFile 
*gFile_setup, GFileInfo *gFileInfo_setup)
+{
+    this->gnomeVfsFileInfo = info_setup;
+    this->uri = uri_setup;
+    this->gFile = gFile_setup;
+    this->gFileInfo = gFileInfo_setup;
+}
diff --git a/libgcmd/libgcmd.h b/libgcmd/libgcmd.h
index 70b0d6a3..93bc4bda 100644
--- a/libgcmd/libgcmd.h
+++ b/libgcmd/libgcmd.h
@@ -26,7 +26,7 @@
 #include <libgcmd/libgcmd-widget-factory.h>
 #include <libgcmd/gnome-cmd-state.h>
 #include <libgcmd/gnome-cmd-plugin.h>
-#include <libgcmd/gnome-cmd-file-info.h>
+#include <libgcmd/gnome-cmd-file-base.h>
 #include <libgcmd/gnome-cmd-dialog.h>
 #include <libgcmd/gnome-cmd-string-dialog.h>
 #include <libgcmd/plugin-info.h>
diff --git a/plugins/fileroller/file-roller-plugin.cc b/plugins/fileroller/file-roller-plugin.cc
index b1d8dda1..0029d64a 100644
--- a/plugins/fileroller/file-roller-plugin.cc
+++ b/plugins/fileroller/file-roller-plugin.cc
@@ -183,11 +183,10 @@ struct _FileRollerPluginPrivate
 static GnomeCmdPluginClass *parent_class = NULL;
 
 
-static void on_extract_cwd (GtkMenuItem *item, GnomeVFSURI *uri)
+static void on_extract_cwd (GtkMenuItem *item, GFile *gFile)
 {
     gchar *target_arg, *archive_arg;
-    gchar *uri_str = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_PASSWORD);
-    gchar *local_path = gnome_vfs_get_local_path_from_uri (uri_str);
+    gchar *local_path = g_file_get_path(gFile);
     gchar *target_name = (gchar *) g_object_get_data (G_OBJECT (item), TARGET_NAME);
     gchar *target_dir = (gchar *) g_object_get_data (G_OBJECT (item), TARGET_DIR);
     gchar *cmd, *t;
@@ -219,7 +218,6 @@ static void on_extract_cwd (GtkMenuItem *item, GnomeVFSURI *uri)
     g_free (target_dir);
     g_free (archive_arg);
     g_free (local_path);
-    g_free (uri_str);
     g_free (cmd);
 }
 
@@ -236,7 +234,7 @@ inline void do_add_to_archive (const gchar *name, GnomeCmdState *state)
 
     for (files = state->active_dir_selected_files; files; files = files->next)
     {
-        GnomeVFSURI *uri = GNOME_CMD_FILE_INFO (files->data)->uri;
+        GnomeVFSURI *uri = GNOME_CMD_FILE_BASE (files->data)->uri;
         gchar *uri_str_file = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_PASSWORD);
         gchar *path = gnome_vfs_get_local_path_from_uri (uri_str_file);
         gchar *tmp = cmd;
@@ -397,7 +395,7 @@ static void on_add_to_archive (GtkMenuItem *item, FileRollerPlugin *plugin)
         gchar *file_prefix = g_locale_to_utf8 (s, -1, NULL, NULL, NULL);
 
         gchar *archive_name_tmp = g_strdup_printf("%s%s", file_prefix, plugin->priv->default_ext);
-        archive_name = new_string_with_replaced_keyword(archive_name_tmp, "$N", GNOME_CMD_FILE_INFO 
(files->data)->gnomeVfsFileInfo->name);
+        archive_name = new_string_with_replaced_keyword(archive_name_tmp, "$N", GNOME_CMD_FILE_BASE 
(files->data)->gnomeVfsFileInfo->name);
         gtk_entry_set_text (GTK_ENTRY (entry), archive_name);
         g_free(archive_name);
         g_free(archive_name_tmp);
@@ -471,10 +469,10 @@ static GList *create_popup_menu_items (GnomeCmdPlugin *plugin, GnomeCmdState *st
     GList *items = NULL;
     GtkWidget *item;
     gint num_files;
-    GList *gnomeCmdFileInfoGList;
+    GList *gnomeCmdFileBaseGList;
 
-    gnomeCmdFileInfoGList = state->active_dir_selected_files;
-    num_files = g_list_length (gnomeCmdFileInfoGList);
+    gnomeCmdFileBaseGList = state->active_dir_selected_files;
+    num_files = g_list_length (gnomeCmdFileBaseGList);
 
     if (num_files <= 0)
         return NULL;
@@ -489,14 +487,14 @@ static GList *create_popup_menu_items (GnomeCmdPlugin *plugin, GnomeCmdState *st
 
     if (num_files == 1)
     {
-        GnomeCmdFileInfo *gnomeComdFileInfo = GNOME_CMD_FILE_INFO (gnomeCmdFileInfoGList->data);
-        gchar *fname = g_strdup (gnomeComdFileInfo->gnomeVfsFileInfo->name);
+        GnomeCmdFileBase *gnomeCmdFileBase = GNOME_CMD_FILE_BASE (gnomeCmdFileBaseGList->data);
+        gchar *fname = g_strdup (gnomeCmdFileBase->gnomeVfsFileInfo->name);
         gint i;
 
         for (i=0; handled_extensions[i]; ++i)
             if (g_str_has_suffix (fname, handled_extensions[i]))
             {
-                item = create_menu_item (_("Extract in Current Directory"), TRUE, GTK_SIGNAL_FUNC 
(on_extract_cwd), gnomeComdFileInfo->uri);
+                item = create_menu_item (_("Extract in Current Directory"), TRUE, GTK_SIGNAL_FUNC 
(on_extract_cwd), gnomeCmdFileBase->gFile);
                 items = g_list_append (items, item);
 
                 fname[strlen(fname)-strlen(handled_extensions[i])] = '\0';
@@ -504,7 +502,7 @@ static GList *create_popup_menu_items (GnomeCmdPlugin *plugin, GnomeCmdState *st
                 gchar *text;
 
                 text = g_strdup_printf (_("Extract to ā€œ%sā€"), fname);
-                item = create_menu_item (text, TRUE, GTK_SIGNAL_FUNC (on_extract_cwd), 
gnomeComdFileInfo->uri);
+                item = create_menu_item (text, TRUE, GTK_SIGNAL_FUNC (on_extract_cwd), 
gnomeCmdFileBase->gFile);
                 g_object_set_data (G_OBJECT (item), TARGET_NAME, g_strdup (fname));
                 items = g_list_append (items, item);
                 g_free (text);
@@ -514,7 +512,7 @@ static GList *create_popup_menu_items (GnomeCmdPlugin *plugin, GnomeCmdState *st
                     gchar *path = gnome_vfs_unescape_string (gnome_vfs_uri_get_path 
(state->inactive_dir_uri), NULL);
 
                     text = g_strdup_printf (_("Extract to ā€œ%sā€"), path);
-                    item = create_menu_item (text, TRUE, GTK_SIGNAL_FUNC (on_extract_cwd), 
gnomeComdFileInfo->uri);
+                    item = create_menu_item (text, TRUE, GTK_SIGNAL_FUNC (on_extract_cwd), 
gnomeCmdFileBase->gFile);
                     g_object_set_data (G_OBJECT (item), TARGET_DIR, path);
                     items = g_list_append (items, item);
                     g_free (text);
diff --git a/src/gnome-cmd-file.cc b/src/gnome-cmd-file.cc
index ab30344a..321a700c 100644
--- a/src/gnome-cmd-file.cc
+++ b/src/gnome-cmd-file.cc
@@ -59,7 +59,7 @@ struct GnomeCmdFile::Private
 };
 
 
-G_DEFINE_TYPE (GnomeCmdFile, gnome_cmd_file, GNOME_CMD_TYPE_FILE_INFO)
+G_DEFINE_TYPE (GnomeCmdFile, gnome_cmd_file, GNOME_CMD_TYPE_FILE_BASE)
 
 
 inline gboolean has_parent_dir (GnomeCmdFile *f)
@@ -236,7 +236,7 @@ void gnome_cmd_file_setup (GnomeCmdFile *gnomeCmdFile, GnomeVFSFileInfo *info, G
     g_return_if_fail (gnomeCmdFile != nullptr);
 
     gnomeCmdFile->info = info;
-    GNOME_CMD_FILE_INFO (gnomeCmdFile)->gnomeVfsFileInfo = info;
+    GNOME_CMD_FILE_BASE (gnomeCmdFile)->gnomeVfsFileInfo = info;
 
     gnomeCmdFile->is_dotdot = info->type==GNOME_VFS_FILE_TYPE_DIRECTORY && strcmp(info->name, "..")==0;    
// check if file is '..'
 
@@ -259,8 +259,8 @@ void gnome_cmd_file_setup (GnomeCmdFile *gnomeCmdFile, GnomeVFSFileInfo *info, G
         gnomeCmdFile->priv->dir_handle = gnome_cmd_dir_get_handle (dir);
         handle_ref (gnomeCmdFile->priv->dir_handle);
 
-        GNOME_CMD_FILE_INFO (gnomeCmdFile)->uri = gnome_cmd_dir_get_child_uri (dir, 
gnomeCmdFile->info->name);
-        gnome_vfs_uri_ref (GNOME_CMD_FILE_INFO (gnomeCmdFile)->uri);
+        GNOME_CMD_FILE_BASE (gnomeCmdFile)->uri = gnome_cmd_dir_get_child_uri (dir, 
gnomeCmdFile->info->name);
+        gnome_vfs_uri_ref (GNOME_CMD_FILE_BASE (gnomeCmdFile)->uri);
     }
 
     gnome_vfs_file_info_ref (gnomeCmdFile->info);
diff --git a/src/gnome-cmd-file.h b/src/gnome-cmd-file.h
index f6c092b8..6a717448 100644
--- a/src/gnome-cmd-file.h
+++ b/src/gnome-cmd-file.h
@@ -39,7 +39,7 @@ struct GnomeCmdDir;
 
 struct GnomeCmdFile
 {
-    GnomeCmdFileInfo parent;
+    GnomeCmdFileBase parent;
 
     class Private;
 
@@ -115,7 +115,7 @@ struct GnomeCmdFile
 
 struct GnomeCmdFileClass
 {
-    GnomeCmdFileInfoClass parent_class;
+    GnomeCmdFileBaseClass parent_class;
 };
 
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]