[gnome-commander] tabs: move on_dir_xxx handlers from gnome-cmd-file-selector.cc to gnome-cmd-file-list.cc
- From: Piotr Eljasiak <epiotr src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-commander] tabs: move on_dir_xxx handlers from gnome-cmd-file-selector.cc to gnome-cmd-file-list.cc
- Date: Sat, 5 Jun 2010 21:01:00 +0000 (UTC)
commit 2c9dacadc3821796e690b4afd5fe55911b0ddc92
Author: Piotr Eljasiak <epiotr src gnome org>
Date: Sat Jun 5 12:33:47 2010 +0200
tabs: move on_dir_xxx handlers from gnome-cmd-file-selector.cc to gnome-cmd-file-list.cc
src/gnome-cmd-file-list.cc | 73 +++++++++++++++++++++++++++++
src/gnome-cmd-file-selector.cc | 99 +---------------------------------------
2 files changed, 74 insertions(+), 98 deletions(-)
---
diff --git a/src/gnome-cmd-file-list.cc b/src/gnome-cmd-file-list.cc
index 54fe6f0..805ab4b 100644
--- a/src/gnome-cmd-file-list.cc
+++ b/src/gnome-cmd-file-list.cc
@@ -26,6 +26,7 @@
#include "gnome-cmd-file-selector.h"
#include "gnome-cmd-file-list.h"
#include "gnome-cmd-file.h"
+#include "gnome-cmd-con-list.h"
#include "gnome-cmd-main-win.h"
#include "utils.h"
#include "gnome-cmd-data.h"
@@ -1342,6 +1343,78 @@ static void on_dir_file_renamed (GnomeCmdDir *dir, GnomeCmdFile *f, GnomeCmdFile
}
+static void on_dir_list_ok (GnomeCmdDir *dir, GList *files, GnomeCmdFileList *fl)
+{
+ DEBUG('l', "on_dir_list_ok\n");
+
+ g_return_if_fail (GNOME_CMD_IS_DIR (dir));
+ g_return_if_fail (GNOME_CMD_IS_FILE_LIST (fl));
+
+ if (fl->realized)
+ {
+ gtk_widget_set_sensitive (*fl, TRUE);
+ set_cursor_default_for_widget (*fl);
+ gtk_widget_grab_focus (*fl);
+ }
+
+ if (fl->connected_dir!=dir)
+ {
+ if (fl->connected_dir)
+ {
+ g_signal_handlers_disconnect_by_func (fl->connected_dir, (gpointer) on_dir_file_created, fl);
+ g_signal_handlers_disconnect_by_func (fl->connected_dir, (gpointer) on_dir_file_deleted, fl);
+ g_signal_handlers_disconnect_by_func (fl->connected_dir, (gpointer) on_dir_file_changed, fl);
+ g_signal_handlers_disconnect_by_func (fl->connected_dir, (gpointer) on_dir_file_renamed, fl);
+ }
+
+ g_signal_connect (dir, "file-created", G_CALLBACK (on_dir_file_created), fl);
+ g_signal_connect (dir, "file-deleted", G_CALLBACK (on_dir_file_deleted), fl);
+ g_signal_connect (dir, "file-changed", G_CALLBACK (on_dir_file_changed), fl);
+ g_signal_connect (dir, "file-renamed", G_CALLBACK (on_dir_file_renamed), fl);
+
+ fl->connected_dir = dir;
+ }
+
+ g_signal_emit (fl, signals[DIR_CHANGED], 0, dir);
+
+ DEBUG('l', "returning from on_dir_list_ok\n");
+}
+
+
+static gboolean set_home_connection (GnomeCmdFileList *fl)
+{
+ g_printerr ("Setting home connection\n");
+ fl->set_connection(get_home_con ());
+
+ return FALSE;
+}
+
+
+static void on_dir_list_failed (GnomeCmdDir *dir, GnomeVFSResult result, GnomeCmdFileList *fl)
+{
+ DEBUG('l', "on_dir_list_failed\n");
+
+ if (result != GNOME_VFS_OK)
+ gnome_cmd_show_message (NULL, _("Directory listing failed."), gnome_vfs_result_to_string (result));
+
+ g_signal_handlers_disconnect_matched (fl->cwd, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, fl);
+ fl->connected_dir = NULL;
+ gnome_cmd_dir_unref (fl->cwd);
+ set_cursor_default_for_widget (*fl);
+ gtk_widget_set_sensitive (*fl, TRUE);
+
+ if (fl->lwd && fl->con == gnome_cmd_dir_get_connection (fl->lwd))
+ {
+ fl->cwd = fl->lwd;
+ g_signal_connect (fl->cwd, "list-ok", G_CALLBACK (on_dir_list_ok), fl);
+ g_signal_connect (fl->cwd, "list-failed", G_CALLBACK (on_dir_list_failed), fl);
+ fl->lwd = NULL;
+ }
+ else
+ g_timeout_add (1, (GSourceFunc) set_home_connection, fl);
+}
+
+
/*******************************
* Gtk class implementation
*******************************/
diff --git a/src/gnome-cmd-file-selector.cc b/src/gnome-cmd-file-selector.cc
index 3386594..032cfdb 100644
--- a/src/gnome-cmd-file-selector.cc
+++ b/src/gnome-cmd-file-selector.cc
@@ -920,104 +920,6 @@ static void on_list_files_changed (GnomeCmdFileList *fl, GnomeCmdFileSelector *f
}
-static void on_dir_list_ok (GnomeCmdDir *dir, GList *files, GnomeCmdFileSelector *fs)
-{
- DEBUG('l', "on_dir_list_ok\n");
-
- g_return_if_fail (GNOME_CMD_IS_DIR (dir));
- g_return_if_fail (GNOME_CMD_IS_FILE_SELECTOR (fs));
-
- if (fs->priv->realized)
- {
- gtk_widget_set_sensitive (*fs, TRUE);
- set_cursor_default_for_widget (*fs);
- gtk_widget_grab_focus (GTK_WIDGET (fs->file_list()));
- }
-
- if (fs->file_list()->connected_dir != dir)
- {
- if (fs->file_list()->connected_dir != NULL)
- {
- gtk_signal_disconnect_by_func (GTK_OBJECT (fs->file_list()->connected_dir), GTK_SIGNAL_FUNC (on_dir_file_created), fs);
- gtk_signal_disconnect_by_func (GTK_OBJECT (fs->file_list()->connected_dir), GTK_SIGNAL_FUNC (on_dir_file_deleted), fs);
- gtk_signal_disconnect_by_func (GTK_OBJECT (fs->file_list()->connected_dir), GTK_SIGNAL_FUNC (on_dir_file_changed), fs);
- gtk_signal_disconnect_by_func (GTK_OBJECT (fs->file_list()->connected_dir), GTK_SIGNAL_FUNC (on_dir_file_renamed), fs);
- }
-
- g_signal_connect (dir, "file-created", G_CALLBACK (on_dir_file_created), fs);
- g_signal_connect (dir, "file-deleted", G_CALLBACK (on_dir_file_deleted), fs);
- g_signal_connect (dir, "file-changed", G_CALLBACK (on_dir_file_changed), fs);
- g_signal_connect (dir, "file-renamed", G_CALLBACK (on_dir_file_renamed), fs);
- fs->file_list()->connected_dir = dir;
- }
-
- if (fs->priv->dir_history && !fs->priv->dir_history->is_locked)
- {
- gchar *fpath = gnome_cmd_file_get_path (GNOME_CMD_FILE (dir));
- fs->priv->dir_history->add(fpath);
- g_free (fpath);
- }
-
- gtk_signal_emit (GTK_OBJECT (fs), signals[DIR_CHANGED], dir);
-
- fs->update_direntry();
- update_vol_label (fs);
-
- if (fs->get_directory() != dir) return;
-
- fs->priv->sel_first_file = FALSE;
- fs->update_files();
- fs->priv->sel_first_file = TRUE;
-
- if (!fs->priv->active)
- {
- GTK_CLIST (fs->file_list())->focus_row = -1;
- gtk_clist_unselect_all (*fs->file_list());
- }
-
- if (fs->priv->sel_first_file && fs->priv->active)
- gtk_clist_select_row (*fs->file_list(), 0, 0);
-
- fs->update_selected_files_label();
-
- DEBUG('l', "returning from on_dir_list_ok\n");
-}
-
-
-static gboolean set_home_connection (GnomeCmdFileSelector *fs)
-{
- g_printerr ("Setting home connection\n");
- fs->set_connection(get_home_con ());
-
- return FALSE;
-}
-
-
-static void on_dir_list_failed (GnomeCmdDir *dir, GnomeVFSResult result, GnomeCmdFileSelector *fs)
-{
- DEBUG('l', "on_dir_list_failed\n");
-
- if (result != GNOME_VFS_OK)
- gnome_cmd_show_message (NULL, _("Directory listing failed."), gnome_vfs_result_to_string (result));
-
- gtk_signal_disconnect_by_data (GTK_OBJECT (fs->get_directory()), fs);
- fs->file_list()->connected_dir = NULL;
- gnome_cmd_dir_unref (fs->get_directory());
- set_cursor_default_for_widget (GTK_WIDGET (fs));
- gtk_widget_set_sensitive (*fs, TRUE);
-
- if (fs->file_list()->lwd && fs->get_connection() == gnome_cmd_dir_get_connection (fs->file_list()->lwd))
- {
- fs->file_list()->cwd = fs->file_list()->lwd;
- g_signal_connect (fs->file_list()->cwd, "list-ok", G_CALLBACK (on_dir_list_ok), fs);
- g_signal_connect (fs->file_list()->cwd, "list-failed", G_CALLBACK (on_dir_list_failed), fs);
- fs->file_list()->lwd = NULL;
- }
- else
- g_timeout_add (1, (GSourceFunc) set_home_connection, fs);
-}
-
-
// This function should only be called for input made when the file-selector was focused
static gboolean on_list_key_pressed (GtkCList *clist, GdkEventKey *event, GnomeCmdFileSelector *fs)
{
@@ -1184,6 +1086,7 @@ static void init (GnomeCmdFileSelector *fs)
g_signal_connect (fs->file_list(), "empty-space-clicked", G_CALLBACK (on_list_empty_space_clicked), fs);
g_signal_connect (fs->file_list(), "con-changed", G_CALLBACK (on_list_con_changed), fs);
+ g_signal_connect (fs->file_list(), "dir-changed", G_CALLBACK (on_list_dir_changed), fs);
g_signal_connect (fs->file_list(), "files-changed", G_CALLBACK (on_list_files_changed), fs);
g_signal_connect (fs->file_list(), "key-press-event", G_CALLBACK (on_list_key_pressed), fs);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]