projects
/
raktpdf.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Get the URI from the file dialog rather than the filename.
[raktpdf.git]
/
src
/
rakt-window.c
diff --git
a/src/rakt-window.c
b/src/rakt-window.c
index 7cea82202828ca59208b9f1b1c394fdc9bc53009..c1e19611a3c599d06a2206c8e50a447b88b9d8f6 100644
(file)
--- a/
src/rakt-window.c
+++ b/
src/rakt-window.c
@@
-58,12
+58,15
@@
static const GtkActionEntry action_entries[] = {
{
"FileMenu", NULL, "_File", NULL, NULL, NULL
},
{
"FileMenu", NULL, "_File", NULL, NULL, NULL
},
+ {
+ "GoMenu", NULL, "_Go", NULL, NULL, NULL
+ },
{
"HelpMenu", NULL, "_Help", NULL, NULL, NULL
},
{
{
"HelpMenu", NULL, "_Help", NULL, NULL, NULL
},
{
- "Open", GTK_STOCK_OPEN,
- "
_Open", "
<control>O", "Open a PDF file",
+ "Open", GTK_STOCK_OPEN,
"_Open",
+ "<control>O", "Open a PDF file",
G_CALLBACK (on_action_open)
},
{
G_CALLBACK (on_action_open)
},
{
@@
-77,13
+80,13
@@
static const GtkActionEntry action_entries[] = {
G_CALLBACK (on_action_go_previous)
},
{
G_CALLBACK (on_action_go_previous)
},
{
- "Quit", GTK_STOCK_QUIT,
- "
_Quit", "
<control>Q", "Quit the application",
+ "Quit", GTK_STOCK_QUIT,
"_Quit",
+ "<control>Q", "Quit the application",
G_CALLBACK (on_action_quit)
},
{
G_CALLBACK (on_action_quit)
},
{
- "About", GTK_STOCK_ABOUT,
-
"_About",
NULL, "About this application",
+ "About", GTK_STOCK_ABOUT,
"_About",
+ NULL, "About this application",
G_CALLBACK (on_action_about)
}
};
G_CALLBACK (on_action_about)
}
};
@@
-96,6
+99,10
@@
static const gchar *ui_layout =
" <separator action='Sep1'/>"
" <menuitem action='Quit'/>"
" </menu>"
" <separator action='Sep1'/>"
" <menuitem action='Quit'/>"
" </menu>"
+ " <menu action='GoMenu'>"
+ " <menuitem action='Previous'/>"
+ " <menuitem action='Next'/>"
+ " </menu>"
" <menu action='HelpMenu'>"
" <menuitem action='About'/>"
" </menu>"
" <menu action='HelpMenu'>"
" <menuitem action='About'/>"
" </menu>"
@@
-152,20
+159,14
@@
render_page (RaktWindow *window)
}
static void
}
static void
-open_document (RaktWindow *window, gchar *
file
)
+open_document (RaktWindow *window, gchar *
uri
)
{
RaktWindowPriv *priv;
GError *error = NULL;
{
RaktWindowPriv *priv;
GError *error = NULL;
- gchar real[PATH_MAX], buf[16 + PATH_MAX];
priv = GET_PRIV (window);
priv = GET_PRIV (window);
- realpath (file, real);
-
- g_strlcpy (buf, "file://", sizeof (buf));
- g_strlcat (buf, real, sizeof (buf));
-
- priv->document = poppler_document_new_from_file (buf, NULL, &error);
+ priv->document = poppler_document_new_from_file (uri, NULL, &error);
priv->page_no = 0;
render_page (window);
priv->page_no = 0;
render_page (window);
@@
-176,6
+177,7
@@
window_create_menu (RaktWindow *window)
{
RaktWindowPriv *priv;
GtkActionGroup *action_group;
{
RaktWindowPriv *priv;
GtkActionGroup *action_group;
+ GtkAccelGroup *accel_group;
GError *error = NULL;
priv = GET_PRIV (window);
GError *error = NULL;
priv = GET_PRIV (window);
@@
-191,6
+193,10
@@
window_create_menu (RaktWindow *window)
gtk_action_group_add_actions (action_group, action_entries,
G_N_ELEMENTS (action_entries), window);
gtk_ui_manager_insert_action_group (priv->ui_manager, action_group, 0);
gtk_action_group_add_actions (action_group, action_entries,
G_N_ELEMENTS (action_entries), window);
gtk_ui_manager_insert_action_group (priv->ui_manager, action_group, 0);
+
+ accel_group = gtk_ui_manager_get_accel_group (priv->ui_manager);
+ gtk_window_add_accel_group (GTK_WINDOW (window), accel_group);
+
g_object_unref (action_group);
gtk_ui_manager_add_ui_from_string (priv->ui_manager, ui_layout, -1, &error);
g_object_unref (action_group);
gtk_ui_manager_add_ui_from_string (priv->ui_manager, ui_layout, -1, &error);
@@
-296,10
+302,11
@@
on_action_open (GtkAction *action, RaktWindow *window)
n = gtk_dialog_run (GTK_DIALOG (dialog));
if (n == GTK_RESPONSE_ACCEPT) {
n = gtk_dialog_run (GTK_DIALOG (dialog));
if (n == GTK_RESPONSE_ACCEPT) {
- gchar *
file
;
+ gchar *
uri
;
- file = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
- open_document (window, file);
+ uri = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (dialog));
+ open_document (window, uri);
+ g_free (uri);
}
gtk_widget_destroy (dialog);
}
gtk_widget_destroy (dialog);