From 916e89104c2953bbbb73ea2488e50905d0f35911 Mon Sep 17 00:00:00 2001 From: Patrick McDermott Date: Sat, 28 Oct 2017 14:22:09 -0400 Subject: mq_tab_page_open(): New function --- (limited to 'src') diff --git a/src/tab-page.c b/src/tab-page.c index 1a7b37a..b1bdc77 100644 --- a/src/tab-page.c +++ b/src/tab-page.c @@ -271,6 +271,40 @@ mq_tab_page_get_title(MqTabPage *tab_page) return tab_page->title; } +static void +open_response_cb(GtkWidget *dialog, gint response_id, MqTabPage *tab_page) +{ + gchar *filename; + gchar *uri; + + if (response_id == GTK_RESPONSE_ACCEPT) { + filename = gtk_file_chooser_get_filename( + GTK_FILE_CHOOSER(dialog)); + uri = g_strconcat("file://", filename, NULL); + g_free(filename); + mq_web_view_load_uri(MQ_WEB_VIEW(tab_page->web_view), uri); + g_free(uri); + } + + gtk_widget_destroy(dialog); +} + +void +mq_tab_page_open(MqTabPage *tab_page) +{ + GtkWidget *dialog; + + dialog = gtk_file_chooser_dialog_new("Open File", + GTK_WINDOW(tab_page->window), + GTK_FILE_CHOOSER_ACTION_OPEN, + "_Cancel", GTK_RESPONSE_CANCEL, + "_Open", GTK_RESPONSE_ACCEPT, + NULL); + g_signal_connect(dialog, "response", + G_CALLBACK(open_response_cb), tab_page); + gtk_widget_show_all(dialog); +} + void mq_tab_page_scroll_tab_labels(MqTabPage *node) { diff --git a/src/tab-page.h b/src/tab-page.h index c0c5612..384eb34 100644 --- a/src/tab-page.h +++ b/src/tab-page.h @@ -80,6 +80,9 @@ const gchar * mq_tab_page_get_title(MqTabPage *tab_page); void +mq_tab_page_open(MqTabPage *tab_page); + +void mq_tab_page_scroll_tab_labels(MqTabPage *node); void -- cgit v0.9.1