tazweb diff src/main.c @ rev 92

Add bookmarks function with menu item 'Add a bookmark'
author Christophe Lincoln <pankso@slitaz.org>
date Thu Apr 28 00:18:06 2011 +0200 (2011-04-28)
parents 9f32338b3ff3
children dc7215b94384
line diff
     1.1 --- a/src/main.c	Wed Apr 27 18:04:23 2011 +0200
     1.2 +++ b/src/main.c	Thu Apr 28 00:18:06 2011 +0200
     1.3 @@ -189,10 +189,9 @@
     1.4  download_requested_cb(WebKitWebView *webview, WebKitDownload *download,
     1.5  		gpointer user_data)
     1.6  {
     1.7 +	const gchar* buffer;
     1.8  	uri = webkit_download_get_uri(download);
     1.9 -	const gchar* buffer;
    1.10 -	asprintf(&buffer,
    1.11 -			"xterm -T 'Download' -geom 72x10+0-24 -e \
    1.12 +	asprintf(&buffer, "xterm -T 'Download' -geom 72x10+0-24 -e \
    1.13  				'cd $HOME/Downloads && wget -c %s; sleep 2' &", uri);
    1.14  	system(buffer);
    1.15  }
    1.16 @@ -243,6 +242,23 @@
    1.17  	return TRUE;
    1.18  }
    1.19  
    1.20 +/* Add a bookmark to home.html */
    1.21 +void
    1.22 +add_bookmark_cb(GtkWidget *widget, gpointer data)
    1.23 +{
    1.24 +	const gchar* title;
    1.25 +	const gchar* buffer;
    1.26 +	
    1.27 +	title = webkit_web_view_get_title(WEBKIT_WEB_VIEW (webview));
    1.28 +	uri = webkit_web_view_get_uri(WEBKIT_WEB_VIEW (webview));
    1.29 +	
    1.30 +	asprintf(&buffer, "sed -i \
    1.31 +			-e '/<!-- end:bookmarks -->/ i <li><a href=\"%s\">%s</a></li>' \
    1.32 +			-e s'/^<li>/	<li>/' $HOME/.config/tazweb/home.html &",
    1.33 +			uri, title);
    1.34 +	system(buffer);
    1.35 +}
    1.36 +
    1.37  /* Add items to WebKit contextual menu */
    1.38  static void
    1.39  populate_menu_cb(WebKitWebView *webview, GtkMenu *menu, gpointer data)
    1.40 @@ -271,15 +287,26 @@
    1.41  	item = gtk_separator_menu_item_new();
    1.42  	gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
    1.43  
    1.44 +	/* Add to bookmarks */
    1.45 +	item = gtk_image_menu_item_new_with_label("Add a bookmark");
    1.46 +	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item),
    1.47 +	gtk_image_new_from_stock(GTK_STOCK_ADD, GTK_ICON_SIZE_MENU));
    1.48 +	gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
    1.49 +	g_signal_connect(item, "activate", G_CALLBACK(add_bookmark_cb), webview);
    1.50 +
    1.51 +	/* Separator */
    1.52 +	item = gtk_separator_menu_item_new();
    1.53 +	gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
    1.54 +
    1.55  	/* View source mode */
    1.56 -	item = gtk_image_menu_item_new_with_label("View source");
    1.57 +	item = gtk_image_menu_item_new_with_label("View source mode");
    1.58  	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item),
    1.59  	gtk_image_new_from_stock(GTK_STOCK_PROPERTIES, GTK_ICON_SIZE_MENU));
    1.60  	gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
    1.61  	g_signal_connect(item, "activate", G_CALLBACK(view_source_cb), webview);
    1.62  
    1.63  	/* Printing */
    1.64 -	item = gtk_image_menu_item_new_with_label("Print page");
    1.65 +	item = gtk_image_menu_item_new_with_label("Print this page");
    1.66  	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item),
    1.67  	gtk_image_new_from_stock(GTK_STOCK_PRINT, GTK_ICON_SIZE_MENU));
    1.68  	gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
    1.69 @@ -292,7 +319,7 @@
    1.70  	/* TazWeb documentation */
    1.71  	item = gtk_image_menu_item_new_with_label("TazWeb manual");
    1.72  	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item),
    1.73 -	gtk_image_new_from_stock(GTK_STOCK_INFO, GTK_ICON_SIZE_MENU));
    1.74 +	gtk_image_new_from_stock(GTK_STOCK_HELP, GTK_ICON_SIZE_MENU));
    1.75  	gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
    1.76  	g_signal_connect(item, "activate", G_CALLBACK(tazweb_doc_cb), webview);
    1.77