Pull up fix from the branch:
Make sure the OK button in the folder creation dialog is not sensitive if no parent folder is selected. Fix a Gtk-Warning that would happen if you selected "New" in the folder selection dialog and then "Cancel" in the folder creation dialog. svn path=/trunk/; revision=9325
This commit is contained in:
@ -1,3 +1,21 @@
|
|||||||
|
2001-04-15 Ettore Perazzoli <ettore@ximian.com>
|
||||||
|
|
||||||
|
* e-shell-folder-selection-dialog.c
|
||||||
|
(folder_creation_dialog_result_cb): Set the current folder only if
|
||||||
|
@result is `E_SHELL_FOLDER_CREATION_DIALOG_RESULT_SUCCESS'.
|
||||||
|
|
||||||
|
* e-shell-folder-creation-dialog.c (folder_name_entry_changed_cb):
|
||||||
|
Changed to get a pointer to the DialogData instead of just a
|
||||||
|
pointer to the dialog itself. Don't set the OK button sensitive
|
||||||
|
if there is no folder selected in the storage set view.
|
||||||
|
(setup_folder_name_entry): Don't connect
|
||||||
|
`folder_name_entry_changed_cb' anymore.
|
||||||
|
(e_shell_show_folder_creation_dialog): Connect here instead.
|
||||||
|
(storage_set_view_folder_selected_cb): New callback for the
|
||||||
|
"folder_selected" signal in the EStorageSetView. Make the OK
|
||||||
|
button sensitive if the entry is non-empty.
|
||||||
|
(e_shell_show_folder_creation_dialog): Connect it.
|
||||||
|
|
||||||
2001-04-14 Michael Meeks <michael@ximian.com>
|
2001-04-14 Michael Meeks <michael@ximian.com>
|
||||||
|
|
||||||
* Makefile.am (dist-hook): remove built sources from dist.
|
* Makefile.am (dist-hook): remove built sources from dist.
|
||||||
|
@ -207,16 +207,31 @@ static void
|
|||||||
folder_name_entry_changed_cb (GtkEditable *editable,
|
folder_name_entry_changed_cb (GtkEditable *editable,
|
||||||
void *data)
|
void *data)
|
||||||
{
|
{
|
||||||
GnomeDialog *dialog;
|
DialogData *dialog_data;
|
||||||
GtkEntry *entry;
|
const char *parent_path;
|
||||||
|
|
||||||
entry = GTK_ENTRY (editable);
|
dialog_data = (DialogData *) data;
|
||||||
dialog = GNOME_DIALOG (data);
|
|
||||||
|
|
||||||
if (entry->text_length > 0)
|
parent_path = e_storage_set_view_get_current_folder (E_STORAGE_SET_VIEW (dialog_data->storage_set_view));
|
||||||
gnome_dialog_set_sensitive (dialog, 0, TRUE);
|
|
||||||
|
if (parent_path != NULL
|
||||||
|
&& GTK_ENTRY (dialog_data->folder_name_entry)->text_length > 0)
|
||||||
|
gnome_dialog_set_sensitive (GNOME_DIALOG (dialog_data->dialog), 0, TRUE);
|
||||||
else
|
else
|
||||||
gnome_dialog_set_sensitive (dialog, 0, FALSE);
|
gnome_dialog_set_sensitive (GNOME_DIALOG (dialog_data->dialog), 0, FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
storage_set_view_folder_selected_cb (EStorageSetView *storage_set_view,
|
||||||
|
const char *path,
|
||||||
|
void *data)
|
||||||
|
{
|
||||||
|
DialogData *dialog_data;
|
||||||
|
|
||||||
|
dialog_data = (DialogData *) data;
|
||||||
|
|
||||||
|
if (GTK_ENTRY (dialog_data->folder_name_entry)->text_length > 0)
|
||||||
|
gnome_dialog_set_sensitive (GNOME_DIALOG (dialog_data->dialog), 0, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -263,9 +278,6 @@ setup_folder_name_entry (GtkWidget *dialog,
|
|||||||
folder_name_entry = glade_xml_get_widget (gui, "folder_name_entry");
|
folder_name_entry = glade_xml_get_widget (gui, "folder_name_entry");
|
||||||
|
|
||||||
gnome_dialog_editable_enters (GNOME_DIALOG (dialog), GTK_EDITABLE (folder_name_entry));
|
gnome_dialog_editable_enters (GNOME_DIALOG (dialog), GTK_EDITABLE (folder_name_entry));
|
||||||
|
|
||||||
gtk_signal_connect (GTK_OBJECT (folder_name_entry), "changed",
|
|
||||||
GTK_SIGNAL_FUNC (folder_name_entry_changed_cb), dialog);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static GtkWidget *
|
static GtkWidget *
|
||||||
@ -419,6 +431,12 @@ e_shell_show_folder_creation_dialog (EShell *shell,
|
|||||||
gtk_signal_connect (GTK_OBJECT (dialog), "destroy",
|
gtk_signal_connect (GTK_OBJECT (dialog), "destroy",
|
||||||
GTK_SIGNAL_FUNC (dialog_destroy_cb), dialog_data);
|
GTK_SIGNAL_FUNC (dialog_destroy_cb), dialog_data);
|
||||||
|
|
||||||
|
gtk_signal_connect (GTK_OBJECT (dialog_data->folder_name_entry), "changed",
|
||||||
|
GTK_SIGNAL_FUNC (folder_name_entry_changed_cb), dialog_data);
|
||||||
|
|
||||||
|
gtk_signal_connect (GTK_OBJECT (dialog_data->storage_set_view), "folder_selected",
|
||||||
|
storage_set_view_folder_selected_cb, dialog_data);
|
||||||
|
|
||||||
gtk_signal_connect_while_alive (GTK_OBJECT (shell), "destroy",
|
gtk_signal_connect_while_alive (GTK_OBJECT (shell), "destroy",
|
||||||
GTK_SIGNAL_FUNC (shell_destroy_cb), dialog_data,
|
GTK_SIGNAL_FUNC (shell_destroy_cb), dialog_data,
|
||||||
GTK_OBJECT (dialog));
|
GTK_OBJECT (dialog));
|
||||||
|
@ -114,7 +114,9 @@ folder_creation_dialog_result_cb (EShell *shell,
|
|||||||
dialog = E_SHELL_FOLDER_SELECTION_DIALOG (data);
|
dialog = E_SHELL_FOLDER_SELECTION_DIALOG (data);
|
||||||
priv = dialog->priv;
|
priv = dialog->priv;
|
||||||
|
|
||||||
e_storage_set_view_set_current_folder (E_STORAGE_SET_VIEW (priv->storage_set_view), path);
|
if (result == E_SHELL_FOLDER_CREATION_DIALOG_RESULT_SUCCESS)
|
||||||
|
e_storage_set_view_set_current_folder (E_STORAGE_SET_VIEW (priv->storage_set_view),
|
||||||
|
path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user