Skip to Content.
Sympa Menu

sm-commit - [SM-Commit] GIT changes to master grimoire by Eric Sandall (32fcb6c05555cc347d5c0386c302917f1060f73e)

sm-commit AT lists.ibiblio.org

Subject: Source Mage code commit list

List archive

Chronological Thread  
  • From: Eric Sandall <scm AT sourcemage.org>
  • To: sm-commit AT lists.ibiblio.org
  • Subject: [SM-Commit] GIT changes to master grimoire by Eric Sandall (32fcb6c05555cc347d5c0386c302917f1060f73e)
  • Date: Mon, 24 Jun 2013 20:11:23 -0500

GIT changes to master grimoire by Eric Sandall <sandalle AT sourcemage.org>:

dev/null |binary
gnome2-libs/nautilus-dropbox/DEPENDS | 1
gnome2-libs/nautilus-dropbox/DETAILS | 2
gnome2-libs/nautilus-dropbox/HISTORY | 4
gnome2-libs/nautilus-dropbox/nautilus-dropbox-1.6.0.tar.bz2.sig |binary
gnome2-libs/nautilus2/000-gnome-desktop-3.8.patch | 155
++++++++++
gnome2-libs/nautilus2/001-do-not-use-NautilusDesktopBackground.patch | 74
++++
gnome2-libs/nautilus2/002-add_receive_dropped_background_image.patch | 85
+++++
gnome2-libs/nautilus2/003-remove_gnome_bg_set_draw_background.patch | 22 +
gnome2-libs/nautilus2/DETAILS | 4
gnome2-libs/nautilus2/HISTORY | 12
gnome2-libs/nautilus2/PRE_BUILD | 8
gnome2-libs/nautilus2/nautilus-3.6.3.tar.xz.sig |binary
13 files changed, 364 insertions(+), 3 deletions(-)

New commits:
commit 32fcb6c05555cc347d5c0386c302917f1060f73e
Author: Eric Sandall <sandalle AT sourcemage.org>
Commit: Eric Sandall <sandalle AT sourcemage.org>

nautilus-dropbox: Updated to 1.6.0

commit d63577adadc8d2a3abd6089461482fce4658ab25
Author: Eric Sandall <sandalle AT sourcemage.org>
Commit: Eric Sandall <sandalle AT sourcemage.org>

nautilus-dropbox: Depends on pygtk2

checking for pygtk... no
configure: error: couldn't find pygtk

commit d20458e4d43976c502c4adcd8eb155def5452bdc
Author: Eric Sandall <sandalle AT sourcemage.org>
Commit: Eric Sandall <sandalle AT sourcemage.org>

nautilus2: Updated to 3.6.3
SOURCE matches upstream posted SHA256

commit ccde31b5b32ae7d618006af099726729e9b2e3e1
Author: Eric Sandall <sandalle AT sourcemage.org>
Commit: Eric Sandall <sandalle AT sourcemage.org>

nautilus2: Fix compilation with gnome-desktop3 3.8+ and libgnome API 3.8
Apply 000-gnome-desktop-3.8.patch,
001-do-not-use-NautilusDesktopBackground.patch,
002-add_receive_dropped_background_image.patch, and
003-remove_gnome_bg_set_draw_background.patch.
gnome-desktop-3.8.patch borrowed from

http://git.pld-linux.org/gitweb.cgi/packages/gnome-panel.git/commitdiff/fd33e2e0d0dd96ab56e3ee8b297e7de83556c0e0

diff --git a/gnome2-libs/nautilus-dropbox/DEPENDS
b/gnome2-libs/nautilus-dropbox/DEPENDS
index 4a6ebd4..f96316c 100755
--- a/gnome2-libs/nautilus-dropbox/DEPENDS
+++ b/gnome2-libs/nautilus-dropbox/DEPENDS
@@ -1,4 +1,5 @@
depends docutils &&
depends nautilus2 &&
+depends pygtk2 &&

