[evolution] Bug #353743 - Add Print button to meeting notification dialog



commit 4dc5558f19f96858ec2a97d82b23b6401ed74a0b
Author: Milan Crha <mcrha redhat com>
Date:   Mon Jan 2 17:07:59 2012 +0100

    Bug #353743 - Add Print button to meeting notification dialog

 calendar/Makefile.am                               |    2 +-
 calendar/{gui => }/alarm-notify/Makefile.am        |    1 +
 .../{gui => }/alarm-notify/alarm-notify-dialog.c   |   25 +++++++++++++++++++-
 .../{gui => }/alarm-notify/alarm-notify-dialog.h   |    1 +
 calendar/{gui => }/alarm-notify/alarm-notify.c     |    0
 calendar/{gui => }/alarm-notify/alarm-notify.h     |    0
 calendar/{gui => }/alarm-notify/alarm-notify.ui    |   17 ++++++++++++-
 calendar/{gui => }/alarm-notify/alarm-queue.c      |   18 ++++++++++++++
 calendar/{gui => }/alarm-notify/alarm-queue.h      |    0
 calendar/{gui => }/alarm-notify/alarm.c            |    0
 calendar/{gui => }/alarm-notify/alarm.h            |    0
 calendar/{gui => }/alarm-notify/config-data.c      |    0
 calendar/{gui => }/alarm-notify/config-data.h      |    0
 .../alarm-notify/evolution-alarm-notify-icon.rc    |    0
 .../alarm-notify/evolution-alarm-notify.ico        |  Bin 17542 -> 17542 bytes
 calendar/{gui => }/alarm-notify/notify-main.c      |    0
 calendar/{gui => }/alarm-notify/util.c             |    0
 calendar/{gui => }/alarm-notify/util.h             |    0
 calendar/gui/Makefile.am                           |    2 +-
 configure.ac                                       |    2 +-
 po/POTFILES.in                                     |    8 +++---
 21 files changed, 67 insertions(+), 9 deletions(-)
---
diff --git a/calendar/Makefile.am b/calendar/Makefile.am
index 76bc203..4fe6165 100644
--- a/calendar/Makefile.am
+++ b/calendar/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = importers gui
+SUBDIRS = importers gui alarm-notify
 
 error_DATA = calendar.error
 errordir = $(privdatadir)/errors
diff --git a/calendar/gui/alarm-notify/Makefile.am b/calendar/alarm-notify/Makefile.am
similarity index 96%
rename from calendar/gui/alarm-notify/Makefile.am
rename to calendar/alarm-notify/Makefile.am
index 82fdeeb..59c9182 100644
--- a/calendar/gui/alarm-notify/Makefile.am
+++ b/calendar/alarm-notify/Makefile.am
@@ -44,6 +44,7 @@ evolution_alarm_notify_SOURCES =	\
 evolution_alarm_notify_LDADD =						\
 	$(top_builddir)/e-util/libeutil.la				\
 	$(top_builddir)/widgets/misc/libemiscwidgets.la			\
+	$(top_builddir)/calendar/gui/libevolution-calendar.la		\
 	$(EVOLUTION_DATA_SERVER_LIBS)					\
 	$(GNOME_PLATFORM_LIBS)						\
 	$(LIBNOTIFY_LIBS)						\
