Remove .gitignore do nothing is ignored.
[synfig.git] / synfig-studio / trunk / src / synfigapp / actions / valuedesclink.cpp
index bce9607..66c736e 100644 (file)
@@ -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
@@ -35,6 +35,8 @@
 #include <synfigapp/canvasinterface.h>
 #include <synfig/valuenode_const.h>
 
+#include <synfigapp/general.h>
+
 #endif
 
 using namespace std;
@@ -46,8 +48,8 @@ using namespace Action;
 /* === M A C R O S ========================================================= */
 
 ACTION_INIT(Action::ValueDescLink);
-ACTION_SET_NAME(Action::ValueDescLink,"value_desc_link");
-ACTION_SET_LOCAL_NAME(Action::ValueDescLink,"Link");
+ACTION_SET_NAME(Action::ValueDescLink,"ValueDescLink");
+ACTION_SET_LOCAL_NAME(Action::ValueDescLink,N_("Link"));
 ACTION_SET_TASK(Action::ValueDescLink,"connect");
 ACTION_SET_CATEGORY(Action::ValueDescLink,Action::CATEGORY_VALUEDESC);
 ACTION_SET_PRIORITY(Action::ValueDescLink,0);
@@ -204,9 +206,9 @@ Action::ValueDescLink::set_param(const synfig::String& name, const Action::Param
                {
                        // Everything must be of the same type
                        poison=true;
-                       status_message = (_("Cannot link two values of different types ('") +
-                                                         value_desc.get_value().type_name() + _("' and '") +
-                                                         value_desc_list.front().get_value().type_name() +_("')"));
+                       status_message = (strprintf(_("Cannot link two values of different types ('%s' and '%s')"),
+                                                                               ValueBase::type_local_name(value_desc.get_value_type()).c_str(),
+                                                                               ValueBase::type_local_name(value_desc_list.front().get_value_type()).c_str()));
                        return false;
                }
 
@@ -242,11 +244,11 @@ Action::ValueDescLink::prepare()
        if(!link_value_node)
        {
                status_message = _("No ValueNodes were available, so one was created.");
-               ValueDesc& value_desc(value_desc_list.front());
+               ValueDesc& value_desc(value_desc_list.back());
 
                link_value_node=ValueNode_Const::create(value_desc.get_value(time));
 
-               Action::Handle action(Action::create("value_desc_connect"));
+               Action::Handle action(Action::create("ValueDescConnect"));
 
                action->set_param("canvas",get_canvas());
                action->set_param("canvas_interface",get_canvas_interface());
@@ -263,7 +265,7 @@ Action::ValueDescLink::prepare()
        /*
        if(!link_value_node->is_exported())
        {
-               Action::Handle action(Action::create("value_node_add"));
+               Action::Handle action(Action::create("ValueNodeAdd"));
 
                action->set_param("canvas",get_canvas());
                action->set_param("canvas_interface",get_canvas_interface());
@@ -283,7 +285,12 @@ Action::ValueDescLink::prepare()
        {
                ValueDesc& value_desc(*iter);
 
-               Action::Handle action(Action::create("value_desc_connect"));
+               // only one of the selected items can be exported - that's the one we're linking to
+               // don't link it to itself
+               if (value_desc.is_exported())
+                       continue;
+
+               Action::Handle action(Action::create("ValueDescConnect"));
 
                action->set_param("canvas",get_canvas());
                action->set_param("canvas_interface",get_canvas_interface());
@@ -297,5 +304,5 @@ Action::ValueDescLink::prepare()
                add_action_front(action);
        }
 
-       synfig::info(status_message);
+       synfig::info("http://synfig.org/Linking#Tier_%d : %s", status_level, status_message.c_str());
 }