diff options
Diffstat (limited to 'src/ui/dialog/ocaldialogs.cpp')
| -rw-r--r-- | src/ui/dialog/ocaldialogs.cpp | 89 |
1 files changed, 61 insertions, 28 deletions
diff --git a/src/ui/dialog/ocaldialogs.cpp b/src/ui/dialog/ocaldialogs.cpp index bb06e3e79..c597bc849 100644 --- a/src/ui/dialog/ocaldialogs.cpp +++ b/src/ui/dialog/ocaldialogs.cpp @@ -33,10 +33,16 @@ #include <gtkmm/notebook.h> #include <gtkmm/spinner.h> #include <gtkmm/stock.h> -#include <glibmm/i18n.h> #include <gdkmm/general.h> #include <libxml/tree.h> +#include <glibmm/convert.h> +#include <glibmm/fileutils.h> +#include <glibmm/i18n.h> +#include <glibmm/main.h> +#include <glibmm/markup.h> +#include <glibmm/miscutils.h> + namespace Inkscape { namespace UI @@ -139,7 +145,7 @@ bool ExportDialog::show() { set_modal (TRUE); //Window - sp_transientize((GtkWidget *)gobj()); //Make transient + sp_transientize(GTK_WIDGET(gobj())); //Make transient gint b = run(); //Dialog hide(); @@ -244,7 +250,7 @@ bool ExportPasswordDialog::show() { set_modal (TRUE); //Window - sp_transientize((GtkWidget *)gobj()); //Make transient + sp_transientize(GTK_WIDGET(gobj())); //Make transient gint b = run(); //Dialog hide(); @@ -324,7 +330,11 @@ bool LoadingBox::_on_expose_event(GdkEventExpose* /*event*/) } #endif -bool LoadingBox::_on_draw(const Cairo::RefPtr<Cairo::Context>& cr) +bool LoadingBox::_on_draw(const Cairo::RefPtr<Cairo::Context> & +#if WITH_GTKMM_3_0 +cr +#endif +) { // Draw shadow int x = get_allocation().get_x(); @@ -561,6 +571,7 @@ void StatusWidget::end_process() clear(); } +#if !GTK_CHECK_VERSION(3,6,0) SearchEntry::SearchEntry() : Gtk::Entry() { signal_changed().connect(sigc::mem_fun(*this, &SearchEntry::_on_changed)); @@ -589,6 +600,8 @@ void SearchEntry::_on_changed() set_icon_from_stock(Gtk::Stock::CLEAR, Gtk::ENTRY_ICON_SECONDARY); } } +#endif + BaseBox::BaseBox() : Gtk::EventBox() { @@ -957,44 +970,40 @@ void SearchResultList::populate_from_xml(xmlNode * a_node) for (xmlNode *cur_node = a_node; cur_node; cur_node = cur_node->next) { // Get items information - if (strcmp((const char*)cur_node->name, "rss")) // Avoid the root + if (strcmp(reinterpret_cast<const char*>(cur_node->name), "rss")) // Avoid the root if (cur_node->type == XML_ELEMENT_NODE && - (cur_node->parent->name && !strcmp((const char*)cur_node->parent->name, "item"))) + (cur_node->parent->name && !strcmp(reinterpret_cast<const char*>(cur_node->parent->name), "item"))) { - if (!strcmp((const char*)cur_node->name, "title")) + if (!strcmp(reinterpret_cast<const char*>(cur_node->name), "title")) { -#if WITH_GTKMM_2_24 row_num = append(""); -#else - row_num = append_text(""); -#endif xmlChar *xml_title = xmlNodeGetContent(cur_node); - char* title = (char*) xml_title; + char* title = reinterpret_cast<char*>(xml_title); set_text(row_num, RESULTS_COLUMN_TITLE, title); xmlFree(title); } - else if (!strcmp((const char*)cur_node->name, "pubDate")) + else if (!strcmp(reinterpret_cast<const char*>(cur_node->name), "pubDate")) { xmlChar *xml_date = xmlNodeGetContent(cur_node); - char* date = (char*) xml_date; + char* date = reinterpret_cast<char*>(xml_date); set_text(row_num, RESULTS_COLUMN_DATE, date); xmlFree(xml_date); } - else if (!strcmp((const char*)cur_node->name, "creator")) + else if (!strcmp(reinterpret_cast<const char*>(cur_node->name), "creator")) { xmlChar *xml_creator = xmlNodeGetContent(cur_node); - char* creator = (char*) xml_creator; + char* creator = reinterpret_cast<char*>(xml_creator); set_text(row_num, RESULTS_COLUMN_CREATOR, creator); xmlFree(xml_creator); } - else if (!strcmp((const char*)cur_node->name, "description")) + else if (!strcmp(reinterpret_cast<const char*>(cur_node->name), "description")) { xmlChar *xml_description = xmlNodeGetContent(cur_node); //char* final_description; - char* stripped_description = g_strstrip((char*) xml_description); + char* stripped_description = g_strstrip(reinterpret_cast<char*>(xml_description)); if (!strcmp(stripped_description, "")) { stripped_description = _("No description"); @@ -1006,30 +1015,30 @@ void SearchResultList::populate_from_xml(xmlNode * a_node) set_text(row_num, RESULTS_COLUMN_DESCRIPTION, stripped_description); xmlFree(xml_description); } - else if (!strcmp((const char*)cur_node->name, "enclosure")) + else if (!strcmp(reinterpret_cast<const char*>(cur_node->name), "enclosure")) { - xmlChar *xml_url = xmlGetProp(cur_node, (xmlChar*) "url"); - char* url = (char*) xml_url; + xmlChar *xml_url = xmlGetProp(cur_node, reinterpret_cast<xmlChar*>(g_strdup("url"))); + char* url = reinterpret_cast<char*>(xml_url); char* filename = g_path_get_basename(url); set_text(row_num, RESULTS_COLUMN_URL, url); set_text(row_num, RESULTS_COLUMN_FILENAME, filename); xmlFree(xml_url); } - else if (!strcmp((const char*)cur_node->name, "thumbnail")) + else if (!strcmp(reinterpret_cast<const char*>(cur_node->name), "thumbnail")) { - xmlChar *xml_thumbnail_url = xmlGetProp(cur_node, (xmlChar*) "url"); - char* thumbnail_url = (char*) xml_thumbnail_url; + xmlChar *xml_thumbnail_url = xmlGetProp(cur_node, reinterpret_cast<xmlChar*>(g_strdup("url"))); + char* thumbnail_url = reinterpret_cast<char*>(xml_thumbnail_url); char* thumbnail_filename = g_path_get_basename(thumbnail_url); set_text(row_num, RESULTS_COLUMN_THUMBNAIL_URL, thumbnail_url); set_text(row_num, RESULTS_COLUMN_THUMBNAIL_FILENAME, thumbnail_filename); xmlFree(xml_thumbnail_url); } - else if (!strcmp((const char*)cur_node->name, "guid")) + else if (!strcmp(reinterpret_cast<const char*>(cur_node->name), "guid")) { xmlChar *xml_guid = xmlNodeGetContent(cur_node); - char* guid_url = (char*) xml_guid; + char* guid_url = reinterpret_cast<char*>(xml_guid); char* guid = g_path_get_basename(guid_url); set_text(row_num, RESULTS_COLUMN_GUID, guid); @@ -1116,8 +1125,14 @@ void ImportDialog::on_xml_file_read(const Glib::RefPtr<Gio::AsyncResult>& result xmlDoc *doc = NULL; xmlNode *root_element = NULL; - doc = xmlReadMemory(data, (int) length, xml_uri.c_str(), NULL, - XML_PARSE_RECOVER + XML_PARSE_NOWARNING + XML_PARSE_NOERROR); + int parse_options = XML_PARSE_RECOVER + XML_PARSE_NOWARNING + XML_PARSE_NOERROR; // do not use XML_PARSE_NOENT ! see bug lp:1025185 + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + bool allowNetAccess = prefs->getBool("/options/externalresources/xml/allow_net_access", false); + if (!allowNetAccess) { + parse_options |= XML_PARSE_NONET; + } + + doc = xmlReadMemory(data, (int) length, xml_uri.c_str(), NULL, parse_options); if (doc == NULL) { // If nothing is returned, no results could be found @@ -1194,15 +1209,33 @@ ImportDialog::ImportDialog(Gtk::Window& parent_window, FileDialogType file_types // Creation Gtk::VBox *vbox = new Gtk::VBox(false, 0); + +#if WITH_GTKMM_3_0 + Gtk::ButtonBox *hbuttonbox_bottom = new Gtk::ButtonBox(); +#else Gtk::HButtonBox *hbuttonbox_bottom = new Gtk::HButtonBox(); +#endif + Gtk::HBox *hbox_bottom = new Gtk::HBox(false, 12); BaseBox *basebox_logo = new BaseBox(); BaseBox *basebox_no_search_results = new BaseBox(); label_not_found = new Gtk::Label(); label_description = new Gtk::Label(); + +#if GTK_CHECK_VERSION(3,6,0) + entry_search = new Gtk::SearchEntry(); +#else entry_search = new SearchEntry(); +#endif + button_search = new Gtk::Button(_("Search")); + +#if WITH_GTKMM_3_0 + Gtk::ButtonBox* hbuttonbox_search = new Gtk::ButtonBox(); +#else Gtk::HButtonBox* hbuttonbox_search = new Gtk::HButtonBox(); +#endif + Gtk::ScrolledWindow* scrolledwindow_preview = new Gtk::ScrolledWindow(); preview_files = new PreviewWidget(); /// Add the buttons in the bottom of the dialog |