diff --git a/calendar/gui/alarm-notify/alarm-notify-dialog.c b/calendar/alarm-notify/alarm-notify-dialog.c
similarity index 95%
rename from calendar/gui/alarm-notify/alarm-notify-dialog.c
rename to calendar/alarm-notify/alarm-notify-dialog.c
index 48d14f1..c9a264d 100644
--- a/calendar/gui/alarm-notify/alarm-notify-dialog.c
+++ b/calendar/alarm-notify/alarm-notify-dialog.c
@@ -69,6 +69,7 @@ typedef struct {
 	GtkWidget *snooze_time_days;
 	GtkWidget *snooze_btn;
 	GtkWidget *edit_btn;
+	GtkWidget *print_btn;
 	GtkWidget *dismiss_btn;
 	GtkWidget *minutes_label;
 	GtkWidget *hrs_label;
@@ -185,6 +186,24 @@ edit_pressed_cb (GtkButton *button,
 	(* funcinfo->func) (ALARM_NOTIFY_EDIT, -1, funcinfo->func_data);
 }
 
+static void
+print_pressed_cb (GtkButton *button,
+                 gpointer user_data)
+{
+	AlarmNotify *an = user_data;
+	AlarmFuncInfo *funcinfo = NULL;
+	GtkTreeIter iter;
+	GtkTreeModel *model = NULL;
+	GtkTreeSelection *selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (an->treeview));
+
+	if (gtk_tree_selection_get_selected (selection, &model, &iter))
+		gtk_tree_model_get (model, &iter, ALARM_FUNCINFO_COLUMN, &funcinfo, -1);
+
+	g_return_if_fail (funcinfo);
+
+	(* funcinfo->func) (ALARM_NOTIFY_PRINT, -1, funcinfo->func_data);
+}
+
 #define DEFAULT_SNOOZE_MINS 5
 
 static void
@@ -291,11 +310,12 @@ notified_alarms_dialog_new (void)
 	an->treeview = e_builder_get_widget (an->builder, "appointments-treeview");
 	an->snooze_btn = e_builder_get_widget (an->builder, "snooze-button");
 	an->edit_btn = e_builder_get_widget (an->builder, "edit-button");
+	an->print_btn = e_builder_get_widget (an->builder, "print-button");
 	an->dismiss_btn = e_builder_get_widget (an->builder, "dismiss-button");
 
 	if (!(an->dialog && an->treeview
 	      && an->snooze_time_min && an->snooze_time_hrs && an->snooze_time_days
-	      && an->description && an->location && an->edit_btn && an->snooze_btn && an->dismiss_btn)) {
+	      && an->description && an->location && an->edit_btn && an->print_btn && an->snooze_btn && an->dismiss_btn)) {
 		g_warning ("alarm_notify_dialog(): Could not find all widgets in alarm-notify.ui file!");
 		g_object_unref (an->builder);
 		g_free (an);
@@ -336,6 +356,7 @@ notified_alarms_dialog_new (void)
 		GTK_IMAGE (image), "stock_alarm", GTK_ICON_SIZE_DIALOG);
 
 	g_signal_connect (an->edit_btn, "clicked", G_CALLBACK (edit_pressed_cb), an);
