**
** \legal
** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
+** Copyright (c) 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
#include "valuedescconnect.h"
#include <synfigapp/canvasinterface.h>
+#include <synfigapp/general.h>
+
#endif
using namespace std;
/* === M A C R O S ========================================================= */
ACTION_INIT(Action::ActivepointSetOff);
-ACTION_SET_NAME(Action::ActivepointSetOff,"activepoint_set_off");
-ACTION_SET_LOCAL_NAME(Action::ActivepointSetOff,_("Mark Activepoint as \"Off\""));
+ACTION_SET_NAME(Action::ActivepointSetOff,"ActivepointSetOff");
+ACTION_SET_LOCAL_NAME(Action::ActivepointSetOff,N_("Mark Activepoint as \"Off\""));
ACTION_SET_TASK(Action::ActivepointSetOff,"set_off");
ACTION_SET_CATEGORY(Action::ActivepointSetOff,Action::CATEGORY_ACTIVEPOINT|Action::CATEGORY_VALUEDESC);
ACTION_SET_PRIORITY(Action::ActivepointSetOff,-9);
bool
Action::ActivepointSetOff::is_candidate(const ParamList &x)
{
- if(candidate_check(get_param_vocab(),x))
- {
- ValueDesc value_desc(x.find("value_desc")->second.get_value_desc());
- if(!value_desc.parent_is_value_node() || !ValueNode_DynamicList::Handle::cast_dynamic(value_desc.get_parent_value_node()))
- return false;
+ if (!candidate_check(get_param_vocab(),x))
+ return false;
- // We are only a candidate if this canvas is animated.
- Canvas::Handle canvas(x.find("canvas")->second.get_canvas());
- if(canvas->rend_desc().get_time_start()==canvas->rend_desc().get_time_end())
- return false;
+ ValueDesc value_desc(x.find("value_desc")->second.get_value_desc());
- // We need either a activepoint or a time.
- if(x.count("activepoint") || x.count("time"))
- return true;
- }
- return false;
+ if (!(value_desc.parent_is_value_node() &&
+ // We need a dynamic list.
+ ValueNode_DynamicList::Handle::cast_dynamic(value_desc.get_parent_value_node())))
+ return false;
+
+ Canvas::Handle canvas(x.find("canvas")->second.get_canvas());
+
+ // We are only a candidate if this canvas is animated.
+ return (canvas->rend_desc().get_time_start() != canvas->rend_desc().get_time_end() &&
+ // We need either an activepoint or a time.
+ (x.count("activepoint") || x.count("time")));
}
bool