diff options
| author | Alex Valavanis <valavanisalex@gmail.com> | 2012-05-27 10:22:19 +0000 |
|---|---|---|
| committer | Alex Valavanis <valavanisalex@gmail.com> | 2012-05-27 10:22:19 +0000 |
| commit | 2feaabc7da2ba0fdf130dc06f87a77f3730ffba9 (patch) | |
| tree | 7aeeaffa3d864bd9947bfede249b79cf2bd93fe8 | |
| parent | Build with GSEAL_ENABLE (diff) | |
| download | inkscape-2feaabc7da2ba0fdf130dc06f87a77f3730ffba9.tar.gz inkscape-2feaabc7da2ba0fdf130dc06f87a77f3730ffba9.zip | |
file dialog fixes for GTK+ 3
(bzr r11423)
| -rw-r--r-- | src/ui/dialog/filedialogimpl-gtkmm.cpp | 90 |
1 files changed, 79 insertions, 11 deletions
diff --git a/src/ui/dialog/filedialogimpl-gtkmm.cpp b/src/ui/dialog/filedialogimpl-gtkmm.cpp index 6cdd202bb..b14da08be 100644 --- a/src/ui/dialog/filedialogimpl-gtkmm.cpp +++ b/src/ui/dialog/filedialogimpl-gtkmm.cpp @@ -735,35 +735,63 @@ FileOpenDialogImplGtk::~FileOpenDialogImplGtk() void FileOpenDialogImplGtk::createFilterMenu() { if (_dialogType == EXE_TYPES) { +#if WITH_GTKMM_3_0 + Glib::RefPtr<Gtk::FileFilter> allFilter = Gtk::FileFilter::create(); + allFilter->set_name(_("All Files")); + allFilter->add_pattern("*"); +#else Gtk::FileFilter allFilter; allFilter.set_name(_("All Files")); - extensionMap[Glib::ustring(_("All Files"))]=NULL; allFilter.add_pattern("*"); +#endif + extensionMap[Glib::ustring(_("All Files"))]=NULL; add_filter(allFilter); } else { +#if WITH_GTKMM_3_0 + Glib::RefPtr<Gtk::FileFilter> allInkscapeFilter = Gtk::FileFilter::create(); + allInkscapeFilter->set_name(_("All Inkscape Files")); + + Glib::RefPtr<Gtk::FileFilter> allFilter = Gtk::FileFilter::create(); + allFilter->set_name(_("All Files")); + allFilter->add_pattern("*"); + + Glib::RefPtr<Gtk::FileFilter> allImageFilter = Gtk::FileFilter::create(); + allImageFilter->set_name(_("All Images")); + + Glib::RefPtr<Gtk::FileFilter> allVectorFilter = Gtk::FileFilter::create(); + allVectorFilter->set_name(_("All Vectors")); + + Glib::RefPtr<Gtk::FileFilter> allBitmapFilter = Gtk::FileFilter::create(); + allBitmapFilter->set_name(_("All Bitmaps")); +#else Gtk::FileFilter allInkscapeFilter; allInkscapeFilter.set_name(_("All Inkscape Files")); + + Gtk::FileFilter allFilter; + allFilter.set_name(_("All Files")); + allFilter.add_pattern("*"); + + Gtk::FileFilter allImageFilter; + allImageFilter.set_name(_("All Images")); + + Gtk::FileFilter allVectorFilter; + allVectorFilter.set_name(_("All Vectors")); + + Gtk::FileFilter allBitmapFilter; + allBitmapFilter.set_name(_("All Bitmaps")); +#endif extensionMap[Glib::ustring(_("All Inkscape Files"))]=NULL; add_filter(allInkscapeFilter); - Gtk::FileFilter allFilter; - allFilter.set_name(_("All Files")); extensionMap[Glib::ustring(_("All Files"))]=NULL; - allFilter.add_pattern("*"); add_filter(allFilter); - Gtk::FileFilter allImageFilter; - allImageFilter.set_name(_("All Images")); extensionMap[Glib::ustring(_("All Images"))]=NULL; add_filter(allImageFilter); - Gtk::FileFilter allVectorFilter; - allVectorFilter.set_name(_("All Vectors")); extensionMap[Glib::ustring(_("All Vectors"))]=NULL; add_filter(allVectorFilter); - Gtk::FileFilter allBitmapFilter; - allBitmapFilter.set_name(_("All Bitmaps")); extensionMap[Glib::ustring(_("All Bitmaps"))]=NULL; add_filter(allBitmapFilter); @@ -783,17 +811,31 @@ void FileOpenDialogImplGtk::createFilterMenu() Glib::ustring extension = imod->get_extension(); fileDialogExtensionToPattern(upattern, extension); - Gtk::FileFilter filter; Glib::ustring uname(_(imod->get_filetypename())); + +#if WITH_GTKMM_3_0 + Glib::RefPtr<Gtk::FileFilter> filter = Gtk::FileFilter::create(); + filter->set_name(uname); + filter->add_pattern(upattern); +#else + Gtk::FileFilter filter; filter.set_name(uname); filter.add_pattern(upattern); +#endif + add_filter(filter); extensionMap[uname] = imod; //g_message("ext %s:%s '%s'\n", ioext->name, ioext->mimetype, upattern.c_str()); +#if WITH_GTKMM_3_0 + allInkscapeFilter->add_pattern(upattern); + if ( strncmp("image", imod->get_mimetype(), 5)==0 ) + allImageFilter->add_pattern(upattern); +#else allInkscapeFilter.add_pattern(upattern); if ( strncmp("image", imod->get_mimetype(), 5)==0 ) allImageFilter.add_pattern(upattern); +#endif // uncomment this to find out all mime types supported by Inkscape import/open // g_print ("%s\n", imod->get_mimetype()); @@ -814,9 +856,17 @@ void FileOpenDialogImplGtk::createFilterMenu() strncmp("image/x-tga", imod->get_mimetype(), 11)==0 || strncmp("image/x-pcx", imod->get_mimetype(), 11)==0 ) +#if WITH_GTKMM_3_0 + allBitmapFilter->add_pattern(upattern); +#else allBitmapFilter.add_pattern(upattern); +#endif else +#if WITH_GTKMM_3_0 + allVectorFilter->add_pattern(upattern); +#else allVectorFilter.add_pattern(upattern); +#endif } } return; @@ -889,7 +939,20 @@ FileOpenDialogImplGtk::getFilename (void) */ std::vector<Glib::ustring>FileOpenDialogImplGtk::getFilenames() { +#if WITH_GTKMM_3_0 + std::vector<std::string> result_tmp = get_filenames(); + + // Copy filenames to a vector of type Glib::ustring + std::vector<Glib::ustring> result; + + for (std::vector<std::string>::iterator it = result_tmp.begin(); + it != result_tmp.end(); it++) + result.push_back(*it); + +#else std::vector<Glib::ustring> result = get_filenames(); +#endif + #ifdef WITH_GNOME_VFS if (result.empty() && gnome_vfs_initialized()) result = get_uris(); @@ -1080,8 +1143,13 @@ void FileSaveDialogImplGtk::fileTypeChangedCallback() //g_message("selected: %s\n", type.name.c_str()); extension = type.extension; +#if WITH_GTKMM_3_0 + Glib::RefPtr<Gtk::FileFilter> filter = Gtk::FileFilter::create(); + filter->add_pattern(type.pattern); +#else Gtk::FileFilter filter; filter.add_pattern(type.pattern); +#endif set_filter(filter); updateNameAndExtension(); |
