Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog40
-rw-r--r--po/POTFILES.in2
-rw-r--r--properties/Makefile.am2
-rw-r--r--shell/Makefile.am6
-rw-r--r--shell/ev-attachment-bar.h66
-rw-r--r--shell/ev-sidebar-attachments.c (renamed from shell/ev-attachment-bar.c)223
-rw-r--r--shell/ev-sidebar-attachments.h62
-rw-r--r--shell/ev-window.c88
-rw-r--r--thumbnailer/Makefile.am2
9 files changed, 246 insertions, 245 deletions
diff --git a/ChangeLog b/ChangeLog
index d56e8fb..c25cfb9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,38 @@
+2006-05-10 Nickolay V. Shmyrev <nshmyrev@yandex.ru>
+
+ * po/POTFILES.in:
+ * properties/Makefile.am:
+ * shell/Makefile.am:
+ * shell/ev-attachment-bar.c:
+ * shell/ev-attachment-bar.h:
+ * shell/ev-sidebar-attachments.c:
+ (ev_sidebar_attachments_icon_cache_add),
+ (icon_theme_get_pixbuf_from_mime_type),
+ (ev_sidebar_attachments_icon_cache_get), (icon_cache_update_icon),
+ (ev_sidebar_attachments_icon_cache_refresh),
+ (ev_sidebar_attachments_get_attachment_at_pos),
+ (ev_sidebar_attachments_popup_menu_show),
+ (ev_sidebar_attachments_popup_menu),
+ (ev_sidebar_attachments_button_press),
+ (ev_sidebar_attachments_update_icons),
+ (ev_sidebar_attachments_drag_data_get),
+ (ev_sidebar_attachments_get_property),
+ (ev_sidebar_attachments_destroy),
+ (ev_sidebar_attachments_class_init), (ev_sidebar_attachments_init),
+ (ev_sidebar_attachments_new),
+ (ev_sidebar_attachments_set_document),
+ (ev_sidebar_attachments_support_document),
+ (ev_sidebar_attachments_get_label),
+ (ev_sidebar_attachments_page_iface_init):
+ * shell/ev-sidebar-attachments.h:
+ * shell/ev-window.c: (update_chrome_visibility),
+ (setup_sidebar_from_metadata), (ev_window_setup_document),
+ (ev_window_sidebar_current_page_changed_cb),
+ (attachment_bar_menu_popup_cb), (ev_window_init):
+ * thumbnailer/Makefile.am:
+
+ Move attachments bar to sidebar.
+
2006-05-09 Carlos Garcia Campos <carlosgc@gnome.org>
* pdf/ev-poppler.cc:
@@ -30,7 +65,6 @@
Update sidebar chrome flag when sidebar visibility changes. Fixes bug
#341049
-
2006-05-05 Nickolay V. Shmyrev <nshmyrev@yandex.ru>
* djvu/Makefile.am:
@@ -3897,7 +3931,7 @@ Wed Jun 8 01:04:22 2005 Jonathan Blandford <jrb@redhat.com>
Implement async renderer interface.
-2005-06-07 Nickolay V. Shmyrev <<nshmyrev@yandex.ru>>
+2005-06-07 Nickolay V. Shmyrev <nshmyrev@yandex.ru>
* shell/ev-sidebar-links.c: (ev_sidebar_links_dispose):
@@ -3949,7 +3983,7 @@ Wed Jun 8 01:04:22 2005 Jonathan Blandford <jrb@redhat.com>
Cleanup the old job when changing document
-2005-06-05 Nickolay V. Shmyrev <<nshmyrev@yandex.ru>>
+2005-06-05 Nickolay V. Shmyrev <nshmyrev@yandex.ru>
* shell/ev-stock-icons.c:
* shell/ev-stock-icons.h:
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 141cdf7..7ff011d 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -20,13 +20,13 @@ ps/gsdefaults.c
ps/ps-document.c
shell/eggfindbar.c
shell/ev-application.c
-shell/ev-attachment-bar.c
shell/ev-page-action.c
shell/ev-password.c
shell/ev-password-view.c
shell/ev-print-job.c
shell/ev-properties-dialog.c
shell/ev-properties-fonts.c
+shell/ev-sidebar-attachments.c
shell/ev-sidebar-links.c
shell/ev-sidebar-thumbnails.c
shell/ev-view-accessible.c
diff --git a/properties/Makefile.am b/properties/Makefile.am
index fab3514..b4ef6f0 100644
--- a/properties/Makefile.am
+++ b/properties/Makefile.am
@@ -36,7 +36,7 @@ if ENABLE_DJVU
libevince_properties_page_la_LIBADD += $(DJVU_LIBS)
endif
-if ENABLE_DJVU
+if ENABLE_DVI
libevince_properties_page_la_LIBADD += -lkpathsea
endif
diff --git a/shell/Makefile.am b/shell/Makefile.am
index 80764d2..4712686 100644
--- a/shell/Makefile.am
+++ b/shell/Makefile.am
@@ -55,14 +55,14 @@ evince_SOURCES= \
ev-window-title.h \
ev-sidebar.c \
ev-sidebar.h \
+ ev-sidebar-attachments.c \
+ ev-sidebar-attachments.h \
ev-sidebar-links.c \
ev-sidebar-links.h \
ev-sidebar-page.c \
ev-sidebar-page.h \
ev-sidebar-thumbnails.c \
ev-sidebar-thumbnails.h \
- ev-attachment-bar.c \
- ev-attachment-bar.h \
ev-stock-icons.c \
ev-stock-icons.h \
main.c
@@ -87,7 +87,7 @@ if ENABLE_DJVU
evince_LDADD += $(DJVU_LIBS)
endif
-if ENABLE_DJVU
+if ENABLE_DVI
evince_LDADD += -lkpathsea
endif
diff --git a/shell/ev-attachment-bar.h b/shell/ev-attachment-bar.h
deleted file mode 100644
index 4099067..0000000
--- a/shell/ev-attachment-bar.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/* ev-attachment-bar.h
- * this file is part of evince, a gnome document viewer
- *
- * Copyright (C) 2006 Carlos Garcia Campos
- *
- * Author:
- * Carlos Garcia Campos <carlosgc@gnome.org>
- *
- * Evince is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * Evince is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef __EV_ATTACHMENT_BAR_H__
-#define __EV_ATTACHMENT_BAR_H__
-
-#include <gtk/gtkexpander.h>
-#include "ev-attachment.h"
-#include "ev-document.h"
-
-G_BEGIN_DECLS
-
-typedef struct _EvAttachmentBar EvAttachmentBar;
-typedef struct _EvAttachmentBarClass EvAttachmentBarClass;
-typedef struct _EvAttachmentBarPrivate EvAttachmentBarPrivate;
-
-#define EV_TYPE_ATTACHMENT_BAR (ev_attachment_bar_get_type())
-#define EV_ATTACHMENT_BAR(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_ATTACHMENT_BAR, EvAttachmentBar))
-#define EV_ATTACHMENT_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_ATTACHMENT_BAR, EvAttachmentBarClass))
-#define EV_IS_ATTACHMENT_BAR(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_ATTACHMENT_BAR))
-#define EV_IS_ATTACHMENT_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_ATTACHMENT_BAR))
-#define EV_ATTACHMENT_BAR_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_ATTACHMENT_BAR, EvAttachmentBarClass))
-
-struct _EvAttachmentBar {
- GtkExpander base_instance;
-
- EvAttachmentBarPrivate *priv;
-};
-
-struct _EvAttachmentBarClass {
- GtkExpanderClass base_class;
-
- /* Signals */
- void (*popup_menu) (EvAttachmentBar *ev_attachbar,
- EvAttachment *attachment);
-};
-
-GType ev_attachment_bar_get_type (void) G_GNUC_CONST;
-GtkWidget *ev_attachment_bar_new (void);
-
-void ev_attachment_bar_set_document (EvAttachmentBar *ev_attachbar,
- EvDocument *document);
-
-G_END_DECLS
-
-#endif /* __EV_ATTACHMENT_BAR_H__ */
diff --git a/shell/ev-attachment-bar.c b/shell/ev-sidebar-attachments.c
index cdeba89..aac63cf 100644
--- a/shell/ev-attachment-bar.c
+++ b/shell/ev-sidebar-attachments.c
@@ -1,4 +1,4 @@
-/* ev-attachment-bar.c
+/* ev-sidebar-attachments.c
* this file is part of evince, a gnome document viewer
*
* Copyright (C) 2006 Carlos Garcia Campos
@@ -31,9 +31,8 @@
#include <string.h>
#include <libgnomeui/gnome-icon-lookup.h>
-#include "ev-attachment-bar.h"
-
-#define MIN_HEIGHT 92
+#include "ev-sidebar-attachments.h"
+#include "ev-sidebar-page.h"
enum {
COLUMN_ICON,
@@ -43,6 +42,12 @@ enum {
N_COLS
};
+
+enum {
+ PROP_0,
+ PROP_WIDGET,
+};
+
enum {
SIGNAL_POPUP_MENU,
N_SIGNALS
@@ -54,8 +59,7 @@ static const GtkTargetEntry drag_targets[] = {
static guint signals[N_SIGNALS];
-struct _EvAttachmentBarPrivate {
- GtkWidget *label;
+struct _EvSidebarAttachmentsPrivate {
GtkWidget *icon_view;
GtkListStore *model;
@@ -64,14 +68,21 @@ struct _EvAttachmentBarPrivate {
GHashTable *icon_cache;
};
-G_DEFINE_TYPE (EvAttachmentBar, ev_attachment_bar, GTK_TYPE_EXPANDER)
+static void ev_sidebar_attachments_page_iface_init (EvSidebarPageIface *iface);
+
+G_DEFINE_TYPE_EXTENDED (EvSidebarAttachments,
+ ev_sidebar_attachments,
+ GTK_TYPE_VBOX,
+ 0,
+ G_IMPLEMENT_INTERFACE (EV_TYPE_SIDEBAR_PAGE,
+ ev_sidebar_attachments_page_iface_init))
-#define EV_ATTACHMENT_BAR_GET_PRIVATE(object) \
- (G_TYPE_INSTANCE_GET_PRIVATE ((object), EV_TYPE_ATTACHMENT_BAR, EvAttachmentBarPrivate))
+#define EV_SIDEBAR_ATTACHMENTS_GET_PRIVATE(object) \
+ (G_TYPE_INSTANCE_GET_PRIVATE ((object), EV_TYPE_SIDEBAR_ATTACHMENTS, EvSidebarAttachmentsPrivate))
/* Icon cache */
static void
-ev_attachment_bar_icon_cache_add (EvAttachmentBar *ev_attachbar,
+ev_sidebar_attachments_icon_cache_add (EvSidebarAttachments *ev_attachbar,
const gchar *mime_type,
const GdkPixbuf *pixbuf)
{
@@ -106,7 +117,7 @@ icon_theme_get_pixbuf_from_mime_type (GtkIconTheme *icon_theme,
}
static GdkPixbuf *
-ev_attachment_bar_icon_cache_get (EvAttachmentBar *ev_attachbar,
+ev_sidebar_attachments_icon_cache_get (EvSidebarAttachments *ev_attachbar,
const gchar *mime_type)
{
GdkPixbuf *pixbuf = NULL;
@@ -123,7 +134,7 @@ ev_attachment_bar_icon_cache_get (EvAttachmentBar *ev_attachbar,
mime_type);
if (GDK_IS_PIXBUF (pixbuf))
- ev_attachment_bar_icon_cache_add (ev_attachbar,
+ ev_sidebar_attachments_icon_cache_add (ev_attachbar,
mime_type,
pixbuf);
@@ -133,14 +144,14 @@ ev_attachment_bar_icon_cache_get (EvAttachmentBar *ev_attachbar,
static gboolean
icon_cache_update_icon (gchar *key,
GdkPixbuf *value,
- EvAttachmentBar *ev_attachbar)
+ EvSidebarAttachments *ev_attachbar)
{
GdkPixbuf *pixbuf = NULL;
pixbuf = icon_theme_get_pixbuf_from_mime_type (ev_attachbar->priv->icon_theme,
key);
- ev_attachment_bar_icon_cache_add (ev_attachbar,
+ ev_sidebar_attachments_icon_cache_add (ev_attachbar,
key,
pixbuf);
@@ -148,35 +159,15 @@ icon_cache_update_icon (gchar *key,
}
static void
-ev_attachment_bar_icon_cache_refresh (EvAttachmentBar *ev_attachbar)
+ev_sidebar_attachments_icon_cache_refresh (EvSidebarAttachments *ev_attachbar)
{
g_hash_table_foreach_remove (ev_attachbar->priv->icon_cache,
(GHRFunc) icon_cache_update_icon,
ev_attachbar);
}
-static void
-ev_attachment_bar_toggled (GObject *object,
- GParamSpec *param_spec,
- gpointer user_data)
-{
- EvAttachmentBar *attachbar = EV_ATTACHMENT_BAR (object);
- GtkExpander *expander = GTK_EXPANDER (object);
-
- if (!attachbar->priv->label)
- return;
-
- if (gtk_expander_get_expanded (expander)) {
- gtk_label_set_text (GTK_LABEL (attachbar->priv->label),
- _("Hide attachments bar"));
- } else {
- gtk_label_set_text (GTK_LABEL (attachbar->priv->label),
- _("Show attachments bar"));
- }
-}
-
static EvAttachment *
-ev_attachment_bar_get_attachment_at_pos (EvAttachmentBar *ev_attachbar,
+ev_sidebar_attachments_get_attachment_at_pos (EvSidebarAttachments *ev_attachbar,
gint x,
gint y)
{
@@ -205,7 +196,7 @@ ev_attachment_bar_get_attachment_at_pos (EvAttachmentBar *ev_attachbar,
}
static gboolean
-ev_attachment_bar_popup_menu_show (EvAttachmentBar *ev_attachbar,
+ev_sidebar_attachments_popup_menu_show (EvSidebarAttachments *ev_attachbar,
gint x,
gint y)
{
@@ -260,18 +251,18 @@ ev_attachment_bar_popup_menu_show (EvAttachmentBar *ev_attachbar,
}
static gboolean
-ev_attachment_bar_popup_menu (GtkWidget *widget)
+ev_sidebar_attachments_popup_menu (GtkWidget *widget)
{
- EvAttachmentBar *ev_attachbar = EV_ATTACHMENT_BAR (widget);
+ EvSidebarAttachments *ev_attachbar = EV_SIDEBAR_ATTACHMENTS (widget);
gint x, y;
gtk_widget_get_pointer (widget, &x, &y);
- return ev_attachment_bar_popup_menu_show (ev_attachbar, x, y);
+ return ev_sidebar_attachments_popup_menu_show (ev_attachbar, x, y);
}
static gboolean
-ev_attachment_bar_button_press (EvAttachmentBar *ev_attachbar,
+ev_sidebar_attachments_button_press (EvSidebarAttachments *ev_attachbar,
GdkEventButton *event,
GtkWidget *icon_view)
{
@@ -288,7 +279,7 @@ ev_attachment_bar_button_press (EvAttachmentBar *ev_attachbar,
GError *error = NULL;
EvAttachment *attachment;
- attachment = ev_attachment_bar_get_attachment_at_pos (ev_attachbar,
+ attachment = ev_sidebar_attachments_get_attachment_at_pos (ev_attachbar,
event->x,
event->y);
if (!attachment)
@@ -307,32 +298,20 @@ ev_attachment_bar_button_press (EvAttachmentBar *ev_attachbar,
}
break;
case 3:
- return ev_attachment_bar_popup_menu_show (ev_attachbar, event->x, event->y);
+ return ev_sidebar_attachments_popup_menu_show (ev_attachbar, event->x, event->y);
}
return FALSE;
}
-static gboolean
-ev_attachment_bar_focus_in (GtkWidget *widget,
- GdkEventFocus *event)
-{
- EvAttachmentBar *ev_attachbar = EV_ATTACHMENT_BAR (widget);
-
- if (gtk_expander_get_expanded (GTK_EXPANDER (ev_attachbar)))
- gtk_widget_grab_focus (ev_attachbar->priv->icon_view);
-
- return TRUE;
-}
-
static void
-ev_attachment_bar_update_icons (EvAttachmentBar *ev_attachbar,
+ev_sidebar_attachments_update_icons (EvSidebarAttachments *ev_attachbar,
gpointer user_data)
{
GtkTreeIter iter;
gboolean valid;
- ev_attachment_bar_icon_cache_refresh (ev_attachbar);
+ ev_sidebar_attachments_icon_cache_refresh (ev_attachbar);
valid = gtk_tree_model_get_iter_first (
GTK_TREE_MODEL (ev_attachbar->priv->model),
@@ -352,7 +331,7 @@ ev_attachment_bar_update_icons (EvAttachmentBar *ev_attachbar,
if (attachment)
g_object_unref (attachment);
- pixbuf = ev_attachment_bar_icon_cache_get (ev_attachbar,
+ pixbuf = ev_sidebar_attachments_icon_cache_get (ev_attachbar,
mime_type);
gtk_list_store_set (ev_attachbar->priv->model, &iter,
@@ -366,14 +345,14 @@ ev_attachment_bar_update_icons (EvAttachmentBar *ev_attachbar,
}
static void
-ev_attachment_bar_drag_data_get (GtkWidget *widget,
+ev_sidebar_attachments_drag_data_get (GtkWidget *widget,
GdkDragContext *drag_context,
GtkSelectionData *data,
guint info,
guint time,
gpointer user_data)
{
- EvAttachmentBar *ev_attachbar = EV_ATTACHMENT_BAR (user_data);
+ EvSidebarAttachments *ev_attachbar = EV_SIDEBAR_ATTACHMENTS (user_data);
GString *uri_list;
gchar *uris = NULL;
GList *selected = NULL, *l;
@@ -434,9 +413,30 @@ ev_attachment_bar_drag_data_get (GtkWidget *widget,
}
static void
-ev_attachment_bar_destroy (GtkObject *object)
+ev_sidebar_attachments_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ EvSidebarAttachments *ev_sidebar_attachments;
+
+ ev_sidebar_attachments = EV_SIDEBAR_ATTACHMENTS (object);
+
+ switch (prop_id)
+ {
+ case PROP_WIDGET:
+ g_value_set_object (value, ev_sidebar_attachments->priv->icon_view);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+ev_sidebar_attachments_destroy (GtkObject *object)
{
- EvAttachmentBar *ev_attachbar = EV_ATTACHMENT_BAR (object);
+ EvSidebarAttachments *ev_attachbar = EV_SIDEBAR_ATTACHMENTS (object);
if (ev_attachbar->priv->model) {
g_object_unref (ev_attachbar->priv->model);
@@ -448,11 +448,11 @@ ev_attachment_bar_destroy (GtkObject *object)
ev_attachbar->priv->icon_cache = NULL;
}
- (* GTK_OBJECT_CLASS (ev_attachment_bar_parent_class)->destroy) (object);
+ (* GTK_OBJECT_CLASS (ev_sidebar_attachments_parent_class)->destroy) (object);
}
static void
-ev_attachment_bar_class_init (EvAttachmentBarClass *ev_attachbar_class)
+ev_sidebar_attachments_class_init (EvSidebarAttachmentsClass *ev_attachbar_class)
{
GObjectClass *g_object_class;
GtkObjectClass *gtk_object_class;
@@ -462,30 +462,34 @@ ev_attachment_bar_class_init (EvAttachmentBarClass *ev_attachbar_class)
gtk_object_class = GTK_OBJECT_CLASS (ev_attachbar_class);
gtk_widget_class = GTK_WIDGET_CLASS (ev_attachbar_class);
- gtk_object_class->destroy = ev_attachment_bar_destroy;
- gtk_widget_class->popup_menu = ev_attachment_bar_popup_menu;
- gtk_widget_class->focus_in_event = ev_attachment_bar_focus_in;
+ g_object_class->get_property = ev_sidebar_attachments_get_property;
+ gtk_object_class->destroy = ev_sidebar_attachments_destroy;
+ gtk_widget_class->popup_menu = ev_sidebar_attachments_popup_menu;
- g_type_class_add_private (g_object_class, sizeof (EvAttachmentBarPrivate));
+ g_type_class_add_private (g_object_class, sizeof (EvSidebarAttachmentsPrivate));
/* Signals */
signals[SIGNAL_POPUP_MENU] =
g_signal_new ("popup",
G_TYPE_FROM_CLASS (g_object_class),
G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
- G_STRUCT_OFFSET (EvAttachmentBarClass, popup_menu),
+ G_STRUCT_OFFSET (EvSidebarAttachmentsClass, popup_menu),
NULL, NULL,
g_cclosure_marshal_VOID__POINTER,
G_TYPE_NONE, 1,
G_TYPE_POINTER);
+
+ g_object_class_override_property (g_object_class,
+ PROP_WIDGET,
+ "main-widget");
}
static void
-ev_attachment_bar_init (EvAttachmentBar *ev_attachbar)
+ev_sidebar_attachments_init (EvSidebarAttachments *ev_attachbar)
{
GtkWidget *swindow;
- ev_attachbar->priv = EV_ATTACHMENT_BAR_GET_PRIVATE (ev_attachbar);
+ ev_attachbar->priv = EV_SIDEBAR_ATTACHMENTS_GET_PRIVATE (ev_attachbar);
swindow = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (swindow),
@@ -493,8 +497,6 @@ ev_attachment_bar_init (EvAttachmentBar *ev_attachbar)
GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (swindow),
GTK_SHADOW_IN);
- gtk_widget_set_size_request (swindow, -1, MIN_HEIGHT);
-
/* Data Model */
ev_attachbar->priv->model = gtk_list_store_new (N_COLS,
GDK_TYPE_PIXBUF,
@@ -514,7 +516,7 @@ ev_attachment_bar_init (EvAttachmentBar *ev_attachbar)
NULL);
g_signal_connect_swapped (G_OBJECT (ev_attachbar->priv->icon_view),
"button-press-event",
- G_CALLBACK (ev_attachment_bar_button_press),
+ G_CALLBACK (ev_sidebar_attachments_button_press),
(gpointer) ev_attachbar);
gtk_container_add (GTK_CONTAINER (swindow),
@@ -529,7 +531,7 @@ ev_attachment_bar_init (EvAttachmentBar *ev_attachbar)
ev_attachbar->priv->icon_theme = gtk_icon_theme_get_default ();
g_signal_connect_swapped (G_OBJECT (ev_attachbar->priv->icon_theme),
"changed",
- G_CALLBACK (ev_attachment_bar_update_icons),
+ G_CALLBACK (ev_sidebar_attachments_update_icons),
(gpointer) ev_attachbar);
/* Icon Cache */
@@ -549,56 +551,25 @@ ev_attachment_bar_init (EvAttachmentBar *ev_attachbar)
#endif
g_signal_connect (G_OBJECT (ev_attachbar->priv->icon_view),
"drag-data-get",
- G_CALLBACK (ev_attachment_bar_drag_data_get),
- (gpointer) ev_attachbar);
-
- g_signal_connect (G_OBJECT (ev_attachbar),
- "notify::expanded",
- G_CALLBACK (ev_attachment_bar_toggled),
- NULL);
-
-}
-
-static void
-ev_attachment_bar_setup (EvAttachmentBar *ev_attachbar)
-{
- GtkWidget *hbox;
- GtkWidget *image;
-
- hbox = gtk_hbox_new (FALSE, 6);
- image = gtk_image_new_from_stock ("gnome-stock-attach",
- GTK_ICON_SIZE_MENU);
- gtk_box_pack_start (GTK_BOX (hbox),
- image,
- FALSE, FALSE, 0);
- gtk_widget_show (image);
-
- ev_attachbar->priv->label = gtk_label_new (_("Show attachments bar"));
- gtk_box_pack_start (GTK_BOX (hbox),
- ev_attachbar->priv->label,
- FALSE, FALSE, 0);
- gtk_widget_show (ev_attachbar->priv->label);
-
- gtk_expander_set_label_widget (GTK_EXPANDER (ev_attachbar), hbox);
- gtk_widget_show (hbox);
+ G_CALLBACK (ev_sidebar_attachments_drag_data_get),
+ (gpointer) ev_attachbar);
}
GtkWidget *
-ev_attachment_bar_new (void)
+ev_sidebar_attachments_new (void)
{
GtkWidget *ev_attachbar;
- ev_attachbar = g_object_new (EV_TYPE_ATTACHMENT_BAR, NULL);
-
- ev_attachment_bar_setup (EV_ATTACHMENT_BAR (ev_attachbar));
+ ev_attachbar = g_object_new (EV_TYPE_SIDEBAR_ATTACHMENTS, NULL);
return ev_attachbar;
}
-void
-ev_attachment_bar_set_document (EvAttachmentBar *ev_attachbar,
- EvDocument *document)
+static void
+ev_sidebar_attachments_set_document (EvSidebarPage *page,
+ EvDocument *document)
{
+ EvSidebarAttachments *ev_attachbar = EV_SIDEBAR_ATTACHMENTS (page);
GList *attachments = NULL;
GList *l;
@@ -618,7 +589,7 @@ ev_attachment_bar_set_document (EvAttachmentBar *ev_attachbar,
attachment = EV_ATTACHMENT (l->data);
mime_type = ev_attachment_get_mime_type (attachment);
- pixbuf = ev_attachment_bar_icon_cache_get (ev_attachbar,
+ pixbuf = ev_sidebar_attachments_icon_cache_get (ev_attachbar,
mime_type);
gtk_list_store_append (ev_attachbar->priv->model, &iter);
@@ -633,3 +604,25 @@ ev_attachment_bar_set_document (EvAttachmentBar *ev_attachbar,
g_list_free (attachments);
}
+
+static gboolean
+ev_sidebar_attachments_support_document (EvSidebarPage *sidebar_page,
+ EvDocument *document)
+{
+ return ev_document_has_attachments (document);
+}
+
+static const gchar*
+ev_sidebar_attachments_get_label (EvSidebarPage *sidebar_page)
+{
+ return _("Attachments");
+}
+
+static void
+ev_sidebar_attachments_page_iface_init (EvSidebarPageIface *iface)
+{
+ iface->support_document = ev_sidebar_attachments_support_document;
+ iface->set_document = ev_sidebar_attachments_set_document;
+ iface->get_label = ev_sidebar_attachments_get_label;
+}
+
diff --git a/shell/ev-sidebar-attachments.h b/shell/ev-sidebar-attachments.h
new file mode 100644
index 0000000..9f34b0c
--- /dev/null
+++ b/shell/ev-sidebar-attachments.h
@@ -0,0 +1,62 @@
+/* ev-sidebar-attachments.h
+ * this file is part of evince, a gnome document viewer
+ *
+ * Copyright (C) 2006 Carlos Garcia Campos
+ *
+ * Author:
+ * Carlos Garcia Campos <carlosgc@gnome.org>
+ *
+ * Evince is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Evince is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __EV_SIDEBAR_ATTACHMENTS_H__
+#define __EV_SIDEBAR_ATTACHMENTS_H__
+
+#include "ev-attachment.h"
+#include "ev-document.h"
+
+G_BEGIN_DECLS
+
+typedef struct _EvSidebarAttachments EvSidebarAttachments;
+typedef struct _EvSidebarAttachmentsClass EvSidebarAttachmentsClass;
+typedef struct _EvSidebarAttachmentsPrivate EvSidebarAttachmentsPrivate;
+
+#define EV_TYPE_SIDEBAR_ATTACHMENTS (ev_sidebar_attachments_get_type())
+#define EV_SIDEBAR_ATTACHMENTS(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_SIDEBAR_ATTACHMENTS, EvSidebarAttachments))
+#define EV_SIDEBAR_ATTACHMENTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_SIDEBAR_ATTACHMENTS, EvSidebarAttachmentsClass))
+#define EV_IS_SIDEBAR_ATTACHMENTS(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_SIDEBAR_ATTACHMENTS))
+#define EV_IS_SIDEBAR_ATTACHMENTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_SIDEBAR_ATTACHMENTS))
+#define EV_SIDEBAR_ATTACHMENTS_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_SIDEBAR_ATTACHMENTS, EvSidebarAttachmentsClass))
+
+struct _EvSidebarAttachments {
+ GtkVBox base_instance;
+
+ EvSidebarAttachmentsPrivate *priv;
+};
+
+struct _EvSidebarAttachmentsClass {
+ GtkVBoxClass base_class;
+
+ /* Signals */
+ void (*popup_menu) (EvSidebarAttachments *ev_attachbar,
+ EvAttachment *attachment);
+};
+
+GType ev_sidebar_attachments_get_type (void) G_GNUC_CONST;
+GtkWidget *ev_sidebar_attachments_new (void);
+
+G_END_DECLS
+
+#endif /* __EV_SIDEBAR_ATTACHMENTS_H__ */
diff --git a/shell/ev-window.c b/shell/ev-window.c
index 169eb79..1bfb26f 100644
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -33,11 +33,11 @@
#include "ev-page-action.h"
#include "ev-sidebar.h"
#include "ev-sidebar-links.h"
+#include "ev-sidebar-attachments.h"
#include "ev-sidebar-thumbnails.h"
#include "ev-view.h"
#include "ev-password.h"
#include "ev-password-view.h"
-#include "ev-attachment-bar.h"
#include "ev-properties-dialog.h"
#include "ev-ps-exporter.h"
#include "ev-document-thumbnails.h"
@@ -92,7 +92,6 @@ typedef enum {
EV_CHROME_RAISE_TOOLBAR = 1 << 3,
EV_CHROME_FULLSCREEN_TOOLBAR = 1 << 4,
EV_CHROME_SIDEBAR = 1 << 5,
- EV_CHROME_ATTACHBAR = 1 << 6,
EV_CHROME_NORMAL = EV_CHROME_MENUBAR | EV_CHROME_TOOLBAR | EV_CHROME_SIDEBAR
} EvChrome;
@@ -112,7 +111,7 @@ struct _EvWindowPrivate {
GtkWidget *password_view;
GtkWidget *sidebar_thumbs;
GtkWidget *sidebar_links;
- GtkWidget *attachment_bar;
+ GtkWidget *sidebar_attachments;
/* Dialogs */
GtkWidget *properties;
@@ -178,6 +177,7 @@ static const GtkTargetEntry ev_drop_types[] = {
#define SIDEBAR_DEFAULT_SIZE 132
#define LINKS_SIDEBAR_ID "links"
#define THUMBNAILS_SIDEBAR_ID "thumbnails"
+#define ATTACHMENTS_SIDEBAR_ID "attachments"
static void ev_window_update_actions (EvWindow *ev_window);
static void ev_window_update_fullscreen_popup (EvWindow *window);
@@ -419,7 +419,7 @@ static void
update_chrome_visibility (EvWindow *window)
{
EvWindowPrivate *priv = window->priv;
- gboolean menubar, toolbar, findbar, fullscreen_toolbar, sidebar, attachbar;
+ gboolean menubar, toolbar, findbar, fullscreen_toolbar, sidebar;
gboolean fullscreen_mode, presentation, fullscreen;
presentation = ev_view_get_presentation (EV_VIEW (priv->view));
@@ -433,13 +433,11 @@ update_chrome_visibility (EvWindow *window)
(priv->chrome & EV_CHROME_RAISE_TOOLBAR) != 0) && fullscreen;
findbar = (priv->chrome & EV_CHROME_FINDBAR) != 0;
sidebar = (priv->chrome & EV_CHROME_SIDEBAR) != 0 && !fullscreen_mode;
- attachbar = (priv->chrome & EV_CHROME_ATTACHBAR) != 0 && !fullscreen_mode;
set_widget_visibility (priv->menubar, menubar);
set_widget_visibility (priv->toolbar_dock, toolbar);
set_widget_visibility (priv->find_bar, findbar);
set_widget_visibility (priv->sidebar, sidebar);
- set_widget_visibility (priv->attachment_bar, attachbar);
ev_window_set_action_sensitive (window, "EditToolbar", toolbar);
gtk_widget_set_sensitive (priv->menubar, menubar);
@@ -626,6 +624,7 @@ setup_sidebar_from_metadata (EvWindow *window, EvDocument *document)
GtkWidget *sidebar = window->priv->sidebar;
GtkWidget *links = window->priv->sidebar_links;
GtkWidget *thumbs = window->priv->sidebar_thumbs;
+ GtkWidget *attachments = window->priv->sidebar_attachments;
GValue sidebar_size = { 0, };
GValue sidebar_page = { 0, };
GValue sidebar_visibility = { 0, };
@@ -638,9 +637,11 @@ setup_sidebar_from_metadata (EvWindow *window, EvDocument *document)
if (ev_metadata_manager_get (uri, "sidebar_page", &sidebar_page, FALSE)) {
const char *page_id = g_value_get_string (&sidebar_page);
- if (strcmp (page_id, "links") == 0 && ev_sidebar_page_support_document (EV_SIDEBAR_PAGE (links), document)) {
+ if (strcmp (page_id, LINKS_SIDEBAR_ID) == 0 && ev_sidebar_page_support_document (EV_SIDEBAR_PAGE (links), document)) {
ev_sidebar_set_page (EV_SIDEBAR (sidebar), links);
- } else if (strcmp (page_id, "thumbnails") && ev_sidebar_page_support_document (EV_SIDEBAR_PAGE (thumbs), document)) {
+ } else if (strcmp (page_id, THUMBNAILS_SIDEBAR_ID) && ev_sidebar_page_support_document (EV_SIDEBAR_PAGE (thumbs), document)) {
+ ev_sidebar_set_page (EV_SIDEBAR (sidebar), thumbs);
+ } else if (strcmp (page_id, ATTACHMENTS_SIDEBAR_ID) && ev_sidebar_page_support_document (EV_SIDEBAR_PAGE (attachments), document)) {
ev_sidebar_set_page (EV_SIDEBAR (sidebar), thumbs);
}
} else {
@@ -764,7 +765,6 @@ ev_window_setup_document (EvWindow *ev_window)
EvDocument *document;
EvView *view = EV_VIEW (ev_window->priv->view);
EvSidebar *sidebar = EV_SIDEBAR (ev_window->priv->sidebar);
- EvAttachmentBar *attachbar = EV_ATTACHMENT_BAR (ev_window->priv->attachment_bar);
GtkAction *action;
document = ev_window->priv->document;
@@ -785,11 +785,6 @@ ev_window_setup_document (EvWindow *ev_window)
}
ev_window_set_page_mode (ev_window, PAGE_MODE_DOCUMENT);
- ev_attachment_bar_set_document (attachbar, document);
- update_chrome_flag (ev_window, EV_CHROME_ATTACHBAR,
- (ev_window->priv->document &&
- ev_document_has_attachments (ev_window->priv->document)));
-
ev_window_title_set_document (ev_window->priv->title, document);
ev_window_title_set_uri (ev_window->priv->title, ev_window->priv->uri);
@@ -2460,6 +2455,8 @@ ev_window_sidebar_current_page_changed_cb (EvSidebar *ev_sidebar,
id = LINKS_SIDEBAR_ID;
} else if (current_page == ev_window->priv->sidebar_thumbs) {
id = THUMBNAILS_SIDEBAR_ID;
+ } else if (current_page == ev_window->priv->sidebar_attachments) {
+ id = ATTACHMENTS_SIDEBAR_ID;
} else {
g_assert_not_reached();
}
@@ -2490,18 +2487,6 @@ ev_window_sidebar_visibility_changed_cb (EvSidebar *ev_sidebar,
}
}
-static void
-ev_window_attachment_bar_toggled_cb (EvAttachmentBar *ev_attachbar,
- GParamSpec *param_spec,
- EvWindow *ev_window)
-{
- if (gtk_expander_get_expanded (GTK_EXPANDER (ev_attachbar))) {
- gtk_widget_grab_focus (GTK_WIDGET (ev_attachbar));
- } else {
- gtk_widget_grab_focus (ev_window->priv->view);
- }
-}
-
static gboolean
view_menu_popup_cb (EvView *view,
EvLink *link,
@@ -2565,7 +2550,7 @@ view_menu_popup_cb (EvView *view,
}
static gboolean
-attachment_bar_menu_popup_cb (EvAttachmentBar *attachbar,
+attachment_bar_menu_popup_cb (EvSidebarAttachments *attachbar,
GList *attach_list,
EvWindow *ev_window)
{
@@ -3596,6 +3581,27 @@ ev_window_init (EvWindow *ev_window)
gtk_widget_show (ev_window->priv->sidebar);
/* Stub sidebar, for now */
+
+ sidebar_widget = ev_sidebar_thumbnails_new ();
+ ev_window->priv->sidebar_thumbs = sidebar_widget;
+ g_signal_connect (sidebar_widget,
+ "notify::main-widget",
+ G_CALLBACK (sidebar_page_main_widget_update_cb),
+ ev_window);
+ sidebar_page_main_widget_update_cb (G_OBJECT (sidebar_widget), NULL, ev_window);
+ gtk_widget_show (sidebar_widget);
+ ev_sidebar_add_page (EV_SIDEBAR (ev_window->priv->sidebar),
+ sidebar_widget);
+
+ sidebar_widget = ev_sidebar_attachments_new ();
+ ev_window->priv->sidebar_attachments = sidebar_widget;
+ g_signal_connect_object (sidebar_widget,
+ "popup",
+ G_CALLBACK (attachment_bar_menu_popup_cb),
+ ev_window, 0);
+ ev_sidebar_add_page (EV_SIDEBAR (ev_window->priv->sidebar),
+ sidebar_widget);
+
sidebar_widget = ev_sidebar_links_new ();
ev_window->priv->sidebar_links = sidebar_widget;
g_signal_connect (sidebar_widget,
@@ -3611,18 +3617,6 @@ ev_window_init (EvWindow *ev_window)
ev_sidebar_add_page (EV_SIDEBAR (ev_window->priv->sidebar),
sidebar_widget);
- sidebar_widget = ev_sidebar_thumbnails_new ();
- ev_window->priv->sidebar_thumbs = sidebar_widget;
- g_signal_connect (sidebar_widget,
- "notify::main-widget",
- G_CALLBACK (sidebar_page_main_widget_update_cb),
- ev_window);
- sidebar_page_main_widget_update_cb (G_OBJECT (sidebar_widget), NULL, ev_window);
- gtk_widget_show (sidebar_widget);
- ev_sidebar_add_page (EV_SIDEBAR (ev_window->priv->sidebar),
- sidebar_widget);
-
-
ev_window->priv->scrolled_window =
GTK_WIDGET (g_object_new (GTK_TYPE_SCROLLED_WINDOW,
"shadow-type", GTK_SHADOW_IN,
@@ -3654,16 +3648,6 @@ ev_window_init (EvWindow *ev_window)
gtk_widget_show (ev_window->priv->view);
gtk_widget_show (ev_window->priv->password_view);
- /* Attachments Bar */
- ev_window->priv->attachment_bar = ev_attachment_bar_new ();
- gtk_box_pack_end (GTK_BOX (ev_window->priv->main_box),
- ev_window->priv->attachment_bar,
- FALSE, TRUE, 0);
- g_signal_connect_object (ev_window->priv->attachment_bar,
- "popup",
- G_CALLBACK (attachment_bar_menu_popup_cb),
- ev_window, 0);
-
/* Find Bar */
ev_window->priv->find_bar = egg_find_bar_new ();
gtk_box_pack_end (GTK_BOX (ev_window->priv->main_box),
@@ -3716,12 +3700,6 @@ ev_window_init (EvWindow *ev_window)
G_CALLBACK (ev_window_sidebar_current_page_changed_cb),
ev_window);
- /* Connect attachment bar sgignals */
- g_signal_connect (G_OBJECT (ev_window->priv->attachment_bar),
- "notify::expanded",
- G_CALLBACK (ev_window_attachment_bar_toggled_cb),
- ev_window);
-
/* Connect to find bar signals */
g_signal_connect (ev_window->priv->find_bar,
"previous",
diff --git a/thumbnailer/Makefile.am b/thumbnailer/Makefile.am
index 3bce3f9..981172b 100644
--- a/thumbnailer/Makefile.am
+++ b/thumbnailer/Makefile.am
@@ -24,7 +24,7 @@ if ENABLE_DJVU
evince_thumbnailer_LDADD += $(DJVU_LIBS)
endif
-if ENABLE_DJVU
+if ENABLE_DVI
evince_thumbnailer_LDADD += -lkpathsea
endif