Updated. (emfv_popup_copy): Updated.
2003-11-14 Jeffrey Stedfast <fejj@ximian.com> * em-folder-view.c (emfv_popup_move): Updated. (emfv_popup_copy): Updated. * em-folder-tree.c (emft_popup_copy): Updated. (emft_popup_move): Updated. * em-folder-selection.c (create_dialog): New convenience function to construct the dialog contents for all three public functions. (em_folder_selection_run_dialog): Now longer takes a caption arg. (em_folder_selection_run_dialog_uri): Same. (em_select_folder): Here too. svn path=/trunk/; revision=23353
This commit is contained in:

committed by
Jeffrey Stedfast

parent
8b11b6d449
commit
0217b6c0dd
@ -1,3 +1,17 @@
|
|||||||
|
2003-11-14 Jeffrey Stedfast <fejj@ximian.com>
|
||||||
|
|
||||||
|
* em-folder-view.c (emfv_popup_move): Updated.
|
||||||
|
(emfv_popup_copy): Updated.
|
||||||
|
|
||||||
|
* em-folder-tree.c (emft_popup_copy): Updated.
|
||||||
|
(emft_popup_move): Updated.
|
||||||
|
|
||||||
|
* em-folder-selection.c (create_dialog): New convenience function
|
||||||
|
to construct the dialog contents for all three public functions.
|
||||||
|
(em_folder_selection_run_dialog): Now longer takes a caption arg.
|
||||||
|
(em_folder_selection_run_dialog_uri): Same.
|
||||||
|
(em_select_folder): Here too.
|
||||||
|
|
||||||
2003-11-13 Jeffrey Stedfast <fejj@ximian.com>
|
2003-11-13 Jeffrey Stedfast <fejj@ximian.com>
|
||||||
|
|
||||||
* mail-component.c (mail_component_get_tree_model): Use
|
* mail-component.c (mail_component_get_tree_model): Use
|
||||||
|
@ -35,11 +35,53 @@
|
|||||||
#include "mail-tools.h"
|
#include "mail-tools.h"
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
folder_selected_cb (EMFolderTree *emft, const char *path, const char *uri, GtkDialog *dialog)
|
||||||
|
{
|
||||||
|
gtk_dialog_set_response_sensitive (dialog, GTK_RESPONSE_OK, TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
static GtkWidget *
|
||||||
|
create_dialog (GtkWindow *parent, EMFolderTree *emft, const char *title, const char *default_uri, gboolean allow_create)
|
||||||
|
{
|
||||||
|
GtkWidget *dialog;
|
||||||
|
|
||||||
|
dialog = gtk_dialog_new ();
|
||||||
|
|
||||||
|
if (parent)
|
||||||
|
gtk_window_set_transient_for ((GtkWindow *) dialog, parent);
|
||||||
|
|
||||||
|
gtk_window_set_default_size (GTK_WINDOW (dialog), 350, 300);
|
||||||
|
gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
|
||||||
|
gtk_window_set_title (GTK_WINDOW (dialog), title);
|
||||||
|
gtk_container_set_border_width (GTK_CONTAINER (dialog), 6);
|
||||||
|
gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), 6);
|
||||||
|
gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (dialog)->vbox), 6);
|
||||||
|
|
||||||
|
if (allow_create)
|
||||||
|
gtk_dialog_add_buttons (GTK_DIALOG (dialog), GTK_STOCK_NEW, GTK_RESPONSE_APPLY, NULL);
|
||||||
|
|
||||||
|
gtk_dialog_add_buttons (GTK_DIALOG (dialog),
|
||||||
|
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
|
||||||
|
GTK_STOCK_OK, GTK_RESPONSE_OK,
|
||||||
|
NULL);
|
||||||
|
|
||||||
|
if (default_uri == NULL)
|
||||||
|
gtk_dialog_set_response_sensitive (GTK_DIALOG (dialog), GTK_RESPONSE_OK, FALSE);
|
||||||
|
else
|
||||||
|
em_folder_tree_set_selected (emft, default_uri);
|
||||||
|
|
||||||
|
gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK);
|
||||||
|
|
||||||
|
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), GTK_WIDGET (emft), TRUE, TRUE, 6);
|
||||||
|
|
||||||
|
g_signal_connect (emft, "folder-selected", G_CALLBACK (folder_selected_cb), dialog);
|
||||||
|
|
||||||
|
return dialog;
|
||||||
|
}
|
||||||
|
|
||||||
CamelFolder *
|
CamelFolder *
|
||||||
em_folder_selection_run_dialog (GtkWindow *parent_window,
|
em_folder_selection_run_dialog (GtkWindow *parent_window, const char *title, CamelFolder *default_folder)
|
||||||
const char *title,
|
|
||||||
const char *caption,
|
|
||||||
CamelFolder *default_folder)
|
|
||||||
{
|
{
|
||||||
CamelFolder *selected_folder;
|
CamelFolder *selected_folder;
|
||||||
EMFolderTreeModel *model;
|
EMFolderTreeModel *model;
|
||||||
@ -48,23 +90,18 @@ em_folder_selection_run_dialog (GtkWindow *parent_window,
|
|||||||
const char *uri;
|
const char *uri;
|
||||||
int response;
|
int response;
|
||||||
|
|
||||||
dialog = gtk_dialog_new_with_buttons (title, parent_window, GTK_DIALOG_DESTROY_WITH_PARENT,
|
|
||||||
GTK_STOCK_NEW, GTK_RESPONSE_APPLY,
|
|
||||||
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
|
|
||||||
GTK_STOCK_OK, GTK_RESPONSE_OK, NULL);
|
|
||||||
|
|
||||||
model = mail_component_get_tree_model (mail_component_peek ());
|
model = mail_component_get_tree_model (mail_component_peek ());
|
||||||
emft = em_folder_tree_new_with_model (model);
|
emft = em_folder_tree_new_with_model (model);
|
||||||
gtk_widget_show (emft);
|
gtk_widget_show (emft);
|
||||||
|
|
||||||
gtk_box_pack_start_defaults ((GtkBox *) ((GtkDialog *) dialog)->vbox, emft);
|
|
||||||
|
|
||||||
if (default_folder) {
|
if (default_folder) {
|
||||||
char *default_uri;
|
char *default_uri;
|
||||||
|
|
||||||
default_uri = mail_tools_folder_to_url (default_folder);
|
default_uri = mail_tools_folder_to_url (default_folder);
|
||||||
em_folder_tree_set_selected ((EMFolderTree *) emft, default_uri);
|
dialog = create_dialog (parent_window, (EMFolderTree *) emft, title, default_uri, FALSE);
|
||||||
g_free (default_uri);
|
g_free (default_uri);
|
||||||
|
} else {
|
||||||
|
dialog = create_dialog (parent_window, (EMFolderTree *) emft, title, NULL, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
response = gtk_dialog_run (GTK_DIALOG (dialog));
|
response = gtk_dialog_run (GTK_DIALOG (dialog));
|
||||||
@ -87,10 +124,7 @@ em_folder_selection_run_dialog (GtkWindow *parent_window,
|
|||||||
|
|
||||||
/* FIXME: This isn't the way to do it, but then neither is the above, really ... */
|
/* FIXME: This isn't the way to do it, but then neither is the above, really ... */
|
||||||
char *
|
char *
|
||||||
em_folder_selection_run_dialog_uri (GtkWindow *parent_window,
|
em_folder_selection_run_dialog_uri (GtkWindow *parent_window, const char *title, const char *default_uri)
|
||||||
const char *title,
|
|
||||||
const char *caption,
|
|
||||||
const char *default_uri)
|
|
||||||
{
|
{
|
||||||
EMFolderTreeModel *model;
|
EMFolderTreeModel *model;
|
||||||
GtkWidget *dialog;
|
GtkWidget *dialog;
|
||||||
@ -99,19 +133,14 @@ em_folder_selection_run_dialog_uri (GtkWindow *parent_window,
|
|||||||
int response;
|
int response;
|
||||||
char *ret;
|
char *ret;
|
||||||
|
|
||||||
dialog = gtk_dialog_new_with_buttons (title, parent_window, GTK_DIALOG_DESTROY_WITH_PARENT,
|
|
||||||
GTK_STOCK_NEW, GTK_RESPONSE_APPLY,
|
|
||||||
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
|
|
||||||
GTK_STOCK_OK, GTK_RESPONSE_OK, NULL);
|
|
||||||
|
|
||||||
model = mail_component_get_tree_model (mail_component_peek ());
|
model = mail_component_get_tree_model (mail_component_peek ());
|
||||||
emft = em_folder_tree_new_with_model (model);
|
emft = em_folder_tree_new_with_model (model);
|
||||||
gtk_widget_show (emft);
|
gtk_widget_show (emft);
|
||||||
|
|
||||||
gtk_box_pack_start_defaults ((GtkBox *) ((GtkDialog *) dialog)->vbox, emft);
|
|
||||||
|
|
||||||
if (default_uri)
|
if (default_uri)
|
||||||
em_folder_tree_set_selected ((EMFolderTree *) emft, default_uri);
|
dialog = create_dialog (parent_window, (EMFolderTree *) emft, title, default_uri, FALSE);
|
||||||
|
else
|
||||||
|
dialog = create_dialog (parent_window, (EMFolderTree *) emft, title, NULL, FALSE);
|
||||||
|
|
||||||
response = gtk_dialog_run (GTK_DIALOG (dialog));
|
response = gtk_dialog_run (GTK_DIALOG (dialog));
|
||||||
|
|
||||||
@ -138,7 +167,7 @@ struct _select_folder_data {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static void
|
static void
|
||||||
emfs_response (GtkDialog *dialog, int response, struct _select_folder_data *d)
|
emfs_response (GtkWidget *dialog, int response, struct _select_folder_data *d)
|
||||||
{
|
{
|
||||||
EMFolderTree *emft = g_object_get_data ((GObject *) dialog, "emft");
|
EMFolderTree *emft = g_object_get_data ((GObject *) dialog, "emft");
|
||||||
const char *uri;
|
const char *uri;
|
||||||
@ -154,27 +183,22 @@ emfs_response (GtkDialog *dialog, int response, struct _select_folder_data *d)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
em_select_folder (GtkWindow *parent_window, const char *title, const char *text,
|
em_select_folder (GtkWindow *parent_window, const char *title, const char *default_uri,
|
||||||
const char *default_uri, void (*done) (const char *uri, void *user_data), void *user_data)
|
void (*done) (const char *uri, void *user_data), void *user_data)
|
||||||
{
|
{
|
||||||
struct _select_folder_data *d;
|
struct _select_folder_data *d;
|
||||||
EMFolderTreeModel *model;
|
EMFolderTreeModel *model;
|
||||||
GtkWidget *dialog;
|
GtkWidget *dialog;
|
||||||
GtkWidget *emft;
|
GtkWidget *emft;
|
||||||
|
|
||||||
dialog = gtk_dialog_new_with_buttons (title, parent_window, GTK_DIALOG_DESTROY_WITH_PARENT,
|
|
||||||
GTK_STOCK_NEW, GTK_RESPONSE_APPLY,
|
|
||||||
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
|
|
||||||
GTK_STOCK_OK, GTK_RESPONSE_OK, NULL);
|
|
||||||
|
|
||||||
model = mail_component_get_tree_model (mail_component_peek ());
|
model = mail_component_get_tree_model (mail_component_peek ());
|
||||||
emft = em_folder_tree_new_with_model (model);
|
emft = em_folder_tree_new_with_model (model);
|
||||||
gtk_widget_show (emft);
|
gtk_widget_show (emft);
|
||||||
|
|
||||||
gtk_box_pack_start_defaults ((GtkBox *) ((GtkDialog *) dialog)->vbox, emft);
|
|
||||||
|
|
||||||
if (default_uri)
|
if (default_uri)
|
||||||
em_folder_tree_set_selected ((EMFolderTree *) emft, default_uri);
|
dialog = create_dialog (parent_window, (EMFolderTree *) emft, title, default_uri, FALSE);
|
||||||
|
else
|
||||||
|
dialog = create_dialog (parent_window, (EMFolderTree *) emft, title, NULL, FALSE);
|
||||||
|
|
||||||
d = g_malloc0 (sizeof (*d));
|
d = g_malloc0 (sizeof (*d));
|
||||||
d->data = user_data;
|
d->data = user_data;
|
||||||
|
@ -34,16 +34,13 @@ extern "C" {
|
|||||||
|
|
||||||
CamelFolder *em_folder_selection_run_dialog (GtkWindow *parent_window,
|
CamelFolder *em_folder_selection_run_dialog (GtkWindow *parent_window,
|
||||||
const char *title,
|
const char *title,
|
||||||
const char *caption,
|
|
||||||
CamelFolder *default_folder);
|
CamelFolder *default_folder);
|
||||||
|
|
||||||
char *em_folder_selection_run_dialog_uri (GtkWindow *parent_window,
|
char *em_folder_selection_run_dialog_uri (GtkWindow *parent_window,
|
||||||
const char *title,
|
const char *title,
|
||||||
const char *caption,
|
const char *default_uri);
|
||||||
const char *default_folder_uri);
|
|
||||||
|
|
||||||
void em_select_folder (GtkWindow *parent_window, const char *title, const char *text,
|
void em_select_folder (GtkWindow *parent_window, const char *title, const char *default_uri,
|
||||||
const char *default_folder_uri,
|
|
||||||
void (*done)(const char *uri, void *data),
|
void (*done)(const char *uri, void *data),
|
||||||
void *data);
|
void *data);
|
||||||
|
|
||||||
|
@ -1220,7 +1220,6 @@ emft_popup_copy (GtkWidget *item, EMFolderTree *emft)
|
|||||||
cfd->delete = FALSE;
|
cfd->delete = FALSE;
|
||||||
|
|
||||||
em_select_folder (NULL, _("Select folder"),
|
em_select_folder (NULL, _("Select folder"),
|
||||||
_("Select destination to copy folder into"),
|
|
||||||
NULL, emft_popup_copy_folder_selected, cfd);
|
NULL, emft_popup_copy_folder_selected, cfd);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1234,7 +1233,6 @@ emft_popup_move (GtkWidget *item, EMFolderTree *emft)
|
|||||||
cfd->delete = TRUE;
|
cfd->delete = TRUE;
|
||||||
|
|
||||||
em_select_folder (NULL, _("Select folder"),
|
em_select_folder (NULL, _("Select folder"),
|
||||||
_("Select destination to move folder into"),
|
|
||||||
NULL, emft_popup_copy_folder_selected, cfd);
|
NULL, emft_popup_copy_folder_selected, cfd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -586,7 +586,7 @@ emfv_popup_move(GtkWidget *w, EMFolderView *emfv)
|
|||||||
d->uids = message_list_get_selected(emfv->list);
|
d->uids = message_list_get_selected(emfv->list);
|
||||||
d->delete = TRUE;
|
d->delete = TRUE;
|
||||||
|
|
||||||
em_select_folder ((GtkWindow *) emfv, _("Select folder"), NULL, NULL, emfv_popup_move_cb, d);
|
em_select_folder ((GtkWindow *) emfv, _("Select folder"), NULL, emfv_popup_move_cb, d);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -600,7 +600,7 @@ emfv_popup_copy(GtkWidget *w, EMFolderView *emfv)
|
|||||||
d->uids = message_list_get_selected(emfv->list);
|
d->uids = message_list_get_selected(emfv->list);
|
||||||
d->delete = FALSE;
|
d->delete = FALSE;
|
||||||
|
|
||||||
em_select_folder ((GtkWindow *) emfv, _("Select folder"), NULL, NULL, emfv_popup_move_cb, d);
|
em_select_folder ((GtkWindow *) emfv, _("Select folder"), NULL, emfv_popup_move_cb, d);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
Reference in New Issue
Block a user