#include <libgnomevfs/gnome-vfs-uri.h>
#include <libgnomevfs/gnome-vfs-utils.h>
+#include <libgnomevfs/gnome-vfs-ops.h>
#include <libgnomeprintui/gnome-print-dialog.h>
#include <gconf/gconf-client.h>
set_action_sensitive (ev_window, "EditSelectAll", sensitive);
set_action_sensitive (ev_window, "EditFind",
has_pages && EV_IS_DOCUMENT_FIND (document));
+ set_action_sensitive (ev_window, "Slash",
+ has_pages && EV_IS_DOCUMENT_FIND (document));
set_action_sensitive (ev_window, "EditFindNext",
ev_view_can_find_next (view));
return FALSE;
}
+static gboolean
+sanity_check_uri (EvWindow *window, const char *uri)
+{
+ gboolean result = FALSE;
+ GnomeVFSURI *vfs_uri;
+ char *err;
+
+ vfs_uri = gnome_vfs_uri_new (uri);
+ if (vfs_uri) {
+ if (gnome_vfs_uri_exists (vfs_uri)) {
+ result = TRUE;
+ }
+ }
+
+ if (!result) {
+ err = g_strdup_printf (_("The file %s does not exist."), uri);
+ unable_to_load (window, err);
+ g_free (err);
+ }
+
+ return result;
+}
+
void
ev_window_open (EvWindow *ev_window, const char *uri)
{
GType document_type;
char *mime_type = NULL;
+ if (!sanity_check_uri (ev_window, uri)) {
+ return;
+ }
+
g_free (ev_window->priv->uri);
ev_window->priv->uri = g_strdup (uri);
} else if (transport) {
if (!strcmp ((const gchar *)transport, "CUPS"))
return TRUE;
+ else if (!strcmp ((const gchar *)transport, "LPD"))
+ return TRUE;
}
return FALSE;
"stock_id", GTK_STOCK_ZOOM_IN,
"tooltip", _("Adjust the zoom level"),
"zoom", 1.0,
- "visible_overflown", FALSE,
NULL);
g_signal_connect (action, "zoom_to_level",
G_CALLBACK (zoom_control_changed_cb), window);