summaryrefslogtreecommitdiffstats
path: root/src/ui/dialog/filedialogimpl-gtkmm.cpp
diff options
context:
space:
mode:
authorsu_v <suv-sf@users.sourceforge.net>2012-12-16 05:41:25 +0000
committer~suv <suv-sf@users.sourceforge.net>2012-12-16 05:41:25 +0000
commit7ec903c9898f872dbd9426ed7a62e1969fdb7be7 (patch)
treea306139e829118a83516af02279c9eafd3440eaa /src/ui/dialog/filedialogimpl-gtkmm.cpp
parentHershey Text: whitespace; py: docstring, modeline; inx: fix attribute value (diff)
parentTranslations.Spanish translation update by Lucas Vieites. (diff)
downloadinkscape-7ec903c9898f872dbd9426ed7a62e1969fdb7be7.tar.gz
inkscape-7ec903c9898f872dbd9426ed7a62e1969fdb7be7.zip
merge from trunk (r11955)
(bzr r11687.1.3)
Diffstat (limited to 'src/ui/dialog/filedialogimpl-gtkmm.cpp')
-rw-r--r--src/ui/dialog/filedialogimpl-gtkmm.cpp36
1 files changed, 21 insertions, 15 deletions
diff --git a/src/ui/dialog/filedialogimpl-gtkmm.cpp b/src/ui/dialog/filedialogimpl-gtkmm.cpp
index 1663eb0b6..553acac84 100644
--- a/src/ui/dialog/filedialogimpl-gtkmm.cpp
+++ b/src/ui/dialog/filedialogimpl-gtkmm.cpp
@@ -141,13 +141,12 @@ bool SVGPreview::setDocument(SPDocument *doc)
//This should remove it from the box, and free resources
if (viewerGtk)
- gtk_widget_destroy(viewerGtk);
-
- viewerGtk = sp_svg_view_widget_new(doc);
- GtkWidget *vbox = (GtkWidget *)gobj();
- gtk_box_pack_start(GTK_BOX(vbox), viewerGtk, TRUE, TRUE, 0);
- gtk_widget_show(viewerGtk);
+ Gtk::Container::remove(*viewerGtk);
+ viewerGtk = Glib::wrap(sp_svg_view_widget_new(doc));
+ Gtk::VBox *vbox = Glib::wrap(gobj());
+ vbox->pack_start(*viewerGtk, TRUE, TRUE, 0);
+ viewerGtk->show();
return true;
}
@@ -1048,7 +1047,9 @@ FileSaveDialogImplGtk::FileSaveDialogImplGtk( Gtk::Window &parentWindow,
fileTypeCheckbox.set_active(prefs->getBool("/dialogs/save_as/append_extension", true));
}
- createFileTypeMenu();
+ if (_dialogType != CUSTOM_TYPE)
+ createFileTypeMenu();
+
fileTypeComboBox.set_size_request(200,40);
fileTypeComboBox.signal_changed().connect(
sigc::mem_fun(*this, &FileSaveDialogImplGtk::fileTypeChangedCallback) );
@@ -1175,8 +1176,21 @@ void FileSaveDialogImplGtk::fileTypeChangedCallback()
updateNameAndExtension();
}
+void FileSaveDialogImplGtk::addFileType(Glib::ustring name, Glib::ustring pattern)
+{
+ //#Let user choose
+ FileType guessType;
+ guessType.name = name;
+ guessType.pattern = pattern;
+ guessType.extension = NULL;
+ fileTypeComboBox.append(guessType.name);
+ fileTypes.push_back(guessType);
+ fileTypeComboBox.set_active(0);
+ fileTypeChangedCallback(); //call at least once to set the filter
+}
+
void FileSaveDialogImplGtk::createFileTypeMenu()
{
Inkscape::Extension::DB::OutputList extension_list;
@@ -1198,11 +1212,7 @@ void FileSaveDialogImplGtk::createFileTypeMenu()
knownExtensions.insert( extension.casefold() );
fileDialogExtensionToPattern (type.pattern, extension);
type.extension= omod;
-#if WITH_GTKMM_2_24
fileTypeComboBox.append(type.name);
-#else
- fileTypeComboBox.append_text(type.name);
-#endif
fileTypes.push_back(type);
}
@@ -1211,11 +1221,7 @@ void FileSaveDialogImplGtk::createFileTypeMenu()
guessType.name = _("Guess from extension");
guessType.pattern = "*";
guessType.extension = NULL;
-#if WITH_GTKMM_2_24
fileTypeComboBox.append(guessType.name);
-#else
- fileTypeComboBox.append_text(guessType.name);
-#endif
fileTypes.push_back(guessType);