[gnome-commander] GnomeCmdFile: more C++ rework



commit 051f791bdedfe139f097f9b0c56b4914e248b272
Author: Piotr Eljasiak <epiotr src gnome org>
Date:   Fri Nov 19 21:56:35 2010 +0100

    GnomeCmdFile: more C++ rework

 src/dialogs/gnome-cmd-advrename-dialog.cc |    6 ++--
 src/gnome-cmd-dir.h                       |    4 +-
 src/gnome-cmd-file-collection.cc          |    2 +-
 src/gnome-cmd-file-list.cc                |    5 +--
 src/gnome-cmd-file-props-dialog.cc        |    4 +-
 src/gnome-cmd-file.cc                     |   32 ++++++++++++----------------
 src/gnome-cmd-file.h                      |   16 ++++++++++++-
 src/gnome-cmd-make-copy-dialog.cc         |    4 +-
 src/gnome-cmd-rename-dialog.cc            |    9 +++----
 9 files changed, 44 insertions(+), 38 deletions(-)
---
diff --git a/src/dialogs/gnome-cmd-advrename-dialog.cc b/src/dialogs/gnome-cmd-advrename-dialog.cc
index e2c0243..7c63822 100644
--- a/src/dialogs/gnome-cmd-advrename-dialog.cc
+++ b/src/dialogs/gnome-cmd-advrename-dialog.cc
@@ -259,7 +259,7 @@ void GnomeCmdAdvrenameDialog::Private::on_files_view_popup_menu__remove (GtkWidg
         gtk_tree_model_get (model, &iter, COL_FILE, &f, -1);
         gtk_list_store_remove (GTK_LIST_STORE (model), &iter);
 
-        gnome_cmd_file_unref (f);
+        f->unref();
     }
 }
 
@@ -718,7 +718,7 @@ void GnomeCmdAdvrenameDialog::set(GList *file_list)
 
         gtk_list_store_append (GTK_LIST_STORE (files), &iter);
         gtk_list_store_set (GTK_LIST_STORE (files), &iter,
-                            COL_FILE, gnome_cmd_file_ref (f),
+                            COL_FILE, f->ref(),
                             COL_NAME, gnome_cmd_file_get_name (f),
                             COL_SIZE, f->get_size(),
                             COL_DATE, f->get_mdate(FALSE),
@@ -745,7 +745,7 @@ void GnomeCmdAdvrenameDialog::unset()
                             COL_FILE, &f,
                             -1);
 
-        gnome_cmd_file_unref (f);
+        f->unref();
     }
 
     g_signal_handlers_block_by_func (files, gpointer (Private::on_files_model_row_deleted), this);
diff --git a/src/gnome-cmd-dir.h b/src/gnome-cmd-dir.h
index d3db636..07844ce 100644
--- a/src/gnome-cmd-dir.h
+++ b/src/gnome-cmd-dir.h
@@ -112,13 +112,13 @@ inline GnomeCmdFile *gnome_cmd_dir_new_parent_dir_file (GnomeCmdDir *dir)
 inline void gnome_cmd_dir_ref (GnomeCmdDir *dir)
 {
     g_return_if_fail (GNOME_CMD_IS_DIR (dir));
-    gnome_cmd_file_ref (GNOME_CMD_FILE (dir));
+    GNOME_CMD_FILE (dir)->ref();
 }
 
 inline void gnome_cmd_dir_unref (GnomeCmdDir *dir)
 {
     g_return_if_fail (GNOME_CMD_IS_DIR (dir));
-    gnome_cmd_file_unref (GNOME_CMD_FILE (dir));
+    GNOME_CMD_FILE (dir)->unref();
 }
 
 GnomeVFSResult gnome_cmd_dir_get_files (GnomeCmdDir *dir, GList **files);
diff --git a/src/gnome-cmd-file-collection.cc b/src/gnome-cmd-file-collection.cc
index 723512f..8cc0a7e 100644
--- a/src/gnome-cmd-file-collection.cc
+++ b/src/gnome-cmd-file-collection.cc
@@ -34,7 +34,7 @@ void GnomeCmdFileCollection::add(GnomeCmdFile *f)
 
     gchar *uri_str = gnome_cmd_file_get_uri_str (f);
     g_hash_table_insert (map, uri_str, f);
-    gnome_cmd_file_ref (f);
+    f->ref();
 }
 
 
diff --git a/src/gnome-cmd-file-list.cc b/src/gnome-cmd-file-list.cc
index 94ef1a9..9852bda 100644
--- a/src/gnome-cmd-file-list.cc
+++ b/src/gnome-cmd-file-list.cc
@@ -453,8 +453,7 @@ void GnomeCmdFileList::select_file(GnomeCmdFile *f, gint row)
     if (g_list_index (priv->selected_files, f) != -1)
         return;
 
