X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fcellrenderer_value.cpp;h=456dee77180fcd9fd8fcd9ddbd1ace7180299175;hb=9459638ad6797b8139f1e9f0715c96076dbf0890;hp=98487b683abce2ae990753b6879c2160597841d3;hpb=63e709f66d50c124cc0ece2325f4773ac4ae7b20;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/cellrenderer_value.cpp b/synfig-studio/trunk/src/gtkmm/cellrenderer_value.cpp index 98487b6..456dee7 100644 --- a/synfig-studio/trunk/src/gtkmm/cellrenderer_value.cpp +++ b/synfig-studio/trunk/src/gtkmm/cellrenderer_value.cpp @@ -6,6 +6,7 @@ ** ** \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 @@ -200,8 +201,11 @@ public: { if(valuewidget) return valuewidget->get_value(); - return synfig::ValueBase(); + + warning("%s:%d this code shouldn't be reached", __FILE__, __LINE__); + return *(new synfig::ValueBase()); } + const Glib::ustring &get_path() { return path; @@ -282,7 +286,8 @@ CellRenderer_ValueBase::CellRenderer_ValueBase(): CellRenderer_ValueBase::~CellRenderer_ValueBase() { -// synfig::info("CellRenderer_ValueBase::~CellRenderer_ValueBase(): deleted"); + if (getenv("SYNFIG_DEBUG_DESTRUCTORS")) + synfig::info("CellRenderer_ValueBase::~CellRenderer_ValueBase(): Deleted"); } void @@ -367,7 +372,13 @@ CellRenderer_ValueBase::render_vfunc( for(iter=enum_list.begin();iter!=enum_list.end();iter++) if(iter->value==data.get(int())) { - property_text()=(Glib::ustring)iter->local_name; + // don't show the key_board s_hortcut under_scores + String local_name = iter->local_name; + String::size_type pos = local_name.find_first_of('_'); + if (pos != String::npos) + property_text() = local_name.substr(0,pos) + local_name.substr(pos+1); + else + property_text() = local_name; break; } } @@ -491,13 +502,14 @@ CellRenderer_ValueBase::color_edited(synfig::Color color, Glib::ustring path) Gtk::CellEditable* CellRenderer_ValueBase::start_editing_vfunc( - GdkEvent* event, + GdkEvent* event __attribute__ ((unused)), Gtk::Widget& widget, const Glib::ustring& path, - const Gdk::Rectangle& background_area, - const Gdk::Rectangle& cell_area, - Gtk::CellRendererState flags) + const Gdk::Rectangle& background_area __attribute__ ((unused)), + const Gdk::Rectangle& cell_area __attribute__ ((unused)), + Gtk::CellRendererState flags __attribute__ ((unused))) { + edit_value_done_called = false; // If we aren't editable, then there is nothing to do if(!property_editable()) return 0; @@ -522,6 +534,7 @@ CellRenderer_ValueBase::start_editing_vfunc( path ) ); + App::dialog_gradient->grab_button_set_sensitive(true); App::dialog_gradient->present(); return NULL; @@ -569,6 +582,14 @@ CellRenderer_ValueBase::start_editing_vfunc( void CellRenderer_ValueBase::on_value_editing_done() { + if (edit_value_done_called) + { + synfig::error("on_value_editing_done(): Called twice!"); + return; + } + + edit_value_done_called = true; + if(value_entry) { ValueBase old_value(property_value_.get_value());