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



commit 21448bbabf20044dc2236b4f2fdee4ecd9b2dbb3
Author: Piotr Eljasiak <epiotr src gnome org>
Date:   Sun Aug 15 15:45:45 2010 +0200

    GnomeCmdFile: more C++ rework

 src/gnome-cmd-advrename-dialog.cc  |    2 +-
 src/gnome-cmd-chmod-dialog.cc      |    2 +-
 src/gnome-cmd-chown-dialog.cc      |    2 +-
 src/gnome-cmd-file-props-dialog.cc |    6 ++--
 src/gnome-cmd-file.cc              |   57 +++++++++++++++++-------------------
 src/gnome-cmd-file.h               |    8 ++--
 src/gnome-cmd-rename-dialog.cc     |    2 +-
 src/utils.cc                       |    2 +-
 8 files changed, 39 insertions(+), 42 deletions(-)
---
diff --git a/src/gnome-cmd-advrename-dialog.cc b/src/gnome-cmd-advrename-dialog.cc
index 711e673..974f1ae 100644
--- a/src/gnome-cmd-advrename-dialog.cc
+++ b/src/gnome-cmd-advrename-dialog.cc
@@ -451,7 +451,7 @@ void GnomeCmdAdvrenameDialog::Private::on_dialog_response (GnomeCmdAdvrenameDial
                 GnomeVFSResult result = GNOME_VFS_OK;
 
                 if (strcmp (f->info->name, new_name) != 0)
-                    result = gnome_cmd_file_rename (f, new_name);
+                    result = f->rename(new_name);
 
                 gtk_list_store_set (GTK_LIST_STORE (dialog->files), &i,
                                     COL_NAME, gnome_cmd_file_get_name (f),
diff --git a/src/gnome-cmd-chmod-dialog.cc b/src/gnome-cmd-chmod-dialog.cc
index 806fc07..8d4dde1 100644
--- a/src/gnome-cmd-chmod-dialog.cc
+++ b/src/gnome-cmd-chmod-dialog.cc
@@ -68,7 +68,7 @@ static void do_chmod (GnomeCmdFile *in, GnomeVFSFilePermissions perm, gboolean r
 
     if (!(recursive && mode == CHMOD_DIRS_ONLY && in->info->type != GNOME_VFS_FILE_TYPE_DIRECTORY))
     {
-        GnomeVFSResult ret = gnome_cmd_file_chmod (in, perm);
+        GnomeVFSResult ret = in->chmod(perm);
 
         if (ret != GNOME_VFS_OK)
             gnome_cmd_show_message (NULL, gnome_cmd_file_get_name (in), gnome_vfs_result_to_string (ret));
diff --git a/src/gnome-cmd-chown-dialog.cc b/src/gnome-cmd-chown-dialog.cc
index 9ab2ca0..5984222 100644
--- a/src/gnome-cmd-chown-dialog.cc
+++ b/src/gnome-cmd-chown-dialog.cc
@@ -50,7 +50,7 @@ static void do_chown (GnomeCmdFile *in, uid_t uid, gid_t gid, gboolean recurse)
     g_return_if_fail (in != NULL);
     g_return_if_fail (in->info != NULL);
 
-    ret = gnome_cmd_file_chown (in, uid, gid);
+    ret = in->chown(uid, gid);
 
     if (ret != GNOME_VFS_OK)
     {
diff --git a/src/gnome-cmd-file-props-dialog.cc b/src/gnome-cmd-file-props-dialog.cc
index 6f9c5f2..26a0204 100644
--- a/src/gnome-cmd-file-props-dialog.cc
+++ b/src/gnome-cmd-file-props-dialog.cc
@@ -220,7 +220,7 @@ static void on_dialog_ok (GtkButton *btn, GnomeCmdFilePropsDialogPrivate *data)
 
     if (strcmp (filename, gnome_cmd_file_get_name (data->f)) != 0)
     {
-        result = gnome_cmd_file_rename (data->f, filename);
+        result = data->f->rename(filename);
 
         if (result==GNOME_VFS_OK)
             main_win->fs(ACTIVE)->file_list()->focus_file(filename, TRUE);
@@ -231,7 +231,7 @@ static void on_dialog_ok (GtkButton *btn, GnomeCmdFilePropsDialogPrivate *data)
         GnomeVFSFilePermissions perms = gnome_cmd_chmod_component_get_perms (GNOME_CMD_CHMOD_COMPONENT (data->chmod_component));
 
         if (perms != data->f->info->permissions)
-            result = gnome_cmd_file_chmod (data->f, perms);
+            result = data->f->chmod(perms);
     }
 
     if (result == GNOME_VFS_OK)
@@ -245,7 +245,7 @@ static void on_dialog_ok (GtkButton *btn, GnomeCmdFilePropsDialogPrivate *data)
             gid = -1;
 
         if (uid != -1 || gid != -1)
-            result = gnome_cmd_file_chown (data->f, uid, gid);
+            result = data->f->chown(uid,gid);
     }
 
     if (result != GNOME_VFS_OK)
diff --git a/src/gnome-cmd-file.cc b/src/gnome-cmd-file.cc
index 98280c5..6db387f 100644
--- a/src/gnome-cmd-file.cc
+++ b/src/gnome-cmd-file.cc
@@ -272,20 +272,19 @@ void gnome_cmd_file_unref (GnomeCmdFile *f)
 }
 
 
-GnomeVFSResult gnome_cmd_file_chmod (GnomeCmdFile *f, GnomeVFSFilePermissions perm)
+GnomeVFSResult GnomeCmdFile::chmod(GnomeVFSFilePermissions perm)
 {
-    g_return_val_if_fail (f != NULL, GNOME_VFS_ERROR_CORRUPTED_DATA);
-    g_return_val_if_fail (f->info != NULL, GNOME_VFS_ERROR_CORRUPTED_DATA);
+    g_return_val_if_fail (info != NULL, GNOME_VFS_ERROR_CORRUPTED_DATA);
 
-    f->info->permissions = perm;
-    GnomeVFSURI *uri = f->get_uri();
-    GnomeVFSResult ret = gnome_vfs_set_file_info_uri (uri, f->info, GNOME_VFS_SET_FILE_INFO_PERMISSIONS);
+    info->permissions = perm;
+    GnomeVFSURI *uri = get_uri();
+    GnomeVFSResult ret = gnome_vfs_set_file_info_uri (uri, info, GNOME_VFS_SET_FILE_INFO_PERMISSIONS);
     gnome_vfs_uri_unref (uri);
 
-    if (has_parent_dir (f))
+    if (has_parent_dir (this))
     {
-        GnomeCmdDir *dir = get_parent_dir (f);
-        gchar *uri_str = gnome_cmd_file_get_uri_str (f);
+        GnomeCmdDir *dir = get_parent_dir (this);
+        gchar *uri_str = gnome_cmd_file_get_uri_str (this);
         gnome_cmd_dir_file_changed (dir, uri_str);
         g_free (uri_str);
     }
@@ -294,23 +293,22 @@ GnomeVFSResult gnome_cmd_file_chmod (GnomeCmdFile *f, GnomeVFSFilePermissions pe
 }
 
 
-GnomeVFSResult gnome_cmd_file_chown (GnomeCmdFile *f, uid_t uid, gid_t gid)
+GnomeVFSResult GnomeCmdFile::chown(uid_t uid, gid_t gid)
 {
-    g_return_val_if_fail (f != NULL, GNOME_VFS_ERROR_CORRUPTED_DATA);
-    g_return_val_if_fail (f->info != NULL, GNOME_VFS_ERROR_CORRUPTED_DATA);
+    g_return_val_if_fail (info != NULL, GNOME_VFS_ERROR_CORRUPTED_DATA);
 
     if (uid != -1)
-        f->info->uid = uid;
-    f->info->gid = gid;
+        info->uid = uid;
+    info->gid = gid;
 
-    GnomeVFSURI *uri = f->get_uri();
-    GnomeVFSResult ret = gnome_vfs_set_file_info_uri (uri, f->info, GNOME_VFS_SET_FILE_INFO_OWNER);
+    GnomeVFSURI *uri = get_uri();
+    GnomeVFSResult ret = gnome_vfs_set_file_info_uri (uri, info, GNOME_VFS_SET_FILE_INFO_OWNER);
     gnome_vfs_uri_unref (uri);
 
-    if (has_parent_dir (f))
+    if (has_parent_dir (this))
     {
-        GnomeCmdDir *dir = get_parent_dir (f);
-        gchar *uri_str = gnome_cmd_file_get_uri_str (f);
+        GnomeCmdDir *dir = get_parent_dir (this);
+        gchar *uri_str = gnome_cmd_file_get_uri_str (this);
         gnome_cmd_dir_file_changed (dir, uri_str);
         g_free (uri_str);
     }
@@ -319,36 +317,35 @@ GnomeVFSResult gnome_cmd_file_chown (GnomeCmdFile *f, uid_t uid, gid_t gid)
 }
 
 
-GnomeVFSResult gnome_cmd_file_rename (GnomeCmdFile *f, const gchar *new_name)
+GnomeVFSResult GnomeCmdFile::rename(const gchar *new_name)
 {
-    g_return_val_if_fail (f, GNOME_VFS_ERROR_CORRUPTED_DATA);
-    g_return_val_if_fail (f->info, GNOME_VFS_ERROR_CORRUPTED_DATA);
+    g_return_val_if_fail (info, GNOME_VFS_ERROR_CORRUPTED_DATA);
 
     GnomeVFSFileInfo *new_info = gnome_vfs_file_info_new ();
     g_return_val_if_fail (new_info, GNOME_VFS_ERROR_CORRUPTED_DATA);
 
     new_info->name = const_cast<gchar *> (new_name);
 
-    GnomeVFSURI *uri = f->get_uri();
+    GnomeVFSURI *uri = get_uri();
     GnomeVFSResult result = gnome_vfs_set_file_info_uri (uri, new_info, GNOME_VFS_SET_FILE_INFO_NAME);
     gnome_vfs_uri_unref (uri);
 
     if (result==GNOME_VFS_OK)       //  re-read GnomeVFSFileInfo for the new MIME type
     {
         const GnomeVFSFileInfoOptions infoOpts = (GnomeVFSFileInfoOptions) (GNOME_VFS_FILE_INFO_FOLLOW_LINKS|GNOME_VFS_FILE_INFO_GET_MIME_TYPE);
-        uri = f->get_uri(new_name);
+        uri = get_uri(new_name);
         result = gnome_vfs_get_file_info_uri (uri, new_info, infoOpts);
         gnome_vfs_uri_unref (uri);
     }
 
-    if (result==GNOME_VFS_OK && has_parent_dir (f))
+    if (result==GNOME_VFS_OK && has_parent_dir (this))
     {
-        gchar *old_uri_str = gnome_cmd_file_get_uri_str (f);
+        gchar *old_uri_str = gnome_cmd_file_get_uri_str (this);
 
-        f->update_info(new_info);
-        gnome_cmd_dir_file_renamed (get_parent_dir (f), f, old_uri_str);
-        if (GNOME_CMD_IS_DIR (f))
-            gnome_cmd_dir_update_path (GNOME_CMD_DIR (f));
+        update_info(new_info);
+        gnome_cmd_dir_file_renamed (get_parent_dir (this), this, old_uri_str);
+        if (GNOME_CMD_IS_DIR (this))
+            gnome_cmd_dir_update_path (GNOME_CMD_DIR (this));
     }
 
     return result;
diff --git a/src/gnome-cmd-file.h b/src/gnome-cmd-file.h
index ac7a486..7d917ff 100644
--- a/src/gnome-cmd-file.h
+++ b/src/gnome-cmd-file.h
@@ -57,6 +57,10 @@ struct GnomeCmdFile
     const gchar *get_type_desc();
     gboolean get_type_pixmap_and_mask(GdkPixmap **pixmap, GdkBitmap **mask);
 
+    GnomeVFSResult chmod(GnomeVFSFilePermissions perm);
+    GnomeVFSResult chown(uid_t uid, gid_t gid);
+    GnomeVFSResult rename(const gchar *new_name);
+
     void update_info(GnomeVFSFileInfo *info);
     gboolean is_local();
     gboolean is_executable();
@@ -89,10 +93,6 @@ void gnome_cmd_file_setup (GnomeCmdFile *f, GnomeVFSFileInfo *info, GnomeCmdDir
 GnomeCmdFile *gnome_cmd_file_ref (GnomeCmdFile *f);
 void gnome_cmd_file_unref (GnomeCmdFile *f);
 
-GnomeVFSResult gnome_cmd_file_chmod (GnomeCmdFile *f, GnomeVFSFilePermissions perm);
-GnomeVFSResult gnome_cmd_file_chown (GnomeCmdFile *f, uid_t uid, gid_t gid);
-GnomeVFSResult gnome_cmd_file_rename (GnomeCmdFile *f, const gchar *new_name);
-
 inline gchar *gnome_cmd_file_get_name (GnomeCmdFile *f)
 {
     g_return_val_if_fail (f != NULL, NULL);
diff --git a/src/gnome-cmd-rename-dialog.cc b/src/gnome-cmd-rename-dialog.cc
index 67b155f..688a5d0 100644
--- a/src/gnome-cmd-rename-dialog.cc
+++ b/src/gnome-cmd-rename-dialog.cc
@@ -60,7 +60,7 @@ static gboolean on_dialog_keypressed (GtkWidget *widget, GdkEventKey *event, gpo
         case GDK_KP_Enter:
             {
                 gchar *new_fname = g_strdup (gtk_entry_get_text (dialog->priv->textbox));
-                GnomeVFSResult result = gnome_cmd_file_rename (dialog->priv->f, new_fname);
+                GnomeVFSResult result = dialog->priv->f->rename(new_fname);
 
                 if (result==GNOME_VFS_OK)
                     main_win->fs(ACTIVE)->file_list()->focus_file(new_fname, TRUE);
diff --git a/src/utils.cc b/src/utils.cc
index b4efc97..eba8fcb 100644
--- a/src/utils.cc
+++ b/src/utils.cc
@@ -531,7 +531,7 @@ void mime_exec_single (GnomeCmdFile *f)
 
             if (ret != 1)  return;  else
             {
-                GnomeVFSResult result = gnome_cmd_file_chmod (f, (GnomeVFSFilePermissions) (f->info->permissions|GNOME_VFS_PERM_USER_EXEC));
+                GnomeVFSResult result = f->chmod((GnomeVFSFilePermissions) (f->info->permissions|GNOME_VFS_PERM_USER_EXEC));
                 if (result != GNOME_VFS_OK)
                     return;
             }



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