-    gnome_cmd_file_ref (f);
-    priv->selected_files = g_list_append (priv->selected_files, f);
+    priv->selected_files = g_list_append (priv->selected_files, f->ref());
 
     g_signal_emit (this, signals[FILES_CHANGED], 0);
 }
@@ -472,7 +471,7 @@ void GnomeCmdFileList::unselect_file(GnomeCmdFile *f, gint row)
     if (g_list_index (priv->selected_files, f) == -1)
         return;
 
-    gnome_cmd_file_unref (f);
+    f->unref();
     priv->selected_files = g_list_remove (priv->selected_files, f);
 
     if (!gnome_cmd_data.use_ls_colors)
diff --git a/src/gnome-cmd-file-props-dialog.cc b/src/gnome-cmd-file-props-dialog.cc
index 09efaa7..bad84eb 100644
--- a/src/gnome-cmd-file-props-dialog.cc
+++ b/src/gnome-cmd-file-props-dialog.cc
@@ -148,7 +148,7 @@ static gboolean join_thread_func (GnomeCmdFilePropsDialogPrivate *data)
     if (data->thread)
         g_thread_join (data->thread);
 
-    gnome_cmd_file_unref (data->f);
+    data->f->unref();
     g_free (data);
 
     return FALSE;
@@ -727,7 +727,7 @@ GtkWidget *gnome_cmd_file_props_dialog_create (GnomeCmdFile *f)
     data->mutex = g_mutex_new ();
     data->msg = NULL;
     data->notebook = notebook;
-    gnome_cmd_file_ref (f);
+    f->ref();
 
     g_object_ref (notebook);
     g_object_set_data_full (G_OBJECT (dialog), "notebook", notebook, g_object_unref);
diff --git a/src/gnome-cmd-file.cc b/src/gnome-cmd-file.cc
index 5423283..07c8a39 100644
--- a/src/gnome-cmd-file.cc
+++ b/src/gnome-cmd-file.cc
@@ -241,34 +241,30 @@ void gnome_cmd_file_setup (GnomeCmdFile *f, GnomeVFSFileInfo *info, GnomeCmdDir
 }
 
 
-GnomeCmdFile *gnome_cmd_file_ref (GnomeCmdFile *f)
+GnomeCmdFile *GnomeCmdFile::ref()
 {
-    g_return_val_if_fail (f != NULL, NULL);
-
-    f->priv->ref_cnt++;
+    priv->ref_cnt++;
 
-    if (f->priv->ref_cnt == 1)
-        gtk_object_ref (GTK_OBJECT (f));
+    if (priv->ref_cnt == 1)
+        gtk_object_ref (GTK_OBJECT (this));
 
-    char c = GNOME_CMD_IS_DIR (f) ? 'd' : 'f';
+    char c = GNOME_CMD_IS_DIR (this) ? 'd' : 'f';
 
-    DEBUG (c, "refing: 0x%p %s to %d\n", f, f->info->name, f->priv->ref_cnt);
+    DEBUG (c, "refing: 0x%p %s to %d\n", this, info->name, priv->ref_cnt);
 
-    return f;
+    return this;
 }
 
 
-void gnome_cmd_file_unref (GnomeCmdFile *f)
+void GnomeCmdFile::unref()
 {
-    g_return_if_fail (f != NULL);
-
-    f->priv->ref_cnt--;
+    priv->ref_cnt--;
 
-    char c = GNOME_CMD_IS_DIR (f) ? 'd' : 'f';
+    char c = GNOME_CMD_IS_DIR (this) ? 'd' : 'f';
 
-    DEBUG (c, "un-refing: 0x%p %s to %d\n", f, f->info->name, f->priv->ref_cnt);
-    if (f->priv->ref_cnt < 1)
-        gtk_object_destroy (GTK_OBJECT (f));
+    DEBUG (c, "un-refing: 0x%p %s to %d\n", this, info->name, priv->ref_cnt);
+    if (priv->ref_cnt < 1)
+        gtk_object_destroy (GTK_OBJECT (this));
 }
 
 
@@ -701,7 +697,7 @@ static void on_file_downloaded_for_view (GnomeVFSURI *uri)
         return;
 
     do_view_file (f);
-    gnome_cmd_file_unref (f);
+    f->unref();
 }
 
 
diff --git a/src/gnome-cmd-file.h b/src/gnome-cmd-file.h
index 4b98fa8..1162fd9 100644
--- a/src/gnome-cmd-file.h
+++ b/src/gnome-cmd-file.h
@@ -47,6 +47,9 @@ struct GnomeCmdFile
     gchar *collate_key;                 // necessary for proper sorting of UTF-8 encoded file names
     GnomeCmdFileMetadata *metadata;
 
