diff options
author | JP Rosevear <jpr@ximian.com> | 2001-02-09 08:48:07 +0800 |
---|---|---|
committer | JP Rosevear <jpr@src.gnome.org> | 2001-02-09 08:48:07 +0800 |
commit | fd6e9b75700544aec9ce03e5380e7385f4cce4f8 (patch) | |
tree | 2c615e0eeb82ba21a6e313278332e4c24925ec97 /calendar/gui/dialogs/task-editor.c | |
parent | 11c5b60d8cae375aed02a6bb1cfb8c483550158b (diff) | |
download | gsoc2013-evolution-fd6e9b75700544aec9ce03e5380e7385f4cce4f8.tar gsoc2013-evolution-fd6e9b75700544aec9ce03e5380e7385f4cce4f8.tar.gz gsoc2013-evolution-fd6e9b75700544aec9ce03e5380e7385f4cce4f8.tar.bz2 gsoc2013-evolution-fd6e9b75700544aec9ce03e5380e7385f4cce4f8.tar.lz gsoc2013-evolution-fd6e9b75700544aec9ce03e5380e7385f4cce4f8.tar.xz gsoc2013-evolution-fd6e9b75700544aec9ce03e5380e7385f4cce4f8.tar.zst gsoc2013-evolution-fd6e9b75700544aec9ce03e5380e7385f4cce4f8.zip |
fill in new classification stuff properly (get_widgets): load new class.
2001-02-08 JP Rosevear <jpr@ximian.com>
* gui/dialogs/task-editor.c (fill_widgets): fill in new classification stuff properly
(get_widgets): load new class. widgets
(init_widgets): if the class. widgets change, mark the dialog dirty
(dialog_to_comp_object): set the comp class. from the new widgets
* gui/dialogs/task-editor-dialog.glade: Make more consistent,
fixing bugs 1247 and 1249
* gui/dialogs/task-editor.c (fill_widgets):
* gui/event-editor-dialog.glade: Gui tidying
* gui/event-editor.c: Remove old alarm cruft
* cal-util/cal-component.c (cal_component_set_url): Don't try and
write an empty string as a property
svn path=/trunk/; revision=8132
Diffstat (limited to 'calendar/gui/dialogs/task-editor.c')
-rw-r--r-- | calendar/gui/dialogs/task-editor.c | 69 |
1 files changed, 52 insertions, 17 deletions
diff --git a/calendar/gui/dialogs/task-editor.c b/calendar/gui/dialogs/task-editor.c index 936da0f8db..64e73e30f5 100644 --- a/calendar/gui/dialogs/task-editor.c +++ b/calendar/gui/dialogs/task-editor.c @@ -75,10 +75,13 @@ typedef struct { GtkWidget *status; GtkWidget *priority; - GtkWidget *classification; GtkWidget *description; + GtkWidget *classification_public; + GtkWidget *classification_private; + GtkWidget *classification_confidential; + GtkWidget *contacts; GtkWidget *categories_btn; GtkWidget *categories; @@ -118,14 +121,12 @@ static const int priority_map[] = { }; static const int classification_map[] = { - CAL_COMPONENT_CLASS_NONE, CAL_COMPONENT_CLASS_PUBLIC, CAL_COMPONENT_CLASS_PRIVATE, CAL_COMPONENT_CLASS_CONFIDENTIAL, -1 }; - static void task_editor_class_init (TaskEditorClass *class); static void task_editor_init (TaskEditor *tedit); static void tedit_apply_event_cb (GtkWidget *widget, gint page_num, gpointer data); @@ -161,6 +162,7 @@ static void field_changed (GtkWidget *widget, static void task_editor_set_changed (TaskEditor *tedit, gboolean changed); static gboolean prompt_to_save_changes (TaskEditor *tedit); +static CalComponentClassification classification_get (GtkWidget *widget); static void categories_clicked (GtkWidget *button, TaskEditor *editor); @@ -370,10 +372,13 @@ get_widgets (TaskEditor *tedit) priv->status = GW ("status"); priv->priority = GW ("priority"); - priv->classification = GW ("classification"); priv->description = GW ("description"); + priv->classification_public = GW ("classification-public"); + priv->classification_private = GW ("classification-private"); + priv->classification_confidential = GW ("classification-confidential"); + priv->contacts = GW ("contacts"); priv->categories_btn = GW ("categories-button"); priv->categories = GW ("categories"); @@ -390,12 +395,14 @@ get_widgets (TaskEditor *tedit) && priv->percent_complete && priv->status && priv->priority - && priv->classification + && priv->classification_public + && priv->classification_private + && priv->classification_confidential && priv->description && priv->contacts && priv->categories_btn && priv->categories - && priv->completed_date + && priv->completed_date && priv->url); } @@ -422,6 +429,19 @@ init_widgets (TaskEditor *tedit) "value_changed", GTK_SIGNAL_FUNC (percent_complete_changed), tedit); + /* Classification */ + gtk_signal_connect (GTK_OBJECT (priv->description), "changed", + GTK_SIGNAL_FUNC (field_changed), tedit); + gtk_signal_connect (GTK_OBJECT (priv->classification_public), + "toggled", + GTK_SIGNAL_FUNC (field_changed), tedit); + gtk_signal_connect (GTK_OBJECT (priv->classification_private), + "toggled", + GTK_SIGNAL_FUNC (field_changed), tedit); + gtk_signal_connect (GTK_OBJECT (priv->classification_confidential), + "toggled", + GTK_SIGNAL_FUNC (field_changed), tedit); + /* Connect the default signal handler to use to make sure the "changed" field gets set whenever a field is changed. */ gtk_signal_connect (GTK_OBJECT (priv->summary), "changed", @@ -433,9 +453,6 @@ init_widgets (TaskEditor *tedit) gtk_signal_connect (GTK_OBJECT (GTK_OPTION_MENU (priv->priority)->menu), "deactivate", GTK_SIGNAL_FUNC (field_changed), tedit); - gtk_signal_connect (GTK_OBJECT (GTK_OPTION_MENU (priv->classification)->menu), - "deactivate", - GTK_SIGNAL_FUNC (field_changed), tedit); gtk_signal_connect (GTK_OBJECT (priv->description), "changed", GTK_SIGNAL_FUNC (field_changed), tedit); gtk_signal_connect (GTK_OBJECT (priv->contacts), "changed", @@ -735,8 +752,8 @@ fill_widgets (TaskEditor *tedit) TaskEditorPrivate *priv; CalComponentText text; CalComponentDateTime d; + CalComponentClassification cl; struct icaltimetype *completed; - CalComponentClassification classification; GSList *l; time_t t; int *priority_value, *percent; @@ -836,9 +853,23 @@ fill_widgets (TaskEditor *tedit) /* Classification. */ - cal_component_get_classification (priv->comp, &classification); - e_dialog_option_menu_set (priv->classification, classification, - classification_map); + cal_component_get_classification (priv->comp, &cl); + + switch (cl) { + case CAL_COMPONENT_CLASS_PUBLIC: + e_dialog_radio_set (priv->classification_public, CAL_COMPONENT_CLASS_PUBLIC, + classification_map); + case CAL_COMPONENT_CLASS_PRIVATE: + e_dialog_radio_set (priv->classification_public, CAL_COMPONENT_CLASS_PRIVATE, + classification_map); + case CAL_COMPONENT_CLASS_CONFIDENTIAL: + e_dialog_radio_set (priv->classification_public, CAL_COMPONENT_CLASS_CONFIDENTIAL, + classification_map); + default: + /* What do do? We can't g_assert_not_reached() since it is a + * value from an external file. + */ + } /* Categories */ cal_component_get_categories (priv->comp, &categories); @@ -885,7 +916,6 @@ dialog_to_comp_object (TaskEditor *tedit) icalproperty_status status; TaskEditorPriority priority; int priority_value, percent; - CalComponentClassification classification; char *url, *cat; char *str; @@ -977,9 +1007,7 @@ dialog_to_comp_object (TaskEditor *tedit) cal_component_set_priority (comp, &priority_value); /* Classification. */ - classification = e_dialog_option_menu_get (priv->classification, - classification_map); - cal_component_set_classification (comp, classification); + cal_component_set_classification (comp, classification_get (priv->classification_public)); /* Categories */ cat = e_dialog_editable_get (priv->categories); @@ -1150,6 +1178,13 @@ percent_complete_changed (GtkAdjustment *adj, priv->ignore_callbacks = FALSE; } +/* Decode the radio button group for classifications */ +static CalComponentClassification +classification_get (GtkWidget *widget) +{ + return e_dialog_radio_get (widget, classification_map); +} + /* This is called when all fields except those handled above (status, percent complete & completed date) are changed. It just sets the "changed" flag. */ |