X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fsynfigapp%2Finstance.cpp;h=c3c542bb357394f1449da25e6192c409f063bd8a;hb=9459638ad6797b8139f1e9f0715c96076dbf0890;hp=7a39d9cd155c8a58ad621f3e8b1fa02209aa35b7;hpb=ce408de81ca266b1f334ee9bc6c8fb7ba1492ed4;p=synfig.git diff --git a/synfig-studio/trunk/src/synfigapp/instance.cpp b/synfig-studio/trunk/src/synfigapp/instance.cpp index 7a39d9c..c3c542b 100644 --- a/synfig-studio/trunk/src/synfigapp/instance.cpp +++ b/synfig-studio/trunk/src/synfigapp/instance.cpp @@ -1,11 +1,12 @@ /* === S Y N F I G ========================================================= */ -/*! \file instance.cpp +/*! \file synfigapp/instance.cpp ** \brief Instance ** -** $Id: instance.cpp,v 1.1.1.1 2005/01/07 03:34:37 darco Exp $ +** $Id$ ** ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** 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 @@ -37,8 +38,15 @@ #include #include #include +#include +#include +#include +#include +#include #include +#include "general.h" + #endif /* === U S I N G =========================================================== */ @@ -60,11 +68,14 @@ bool synfigapp::is_editable(synfig::ValueNode::Handle value_node) { if(ValueNode_Const::Handle::cast_dynamic(value_node) - || ValueNode_TimedSwap::Handle::cast_dynamic(value_node) || ValueNode_Animated::Handle::cast_dynamic(value_node) || ValueNode_Composite::Handle::cast_dynamic(value_node) || ValueNode_RadialComposite::Handle::cast_dynamic(value_node) - || ValueNode_Reference::Handle::cast_dynamic(value_node) + ||(ValueNode_Reference::Handle::cast_dynamic(value_node) && !ValueNode_Greyed::Handle::cast_dynamic(value_node)) + || ValueNode_BLineCalcVertex::Handle::cast_dynamic(value_node) + || ValueNode_BLineCalcTangent::Handle::cast_dynamic(value_node) + || ValueNode_BLineCalcWidth::Handle::cast_dynamic(value_node) + || ValueNode_Scale::Handle::cast_dynamic(value_node) ) return true; return false; @@ -80,19 +91,19 @@ synfigapp::find_instance(etl::handle canvas) /* === M E T H O D S ======================================================= */ -Instance::Instance(Canvas::Handle canvas): +Instance::Instance(etl::handle canvas): CVSInfo(canvas->get_file_name()), canvas_(canvas) { assert(canvas->is_root()); unset_selection_manager(); - + instance_map_[canvas]=this; } // END of synfigapp::Instance::Instance() handle -Instance::create(Canvas::Handle canvas) +Instance::create(etl::handle canvas) { // Construct a new instance handle instance(new Instance(canvas)); @@ -116,17 +127,19 @@ Instance::set_file_name(const synfig::String &name) Instance::~Instance() { instance_map_.erase(canvas_); - synfig::info("studio::Instance::~Instance(): Deleted"); -} // END of studio::Instance::~Instance() + + if (getenv("SYNFIG_DEBUG_DESTRUCTORS")) + synfig::info("Instance::~Instance(): Deleted"); +} handle -Instance::find_canvas_interface(handle canvas) +Instance::find_canvas_interface(synfig::Canvas::Handle canvas) { if(!canvas) return 0; while(canvas->is_inline()) canvas=canvas->parent(); - + CanvasInterfaceList::iterator iter; for(iter=canvas_interface_list().begin();iter!=canvas_interface_list().end();iter++) @@ -149,24 +162,12 @@ Instance::save()const } bool -Instance::save_as(const std::string &file_name)const -{ - bool ret=save_canvas(file_name,canvas_); - if(ret) - { - reset_action_count(); - const_cast& >(signal_saved_)(); - } - return ret; -} - -bool -Instance::save_as(const std::string &file_name) +Instance::save_as(const synfig::String &file_name) { bool ret; String old_file_name(get_file_name()); - + set_file_name(file_name); ret=save_canvas(file_name,canvas_); @@ -177,9 +178,7 @@ Instance::save_as(const std::string &file_name) signal_saved_(); } else - { set_file_name(old_file_name); - } signal_filename_changed_();