summaryrefslogtreecommitdiffstats
path: root/src/ui/dialog/ocaldialogs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/dialog/ocaldialogs.cpp')
-rw-r--r--src/ui/dialog/ocaldialogs.cpp89
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