**
** \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
list<handle<CanvasView> >::iterator iter;
for(iter=canvas_view_list().begin();iter!=canvas_view_list().end();iter++)
(*iter)->render_settings.set_entry_filename();
- App::add_recent_file(file_name);
+ App::add_recent_file(etl::handle<Instance>(this));
return true;
}
return false;
}
+void
+studio::Instance::open()
+{
+ App::dialog_open(get_file_name());
+}
+
Instance::Status
studio::Instance::save()
{
- // the filename will be set to "Synfig Animation 1" or some such when first created
- // and will be changed to an absolute path once it has been saved
- // so if it still begins with "Synfig Animation " then we need to ask where to save it
- if(get_file_name().find(DEFAULT_FILENAME_PREFIX)==0)
+ // if we don't have a real filename yet then we need to ask where to save it
+ if (!has_real_filename())
{
if (dialog_save_as())
return STATUS_OK;
}
if (synfigapp::Instance::save())
+ {
+ App::add_recent_file(etl::handle<Instance>(this));
return STATUS_OK;
+ }
App::dialog_error_blocking("Save - Error","Unable to save to '" + get_file_name() + "'");
return STATUS_ERROR;
}
+// the filename will be set to "Synfig Animation 1" or some such when first created
+// and will be changed to an absolute path once it has been saved
+// so if it still begins with "Synfig Animation " then we don't have a real filename yet
+bool
+studio::Instance::has_real_filename()
+{
+ return get_file_name().find(DEFAULT_FILENAME_PREFIX) != 0;
+}
+
bool
studio::Instance::dialog_save_as()
{
}
}
- if (get_file_name().find(DEFAULT_FILENAME_PREFIX) != 0)
+ if (has_real_filename())
filename = absolute_path(filename);
// show the canvas' name if it has one, else its ID
studio::App::instance_list.front()->canvas_view_list().front()->present();
}
-
void
Instance::insert_canvas(Gtk::TreeRow row, synfig::Canvas::Handle canvas)
{
*/
}
-
/*
void
Instance::insert_value_node(Gtk::TreeRow row,Canvas::Handle canvas,etl::handle<synfig::ValueNode> value_node)
return true;
}
-
void
Instance::add_actions_to_group(const Glib::RefPtr<Gtk::ActionGroup>& action_group, synfig::String& ui_info, const synfigapp::Action::ParamList ¶m_list, synfigapp::Action::Category category)const
{
param_list2.add("origin",location);
}
-
// Populate the convert menu by looping through
// the ValueNode book and find the ones that are
// relevant.
sigc::bind(
sigc::bind(
sigc::bind(
- sigc::bind(
- sigc::mem_fun(*find_canvas_view(canvas),&studio::CanvasView::on_waypoint_clicked_canvasview),
- synfig::Waypoint::SIDE_UNSPECIFIED
- ),
+ sigc::mem_fun(*find_canvas_view(canvas),&studio::CanvasView::on_waypoint_clicked_canvasview),
-1
),
waypoint_set
dialog.get_vbox()->pack_start(widget_waypoint_model);
-
dialog.add_button(Gtk::StockID("gtk-apply"),1);
dialog.add_button(Gtk::StockID("gtk-cancel"),0);
dialog.show();
action->set_param("canvas",canvas_view->get_canvas());
action->set_param("canvas_interface",canvas_interface);
-
if(!canvas_interface->get_instance()->perform_action(action))
{
canvas_view->get_ui_interface()->error(_("Unable to convert to animated waypoint"));
value_node=ValueNode_Animated::Handle::cast_dynamic(value_desc.get_value_node());
}
-
if(value_node)
{
-
synfigapp::Action::Handle action(synfigapp::Action::create("waypoint_set_smart"));
if(!action)
return;
}
-
action->set_param("canvas",canvas_view->get_canvas());
action->set_param("canvas_interface",canvas_interface);
action->set_param("value_node",ValueNode::Handle(value_node));