Usability fixes -mig

svn path=/trunk/; revision=156
This commit is contained in:
Arturo Espinosa
1998-04-18 04:22:57 +00:00
parent f1b08663dd
commit d4f4dc26fc
8 changed files with 44 additions and 26 deletions

View File

@ -291,10 +291,8 @@ gncal_day_view_update (GncalDayView *dview, iCalObject *ico, int flags)
g_return_if_fail (dview != NULL); g_return_if_fail (dview != NULL);
g_return_if_fail (GNCAL_IS_DAY_VIEW (dview)); g_return_if_fail (GNCAL_IS_DAY_VIEW (dview));
g_return_if_fail (dview->calendar->cal);
if (!dview->calendar->cal)
return;
if (dview->day_str) if (dview->day_str)
g_free (dview->day_str); g_free (dview->day_str);

View File

@ -137,8 +137,6 @@ gnome_calendar_init(GnomeCalendar *gcal)
gcal->week_view = 0; gcal->week_view = 0;
gcal->year_view = 0; gcal->year_view = 0;
gcal->event_editor = 0; gcal->event_editor = 0;
setup_widgets (gcal);
} }
static GtkWidget * static GtkWidget *
@ -222,6 +220,7 @@ gnome_calendar_new (char *title)
gcal->current_display = time (NULL); gcal->current_display = time (NULL);
gcal->cal = calendar_new (title); gcal->cal = calendar_new (title);
setup_widgets (gcal);
return retval; return retval;
} }
@ -233,16 +232,17 @@ gnome_calendar_update_all (GnomeCalendar *cal, iCalObject *object, int flags)
gncal_year_view_update (GNCAL_YEAR_VIEW (cal->year_view), object, flags); gncal_year_view_update (GNCAL_YEAR_VIEW (cal->year_view), object, flags);
} }
void int
gnome_calendar_load (GnomeCalendar *gcal, char *file) gnome_calendar_load (GnomeCalendar *gcal, char *file)
{ {
char *r; char *r;
if ((r = calendar_load (gcal->cal, file)) != NULL){ if ((r = calendar_load (gcal->cal, file)) != NULL){
printf ("Error loading calendar: %s\n", r); printf ("Error loading calendar: %s\n", r);
return; return 0;
} }
gnome_calendar_update_all (gcal, NULL, 0); gnome_calendar_update_all (gcal, NULL, 0);
return 1;
} }
void void

View File

@ -40,7 +40,7 @@ typedef struct {
guint gnome_calendar_get_type (void); guint gnome_calendar_get_type (void);
GtkWidget *gnome_calendar_new (char *title); GtkWidget *gnome_calendar_new (char *title);
void gnome_calendar_load (GnomeCalendar *gcal, char *file); int gnome_calendar_load (GnomeCalendar *gcal, char *file);
void gnome_calendar_add_object (GnomeCalendar *gcal, iCalObject *obj); void gnome_calendar_add_object (GnomeCalendar *gcal, iCalObject *obj);
void gnome_calendar_remove_object (GnomeCalendar *gcal, iCalObject *obj); void gnome_calendar_remove_object (GnomeCalendar *gcal, iCalObject *obj);
void gnome_calendar_next (GnomeCalendar *gcal); void gnome_calendar_next (GnomeCalendar *gcal);

View File

@ -291,10 +291,8 @@ gncal_day_view_update (GncalDayView *dview, iCalObject *ico, int flags)
g_return_if_fail (dview != NULL); g_return_if_fail (dview != NULL);
g_return_if_fail (GNCAL_IS_DAY_VIEW (dview)); g_return_if_fail (GNCAL_IS_DAY_VIEW (dview));
g_return_if_fail (dview->calendar->cal);
if (!dview->calendar->cal)
return;
if (dview->day_str) if (dview->day_str)
g_free (dview->day_str); g_free (dview->day_str);

View File

@ -137,8 +137,6 @@ gnome_calendar_init(GnomeCalendar *gcal)
gcal->week_view = 0; gcal->week_view = 0;
gcal->year_view = 0; gcal->year_view = 0;
gcal->event_editor = 0; gcal->event_editor = 0;
setup_widgets (gcal);
} }
static GtkWidget * static GtkWidget *
@ -222,6 +220,7 @@ gnome_calendar_new (char *title)
gcal->current_display = time (NULL); gcal->current_display = time (NULL);
gcal->cal = calendar_new (title); gcal->cal = calendar_new (title);
setup_widgets (gcal);
return retval; return retval;
} }
@ -233,16 +232,17 @@ gnome_calendar_update_all (GnomeCalendar *cal, iCalObject *object, int flags)
gncal_year_view_update (GNCAL_YEAR_VIEW (cal->year_view), object, flags); gncal_year_view_update (GNCAL_YEAR_VIEW (cal->year_view), object, flags);
} }
void int
gnome_calendar_load (GnomeCalendar *gcal, char *file) gnome_calendar_load (GnomeCalendar *gcal, char *file)
{ {
char *r; char *r;
if ((r = calendar_load (gcal->cal, file)) != NULL){ if ((r = calendar_load (gcal->cal, file)) != NULL){
printf ("Error loading calendar: %s\n", r); printf ("Error loading calendar: %s\n", r);
return; return 0;
} }
gnome_calendar_update_all (gcal, NULL, 0); gnome_calendar_update_all (gcal, NULL, 0);
return 1;
} }
void void

