X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Flayeractionmanager.cpp;h=69031176d8b31a00a2b2d492440deacd0b4b56be;hb=3624aac2a6e2dc3824ae22e99e2608f93f285e61;hp=cc9177cf993fbf02945a7e5736a4353830854093;hpb=c34eaa5441242b3e9a7b7645e9ee4983d14eae85;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/layeractionmanager.cpp b/synfig-studio/trunk/src/gtkmm/layeractionmanager.cpp index cc9177c..6903117 100644 --- a/synfig-studio/trunk/src/gtkmm/layeractionmanager.cpp +++ b/synfig-studio/trunk/src/gtkmm/layeractionmanager.cpp @@ -1,11 +1,12 @@ /* === S Y N F I G ========================================================= */ -/*! \file template.cpp +/*! \file layeractionmanager.cpp ** \brief Template File ** -** $Id: layeractionmanager.cpp,v 1.1.1.1 2005/01/07 03:34:36 darco Exp $ +** $Id$ ** ** \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 @@ -35,6 +36,8 @@ #include "instance.h" #include +#include "general.h" + #endif /* === U S I N G =========================================================== */ @@ -58,8 +61,8 @@ static const guint no_prev_popup((guint)-1); LayerActionManager::LayerActionManager(): action_group_(Gtk::ActionGroup::create()), - action_group_copy_paste(Gtk::ActionGroup::create()), popup_id_(no_prev_popup), + action_group_copy_paste(Gtk::ActionGroup::create()), queued(false) { action_cut_=Gtk::Action::create( @@ -301,13 +304,12 @@ LayerActionManager::refresh() } } - ui_info=""+ui_info+""; + ui_info=""+ui_info+""; popup_id_=get_ui_manager()->add_ui_from_string(ui_info); #ifdef ONE_ACTION_GROUP #else get_ui_manager()->insert_action_group(action_group_); #endif - DEBUGPOINT(); } void @@ -381,7 +383,8 @@ LayerActionManager::paste() return; } - synfig::info("DEPTH=%d",depth); + // synfig::info("DEPTH=%d",depth); + // Action to move the layer (if necessary) if(depth>0) { @@ -411,6 +414,22 @@ LayerActionManager::paste() } } depth++; + + // automatically export the Index parameter of Duplicate layers when pasting + if (layer->get_name() == "duplicate") + for (int i = 1; ; i++) + { + String name = strprintf(_("Index %d"), i); + try + { + canvas->find_value_node(name); + } + catch (Exception::IDNotFound x) + { + get_canvas_interface()->add_value_node(layer->dynamic_param_list().find("index")->second, name); + break; + } + } } get_canvas_interface()->get_selection_manager()->clear_selected_layers(); get_canvas_interface()->get_selection_manager()->set_selected_layers(layer_selection); @@ -432,7 +451,7 @@ LayerActionManager::amount_inc() while(!layer_list.empty()) { ValueBase value(layer_list.front()->get_param("amount")); - if(value.same_as(Real())) + if(value.same_type_as(Real())) { get_canvas_interface()->change_value(synfigapp::ValueDesc(layer_list.front(),"amount"),value.get(Real())+adjust); } @@ -456,7 +475,7 @@ LayerActionManager::amount_dec() while(!layer_list.empty()) { ValueBase value(layer_list.front()->get_param("amount")); - if(value.same_as(Real())) + if(value.same_type_as(Real())) { get_canvas_interface()->change_value(synfigapp::ValueDesc(layer_list.front(),"amount"),value.get(Real())+adjust); }