aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/dialogs/task-editor.c
diff options
context:
space:
mode:
authorJP Rosevear <jpr@ximian.com>2001-02-09 08:48:07 +0800
committerJP Rosevear <jpr@src.gnome.org>2001-02-09 08:48:07 +0800
commitfd6e9b75700544aec9ce03e5380e7385f4cce4f8 (patch)
tree2c615e0eeb82ba21a6e313278332e4c24925ec97 /calendar/gui/dialogs/task-editor.c
parent11c5b60d8cae375aed02a6bb1cfb8c483550158b (diff)
downloadgsoc2013-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.c69
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. */