View File

@ -40,7 +40,7 @@ typedef struct {
guint gnome_calendar_get_type (void); guint gnome_calendar_get_type (void);
GtkWidget *gnome_calendar_new (char *title); GtkWidget *gnome_calendar_new (char *title);
void gnome_calendar_load (GnomeCalendar *gcal, char *file); int gnome_calendar_load (GnomeCalendar *gcal, char *file);
void gnome_calendar_add_object (GnomeCalendar *gcal, iCalObject *obj); void gnome_calendar_add_object (GnomeCalendar *gcal, iCalObject *obj);
void gnome_calendar_remove_object (GnomeCalendar *gcal, iCalObject *obj); void gnome_calendar_remove_object (GnomeCalendar *gcal, iCalObject *obj);
void gnome_calendar_next (GnomeCalendar *gcal); void gnome_calendar_next (GnomeCalendar *gcal);

View File

@ -130,6 +130,7 @@ display_objedit (GtkWidget *widget, GnomeCalendar *gcal)
void void
close_cmd (GtkWidget *widget, GnomeCalendar *gcal) close_cmd (GtkWidget *widget, GnomeCalendar *gcal)
{ {
all_calendars = g_list_remove (all_calendars, gcal);
if (gcal->cal->modified){ if (gcal->cal->modified){
if (!gcal->cal->filename) if (!gcal->cal->filename)
save_calendar_cmd (widget, gcal); save_calendar_cmd (widget, gcal);
@ -137,9 +138,8 @@ close_cmd (GtkWidget *widget, GnomeCalendar *gcal)
calendar_save (gcal->cal, gcal->cal->filename); calendar_save (gcal->cal, gcal->cal->filename);
} }
gtk_widget_destroy (GTK_WIDGET (gcal)); /* gtk_widget_destroy (GTK_WIDGET (gcal)); */
active_calendars--; active_calendars--;
all_calendars = g_list_remove (all_calendars, gcal);
if (active_calendars == 0) if (active_calendars == 0)
gtk_main_quit (); gtk_main_quit ();
@ -218,7 +218,14 @@ save_ok (GtkWidget *widget, GtkFileSelection *fs)
gcal->cal->filename = g_strdup (gtk_file_selection_get_filename (fs)); gcal->cal->filename = g_strdup (gtk_file_selection_get_filename (fs));
calendar_save (gcal->cal, gcal->cal->filename); calendar_save (gcal->cal, gcal->cal->filename);
gtk_widget_destroy (GTK_WIDGET (fs)); gtk_main_quit ();
}
static gint
close_save (GtkWidget *w)
{
gtk_main_quit ();
return TRUE;
} }
void void
@ -233,11 +240,15 @@ save_calendar_cmd (GtkWidget *widget, void *data)
(GtkSignalFunc) save_ok, (GtkSignalFunc) save_ok,
fs); fs);
gtk_signal_connect_object (GTK_OBJECT (fs->cancel_button), "clicked", gtk_signal_connect_object (GTK_OBJECT (fs->cancel_button), "clicked",
(GtkSignalFunc) gtk_widget_destroy, (GtkSignalFunc) close_save,
GTK_OBJECT (fs));
gtk_signal_connect_object (GTK_OBJECT (fs), "delete_event",
GTK_SIGNAL_FUNC (close_save),
GTK_OBJECT (fs)); GTK_OBJECT (fs));
gtk_widget_show (GTK_WIDGET (fs)); gtk_widget_show (GTK_WIDGET (fs));
gtk_grab_add (GTK_WIDGET (fs)); /* Yes, it is modal, so sue me even more */ gtk_grab_add (GTK_WIDGET (fs)); /* Yes, it is modal, so sue me even more */
gtk_main ();
gtk_widget_destroy (GTK_WIDGET (fs));
} }
GnomeUIInfo gnome_cal_file_menu [] = { GnomeUIInfo gnome_cal_file_menu [] = {

View File

@ -130,6 +130,7 @@ display_objedit (GtkWidget *widget, GnomeCalendar *gcal)
void void
close_cmd (GtkWidget *widget, GnomeCalendar *gcal) close_cmd (GtkWidget *widget, GnomeCalendar *gcal)
{ {
all_calendars = g_list_remove (all_calendars, gcal);
if (gcal->cal->modified){ if (gcal->cal->modified){
if (!gcal->cal->filename) if (!gcal->cal->filename)
save_calendar_cmd (widget, gcal); save_calendar_cmd (widget, gcal);
@ -137,9 +138,8 @@ close_cmd (GtkWidget *widget, GnomeCalendar *gcal)
calendar_save (gcal->cal, gcal->cal->filename); calendar_save (gcal->cal, gcal->cal->filename);
} }
gtk_widget_destroy (GTK_WIDGET (gcal)); /* gtk_widget_destroy (GTK_WIDGET (gcal)); */
active_calendars--; active_calendars--;
all_calendars = g_list_remove (all_calendars, gcal);
if (active_calendars == 0) if (active_calendars == 0)
gtk_main_quit (); gtk_main_quit ();
@ -218,7 +218,14 @@ save_ok (GtkWidget *widget, GtkFileSelection *fs)
gcal->cal->filename = g_strdup (gtk_file_selection_get_filename (fs)); gcal->cal->filename = g_strdup (gtk_file_selection_get_filename (fs));
calendar_save (gcal->cal, gcal->cal->filename); calendar_save (gcal->cal, gcal->cal->filename);
gtk_widget_destroy (GTK_WIDGET (fs)); gtk_main_quit ();
}
static gint
close_save (GtkWidget *w)
{
gtk_main_quit ();
return TRUE;
} }
void void
@ -233,11 +240,15 @@ save_calendar_cmd (GtkWidget *widget, void *data)
(GtkSignalFunc) save_ok, (GtkSignalFunc) save_ok,
fs); fs);
gtk_signal_connect_object (GTK_OBJECT (fs->cancel_button), "clicked", gtk_signal_connect_object (GTK_OBJECT (fs->cancel_button), "clicked",
(GtkSignalFunc) gtk_widget_destroy, (GtkSignalFunc) close_save,
GTK_OBJECT (fs));
gtk_signal_connect_object (GTK_OBJECT (fs), "delete_event",
GTK_SIGNAL_FUNC (close_save),
GTK_OBJECT (fs)); GTK_OBJECT (fs));
gtk_widget_show (GTK_WIDGET (fs)); gtk_widget_show (GTK_WIDGET (fs));
gtk_grab_add (GTK_WIDGET (fs)); /* Yes, it is modal, so sue me even more */ gtk_grab_add (GTK_WIDGET (fs)); /* Yes, it is modal, so sue me even more */
gtk_main ();
gtk_widget_destroy (GTK_WIDGET (fs));
} }
GnomeUIInfo gnome_cal_file_menu [] = { GnomeUIInfo gnome_cal_file_menu [] = {