aboutsummaryrefslogtreecommitdiffstats
path: root/composer/e-msg-composer-attachment.c
blob: f4741d987f50bab2b41977d828359bbc580ecd26 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
/* e-msg-composer-attachment.c
 *
 * Copyright (C) 1999  Helix Code, Inc.
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of the
 * License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public
 * License along with this program; if not, write to the
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 * Boston, MA 02111-1307, USA.
 *
 * Author: Ettore Perazzoli
 */

/* This is the object representing an email attachment.  It is implemented as a
   GtkObject to make it easier for the application to handle it.  For example,
   the "changed" signal is emitted whenever something changes in the
   attachment.  Also, this contains the code to let users edit the
   attachment manually. */

#include <sys/stat.h>

#include <gnome.h>

#include "e-msg-composer-attachment.h"


enum {
    CHANGED,
    LAST_SIGNAL
};
static guint signals[LAST_SIGNAL] = { 0 };

static GtkObjectClass *parent_class = NULL;


/* Utility functions.  */

static const gchar *
get_mime_type (const gchar *file_name)
{
    const gchar *mime_type;

    mime_type = gnome_mime_type_of_file (file_name);
    if (mime_type == NULL)
        mime_type = "application/octet-stream";

    return mime_type;
}

static void
init_mime_type (EMsgComposerAttachment *attachment)
{
    attachment->mime_type = g_strdup (get_mime_type (attachment->file_name));
}

static void
set_mime_type (EMsgComposerAttachment *attachment)
{
    g_free (attachment->mime_type);
    init_mime_type (attachment);
}

static void
changed (EMsgComposerAttachment *attachment)
{
    gtk_signal_emit (GTK_OBJECT (attachment), signals[CHANGED]);
}


/* GtkObject methods.  */

static void
destroy (GtkObject *object)
{
    EMsgComposerAttachment *attachment;

    attachment = E_MSG_COMPOSER_ATTACHMENT (object);

    g_free (attachment->file_name);
    g_free (attachment->description);
    g_free (attachment->mime_type);
}


/* Signals.  */

static void
real_changed (EMsgComposerAttachment *msg_composer_attachment)
{
    g_return_if_fail (msg_composer_attachment != NULL);
    g_return_if_fail (E_IS_MSG_COMPOSER_ATTACHMENT (msg_composer_attachment));
}


static void
class_init (EMsgComposerAttachmentClass *klass)
{
    GtkObjectClass *object_class;

    object_class = (GtkObjectClass*) klass;

    parent_class = gtk_type_class (gtk_object_get_type ());

    object_class->destroy = destroy;

    signals[CHANGED] = gtk_signal_new ("changed",
                       GTK_RUN_FIRST,
                       object_class->type,
                       GTK_SIGNAL_OFFSET
                        (EMsgComposerAttachmentClass,
                         changed),
                       gtk_marshal_NONE__NONE,
                       GTK_TYPE_NONE, 0);


    gtk_object_class_add_signals (object_class, signals, LAST_SIGNAL);

    klass->changed = real_changed;
}

static void
init (EMsgComposerAttachment *msg_composer_attachment)
{
    msg_composer_attachment->editor_gui = NULL;
    msg_composer_attachment->file_name = NULL;
    msg_composer_attachment->description = NULL;
    msg_composer_attachment->mime_type = NULL;
    msg_composer_attachment->size = 0;
}

GtkType
e_msg_composer_attachment_get_type (void)
{
    static GtkType type = 0;

    if (type == 0) {
        static const GtkTypeInfo info = {
            "EMsgComposerAttachment",
            sizeof (EMsgComposerAttachment),
            sizeof (EMsgComposerAttachmentClass),
            (GtkClassInitFunc) class_init,
            (GtkObjectInitFunc) init,
            /* reserved_1 */ NULL,
            /* reserved_2 */ NULL,
            (GtkClassInitFunc) NULL,
        };

        type = gtk_type_unique (gtk_object_get_type (), &info);
    }

    return type;
}


/**
 * e_msg_composer_attachment_new:
 * @file_name: 
 * 
 * Return value: 
 **/
EMsgComposerAttachment *
e_msg_composer_attachment_new (const gchar *file_name)
{
    EMsgComposerAttachment *new;
    struct stat statbuf;

    g_return_val_if_fail (file_name != NULL, NULL);

    new = gtk_type_new (e_msg_composer_attachment_get_type ());

    new->editor_gui = NULL;

    new->file_name = g_strdup (file_name);
    new->description = g_strdup (g_basename (new->file_name));

    if (stat (file_name, &statbuf) < 0)
        new->size = 0;
    else
        new->size = statbuf.st_size;

    init_mime_type (new);

    return new;
}


/* The attachment property dialog.  */

struct _DialogData {
    GtkWidget *dialog;
    GtkEntry *file_name_entry;
    GtkEntry *description_entry;
    GtkEntry *mime_type_entry;
    GtkWidget *browse_widget;
    EMsgComposerAttachment *attachment;
};
typedef struct _DialogData DialogData;

static void
destroy_dialog_data (DialogData *data)
{
    if (data->browse_widget != NULL)
        gtk_widget_destroy (data->browse_widget);
    g_free (data);
}

static void
update_mime_type (DialogData *data)
{
    const gchar *mime_type;
    const gchar *file_name;

    file_name = gtk_entry_get_text (data->file_name_entry);
    mime_type = get_mime_type (file_name);

    gtk_entry_set_text (data->mime_type_entry, mime_type);
}

static void
browse_ok_cb (GtkWidget *widget,
          gpointer data)
{
    GtkWidget *file_selection;
    DialogData *dialog_data;
    const gchar *file_name;

    dialog_data = (DialogData *) data;
    file_selection = gtk_widget_get_toplevel (widget);

    file_name = gtk_file_selection_get_filename
                    (GTK_FILE_SELECTION (file_selection));

    gtk_entry_set_text (dialog_data->file_name_entry, file_name);

    update_mime_type (dialog_data);

    gtk_widget_hide (file_selection);
}

static void
browse (DialogData *data)
{
    if (data->browse_widget == NULL) {
        GtkWidget *file_selection;
        GtkWidget *cancel_button;
        GtkWidget *ok_button;

        file_selection
            = gtk_file_selection_new (_("Select attachment"));
        gtk_window_set_position (GTK_WINDOW (file_selection),
                     GTK_WIN_POS_MOUSE);
        gtk_window_set_transient_for (GTK_WINDOW (file_selection),
                          GTK_WINDOW (data->dialog));

        ok_button = GTK_FILE_SELECTION (file_selection)->ok_button;
        gtk_signal_connect (GTK_OBJECT (ok_button),
                    "clicked", GTK_SIGNAL_FUNC (browse_ok_cb),
                    data);

        cancel_button
            = GTK_FILE_SELECTION (file_selection)->cancel_button;
        gtk_signal_connect_object (GTK_OBJECT (cancel_button),
                       "clicked",
                       GTK_SIGNAL_FUNC (gtk_widget_hide),
                       GTK_OBJECT (file_selection));

        data->browse_widget = file_selection;
    }

    gtk_widget_show (GTK_WIDGET (data->browse_widget));
}

static void
set_entry (GladeXML *xml,
       const gchar *widget_name,
       const gchar *value)
{
    GtkEntry *entry;

    entry = GTK_ENTRY (glade_xml_get_widget (xml, widget_name));
    if (entry == NULL)
        g_warning ("Entry for `%s' not found.", widget_name);
    gtk_entry_set_text (entry, value);
}

static void
connect_entry_changed (GladeXML *gui,
               const gchar *name,
               GtkSignalFunc func,
               gpointer data)
{
    GtkWidget *widget;

    widget = glade_xml_get_widget (gui, name);
    gtk_signal_connect (GTK_OBJECT (widget), "changed", func, data);
}

static void
connect_widget (GladeXML *gui,
        const gchar *name,
        const gchar *signal_name,
        GtkSignalFunc func,
        gpointer data)
{
    GtkWidget *widget;

    widget = glade_xml_get_widget (gui, name);
    gtk_signal_connect (GTK_OBJECT (widget), signal_name, func, data);
}

static void
apply (DialogData *data)
{
    EMsgComposerAttachment *attachment;

    attachment = data->attachment;

    g_free (attachment->file_name);
    attachment->file_name = g_strdup (gtk_entry_get_text
                      (data->file_name_entry));

    g_free (attachment->description);
    attachment->description = g_strdup (gtk_entry_get_text
                        (data->description_entry));

    g_free (attachment->mime_type);
    attachment->mime_type = g_strdup (gtk_entry_get_text
                      (data->mime_type_entry));

    changed (attachment);
}

static void
entry_changed_cb (GtkWidget *widget, gpointer data)
{
    DialogData *dialog_data;
    GladeXML *gui;
    GtkWidget *apply_button;

    dialog_data = (DialogData *) data;
    gui = dialog_data->attachment->editor_gui;

    apply_button = glade_xml_get_widget (gui, "apply_button");
    gtk_widget_set_sensitive (apply_button, TRUE);
}

