X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Frender.cpp;h=cec4215a09e05d2aefbda745a3510adc64315dea;hb=9459638ad6797b8139f1e9f0715c96076dbf0890;hp=6ce562e3fda37a26ebf30486ce435f42460b3e14;hpb=0703c24fcb4de048af3056442b6935689bea06b1;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/render.cpp b/synfig-studio/trunk/src/gtkmm/render.cpp index 6ce562e..cec4215 100644 --- a/synfig-studio/trunk/src/gtkmm/render.cpp +++ b/synfig-studio/trunk/src/gtkmm/render.cpp @@ -6,7 +6,7 @@ ** ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley -** Copyright (c) 2007 Chris Moore +** Copyright (c) 2007, 2008 Chris Moore ** ** This package is free software; you can redistribute it and/or ** modify it under the terms of the GNU General Public License as @@ -38,6 +38,10 @@ #include #include "asyncrenderer.h" +#include "general.h" + +#include + #endif /* === U S I N G =========================================================== */ @@ -55,7 +59,7 @@ using namespace studio; /* === M E T H O D S ======================================================= */ -RenderSettings::RenderSettings(Gtk::Window& parent,handle canvas_interface): +RenderSettings::RenderSettings(Gtk::Window& parent, etl::handle canvas_interface): Gtk::Dialog(_("Render Settings"),parent,false,true), canvas_interface_(canvas_interface), adjustment_quality(3,0,9), @@ -174,9 +178,8 @@ RenderSettings::RenderSettings(Gtk::Window& parent,handleget_canvas()->get_name()); - - toggle_single_frame.set_active(true); - widget_rend_desc.disable_time_section(); + toggle_single_frame.set_active(false); + widget_rend_desc.enable_time_section(); set_entry_filename(); @@ -195,10 +198,12 @@ RenderSettings::set_entry_filename() // if this isn't the root canvas, append () to the filename etl::handle canvas = canvas_interface_->get_canvas(); if (!canvas->is_root()) + { if(canvas->get_name().empty()) filename+=" ("+canvas->get_id()+')'; else filename+=" ("+canvas->get_name()+')'; + } filename += ".png"; @@ -229,7 +234,7 @@ void RenderSettings::on_choose_pressed() { String filename=entry_filename.get_text(); - if(App::dialog_save_file("Save Render As",filename)) + if(App::dialog_save_file("Save Render As", filename, RENDER_DIR_PREFERENCE)) entry_filename.set_text(filename); } @@ -284,6 +289,14 @@ RenderSettings::on_render_pressed() canvas_interface_->get_ui_interface()->error(_("Unable to create target for ")+filename); return; } + // This is the only way I've found to avoid send a non writable + // filename path to the renderer. + fstream filetest (filename.c_str(), fstream::out); + if (filetest.fail()) + { + canvas_interface_->get_ui_interface()->error(_("Unable to create file for ")+filename); + return; + } hide(); @@ -298,7 +311,7 @@ RenderSettings::on_render_pressed() target->set_rend_desc(&rend_desc); target->set_quality((int)adjustment_quality.get_value()); if( !target->init() ){ - canvas_interface_->get_ui_interface()->error(_("Target initialisation failure")); + canvas_interface_->get_ui_interface()->error(_("Target initialization failure")); return; }