project: remove libgd dependency
This patch fixes bug #737729, removing all libgd dependencies. Every GdHeaderButton was replaced by GtkButton, and GdNotification was replaced by a custom-styled GtkFrame inside a GtkRevealer.
This commit is contained in:
committed by
Erick Pérez Castellanos
parent
6fa533ba79
commit
a5c65af0fb
@@ -1,3 +0,0 @@
|
|||||||
[submodule "libgd"]
|
|
||||||
path = libgd
|
|
||||||
url = git://git.gnome.org/libgd
|
|
||||||
|
|||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
ACLOCAL_AMFLAGS = -I m4 -I libgd ${ACLOCAL_FLAGS}
|
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
|
||||||
|
|
||||||
SUBDIRS = libgd src data po
|
SUBDIRS = src data po
|
||||||
|
|
||||||
gnome_calendardocdir = ${datadir}/doc/${PACKAGE_NAME}-${PACKAGE_VERSION}
|
gnome_calendardocdir = ${datadir}/doc/${PACKAGE_NAME}-${PACKAGE_VERSION}
|
||||||
gnome_calendardoc_DATA = \
|
gnome_calendardoc_DATA = \
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ srcdir=`dirname $0`
|
|||||||
test -z "$srcdir" && srcdir=.
|
test -z "$srcdir" && srcdir=.
|
||||||
|
|
||||||
PKG_NAME="gnome-calendar"
|
PKG_NAME="gnome-calendar"
|
||||||
ACLOCAL_FLAGS="-I libgd $ACLOCAL_FLAGS"
|
|
||||||
|
|
||||||
(test -f $srcdir/configure.ac \
|
(test -f $srcdir/configure.ac \
|
||||||
&& test -d $srcdir/src) || {
|
&& test -d $srcdir/src) || {
|
||||||
|
|||||||
@@ -96,16 +96,8 @@ PKG_CHECK_MODULES(CALENDAR,
|
|||||||
libedataserver-1.2 >= $EDATASERVER_REQUIRED
|
libedataserver-1.2 >= $EDATASERVER_REQUIRED
|
||||||
libical >= $LIBICAL_REQUIRED)
|
libical >= $LIBICAL_REQUIRED)
|
||||||
|
|
||||||
LIBGD_INIT([
|
|
||||||
_header-button
|
|
||||||
notification
|
|
||||||
static
|
|
||||||
tagged-entry
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_CONFIG_FILES([
|
AC_CONFIG_FILES([
|
||||||
Makefile
|
Makefile
|
||||||
libgd/Makefile
|
|
||||||
src/Makefile
|
src/Makefile
|
||||||
data/Makefile
|
data/Makefile
|
||||||
data/gnome-calendar.desktop.in
|
data/gnome-calendar.desktop.in
|
||||||
|
|||||||
-1
Submodule libgd deleted from a1f7543729
@@ -3,7 +3,6 @@ AM_CPPFLAGS = \
|
|||||||
-DPACKAGE_SRC_DIR=\""$(srcdir)"\" \
|
-DPACKAGE_SRC_DIR=\""$(srcdir)"\" \
|
||||||
-DPACKAGE_DATA_DIR=\""$(pkgdatadir)"\" \
|
-DPACKAGE_DATA_DIR=\""$(pkgdatadir)"\" \
|
||||||
-DUI_DATA_DIR=\""$(pkgdatadir)/style"\" \
|
-DUI_DATA_DIR=\""$(pkgdatadir)/style"\" \
|
||||||
-I$(top_srcdir)/libgd \
|
|
||||||
$(MAINTAINER_COMPILER_FLAGS) \
|
$(MAINTAINER_COMPILER_FLAGS) \
|
||||||
$(WARN_CFLAGS) \
|
$(WARN_CFLAGS) \
|
||||||
-DEDS_DISABLE_DEPRECATED \
|
-DEDS_DISABLE_DEPRECATED \
|
||||||
@@ -66,7 +65,6 @@ gnome_calendar_LDFLAGS = \
|
|||||||
|
|
||||||
gnome_calendar_LDADD = \
|
gnome_calendar_LDADD = \
|
||||||
-lm \
|
-lm \
|
||||||
$(top_builddir)/libgd/libgd.la \
|
|
||||||
$(CALENDAR_LIBS)
|
$(CALENDAR_LIBS)
|
||||||
|
|
||||||
resource_files = $(shell glib-compile-resources --sourcedir=$(top_srcdir)/data --generate-dependencies $(top_srcdir)/data/calendar.gresource.xml)
|
resource_files = $(shell glib-compile-resources --sourcedir=$(top_srcdir)/data --generate-dependencies $(top_srcdir)/data/calendar.gresource.xml)
|
||||||
|
|||||||
+98
-45
@@ -35,8 +35,6 @@
|
|||||||
|
|
||||||
#include "e-cell-renderer-color.h"
|
#include "e-cell-renderer-color.h"
|
||||||
|
|
||||||
#include <libgd/gd.h>
|
|
||||||
|
|
||||||
#include <glib/gi18n.h>
|
#include <glib/gi18n.h>
|
||||||
|
|
||||||
#include <libecal/libecal.h>
|
#include <libecal/libecal.h>
|
||||||
@@ -65,8 +63,8 @@ typedef struct
|
|||||||
GtkWidget *nav_bar;
|
GtkWidget *nav_bar;
|
||||||
GtkWidget *views_overlay;
|
GtkWidget *views_overlay;
|
||||||
GtkWidget *views_stack;
|
GtkWidget *views_stack;
|
||||||
|
GtkWidget *notification;
|
||||||
GtkWidget *new_event_widget;
|
GtkWidget *new_event_widget;
|
||||||
GtkWidget *noty; /* short-lived */
|
|
||||||
GtkWidget *popover; /* short-lived */
|
GtkWidget *popover; /* short-lived */
|
||||||
|
|
||||||
/* header_bar widets */
|
/* header_bar widets */
|
||||||
@@ -141,6 +139,11 @@ static void close_new_event_widget (GtkButton *b
|
|||||||
|
|
||||||
static GcalManager* get_manager (GcalWindow *window);
|
static GcalManager* get_manager (GcalWindow *window);
|
||||||
|
|
||||||
|
static void create_notification (GcalWindow *window);
|
||||||
|
|
||||||
|
static void hide_notification (GtkWidget *button,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
/* handling events interaction */
|
/* handling events interaction */
|
||||||
static void create_event (gpointer user_data,
|
static void create_event (gpointer user_data,
|
||||||
GtkWidget *widget);
|
GtkWidget *widget);
|
||||||
@@ -199,7 +202,8 @@ static void gcal_window_event_created (GcalManager *m
|
|||||||
const gchar *event_uid,
|
const gchar *event_uid,
|
||||||
gpointer user_data);
|
gpointer user_data);
|
||||||
|
|
||||||
static void gcal_window_remove_event (GdNotification *notification,
|
static void gcal_window_remove_event (GtkWidget *notification,
|
||||||
|
GParamSpec *spec,
|
||||||
gpointer user_data);
|
gpointer user_data);
|
||||||
|
|
||||||
static void gcal_window_undo_remove_event (GtkButton *button,
|
static void gcal_window_undo_remove_event (GtkButton *button,
|
||||||
@@ -632,6 +636,77 @@ get_manager (GcalWindow *window)
|
|||||||
return gcal_application_get_manager (app);
|
return gcal_application_get_manager (app);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
create_notification (GcalWindow *window)
|
||||||
|
{
|
||||||
|
GcalWindowPrivate *priv;
|
||||||
|
|
||||||
|
GtkWidget *notification_frame;
|
||||||
|
GtkWidget *notification_grid;
|
||||||
|
GtkWidget *undo_button;
|
||||||
|
GtkWidget *hide_button;
|
||||||
|
|
||||||
|
priv = gcal_window_get_instance_private (window);
|
||||||
|
|
||||||
|
priv->notification = gtk_revealer_new ();
|
||||||
|
gtk_revealer_set_transition_type (
|
||||||
|
GTK_REVEALER (priv->notification),
|
||||||
|
GTK_REVEALER_TRANSITION_TYPE_SLIDE_DOWN);
|
||||||
|
gtk_revealer_set_transition_duration (GTK_REVEALER (priv->notification), 100);
|
||||||
|
gtk_widget_set_halign (priv->notification, GTK_ALIGN_CENTER);
|
||||||
|
gtk_widget_set_valign (priv->notification, GTK_ALIGN_START);
|
||||||
|
|
||||||
|
gtk_overlay_add_overlay (GTK_OVERLAY (priv->views_overlay),
|
||||||
|
priv->notification);
|
||||||
|
|
||||||
|
notification_frame = gtk_frame_new (NULL);
|
||||||
|
gtk_style_context_add_class (
|
||||||
|
gtk_widget_get_style_context (notification_frame),
|
||||||
|
"app-notification");
|
||||||
|
|
||||||
|
/* notification content */
|
||||||
|
notification_grid = gtk_grid_new ();
|
||||||
|
gtk_grid_set_column_spacing (GTK_GRID (notification_grid), 20);
|
||||||
|
|
||||||
|
undo_button = gtk_button_new_with_label (_("Undo"));
|
||||||
|
gtk_widget_set_valign (undo_button, GTK_ALIGN_CENTER);
|
||||||
|
|
||||||
|
hide_button = gtk_button_new_from_icon_name ("window-close-symbolic", GTK_ICON_SIZE_MENU);
|
||||||
|
gtk_button_set_relief (GTK_BUTTON (hide_button), GTK_RELIEF_NONE);
|
||||||
|
gtk_style_context_add_class (
|
||||||
|
gtk_widget_get_style_context (hide_button),
|
||||||
|
"image-button");
|
||||||
|
|
||||||
|
gtk_container_add (GTK_CONTAINER (notification_grid), gtk_label_new (_("Event deleted")));
|
||||||
|
gtk_container_add (GTK_CONTAINER (notification_grid), undo_button);
|
||||||
|
gtk_container_add (GTK_CONTAINER (notification_grid), hide_button);
|
||||||
|
|
||||||
|
gtk_container_add (GTK_CONTAINER (notification_frame), notification_grid);
|
||||||
|
gtk_container_add (GTK_CONTAINER (priv->notification), notification_frame);
|
||||||
|
|
||||||
|
gtk_widget_show_all (priv->notification);
|
||||||
|
|
||||||
|
g_signal_connect (hide_button,
|
||||||
|
"clicked",
|
||||||
|
G_CALLBACK (hide_notification),
|
||||||
|
window);
|
||||||
|
g_signal_connect (priv->notification,
|
||||||
|
"notify::child-revealed",
|
||||||
|
G_CALLBACK (gcal_window_remove_event),
|
||||||
|
window);
|
||||||
|
g_signal_connect (undo_button,
|
||||||
|
"clicked",
|
||||||
|
G_CALLBACK (gcal_window_undo_remove_event),
|
||||||
|
window);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
hide_notification (GtkWidget *button,
|
||||||
|
gpointer user_data)
|
||||||
|
{
|
||||||
|
gcal_window_hide_notification (GCAL_WINDOW (user_data));
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
create_event (gpointer user_data,
|
create_event (gpointer user_data,
|
||||||
GtkWidget *widget)
|
GtkWidget *widget)
|
||||||
@@ -714,9 +789,6 @@ edit_dialog_closed (GtkDialog *dialog,
|
|||||||
GcalEditDialog *edit_dialog;
|
GcalEditDialog *edit_dialog;
|
||||||
GcalView *view;
|
GcalView *view;
|
||||||
|
|
||||||
GtkWidget *grid;
|
|
||||||
GtkWidget *undo_button;
|
|
||||||
|
|
||||||
priv = gcal_window_get_instance_private (GCAL_WINDOW (user_data));
|
priv = gcal_window_get_instance_private (GCAL_WINDOW (user_data));
|
||||||
|
|
||||||
gtk_widget_hide (GTK_WIDGET (dialog));
|
gtk_widget_hide (GTK_WIDGET (dialog));
|
||||||
@@ -729,30 +801,12 @@ edit_dialog_closed (GtkDialog *dialog,
|
|||||||
{
|
{
|
||||||
case GCAL_RESPONSE_DELETE_EVENT:
|
case GCAL_RESPONSE_DELETE_EVENT:
|
||||||
/* delete the event */
|
/* delete the event */
|
||||||
if (priv->noty != NULL)
|
if (priv->notification != NULL)
|
||||||
g_clear_object (&(priv->noty));
|
g_clear_object (&(priv->notification));
|
||||||
|
|
||||||
priv->noty = gd_notification_new ();
|
create_notification (GCAL_WINDOW (user_data));
|
||||||
grid = gtk_grid_new ();
|
|
||||||
gtk_grid_set_column_spacing (GTK_GRID (grid), 12);
|
|
||||||
gtk_container_add (GTK_CONTAINER (grid),
|
|
||||||
gtk_label_new (_("Event deleted")));
|
|
||||||
|
|
||||||
undo_button = gtk_button_new_with_label (_("Undo"));
|
|
||||||
gtk_container_add (GTK_CONTAINER (grid), undo_button);
|
|
||||||
|
|
||||||
gtk_container_add (GTK_CONTAINER (priv->noty), grid);
|
|
||||||
gcal_window_show_notification (GCAL_WINDOW (user_data));
|
gcal_window_show_notification (GCAL_WINDOW (user_data));
|
||||||
|
|
||||||
g_signal_connect (priv->noty,
|
|
||||||
"dismissed",
|
|
||||||
G_CALLBACK (gcal_window_remove_event),
|
|
||||||
user_data);
|
|
||||||
g_signal_connect (undo_button,
|
|
||||||
"clicked",
|
|
||||||
G_CALLBACK (gcal_window_undo_remove_event),
|
|
||||||
user_data);
|
|
||||||
|
|
||||||
priv->event_to_delete =
|
priv->event_to_delete =
|
||||||
gcal_edit_dialog_get_event_uuid (edit_dialog);
|
gcal_edit_dialog_get_event_uuid (edit_dialog);
|
||||||
|
|
||||||
@@ -854,9 +908,7 @@ gcal_window_constructed (GObject *object)
|
|||||||
priv->header_bar = gtk_header_bar_new ();
|
priv->header_bar = gtk_header_bar_new ();
|
||||||
|
|
||||||
/* header_bar: new */
|
/* header_bar: new */
|
||||||
priv->new_button = gd_header_simple_button_new ();
|
priv->new_button = gtk_button_new_with_label (_("New Event"));
|
||||||
gd_header_button_set_label (GD_HEADER_BUTTON (priv->new_button),
|
|
||||||
_("New Event"));
|
|
||||||
gtk_style_context_add_class (
|
gtk_style_context_add_class (
|
||||||
gtk_widget_get_style_context (priv->new_button),
|
gtk_widget_get_style_context (priv->new_button),
|
||||||
"suggested-action");
|
"suggested-action");
|
||||||
@@ -868,17 +920,14 @@ gcal_window_constructed (GObject *object)
|
|||||||
priv->views_switcher);
|
priv->views_switcher);
|
||||||
|
|
||||||
/* header_bar: menu */
|
/* header_bar: menu */
|
||||||
menu_button = gd_header_menu_button_new ();
|
menu_button = gtk_button_new_from_icon_name ("open-menu-symbolic", GTK_ICON_SIZE_MENU);
|
||||||
gd_header_button_set_label (GD_HEADER_BUTTON (menu_button),
|
|
||||||
_("Settings"));
|
|
||||||
gd_header_button_set_symbolic_icon_name (GD_HEADER_BUTTON (menu_button),
|
|
||||||
"open-menu-symbolic");
|
|
||||||
gtk_header_bar_pack_end (GTK_HEADER_BAR (priv->header_bar), menu_button);
|
gtk_header_bar_pack_end (GTK_HEADER_BAR (priv->header_bar), menu_button);
|
||||||
|
|
||||||
/* header_bar: search */
|
/* header_bar: search */
|
||||||
search_button = gd_header_toggle_button_new ();
|
search_button = gtk_toggle_button_new ();
|
||||||
gd_header_button_set_symbolic_icon_name (GD_HEADER_BUTTON (search_button),
|
gtk_container_add (
|
||||||
"edit-find-symbolic");
|
GTK_CONTAINER (search_button),
|
||||||
|
gtk_image_new_from_icon_name ("edit-find-symbolic", GTK_ICON_SIZE_MENU));
|
||||||
gtk_header_bar_pack_end (GTK_HEADER_BAR (priv->header_bar), search_button);
|
gtk_header_bar_pack_end (GTK_HEADER_BAR (priv->header_bar), search_button);
|
||||||
|
|
||||||
gtk_header_bar_set_show_close_button (GTK_HEADER_BAR (priv->header_bar),
|
gtk_header_bar_set_show_close_button (GTK_HEADER_BAR (priv->header_bar),
|
||||||
@@ -1323,7 +1372,8 @@ gcal_window_event_created (GcalManager *manager,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gcal_window_remove_event (GdNotification *notification,
|
gcal_window_remove_event (GtkWidget *notification,
|
||||||
|
GParamSpec *spec,
|
||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
GcalWindowPrivate *priv;
|
GcalWindowPrivate *priv;
|
||||||
@@ -1332,6 +1382,9 @@ gcal_window_remove_event (GdNotification *notification,
|
|||||||
|
|
||||||
priv = gcal_window_get_instance_private (GCAL_WINDOW (user_data));
|
priv = gcal_window_get_instance_private (GCAL_WINDOW (user_data));
|
||||||
|
|
||||||
|
if (gtk_revealer_get_child_revealed (GTK_REVEALER (notification)))
|
||||||
|
return;
|
||||||
|
|
||||||
if (priv->event_to_delete != NULL)
|
if (priv->event_to_delete != NULL)
|
||||||
{
|
{
|
||||||
manager = get_manager (GCAL_WINDOW (user_data));
|
manager = get_manager (GCAL_WINDOW (user_data));
|
||||||
@@ -1345,7 +1398,7 @@ gcal_window_remove_event (GdNotification *notification,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* since this is called when the notification is dismissed is safe to do here: */
|
/* since this is called when the notification is dismissed is safe to do here: */
|
||||||
priv->noty = NULL;
|
gtk_widget_destroy (priv->notification);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -1496,9 +1549,8 @@ gcal_window_show_notification (GcalWindow *window)
|
|||||||
GcalWindowPrivate *priv;
|
GcalWindowPrivate *priv;
|
||||||
|
|
||||||
priv = gcal_window_get_instance_private (window);
|
priv = gcal_window_get_instance_private (window);
|
||||||
gtk_overlay_add_overlay (GTK_OVERLAY (priv->views_overlay),
|
|
||||||
priv->noty);
|
gtk_revealer_set_reveal_child (GTK_REVEALER (priv->notification), TRUE);
|
||||||
gtk_widget_show_all (priv->noty);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -1507,5 +1559,6 @@ gcal_window_hide_notification (GcalWindow *window)
|
|||||||
GcalWindowPrivate *priv;
|
GcalWindowPrivate *priv;
|
||||||
|
|
||||||
priv = gcal_window_get_instance_private (window);
|
priv = gcal_window_get_instance_private (window);
|
||||||
gd_notification_dismiss (GD_NOTIFICATION (priv->noty));
|
|
||||||
|
gtk_revealer_set_reveal_child (GTK_REVEALER (priv->notification), FALSE);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user