gnome-commander r1899 - in trunk: . src
- From: epiotr svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-commander r1899 - in trunk: . src
- Date: Mon, 21 Jul 2008 18:50:27 +0000 (UTC)
Author: epiotr
Date: Mon Jul 21 18:50:27 2008
New Revision: 1899
URL: http://svn.gnome.org/viewvc/gnome-commander?rev=1899&view=rev
Log:
Fix for setting the current working directory to the remote inactive one (CTRL+., CTRL+LEFT/RIGHT)
Modified:
trunk/ChangeLog
trunk/src/gnome-cmd-file-selector.cc
trunk/src/gnome-cmd-file-selector.h
trunk/src/gnome-cmd-user-actions.cc
Modified: trunk/src/gnome-cmd-file-selector.cc
==============================================================================
--- trunk/src/gnome-cmd-file-selector.cc (original)
+++ trunk/src/gnome-cmd-file-selector.cc Mon Jul 21 18:50:27 2008
@@ -89,33 +89,6 @@
*******************************/
-void gnome_cmd_file_selector_set_same_directory (GnomeCmdMainWin *mw, FileSelectorID fsID, FileSelectorID otherID)
-{
- g_return_if_fail (mw!=NULL);
- g_return_if_fail (mw->priv!=NULL);
-
- GnomeCmdFileSelector *fs = gnome_cmd_main_win_get_fs (mw, fsID);
- GnomeCmdFileSelector *other = gnome_cmd_main_win_get_fs (mw, !fsID);
-
- gboolean fs_is_active = fs->priv->active;
-
- if (fs_is_active)
- gnome_cmd_file_selector_set_directory (fs, gnome_cmd_file_selector_get_directory (other));
- else
- {
- GnomeCmdFile *file = gnome_cmd_file_list_get_selected_file (other->list);
-
- if (file && file->info->type == GNOME_VFS_FILE_TYPE_DIRECTORY)
- gnome_cmd_file_selector_goto_directory (fs, gnome_cmd_file_get_real_path (file));
- else
- gnome_cmd_file_selector_set_directory (fs, gnome_cmd_file_selector_get_directory (other));
- }
-
- gnome_cmd_file_selector_set_active (other, !fs_is_active);
- gnome_cmd_file_selector_set_active (fs, fs_is_active);
-}
-
-
inline void show_list_popup (GnomeCmdFileSelector *fs)
{
// create the popup menu
@@ -242,20 +215,25 @@
inline void set_connection (GnomeCmdFileSelector *fs, GnomeCmdCon *con, GnomeCmdDir *dir=NULL)
{
- fs->priv->con = con;
- fs->priv->dir_history = gnome_cmd_con_get_dir_history (con);
+ gboolean con_change_needed = fs->priv->con==con;
- if (fs->priv->lwd)
- {
- gnome_cmd_dir_cancel_monitoring (fs->priv->lwd);
- gnome_cmd_dir_unref (fs->priv->lwd);
- fs->priv->lwd = NULL;
- }
- if (fs->priv->cwd)
+ if (!con_change_needed)
{
- gnome_cmd_dir_cancel_monitoring (fs->priv->cwd);
- gnome_cmd_dir_unref (fs->priv->cwd);
- fs->priv->cwd = NULL;
+ fs->priv->con = con;
+ fs->priv->dir_history = gnome_cmd_con_get_dir_history (con);
+
+ if (fs->priv->lwd)
+ {
+ gnome_cmd_dir_cancel_monitoring (fs->priv->lwd);
+ gnome_cmd_dir_unref (fs->priv->lwd);
+ fs->priv->lwd = NULL;
+ }
+ if (fs->priv->cwd)
+ {
+ gnome_cmd_dir_cancel_monitoring (fs->priv->cwd);
+ gnome_cmd_dir_unref (fs->priv->cwd);
+ fs->priv->cwd = NULL;
+ }
}
if (!dir)
@@ -264,7 +242,8 @@
gnome_cmd_file_selector_set_directory (fs, dir);
- gnome_cmd_combo_select_data (GNOME_CMD_COMBO (fs->con_combo), con);
+ if (!con_change_needed)
+ gnome_cmd_combo_select_data (GNOME_CMD_COMBO (fs->con_combo), con);
}
@@ -1767,6 +1746,31 @@
}
+void gnome_cmd_file_selector_set_directory_to_opposite (GnomeCmdMainWin *mw, FileSelectorID fsID)
+{
+ g_return_if_fail (mw!=NULL);
+
+ GnomeCmdFileSelector *fs = gnome_cmd_main_win_get_fs (mw, fsID);
+ GnomeCmdFileSelector *other = gnome_cmd_main_win_get_fs (mw, !fsID);
+
+ GnomeCmdDir *dir = gnome_cmd_file_selector_get_directory (other);
+ gboolean fs_is_active = fs->priv->active;
+
+ if (!fs_is_active)
+ {
+ GnomeCmdFile *file = gnome_cmd_file_list_get_selected_file (other->list);
+
+ if (file && file->info->type == GNOME_VFS_FILE_TYPE_DIRECTORY)
+ dir = gnome_cmd_dir_new_from_info (file->info, dir);
+ }
+
+ set_connection (fs, other->priv->con, dir);
+
+ gnome_cmd_file_selector_set_active (other, !fs_is_active);
+ gnome_cmd_file_selector_set_active (fs, fs_is_active);
+}
+
+
void gnome_cmd_file_selector_update_connections (GnomeCmdFileSelector *fs)
{
g_return_if_fail (GNOME_CMD_IS_FILE_SELECTOR (fs));
Modified: trunk/src/gnome-cmd-file-selector.h
==============================================================================
--- trunk/src/gnome-cmd-file-selector.h (original)
+++ trunk/src/gnome-cmd-file-selector.h Mon Jul 21 18:50:27 2008
@@ -83,7 +83,7 @@
GnomeCmdDir *gnome_cmd_file_selector_get_directory (GnomeCmdFileSelector *fs);
void gnome_cmd_file_selector_set_directory (GnomeCmdFileSelector *fs, GnomeCmdDir *dir);
-void gnome_cmd_file_selector_set_same_directory (GnomeCmdMainWin *mw, FileSelectorID fsID, FileSelectorID otherID);
+void gnome_cmd_file_selector_set_directory_to_opposite (GnomeCmdMainWin *mw, FileSelectorID fsID);
void gnome_cmd_file_selector_goto_directory (GnomeCmdFileSelector *fs, const gchar *dir);
Modified: trunk/src/gnome-cmd-user-actions.cc
==============================================================================
--- trunk/src/gnome-cmd-user-actions.cc (original)
+++ trunk/src/gnome-cmd-user-actions.cc Mon Jul 21 18:50:27 2008
@@ -1272,25 +1272,25 @@
void view_in_left_pane (GtkMenuItem *menuitem, gpointer not_used)
{
- gnome_cmd_file_selector_set_same_directory ((GnomeCmdMainWin *) GTK_WIDGET (main_win), LEFT, RIGHT);
+ gnome_cmd_file_selector_set_directory_to_opposite ((GnomeCmdMainWin *) GTK_WIDGET (main_win), LEFT);
}
void view_in_right_pane (GtkMenuItem *menuitem, gpointer not_used)
{
- gnome_cmd_file_selector_set_same_directory ((GnomeCmdMainWin *) GTK_WIDGET (main_win), RIGHT, LEFT);
+ gnome_cmd_file_selector_set_directory_to_opposite ((GnomeCmdMainWin *) GTK_WIDGET (main_win), RIGHT);
}
void view_in_active_pane (GtkMenuItem *menuitem, gpointer not_used)
{
- gnome_cmd_file_selector_set_same_directory ((GnomeCmdMainWin *) GTK_WIDGET (main_win), ACTIVE, INACTIVE);
+ gnome_cmd_file_selector_set_directory_to_opposite ((GnomeCmdMainWin *) GTK_WIDGET (main_win), ACTIVE);
}
void view_in_inactive_pane (GtkMenuItem *menuitem, gpointer not_used)
{
- gnome_cmd_file_selector_set_same_directory ((GnomeCmdMainWin *) GTK_WIDGET (main_win), INACTIVE, ACTIVE);
+ gnome_cmd_file_selector_set_directory_to_opposite ((GnomeCmdMainWin *) GTK_WIDGET (main_win), INACTIVE);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]