Fix most of the warnings from doxygen for synfig-studio sources.
[synfig.git] / synfig-studio / trunk / src / gtkmm / render.cpp
index 4a5a4b6..4c1eb03 100644 (file)
@@ -6,6 +6,7 @@
 **
 **     \legal
 **     Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
+**     Copyright (c) 2007 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
@@ -37,6 +38,8 @@
 #include <synfig/canvas.h>
 #include "asyncrenderer.h"
 
+#include "general.h"
+
 #endif
 
 /* === U S I N G =========================================================== */
@@ -54,7 +57,7 @@ using namespace studio;
 
 /* === M E T H O D S ======================================================= */
 
-RenderSettings::RenderSettings(Gtk::Window& parent,handle<synfigapp::CanvasInterface> canvas_interface):
+RenderSettings::RenderSettings(Gtk::Window& parent, etl::handle<synfigapp::CanvasInterface> canvas_interface):
        Gtk::Dialog(_("Render Settings"),parent,false,true),
        canvas_interface_(canvas_interface),
        adjustment_quality(3,0,9),
@@ -189,12 +192,7 @@ RenderSettings::~RenderSettings()
 void
 RenderSettings::set_entry_filename()
 {
-       String filename(canvas_interface_->get_canvas()->get_file_name());
-
-       // if the basename of the filename has an extension, remove it
-       String base = basename(filename);
-       if(find(base.begin(),base.end(),'.')!=base.end())
-               filename = String(filename.begin(), filename.begin()+filename.find_last_of('.'));
+       String filename(filename_sans_extension(canvas_interface_->get_canvas()->get_file_name()));
 
        // if this isn't the root canvas, append (<canvasname>) to the filename
        etl::handle<synfig::Canvas> canvas = canvas_interface_->get_canvas();
@@ -241,6 +239,7 @@ void
 RenderSettings::on_render_pressed()
 {
        String filename=entry_filename.get_text();
+       synfig::String calculated_target_name(target_name);
 
        if(filename.empty())
        {
@@ -250,15 +249,23 @@ RenderSettings::on_render_pressed()
 
        // If the target type is not yet defined,
        // try to figure it out from the outfile.
-       if(target_name.empty())
+       if(calculated_target_name.empty())
        {
                try
                {
-                       String ext=String(find(filename.begin(),filename.end(),'.')+1,filename.end());
+                       String ext(filename_extension(filename));
+                       if (ext.size()) ext=ext.substr(1); // skip initial '.'
+                       synfig::info("render target filename: '%s'; extension: '%s'", filename.c_str(), ext.c_str());
                        if(Target::ext_book().count(ext))
-                               target_name=Target::ext_book()[ext];
+                       {
+                               calculated_target_name=Target::ext_book()[ext];
+                               synfig::info("'%s' is a known extension - using target '%s'", ext.c_str(), calculated_target_name.c_str());
+                       }
                        else
-                               target_name=ext;
+                       {
+                               calculated_target_name=ext;
+                               synfig::info("unknown extension");
+                       }
                }
                catch(std::runtime_error x)
                {
@@ -267,13 +274,13 @@ RenderSettings::on_render_pressed()
                }
        }
 
-       if(filename.empty() && target_name!="null")
+       if(filename.empty() && calculated_target_name!="null")
        {
                canvas_interface_->get_ui_interface()->error(_("A filename is required for this target"));
                return;
        }
 
-       Target::Handle target=Target::create(target_name,filename);
+       Target::Handle target=Target::create(calculated_target_name,filename);
        if(!target)
        {
                canvas_interface_->get_ui_interface()->error(_("Unable to create target for ")+filename);
@@ -293,7 +300,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;
        }