index 25390d56fa20e6e8f0571be763d240bdc94f48ea..2a5ededbb475bf88fd9f0f35b722587cb484a9fd 100644 (file)
//General includes
#include <unistd.h>
#include <sys/stat.h>
//General includes
#include <unistd.h>
#include <sys/stat.h>
+#include <errno.h>
#include <set>
//Gtk includes
#include <set>
//Gtk includes
//Another hack
#include <gtk/gtkentry.h>
#include <gtk/gtkexpander.h>
//Another hack
#include <gtk/gtkentry.h>
#include <gtk/gtkexpander.h>
+#ifdef WITH_GNOME_VFS
+# include <libgnomevfs/gnome-vfs-init.h> // gnome_vfs_initialized
+#endif
void dump_ustr( const Glib::ustring& ustr );
#endif
void dump_ustr( const Glib::ustring& ustr );
#endif
-extern int errno;
namespace Inkscape
namespace Inkscape
fileName = Glib::filename_to_utf8(fileName);
fileName = Glib::filename_to_utf8(fileName);
- SPDocument *doc = sp_document_new (fileName.c_str(), 0);
+ /**
+ * I don't know why passing false to keepalive is bad. But it
+ * prevents the display of an svg with a non-ascii filename
+ */
+ SPDocument *doc = sp_document_new (fileName.c_str(), true);
if (!doc) {
g_warning("SVGView: error loading document '%s'\n", fileName.c_str());
return false;
if (!doc) {
g_warning("SVGView: error loading document '%s'\n", fileName.c_str());
return false;
if (!Glib::file_test(fileName, Glib::FILE_TEST_EXISTS))
return false;
if (!Glib::file_test(fileName, Glib::FILE_TEST_EXISTS))
return false;
- g_message("fname:%s", fileName.c_str());
+ //g_message("fname:%s", fileName.c_str());
if (Glib::file_test(fileName, Glib::FILE_TEST_IS_DIR)) {
showNoPreview();
if (Glib::file_test(fileName, Glib::FILE_TEST_IS_DIR)) {
showNoPreview();
Glib::ustring fileName = get_preview_filename();
#ifdef WITH_GNOME_VFS
Glib::ustring fileName = get_preview_filename();
#ifdef WITH_GNOME_VFS
- if (fileName.length() < 1)
+ if ( fileName.empty() && gnome_vfs_initialized() ) {
fileName = get_preview_uri();
fileName = get_preview_uri();
+ }
#endif
#endif
- if (fileName.length() < 1)
+ if (fileName.empty()) {
return;
return;
+ }
svgPreview.set(fileName, dialogType);
}
svgPreview.set(fileName, dialogType);
}
set_select_multiple(true);
#ifdef WITH_GNOME_VFS
set_select_multiple(true);
#ifdef WITH_GNOME_VFS
- set_local_only(false);
+ if (gnome_vfs_initialized()) {
+ set_local_only(false);
+ }
#endif
/* Initalize to Autodetect */
#endif
/* Initalize to Autodetect */
}
myFilename = get_filename();
#ifdef WITH_GNOME_VFS
}
myFilename = get_filename();
#ifdef WITH_GNOME_VFS
- if (myFilename.length() < 1)
+ if (myFilename.empty() && gnome_vfs_initialized())
myFilename = get_uri();
#endif
cleanup( true );
myFilename = get_uri();
#endif
cleanup( true );
{
std::vector<Glib::ustring> result = get_filenames();
#ifdef WITH_GNOME_VFS
{
std::vector<Glib::ustring> result = get_filenames();
#ifdef WITH_GNOME_VFS
- if (result.empty())
+ if (result.empty() && gnome_vfs_initialized())
result = get_uris();
#endif
return result;
result = get_uris();
#endif
return result;
set_select_multiple(false);
#ifdef WITH_GNOME_VFS
set_select_multiple(false);
#ifdef WITH_GNOME_VFS
- set_local_only(false);
+ if (gnome_vfs_initialized()) {
+ set_local_only(false);
+ }
#endif
/* Initalize to Autodetect */
#endif
/* Initalize to Autodetect */
void FileSaveDialogImpl::setSelectionType( Inkscape::Extension::Extension * key )
{
void FileSaveDialogImpl::setSelectionType( Inkscape::Extension::Extension * key )
{
- extension = key;
-
// If no pointer to extension is passed in, look up based on filename extension.
// If no pointer to extension is passed in, look up based on filename extension.
- if ( !extension ) {
+ if ( !key ) {
// Not quite UTF-8 here.
gchar *filenameLower = g_ascii_strdown(myFilename.c_str(), -1);
// Not quite UTF-8 here.
gchar *filenameLower = g_ascii_strdown(myFilename.c_str(), -1);
- for ( int i = 0; !extension && (i < (int)fileTypes.size()); i++ ) {
+ for ( int i = 0; !key && (i < (int)fileTypes.size()); i++ ) {
Inkscape::Extension::Output *ext = dynamic_cast<Inkscape::Extension::Output*>(fileTypes[i].extension);
if ( ext && ext->get_extension() ) {
gchar *extensionLower = g_ascii_strdown( ext->get_extension(), -1 );
if ( g_str_has_suffix(filenameLower, extensionLower) ) {
Inkscape::Extension::Output *ext = dynamic_cast<Inkscape::Extension::Output*>(fileTypes[i].extension);
if ( ext && ext->get_extension() ) {
gchar *extensionLower = g_ascii_strdown( ext->get_extension(), -1 );
if ( g_str_has_suffix(filenameLower, extensionLower) ) {
- extension = fileTypes[i].extension;
+ key = fileTypes[i].extension;
}
g_free(extensionLower);
}
}
g_free(extensionLower);
}
@@ -1480,7 +1491,8 @@ void FileSaveDialogImpl::setSelectionType( Inkscape::Extension::Extension * key
}
// Ensure the proper entry in the combo box is selected.
}
// Ensure the proper entry in the combo box is selected.
- if ( extension ) {
+ if ( key ) {
+ extension = key;
gchar const * extensionID = extension->get_id();
if ( extensionID ) {
for ( int i = 0; i < (int)fileTypes.size(); i++ ) {
gchar const * extensionID = extension->get_id();
if ( extensionID ) {
for ( int i = 0; i < (int)fileTypes.size(); i++ ) {
// Pick up any changes the user has typed in.
Glib::ustring tmp = get_filename();
#ifdef WITH_GNOME_VFS
// Pick up any changes the user has typed in.
Glib::ustring tmp = get_filename();
#ifdef WITH_GNOME_VFS
- if ( tmp.empty() ) {
+ if ( tmp.empty() && gnome_vfs_initialized() ) {
tmp = get_uri();
}
#endif
tmp = get_uri();
}
#endif
set_select_multiple(false);
#ifdef WITH_GNOME_VFS
set_select_multiple(false);
#ifdef WITH_GNOME_VFS
- set_local_only(false);
+ if (gnome_vfs_initialized()) {
+ set_local_only(false);
+ }
#endif
/* Initalize to Autodetect */
#endif
/* Initalize to Autodetect */
}
myFilename = get_filename();
#ifdef WITH_GNOME_VFS
}
myFilename = get_filename();
#ifdef WITH_GNOME_VFS
- if (myFilename.length() < 1)
+ if ( myFilename.empty() && gnome_vfs_initialized() ) {
myFilename = get_uri();
myFilename = get_uri();
+ }
#endif
/*
#endif
/*