suggest_depends pygpgme '' '' 'to verify binary signatures'
diff --git a/gnome2-libs/nautilus-dropbox/DETAILS
b/gnome2-libs/nautilus-dropbox/DETAILS
index 4965aa5..941a253 100755
--- a/gnome2-libs/nautilus-dropbox/DETAILS
+++ b/gnome2-libs/nautilus-dropbox/DETAILS
@@ -1,5 +1,5 @@
SPELL=nautilus-dropbox
- VERSION=1.4.0
+ VERSION=1.6.0
SOURCE="${SPELL}-${VERSION}.tar.bz2"
SOURCE_GPG="gurus.gpg:$SOURCE.sig:WORKS_FOR_ME"
SOURCE_URL[0]=http://linux.dropbox.com/packages/${SOURCE}
diff --git a/gnome2-libs/nautilus-dropbox/HISTORY
b/gnome2-libs/nautilus-dropbox/HISTORY
index 28887ca..c122a50 100644
--- a/gnome2-libs/nautilus-dropbox/HISTORY
+++ b/gnome2-libs/nautilus-dropbox/HISTORY
@@ -1,3 +1,7 @@
+2013-06-24 Eric Sandall <sandalle AT sourcemage.org>
+ * DETAILS: Updated to 1.6.0
+ * DEPENDS: Depends on pygtk2
+
2012-07-11 Eric Sandall <sandalle AT sourcemage.org>
* DETAILS: Updated to 1.4.0
* DEPENDS: Depends on docutils
diff --git a/gnome2-libs/nautilus-dropbox/nautilus-dropbox-1.4.0.tar.bz2.sig
b/gnome2-libs/nautilus-dropbox/nautilus-dropbox-1.4.0.tar.bz2.sig
deleted file mode 100644
index 7cabd08..0000000
Binary files
a/gnome2-libs/nautilus-dropbox/nautilus-dropbox-1.4.0.tar.bz2.sig and
/dev/null differ
diff --git a/gnome2-libs/nautilus-dropbox/nautilus-dropbox-1.6.0.tar.bz2.sig
b/gnome2-libs/nautilus-dropbox/nautilus-dropbox-1.6.0.tar.bz2.sig
new file mode 100644
index 0000000..6d2b7f3
Binary files /dev/null and
b/gnome2-libs/nautilus-dropbox/nautilus-dropbox-1.6.0.tar.bz2.sig differ
diff --git a/gnome2-libs/nautilus2/000-gnome-desktop-3.8.patch
b/gnome2-libs/nautilus2/000-gnome-desktop-3.8.patch
new file mode 100644
index 0000000..28deba4
--- /dev/null
+++ b/gnome2-libs/nautilus2/000-gnome-desktop-3.8.patch
@@ -0,0 +1,155 @@
+diff -Naur nautilus-3.6.1.orig/eel/eel-gnome-extensions.c
nautilus-3.6.1/eel/eel-gnome-extensions.c
+--- nautilus-3.6.1.orig/eel/eel-gnome-extensions.c 2013-06-24
15:48:18.490246931 -0700
++++ nautilus-3.6.1/eel/eel-gnome-extensions.c 2013-06-24 16:19:53.829949278
-0700
+@@ -31,7 +31,6 @@
+ #include "eel-gnome-extensions.h"
+
+ #include <gtk/gtk.h>
+-#include <libgnome-desktop/gnome-desktop-utils.h>
+
+ /* Return a command string containing the path to a terminal on this
system. */
+
+@@ -89,6 +88,137 @@
+ return result;
+ }
+
++
++/**
++ * gnome_desktop_prepend_terminal_to_vector:
++ * @argc: a pointer to the vector size
++ * @argv: a pointer to the vector
++ *
++ * Description: Prepends a terminal (either the one configured as default
in
++ * the user's GNOME setup, or one of the common xterm emulators) to the
passed
++ * in vector, modifying it in the process. The vector should be allocated
with
++ * #g_malloc, as this will #g_free the original vector. Also all elements
must
++ * have been allocated separately. That is the standard glib/GNOME way of
++ * doing vectors however. If the integer that @argc points to is negative,
the
++ * size will first be computed. Also note that passing in pointers to a
vector
++ * that is empty, will just create a new vector for you.
++ **/
++static void
++gnome_desktop_prepend_terminal_to_vector (int *argc, char ***argv)
++{
++#ifndef G_OS_WIN32
++ char **real_argv;
++ int real_argc;
++ int i, j;
++ char **term_argv = NULL;
++ int term_argc = 0;
++ GSettings *settings;
++
++ gchar *terminal = NULL;
++
++ char **the_argv;
++
++ g_return_if_fail (argc != NULL);
++ g_return_if_fail (argv != NULL);
++
++ // _gnome_desktop_init_i18n ();
++
++ /* sanity */
++ if(*argv == NULL)
++ *argc = 0;
++
++ the_argv = *argv;
++
++ /* compute size if not given */
++ if (*argc < 0) {
++ for (i = 0; the_argv[i] != NULL; i++)
++ ;
++ *argc = i;
++ }
++
++ settings = g_settings_new
("org.gnome.desktop.default-applications.terminal");
++ terminal = g_settings_get_string (settings, "exec");
++
++ if (terminal) {
++ gchar *command_line;
++ gchar *exec_flag;
++
++ exec_flag = g_settings_get_string (settings, "exec-arg");
++
++ if (exec_flag == NULL)
++ command_line = g_strdup (terminal);
++ else
++ command_line = g_strdup_printf ("%s %s", terminal,
++ exec_flag);
++
++ g_shell_parse_argv (command_line,
++ &term_argc,
++ &term_argv,
++ NULL /* error */);
++
++ g_free (command_line);
++ g_free (exec_flag);
++ g_free (terminal);
++ }
++
++ g_object_unref (settings);
++
++ if (term_argv == NULL) {
++ char *check;
++
++ term_argc = 2;
++ term_argv = g_new0 (char *, 3);
++
++ check = g_find_program_in_path ("gnome-terminal");
++ if (check != NULL) {
++ term_argv[0] = check;
++ /* Note that gnome-terminal takes -x and
++ * as -e in gnome-terminal is broken we use that. */
++ term_argv[1] = g_strdup ("-x");
++ } else {
++ if (check == NULL)
++ check = g_find_program_in_path ("nxterm");
++ if (check == NULL)
++ check = g_find_program_in_path
("color-xterm");
++ if (check == NULL)
++ check = g_find_program_in_path ("rxvt");
++ if (check == NULL)
++ check = g_find_program_in_path ("xterm");
++ if (check == NULL)
++ check = g_find_program_in_path ("dtterm");
++ if (check == NULL) {
++ g_warning ("Cannot find a terminal, using
xterm, even if it may not work");
++ check = g_strdup ("xterm");
++ }
++ term_argv[0] = check;
++ term_argv[1] = g_strdup ("-e");
++ }
++ }
++ real_argc = term_argc + *argc;
++ real_argv = g_new (char *, real_argc + 1);
++
++ for (i = 0; i < term_argc; i++)
++ real_argv[i] = term_argv[i];
++
++ for (j = 0; j < *argc; j++, i++)
++ real_argv[i] = (char *)the_argv[j];
++
++ real_argv[i] = NULL;
++
++ g_free (*argv);
++ *argv = real_argv;
++ *argc = real_argc;
++
++ /* we use g_free here as we sucked all the inner strings
++ * out from it into real_argv */
++ g_free (term_argv);
++#else
++ /* FIXME: Implement when needed */
++ g_warning ("gnome_prepend_terminal_to_vector: Not implemented");
++#endif
++}
++
++
+ static char *
+ get_terminal_command_prefix (gboolean for_command)
+ {
+@@ -198,3 +328,5 @@
+
+ g_free (command_line);
+ }
++
++
diff --git
a/gnome2-libs/nautilus2/001-do-not-use-NautilusDesktopBackground.patch
b/gnome2-libs/nautilus2/001-do-not-use-NautilusDesktopBackground.patch
new file mode 100644
index 0000000..b075dcf
--- /dev/null
+++ b/gnome2-libs/nautilus2/001-do-not-use-NautilusDesktopBackground.patch
@@ -0,0 +1,74 @@
+# From
https://git.gnome.org/browse/nautilus/commit/?id=07d2ca86237fac8b5bddc4e619e43dfc813bc5e7
+From 07d2ca86237fac8b5bddc4e619e43dfc813bc5e7 Mon Sep 17 00:00:00 2001
+From: Cosimo Cecchi <cosimoc AT gnome.org>
+Date: Tue, 19 Feb 2013 16:29:59 +0000
+Subject: desktop-canvas: don't use NautilusDesktopBacgrkound
+
+We don't need to anymore.
+---
+diff --git a/src/nautilus-desktop-canvas-view.c
b/src/nautilus-desktop-canvas-view.c
+index 340ed35..28cbd3b 100644
+--- a/src/nautilus-desktop-canvas-view.c
++++ b/src/nautilus-desktop-canvas-view.c
+@@ -41,7 +41,6 @@
+ #include <fcntl.h>
+ #include <gdk/gdkx.h>
+ #include <glib/gi18n.h>
+-#include <libnautilus-private/nautilus-desktop-background.h>
+ #include <libnautilus-private/nautilus-desktop-icon-file.h>
+ #include <libnautilus-private/nautilus-directory-notify.h>
+ #include <libnautilus-private/nautilus-file-changes-queue.h>
+@@ -76,8 +75,6 @@ struct NautilusDesktopCanvasViewDetails
+ gulong delayed_init_signal;
+ guint reload_desktop_timeout;
+ gboolean pending_rescan;
+-
+- NautilusDesktopBackground *background;
+ };
+
+ static void default_zoom_level_changed (gpointer
user_data);
+@@ -234,22 +231,6 @@ desktop_canvas_view_property_filter (GdkXEvent
*gdk_xevent,
+ return GDK_FILTER_CONTINUE;
+ }
+
+-static void
+-real_begin_loading (NautilusView *object)
+-{
+- NautilusCanvasContainer *canvas_container;
+- NautilusDesktopCanvasView *view;
+-
+- view = NAUTILUS_DESKTOP_CANVAS_VIEW (object);
+-
+- canvas_container = get_canvas_container (view);
+- if (view->details->background == NULL) {
+- view->details->background = nautilus_desktop_background_new
(canvas_container);
+- }
+-
+- NAUTILUS_VIEW_CLASS
(nautilus_desktop_canvas_view_parent_class)->begin_loading (object);
+-}
+-
+ static const char *
+ real_get_id (NautilusView *view)
+ {
+@@ -287,11 +268,6 @@ nautilus_desktop_canvas_view_dispose (GObject *object)
+ nautilus_view_update_menus,
+ canvas_view);
+
+- if (canvas_view->details->background != NULL) {
+- g_object_unref (canvas_view->details->background);
+- canvas_view->details->background = NULL;
+- }
+-
+ G_OBJECT_CLASS (nautilus_desktop_canvas_view_parent_class)->dispose
(object);
+ }
+
+@@ -304,7 +280,6 @@ nautilus_desktop_canvas_view_class_init
(NautilusDesktopCanvasViewClass *class)
+
+ G_OBJECT_CLASS (class)->dispose =
nautilus_desktop_canvas_view_dispose;
+
+- vclass->begin_loading = real_begin_loading;
+ vclass->merge_menus = real_merge_menus;
+ vclass->update_menus = real_update_menus;
+ vclass->get_view_id = real_get_id;
+--
+cgit v0.9.2
diff --git
a/gnome2-libs/nautilus2/002-add_receive_dropped_background_image.patch
b/gnome2-libs/nautilus2/002-add_receive_dropped_background_image.patch
new file mode 100644
index 0000000..f9686f8
--- /dev/null
+++ b/gnome2-libs/nautilus2/002-add_receive_dropped_background_image.patch
@@ -0,0 +1,85 @@
+# From
https://git.gnome.org/browse/nautilus/commit/?id=8b4a83ea80bf657cd8be754786e5f9daf7d5cc52
+
+From 8b4a83ea80bf657cd8be754786e5f9daf7d5cc52 Mon Sep 17 00:00:00 2001
+From: Cosimo Cecchi <cosimoc AT gnome.org>
+Date: Tue, 19 Feb 2013 16:28:52 +0000
+Subject: canvas-dnd: don't use NautilusDesktopBackground
+
+We only use it for DnD when receiving an image drop. We can copy that
+code from NautilusDesktopBackground in a helper function.
+---
+diff --git a/libnautilus-private/nautilus-canvas-dnd.c
b/libnautilus-private/nautilus-canvas-dnd.c
+index 2d1ae24..4be79bd 100644
+--- a/libnautilus-private/nautilus-canvas-dnd.c
++++ b/libnautilus-private/nautilus-canvas-dnd.c
+@@ -37,6 +37,7 @@
+
+ #include "nautilus-file-dnd.h"
+ #include "nautilus-canvas-private.h"
++#include "nautilus-global-preferences.h"
+ #include "nautilus-link.h"
+ #include "nautilus-metadata.h"
+ #include "nautilus-selection-canvas-item.h"
+@@ -51,8 +52,10 @@
+ #include <gdk/gdkx.h>
+ #include <gtk/gtk.h>
+ #include <glib/gi18n.h>
++#define GNOME_DESKTOP_USE_UNSTABLE_API
++#include <libgnome-desktop/gnome-bg.h>
++#include <gdesktop-enums.h>
+
+-#include <libnautilus-private/nautilus-desktop-background.h>
+ #include <libnautilus-private/nautilus-file-utilities.h>
+ #include <libnautilus-private/nautilus-file-changes-queue.h>
+ #include <stdio.h>
+@@ -1040,6 +1043,31 @@ selection_is_image_file (GList *selection_list)
+ return result;
+ }
+
++static void
++receive_dropped_background_image (const gchar *image_uri)
++{
++ GnomeBG *bg;
++ char *filename;
++
++ if (image_uri != NULL) {
++ filename = g_filename_from_uri (image_uri, NULL, NULL);
++ } else {
++ filename = NULL;
++ }
++
++ bg = gnome_bg_new ();
++
++ /* Currently, we only support tiled images. So we set the placement.
++ */
++ gnome_bg_set_placement (bg, G_DESKTOP_BACKGROUND_STYLE_WALLPAPER);
++ gnome_bg_set_filename (bg, filename);
++ gnome_bg_set_draw_background (bg, TRUE);
++
++ gnome_bg_save_to_preferences (bg, gnome_background_preferences);
++
++ g_free (filename);
++ g_object_unref (bg);
++}
+
+ static void
+ nautilus_canvas_container_receive_dropped_icons (NautilusCanvasContainer
*container,
+@@ -1083,15 +1111,8 @@ nautilus_canvas_container_receive_dropped_icons
(NautilusCanvasContainer *contai
+ }
+
+ if (real_action == (GdkDragAction)
NAUTILUS_DND_ACTION_SET_AS_BACKGROUND) {
+- NautilusDesktopBackground *background;
+-
+- background = nautilus_desktop_background_new (container);
+ selected_item =
container->details->dnd_info->drag_info.selection_list->data;
+-
+- nautilus_desktop_background_receive_dropped_background_image
(background,
+-
selected_item->uri);
+-
+- g_object_unref (background);
++ receive_dropped_background_image (selected_item->uri);
+
+ return;
+ }
+--
+cgit v0.9.2
diff --git
a/gnome2-libs/nautilus2/003-remove_gnome_bg_set_draw_background.patch
b/gnome2-libs/nautilus2/003-remove_gnome_bg_set_draw_background.patch
new file mode 100644
index 0000000..cb75035
--- /dev/null
+++ b/gnome2-libs/nautilus2/003-remove_gnome_bg_set_draw_background.patch
@@ -0,0 +1,22 @@
+# From
https://git.gnome.org/browse/nautilus/commit/?id=f30f0b01c48799ad9cc5225020cdc380b1b1c0c5
+From f30f0b01c48799ad9cc5225020cdc380b1b1c0c5 Mon Sep 17 00:00:00 2001
+From: Cosimo Cecchi <cosimoc AT gnome.org>
+Date: Thu, 21 Feb 2013 13:01:39 +0000
+Subject: canvas-dnd: adapt for gnome-desktop API change
+
+gnome_bg_set_draw_background() has been removed.
+---
+diff --git a/libnautilus-private/nautilus-canvas-dnd.c
b/libnautilus-private/nautilus-canvas-dnd.c
+index dc32fff..b4eb586 100644
+--- a/libnautilus-private/nautilus-canvas-dnd.c
++++ b/libnautilus-private/nautilus-canvas-dnd.c
+@@ -1061,7 +1061,6 @@ receive_dropped_background_image (const gchar
*image_uri)
+ */
+ gnome_bg_set_placement (bg, G_DESKTOP_BACKGROUND_STYLE_WALLPAPER);
+ gnome_bg_set_filename (bg, filename);
+- gnome_bg_set_draw_background (bg, TRUE);
+
+ gnome_bg_save_to_preferences (bg, gnome_background_preferences);
+
+--
+cgit v0.9.2
diff --git a/gnome2-libs/nautilus2/DETAILS b/gnome2-libs/nautilus2/DETAILS
index 94a949f..50ee86b 100755
--- a/gnome2-libs/nautilus2/DETAILS
+++ b/gnome2-libs/nautilus2/DETAILS
@@ -1,10 +1,10 @@
SPELL=nautilus2
- VERSION=3.6.1
+ VERSION=3.6.3
BRANCH=`echo $VERSION|cut -d . -f 1,2`
SOURCE=nautilus-$VERSION.tar.xz
SOURCE_DIRECTORY=$BUILD_DIRECTORY/nautilus-$VERSION
SOURCE_URL[0]=$GNOME_URL/sources/nautilus/$BRANCH/$SOURCE
- SOURCE_GPG="gurus.gpg:${SOURCE}.sig"
+ SOURCE_GPG="gurus.gpg:${SOURCE}.sig:UPSTREAM_HASH"
LICENSE[0]=GPL
LICENSE[1]=LGPL
LICENSE[2]=FDL
diff --git a/gnome2-libs/nautilus2/HISTORY b/gnome2-libs/nautilus2/HISTORY
index a9bfaf1..8e36e57 100644
--- a/gnome2-libs/nautilus2/HISTORY
+++ b/gnome2-libs/nautilus2/HISTORY
@@ -1,3 +1,15 @@
+2013-06-24 Eric Sandall <sandalle AT sourcemage.org>
+ * DETAILS: Updated to 3.6.3
+ SOURCE matches upstream posted SHA256
+
+ * Fix compilation with gnome-desktop3 3.8+ and libgnome API 3.8
+ * PRE_BUILD: Apply 000-gnome-desktop-3.8.patch,
+ 001-do-not-use-NautilusDesktopBackground.patch,
+ 002-add_receive_dropped_background_image.patch,
+ 003-remove_gnome_bg_set_draw_background.patch
+ * gnome-desktop-3.8.patch: Borrowed from
+
http://git.pld-linux.org/gitweb.cgi/packages/gnome-panel.git/commitdiff/fd33e2e0d0dd96ab56e3ee8b297e7de83556c0e0
+
2012-10-31 Eric Sandall <sandalle AT sourcemage.org>
* DEPENDS: Depends on tracker

diff --git a/gnome2-libs/nautilus2/PRE_BUILD b/gnome2-libs/nautilus2/PRE_BUILD
new file mode 100755
index 0000000..197267a
--- /dev/null
+++ b/gnome2-libs/nautilus2/PRE_BUILD
@@ -0,0 +1,8 @@
+default_pre_build &&
+cd "${SOURCE_DIRECTORY}" &&
+message "${MESSAGE_COLOR}Fix compilation against gnome-desktop3
3.8+...${DEFAULT_COLOR}" &&
+patch -p1 < "${SPELL_DIRECTORY}"/000-gnome-desktop-3.8.patch &&
+message "${MESSAGE_COLOR}Fix compilation with libgnome
3.8...${DEFAULT_COLOR}" &&
+patch -p1 <
"${SPELL_DIRECTORY}"/001-do-not-use-NautilusDesktopBackground.patch &&
+patch -p1 <
"${SPELL_DIRECTORY}"/002-add_receive_dropped_background_image.patch &&
+patch -p1 <
"${SPELL_DIRECTORY}"/003-remove_gnome_bg_set_draw_background.patch
diff --git a/gnome2-libs/nautilus2/nautilus-3.6.1.tar.xz.sig
b/gnome2-libs/nautilus2/nautilus-3.6.1.tar.xz.sig
deleted file mode 100644
index 98cb72b..0000000
Binary files a/gnome2-libs/nautilus2/nautilus-3.6.1.tar.xz.sig and /dev/null
differ
diff --git a/gnome2-libs/nautilus2/nautilus-3.6.3.tar.xz.sig
b/gnome2-libs/nautilus2/nautilus-3.6.3.tar.xz.sig
new file mode 100644
index 0000000..06a5f56
Binary files /dev/null and b/gnome2-libs/nautilus2/nautilus-3.6.3.tar.xz.sig
differ



  • [SM-Commit] GIT changes to master grimoire by Eric Sandall (32fcb6c05555cc347d5c0386c302917f1060f73e), Eric Sandall, 06/24/2013

Archive powered by MHonArc 2.6.24.

Top of Page