+	g_signal_connect (an->print_btn, "clicked", G_CALLBACK (print_pressed_cb), an);
 	g_signal_connect (an->snooze_btn, "clicked", G_CALLBACK (snooze_pressed_cb), an);
 	g_signal_connect (an->dismiss_btn, "clicked", G_CALLBACK (dismiss_pressed_cb), an);
 	g_signal_connect (
@@ -463,6 +484,7 @@ tree_selection_changed_cb (GtkTreeSelection *selection,
 
 		gtk_widget_set_sensitive (an->snooze_btn, TRUE);
 		gtk_widget_set_sensitive (an->edit_btn, TRUE);
+		gtk_widget_set_sensitive (an->print_btn, TRUE);
 		gtk_widget_set_sensitive (an->dismiss_btn, TRUE);
 		gtk_tree_model_get (model, &iter, ALARM_SUMMARY_COLUMN, &summary, -1);
 		gtk_tree_model_get (model, &iter, ALARM_DESCRIPTION_COLUMN, &description, -1);
@@ -475,6 +497,7 @@ tree_selection_changed_cb (GtkTreeSelection *selection,
 	} else {
 		gtk_widget_set_sensitive (an->snooze_btn, FALSE);
 		gtk_widget_set_sensitive (an->edit_btn, FALSE);
+		gtk_widget_set_sensitive (an->print_btn, FALSE);
 		gtk_widget_set_sensitive (an->dismiss_btn, FALSE);
 
 		fill_in_labels (an, "", "", "", -1, -1);
diff --git a/calendar/gui/alarm-notify/alarm-notify-dialog.h b/calendar/alarm-notify/alarm-notify-dialog.h
similarity index 98%
rename from calendar/gui/alarm-notify/alarm-notify-dialog.h
rename to calendar/alarm-notify/alarm-notify-dialog.h
index ad7db99..f61bdba 100644
--- a/calendar/gui/alarm-notify/alarm-notify-dialog.h
+++ b/calendar/alarm-notify/alarm-notify-dialog.h
@@ -31,6 +31,7 @@ typedef enum {
 	ALARM_NOTIFY_CLOSE,
 	ALARM_NOTIFY_SNOOZE,
 	ALARM_NOTIFY_EDIT,
+	ALARM_NOTIFY_PRINT,
 	ALARM_NOTIFY_DISMISS
 } AlarmNotifyResult;
 
diff --git a/calendar/gui/alarm-notify/alarm-notify.c b/calendar/alarm-notify/alarm-notify.c
similarity index 100%
rename from calendar/gui/alarm-notify/alarm-notify.c
rename to calendar/alarm-notify/alarm-notify.c
diff --git a/calendar/gui/alarm-notify/alarm-notify.h b/calendar/alarm-notify/alarm-notify.h
similarity index 100%
rename from calendar/gui/alarm-notify/alarm-notify.h
rename to calendar/alarm-notify/alarm-notify.h
diff --git a/calendar/gui/alarm-notify/alarm-notify.ui b/calendar/alarm-notify/alarm-notify.ui
similarity index 95%
rename from calendar/gui/alarm-notify/alarm-notify.ui
rename to calendar/alarm-notify/alarm-notify.ui
index bb418ab..acfdf5c 100644
--- a/calendar/gui/alarm-notify/alarm-notify.ui
+++ b/calendar/alarm-notify/alarm-notify.ui
@@ -132,6 +132,21 @@
                       </packing>
                     </child>
                     <child>
+                      <object class="GtkButton" id="print-button">
+                        <property name="label">gtk-print</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="can_default">True</property>
+                        <property name="receives_default">True</property>
+                        <property name="use_stock">True</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">2</property>
+                      </packing>
+                    </child>
+                    <child>
                       <object class="GtkButton" id="dismiss-button">
                         <property name="label" translatable="yes">_Dismiss</property>
                         <property name="visible">True</property>
@@ -143,7 +158,7 @@
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
-                        <property name="position">2</property>
+                        <property name="position">3</property>
                       </packing>
                     </child>
                   </object>
diff --git a/calendar/gui/alarm-notify/alarm-queue.c b/calendar/alarm-notify/alarm-queue.c
similarity index 99%
rename from calendar/gui/alarm-notify/alarm-queue.c
rename to calendar/alarm-notify/alarm-queue.c
index 8a4ae2f..f759733 100644
--- a/calendar/gui/alarm-notify/alarm-queue.c
+++ b/calendar/alarm-notify/alarm-queue.c
@@ -49,6 +49,8 @@
 #include "config-data.h"
 #include "util.h"
 
+#include "calendar/gui/print.h"
+
 /* The dialog with alarm nofications */
 static AlarmNotificationsDialog *alarm_notifications_dialog = NULL;
 
@@ -1050,6 +1052,17 @@ edit_component (ECalClient *cal_client,
 	g_free (command_line);
 }
 
+static void
+print_component (ECalClient *cal_client,
+		 ECalComponent *comp)
+{
+	print_comp (comp,
+		    cal_client,
+		    config_data_get_timezone (),
+		    config_data_get_24_hour_format (),
+		    GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG);
+}
+
 typedef struct {
 	gchar *summary;
 	gchar *description;
@@ -1355,6 +1368,11 @@ notify_dialog_cb (AlarmNotifyResult result,
 
 		break;
 
+	case ALARM_NOTIFY_PRINT:
+		print_component (tray_data->cal_client, tray_data->comp);
+
+		break;
+
 	case ALARM_NOTIFY_DISMISS:
 		if (alarm_notifications_dialog) {
 			GtkTreeModel *model;
diff --git a/calendar/gui/alarm-notify/alarm-queue.h b/calendar/alarm-notify/alarm-queue.h
similarity index 100%
rename from calendar/gui/alarm-notify/alarm-queue.h
rename to calendar/alarm-notify/alarm-queue.h
diff --git a/calendar/gui/alarm-notify/alarm.c b/calendar/alarm-notify/alarm.c
similarity index 100%
rename from calendar/gui/alarm-notify/alarm.c
rename to calendar/alarm-notify/alarm.c
diff --git a/calendar/gui/alarm-notify/alarm.h b/calendar/alarm-notify/alarm.h
similarity index 100%
rename from calendar/gui/alarm-notify/alarm.h
rename to calendar/alarm-notify/alarm.h
diff --git a/calendar/gui/alarm-notify/config-data.c b/calendar/alarm-notify/config-data.c
similarity index 100%
rename from calendar/gui/alarm-notify/config-data.c
rename to calendar/alarm-notify/config-data.c
diff --git a/calendar/gui/alarm-notify/config-data.h b/calendar/alarm-notify/config-data.h
similarity index 100%
rename from calendar/gui/alarm-notify/config-data.h
rename to calendar/alarm-notify/config-data.h
diff --git a/calendar/gui/alarm-notify/evolution-alarm-notify-icon.rc b/calendar/alarm-notify/evolution-alarm-notify-icon.rc
similarity index 100%
rename from calendar/gui/alarm-notify/evolution-alarm-notify-icon.rc
rename to calendar/alarm-notify/evolution-alarm-notify-icon.rc
diff --git a/calendar/gui/alarm-notify/evolution-alarm-notify.ico b/calendar/alarm-notify/evolution-alarm-notify.ico
similarity index 100%
rename from calendar/gui/alarm-notify/evolution-alarm-notify.ico
rename to calendar/alarm-notify/evolution-alarm-notify.ico
diff --git a/calendar/gui/alarm-notify/notify-main.c b/calendar/alarm-notify/notify-main.c
similarity index 100%
rename from calendar/gui/alarm-notify/notify-main.c
rename to calendar/alarm-notify/notify-main.c
diff --git a/calendar/gui/alarm-notify/util.c b/calendar/alarm-notify/util.c
similarity index 100%
rename from calendar/gui/alarm-notify/util.c
rename to calendar/alarm-notify/util.c
diff --git a/calendar/gui/alarm-notify/util.h b/calendar/alarm-notify/util.h
similarity index 100%
rename from calendar/gui/alarm-notify/util.h
rename to calendar/alarm-notify/util.h
diff --git a/calendar/gui/Makefile.am b/calendar/gui/Makefile.am
index ce1f832..a5f9a70 100644
--- a/calendar/gui/Makefile.am
+++ b/calendar/gui/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = alarm-notify dialogs
+SUBDIRS = dialogs
 
 privsolib_LTLIBRARIES = libevolution-calendar.la
 
diff --git a/configure.ac b/configure.ac
index a0101c6..ce88950 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1636,9 +1636,9 @@ widgets/misc/Makefile
 widgets/text/Makefile
 widgets/table/Makefile
 calendar/Makefile
+calendar/alarm-notify/Makefile
 calendar/importers/Makefile
 calendar/gui/Makefile
-calendar/gui/alarm-notify/Makefile
 calendar/gui/dialogs/Makefile
 composer/Makefile
 m4/Makefile
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 36bf948..4ffe468 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -36,11 +36,11 @@ addressbook/printing/test-print.c
 addressbook/tools/evolution-addressbook-export.c
 addressbook/tools/evolution-addressbook-export-list-cards.c
 addressbook/tools/evolution-addressbook-export-list-folders.c
+calendar/alarm-notify/alarm-notify-dialog.c
+[type: gettext/glade]calendar/alarm-notify/alarm-notify.ui
+calendar/alarm-notify/alarm-queue.c
+calendar/alarm-notify/util.c
 calendar/calendar.error.xml
-calendar/gui/alarm-notify/alarm-notify-dialog.c
-[type: gettext/glade]calendar/gui/alarm-notify/alarm-notify.ui
-calendar/gui/alarm-notify/alarm-queue.c
-calendar/gui/alarm-notify/util.c
 calendar/gui/calendar-view-factory.c
 calendar/gui/caltypes.xml
 calendar/gui/dialogs/alarm-dialog.c



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]