+    GnomeCmdFile *ref();
+    void unref();
+
     void invalidate_metadata();
 
     gchar *get_path();
@@ -107,8 +110,17 @@ GnomeCmdFile *gnome_cmd_file_new_from_uri (const gchar *local_full_path);
 GnomeCmdFile *gnome_cmd_file_new (GnomeVFSFileInfo *info, GnomeCmdDir *dir);
 void gnome_cmd_file_setup (GnomeCmdFile *f, GnomeVFSFileInfo *info, GnomeCmdDir *dir);
 
-GnomeCmdFile *gnome_cmd_file_ref (GnomeCmdFile *f);
-void gnome_cmd_file_unref (GnomeCmdFile *f);
+inline GnomeCmdFile *gnome_cmd_file_ref (GnomeCmdFile *f)
+{
+    g_return_val_if_fail (f != NULL, NULL);
+    return f->ref();
+}
+
+inline void gnome_cmd_file_unref (GnomeCmdFile *f)
+{
+    g_return_if_fail (f != NULL);
+    f->unref();
+}
 
 inline gchar *gnome_cmd_file_get_name (GnomeCmdFile *f)
 {
diff --git a/src/gnome-cmd-make-copy-dialog.cc b/src/gnome-cmd-make-copy-dialog.cc
index 65c3ac7..10ab1de 100644
--- a/src/gnome-cmd-make-copy-dialog.cc
+++ b/src/gnome-cmd-make-copy-dialog.cc
@@ -76,7 +76,7 @@ static gboolean on_ok (GnomeCmdStringDialog *string_dialog, const gchar **values
 
 static void on_cancel (GtkWidget *widget, GnomeCmdMakeCopyDialog *dialog)
 {
-    gnome_cmd_file_unref (dialog->priv->f);
+    dialog->priv->f->unref();
 }
 
 
@@ -133,7 +133,7 @@ GtkWidget *gnome_cmd_make_copy_dialog_new (GnomeCmdFile *f, GnomeCmdDir *dir)
 
     dialog->priv->f = f;
     dialog->priv->dir = dir;
-    gnome_cmd_file_ref (f);
+    f->ref();
     gnome_cmd_dir_ref (dir);
 
     gchar *msg = g_strdup_printf (_("Copy \"%s\" to"), gnome_cmd_file_get_name (f));
diff --git a/src/gnome-cmd-rename-dialog.cc b/src/gnome-cmd-rename-dialog.cc
index 3c681be..6ecb076 100644
--- a/src/gnome-cmd-rename-dialog.cc
+++ b/src/gnome-cmd-rename-dialog.cc
@@ -52,7 +52,7 @@ static gboolean on_dialog_keypressed (GtkWidget *widget, GdkEventKey *event, gpo
     switch (event->keyval)
     {
         case GDK_Escape:
-            gnome_cmd_file_unref (dialog->priv->f);
+            dialog->priv->f->unref();
             gtk_widget_destroy(widget);
             return TRUE;
 
@@ -65,7 +65,7 @@ static gboolean on_dialog_keypressed (GtkWidget *widget, GdkEventKey *event, gpo
                 if (result==GNOME_VFS_OK)
                     main_win->fs(ACTIVE)->file_list()->focus_file(new_fname, TRUE);
 
-                gnome_cmd_file_unref (dialog->priv->f);
+                dialog->priv->f->unref();
                 gtk_widget_destroy (widget);
 
                 if (result!=GNOME_VFS_OK)
@@ -89,7 +89,7 @@ static gboolean on_dialog_keypressed (GtkWidget *widget, GdkEventKey *event, gpo
 
 static gboolean on_focus_out (GtkWidget *widget, GdkEventKey *event)
 {
-    gnome_cmd_file_unref (GNOME_CMD_RENAME_DIALOG(widget)->priv->f);
+    GNOME_CMD_RENAME_DIALOG(widget)->priv->f->unref();
     gtk_widget_destroy (widget);
     return TRUE;
 }
@@ -145,8 +145,7 @@ GtkWidget *gnome_cmd_rename_dialog_new (GnomeCmdFile *f, gint x, gint y, gint wi
 
     GnomeCmdRenameDialog *dialog = (GnomeCmdRenameDialog *) gtk_type_new (gnome_cmd_rename_dialog_get_type ());
 
-    dialog->priv->f = f;
-    gnome_cmd_file_ref (f);
+    dialog->priv->f = f->ref();
 
     gtk_window_set_has_frame (GTK_WINDOW (dialog), 0);
     gtk_window_set_decorated (GTK_WINDOW (dialog), 0);



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