X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fsynfigapp%2Finstance.cpp;h=020d3370d9ebc5dcd37badb7c39b6e78787b76ff;hb=62c72bf0bc6482003ae7423ecf727b2576fd5c46;hp=f64cac450222def5614f82441eb810d72a33c740;hpb=02252941b29de64037116f4d37991a38d9ff0d94;p=synfig.git diff --git a/synfig-studio/trunk/src/synfigapp/instance.cpp b/synfig-studio/trunk/src/synfigapp/instance.cpp index f64cac4..020d337 100644 --- a/synfig-studio/trunk/src/synfigapp/instance.cpp +++ b/synfig-studio/trunk/src/synfigapp/instance.cpp @@ -1,20 +1,22 @@ /* === 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 Robert B. Quattlebaum Jr. +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007, 2008 Chris Moore ** -** This software and associated documentation -** are CONFIDENTIAL and PROPRIETARY property of -** the above-mentioned copyright holder. +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. ** -** You may not copy, print, publish, or in any -** other way distribute this software without -** a prior written agreement with -** the copyright holder. +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. ** \endlegal */ /* ========================================================================= */ @@ -36,8 +38,14 @@ #include #include #include +#include +#include +#include +#include #include +#include "general.h" + #endif /* === U S I N G =========================================================== */ @@ -59,11 +67,13 @@ 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) ) return true; return false; @@ -79,19 +89,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)); @@ -115,17 +125,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++) @@ -148,24 +160,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_); @@ -176,9 +176,7 @@ Instance::save_as(const std::string &file_name) signal_saved_(); } else - { set_file_name(old_file_name); - } signal_filename_changed_();