static void
close_cb (GtkWidget *widget,
      gpointer data)
{
    EMsgComposerAttachment *attachment;
    DialogData *dialog_data;

    dialog_data = (DialogData *) data;
    attachment = dialog_data->attachment;

    gtk_widget_destroy (glade_xml_get_widget (attachment->editor_gui,
                          "dialog"));
    gtk_object_unref (GTK_OBJECT (attachment->editor_gui));
    attachment->editor_gui = NULL;

    destroy_dialog_data (dialog_data);
}

static void
apply_cb (GtkWidget *widget,
      gpointer data)
{
    DialogData *dialog_data;

    dialog_data = (DialogData *) data;
    apply (dialog_data);
}

static void
ok_cb (GtkWidget *widget,
       gpointer data)
{
    apply_cb (widget, data);
    close_cb (widget, data);
}

static void
browse_cb (GtkWidget *widget,
       gpointer data)
{
    DialogData *dialog_data;

    dialog_data = (DialogData *) data;
    browse (dialog_data);
}

static void
file_name_focus_out_cb (GtkWidget *widget,
            GdkEventFocus *event,
            gpointer data)
{
    DialogData *dialog_data;

    dialog_data = (DialogData *) data;
    update_mime_type (dialog_data);
}


void
e_msg_composer_attachment_edit (EMsgComposerAttachment *attachment,
                GtkWidget *parent)
{
    DialogData *dialog_data;
    GladeXML *editor_gui;

    g_return_if_fail (attachment != NULL);
    g_return_if_fail (E_IS_MSG_COMPOSER_ATTACHMENT (attachment));

    if (attachment->editor_gui != NULL) {
        GtkWidget *window;

        window = glade_xml_get_widget (attachment->editor_gui,
                           "dialog");
        gdk_window_show (window->window);
        return;
    }

    editor_gui = glade_xml_new (E_GLADEDIR "/e-msg-composer-attachment.glade",
                    NULL);
    if (editor_gui == NULL) {
        g_warning ("Cannot load `e-msg-composer-attachment.glade'");
        return;
    }

    attachment->editor_gui = editor_gui;

    gtk_window_set_transient_for
        (GTK_WINDOW (glade_xml_get_widget (editor_gui, "dialog")),
         GTK_WINDOW (gtk_widget_get_toplevel (parent)));

    dialog_data = g_new (DialogData, 1);
    dialog_data->browse_widget = NULL;
    dialog_data->attachment = attachment;
    dialog_data->dialog = glade_xml_get_widget (editor_gui, "dialog");
    dialog_data->file_name_entry = GTK_ENTRY (glade_xml_get_widget
                          (editor_gui,
                           "file_name_entry"));
    dialog_data->description_entry = GTK_ENTRY (glade_xml_get_widget
                            (editor_gui,
                             "description_entry"));
    dialog_data->mime_type_entry = GTK_ENTRY (glade_xml_get_widget
                          (editor_gui,
                           "mime_type_entry"));

    if (attachment != NULL) {
        set_entry (editor_gui, "file_name_entry", attachment->file_name);
        set_entry (editor_gui, "description_entry", attachment->description);
        set_entry (editor_gui, "mime_type_entry", attachment->mime_type);
    }

    connect_entry_changed (editor_gui, "file_name_entry",
                   entry_changed_cb, dialog_data);
    connect_entry_changed (editor_gui, "description_entry",
                   entry_changed_cb, dialog_data);

    connect_widget (editor_gui, "ok_button", "clicked", ok_cb, dialog_data);
    connect_widget (editor_gui, "apply_button", "clicked", apply_cb, dialog_data);
    connect_widget (editor_gui, "close_button", "clicked", close_cb, dialog_data);

    connect_widget (editor_gui, "browse_button", "clicked", browse_cb, dialog_data);

    connect_widget (editor_gui, "file_name_entry", "focus_out_event",
            file_name_focus_out_cb, dialog_data);
}
'column1'>| 2004-05-18 Not Zed <NotZed@Ximian.com> * shell-errors.xml: added noshell and noshell-reason error strings. the latter seems a waste, but ... * main.c (idle_cb): use e_error for the new no shell errors. svn path=/trunk/; revision=25946 * load the <help> tag if present. (ee_response): handle the help responseNot Zed2004-05-182-13/+45 | | | | | | | | | | 2004-05-18 Not Zed <NotZed@Ximian.com> * e-error.c (ee_load): load the <help> tag if present. (ee_response): handle the help response and swallow the signal. (e_error_newv): setup help button if we have a help uri. svn path=/trunk/; revision=25945 * check for NULL implementation before calling it. (disco_sync): similar.Not Zed2004-05-182-6/+29 | | | | | | | | | | 2004-05-18 Not Zed <NotZed@Ximian.com> * camel-disco-folder.c (disco_expunge_uids): check for NULL implementation before calling it. (disco_sync): similar. Fixes crash #58278. svn path=/trunk/; revision=25944 * Hook up image button. (e_contact_editor_dispose): Dispose of file selectorHans Petter Jansson2004-05-184-9/+122 | | | | | | | | | | | | | | | | | 2004-05-17 Hans Petter Jansson <hpj@ximian.com> * gui/contact-editor/e-contact-editor.c (e_contact_editor_init): Hook up image button. (e_contact_editor_dispose): Dispose of file selector if it's around. (image_clicked): Implement. (file_selector_deleted): Implement. (image_cleared_cb): Implement. (image_selected_cb): Implement. * gui/contact-editor/contact-editor.glade: Make the contact image be a button that lets you change or discard the image. svn path=/trunk/; revision=25943 * Same.Jeffrey Stedfast2004-05-183-10/+16 | | | | | | | | | | | 2004-05-17 Jeffrey Stedfast <fejj@novell.com> * gui/dialogs/event-editor.c: Same. * gui/dialogs/comp-editor.c: Change E_PIXMAP size args over to E_ICON_SIZE_* values. svn path=/trunk/; revision=25942 * Use E_ICON_SIZE enum here. (display_notification): Same.Jeffrey Stedfast2004-05-185-10/+22 | | | | | | | | | | | | | | | | | | 2004-05-17 Jeffrey Stedfast <fejj@novell.com> * gui/alarm-notify/alarm-queue.c (tray_icon_blink_cb): Use E_ICON_SIZE enum here. (display_notification): Same. * gui/alarm-notify/alarm-notify-dialog.c (write_html_heading): Use E_ICON_SIZE_DIALOG here. * gui/e-week-view.c (e_week_view_realize): Same as below. * gui/e-day-view.c (e_day_view_realize): Use E_ICON_SIZE_MENU for the icon sizes rather than using pixel values. svn path=/trunk/; revision=25941 * Change E_PIXMAP size args over to E_ICON_SIZE_* values.Jeffrey Stedfast2004-05-182-5/+9 | | | | | | | | | 2004-05-17 Jeffrey Stedfast <fejj@novell.com> * gui/calendar-commands.c (pixmaps): Change E_PIXMAP size args over to E_ICON_SIZE_* values. svn path=/trunk/; revision=25940 * Change E_PIXMAP size args over to E_ICON_SIZE_* values.Jeffrey Stedfast2004-05-182-9/+12 | | | | | | | | | 2004-05-17 Jeffrey Stedfast <fejj@novell.com> * gui/contact-list-editor/e-contact-list-editor.c: Change E_PIXMAP size args over to E_ICON_SIZE_* values. svn path=/trunk/; revision=25939 * Change E_PIXMAP size args over to E_ICON_SIZE_* values.Jeffrey Stedfast2004-05-182-10/+13 | | | | | | | | | 2004-05-17 Jeffrey Stedfast <fejj@novell.com> * gui/component/addressbook-view.c: Change E_PIXMAP size args over to E_ICON_SIZE_* values. svn path=/trunk/; revision=25938 * Change E_PIXMAP() sizes over to E_ICON_SIZE enum values.Jeffrey Stedfast2004-05-182-8/+12 | | | | | | | | | 2004-05-17 Jeffrey Stedfast <fejj@novell.com> * e-shell-window-commands.c: Change E_PIXMAP() sizes over to E_ICON_SIZE enum values. svn path=/trunk/; revision=25937 * #include <gtk/gtkvbox.h>Jeffrey Stedfast2004-05-183-2/+9 | | | | | | | | | | | 2004-05-17 Jeffrey Stedfast <fejj@novell.com> * main.c: #include <gtk/gtkvbox.h> * e-shell-startup-wizard.c (make_importer_page): Use E_ICON_SIZE_DIALOG svn path=/trunk/; revision=25936 * New #define aliases for common icon usage cases where it may not beJeffrey Stedfast2004-05-181-0/+8 | | | | | | | | | | 2004-05-17 Jeffrey Stedfast <fejj@novell.com> * e-icon-factory.h (E_ICON_SIZE_LIST/STATUS): New #define aliases for common icon usage cases where it may not be obvious that they are the same size as menu icons. svn path=/trunk/; revision=25935 * Use E_ICON_SIZE_MENUJeffrey Stedfast2004-05-187-14/+36 | | | | | | | | | | | | | | | | | | | | | | | | | | 2004-05-17 Jeffrey Stedfast <fejj@novell.com> * gui/tasks-component.c (add_popup_menu_item): Use E_ICON_SIZE_MENU * gui/e-timezone-entry.c (e_timezone_entry_init): Use E_ICON_SIZE_BUTTON * gui/e-itip-control.c (write_error_html): Use E_ICON_SIZE enums. (write_html): Same. * gui/e-calendar-view.c (e_calendar_view_set_status_message): Use E_ICON_SIZE_STATUS (setup_popup_icons): Use E_ICON_SIZE_MENU * gui/e-calendar-table.c (e_calendar_table_init): Use E_ICON_SIZE_LIST rather than a hard-coded value of 16 pixels. (e_calendar_table_set_status_message): Use E_ICON_SIZE_STATUS * gui/calendar-component.c (add_popup_menu_item): Use E_ICON_SIZE_MENU rather than hard-coding the pixel size. svn path=/trunk/; revision=25934 * Use an E_ICON_SIZE enum value for the icon_size argument to get_icon.Jeffrey Stedfast2004-05-187-6/+29 | | | | | | | | | | | | | | | | | | | | | | | | | 2004-05-17 Jeffrey Stedfast <fejj@novell.com> * gui/widgets/e-minicard.c (e_minicard_init): Use an E_ICON_SIZE enum value for the icon_size argument to get_icon. * gui/widgets/eab-gui-util.c (eab_create_image_chooser_widget): Use E_ICON_SIZE_DIALOG as the icon_size argument to get_icon_filename. * gui/widgets/eab-contact-display.c (on_url_requested): Use an E_ICON_SIZE enum as the icon_size argument to get_icon_filename. * gui/contact-editor/e-contact-editor-im.c (setup_service_optmenu): Use E_ICON_SIZE_MENU here. * gui/component/select-names/e-select-names-popup.c (populate_popup_contact): Use E_ICON_SIZE_MENU here instead of 16. * gui/component/addressbook-view.c (set_status_message): Use the E_ICON_SIZE corresponding to 16x16 pixels. svn path=/trunk/; revision=25933 * Fixes #56373JP Rosevear2004-05-182-2/+9 | | | | | | | | | | | | 2004-05-17 JP Rosevear <jpr@ximian.com> Fixes #56373 * gui/comp-editor-factory.c (open_client): guess its an event for now svn path=/trunk/; revision=25932 * Updated Brazilian Portuguese translation done by Gustavo Maciel DiasGustavo Maciel Dias Vieira2004-05-182-3282/+3759 | | | | | | | | | 2004-05-17 Gustavo Maciel Dias Vieira <gustavo@sagui.org> * pt_BR.po: Updated Brazilian Portuguese translation done by Gustavo Maciel Dias Vieira <gustavo@sagui.org>. svn path=/trunk/; revision=25931 * Use E_ICON_SIZE_BUTTON for the icon size in the e_icon_factory_get_icon()Jeffrey Stedfast2004-05-183-2/+11 | | | | | | | | | | | | | 2004-05-17 Jeffrey Stedfast <fejj@novell.com> * e-url-entry.c (init): Use E_ICON_SIZE_BUTTON for the icon size in the e_icon_factory_get_icon() call. * e-combo-button.c (create_empty_image_widget): Don't hard-code the size of the icon in pixels, instead use the appropriate E_ICON_SIZE_ enum. svn path=/trunk/; revision=25930 * Fixed a string type-o.Jeffrey Stedfast2004-05-183-3/+7 | | | | | | | | | | 2004-05-17 Jeffrey Stedfast <fejj@novell.com> * camel-folder-search.c (search_match_threads): Fixed a string type-o. * camel-smime-context.c (sm_verify_cmsg): Fixed some spelling mistakes. svn path=/trunk/; revision=25929 * If the encrypted block was also signed, set the signature verificationJeffrey Stedfast2004-05-182-8/+43 | | | | | | | | | | 2004-05-17 Jeffrey Stedfast <fejj@novell.com> * camel-gpg-context.c (gpg_decrypt): If the encrypted block was also signed, set the signature verification status on the Validity structure as well. svn path=/trunk/; revision=25928 * Change dropdown list item 'Display a message' for reminder types to 'PopV Ravi Kumar Raju2004-05-171-1/+1 | | | | | | | | | | 2004-05-17 V Ravi Kumar Raju <vravikr@yahoo.co.uk> * gui/e-alarm-list.c (get_alarm_string): * gui/dialogs/alarm-page.glade: Change dropdown list item 'Display a message' for reminder types to 'Pop up an alert' svn path=/trunk/; revision=25927 * Change dropdown list item 'Display a message'for reminder types to 'Pop upV Ravi Kumar Raju2004-05-173-2/+8 | | | | | | | | | | 2004-05-17 V Ravi Kumar Raju <vravikr@yahoo.co.uk> * gui/e-alarm-list.c (get_alarm_string): * gui/dialogs/alarm-page.glade: Change dropdown list item 'Display a message'for reminder types to 'Pop up an alert' svn path=/trunk/; revision=25926 * if we don't have a RECURRENCE-ID, remove nothing, and use the instanceRodrigo Moya2004-05-172-7/+4 | | | | | | | | | | 2004-05-17 Rodrigo Moya <rodrigo@ximian.com> * gui/e-calendar-view.c (e_calendar_view_delete_selected_occurrence): if we don't have a RECURRENCE-ID, remove nothing, and use the instance start time for the RECURRENCE-ID as the default. svn path=/trunk/; revision=25925 * if we don't have a RECURRENCE-ID, remove nothing.Rodrigo Moya2004-05-172-11/+18 | | | | | | | | | 2004-05-17 Rodrigo Moya <rodrigo@ximian.com> * gui/e-calendar-view.c (e_calendar_view_delete_selected_occurrence): if we don't have a RECURRENCE-ID, remove nothing. svn path=/trunk/; revision=25924 * #include <gtk/gtkliststore.h>. Fixes bug #58407.Jeffrey Stedfast2004-05-172-0/+6 | | | | | | | | | 2004-05-17 Jeffrey Stedfast <fejj@ximian.com> * em-mailer-prefs.c: #include <gtk/gtkliststore.h>. Fixes bug #58407. svn path=/trunk/; revision=25923 * Add bug numberJP Rosevear2004-05-171-0/+2 | | | | svn path=/trunk/; revision=25922 * bitmap_unref the mask, don't object_unref itJP Rosevear2004-05-172-1/+6 | | | | | | | | | 2004-05-17 JP Rosevear <jpr@novell.com> * e-task-widget.c (e_task_widget_construct): bitmap_unref the mask, don't object_unref it svn path=/trunk/; revision=25921 * Fixes #56885H P Nadig2004-05-172-2/+9 | | | | | | | | | | | 2004-05-17 H P Nadig <hpnadig@pacific.net.in> Fixes #56885 * gui/dialogs/select-source-dialog.c (select_source_dialog): Changed the window size of source dialog and a minor naming issue. svn path=/trunk/; revision=25920 * put the None item at the head of the providers list.Not Zed2004-05-173-14/+29 | | | | | | | | | | | | | | | | | 2004-05-17 Not Zed <NotZed@Ximian.com> * mail-account-gui.c (mail_account_gui_setup): put the None item at the head of the providers list. (mail_account_gui_setup): only set the transport default fallback if it is not a STORE_AND_TRANSPORT type provider (since that was just disabled). #57939. * message-list.c (on_selection_changed_cmd): only NOOP if we have no selection and no uid, if we have a selection and no uid, then always update. Fixes #58267 without breaking the double-load thing. svn path=/trunk/; revision=25919 * ** Bug #56050.Not Zed2004-05-173-3/+90 | | | | | | | | | | | | | | | 2004-05-17 Not Zed <NotZed@Ximian.com> ** Bug #56050. * providers/imap/camel-imap-store.c (imap_get_trash) (imap_get_junk): similar to below. * providers/local/camel-local-store.c (local_get_trash) (local_get_junk): set state file on trash/junk to something we know about. svn path=/trunk/; revision=25918 * if we have no folder in-memory, load it if we're not doing it fast to getNot Zed2004-05-172-0/+11 | | | | | | | | | | 2004-05-17 Not Zed <NotZed@Ximian.com> * providers/local/camel-mh-store.c (fill_fi): if we have no folder in-memory, load it if we're not doing it fast to get really up to date unread counts. #57616. svn path=/trunk/; revision=25917 * keep the hide deleted status. Makes #51082 work at last.Not Zed2004-05-173-1/+7 | | | | | | | | | 2004-05-17 Not Zed <NotZed@Ximian.com> * em-folder-view.c (em_folder_view_open_selected): keep the hide deleted status. Makes #51082 work at last. svn path=/trunk/; revision=25916 * ** Bug #6556.Not Zed2004-05-176-238/+478 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2004-05-17 Not Zed <NotZed@Ximian.com> ** Bug #6556. * message-list.c (ml_drop_async_desc, ml_drop_async_drop) (ml_drop_async_done, ml_drop_async_free, ml_drag_data_action) (ml_drop_popup_copy, ml_drop_popup_move, ml_drop_popup_cancel) (ml_tree_drag_data_received): implement async drop operations and the ask drop option menu. 2004-05-14 Not Zed <NotZed@Ximian.com> ** Bug #6556. * message-list.c (ml_selection_received_uidlist): removed, not needed anymore. (ml_selection_received): call get_uidlist to paste the selection. (ml_tree_drag_data_received): same here. * em-folder-tree.c (emft_drop_uid_list): removed, not needed because of below change. * em-utils.c (em_utils_selection_get_uidlist): actually do the copy now, don't just decode the data. * em-folder-tree.c (tree_drag_data_received): just copy the selection data data itself, dont decode yet. (emft_import_message_rfc822): removed, not needed, use em utils stuff instead. (emft_drop_message_rfc822): same. (emft_drop_text_uri_list): same. (emft_drop_async_free): simply free stuff. (emft_drop_async_drop): call em_utils stuff where they exist to do the drop. * message-list.c (ml_tree_drag_data_get): send x-mailbox instead of message/rfc822 for the mailbox. (ml_tree_drag_data_received): handle drop of x-mailbox differently to message/rfc822. (ml_tree_drag_motion): implement so proper options are setup whilst dragging. (message_list_construct): seutp the drag src/dest types for changes typs and with ASK action. * em-utils.c (em_utils_read_messages_from_stream): dont unref the stream when we get it. (em_utils_selection_get_mailbox): add an argument to scan from or not, for message/rfc822 vs x-mailbox drops. (em_utils_read_messages_from_stream): Same. * em-folder-tree.c (tree_drag_motion): default to move properly. * message-list.c (ml_selection_received_uidlist): take a move flag. (ml_tree_drag_data_received): handle move action. * em-folder-tree.c (em_folder_tree_new_with_model): got sick of this bloody warning. * em-format.c (default_headers[]): just remove x-mailer from the header list, if it isn't on by default. This is the default list. (em_format_default_headers): loop through everything. svn path=/trunk/; revision=25915 * don't allow creation of Trash or Junk folders.Not Zed2004-05-174-6/+46 | | | | | | | | | | | | | | | | | | | | | | | | 2004-05-14 Not Zed <NotZed@Ximian.com> * camel-store.c (camel_store_create_folder): don't allow creation of Trash or Junk folders. (camel_store_rename_folder): similar for rename. #57250. 2004-05-13 Not Zed <NotZed@Ximian.com> * camel-folder-summary.c (summary_build_content_info): set secure flag if we have a known security type. (flag_names[]): Added secure bit. (summary_build_content_info_message): set secure flag as appropriate. (summary_build_content_info_message): dont set attachments for simple types (non text), only base it on multipart/* stuff. (summary_build_content_info): same. * camel-folder-summary.h: added SECURE flag. Indicates signed or encrypted content. svn path=/trunk/; revision=25914 * Updated Portuguese translation.Duarte Loreto2004-05-172-2602/+3303 | | | | | | | | 2004-05-16 Duarte Loreto <happyguy_pt@hotmail.com> * pt.po: Updated Portuguese translation. svn path=/trunk/; revision=25913 * Updated Czech translation.Miloslav Trmac2004-05-152-163/+188 | | | | | | | | 2004-05-15 Miloslav Trmac <mitr@volny.cz> * cs.po: Updated Czech translation. svn path=/trunk/; revision=25912 * Rename MessageResend to MessageEdit since that's actually what it does.Jeffrey Stedfast2004-05-152-4/+9 | | | | | | | | | 2004-05-14 Jeffrey Stedfast <fejj@novell.com> * evolution-mail-message.xml: Rename MessageResend to MessageEdit since that's actually what it does. svn path=/trunk/; revision=25911 * s/RESEND/EDIT/Jeffrey Stedfast2004-05-154-36/+42 | | | | | | | | | | | | | | 2004-05-14 Jeffrey Stedfast <fejj@novell.com> * em-popup.h: s/RESEND/EDIT/ * em-popup.c (em_popup_target_new_select): s/RESEND/EDIT/ * em-folder-view.c: s/RESEND/EDIT/ (emfv_popup_edit): Renamed from emfv_popup_resend. Part of the fix for bug #58358 (The main fix was just a change to the ui file). svn path=/trunk/; revision=25910 * (config_write_style): fflush the gtkrc file.Jeffrey Stedfast2004-05-152-4/+6 | | | | svn path=/trunk/; revision=25909 * Build the path to the gtkrc filename and store it on the config struct soJeffrey Stedfast2004-05-152-30/+20 | | | | | | | | | | | | | 2004-05-14 Jeffrey Stedfast <fejj@novell.com> * mail-config.c (mail_config_init): Build the path to the gtkrc filename and store it on the config struct so we don't have to keep rebuilding it. (config_write_style): Reuse config->gtkrc string instead of constructing the path again. (mail_config_write_on_exit): Free the gtkrc path. svn path=/trunk/; revision=25908 * Updated the #if 0'd code for the API chanegs made toJeffrey Stedfast2004-05-155-7/+23 | | | | | | | | | | | | | | | | | 2004-05-14 Jeffrey Stedfast <fejj@novell.com> * em-popup.c (emp_popup_resend): Updated the #if 0'd code for the API chanegs made to em_utils_edit_messages(). * em-folder-view.c (em_folder_view_open_selected): Pass TRUE as the replace argument to em_utils_edit_messages() here. (emfv_popup_resend): Pass FALSE here. Fixes bug #58357. * em-composer-utils.c (em_utils_edit_messages): Now takes a 'replace' argument specifying whether or not the original message should be deleted when the edited message is sent or saved. svn path=/trunk/; revision=25907 * Same. Also changed the "Valid signature, cannot verify sender" string toJeffrey Stedfast2004-05-153-9/+27 | | | | | | | | | | | | | | 2004-05-14 Jeffrey Stedfast <fejj@novell.com> * em-format-html.c (efh_format_secure): Same. Also changed the "Valid signature, cannot verify sender" string to "Valid signature but cannot verify sender" as I think it reads nicer. * em-format-html-display.c (efhd_format_secure): Since signature status is a tri-state, use 3 different colours too (yellow for valid sig but unknown sender). svn path=/trunk/; revision=25906 * use e_cal_generate_instances_for_object instead ofRodrigo Moya2004-05-146-30/+28 | | | | | | | | | | | | | | 2004-05-14 Rodrigo Moya <rodrigo@ximian.com> * gui/e-day-view.c (process_component): * gui/e-week-view.c (process_component): * gui/gnome-cal.c (gnome_calendar_purge): * gui/tag-calendar.c (tag_calendar_by_comp): * gui/e-cal-model.c (e_cal_model_generate_instances): use e_cal_generate_instances_for_object instead of e_cal_recur_generate_instances. svn path=/trunk/; revision=25905 * invoke options dialog even if backend does not support email alarms andNicel KM2004-05-142-1/+8 | | | | | | | | | | 2004-05-14 Nicel KM <mnicel@novell.com> * gui/dialogs/alarm-page.c (button_options_clicked_cb): invoke options dialog even if backend does not support email alarms and get email address only if supported. svn path=/trunk/; revision=25904 * Don't include the last default_header when setting the default headers. IfJeffrey Stedfast2004-05-143-19/+25 | | | | | | | | | | | | | | | 2004-05-13 Jeffrey Stedfast <fejj@novell.com> * em-format.c (em_format_default_headers): Don't include the last default_header when setting the default headers. If the user has configured Evolution to display the Mailer header, then it will be set in em-folder-view.c as appropriate when it checks the gconf settings. Fixes bug #58217. * em-mailer-prefs.c (em_mailer_prefs_construct): Default "x-evolution-mailer" header to disabled. svn path=/trunk/; revision=25903 * Add a stripsig filter. Fixes bug #52767.Jeffrey Stedfast2004-05-136-4/+252 | | | | | | | | | | | | 2004-05-13 Jeffrey Stedfast <fejj@novell.com> * em-format-quote.c (emfq_text_plain): Add a stripsig filter. Fixes bug #52767. * em-stripsig-filter.[c,h]: New filter class to strip signatures. Useful when generating forwards/replies. svn path=/trunk/; revision=25902 * only get the email address for alarms if the backend supports emailRodrigo Moya2004-05-132-2/+8 | | | | | | | | | 2004-05-13 Rodrigo Moya <rodrigo@ximian.com> * gui/dialogs/alarm-page.c (add_clicked_cb): only get the email address for alarms if the backend supports email alarms. svn path=/trunk/; revision=25901 * added more headers to camel.hJeffrey Stedfast2004-05-131-2/+7 | | | | svn path=/trunk/; revision=25900 * Updated Czech translation.Miloslav Trmac2004-05-132-720/+1036 | | | | | | | | 2004-05-13 Miloslav Trmac <mitr@volny.cz> * cs.po: Updated Czech translation. svn path=/trunk/; revision=25899 * move ignore case outside of block. Stupid c language.Not Zed2004-05-134-36/+69 | | | | | | | | | | | | | | | | | | | | | 2004-05-13 Not Zed <NotZed@Ximian.com> * em-migrate.c (em_migrate_folder): move ignore case outside of block. Stupid c language. * em-folder-view.c (emfv_format_popup_event): fix warning with cast. ** See bug #58304. * em-junk-filter.c (em_junk_sa_setting_notify): listen to sa settings changes, update some globals. (em_junk_filter_get_plugin): setup the gconf client here and listen to changes. (em_junk_sa_get_local_only, em_junk_sa_get_use_daemon) (em_junk_sa_get_daemon_port): removed, use globals instead. svn path=/trunk/; revision=25898 * Fixes #57644.Not Zed2004-05-133-5/+17 | | | | | | | | | | | | | | | | 2004-05-13 Not Zed <NotZed@Ximian.com> Fixes #57644. * gui/e-day-view.c (row_deleted_check_cb): strdup the uid, as below. (remove_uid_cb): and free it. * gui/e-week-view.c (row_deleted_check_cb): strdup the uid, 'cause otherwise it can go away later as we delete stuff. (remove_uid_cb): free the uid. svn path=/trunk/; revision=25897 * add some array bounds checking as an attempt to isolate the crash inNot Zed2004-05-132-0/+11 | | | | | | | | | | 2004-05-13 Not Zed <NotZed@Ximian.com> * gui/e-week-view-event-item.c (e_week_view_event_item_draw): add some array bounds checking as an attempt to isolate the crash in #57644. svn path=/trunk/; revision=25896 * call SetPasswordFunc before calling authenticate - some nss calls canNot Zed2004-05-132-0/+7 | | | | | | | | | | 2004-05-13 Not Zed <NotZed@Ximian.com> * lib/e-cert-db.c (e_cert_db_login_to_slot): call SetPasswordFunc before calling authenticate - some nss calls can overwrite the setting. #52820. svn path=/trunk/; revision=25895 * re-enabled the reply to selection stuff. I worked out how to make it work;Not Zed2004-05-133-20/+31 | | | | | | | | | | | | | | | 2004-05-13 Not Zed <NotZed@Ximian.com> * em-folder-view.c (emfv_message_reply): re-enabled the reply to selection stuff. I worked out how to make it work; I think. * em-format-html-display.c (efhd_html_button_press_event): if we aren't on a clickable object, do a null popup event instead. * em-folder-view.c (emfv_format_popup_event): do the full popup if we aren't on anything (not on a uri or part). See #8414. svn path=/trunk/; revision=25894 * added "email" to the uri_schema's attribute.Not Zed2004-05-133-0/+44 | | | | | | | | | | | | | | 2004-05-13 Not Zed <NotZed@Ximian.com> * GNOME_Evolution_Mail.server.in.in: added "email" to the uri_schema's attribute. * mail-component.c (impl_handleURI): handle email: uri's, specify opening a message on a folder. (handleuri_got_folder): open the message. For some 1337 s3Kr3t ha0x. svn path=/trunk/; revision=25893 * type-o fix for bug #58404Jeffrey Stedfast2004-05-131-1/+1 | | | | svn path=/trunk/; revision=25892 * eliminate the need for another variableJeffrey Stedfast2004-05-131-5/+2 | | | | svn path=/trunk/; revision=25891 * oops, tiny fixJeffrey Stedfast2004-05-131-0/+2 | | | | svn path=/trunk/; revision=25890 * Ignore PERMANENTFLAGS if it gives us an empty set. Works around brokenJeffrey Stedfast2004-05-132-3/+14 | | | | | | | | | | 2004-05-12 Jeffrey Stedfast <fejj@novell.com> * providers/imap/camel-imap-folder.c (camel_imap_folder_selected): Ignore PERMANENTFLAGS if it gives us an empty set. Works around broken IMAP servers like the one in bug #58355. svn path=/trunk/; revision=25889 * Call e_icon_factory_shutdown() after bonobo_main() exits.Jeffrey Stedfast2004-05-132-2/+9 | | | | | | | | | 2004-05-12 Jeffrey Stedfast <fejj@novell.com> * main.c (main): Call e_icon_factory_shutdown() after bonobo_main() exits. svn path=/trunk/; revision=25888 * New function to clean up the cached icons.Jeffrey Stedfast2004-05-131-0/+1 | | | | | | | | | 2004-05-12 Jeffrey Stedfast <fejj@novell.com> * e-icon-factory.c (e_icon_factory_shutdown): New function to clean up the cached icons. svn path=/trunk/; revision=25887 * *** empty log message ***Jeffrey Stedfast2004-05-132-9/+27 | | | | svn path=/trunk/; revision=25886 * add NNTP section, fix name to conform, mostly, with new novell naming ↵Aaron Weber2004-05-1314-153/+154 | | | | | | conventions. svn path=/trunk/; revision=25885 * Add PO box entries.Hans Petter Jansson2004-05-133-8/+155 | | | | | | | | | | | | | 2004-05-12 Hans Petter Jansson <hpj@ximian.com> * gui/contact-editor/contact-editor.glade: Add PO box entries. * gui/contact-editor/e-contact-editor.c (init_address_record): Hook up PO box entry. (fill_in_address_record): Ditto. (extract_address_record): Ditto. svn path=/trunk/; revision=25884 * Fixes bug #55208.S N Tejasvi2004-05-132-2/+51 | | | | | | | | | | | | 2004-04-18 S N Tejasvi <tejasvi_sn@gawab.com> Fixes bug #55208. * gui/contact-editor/e-contact-editor.c (save_contact): Do e_contact_editor_is_valid check to check the birth date and anniversary date format when user wants to save and warn him. svn path=/trunk/; revision=25883 * Updated Norwegian translation.Kjartan Maraas2004-05-122-1412/+1634 | | | | | | | | 2004-05-12 Kjartan Maraas <kmaraas@gnome.org> * no.po: Updated Norwegian translation. svn path=/trunk/; revision=25882 * Updated italian translationMarco Ciampa2004-05-122-727/+974 | | | | svn path=/trunk/; revision=25881 * Same.Jeffrey Stedfast2004-05-123-0/+8 | | | | | | | | | | 2004-05-12 Jeffrey Stedfast <fejj@novell.com> * vfolder-rule.c: Same. * filter-folder.c: Added a #include to fix some compile warnings. svn path=/trunk/; revision=25880 * ** See bug #58302.Not Zed2004-05-122-2/+11 | | | | | | | | | | | | | 2004-05-12 Not Zed <NotZed@Ximian.com> ** See bug #58302. * em-composer-utils.c (em_utils_post_to_folder): * em-composer-utils.c (em_utils_compose_new_message_with_mailto): poke the composer headers from account directly, don't call set headers which overwrites stuff. svn path=/trunk/; revision=25879 * enable threading option type on the search bar.Not Zed2004-05-122-0/+5 | | | | | | | | | 2004-05-12 Not Zed <NotZed@Ximian.com> * mail-component.c (setup_search_context): enable threading option type on the search bar. svn path=/trunk/; revision=25878 * load threading option if threading enabled. (xml_encode): write outNot Zed2004-05-126-27/+142 | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2004-05-12 Not Zed <NotZed@Ximian.com> * filter-rule.c (xml_decode): load threading option if threading enabled. (xml_encode): write out threading setting. (rule_copy): copy threading option. (rule_eq): compare threading. (build_code): build the match-threads stuff if set. (fr_grouping_changed): insead of the match_all match_any activate clalbacks. (fr_threading_changed): handle threading option menu * rule-context.c (rule_context_init): set capabilities flags. * vfolder-context.c (vfolder_context_init): set capabilities flags to include threading. * rule-context.h: added a capabilities flag, grouping and threading capabilities. Sort of a hack to workaround not being able to put grouping or threading into rules. * filter-rule.h: added an option for threading as well as grouping. svn path=/trunk/; revision=25877 * changed to match_threads. (camel_folder_search_search): remove threadNot Zed2004-05-127-162/+325 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2004-05-12 Not Zed <NotZed@Ximian.com> * camel-folder-search.c (search_threads): changed to match_threads. (camel_folder_search_search): remove thread matching stuff from here. 2004-05-06 Not Zed <NotZed@Ximian.com> * camel-digest-folder.c (digest_search_by_expression) (digest_search_by_uids): * providers/nntp/camel-nntp-folder.c (nntp_folder_search_by_expression) (nntp_folder_search_by_uids): * providers/imap/camel-imap-folder.c (imap_search_by_expression) (imap_search_by_uids): * providers/local/camel-local-folder.c (local_search_by_expression) (local_search_by_uids): use camel_folder_search_search & some minor cleanups. * camel-folder-search.c (search_threads): keep track of the match threads option for this search. (camel_folder_search_match_expression): Removed, not used anymore. (camel_folder_search_search): new api entry point for searching, a bit easier to use and needed for thread matching. * camel-folder-search.c (camel_folder_search_search): new search api entry point, take a full summary and optionally a subset of uids to match against. (search_match_all): use the uids' passed in to only search a subset of uid's. svn path=/trunk/; revision=25876 * added fixme for stock+label case, which doesn't work.Michael Zucci2004-05-121-0/+2 | | | | svn path=/trunk/; revision=25875 * fix the label tag for the upgrade failed box.Not Zed2004-05-123-1/+4 | | | | | | | | 2004-05-12 Not Zed <NotZed@Ximian.com> * shell-errors.xml: fix the label tag for the upgrade failed box. svn path=/trunk/; revision=25874 * duh, use the right node pointer for title and secondary text.Not Zed2004-05-122-3/+6 | | | | | | | | | 2004-05-12 Not Zed <NotZed@Ximian.com> * e-error.c (ee_load): duh, use the right node pointer for title and secondary text. svn path=/trunk/; revision=25873 * fix for xml error files, get i18n strings from generated .h files.Not Zed2004-05-122-4/+10 | | | | | | | | | 2004-05-12 Not Zed <NotZed@Ximian.com> * POTFILES.in: fix for xml error files, get i18n strings from generated .h files. svn path=/trunk/; revision=25872 * make the Because cases the same.Not Zed2004-05-126-84/+76 | | | | | | | | | | | | | | | | | | | | 2004-05-12 Not Zed <NotZed@Ximian.com> * e-system-errors.xml: make the Because cases the same. * e-system-errors.xml.h: add for translators. * e-error.c (ee_load): just use _() to do i18n rather than the nasty lang stuff. (find_node): no longer needed. * Makefile.am (%.xml.h): setup the build rules for the i18n file for the errors. * e-system-errors.xml.in: Removed, renamed to .xml and removed the _ stuff. svn path=/trunk/; revision=25871 * add for translators.Not Zed2004-05-1210-589/+834 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2004-05-12 Not Zed <NotZed@Ximian.com> * mail-errors.xml.h: add for translators. * Makefile.am (%.xml.h): fix for xml i18n stuff. * mail-errors.xml: moved from the .xml.in file. 2004-05-11 Not Zed <NotZed@Ximian.com> * em-utils.c (em_uri_from_camel): pass an exception to provider_get, it relies on one. * em-migrate.c (em_migrate_1_4): fix some error messages, and fail with fatal errors properly. (em_migrate_local_folders_1_4): EEP! Who cares if this fails! Well I do. Setup exceptions and return codes. (em_migrate_dir): and here too. Sloppy! (em_migrate_dir): change the code slightly, 1.4 would recurse all folders, even if the parent folder doesn't have a folder-metadata.xml. Make sure we copy that mode. (get_local_store_uri): Make it copy the 1.4 behaviour properly. Any error -> use defaults. (em_migrate_dir): lots of changes. (mbox_build_filename): take the output string as an arg. (cp): add an argument to overwrite/append or require a unique empty file. (cp_r): add mode arg here too. (em_migrate_folder): split the folder copy stuff from em_migrate dir entirely. blah. (em_upgrade_accounts_1_4): can't fail, remove return code, etc. (em_upgrade_xml_1_4): removed this rather redundant odd api. (upgrade_xml_uris): this can't fail, remove return codes etc. (em_upgrade_xml_1_0): another oddly redundant function. (em_migrate_pop_uid_caches_1_4): error messages, blah blah. (em_migrate_folder_expand_state_1_4): no fatal states here. (em_migrate_folder_view_settings_1_4): nor here. (emm_setup_initial): do i18n 'better', using gnome_i18n_get_language_list, rather than hacky code. 2004-05-10 Not Zed <NotZed@Ximian.com> * mail-tools.c: remove e-meta.h, not used anymore. svn path=/trunk/; revision=25870 * add for translators.Not Zed2004-05-127-35/+160 | | | | | | | | | | | | | | | | | | | | | | 2004-05-12 Not Zed <NotZed@Ximian.com> * shell-errors.xml.h: add for translators. 2004-05-11 Not Zed <NotZed@Ximian.com> * shell-errors.xml: Shell errors. * e-shell.c (e_shell_attempt_upgrade): handle exceptions better. allow the user to keep going or abort. stop as soon as something fails. Related to #53083. (attempt_upgrade): abort and quit if the subcall failed. it will display an appropriate error box. (attempt_upgrade): abort if we don't have enough space. #57290. * Evolution-Component.idl (upgradeFromVersion): remove the return code, use exceptions to indicate failure. svn path=/trunk/; revision=25869 * Tool to do i18n string extraction for error xml files.Not Zed2004-05-128-584/+343 | | | | | | | | | | | | | | | | | | | | 2004-05-12 Not Zed <NotZed@Ximian.com> * e-error-tool.c: Tool to do i18n string extraction for error xml files. 2004-05-10 Not Zed <NotZed@Ximian.com> * e-fsutils.c (e_fsutils_usage): new file/function, get disk usage of a path, in 1024 byte blocks. (e_fsutils_avail): new file/function, get disk space available for a given path, in 1024 byte blocks. * e-meta.[ch]: Removed. Poor idea badly executed, and no longer used. * e-path.h: add a fixme about deprecation. svn path=/trunk/; revision=25868 * fix i18n file generation rules.Not Zed2004-05-125-55/+106 | | | | | | | | | | | | 2004-05-12 Not Zed <NotZed@Ximian.com> * Makefile.am (%.xml.h): fix i18n file generation rules. * filter-errors.xml: rename from xml.in and fix tags. * filter-errors.xml.h: add for translators. svn path=/trunk/; revision=25867 * add for translators.Not Zed2004-05-125-60/+112 | | | | | | | | | | | | 2004-05-12 Not Zed <NotZed@Ximian.com> * mail-composer-errors.xml.h: add for translators. * mail-composer-errors.xml: renamed from xml.in file. * Makefile.am: Fix for i18n build stuff. svn path=/trunk/; revision=25866 * add GError return for error details & return errors.Not Zed2004-05-125-21/+62 | | | | | | | | | | | | 2004-05-11 Not Zed <NotZed@Ximian.com> * gui/migration.c (migrate_calendars, migrate_tasks): add GError return for error details & return errors. * gui/calendar-component.c (impl_upgradeFromVersion): fix for api change, and erturn exception if we need to. svn path=/trunk/; revision=25865 * set exception properly on failure.Not Zed2004-05-124-4/+26 | | | | | | | | | | | | 2004-05-11 Not Zed <NotZed@Ximian.com> * gui/component/addressbook-component.c (impl_upgradeFromVersion): set exception properly on failure. * gui/component/addressbook-migrate.c (addressbook_migrate): take a GError error return. Doesn't do anything with it ... but ... svn path=/trunk/; revision=25864 * add some stuff for statfs.Not Zed2004-05-123-14/+31 | | | | | | | | | | | 2004-05-12 Not Zed <NotZed@Ximian.com> * configure.in: add some stuff for statfs. * devel-docs/misc/errors.txt: updated for xml format and i18n changes. svn path=/trunk/; revision=25863 * get error information from the call to e_cal_receive_objects, and use thatRodrigo Moya2004-05-122-3/+9 | | | | | | | | | 2004-05-11 Rodrigo Moya <rodrigo@ximian.com> * gui/e-itip-control.c (update_item): get error information from the call to e_cal_receive_objects, and use that as the error message. svn path=/trunk/; revision=25862 * Use CAMEL_EXCEPTION_SYSTEM instead of '1', also don't useJeffrey Stedfast2004-05-122-3/+13 | | | | | | | | | | | | 2004-05-11 Jeffrey Stedfast <fejj@novell.com> * e-msg-composer.c (build_message): Use CAMEL_EXCEPTION_SYSTEM instead of '1', also don't use camel_exception_setv() if we aren't using the printf-style arguments. Just use camel_exception_set() - safer anyway, since then we don't have to worry about translated strings containing printf-style formatters that could break stuff. svn path=/trunk/; revision=25861 * fixedJeffrey Stedfast2004-05-121-0/+16 | | | | svn path=/trunk/; revision=25860 * Fixed a type-o. Fixes bug #58348.Jeffrey Stedfast2004-05-122-17/+6 | | | | | | | | | 2004-05-11 Jeffrey Stedfast <fejj@novell.com> * camel-smime-context.c (sm_signing_cmsmessage): Fixed a type-o. Fixes bug #58348. svn path=/trunk/; revision=25859 * Remove the mail folder control factoryDan Winship2004-05-125-88/+11 | | | | | | | | | | | | | * GNOME_Evolution_Mail.server.in.in: Remove the mail folder control factory * mail-component-factory.c (factory): Remove support for the mail folder control * mail-component.c: Remove the property bag stuff (mail_control_new): Gone svn path=/trunk/; revision=25858 * Remove the calendar and task list controlsDan Winship2004-05-125-308/+14 | | | | | | | | | | | | | | * gui/GNOME_Evolution_Calendar.server.in.in: Remove the calendar and task list controls * gui/main.c (factory): Remove support for the calendar and task list controls * gui/control-factory.c: Remove the property-bag stuff * gui/tasks-control.c: Likewise svn path=/trunk/; revision=25857 * Remove the addressbook controlDan Winship2004-05-124-169/+22 | | | | | | | | | | | | | * gui/component/GNOME_Evolution_Addressbook.server.in.in: Remove the addressbook control * gui/component/component-factory.c (factory): Remove support for the addressbook control * gui/component/addressbook-view.c: Remove all the property-bag stuff. svn path=/trunk/; revision=25856 * Fixes #53137Rodrigo Moya2004-05-122-3/+16 | | | | | | | | | | | 2004-05-11 Rodrigo Moya <rodrigo@ximian.com> Fixes #53137 * gui/dialogs/schedule-page.c (schedule_page_fill_widgets): check dates from the ECalComponent before using them. svn path=/trunk/; revision=25855 * use/set the DUE date, not the DTEND date.Rodrigo Moya2004-05-112-3/+8 | | | | | | | | | 2004-05-11 Rodrigo Moya <rodrigo@ximian.com> * gui/e-cal-model-tasks.c (set_due): use/set the DUE date, not the DTEND date. svn path=/trunk/; revision=25854 * Updated Czech translation.Miloslav Trmac2004-05-112-184/+178 | | | | | | | | 2004-05-11 Miloslav Trmac <mitr@volny.cz> * cs.po: Updated Czech translation. svn path=/trunk/; revision=25853 * see if the selected group is groupwise one and setup the relative uri andSivaiah Nallagatla2004-05-112-1/+27 | | | | | | | | | | 2004-05-11 Sivaiah Nallagatla <snallagatla@novell.com> * gui/component/addressbook-config.c (dialog_to_source) : see if the selected group is groupwise one and setup the relative uri and other properties into e-source svn path=/trunk/; revision=25852 * Fixes bug #44196 addressbook table view uses ASCII sortSuresh Chandrasekharan2004-05-113-2/+26 | | | | | | | | 2004-05-10 Suresh Chandrasekharan <suresh.chandrasekharan@sun.com> Fixes bug #44196 addressbook table view uses ASCII sort svn path=/trunk/; revision=25851 * Fixed warningDavid Malcolm2004-05-112-0/+6 | | | | svn path=/trunk/; revision=25850 * Default the Mailer header to enabled. Fixes bug #58217.Jeffrey Stedfast2004-05-112-4/+6 | | | | | | | | | 2004-05-10 Jeffrey Stedfast <fejj@novell.com> * em-mailer-prefs.c (em_mailer_prefs_construct): Default the Mailer header to enabled. Fixes bug #58217. svn path=/trunk/; revision=25849 * don't default the list strings if they are defaulted to emptyJeffrey Stedfast2004-05-111-5/+1 | | | | svn path=/trunk/; revision=25848 * New class for zipping/unzipping gzip streams.Jeffrey Stedfast2004-05-117-0/+1236 | | | | | | | | | | | | 2004-05-10 Jeffrey Stedfast <fejj@novell.com> * camel-mime-filter-gzip.[c,h]: New class for zipping/unzipping gzip streams. * camel-mime-filter-yenc.[c,h]: New class for encoding/decoding the crack known as YEncode. svn path=/trunk/; revision=25847 * Fixed warningDavid Malcolm2004-05-112-2/+5 | | | | svn path=/trunk/; revision=25846 * Update italian translationMarco Ciampa2004-05-112-432/+314 | | | | svn path=/trunk/; revision=25845 * Update phrasing. Also the apx-authors file seemed to have been corrupted, so ↵Aaron Weber2004-05-116-128/+24 | | | | | | I replaced it. svn path=/trunk/; revision=25844 * Fixes #58014Umeshtej2004-05-103-5/+12 | | | | | | | | | | | 2004-05-07 Umeshtej <umeshtej@gawab.com> Fixes #58014 * gui/e-meeting-list-view.c (process_section):Run the for loop for the number of elements in cards. svn path=/trunk/; revision=25841 * Include gtkhbox.h and gtkvbox.h to fix implicit declaration Cast GTK_ENTRYTrent Lloyd2004-05-103-3/+12 | | | | | | | | | | | | | | | 2004-05-10 Trent Lloyd <lathiat@bur.st> * gui/dialogs/select-source-dialog.c: Include gtkhbox.h and gtkvbox.h to fix implicit declaration * gui/dialogs/meeting-page.c: (get_current_page) Cast GTK_ENTRY from GTK_COMBO to fix compiler warning * gui/dialogs/cal-prefs-dialog.c: Remove lvalue casts, produces compiler warnings and are not necessary svn path=/trunk/; revision=25840 * Fixes #48129Jon Oberheide2004-05-101-0/+1 | | | | | | | | | | | 2004-05-10 Jon Oberheide <jon@focalhost.com> Fixes #48129 * gal-view-new-dialog.c (gal_view_new_dialog_init): set dialog title svn path=/trunk/; revision=25837 * set header to just Evolution (mail_append_mail): dittoJP Rosevear2004-05-103-3/+11 | | | | | | | | | | | | 2004-05-10 JP Rosevear <jpr@ximian.com> * mail-ops.c (mail_send_message): set header to just Evolution (mail_append_mail): ditto * em-message-browser.c (em_message_browser_window_new): set title to just Evolution svn path=/trunk/; revision=25836 * set title to just Evolution (show_development_warning): ditto for warningJP Rosevear2004-05-106-533/+24 | | | | | | | | | | | | | | | | | 2004-05-10 JP Rosevear <jpr@ximian.com> * main.c (show_development_warning): set title to just Evolution (show_development_warning): ditto for warning (idle_cb): ditto for title * e-shell-window.c (update_offline_toggle_status): set tooltip to just Evolution (e_shell_window_new): ditto for window title * e-shell-window-commands.c (command_about_box): set title to just Evolution svn path=/trunk/; revision=25835 * Updated Spanish translationFrancisco Javier F. Serrador2004-05-102-467/+595 | | | | | | | | 2004-05-10 Francisco Javier F. Serrador <serrador@cvs.gnome.org> * es.po: Updated Spanish translation svn path=/trunk/; revision=25834 * Fixes #51626Bruce Tao2004-05-103-4/+73 | | | | | | | | | | | | | | | | | | | | 2004-04-22 Bruce Tao <bruce.tao@sun.com> Fixes #51626 * e-table-click-to-add.c: (etcta_event): Add an entry for focus_in event, do the same thing as button_press event. * e-table-item.c: (eti_event): Mask the Ctrl+Tab processing routine. * e-table.c: (table_canvas_focus_event_cb), (canvas_vbox_event), (click_to_add_event), (e_table_setup_table): Enable you to navigate between click_to_add and the existing tasks by pressing Ctrl+Tab. However, if there is no existing task, you can still jump out of click_to_add by this way. svn path=/trunk/; revision=25831 * Fix parts of #53466.Enver ALTIN2004-05-102-1/+6 | | | | | | | | | 2004-05-08 Enver ALTIN <enver.altin@frontsite.com.tr> * gui/component/GNOME_Evolution_Addressbook.server.in.in: Fix parts of #53466. svn path=/trunk/; revision=25830 * Fixing parts of #53466.Enver ALTIN2004-05-102-2/+6 | | | | | | | | 2004-05-08 Enver ALTIN <enver.altin@frontsite.com.tr> * e-msg-composer.c: Fixing parts of #53466. svn path=/trunk/; revision=25829 * Translation updated.Priit Laes2004-05-102-394/+308 | | | | | | | | 2004-05-10 Priit Laes <plaes@cvs.gnome.org> * et.po: Translation updated. svn path=/trunk/; revision=25828 * cleanup the view menus if they were created.Not Zed2004-05-105-63/+63 | | | | | | | | | | | | | | | | | | | | | | 2004-05-10 Not Zed <NotZed@Ximian.com> * em-folder-view.c (emfv_activate): cleanup the view menus if they were created. * em-folder-view.h: added list_active bit, means the view is showing the list and needs e.g. view menus. * em-folder-view.c (emfv_setup_view_instance): was create_view_instance. Now also setup the menu's if we're showing the list. * em-folder-browser.c (emfb_create_view_menus): removed. moved functionality into emfolderview. 2004-05-07 Not Zed <NotZed@Ximian.com> * mail-account-editor.c: include missing header. svn path=/trunk/; revision=25827 * Fix for bug #57152.Jeffrey Stedfast2004-05-084-8/+30 | | | | | | | | | | | | | | | | | | | | 2004-05-07 Jeffrey Stedfast <fejj@ximian.com> Fix for bug #57152. * em-folder-tree.c (emft_get_folder_info__got): If we queried for a recursive folder-info listing, then pass fully_loaded as TRUE to set_folder_info(). (emft_get_folder_info__got): If we find that a folder doesn't have children, set the expanded state to FALSE. * em-folder-tree-model.c (em_folder_tree_model_set_folder_info): Now takes a "fully_loaded" argument to hint to set_folder_info whether or not folder-info's without child nodes can possibly have children (eg. if fully_loaded is set and fi->child is NULL, then 'load' will be FALSE no matter what fi->flags contains). svn path=/trunk/; revision=25826 * Fixes #52294JP Rosevear2004-05-074-24/+136 | | | | | | | | | | | | | | | | | 2004-05-07 JP Rosevear <jpr@ximian.com> Fixes #52294 * gui/e-cal-model.c (set_dtstart): set the tzid properly (ecm_is_cell_editable): set check properly * gui/e-cal-model-tasks.c (set_due): set the tzid properly (ecmt_is_cell_editable): set check properly * gui/e-cal-model-calendar.c (set_dtend): set the tzid properly (ecmc_is_cell_editable): kill fixme and set check properly svn path=/trunk/; revision=25825 * set cite_color property of gtkhtml widgets (mail_config_init): addRadek Doulik2004-05-072-2/+23 | | | | | | | | | | | | | 2004-05-07 Radek Doulik <rodo@ximian.com> * mail-config.c (config_write_style): set cite_color property of gtkhtml widgets (mail_config_init): add /apps/evolution/mail/display dir to gconf client and watch for mark_citations and citation_colour changes See bug #57587 svn path=/trunk/; revision=25824 * fix comment and checkJP Rosevear2004-05-073-6/+15 | | | | | | | | | | | | 2004-05-07 JP Rosevear <jpr@ximian.com> * gui/e-cal-model.c (ecm_is_cell_editable): fix comment and check * gui/e-cal-model-tasks.c (ecmt_set_value_at): set a parent field properly (ecmt_is_cell_editable): fix comment and check svn path=/trunk/; revision=25823 * properly set the parent nodes for the re-parented phantom-node children.Not Zed2004-05-073-10/+33 | | | | | | | | | | | | | 2004-05-07 Not Zed <NotZed@Ximian.com> * camel-folder-thread.c (thread_summary): properly set the parent nodes for the re-parented phantom-node children. Wasn't that fun to debug! * camel-folder-thread.h: make order and re bitfields, saves 4 bytes/node. svn path=/trunk/; revision=25822 * ** See bug #57935.Not Zed2004-05-075-13/+33 | | | | | | | | | | | | | | | | | | | 2004-05-07 Not Zed <NotZed@Ximian.com> ** See bug #57935. * em-folder-view.c (emfv_set_message): add new arg, nomarkseen, don't mark the selected message seen once its loaded. (emfv_list_message_selected): clear the nomarkseen flag once we've processed the selection. (emfv_list_done_message_selected): handle the nomarkseen flag, don't mark a message seen if it was explictly selected. * em-folder-browser.c (emfb_list_built): use em_folder_view_select_message rather than doing it via the messagelist directly. svn path=/trunk/; revision=25821 * ** Dunno why i bothered, but see bug #58090.Not Zed2004-05-072-6/+45 | | | | | | | | | | | | | | | 2004-05-07 Not Zed <NotZed@Ximian.com> ** Dunno why i bothered, but see bug #58090. * importers/netscape-importer.c (netscape_filter_parse_conditions): check for custom headers properly. (netscape_filter_flatfile_get_entry): put in some validate checks. (netscape_filter_to_evol_filter): implement custom headers properly. (ns_filter_condition_types): add missing "status" string. svn path=/trunk/; revision=25820 * ** See #58017.Not Zed2004-05-074-6/+19 | | | | | | | | | | | | | | | | | 2004-05-07 Not Zed <NotZed@Ximian.com> ** See #58017. * message-list.c (mail_regen_list): use thread_queued, so we don't regen out of order. * em-folder-view.c (emfv_list_message_selected): use the queue thread so we don't get messages out of order. * mail-ops.c (mail_transfer_messages): use thread_queued_slow. (mail_prep_offline): and here too. svn path=/trunk/; revision=25819 * use random color for calendar default.Larry Ewing2004-05-072-1/+22 | | | | | | | | | 2004-05-06 Larry Ewing <lewing@ximian.com> * gui/dialogs/calendar-setup.c (source_to_dialog): use random color for calendar default. svn path=/trunk/; revision=25818 * Make some more toolbar and menu items use the stock versions of iconsRodney Dawes2004-05-072-8/+15 | | | | | | | | | | | 2004-05-06 Rodney Dawes <dobey@ximian.com> * evolution-mail-message.xml: Make some more toolbar and menu items use the stock versions of icons Fixes #57963 partly svn path=/trunk/; revision=25817 * Check that the folder is selectable using the new flags argument.Jeffrey Stedfast2004-05-076-15/+31 | | | | | | | | | | | | | | | | 2004-05-06 Jeffrey Stedfast <fejj@ximian.com> * mail-component.c (folder_selected_cb): Check that the folder is selectable using the new flags argument. * em-folder-selector.c (folder_selected_cb): Updated for below changes. * em-folder-tree.c (emft_tree_selection_changed): Updated to pass a flags argument to the folder_selected signal. (emft_tree_row_activated): Same. svn path=/trunk/; revision=25816 * reset the preview if no signature is selectedRadek Doulik2004-05-062-1/+9 | | | | | | | | | | | 2004-05-06 Radek Doulik <rodo@ximian.com> * em-composer-prefs.c (sig_selection_changed): reset the preview if no signature is selected Fixes #57167 svn path=/trunk/; revision=25815 * Updated Czech translation.Miloslav Trmac2004-05-062-264/+281 | | | | | | | | 2004-05-06 Miloslav Trmac <mitr@volny.cz> * cs.po: Updated Czech translation. svn path=/trunk/; revision=25814 * Updated italian translationMarco Ciampa2004-05-062-293/+311 | | | | svn path=/trunk/; revision=25813 * set nodelay and keepalive on the socket.Not Zed2004-05-064-74/+95 | | | | | | | | | | | | | | | | | | | | 2004-05-06 Not Zed <NotZed@Ximian.com> * providers/imap/camel-imap-store.c (connect_to_server): set nodelay and keepalive on the socket. * camel-file-utils.c (camel_read): put a timeout on the select. Logic shuffle to match the ssl stuff. (camel_write): Similar. * camel-tcp-stream-ssl.c (stream_connect): remove timeout, use CONNECT_TIMEOUT directly. (stream_read): put a timeout on the poll. IO_TIMEOUT. And a little logic shuffle. (stream_write): similar. (CONNECT_TIMEOUT): make this 4 minutes === tcp-raw timeout. svn path=/trunk/; revision=25812 * Select the row that was just collapsed. Fixes bug #57665.Jeffrey Stedfast2004-05-062-0/+5 | | | | | | | | | 2004-05-05 Jeffrey Stedfast <fejj@ximian.com> * em-folder-tree.c (emft_tree_row_collapsed): Select the row that was just collapsed. Fixes bug #57665. svn path=/trunk/; revision=25811 * Removed. (rule_from_message): Removed the AUTO_THREAD bit.Jeffrey Stedfast2004-05-064-69/+11 | | | | | | | | | | | | | | 2004-05-05 Jeffrey Stedfast <fejj@ximian.com> * mail-autofilter.c (rule_match_thread): Removed. (rule_from_message): Removed the AUTO_THREAD bit. * em-folder-view.c: Removed vFolder/Filter on Thread. These were both broken. (struct _filter_data): Removed a bunch of data members since most of them weren't used. svn path=/trunk/; revision=25810 * Translation updated.Priit Laes2004-05-062-2151/+2578 | | | | | | | | 2004-05-05 Priit Laes <plaes@cvs.gnome.org> * et.po: Translation updated. svn path=/trunk/; revision=25809 * Change the algorithm so that if the buttons can't be laid out perfectlyDan Winship2004-05-05