aboutsummaryrefslogtreecommitdiffstats
path: root/shell/ChangeLog
blob: 5b5eef1e1e6fc2caf87750d2d1005f7de29069f6 (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
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
2000-05-31  Ettore Perazzoli  <ettore@helixcode.com>

    * evolution-storage.h: #include 'Evolution.h".

2000-05-31  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shell-view.c (show_error): Use `set_current_notebook_page()'
    instead of `gtk_notebook_set_page()'; this will also deactivate
    the current control properly.

    * e-shell-view-menu.c (e_shell_view_menu_setup): Initialize the
    state of the shortcut/folder toggle menu items using
    `e_shell_view_get_shortcut_bar_mode()' and
    `e_shell_view_get_folder_bar_mode()'.
    (command_toggle_shortcut_bar): Removed debugging message.
    (command_toggle_folder_bar): Likewise.

    * e-shell-view.c (e_shell_view_get_shortcut_bar_mode): New
    function.
    (e_shell_view_get_folder_bar_mode): New function.

2000-05-31  Ettore Perazzoli  <ettore@helixcode.com>

    * e-storage-set-view.c: New constant `DRAG_RESISTANCE'.  New
    members `button_x', `button_y' in `EStorageSetViewPrivate'.
    (init): Initialize to zero.
    (button_press_event): Set.
    (motion_notify_event): Don't start drag unless the current x/y
    position is farther than `DRAG_RESISTANCE', in any of the two
    directions, from the original position of the button click.
    (button_release_event): Always ungrab the pointer, even if
    `selected_row_path' is NULL.

2000-05-31  Ettore Perazzoli  <ettore@helixcode.com>

    * evolution-shell-component.c (class_init): Eeek!
    s/owner_set/owner_unset/.

    * e-shell-folder-title-bar.c (e_shell_folder_title_bar_construct):
    Increase the size of the border of the hbox slightly to make the
    title bar a bit nicer.

2000-05-31  Ettore Perazzoli  <ettore@helixcode.com>

    * e-component-registry.c (component_free): Invoke `::unset_owner'
    on the component before releasing it.

    * evolution-shell-component.c (class_init): Install the
    "owner_set" signal.
    (impl_ShellComponent_unset_owner): New function, implementation of
    `ShellComponent::unset_owner'.
    (corba_class_init): Install it.

    * evolution-shell-component.h: New signal "owner_unset".

    * Evolution-ShellComponent.idl: New method `ShellComponent::
    unset_owner'.

    * e-shell.c (e_shell_quit): Destroy all the views explicitly.

    * e-shell-view-menu.c: Changed `Show shortcut bar' and `Show
    folder tree' items into toggle items.
    (shortcut_bar_mode_changed_cb): New callback to update the status
    of the "show shortcut bar" toggle item when the shortcut bar is
    hidden/shown in the view.
    (folder_bar_mode_changed_cb): Likewise for the folder bar.
    (e_shell_view_menu_setup): Connect these to the corresponding
    signals on the shell.

    * e-shell-view.c: New members `shortcut_bar_mode' and
    `folder_bar_mode' in `EShellViewPrivate'.
    (init): Initialize `shortcut_bar_mode' and `folder_bar_mode' to
    `E_SHELL_VIEW_SUBWINDOW_HIDDEN'.
    (class_init): Add the new signals.
    (e_shell_view_set_shortcut_bar_mode): Renamed from
    `e_shell_view_show_shortcuts'.  Emit "shortcut_bar_mode_changed"
    and update the `shortcut_bar_mode' member.
    (e_shell_view_set_folder_bar_mode): Renamed from
    `e_shell_view_show_folders'.  Emit "folder_bar_mode_changed" and
    update the `folder_bar_mode' member.

    * e-shell-view.h: New signals "shortcut_bar_mode_changed",
    "folder_bar_mode_changed".

    * e-shell-view.c (setup_menus): Removed.
    (e_shell_view_construct): Use `e_shell_view_menu_setup' instead.
    (e_shell_view_get_bonobo_ui_handler): New function.

    * e-shell-view-menu.c (e_shell_view_menu_setup): New.

    * e-shell.c (impl_Shell_get_component_for_type): New function,
    implementation of `Evolution::Shell::get_component_for_type'.
    (corba_class_init): Install it into the EPV.

    * Evolution-Shell.idl: Added method `get_component_for_type'.

2000-05-30  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shortcuts.c: New members `dirty', `save_idle_id' in
    `EShortcutsPrivate'.
    (init): Initialize.
    (destroy): If the idle ID is nonzero, remove the idle.  If `dirty'
    is true, save.
    (idle_cb): New.
    (schedule_idle): New.
    (make_dirty): New.
    (e_shortcuts_remove_shortcut): Call it.
    (e_shortcuts_add_shortcut): Likewise.
    (e_shortcuts_remove_group): Likewise.
    (e_shortcuts_add_group): Likewise.

    * e-shell.c (e_shell_construct): Updated to match the `EShortcuts'
    API changes.

    * e-shortcuts.c: New member `file_name' in `EShortcutsPrivate'.
    (init): Init to NULL.
    (destroy): Free it.
    (e_shortcuts_load): Removed.
    (e_shortcuts_save): Removed.
    (e_shortcuts_new): New arg @file_name.  Load from the specified
    file name.

    * e-shortcuts-view.c (added_item): New method implementation.
    (removed_item): New method implementation.
    (added_group): New method implementation.
    (removed_group): New method implementation.
    (class_init): Install these.

    * e-shortcuts.c (e_shortcuts_remove_shortcut): New function.
    (e_shortcuts_add_shortcut): New function.
    (e_shortcuts_remove_group): New function.
    (e_shortcuts_add_group): New function.

    * e-shell-view.c: New member `view_title_bar' in
    `EShellViewPrivate'.
    (setup_widgets): Put an EShellFolderTitleBar on top of the tree
    view and the content view.
    (update_window_icon): Renamed from `set_icon'.
    (update_folder_title_bar): New.
    (popup_tree): New function to pop up the tree view when the title
    button in the title bar is clicked.
    (folder_title_clicked_cb): New callback for the "clicked" signal
    of EShellFolderTitleBar.
    (setup_widgets): Don't add a title bar to the shortcut bar.
    (create_storage_set_subwindow): New helper function.
    (setup_widgets): Use it.
    (show_error): Use an EClippedLabel instead of a GtkLabel.

    * e-shell-view.c: Replaced all the occurences of `gpointer' with
    `void *' for consistency.

    * e-shell-folder-title-bar.c: New file.
    * e-shell-folder-title-bar.h: New file.

    * e-storage-set-view.c (e_storage_set_view_construct): Ooops.  Fix
    inverted key/value pair in the call to `g_hash_table_insert()'.

2000-05-28  Dan Winship  <danw@helixcode.com>

    * main.c (main): Remove extra free of evolution_directory.

2000-05-28  Ettore Perazzoli  <ettore@helixcode.com>

    * evolution-storage.c (evolution_storage_register): Use the
    storage's name when registering.

2000-05-26  Matt Loper  <matt@helixcode.com>

    * e-shell-view-menu.c (command_about_box): Make authorlist more
    alphabetical.
    (command_show_treeview): New function; shows the treeview, when it
    has been hidden.
    (command_show_shortcut_bar): New function; shows the shortcut bar,
    when it's been hidden.

2000-05-26  Ettore Perazzoli  <ettore@helixcode.com>

    * e-corba-storage.c (impl_StorageListener_new_folder): Set the
    physical URI on the folder using `e_folder_set_physical_uri()'.

    * e-local-folder.c (get_physical_uri): Removed.
    (construct_loading_metadata): Use EFolder's `physical_uri' field
    instead of ours, which is gone.
    (save_metadata): Likewise.
    (destroy): Don't free.

    * e-local-folder.h: Removed `physical_uri' from `ELocalFolder'.

    * e-folder.c: New member `physical_uri' in `EFolderPrivate'.
    (init): Initialize to NULL.
    (destroy): Free it.
    (get_physical_uri): Removed.
    (e_folder_set_physical_uri): New function.

    * e-storage-set.c (e_storage_set_get_folder): Fix off-by-one error
    in extracting the base name.

    * e-storage.c: New member `path' in `Folder'.
    (folder_destroy): Free it.
    (folder_new): New arg.  Initialize `path' from it.
    (e_storage_construct): Updated accordingly.
    (e_storage_new_folder): Likewise.
    (e_storage_remove_folder): Remove the folder from the hash.

    * e-storage-set-view.c (remove_node): New function.
    (removed_storage_cb): Use it.
    (new_folder_cb): New function, callback for the "new_folder"
    signal on the EStorageSet.
    (removed_folder_cb): New function, callback for the
    "removed_folder" signal on the EStorageSet.
    (e_storage_set_view_construct): Connect these signal handlers to
    the respective signals on our model storage.

    * e-storage-set.c (storage_new_folder_cb): New function, callback
    for the "new_folder" signal on the storages.
    (storage_removed_folder_cb): New function, callback for the
    "removed_folder" signal on the storages.
    (e_storage_set_add_storage): Connect them to the signals of the
    storage being added.

    * e-corba-storage-registry.c
    (impl_StorageRegistry_register_storage): Throw an exception if
    `e_storage_set_add_storage()' returns false.

    * e-shell.c (setup_storages): Unref the local storage after adding
    to the storage set.

    * e-corba-storage-registry.c
    (impl_StorageRegistry_register_storage): Unref the storage after
    adding to the storage set.

    * e-storage-set.c: New hash table `name_to_named_storage' in
    `EStorageSetPrivate'.
    (named_storage_new): New helper function.
    (named_storage_destroy): New helper function.
    (e_storage_set_add_storage): Use the hash table.  Return value
    changed to `gboolean'.  Return FALSE if there is a storage with
    that name already.  Also, ref the storage.
    (e_storage_set_remove_storage): Likewise [but of course don't ref
    the storage].
    (e_storage_set_get_storage): Use the `name_to_named_storage' hash
    table.
    (destroy): Destroy the `name_to_named_storage' hash.

    * e-storage-set.h: New signals "new_folder", "removed_folder".

    * e-storage.c (e_storage_get_watcher_for_path): Removed.
    (get_watcher_for_path): Removed.
    (class_init): Install signals "new_folder" and "removed_folder".
    (e_storage_remove_folder): Emit "removed_folder".
    (e_storage_new_folder): Emit "new_folder".

    * e-storage.h: Removed method `get_watcher_for_path'.  New signals
    "new_folder", "removed_folder".

    * e-storage-watcher.c: Removed.
    * e-storage-watcher.h: Removed.

    * e-corba-storage-registry.c (corba_class_init): Set the
    Bonobo_Unknown evp parts.

    * evolution-storage.c: New.
    * evolution-storage.h: New.

    * evolution-shell-component.c
    (evolution_shell_component_get_owner): New.

    * e-storage-set-view.c (new_storage_cb): New function.
    (e_storage_set_view_construct): Connect to the "new_storage"
    signal on the EStorageSet.
    (removed_storage_cb): New function.
    (e_storage_set_view_construct): Connect to the "removed_storage"
    signal on the EStorageSet.

    * e-storage-set-view.c (e_storage_set_view_construct): Make this
    always look pretty, with Helix GNOME or without.

2000-05-25  Christopher James Lahey  <clahey@helixcode.com>

    * e-storage-set-view.c: Make this always look pretty, with Helix
    GNOME or without.

2000-05-25  Ettore Perazzoli  <ettore@helixcode.com>

    * e-storage-set-view.c (e_storage_set_view_construct): Set the
    dotted line type again.  Dotted is less butt-ugly than continuous.

    * e-shell-view.c (show_error): Display page zero in the notebook.

    * main.c (idle_cb): Renamed from `new_view_idle_cb'.  Create the
    EShell object here, because now the shell depends on the GLib loop
    to be running for correct operation.
    (main): Don't create the EShell here.

    * e-storage-set-view.c (get_pixmap_and_mask_for_folder): If the
    icon is not found, set the returned pixmap and mask to NULL.

    * e-shell.c (e_shell_construct): Added precondition: @corba_object
    must be non-nil.
    (e_shell_new): Added precondition: @local_direcory must be
    non-null.

    * evolution-shell-component.c: New.
    * evolution-shell-component.h: New.

    * e-shell.c: New member `component_registry' in `EShellPrivate'.
    (init): Initialize to NULL.
    (destroy): Unref it.
    (setup_components): New function to set up the compnent registry
    and initialize the mail, calendar and addressbook components.
    (e_shell_construct): Call it.

    * e-storage-set.c: Updated to use EFolderTypeRegistry.
    * e-storage-set.h: Likewise.
    * e-shortcuts.c: Likewise.
    * e-shortcuts.h: Likewise.
    * e-shell.c: Likewise.

    * e-shell.h: Likewise.
    * e-shell-view.c: Likewise.
    * e-shortcuts-view.c: Likewise.
    * e-storage-set-view.c: Likewise.

    * e-component-registry.c: New.
    * e-component-registry.h: New.

    * e-folder-type-registry.c: New.
    * e-folder-type-registry.h: New.

    * e-folder-type-repository.c: Removed.
    * e-folder-type-repository.h: Removed.

    * Evolution-ShellComponent.idl: New struct `FolderType'; new type
    `FolderTypeList'. New attribute `supported_types'.
    (ShellComponent::set_owner): Renamed from `set_shell'.
    (ShellComponent::create_view): New.

2000-05-24  Christopher James Lahey  <clahey@helixcode.com>

    * e-shell-view.c: Was using the wrong include here.

    * e-storage-set-view.c: Got rid of the lines in the tree view.

2000-05-24  Christopher James Lahey  <clahey@helixcode.com>

    * Makefile.am: Added libepaned.a.

    * e-shell-view.c: Switched from GtkPaned to EPaned.

2000-05-23  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shell.c: New member `corba_storage_registry' in
    `EShellPrivate'.
    (init): Initialize it to NULL.
    (destroy): Unref it if not NULL.
    (setup_corba_storages): New function to set up the CORBA storage
    registry and `bonobo_object_add_interface()' it to the shell.
    (setup_storages): Call it from here.

    * e-shell.h, e-shell.c: Derive EShell from BonoboObject instead of
    GtkObject.

    * e-storage.c (e_storage_remove_folder): Return value changed into
    `gboolean'; return false if an error occurs, true otherwise.
    (e_storage_new_folder): Likewise.

    * e-corba-storage-registry.c: New.
    * e-corba-storage-registry.h: New.

    * e-corba-storage.c: New.
    * e-corba-storage.h: New.

    * Evolution.idl: Include the new IDLs, but no
    `evolution-service-repository.idl' anymore.

    * Evolution-Shell.idl: New.
    * Evolution-ShellComponent.idl: New.
    * Evolution-Storage.idl: New.

    * evolution-service-repository.idl: Removed.
    * evolution-service-repository.c: Removed.
    * evolution-service-repository.h: Removed.

    * e-folder-type-repository.c (folder_type_new): Free `icon_path'.

2000-05-18  Dan Winship  <danw@helixcode.com>

    * main.c (new_view_idle_cb): add development_warning (moved from
    mail component)

2000-05-16  Ettore Perazzoli  <ettore@helixcode.com>

    * e-storage-set-view.c: Get rid of the `ICON_WIDTH' and
    `ICON_HEIGHT' #defines.
    (get_pixmap_and_mask_for_folder): Get the mini icon instead of the
    big one.  Use `E_SHELL_MINI_ICON_SIZE' instead of `ICON_WIDTH' and
    `ICON_HEIGHT'.

    * e-folder-type-repository.c: New member `mini_icon_pixbuf' in
    `FolderType'.
    (folder_type_new): Initialize `mini_icon_pixbuf' by loading the
    mini icon if possible.  If the mini icon is not found, resort to
    the big one.
    (folder_type_free): Unref the mini icon.
    (e_folder_type_repository_get_icon_for_type): New arg @mini.  If
    true, return the mini icon instead of the standard one.

    * e-shell-view.c (set_icon): Get the mini icon instead of the big
    one by using `e_shell_get_icon_path's @try_mini arg.

    * e-shell-constants.h: New file.

    * e-shell-utils.c
    (e_shell_get_icon_path): New arg @try_mini.  If true, look for the
    mini version [whose name ends in `-mini'].

    * e-folder-type-repository.c
    (folder_type_new): Free string returned by
    `e_shell_get_icon_path()'.

2000-05-16  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shell-view.c: New members `storage_set_view_box',
    `shortcut_bar_box', `hpaned1_position', `hpaned2_position' in
    `EShellViewPrivate'.
    (init): Initialize them.
    (setup_widgets): Add title bars to the tree and shortcut views.
    (shortcuts_view_close_button_clicked_cb): New callback function.
    (setup_widgets): Connect to the "close_button_clicked" signal of
    the shortcut view's title bar.
    (storage_set_view_close_button_clicked_cb): New callback function.
    (setup_widgets): Connect to the "close_button_clicked" signal of
    the storage set view's title bar.
    (e_shell_view_show_shortcuts): New function.
    (e_shell_view_show_folders): New function.

    * e-shell-view.c: New members `hpaned1', `hpaned2' in
    `EShellViewPrivate'.
    (init): Initialize both to NULL.
    (setup_widgets): Invert the parenting order for the GtkHPaneds and
    store them into the private `hpaned' and `hpaned2' members.

    * Makefile.am (evolution_LDADD): Link with `libemiscwidgets.a'.

2000-05-15  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shortcuts.c
    (load_shortcuts_into_view): Removed.
    (e_shortcuts_new_view): Don't set up the shortcut bar manually
    here anymore, and don't set the icon callback either.  The
    `EShortcutsView' object is now able to do this by itself.

    * e-shortcuts-view.c
    (icon_callback): Moved here from `e-shortcuts.c'.
    (load_group): New function.
    (load_all_shortcuts): New function.
    (e_shortcuts_view_construct): Call it to load the shortcuts from
    the `EShortcuts' object.  Also, set `icon_callback' as the icon
    callback.

    * e-storage-set-view.c
    (button_press_event): Add/remove grab with `gtk_grab_add' and
    `gtk_grab_remove'.
    (button_release_event): Call `gtk_grab_remove' when removing the
    grab.

    * e-shortcuts.c: New member `title_to_group' in
    `EShortcutsPrivate'.
    (init): Initialize here.
    (destroy): Destroy here.
    (unload_shortcuts): Destroy and recreate here.
    (load_shortcuts): Avoid inserting multiple groups with the same
    title, and insert the groups into the `title_to_group' hash table.
    Also, avoid leaking the return value from `xmlNodeListGetString'.
    (e_shortcuts_get_group_titles): New function.
    (e_shortcuts_get_shortcuts_in_group): New function.
    (e_shortcuts_get_storage_set): New function.

    * e-storage-set-view.c
    (e_storage_set_view_set_current_folder): Emit the
    "folder_selected" signal.

    * e-local-folder.c
    (get_string_value): Return a `char *' to be deallocated by the
    caller instead of a `const char *' that does not need to be
    deallocated.
    (construct_loading_metadata): Free values returned from
    `get_string_value'.

2000-05-15  Ettore Perazzoli  <ettore@helixcode.com>

    * e-storage-set-view.c: New members `dragged_row_path',
    `selected_row_path_before_click' in `EStorageSetViewPrivate'.
    (init): Initialize them to NULL.
    (motion_notify_event): Set `dragged_row_path' from
    `selected_row_path'.
    (button_press_event): Initialize `selected_row_path_before_click'
    from `selected_row_path'.
    (button_release_event): Set `selected_row_path_before_click' to
    NULL.
    (drag_end): Restore the current selection from
    `selected_row_path_before_click'; then set both `dragged_row_path'
    to NULL.

2000-05-15  Ettore Perazzoli  <ettore@helixcode.com>

    * e-storage-set-view.c: New members `in_drag' and `drag_button' in
    `EStorageSetViewPrivate'.  New static variables `drag_types',
    `num_drag_types', `target_list'.
    (class_init): Create the `target_list'.
    (init): Initialize the private `in_drag' member to false.
    Initialize the private `drag_button' member to zero.
    (button_release_event): Set it to false.
    (motion_notify_event): New function, implementation of
    `GtkWidget::motion_notify_event'.  If `in_drag' is false, set it
    to true and set ourselves up as a drag source.
    (button_press_event): New function, implementation of
    `GtkWidget::button_press_event'.  Set `drag_button' to the event's
    button number and then chain to the implementation in the parent
    class.
    (drag_end): New function, implementation of `GtkWidget::drag_end'.
    (drag_data_get): New function, implementation of
    `GtkWidget::drag_data_get'.
    (set_e_shortcut_selection): New function, helper for `drag_data_get'.
    (set_uri_list_selection): New function, helper for `drag_data_get'.
    (class_init): Install these method implementations.

    * e-storage-set-view.c: New member `selected_row_path' in
    `EStorageSetViewPrivate'.
    (init): Initialize it to NULL.
    (tree_select_row): Set it to the path of the selected row.  Don't
    emit "folder_selected" yet.  Also, keep the grab.
    (button_release_event): New function, implementation of
    `GtkWidget::button_release_event'.  If `selected_row_path' is not
    NULL, emit the "folder_selected" signal with `selected_row_path'
    as the parameter and then set `selected_row_path' to NULL again.
    (class_init): Install `button_release_event'.

    * e-storage-set-view.c: Made `ICON_WIDTH' and `ICON_HEIGHT' global
    #defines.
    (e_storage_set_view_construct): Set the row height to
    `ICON_HEIGHT'.  Alos, set the selection mode to
    `GTK_SELECTION_BROWSE'.

2000-05-15  Iain Holmes  <ih@csd.abdn.ac.uk>

    * e-local-folder.c (get_string_value): Use the correct function to
    get the node's contents.
    
    * e-shortcuts.c (load_shortcuts): Same as above.

2000-05-14  Ettore Perazzoli  <ettore@helixcode.com>

    * e-folder-type-repository.c
    (e_folder_type_repository_get_control_id_for_type): Protect
    against non-existing types.
    (e_folder_type_repository_get_icon_for_type): Likewise.

2000-05-14  Ettore Perazzoli  <ettore@helixcode.com>

    * e-storage-set-view.c
    (folder_compare_cb): Callback comparison function for comparing
    folders based on their names.
    (insert_folders): Use it to sort the folder list before using it.

2000-05-14  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shell.c
    (setup_storages): Pass the pointer to the folder type repository.
    (e_shell_construct): Initialize the folder type repository before
    everything else.

    * e-storage-set.c: New member `folder_type_repository' in
    `EStorageSetPrivate'.
    (init): Initialize it to NULL.
    (destroy): Unref it.
    (e_storage_set_construct): New arg @folder_type_repository.
    Initialize the corresponding member in the private struct through
    it.
    (e_storage_set_new): New arg @folder_type_repository.
    (e_storage_set_get_folder_type_repository): New function.

    * e-shortcuts.c (icon_callback): Just use [the new version of]
    `e_folder_type_repository_get_icon_for_type()' instead of loading
    the image manually.

    * e-folder-type-repository.c: New member `icon_pixbuf' in
    `FolderType'.
    (folder_type_new): Load the pixbuf.
    (folder_type_free): Unref the pixbuf.
    (e_folder_type_repository_get_icon_name_for_type): Renamed from
    `e_folder_type_repository_get_icon_for_type'.
    (e_folder_type_repository_get_icon_for_type): New function, now
    returning a `GdkPixbuf *'.

    * e-shortcuts.c
    (icon_callback): Use `e_shell_get_icon_name()'.

    * e-shell-view.c: New member `storage_set_view' in
    `EShellViewPrivate'.
    (init): Initialize it to NULL.
    (e_shell_view_construct): Create an EStorageSetView for the
    shell's EStorageSet and put it into a scrolled window.  Also, put
    the scrolled window into the EShellView with some
    [temporary] GtkPaned action.  Store the pointer to the
    EStorageSetView to `priv->storage_set_view'.
    (set_icon): Get an EShellView and an EFolder instead of an
    EShellView and a URI.  Also, don't leak.
    (update_for_current_uir): New helper function.  Call `set_icon'.
    (show_error): Call it.
    (folder_selected_cb): New function.
    (setup_widgets): Connect it to the "folder_selected" signal of the
    storage set view.

    * e-storage-set-view.c: New file.
    * e-storage-set-view.h: New file.

    * e-shell-utils.c: New file.
    * e-shell-utils.h: New file.

2000-05-10  Christopher James Lahey  <clahey@helixcode.com>

    * e-shell-view-menu.c: Added an about box.

2000-05-10  Christopher James Lahey  <clahey@helixcode.com>

    * e-shell-view.c: Set the icons when changing between components.

    * main.c: Set the default icon.  (The change in e-shell-view.c
    doesn't work unless we do this.)

2000-05-09  Matt Loper  <matt@helixcode.com>

    * e-shell-view-menu.c (command_run_bugbuddy): New function; allows
    users to submit a bug.
    (command_run_bugbuddy): Implemented with jacob's patch.

2000-05-09  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shell.c (e_shell_new_view): Display the specified @uri in the
    view.

    * e-shell-view.c (e_shell_view_construct): Removed arg @uri.
    (e_shell_view_new): Likewise.

    * main.c: New string constant `STARTUP_URI', specifying the URI to
    show in the startup view.
    (new_view_idle_cb): New callback function to create a new view for
    `STARTUP_URI' in the idle loop.  We need to do this in the idle
    loop because the CORBA stuff cannot work until the loop starts
    running.
    (main): Set `new_view_idle_cb' up as the idle callback instead of
    creating the view right away.

2000-05-09  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shell.c (setup_storages): Woops.  Don't free the path before
    the warning message, as we need to print it.

2000-05-08  Ettore Perazzoli  <ettore@helixcode.com>

    * main.c (destroy_cb): New function.
    (main): Connect it to the `destroy' signal on the shell.

2000-05-08  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shortcuts.c (load_shortcuts): Const fix.

2000-05-08  Larry Ewing  <lewing@helixcode.com>

    * e-shortcuts.c (load_shortcuts_into_view): xmlFree the return
    value of xmlGetProp.

2000-05-07  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shortcuts-view.c (e_shortcuts_view_construct): Use
    correct cast.

2000-05-07  Ettore Perazzoli  <ettore@helixcode.com>

    * main.c (main): Connect to "no_views_left", not "destroy".

    * e-shell.c (view_destroy_cb): Grmpf.

2000-05-07  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shell.c (e_shell_construct): Output a warning message if the
    shortcut file is not found.
    (setup_storages): Output a warning message if the local storage
    cannot be initialized.
    (destroy): Destroy all the views.

    * e-shell-view.c
    (e_shell_view_construct): Ref the shell.

    * e-shortcuts-view.c
    (e_shortcuts_view_construct): Ref the shortcuts.

    * e-shell.c: Create the "no_views_left" signal.  New member
    `views' in `EShellPrivate'.
    (init): Initialize `views' to NULL.
    (view_destroy_cb): Destroy handler for a view: remove the view
    from `views', and emit the "no_views_left" signal if this was the
    last view.
    (e_shell_new_view): Add the new view to `views' and connect the
    "destroy" signal to `view_destroy_cb'.
    (destroy): Destroy the views.

    * e-shell.h: New signal "no_views_left".

    * e-shell-view-menu.c (command_quit): New function, implementation
    of the "quit" command.

    * e-shell-view.c (e_shell_view_get_shell): New function.

    * e-shell.c (e_shell_quit): New function.

    * main.c (main): If it is not possible to create the shell for
    some reason, pop up an error message.
    (shell_destroy_cb): New function, signal handler for "destroy" on
    the shell object.
    (main): Connect it.

2000-05-06  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shortcuts.c (destroy): Be safer about NULL objects.

    * e-shell.c (destroy): Be safer about NULL objects.

    * e-local-storage.c (load_folders): Use `readdir()', not
    `readdir_r()'.

2000-05-06  Ettore Perazzoli  <ettore@helixcode.com>

    * main.c (init_corba) [! USING_OAF]: We have no options no
    popt context.

2000-05-06  Ettore Perazzoli  <ettore@helixcode.com>

    * All files: Reorganized and redone a lot of the shell.  New
    features: internal URI namespace, extensible storage/folder
    mechanism, configurable shortcuts.

2000-05-03  Damon Chaplin  <damon@helixcode.com>

    * e-shell-view.c (e_shell_view_new): turned the notebook border off.
    The calendar looks better without it. If any of the views want a
    border they should create it themselves, shouldn't they?

2000-05-04  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shortcut.c (shell_icon_cb): Type of @url changed from `gchar
    *' to `const gchar *'; new arg @data.
    (e_shortcut_bar_view_new): Pass NULL as the closure value for
    `e_shortcut_bar_set_icon_callback()'.

2000-05-02  Ettore Perazzoli  <ettore@helixcode.com>

    * e-folder-mail.c: Removed.

    * e-folder-mail.h: Removed.

    * eshell-types.h: Removed.

    * e-folder.h: Don't #include "eshell-types.h".

2000-05-02  Ettore Perazzoli  <ettore@helixcode.com>

    * e-folder.h: Removed member `eservice' from `EFolder'.

    * e-service.c: Removed.

    * e-service.h: Removed.

2000-05-02  Matt Loper  <matt@helixcode.com>

    * Makefile.am: set G_LOG_DOMAIN.

2000-05-01  Dan Winship  <danw@helixcode.com>

    * e-shell-view.c (e_shell_view_set_view): Turn off control frame
    autoactivation, so the toolbars work correctly. This may actually
    be a bug in Bonobo, but we'll kludge around it here for now.

2000-04-27  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shell-view.c: OAFized.
    (get_view): If `bonobo_widget_new_control()' fails for the
    calendar, don't try to get the property bag and stuff and thus
    prevent a segfault.

    * main.c
    (corba_init): Removed Bonobo initialization.  Implemented OAF
    version for the case in which `USING_OAF' is #defined.
    (init_bonob): New function.
    (main): Call `init_bonobo()'.

2000-04-26  Matt Loper  <matt@helixcode.com>

    * e-shell-view.c (bonobo_widget_is_dead): Helper function to see
    whether a bonobo widget is a zombie (ie the remote bonobo control
    died).
    (e_shell_view_set_view): Try to respawn dead widgets.

2000-04-25  Dan Winship  <danw@helixcode.com>

    * Makefile.am: include -I$(datadir)/idl in orbit-idl arguments so
    that you can have bonobo installed in the same prefix as
    evolution, when that isn't the same prefix is gnome-libs, which a
    lot of people seem to be doing.
    (CLEANFILES): add EVOLUTION_CORBA_GENERATED
    
2000-04-24  Christopher James Lahey  <clahey@helixcode.com>

    * idl/folder.idl: Made some functions syncronous that didn't need
    to be asyncronous.

2000-04-24  Matt Loper  <matt@helixcode.com>

    * e-shell-view.h: Added hpaned and treeview widgets to
    EShellView. Added e_shell_view_toggle_shortcut_bar() and
    e_shell_view_toggle_treeview().

    * e-shell-view.c (e_shell_view_setup_shortcut_display): Use EPaned
    widget to house our shortcut bar.
    (e_shell_view_toggle_shortcut_bar): New function; toggles whether
    the shortcut bar is showing.
    (e_shell_view_toggle_treeview): Same, for the treeview (NYI).
    (e_shell_view_new): Put the notebook view in our EPaned widget.

    * e-shell-view-menu.c (esv_cmd_toggle_shortcut_bar): New function;
    toggles whether the shortcut bar is viewed.
    (esv_cmd_toggle_treeview): Same, but with the treeview.  Added
    menuitems in the "view" menu to allow access to the above.

2000-04-19  Seth Alves  <alves@hungry.com>

    * e-shell-view.c (get_view): set calendar's uri with a property bag

2000-04-19  Christopher James Lahey  <clahey@helixcode.com>

    * idl/folder.idl: New idl file.  Still unused.

2000-04-14  Christopher James Lahey  <clahey@helixcode.com>

    * e-shell-view.c: Made the left pane of the shell view not
    autoresize.

2000-04-09  Matt Loper  <matt@helixcode.com>

    * e-shell-view.c (e_shell_view_setup): Set the default height
    bigger, to 600, so that everything in the shortcut-bar shows up.

2000-04-07  Matt Loper  <matt@helixcode.com>

    * e-shell-view.c (destroy_folder_view): New function;
    Bonobo_Unknown_unref's the controls that have the views in them.
    (esv_destroy): Calls the above for each folder_view in the
    hashtable.
    (get_view): unref the ServiceRepository interface of the control
    when we're done with it.

2000-04-06  Miguel de Icaza  <miguel@gnu.org>

    * shell/e-shortcut.c (shell_icon_cb): Append a slash here.
    (shell_icons): Only list the filenames.

    * shell/main.c (evolution_boot): Be less rude.

2000-04-06  Matt Loper  <matt@helixcode.com>

    * shell/main.c (evolution_boot): Make sure our data directory is
    available with e_setup_base_dir ().

2000-04-06  Miguel de Icaza  <miguel@gnu.org>

    * shell/e-shortcut.c (shell_icon_cb): Load the icons from the
    installation path, not form the GNOME-libs installation prefix. 
    (shell_icon_cb): Memory leak fix.

    * shell/Makefile.am (imagesdir): Pass the EVOLUTION_IMAGES
    installation directory here.

2000-04-05  Seth Alves  <alves@hungry.com>

    * shell/e-shell-view.c (get_view): hook up control:calendar

2000-03-31  Dan Winship  <danw@helixcode.com>

    * shell/e-shortcut.c (e_shortcut_bar_view_new, shell_icon_cb):
    Update for shortcut bar changes.

    * shell/e-folder.h: add E_FOLDER_SUMMARY
    * shell/e-shell.c (e_shell_setup_default_folders): make the
    "Today" icon be of type E_FOLDER_SUMMARY, not E_FOLDER_MAIL.

2000-03-30  Dan Winship  <danw@helixcode.com>

    * shell/e-shell-view.c (e_shell_view_set_view): Hold off on
    deactivating the "outgoing" control until after setting up the
    "incoming" control. That way if the new control takes a few
    seconds to load, there won't be an ugly empty spot where the
    toolbar used to be while the new control loads.

2000-03-29  Dan Winship  <danw@helixcode.com>

    * shell/e-shell-view.c (e_shell_view_set_view): Call
    bonobo_control_frame_activate on the folder_view every time it
    is displayed, and bonobo_control_frame_deactivate every time it is
    hidden.

2000-03-25  Matt Loper  <matt@helixcode.com>

    * shell/e-shell-view.c (get_view): Move CORBA_Environment to
    different scope.

2000-03-22  Matt Loper  <matt@helixcode.com>

    * shell/main.c (evolution_boot): gtk_signal_connect'ed "destroy"
    to gtk_main_quit, so that the shell dies when you want it to.

    * shell/e-shell-view.c (get_view): Reorganized, and added
    assertions.
    (e_shell_view_set_view): Added assertions.

2000-03-20  Matt Loper  <matt@helixcode.com>
    
    * shell/e-shell-view.h: New private field in EShellView added,
    which contains the notebook and a hashtable of folders to views.

    * shell/e-shell-view.c (e_shell_view_set_view): Instead of
    creating a new control every time we set the view, we now keep our
    controls in a notebook. This function now switches to the correct
    notebook page, or creates a new page/control as necessary.
    (e_shell_view_new): Creates and inserts the notebook into the
    shell.

2000-03-13  Christopher James Lahey  <clahey@helixcode.com>

    * shell/e-shell-view.c: Added an E_FOLDER_CONTACTS section to the
    get_view function.

2000-03-13  bertrand  <bertrand@helixcode.com>

    * shell/e-shell.c (EShell_register_service): 
    test implementation. Show the uri and the type 
    of service that has just been registered.
    
    * shell/e-shell-view.c (get_view): 
    once we have the bonobo control widget, 
    disable the autoactivation and activate
    the control frame.
    (get_view): added a parameter to have
    a reference to the EShellView.
    (get_view): In the case of the mail component
    use the Evolution_ServiceRepository to 
    give the component a reference to the 
    Shell server.

2000-03-12  bertrand  <bertrand@helixcode.com>

    * shell/e-shell-view.c (get_view): name change
    

    * shell/e-folder.c (e_folder_get_folder_type): added the
    get_e_folder_type function.

    * shell/evolution-service-repository.c:
    (evolution_service_repository_new): creates an 
    Evolution_ServiceRepository object.
    (create_evolution_service_repository): 
    create the corresponding servant.
    (evolution_service_repository_construct): set 
    the closure as well as the virtual functions. 

2000-03-12  bertrand  <bertrand@helixcode.com>

    * shell/evolution-service-repository.c: 
    * shell/evolution-service-repository.h: 
    Implementation of the service repository interface
    as a bonobo object.

    * shell/evolution-service-repository.idl: 
    new file. Contains the definition for the service
    repository interface.

    * shell/Shell.idl: move the shell related stuff 
    here
    
2000-03-12  bertrand  <bertrand@helixcode.com>

    * shell/e-folder.h: add a field refering to a
    service associated to the efolder. In the case of 
    distant folders, it is generally a server.  

    * shell/e-service.c: New class. Models a service.
    A service is an object with an URI and a root folder. 
    It genreally reporesents a distant folder. 
    A service is generally a ressource shared amongst
    several folders. 
    * shell/e-service.h: 

2000-03-07  bertrand  <bertrand@helixcode.com>

    * shell/e-shell-shortcut.c (shortcut_bar_item_selected): 
    removed a test that prevented the standard menu 
    to be shown.

2000-03-01  Ettore Perazzoli  <ettore@helixcode.com>

    * shell/Makefile.am (INCLUDES): use `top_srcdir' instead of
    `srcdir'.  Also, add `$(top_srcdir)'.  And put the srcdir includes
    before everything else.
    (evolution_LDADD): `libeutil.la', not `libeutil.a'.

2000-02-22  bertrand  <Bertrand.Guiheneuf@aful.org>

    * shell/Makefile.am (evolution_LDADD): 
    add libetext.a.

2000-02-08  Iain Holmes  <ih@csd.abdn.ac.uk>

    * shell/Makefile.am: Changed the order of the compilation, so the CORBA
    stuff was generated before it was needed.

2000-01-15  Miguel de Icaza  <miguel@gnu.org>

    * shell/e-shell.c: Construct the default folders 

    * shell/e-shell-view.c (e_shell_view_new): Setup the main GnomeApp
    application, load the shortcut, internal api. 

    * shell/e-folder.c (e_folder_get_type_name): Return description
    here;  Change of policy;  We now know about all of the possible
    types that can be displayed on Evolution. 

2000-01-15  Miguel de Icaza <miguel@gnu.org>

    * shell/e-folder.c: Renamed signal.

    * widgets/shortcut-bar/e-shortcut-bar.c (e_shortcut_bar_add_item):
    Use e_bar_set_item_data.

    Drop item_url;  Require image argument;  Require user data
    argument. 

2000-01-05  Miguel de Icaza  <miguel@gnu.org>

    * shell/Makefile.am: New file.