[Synfig-devl] Konstantin Dmitriev : synfigstudio-cph-monitor: Better detection for running synfigstudio.
Module: synfig Branch: morevna Commit: 510db4e9760325e1cf103a936fe04e10f17d0ccb URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=510db4e9760325e1cf103a936fe04e10f17d0ccb Author: Konstantin Dmitriev ksee.zelga...@gmail.com Date: Mon Jul 27 18:56:41 2009 +0700 synfigstudio-cph-monitor: Better detection for running synfigstudio. --- synfig-studio/trunk/synfigstudio-cph-monitor |9 ++--- 1 files changed, 2 insertions(+), 7 deletions(-) diff --git a/synfig-studio/trunk/synfigstudio-cph-monitor b/synfig-studio/trunk/synfigstudio-cph-monitor index 7ca8461..6dcc2bc 100755 --- a/synfig-studio/trunk/synfigstudio-cph-monitor +++ b/synfig-studio/trunk/synfigstudio-cph-monitor @@ -118,18 +118,13 @@ dumpstats() mainloop() { while true; do - export PS=$(ps -f -u `whoami`) - if ( ( echo $PS |egrep synfigstudio$ /dev/null ) || ( echo $PS | egrep synfigstudio /dev/null ) ) ; then + if ( ps --no-headers -f -Csynfigstudio |egrep ^`whoami` /dev/null ) ; then #synfigstudio process exist if [[ $STARTED == 0 ]]; then STARTED=1 RUNTIME=0 #get version - if ( echo $PS |egrep synfigstudio$ /dev/null ) ; then - P=$( echo $PS |egrep synfigstudio$| tr -s ' '| cut -d ' ' -f 8) - else - P=$( echo $PS |egrep synfigstudio | tr -s ' '| cut -d ' ' -f 8) - fi + P=$(ps --no-headers -f -Csynfigstudio |egrep ^`whoami` | tr -s ' '| cut -d ' ' -f 8) echo if [ ! -e $P ]; then P=`which $P` -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Konstantin Dmitriev : Forbid double run of synfigstudio-cph-monitor.
Module: synfig Branch: zelgadis_master Commit: f0b3a083d6ebf2080c85696b2867f019d9a97fa9 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=f0b3a083d6ebf2080c85696b2867f019d9a97fa9 Author: Konstantin Dmitriev ksee.zelga...@gmail.com Date: Mon Jul 27 18:29:08 2009 +0700 Forbid double run of synfigstudio-cph-monitor. --- synfig-studio/trunk/synfigstudio-cph-monitor | 25 +++-- 1 files changed, 23 insertions(+), 2 deletions(-) diff --git a/synfig-studio/trunk/synfigstudio-cph-monitor b/synfig-studio/trunk/synfigstudio-cph-monitor index 000b83a..7ca8461 100755 --- a/synfig-studio/trunk/synfigstudio-cph-monitor +++ b/synfig-studio/trunk/synfigstudio-cph-monitor @@ -17,10 +17,9 @@ trap writelog INT init() { -echo Synfig Crash Monitor is a tool to collect statistics about synfig crashes. +echo SynfigStudio Crash Monitor is a tool to collect statistics about synfig crashes. echo All information is collected locally in ~/.synfig/cph directory. echo -echo `date +%H:%M` Synfig Crash Monitor started. STARTED=0 RUNTIME=0 VERSION='' @@ -29,6 +28,27 @@ BRANCH='' REVISION_ID='' CRASH=0 [ ! -d ~/.synfig/cph ] mkdir -p ~/.synfig/cph || true + +# Detect if crash monitor is already started +PDIR=${0%`basename $0`} +LCK_FILE=~/.synfig/cph/`basename $0`.lck +if [ -f ${LCK_FILE} ]; then + MYPID=`head -n 1 ${LCK_FILE}` + if ! ( ps -p ${MYPID} | grep ${MYPID} /dev/null ); then + # The process is not running + # Echo current PID into lock file + echo $$ ${LCK_FILE} + else + echo `basename $0` is already running [${MYPID}]. Aborting. + sleep 5 + exit 0 + fi +else + # The process is not running + # Echo current PID into lock file + echo $$ ${LCK_FILE} +fi +echo `date +%H:%M` Synfig Crash Monitor started. } writelog() @@ -143,5 +163,6 @@ mainloop() done } + init mainloop -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Chris Norman : Fixing user name...
Module: synfig Branch: genete_master Commit: 9b193ca30b3f4912d45fa8c4a55ad8fc6cff1e25 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=9b193ca30b3f4912d45fa8c4a55ad8fc6cff1e25 Author: Chris Norman pxe.g...@gmail.com Date: Fri Jul 3 19:56:18 2009 -0700 Fixing user name... Signed-off-by: Chris Norman pxe.geek_s...@gmail.com --- synfig-studio/trunk/test.txt |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/synfig-studio/trunk/test.txt b/synfig-studio/trunk/test.txt index 1c999d2..d52c75c 100644 --- a/synfig-studio/trunk/test.txt +++ b/synfig-studio/trunk/test.txt @@ -1 +1 @@ -Deleteme... Just checking Git commit \ No newline at end of file +Deleteme... Just checking Git commit... fixing username \ No newline at end of file -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Delete unneeded test file from pixelgeek git test.
Module: synfig Branch: genete_master Commit: 697bc5a5331b2750271bb68d401adb329ed7d95e URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=697bc5a5331b2750271bb68d401adb329ed7d95e Author: Carlos Lopez car...@pcnuevo.(none) Date: Mon Jul 6 11:29:05 2009 +0200 Delete unneeded test file from pixelgeek git test. --- synfig-studio/trunk/test.txt |1 - 1 files changed, 0 insertions(+), 1 deletions(-) diff --git a/synfig-studio/trunk/test.txt b/synfig-studio/trunk/test.txt deleted file mode 100644 index d52c75c..000 --- a/synfig-studio/trunk/test.txt +++ /dev/null @@ -1 +0,0 @@ -Deleteme... Just checking Git commit... fixing username \ No newline at end of file -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Revert modifications for Fedora compatibility due to stability problems.
Module: synfig Branch: genete_master Commit: 4cfe2b68ebd2556f9926965dcea2ca8f3fc050ea URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=4cfe2b68ebd2556f9926965dcea2ca8f3fc050ea Author: Carlos Lopez car...@pcnuevo.(none) Date: Mon Jul 6 11:42:01 2009 +0200 Revert modifications for Fedora compatibility due to stability problems. --- ETL/trunk/ETL.pbproj/etl_profile.h | 28 ETL/trunk/ETL.pc.in|2 +- ETL/trunk/ETL/Makefile.am | 10 -- ETL/trunk/ETL/_mutex_pthreads.h|2 +- ETL/trunk/ETL/_stringf.h | 21 ETL/trunk/ETL/_thread.h| 22 ++-- ETL/trunk/ETL/clock|2 +- ETL/trunk/ETL/etl_config.h |2 +- ETL/trunk/ETL/etl_profile.h.in | 42 --- ETL/trunk/ETL/handle |6 ++-- ETL/trunk/ETL/mutex|2 +- ETL/trunk/Makefile.am |2 + ETL/trunk/configure.ac | 64 ETL/trunk/m4/ETL.m4| 32 ++ 14 files changed, 95 insertions(+), 142 deletions(-) Diff: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commitdiff;h=4cfe2b68ebd2556f9926965dcea2ca8f3fc050ea -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : New Canvas view layout. WIP
Module: synfig Branch: genete_master Commit: 660549d2828f033c28b0e0874565b32d1a052750 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=660549d2828f033c28b0e0874565b32d1a052750 Author: Carlos Lopez car...@pcnuevo.(none) Date: Sun Jun 21 08:47:49 2009 +0200 New Canvas view layout. WIP -Move the Current time widget from the status to the timebar. -Add a new row at the bottom of the time bar and move there the animate and lock keyframe buttons. --- synfig-studio/trunk/src/gtkmm/canvasview.cpp | 52 ++--- 1 files changed, 29 insertions(+), 23 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 44c8340..23407b0 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -946,6 +946,7 @@ CanvasView::create_time_bar() { Gtk::Image *icon; + //Setup the Time Slider and the Time window scroll Gtk::HScrollbar *time_window_scroll = manage(new class Gtk::HScrollbar(time_window_adjustment())); //Gtk::HScrollbar *time_scroll = manage(new class Gtk::HScrollbar(time_adjustment())); //TIME BAR TEMPORARY POSITION @@ -965,6 +966,7 @@ CanvasView::create_time_bar() //time_scroll-signal_value_changed().connect(sigc::mem_fun(*work_area, studio::WorkArea::render_preview_hook)); //time_scroll-set_update_policy(Gtk::UPDATE_DISCONTINUOUS); + //Setup the Animation Mode Button and the Keyframe Lock button NORMAL_BUTTON(animatebutton,gtk-yes,_(Animate)); animatebutton-signal_clicked().connect(sigc::mem_fun(*this, studio::CanvasView::on_animate_button_pressed)); animatebutton-show(); @@ -973,7 +975,7 @@ CanvasView::create_time_bar() keyframebutton-signal_clicked().connect(sigc::mem_fun(*this, studio::CanvasView::on_keyframe_button_pressed)); keyframebutton-show(); - //setup the audio display + //Setup the audio display disp_audio-set_size_request(-1,32); //disp_audio-show(); disp_audio-set_time_adjustment(time_adjustment()); disp_audio-signal_start_scrubbing().connect( @@ -985,7 +987,15 @@ CanvasView::create_time_bar() disp_audio-signal_stop_scrubbing().connect( sigc::mem_fun(*audio,AudioContainer::stop_scrubbing) ); + //Setup the current time widget + current_time_widget=manage(new Widget_Time); + current_time_widget-set_value(get_time()); + current_time_widget-set_fps(get_canvas()-rend_desc().get_frame_rate()); + current_time_widget-signal_value_changed().connect( + sigc::mem_fun(*this,CanvasView::on_current_time_widget_changed) + ); + //Setup the FrameDial widget FrameDial *framedial = manage(new class FrameDial()); framedial-signal_seek_begin().connect( sigc::bind(sigc::mem_fun(*canvas_interface().get(), synfigapp::CanvasInterface::seek_time), Time::begin()) @@ -1001,15 +1011,19 @@ CanvasView::create_time_bar() ); framedial-show(); - Gtk::Table *table = manage(new class Gtk::Table(4, 3, false)); + Gtk::Table *table = manage(new class Gtk::Table(4, 4, false)); timebar = table; - table-attach(*manage(disp_audio), 0, 1, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); - table-attach(*framedial, 0, 1, 1, 2,Gtk::SHRINK, Gtk::SHRINK); - table-attach(*timeslider, 1, 2, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); - table-attach(*time_window_scroll, 1, 2, 2, 3, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); - table-attach(*animatebutton, 2, 3, 0, 3, Gtk::SHRINK, Gtk::SHRINK); - table-attach(*keyframebutton, 3, 4, 0, 3, Gtk::SHRINK, Gtk::SHRINK); + //Attach widgets to the time bar table + table-attach(*manage(disp_audio), 1, 4, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); + table-attach(*framedial, 0, 1, 2, 3,Gtk::SHRINK, Gtk::SHRINK); + table-attach(*current_time_widget, 0, 1, 1, 2, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); + table-attach(*timeslider, 1, 4, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); + table-attach(*time_window_scroll, 1, 4, 2, 3, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); + table-attach(*animatebutton, 2, 3, 3, 4, Gtk::FILL, Gtk::SHRINK); + table-attach(*keyframebutton, 3, 4, 3, 4, Gtk::FILL, Gtk::SHRINK); + + table-show(); return table; @@ -1036,7 +1050,7 @@ CanvasView::create_status_bar() cancel=false; // Create the status bar at the bottom of the window - Gtk::Table *statusbartable= manage(new class Gtk::Table(7, 1, false)); + Gtk::Table *statusbartable= manage(new class Gtk::Table(5, 1, false)); // statusbar = manage(new class Gtk::Statusbar()); // This is already done at construction progressbar =manage(new class Gtk::ProgressBar()); SMALL_BUTTON(stopbutton,gtk-stop,_(Stop)); @@
[Synfig-devl] Carlos Lopez : Add Keyframe Dial initial layout
Module: synfig Branch: genete_master Commit: 7bca451a7f43f49570cefb2decbd4ef1bd711eea URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=7bca451a7f43f49570cefb2decbd4ef1bd711eea Author: Carlos Lopez car...@pcnuevo.(none) Date: Sun Jun 21 11:57:18 2009 +0200 Add Keyframe Dial initial layout --- synfig-studio/trunk/src/gtkmm/Makefile.am |6 +- synfig-studio/trunk/src/gtkmm/canvasview.cpp | 12 +++- synfig-studio/trunk/src/gtkmm/keyframedial.cpp | 77 synfig-studio/trunk/src/gtkmm/keyframedial.h | 70 + 4 files changed, 161 insertions(+), 4 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/Makefile.am b/synfig-studio/trunk/src/gtkmm/Makefile.am index 4742357..39acf8c 100644 --- a/synfig-studio/trunk/src/gtkmm/Makefile.am +++ b/synfig-studio/trunk/src/gtkmm/Makefile.am @@ -293,7 +293,8 @@ OTHER_HH = \ valuelink.h \ workarea.h \ zoomdial.h \ - framedial.h + framedial.h \ + keyframedial.h OTHER_CC = \ main.cpp \ @@ -324,7 +325,8 @@ OTHER_CC = \ valuelink.cpp \ workarea.cpp \ zoomdial.cpp \ - framedial.cpp + framedial.cpp \ + keyframedial.cpp INCLUDES = \ diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 23407b0..89bad1b 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -100,6 +100,7 @@ #include audiocontainer.h #include widget_timeslider.h #include framedial.h +#include keyframedial.h #include synfigapp/main.h #include synfigapp/inputdevice.h @@ -1011,6 +1012,12 @@ CanvasView::create_time_bar() ); framedial-show(); + //Setup the KeyFrameDial widget + KeyFrameDial *keyframedial = Gtk::manage(new class KeyFrameDial()); + keyframedial-signal_seek_prev_keyframe().connect(sigc::mem_fun(*canvas_interface().get(), synfigapp::CanvasInterface::jump_to_prev_keyframe)); + keyframedial-signal_seek_next_keyframe().connect(sigc::mem_fun(*canvas_interface().get(), synfigapp::CanvasInterface::jump_to_next_keyframe)); + keyframedial-show(); + Gtk::Table *table = manage(new class Gtk::Table(4, 4, false)); timebar = table; @@ -1020,8 +1027,9 @@ CanvasView::create_time_bar() table-attach(*current_time_widget, 0, 1, 1, 2, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); table-attach(*timeslider, 1, 4, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); table-attach(*time_window_scroll, 1, 4, 2, 3, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); - table-attach(*animatebutton, 2, 3, 3, 4, Gtk::FILL, Gtk::SHRINK); - table-attach(*keyframebutton, 3, 4, 3, 4, Gtk::FILL, Gtk::SHRINK); + table-attach(*keyframedial, 0, 1, 3, 4, Gtk::SHRINK, Gtk::SHRINK); + table-attach(*animatebutton, 2, 3, 3, 4, Gtk::SHRINK, Gtk::SHRINK); + table-attach(*keyframebutton, 1, 2, 3, 4, Gtk::SHRINK, Gtk::SHRINK); table-show(); diff --git a/synfig-studio/trunk/src/gtkmm/keyframedial.cpp b/synfig-studio/trunk/src/gtkmm/keyframedial.cpp new file mode 100644 index 000..ba60717 --- /dev/null +++ b/synfig-studio/trunk/src/gtkmm/keyframedial.cpp @@ -0,0 +1,77 @@ +/* === S Y N F I G = */ +/*!\file keyframedial.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2009 Gerco Ballintijn +** Copyright (c) 2009 Carlos Lopez +** +** 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. +** +** 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 +*/ +/* = */ + +/* === H E A D E R S === */ + +#ifdef USING_PCH +# include pch.h +#else +#ifdef HAVE_CONFIG_H +# include config.h +#endif + +#include keyframedial.h +#include gtkmm/image.h + +#endif + +/* === U S I N G === */ + +using namespace std; +using namespace studio; + +/* === M A C R O S = */ + +/* === G L O B A L S === */ + +/* === P R O C E D U R E S = */ + +/* === M E T H O D S
[Synfig-devl] Carlos Lopez : Reorder the code a bit and add some comments
Module: synfig Branch: genete_master Commit: cb8203d4a2196e403c959cc154e027cc269fca68 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=cb8203d4a2196e403c959cc154e027cc269fca68 Author: Carlos Lopez car...@pcnuevo.(none) Date: Mon Jun 22 19:05:34 2009 +0200 Reorder the code a bit and add some comments --- synfig-studio/trunk/src/gtkmm/canvasview.h | 17 +++-- 1 files changed, 11 insertions(+), 6 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.h b/synfig-studio/trunk/src/gtkmm/canvasview.h index 3b27e8b..6f1f87e 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.h +++ b/synfig-studio/trunk/src/gtkmm/canvasview.h @@ -258,20 +258,22 @@ private: Gtk::Button *stopbutton; Gtk::Button *refreshbutton; - Gtk::Button *treetogglebutton; - Gtk::Notebook *notebook; + Gtk::Button *treetogglebutton; // not used + Gtk::Notebook *notebook; // not used Gtk::Widget *timebar; + Gtk::Button *animatebutton; + Gtk::Button *keyframebutton; + + //! Shows current time and allows edition Widget_Time *current_time_widget; void on_current_time_widget_changed(); - std::auto_ptrWidget_Timeslidertimeslider; + //! Time slider class. Same than the Time track panel + std::auto_ptrWidget_Timeslider timeslider; std::listsigc::connection duck_changed_connections; - Gtk::Button *animatebutton; - Gtk::Button *keyframebutton; - /* DEBUGPOINT_CLASS(8); Gtk::Menu duckmaskmenu; @@ -308,6 +310,7 @@ private: Gtk::CheckMenuItem* duck_mask_width; Gtk::CheckMenuItem* duck_mask_angle; */ + //! Menu members Gtk::Menu parammenu; Glib::RefPtrGtk::ToggleAction grid_snap_toggle; @@ -400,9 +403,11 @@ private: Gtk::Widget *create_time_bar(); + //! Pop up menu for the bezier (bline, draw) tool (?) void popup_param_menu_bezier(float location, synfigapp::ValueDesc value_desc) { popup_param_menu(value_desc,location,true); } + //! Pop up menu for the tools but not the bezier ones. void popup_param_menu(synfigapp::ValueDesc value_desc, float location=0, bool bezier=false); void workarea_layer_selected(synfig::Layer::Handle layer); -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Moved keyframedial to the first row as well as the animate button
Module: synfig Branch: genete_master Commit: f95ea50783dff336317c7a4fe381a97c45adc6b8 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=f95ea50783dff336317c7a4fe381a97c45adc6b8 Author: Carlos Lopez car...@pcnuevo.(none) Date: Mon Jun 22 01:11:15 2009 +0200 Moved keyframedial to the first row as well as the animate button to save space. Added tooltip to the Current time --- synfig-studio/trunk/src/gtkmm/canvasview.cpp | 13 +++-- 1 files changed, 7 insertions(+), 6 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index b3e243f..32530cd 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -993,6 +993,7 @@ CanvasView::create_time_bar() sigc::mem_fun(*this,CanvasView::on_current_time_widget_changed) ); current_time_widget-set_size_request(0,-1); // request horizontal shrink + tooltips.set_tip(*current_time_widget,_(Current time)); current_time_widget-show(); //Setup the FrameDial widget @@ -1019,17 +1020,17 @@ CanvasView::create_time_bar() keyframedial-show(); keyframebutton=keyframedial-get_lock_button(); - Gtk::Table *table = manage(new class Gtk::Table(4, 4, false)); + Gtk::Table *table = manage(new class Gtk::Table(5, 3, false)); timebar = table; //Attach widgets to the time bar table - table-attach(*manage(disp_audio), 1, 4, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); + table-attach(*manage(disp_audio), 1, 5, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); table-attach(*framedial, 0, 1, 2, 3,Gtk::SHRINK, Gtk::SHRINK); table-attach(*current_time_widget, 0, 1, 1, 2, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); - table-attach(*timeslider, 1, 4, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); - table-attach(*time_window_scroll, 1, 4, 2, 3, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); - table-attach(*keyframedial, 0, 1, 3, 4, Gtk::SHRINK, Gtk::SHRINK); - table-attach(*animatebutton, 2, 3, 3, 4, Gtk::SHRINK, Gtk::SHRINK); + table-attach(*timeslider, 1, 3, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); + table-attach(*time_window_scroll, 1, 3, 2, 3, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); + table-attach(*keyframedial, 3, 4, 1, 2, Gtk::SHRINK, Gtk::SHRINK); + table-attach(*animatebutton, 4, 5, 1, 2, Gtk::SHRINK, Gtk::SHRINK); //table-attach(*keyframebutton, 1, 2, 3, 4, Gtk::SHRINK, Gtk::SHRINK); -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Add Play/Stop button to the Frame Dial.
Module: synfig Branch: genete_master Commit: 44a6e894eaa7af4bcebb7c317a303f547878e01c URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=44a6e894eaa7af4bcebb7c317a303f547878e01c Author: Carlos Lopez car...@pcnuevo.(none) Date: Mon Jun 22 20:08:36 2009 +0200 Add Play/Stop button to the Frame Dial. --- synfig-studio/trunk/src/gtkmm/canvasview.cpp | 35 +++-- synfig-studio/trunk/src/gtkmm/canvasview.h |4 +++ synfig-studio/trunk/src/gtkmm/framedial.cpp |9 -- synfig-studio/trunk/src/gtkmm/framedial.h| 12 ++--- 4 files changed, 50 insertions(+), 10 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 32530cd..7c3aa0a 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -99,7 +99,6 @@ #include preview.h #include audiocontainer.h #include widget_timeslider.h -#include framedial.h #include keyframedial.h #include synfigapp/main.h @@ -997,13 +996,16 @@ CanvasView::create_time_bar() current_time_widget-show(); //Setup the FrameDial widget - FrameDial *framedial = manage(new class FrameDial()); + framedial = manage(new class FrameDial()); framedial-signal_seek_begin().connect( sigc::bind(sigc::mem_fun(*canvas_interface().get(), synfigapp::CanvasInterface::seek_time), Time::begin()) ); framedial-signal_seek_prev_frame().connect( sigc::bind(sigc::mem_fun(*canvas_interface().get(), synfigapp::CanvasInterface::seek_frame), -1) ); + framedial-signal_play_stop().connect( + sigc::mem_fun(*this, studio::CanvasView::on_play_stop_pressed) + ); framedial-signal_seek_next_frame().connect( sigc::bind(sigc::mem_fun(*canvas_interface().get(), synfigapp::CanvasInterface::seek_frame), 1) ); @@ -3154,8 +3156,8 @@ CanvasView::play() return; } } + on_play_stop_pressed(); is_playing_=false; - time_adjustment().set_value(endtime); time_adjustment().value_changed(); } @@ -3919,3 +3921,30 @@ CanvasView::on_delete_event(GdkEventAny* event __attribute__ ((unused))) return true; } + +//! Modify the play stop button apearence and play stop the animation +void +CanvasView::on_play_stop_pressed() +{ + Gtk::Image *icon; + Gtk::Button *stop_button; + stop_button=framedial-get_play_button(); + bool play_flag; + if(!is_playing()) + { + icon = manage(new Gtk::Image(Gtk::Stock::MEDIA_STOP, Gtk::IconSize::from_name(synfig-small_icon))); + stop_button-set_relief(Gtk::RELIEF_NORMAL); + play_flag=true; + } + else + { + icon = manage(new Gtk::Image(Gtk::Stock::MEDIA_PLAY, Gtk::IconSize::from_name(synfig-small_icon))); + stop_button-set_relief(Gtk::RELIEF_NONE); + play_flag=false; + } + stop_button-remove(); + stop_button-add(*icon); + icon-set_padding(0, 0); + icon-show(); + if(play_flag) play(); else stop(); +} diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.h b/synfig-studio/trunk/src/gtkmm/canvasview.h index 6f1f87e..844a57f 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.h +++ b/synfig-studio/trunk/src/gtkmm/canvasview.h @@ -65,6 +65,7 @@ #include dialog_waypoint.h #include dialog_keyframe.h +#include framedial.h #include duckmatic.h #include gtkmm/scale.h @@ -263,6 +264,7 @@ private: Gtk::Widget *timebar; Gtk::Button *animatebutton; Gtk::Button *keyframebutton; + FrameDial *framedial; //! Shows current time and allows edition @@ -679,6 +681,8 @@ private: //void on_audio_play(); bool on_audio_scrub(); + void on_play_stop_pressed(); + protected: bool close_instance_when_safe(); bool on_delete_event(GdkEventAny* event); diff --git a/synfig-studio/trunk/src/gtkmm/framedial.cpp b/synfig-studio/trunk/src/gtkmm/framedial.cpp index a361bd3..0392f4b 100644 --- a/synfig-studio/trunk/src/gtkmm/framedial.cpp +++ b/synfig-studio/trunk/src/gtkmm/framedial.cpp @@ -49,7 +49,7 @@ using namespace studio; /* === M E T H O D S === */ -FrameDial::FrameDial(): Gtk::Table(3, 1, false) +FrameDial::FrameDial(): Gtk::Table(5, 1, false) { Gtk::IconSize iconsize = Gtk::IconSize::from_name(synfig-small_icon); @@ -57,6 +57,8 @@ FrameDial::FrameDial(): Gtk::Table(3, 1, false) _(Seek to Begin)); seek_prev_frame = create_icon(iconsize, Gtk::Stock::MEDIA_REWIND, _(Previous Frame)); + play_stop = create_icon(iconsize, Gtk::Stock::MEDIA_PLAY, +
[Synfig-devl] unknown : Test commit - please feel free ro revert
Module: synfig Branch: genete_master Commit: 1fbe1b247f7b91cac58809c30fc92543e7ed363e URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=1fbe1b247f7b91cac58809c30fc92543e7ed363e Author: unknown ch...@.(none) Date: Fri Jul 3 19:50:46 2009 -0700 Test commit - please feel free ro revert Signed-off-by: pxe.g...@gmail.com --- synfig-studio/trunk/test.txt |1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/synfig-studio/trunk/test.txt b/synfig-studio/trunk/test.txt new file mode 100644 index 000..1c999d2 --- /dev/null +++ b/synfig-studio/trunk/test.txt @@ -0,0 +1 @@ +Deleteme... Just checking Git commit \ No newline at end of file -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Remove unneeded member call.
Module: synfig Branch: genete_master Commit: 71deecdc651fe51c2c6a930502d86db2871f7a1c URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=71deecdc651fe51c2c6a930502d86db2871f7a1c Author: Carlos Lopez car...@pcnuevo.(none) Date: Mon Jun 22 21:02:42 2009 +0200 Remove unneeded member call. --- synfig-studio/trunk/src/gtkmm/canvasview.cpp |1 - 1 files changed, 0 insertions(+), 1 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 7c3aa0a..0b532cd 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -951,7 +951,6 @@ CanvasView::create_time_bar() //Gtk::HScrollbar *time_scroll = manage(new class Gtk::HScrollbar(time_adjustment())); //TIME BAR TEMPORARY POSITION //Widget_Timeslider *time_scroll = manage(new Widget_Timeslider); - timeslider-show(); timeslider-set_time_adjustment(time_adjustment()); timeslider-set_bounds_adjustment(time_window_adjustment()); //layout_table-attach(*timeslider, 0, 1, 2, 3, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL); -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Comment a line that produced a bad render of the HScroll and seems to do nothing special .
Module: synfig Branch: genete_master Commit: b53b886325d6dff458e1e30b5d9469728e9af076 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=b53b886325d6dff458e1e30b5d9469728e9af076 Author: Carlos Lopez car...@pcnuevo.(none) Date: Mon Jun 22 21:54:01 2009 +0200 Comment a line that produced a bad render of the HScroll and seems to do nothing special. --- synfig-studio/trunk/src/gtkmm/canvasview.cpp |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 0b532cd..76437b9 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -959,7 +959,7 @@ CanvasView::create_time_bar() tooltips.set_tip(*timeslider,_(Changes the current time)); time_window_scroll-show(); timeslider-show(); - time_window_scroll-set_flags(Gtk::CAN_FOCUS); + //time_window_scroll-set_flags(Gtk::CAN_FOCUS); // Uncomment this produce bad render of the HScroll timeslider-set_flags(Gtk::CAN_FOCUS); //time_scroll-signal_value_changed().connect(sigc::mem_fun(*work_area, studio::WorkArea::render_preview_hook)); -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Move Lock keyframe button to the KeyFrameDial
Module: synfig Branch: genete_master Commit: 5aa08267da13439daab566f02fb3a20104511752 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=5aa08267da13439daab566f02fb3a20104511752 Author: Carlos Lopez car...@pcnuevo.(none) Date: Sun Jun 21 12:45:00 2009 +0200 Move Lock keyframe button to the KeyFrameDial --- synfig-studio/trunk/src/gtkmm/canvasview.cpp | 12 synfig-studio/trunk/src/gtkmm/keyframedial.cpp |4 +++- synfig-studio/trunk/src/gtkmm/keyframedial.h |3 +++ 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 89bad1b..7223410 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -968,14 +968,16 @@ CanvasView::create_time_bar() //time_scroll-set_update_policy(Gtk::UPDATE_DISCONTINUOUS); //Setup the Animation Mode Button and the Keyframe Lock button - NORMAL_BUTTON(animatebutton,gtk-yes,_(Animate)); + Gtk::IconSize iconsize=Gtk::IconSize::from_name(synfig-small_icon); + SMALL_BUTTON(animatebutton,gtk-yes,_(Animate)); animatebutton-signal_clicked().connect(sigc::mem_fun(*this, studio::CanvasView::on_animate_button_pressed)); animatebutton-show(); - +/* NORMAL_BUTTON(keyframebutton,synfig-keyframe_lock_all,_(All Keyframes Locked)); keyframebutton-signal_clicked().connect(sigc::mem_fun(*this, studio::CanvasView::on_keyframe_button_pressed)); keyframebutton-show(); - + keyframebutton-set_relief(Gtk::RELIEF_NONE); +*/ //Setup the audio display disp_audio-set_size_request(-1,32); //disp_audio-show(); disp_audio-set_time_adjustment(time_adjustment()); @@ -1016,7 +1018,9 @@ CanvasView::create_time_bar() KeyFrameDial *keyframedial = Gtk::manage(new class KeyFrameDial()); keyframedial-signal_seek_prev_keyframe().connect(sigc::mem_fun(*canvas_interface().get(), synfigapp::CanvasInterface::jump_to_prev_keyframe)); keyframedial-signal_seek_next_keyframe().connect(sigc::mem_fun(*canvas_interface().get(), synfigapp::CanvasInterface::jump_to_next_keyframe)); + keyframedial-signal_lock_keyframe().connect(sigc::mem_fun(*this, studio::CanvasView::on_keyframe_button_pressed)); keyframedial-show(); + keyframebutton=keyframedial-get_lock_button(); Gtk::Table *table = manage(new class Gtk::Table(4, 4, false)); timebar = table; @@ -1029,7 +1033,7 @@ CanvasView::create_time_bar() table-attach(*time_window_scroll, 1, 4, 2, 3, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); table-attach(*keyframedial, 0, 1, 3, 4, Gtk::SHRINK, Gtk::SHRINK); table-attach(*animatebutton, 2, 3, 3, 4, Gtk::SHRINK, Gtk::SHRINK); - table-attach(*keyframebutton, 1, 2, 3, 4, Gtk::SHRINK, Gtk::SHRINK); + //table-attach(*keyframebutton, 1, 2, 3, 4, Gtk::SHRINK, Gtk::SHRINK); table-show(); diff --git a/synfig-studio/trunk/src/gtkmm/keyframedial.cpp b/synfig-studio/trunk/src/gtkmm/keyframedial.cpp index ba60717..a9bf328 100644 --- a/synfig-studio/trunk/src/gtkmm/keyframedial.cpp +++ b/synfig-studio/trunk/src/gtkmm/keyframedial.cpp @@ -49,15 +49,17 @@ using namespace studio; /* === M E T H O D S === */ -KeyFrameDial::KeyFrameDial(): Gtk::Table(1, 2, false) +KeyFrameDial::KeyFrameDial(): Gtk::Table(1, 3, false) { Gtk::IconSize iconsize = Gtk::IconSize::from_name(synfig-small_icon); seek_prev_keyframe = create_icon(iconsize, GTK_STOCK_GO_BACK, _(Previous KeyFrame)); seek_next_keyframe = create_icon(iconsize, GTK_STOCK_GO_FORWARD, _(Next KeyFrame)); + lock_keyframe = create_icon(Gtk::ICON_SIZE_BUTTON, synfig-keyframe_lock_all,_(All Keyframes Locked)); attach(*seek_prev_keyframe, 0, 1, 0, 1, Gtk::SHRINK, Gtk::SHRINK, 0, 0); attach(*seek_next_keyframe, 1, 2, 0, 1, Gtk::SHRINK, Gtk::SHRINK, 0, 0); + attach(*lock_keyframe, 2, 3, 0, 1, Gtk::SHRINK, Gtk::SHRINK, 0, 0); } Gtk::Button * diff --git a/synfig-studio/trunk/src/gtkmm/keyframedial.h b/synfig-studio/trunk/src/gtkmm/keyframedial.h index 6636590..41dfc57 100644 --- a/synfig-studio/trunk/src/gtkmm/keyframedial.h +++ b/synfig-studio/trunk/src/gtkmm/keyframedial.h @@ -51,6 +51,7 @@ class KeyFrameDial : public Gtk::Table Gtk::Button *seek_prev_keyframe; Gtk::Button *seek_next_keyframe; + Gtk::Button *lock_keyframe; Gtk::Button *create_icon(Gtk::IconSize iconsize, const char * stockid, const char * tooltip); @@ -59,6 +60,8 @@ public: KeyFrameDial(); Glib::SignalProxy0void signal_seek_prev_keyframe() { return seek_prev_keyframe-signal_clicked(); } Glib::SignalProxy0void signal_seek_next_keyframe() { return seek_next_keyframe-signal_clicked(); } + Glib::SignalProxy0void signal_lock_keyframe()
[Synfig-devl] Carlos Lopez : Show the current_time_widget in the proper function and request minimum horizontal size
Module: synfig Branch: genete_master Commit: 13dbd5e744738bc01ec52e030aa05b76c6099b21 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=13dbd5e744738bc01ec52e030aa05b76c6099b21 Author: Carlos Lopez car...@pcnuevo.(none) Date: Mon Jun 22 00:42:37 2009 +0200 Show the current_time_widget in the proper function and request minimum horizontal size --- synfig-studio/trunk/src/gtkmm/canvasview.cpp |4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index d877e6d..b3e243f 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -992,6 +992,8 @@ CanvasView::create_time_bar() current_time_widget-signal_value_changed().connect( sigc::mem_fun(*this,CanvasView::on_current_time_widget_changed) ); + current_time_widget-set_size_request(0,-1); // request horizontal shrink + current_time_widget-show(); //Setup the FrameDial widget FrameDial *framedial = manage(new class FrameDial()); @@ -3209,7 +3211,7 @@ void CanvasView::show_timebar() { timebar-show(); - current_time_widget-show(); + //current_time_widget-show(); // not needed now that belongs to the timebar //keyframe_tab_child-show(); if(layer_tree) -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Use Gtkmm stock items instead of Gtk ones for Keyframe Dial buttons.
Module: synfig Branch: genete_master Commit: 38134c93640054cbf5a92f778c0cedb3fa7b4733 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=38134c93640054cbf5a92f778c0cedb3fa7b4733 Author: Carlos Lopez car...@pcnuevo.(none) Date: Tue Jun 23 16:27:06 2009 +0200 Use Gtkmm stock items instead of Gtk ones for Keyframe Dial buttons. --- synfig-studio/trunk/src/gtkmm/keyframedial.cpp | 21 +++-- synfig-studio/trunk/src/gtkmm/keyframedial.h |1 + 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/keyframedial.cpp b/synfig-studio/trunk/src/gtkmm/keyframedial.cpp index a9bf328..c7b5c56 100644 --- a/synfig-studio/trunk/src/gtkmm/keyframedial.cpp +++ b/synfig-studio/trunk/src/gtkmm/keyframedial.cpp @@ -33,6 +33,7 @@ #include keyframedial.h #include gtkmm/image.h +#include gtkmm/stock.h #endif @@ -53,8 +54,8 @@ KeyFrameDial::KeyFrameDial(): Gtk::Table(1, 3, false) { Gtk::IconSize iconsize = Gtk::IconSize::from_name(synfig-small_icon); - seek_prev_keyframe = create_icon(iconsize, GTK_STOCK_GO_BACK, _(Previous KeyFrame)); - seek_next_keyframe = create_icon(iconsize, GTK_STOCK_GO_FORWARD, _(Next KeyFrame)); + seek_prev_keyframe = create_icon(iconsize, Gtk::Stock::GO_BACK, _(Previous KeyFrame)); + seek_next_keyframe = create_icon(iconsize, Gtk::Stock::GO_FORWARD, _(Next KeyFrame)); lock_keyframe = create_icon(Gtk::ICON_SIZE_BUTTON, synfig-keyframe_lock_all,_(All Keyframes Locked)); attach(*seek_prev_keyframe, 0, 1, 0, 1, Gtk::SHRINK, Gtk::SHRINK, 0, 0); @@ -77,3 +78,19 @@ KeyFrameDial::create_icon(Gtk::IconSize iconsize, const char * stockid, return button; } + +Gtk::Button * +KeyFrameDial::create_icon(Gtk::IconSize iconsize, const Gtk::BuiltinStockID stockid, + const char * tooltip) +{ + Gtk::Button *button = manage(new class Gtk::Button()); + Gtk::Image *icon = manage(new Gtk::Image(stockid, iconsize)); + button-add(*icon); + tooltips.set_tip(*button, tooltip); + icon-set_padding(0, 0); + icon-show(); + button-set_relief(Gtk::RELIEF_NONE); + button-show(); + + return button; +} diff --git a/synfig-studio/trunk/src/gtkmm/keyframedial.h b/synfig-studio/trunk/src/gtkmm/keyframedial.h index 41dfc57..a6491c9 100644 --- a/synfig-studio/trunk/src/gtkmm/keyframedial.h +++ b/synfig-studio/trunk/src/gtkmm/keyframedial.h @@ -54,6 +54,7 @@ class KeyFrameDial : public Gtk::Table Gtk::Button *lock_keyframe; Gtk::Button *create_icon(Gtk::IconSize iconsize, const char * stockid, const char * tooltip); + Gtk::Button *create_icon(Gtk::IconSize iconsize, const Gtk::BuiltinStockID stockid, const char * tooltip); public: -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Add Resolution Dial widget. Synchronise Low res check button with low res action and vice-versa. Also Increase/ Decrease resolution buttons change low res check button sta
Module: synfig Branch: genete_master Commit: 3a2a20f4d04c9a1791b6e1997e75d729326a422b URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=3a2a20f4d04c9a1791b6e1997e75d729326a422b Author: Carlos Lopez car...@pcnuevo.(none) Date: Sun Jun 28 15:05:28 2009 +0200 Add Resolution Dial widget. Synchronise Low res check button with low res action and vice-versa.Also Increase/Decrease resolution buttons change low res check button status and low res action. --- synfig-studio/trunk/src/gtkmm/Makefile.am|6 +- synfig-studio/trunk/src/gtkmm/canvasview.cpp | 60 +- synfig-studio/trunk/src/gtkmm/canvasview.h |4 + synfig-studio/trunk/src/gtkmm/resolutiondial.cpp | 97 ++ synfig-studio/trunk/src/gtkmm/resolutiondial.h | 77 + 5 files changed, 239 insertions(+), 5 deletions(-) Diff: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commitdiff;h=3a2a20f4d04c9a1791b6e1997e75d729326a422b -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Use Toggle buttons instead of Buttons for toggle ducks.
Module: synfig Branch: genete_master Commit: aa4b17d5d7bdbe76278ea25df74873007aaca852 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=aa4b17d5d7bdbe76278ea25df74873007aaca852 Author: Carlos Lopez car...@pcnuevo.(none) Date: Wed Jun 24 23:01:35 2009 +0200 Use Toggle buttons instead of Buttons for toggle ducks. --- synfig-studio/trunk/src/gtkmm/canvasview.cpp |8 + synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp | 14 synfig-studio/trunk/src/gtkmm/toggleducksdial.h | 35 3 files changed, 36 insertions(+), 21 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index caeb737..72ce50a 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -1024,6 +1024,14 @@ CanvasView::create_time_bar() // Setup the ToggleDuckDial widget ToggleDucksDial *toggleducksdial = Gtk::manage(new class ToggleDucksDial()); + + toggleducksdial-get_position_toggle()- set_active(work_area-get_type_mask()Duck::TYPE_POSITION); + toggleducksdial-get_vertex_toggle() - set_active(work_area-get_type_mask()Duck::TYPE_VERTEX); + toggleducksdial-get_tangent_toggle() - set_active(work_area-get_type_mask()Duck::TYPE_TANGENT); + toggleducksdial-get_radius_toggle() - set_active(work_area-get_type_mask()Duck::TYPE_RADIUS); + toggleducksdial-get_width_toggle() - set_active(work_area-get_type_mask()Duck::TYPE_WIDTH); + toggleducksdial-get_angle_toggle() - set_active(work_area-get_type_mask()Duck::TYPE_ANGLE); + toggleducksdial-signal_ducks_position().connect( sigc::bind(sigc::mem_fun(*this, studio::CanvasView::toggle_duck_mask),Duck::TYPE_POSITION) ); diff --git a/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp b/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp index b23acde..78aeab5 100644 --- a/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp +++ b/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp @@ -69,15 +69,15 @@ ToggleDucksDial::ToggleDucksDial(): Gtk::Table(1, 6, false) attach(*ducks_angle, 5, 6, 0, 1, Gtk::SHRINK, Gtk::SHRINK, 0, 0); } -Gtk::Button * +Gtk::ToggleButton * ToggleDucksDial::create_label_button(Gtk::IconSize iconsize, const char *label, const char * tooltip) { - Gtk::Button *button = manage(new class Gtk::Button()); - button-set_label(label); - tooltips.set_tip(*button, tooltip); - button-set_relief(Gtk::RELIEF_NONE); - button-show(); + Gtk::ToggleButton *tbutton = manage(new class Gtk::ToggleButton()); + tbutton-set_label(label); + tooltips.set_tip(*tbutton, tooltip); + //tbutton-set_relief(Gtk::RELIEF_NONE); + tbutton-show(); - return button; + return tbutton; } diff --git a/synfig-studio/trunk/src/gtkmm/toggleducksdial.h b/synfig-studio/trunk/src/gtkmm/toggleducksdial.h index 510806f..d2e50f2 100644 --- a/synfig-studio/trunk/src/gtkmm/toggleducksdial.h +++ b/synfig-studio/trunk/src/gtkmm/toggleducksdial.h @@ -32,7 +32,7 @@ #include gtkmm/tooltips.h #include gtkmm/table.h -#include gtkmm/button.h +#include gtkmm/togglebutton.h #include general.h @@ -49,24 +49,31 @@ class ToggleDucksDial : public Gtk::Table { Gtk::Tooltips tooltips; - Gtk::Button *ducks_position; - Gtk::Button *ducks_vertex; - Gtk::Button *ducks_tangent; - Gtk::Button *ducks_radius; - Gtk::Button *ducks_width; - Gtk::Button *ducks_angle; + Gtk::ToggleButton *ducks_position; + Gtk::ToggleButton *ducks_vertex; + Gtk::ToggleButton *ducks_tangent; + Gtk::ToggleButton *ducks_radius; + Gtk::ToggleButton *ducks_width; + Gtk::ToggleButton *ducks_angle; - Gtk::Button *create_label_button(Gtk::IconSize iconsize, const char * label, const char * tooltip); + Gtk::ToggleButton *create_label_button(Gtk::IconSize iconsize, const char * label, const char * tooltip); public: ToggleDucksDial(); - Glib::SignalProxy0void signal_ducks_position() { return ducks_position-signal_clicked(); } - Glib::SignalProxy0void signal_ducks_vertex() { return ducks_vertex-signal_clicked(); } - Glib::SignalProxy0void signal_ducks_tangent() { return ducks_tangent-signal_clicked(); } - Glib::SignalProxy0void signal_ducks_radius() { return ducks_radius-signal_clicked(); } - Glib::SignalProxy0void signal_ducks_width() { return ducks_width-signal_clicked(); } - Glib::SignalProxy0void signal_ducks_angle() { return ducks_angle-signal_clicked(); } + Glib::SignalProxy0void signal_ducks_position() { return ducks_position-signal_toggled(); } + Glib::SignalProxy0void signal_ducks_vertex(){ return ducks_vertex- signal_toggled(); } + Glib::SignalProxy0void signal_ducks_tangent() {
[Synfig-devl] Carlos Lopez : Change toggle duck icons from numbers to duck icon images.
Module: synfig Branch: genete_master Commit: df3517cbedbb486c3b092f765fe1019649005b73 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=df3517cbedbb486c3b092f765fe1019649005b73 Author: Carlos Lopez car...@pcnuevo.(none) Date: Sun Jun 28 17:39:35 2009 +0200 Change toggle duck icons from numbers to duck icon images. --- synfig-studio/trunk/images/Makefile.am| 17 +- synfig-studio/trunk/images/duck_angle_icon.sif| 432 +++ synfig-studio/trunk/images/duck_position_icon.sif | 432 +++ synfig-studio/trunk/images/duck_radius_icon.sif | 432 +++ synfig-studio/trunk/images/duck_tangent_icon.sif | 853 + synfig-studio/trunk/images/duck_vertex_icon.sif | 432 +++ synfig-studio/trunk/images/duck_width_icon.sif| 432 +++ synfig-studio/trunk/src/gtkmm/iconcontroller.cpp |7 + synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp | 20 +- synfig-studio/trunk/src/gtkmm/toggleducksdial.h |2 +- 10 files changed, 3046 insertions(+), 13 deletions(-) Diff: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commitdiff;h=df3517cbedbb486c3b092f765fe1019649005b73 -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Keep correct size on the animate button after pressed.
Module: synfig Branch: genete_master Commit: a0bdff4fab72eaaf8b719295229ef4e7162a0009 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=a0bdff4fab72eaaf8b719295229ef4e7162a0009 Author: Carlos Lopez car...@pcnuevo.(none) Date: Mon Jun 22 22:18:29 2009 +0200 Keep correct size on the animate button after pressed. --- synfig-studio/trunk/src/gtkmm/canvasview.cpp |5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 76437b9..a3c42cc 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -2580,10 +2580,11 @@ void CanvasView::on_mode_changed(synfigapp::CanvasInterface::Mode mode) { // If the animate flag was set in mode... + Gtk::IconSize iconsize=Gtk::IconSize::from_name(synfig-small_icon); if(modesynfigapp::MODE_ANIMATE) { Gtk::Image *icon; - icon=manage(new Gtk::Image(Gtk::StockID(gtk-no),Gtk::ICON_SIZE_BUTTON)); + icon=manage(new Gtk::Image(Gtk::StockID(gtk-no),iconsize)); animatebutton-remove(); animatebutton-add(*icon); tooltips.set_tip(*animatebutton,_(In Animate Editing Mode)); @@ -2593,7 +2594,7 @@ CanvasView::on_mode_changed(synfigapp::CanvasInterface::Mode mode) else { Gtk::Image *icon; - icon=manage(new Gtk::Image(Gtk::StockID(gtk-yes),Gtk::ICON_SIZE_BUTTON)); + icon=manage(new Gtk::Image(Gtk::StockID(gtk-yes),iconsize)); animatebutton-remove(); animatebutton-add(*icon); tooltips.set_tip(*animatebutton,_(Not in Animate Editing Mode)); -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Deprecate intermediate Gtk::Table variable 'table'. Not needed.
Module: synfig Branch: genete_master Commit: 37e70ada40533e1d3a623c5ebb560d7e88f83809 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=37e70ada40533e1d3a623c5ebb560d7e88f83809 Author: Carlos Lopez car...@pcnuevo.(none) Date: Wed Jun 24 22:24:31 2009 +0200 Deprecate intermediate Gtk::Table variable 'table'. Not needed. --- synfig-studio/trunk/src/gtkmm/canvasview.cpp | 27 - synfig-studio/trunk/src/gtkmm/canvasview.h |2 +- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 64bf34a..caeb737 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -1044,24 +1044,23 @@ CanvasView::create_time_bar() ); toggleducksdial-show(); - Gtk::Table *table = manage(new class Gtk::Table(5, 4, false)); - timebar = table; + timebar = manage(new class Gtk::Table(5, 4, false)); - //Attach widgets to the time bar table - table-attach(*manage(disp_audio), 1, 5, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); - table-attach(*framedial, 0, 1, 2, 3,Gtk::SHRINK, Gtk::SHRINK); - table-attach(*current_time_widget, 0, 1, 1, 2, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); - table-attach(*timeslider, 1, 3, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); - table-attach(*time_window_scroll, 1, 3, 2, 3, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); - table-attach(*keyframedial, 3, 4, 1, 2, Gtk::SHRINK, Gtk::SHRINK); - table-attach(*animatebutton, 4, 5, 1, 2, Gtk::SHRINK, Gtk::SHRINK); - //table-attach(*keyframebutton, 1, 2, 3, 4, Gtk::SHRINK, Gtk::SHRINK); - table-attach(*toggleducksdial, 0, 5, 0, 1, Gtk::SHRINK, Gtk::SHRINK); + //Attach widgets to the timebar + timebar-attach(*manage(disp_audio), 1, 5, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); + timebar-attach(*framedial, 0, 1, 2, 3,Gtk::SHRINK, Gtk::SHRINK); + timebar-attach(*current_time_widget, 0, 1, 1, 2, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); + timebar-attach(*timeslider, 1, 3, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); + timebar-attach(*time_window_scroll, 1, 3, 2, 3, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); + timebar-attach(*keyframedial, 3, 4, 1, 2, Gtk::SHRINK, Gtk::SHRINK); + timebar-attach(*animatebutton, 4, 5, 1, 2, Gtk::SHRINK, Gtk::SHRINK); + //timebar-attach(*keyframebutton, 1, 2, 3, 4, Gtk::SHRINK, Gtk::SHRINK); + timebar-attach(*toggleducksdial, 0, 5, 0, 1, Gtk::SHRINK, Gtk::SHRINK); - table-show(); + timebar-show(); - return table; + return timebar; } Gtk::Widget * diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.h b/synfig-studio/trunk/src/gtkmm/canvasview.h index 844a57f..2ed261e 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.h +++ b/synfig-studio/trunk/src/gtkmm/canvasview.h @@ -261,7 +261,7 @@ private: Gtk::Button *refreshbutton; Gtk::Button *treetogglebutton; // not used Gtk::Notebook *notebook; // not used - Gtk::Widget *timebar; + Gtk::Table *timebar; Gtk::Button *animatebutton; Gtk::Button *keyframebutton; FrameDial *framedial; -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Initial trial of toggle ducks dial. Needs re factoring to toggle buttons and place them in the top of the window .
Module: synfig Branch: genete_master Commit: c09ee2ffb936c48edffbce2f86813a72592f724b URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=c09ee2ffb936c48edffbce2f86813a72592f724b Author: Carlos Lopez car...@pcnuevo.(none) Date: Wed Jun 24 00:26:45 2009 +0200 Initial trial of toggle ducks dial. Needs re factoring to toggle buttons and place them in the top of the window. --- synfig-studio/trunk/src/gtkmm/Makefile.am |7 +- synfig-studio/trunk/src/gtkmm/canvasview.cpp | 26 ++- synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp | 83 + synfig-studio/trunk/src/gtkmm/toggleducksdial.h | 78 +++ 4 files changed, 190 insertions(+), 4 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/Makefile.am b/synfig-studio/trunk/src/gtkmm/Makefile.am index 39acf8c..42cdd55 100644 --- a/synfig-studio/trunk/src/gtkmm/Makefile.am +++ b/synfig-studio/trunk/src/gtkmm/Makefile.am @@ -294,7 +294,8 @@ OTHER_HH = \ workarea.h \ zoomdial.h \ framedial.h \ - keyframedial.h + keyframedial.h \ + toggleducksdial.h OTHER_CC = \ main.cpp \ @@ -326,8 +327,8 @@ OTHER_CC = \ workarea.cpp \ zoomdial.cpp \ framedial.cpp \ - keyframedial.cpp - + keyframedial.cpp \ + toggleducksdial.cpp INCLUDES = \ -I$(top_srcdir)/src diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index a3c42cc..64bf34a 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -100,6 +100,7 @@ #include audiocontainer.h #include widget_timeslider.h #include keyframedial.h +#include toggleducksdial.h #include synfigapp/main.h #include synfigapp/inputdevice.h @@ -1021,7 +1022,29 @@ CanvasView::create_time_bar() keyframedial-show(); keyframebutton=keyframedial-get_lock_button(); - Gtk::Table *table = manage(new class Gtk::Table(5, 3, false)); + // Setup the ToggleDuckDial widget + ToggleDucksDial *toggleducksdial = Gtk::manage(new class ToggleDucksDial()); + toggleducksdial-signal_ducks_position().connect( + sigc::bind(sigc::mem_fun(*this, studio::CanvasView::toggle_duck_mask),Duck::TYPE_POSITION) + ); + toggleducksdial-signal_ducks_vertex().connect( + sigc::bind(sigc::mem_fun(*this, studio::CanvasView::toggle_duck_mask),Duck::TYPE_VERTEX) + ); + toggleducksdial-signal_ducks_tangent().connect( + sigc::bind(sigc::mem_fun(*this, studio::CanvasView::toggle_duck_mask),Duck::TYPE_TANGENT) + ); + toggleducksdial-signal_ducks_radius().connect( + sigc::bind(sigc::mem_fun(*this, studio::CanvasView::toggle_duck_mask),Duck::TYPE_RADIUS) + ); + toggleducksdial-signal_ducks_width().connect( + sigc::bind(sigc::mem_fun(*this, studio::CanvasView::toggle_duck_mask),Duck::TYPE_WIDTH) + ); + toggleducksdial-signal_ducks_angle().connect( + sigc::bind(sigc::mem_fun(*this, studio::CanvasView::toggle_duck_mask),Duck::TYPE_ANGLE) + ); + toggleducksdial-show(); + + Gtk::Table *table = manage(new class Gtk::Table(5, 4, false)); timebar = table; //Attach widgets to the time bar table @@ -1033,6 +1056,7 @@ CanvasView::create_time_bar() table-attach(*keyframedial, 3, 4, 1, 2, Gtk::SHRINK, Gtk::SHRINK); table-attach(*animatebutton, 4, 5, 1, 2, Gtk::SHRINK, Gtk::SHRINK); //table-attach(*keyframebutton, 1, 2, 3, 4, Gtk::SHRINK, Gtk::SHRINK); + table-attach(*toggleducksdial, 0, 5, 0, 1, Gtk::SHRINK, Gtk::SHRINK); table-show(); diff --git a/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp b/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp new file mode 100644 index 000..b23acde --- /dev/null +++ b/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp @@ -0,0 +1,83 @@ +/* === S Y N F I G = */ +/*!\file toggleducksdial.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2009 Gerco Ballintijn +** Copyright (c) 2009 Carlos Lopez +** +** 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. +** +** 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
[Synfig-devl] Carlos Lopez : Use toogleducksdial member pointer and do not expose the toggle buttons pointers outide . Create member methods instead
Module: synfig Branch: genete_master Commit: b11817a7154a704ce068400f22e7894e2e362ae0 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=b11817a7154a704ce068400f22e7894e2e362ae0 Author: Carlos Lopez car...@pcnuevo.(none) Date: Sat Jun 27 09:30:59 2009 +0200 Use toogleducksdial member pointer and do not expose the toggle buttons pointers outide. Create member methods instead --- synfig-studio/trunk/src/gtkmm/canvasview.cpp | 13 - synfig-studio/trunk/src/gtkmm/canvasview.h|2 ++ synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp | 11 +++ synfig-studio/trunk/src/gtkmm/toggleducksdial.h | 10 +++--- 4 files changed, 20 insertions(+), 16 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 72ce50a..c7db107 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -100,7 +100,6 @@ #include audiocontainer.h #include widget_timeslider.h #include keyframedial.h -#include toggleducksdial.h #include synfigapp/main.h #include synfigapp/inputdevice.h @@ -1023,14 +1022,10 @@ CanvasView::create_time_bar() keyframebutton=keyframedial-get_lock_button(); // Setup the ToggleDuckDial widget - ToggleDucksDial *toggleducksdial = Gtk::manage(new class ToggleDucksDial()); - - toggleducksdial-get_position_toggle()- set_active(work_area-get_type_mask()Duck::TYPE_POSITION); - toggleducksdial-get_vertex_toggle() - set_active(work_area-get_type_mask()Duck::TYPE_VERTEX); - toggleducksdial-get_tangent_toggle() - set_active(work_area-get_type_mask()Duck::TYPE_TANGENT); - toggleducksdial-get_radius_toggle() - set_active(work_area-get_type_mask()Duck::TYPE_RADIUS); - toggleducksdial-get_width_toggle() - set_active(work_area-get_type_mask()Duck::TYPE_WIDTH); - toggleducksdial-get_angle_toggle() - set_active(work_area-get_type_mask()Duck::TYPE_ANGLE); + toggleducksdial = Gtk::manage(new class ToggleDucksDial()); + + Duck::Type m = work_area-get_type_mask(); + toggleducksdial-update_toggles(m); toggleducksdial-signal_ducks_position().connect( sigc::bind(sigc::mem_fun(*this, studio::CanvasView::toggle_duck_mask),Duck::TYPE_POSITION) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.h b/synfig-studio/trunk/src/gtkmm/canvasview.h index 2ed261e..182d3e6 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.h +++ b/synfig-studio/trunk/src/gtkmm/canvasview.h @@ -66,6 +66,7 @@ #include dialog_waypoint.h #include dialog_keyframe.h #include framedial.h +#include toggleducksdial.h #include duckmatic.h #include gtkmm/scale.h @@ -265,6 +266,7 @@ private: Gtk::Button *animatebutton; Gtk::Button *keyframebutton; FrameDial *framedial; + ToggleDucksDial *toggleducksdial; //! Shows current time and allows edition diff --git a/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp b/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp index 78aeab5..6dd67bc 100644 --- a/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp +++ b/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp @@ -81,3 +81,14 @@ ToggleDucksDial::create_label_button(Gtk::IconSize iconsize, const char *label, return tbutton; } + +void +ToggleDucksDial::initiate_toggles(Duck::Type mask) +{ + ducks_position- set_active((mask Duck::TYPE_POSITION)); + ducks_vertex - set_active((mask Duck::TYPE_VERTEX)); + ducks_tangent - set_active((mask Duck::TYPE_TANGENT)); + ducks_radius - set_active((mask Duck::TYPE_RADIUS)); + ducks_width - set_active((mask Duck::TYPE_WIDTH)); + ducks_angle - set_active((mask Duck::TYPE_ANGLE)); +} diff --git a/synfig-studio/trunk/src/gtkmm/toggleducksdial.h b/synfig-studio/trunk/src/gtkmm/toggleducksdial.h index d2e50f2..312e3fd 100644 --- a/synfig-studio/trunk/src/gtkmm/toggleducksdial.h +++ b/synfig-studio/trunk/src/gtkmm/toggleducksdial.h @@ -33,9 +33,11 @@ #include gtkmm/tooltips.h #include gtkmm/table.h #include gtkmm/togglebutton.h +#include duckmatic.h #include general.h + /* === M A C R O S = */ /* === T Y P E D E F S = */ @@ -61,6 +63,7 @@ class ToggleDucksDial : public Gtk::Table public: ToggleDucksDial(); + void initiate_toggles(Duck::Type mask); Glib::SignalProxy0void signal_ducks_position() { return ducks_position-signal_toggled(); } Glib::SignalProxy0void signal_ducks_vertex(){ return ducks_vertex- signal_toggled(); } Glib::SignalProxy0void signal_ducks_tangent() { return ducks_tangent- signal_toggled(); } @@ -68,13 +71,6 @@ public: Glib::SignalProxy0void signal_ducks_width() { return ducks_width- signal_toggled(); }
[Synfig-devl] Carlos Lopez : Add render quality spin button. WIP
Module: synfig Branch: genete_master Commit: 4a5036c12bc268713be0509278c9b303c953e02b URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=4a5036c12bc268713be0509278c9b303c953e02b Author: Carlos Lopez car...@pcnuevo.(none) Date: Sun Jun 28 19:55:36 2009 +0200 Add render quality spin button. WIP --- synfig-studio/trunk/src/gtkmm/canvasview.cpp | 33 ++ synfig-studio/trunk/src/gtkmm/canvasview.h |8 - 2 files changed, 34 insertions(+), 7 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 5f3e389..7e77704 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -683,6 +683,7 @@ CanvasView::CanvasView(etl::loose_handleInstance instance,etl::handlesynfigap //keyframe_tree_store_ (KeyframeTreeStore::create(canvas_interface_)), time_adjustment_(0,0,25,0,0,0), time_window_adjustment_ (0,0,25,0,0,0), + quality_adjustment_ (8,1,10,1,1,0), statusbar (manage(new class Gtk::Statusbar())), timeslider (new Widget_Timeslider), @@ -707,6 +708,7 @@ CanvasView::CanvasView(etl::loose_handleInstance instance,etl::handlesynfigap duck_refresh_flag=true; toggling_ducks_=false; changing_resolution_=false; + updating_quality_=false; smach_.set_default_state(state_normal); @@ -1100,7 +1102,7 @@ CanvasView::create_status_bar() Gtk::Widget* CanvasView::create_display_bar() { - displaybar = manage(new class Gtk::Table(1, 3, false)); + displaybar = manage(new class Gtk::Table(1, 5, false)); // Setup the ToggleDuckDial widget toggleducksdial = Gtk::manage(new class ToggleDucksDial()); @@ -1141,12 +1143,23 @@ CanvasView::create_display_bar() resolutiondial-show(); // Set up a separator - Gtk::VSeparator *separator = Gtk::manage(new class Gtk::VSeparator()); - separator-show(); + Gtk::VSeparator *separator1 = Gtk::manage(new class Gtk::VSeparator()); + separator1-show(); + Gtk::VSeparator *separator2 = Gtk::manage(new class Gtk::VSeparator()); + separator2-show(); + + // Set up quality spin button + quality_spin=Gtk::manage(new class Gtk::SpinButton(quality_adjustment_)); + quality_spin-signal_value_changed().connect( + sigc::mem_fun(*this, studio::CanvasView::update_quality)); + quality_spin-show(); - displaybar-attach(*resolutiondial, 2, 3, 0, 1, Gtk::SHRINK, Gtk::SHRINK); displaybar-attach(*toggleducksdial, 0, 1, 0, 1, Gtk::SHRINK, Gtk::SHRINK); - displaybar-attach(*separator, 1, 2, 0, 1, Gtk::FILL, Gtk::FILL); + displaybar-attach(*separator1, 1, 2, 0, 1, Gtk::FILL, Gtk::FILL); + displaybar-attach(*resolutiondial, 2, 3, 0, 1, Gtk::SHRINK, Gtk::SHRINK); + displaybar-attach(*separator2, 3, 4, 0, 1, Gtk::FILL, Gtk::FILL); + displaybar-attach(*quality_spin, 4, 5, 0, 1, Gtk::SHRINK, Gtk::SHRINK); + displaybar-show(); return displaybar; @@ -3172,6 +3185,16 @@ CanvasView::toggle_low_res_pixel_flag() } void +CanvasView::update_quality() +{ + if(updating_quality_) + return; + updating_quality_=true; + work_area-set_quality((int) quality_spin-get_value()); + updating_quality_=false; +} + +void CanvasView::on_dirty_preview() { if(!is_playing_) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.h b/synfig-studio/trunk/src/gtkmm/canvasview.h index ea3fae7..aa43bb8 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.h +++ b/synfig-studio/trunk/src/gtkmm/canvasview.h @@ -41,6 +41,7 @@ #include gtkmm/scrolledwindow.h #include gtkmm/notebook.h #include gdkmm/device.h +#include gtkmm/spinbutton.h #include synfigapp/canvasinterface.h #include synfigapp/selectionmanager.h @@ -272,8 +273,9 @@ private: bool toggling_ducks_; ResolutionDial *resolutiondial; bool changing_resolution_; - - + Gtk::Adjustment quality_adjustment_; + Gtk::SpinButton *quality_spin; + bool updating_quality_; //! Shows current time and allows edition Widget_Time *current_time_widget; void on_current_time_widget_changed(); @@ -606,6 +608,8 @@ public: bool is_playing() { return is_playing_; } + void update_quality(); + /* -- ** -- S I G N A L T E R M I N A L S - */ -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Add a separator between toggle ducks and low res dials
Module: synfig Branch: genete_master Commit: fb20cf41b1fa50d2c1dad398f23431e3dd719638 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=fb20cf41b1fa50d2c1dad398f23431e3dd719638 Author: Carlos Lopez car...@pcnuevo.(none) Date: Sun Jun 28 18:36:52 2009 +0200 Add a separator between toggle ducks and low res dials --- synfig-studio/trunk/src/gtkmm/canvasview.cpp | 11 --- 1 files changed, 8 insertions(+), 3 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index f67e22a..5f3e389 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -41,6 +41,7 @@ #include gtkmm/messagedialog.h #include gtkmm/treemodelsort.h #include gtkmm/buttonbox.h +#include gtkmm/separator.h #include gtk/gtktreestore.h #include gtk/gtkversion.h @@ -1099,7 +1100,7 @@ CanvasView::create_status_bar() Gtk::Widget* CanvasView::create_display_bar() { - displaybar = manage(new class Gtk::Table(1, 1, false)); + displaybar = manage(new class Gtk::Table(1, 3, false)); // Setup the ToggleDuckDial widget toggleducksdial = Gtk::manage(new class ToggleDucksDial()); @@ -1128,7 +1129,6 @@ CanvasView::create_display_bar() toggleducksdial-show(); // Set up the ResolutionDial widget - resolutiondial=Gtk::manage(new class ResolutionDial()); resolutiondial-update_lowres(work_area-get_low_resolution_flag()); @@ -1140,8 +1140,13 @@ CanvasView::create_display_bar() sigc::mem_fun(*this, studio::CanvasView::toggle_low_res_pixel_flag)); resolutiondial-show(); - displaybar-attach(*resolutiondial, 1, 2, 0, 1, Gtk::SHRINK, Gtk::SHRINK); + // Set up a separator + Gtk::VSeparator *separator = Gtk::manage(new class Gtk::VSeparator()); + separator-show(); + + displaybar-attach(*resolutiondial, 2, 3, 0, 1, Gtk::SHRINK, Gtk::SHRINK); displaybar-attach(*toggleducksdial, 0, 1, 0, 1, Gtk::SHRINK, Gtk::SHRINK); + displaybar-attach(*separator, 1, 2, 0, 1, Gtk::FILL, Gtk::FILL); displaybar-show(); return displaybar; -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Add tooltip to the quality spin button.
Module: synfig Branch: genete_master Commit: c49dae0c6004d96ce5b3c6daf937b0c2d1ebde1f URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=c49dae0c6004d96ce5b3c6daf937b0c2d1ebde1f Author: Carlos Lopez car...@pcnuevo.(none) Date: Mon Jun 29 00:28:21 2009 +0200 Add tooltip to the quality spin button. --- synfig-studio/trunk/src/gtkmm/canvasview.cpp |1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 87b4222..3fe39e7 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -1152,6 +1152,7 @@ CanvasView::create_display_bar() quality_spin=Gtk::manage(new class Gtk::SpinButton(quality_adjustment_)); quality_spin-signal_value_changed().connect( sigc::mem_fun(*this, studio::CanvasView::update_quality)); + tooltips.set_tip(*quality_spin, _(Quality (lower is better))); quality_spin-show(); displaybar-attach(*toggleducksdial, 0, 1, 0, 1, Gtk::SHRINK, Gtk::SHRINK); -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Synchronise toggle buttons with keyboard and menu actions.
Module: synfig Branch: genete_master Commit: 7b90fa6d64864aba582c3e8d4e0f2e8add8bd6c5 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=7b90fa6d64864aba582c3e8d4e0f2e8add8bd6c5 Author: Carlos Lopez car...@pcnuevo.(none) Date: Sat Jun 27 10:20:11 2009 +0200 Synchronise toggle buttons with keyboard and menu actions. --- synfig-studio/trunk/src/gtkmm/canvasview.cpp | 13 + synfig-studio/trunk/src/gtkmm/canvasview.h|1 + synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp |2 +- synfig-studio/trunk/src/gtkmm/toggleducksdial.h |2 +- 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index c7db107..2207d24 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -704,6 +704,7 @@ CanvasView::CanvasView(etl::loose_handleInstance instance,etl::handlesynfigap layer_tree=0; children_tree=0; duck_refresh_flag=true; + toggling_ducks_=false; smach_.set_default_state(state_normal); @@ -3660,6 +3661,9 @@ CanvasView::on_keyframe_remove_pressed() void CanvasView::toggle_duck_mask(Duckmatic::Type type) { + if(toggling_ducks_) + return; + toggling_ducks_=true; bool is_currently_on(work_area-get_type_mask()type); if(is_currently_on) @@ -3668,6 +3672,15 @@ CanvasView::toggle_duck_mask(Duckmatic::Type type) work_area-set_type_mask(work_area-get_type_mask()|type); work_area-queue_draw(); + try + { + toggleducksdial-update_toggles(work_area-get_type_mask()); + } + catch(...) + { + toggling_ducks_=false; + } + toggling_ducks_=false; } void diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.h b/synfig-studio/trunk/src/gtkmm/canvasview.h index 182d3e6..826c8ea 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.h +++ b/synfig-studio/trunk/src/gtkmm/canvasview.h @@ -267,6 +267,7 @@ private: Gtk::Button *keyframebutton; FrameDial *framedial; ToggleDucksDial *toggleducksdial; + bool toggling_ducks_; //! Shows current time and allows edition diff --git a/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp b/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp index 6dd67bc..8e07816 100644 --- a/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp +++ b/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp @@ -83,7 +83,7 @@ ToggleDucksDial::create_label_button(Gtk::IconSize iconsize, const char *label, } void -ToggleDucksDial::initiate_toggles(Duck::Type mask) +ToggleDucksDial::update_toggles(Duck::Type mask) { ducks_position- set_active((mask Duck::TYPE_POSITION)); ducks_vertex - set_active((mask Duck::TYPE_VERTEX)); diff --git a/synfig-studio/trunk/src/gtkmm/toggleducksdial.h b/synfig-studio/trunk/src/gtkmm/toggleducksdial.h index 312e3fd..919b01a 100644 --- a/synfig-studio/trunk/src/gtkmm/toggleducksdial.h +++ b/synfig-studio/trunk/src/gtkmm/toggleducksdial.h @@ -63,7 +63,7 @@ class ToggleDucksDial : public Gtk::Table public: ToggleDucksDial(); - void initiate_toggles(Duck::Type mask); + void update_toggles(Duck::Type mask); Glib::SignalProxy0void signal_ducks_position() { return ducks_position-signal_toggled(); } Glib::SignalProxy0void signal_ducks_vertex(){ return ducks_vertex- signal_toggled(); } Glib::SignalProxy0void signal_ducks_tangent() { return ducks_tangent- signal_toggled(); } -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Initial version of show grid check button. Needs a proper icon.
Module: synfig Branch: genete_master Commit: b6011ebece2f8d2df0eab728b6f2b5029836b1fa URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=b6011ebece2f8d2df0eab728b6f2b5029836b1fa Author: Carlos Lopez car...@pcnuevo.(none) Date: Mon Jun 29 01:41:12 2009 +0200 Initial version of show grid check button. Needs a proper icon. --- synfig-studio/trunk/src/gtkmm/canvasview.cpp | 32 - synfig-studio/trunk/src/gtkmm/canvasview.h |3 ++ 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 3fe39e7..ab500e4 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -709,6 +709,7 @@ CanvasView::CanvasView(etl::loose_handleInstance instance,etl::handlesynfigap toggling_ducks_=false; changing_resolution_=false; updating_quality_=false; + toggling_show_grid=false; smach_.set_default_state(state_normal); @@ -1102,7 +1103,7 @@ CanvasView::create_status_bar() Gtk::Widget* CanvasView::create_display_bar() { - displaybar = manage(new class Gtk::Table(1, 5, false)); + displaybar = manage(new class Gtk::Table(1, 6, false)); // Setup the ToggleDuckDial widget toggleducksdial = Gtk::manage(new class ToggleDucksDial()); @@ -1155,11 +1156,24 @@ CanvasView::create_display_bar() tooltips.set_tip(*quality_spin, _(Quality (lower is better))); quality_spin-show(); + // Set up the show grid check button + show_grid = Gtk::manage(new class Gtk::CheckButton()); + show_grid-set_active(work_area-grid_status()); + Gtk::Image *icon = manage(new Gtk::Image(Gtk::Stock::REMOVE, Gtk::IconSize::from_name(synfig-small_icon))); + icon-set_padding(0, 0); + icon-show(); + show_grid-add(*icon); + show_grid-signal_toggled().connect( + sigc::mem_fun(*this, studio::CanvasView::toggle_show_grid)); + tooltips.set_tip(*show_grid, _(Show grid when enabled)); + show_grid-show(); + displaybar-attach(*toggleducksdial, 0, 1, 0, 1, Gtk::SHRINK, Gtk::SHRINK); displaybar-attach(*separator1, 1, 2, 0, 1, Gtk::FILL, Gtk::FILL); displaybar-attach(*resolutiondial, 2, 3, 0, 1, Gtk::SHRINK, Gtk::SHRINK); displaybar-attach(*separator2, 3, 4, 0, 1, Gtk::FILL, Gtk::FILL); displaybar-attach(*quality_spin, 4, 5, 0, 1, Gtk::SHRINK, Gtk::SHRINK); + displaybar-attach(*show_grid, 5, 6, 0, 1, Gtk::SHRINK, Gtk::SHRINK); displaybar-show(); @@ -1475,7 +1489,7 @@ CanvasView::init_menus() grid_show_toggle = Gtk::ToggleAction::create(toggle-grid-show, _(Show Grid)); grid_show_toggle-set_active(work_area-grid_status()); - action_group-add(grid_show_toggle, sigc::mem_fun(*work_area, studio::WorkArea::toggle_grid)); + action_group-add(grid_show_toggle, sigc::mem_fun(*this, studio::CanvasView::toggle_show_grid)); grid_snap_toggle = Gtk::ToggleAction::create(toggle-grid-snap, _(Snap to Grid)); grid_snap_toggle-set_active(work_area-get_grid_snap()); @@ -3213,6 +3227,20 @@ CanvasView::set_quality(int x) quality_spin-set_value(x); } +void +CanvasView::toggle_show_grid() +{ + if(toggling_show_grid) + return; + toggling_show_grid=true; + work_area-toggle_grid(); + // Update the toggle grid show action + set_grid_show_toggle(work_area-grid_status()); + // Update the toggle grid show check button + show_grid-set_active(work_area-grid_status()); + toggling_show_grid=false; +} + void CanvasView::on_dirty_preview() diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.h b/synfig-studio/trunk/src/gtkmm/canvasview.h index 2f26d7b..27cc89f 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.h +++ b/synfig-studio/trunk/src/gtkmm/canvasview.h @@ -276,6 +276,8 @@ private: Gtk::Adjustment quality_adjustment_; Gtk::SpinButton *quality_spin; bool updating_quality_; + Gtk::CheckButton *show_grid; + bool toggling_show_grid; //! Shows current time and allows edition Widget_Time *current_time_widget; void on_current_time_widget_changed(); @@ -438,6 +440,7 @@ private: void increase_low_res_pixel_size(); void toggle_low_res_pixel_flag(); void set_quality(int x); + void toggle_show_grid(); /* -- ** -- P U B L I C M E T H O D S - -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Update Toggle Ducks Actions when Toggle Ducks Buttons changes.
Module: synfig Branch: genete_master Commit: c14cfdfa762dafa6cd003efb6d8c8a61d1679c78 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=c14cfdfa762dafa6cd003efb6d8c8a61d1679c78 Author: Carlos Lopez car...@pcnuevo.(none) Date: Sun Jun 28 16:08:21 2009 +0200 Update Toggle Ducks Actions when Toggle Ducks Buttons changes. Before this commit the synchronisation was only from actions to buttons and not the opposite. --- synfig-studio/trunk/src/gtkmm/canvasview.cpp | 15 +++ 1 files changed, 15 insertions(+), 0 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 92882f7..f67e22a 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -3738,6 +3738,21 @@ CanvasView::toggle_duck_mask(Duckmatic::Type type) work_area-queue_draw(); try { + // Update the toggle ducks actions + Glib::RefPtrGtk::ToggleAction action; + action = Glib::RefPtrGtk::ToggleAction::cast_dynamic(action_group-get_action(mask-position-ducks)); + action-set_active((bool)(work_area-get_type_mask()Duck::TYPE_POSITION)); + action = Glib::RefPtrGtk::ToggleAction::cast_dynamic(action_group-get_action(mask-tangent-ducks)); + action-set_active((bool)(work_area-get_type_mask()Duck::TYPE_TANGENT)); + action = Glib::RefPtrGtk::ToggleAction::cast_dynamic(action_group-get_action(mask-vertex-ducks)); + action-set_active((bool)(work_area-get_type_mask()Duck::TYPE_VERTEX)); + action = Glib::RefPtrGtk::ToggleAction::cast_dynamic(action_group-get_action(mask-radius-ducks)); + action-set_active((bool)(work_area-get_type_mask()Duck::TYPE_RADIUS)); + action = Glib::RefPtrGtk::ToggleAction::cast_dynamic(action_group-get_action(mask-width-ducks)); + action-set_active((bool)(work_area-get_type_mask()Duck::TYPE_WIDTH)); + action = Glib::RefPtrGtk::ToggleAction::cast_dynamic(action_group-get_action(mask-angle-ducks)); + action-set_active((bool)(work_area-get_type_mask()Duck::TYPE_ANGLE)); + // Update toggle ducks buttons toggleducksdial-update_toggles(work_area-get_type_mask()); } catch(...) -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Update copyrights for people who modified the files
Module: synfig Branch: genete_master Commit: 777b2d8282159de60313dd466c86fb906677350b URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=777b2d8282159de60313dd466c86fb906677350b Author: Carlos Lopez car...@pcnuevo.(none) Date: Mon Jul 6 13:05:25 2009 +0200 Update copyrights for people who modified the files --- synfig-studio/trunk/src/gtkmm/canvasview.cpp |1 + synfig-studio/trunk/src/gtkmm/canvasview.h |1 + synfig-studio/trunk/src/gtkmm/framedial.cpp |2 ++ synfig-studio/trunk/src/gtkmm/framedial.h|1 + synfig-studio/trunk/src/gtkmm/iconcontroller.cpp |2 ++ 5 files changed, 7 insertions(+), 0 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 6fbf6d5..bbc02ca 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -7,6 +7,7 @@ ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley ** Copyright (c) 2007, 2008 Chris Moore +** Copyright (c) 2009 Carlos López ** ** This package is free software; you can redistribute it and/or ** modify it under the terms of the GNU General Public License as diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.h b/synfig-studio/trunk/src/gtkmm/canvasview.h index 1ac0991..e2b0c9b 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.h +++ b/synfig-studio/trunk/src/gtkmm/canvasview.h @@ -7,6 +7,7 @@ ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley ** Copyright (c) 2007, 2008 Chris Moore +** Copyright (c) 2009 Carlos López ** ** This package is free software; you can redistribute it and/or ** modify it under the terms of the GNU General Public License as diff --git a/synfig-studio/trunk/src/gtkmm/framedial.cpp b/synfig-studio/trunk/src/gtkmm/framedial.cpp index 0392f4b..6437930 100644 --- a/synfig-studio/trunk/src/gtkmm/framedial.cpp +++ b/synfig-studio/trunk/src/gtkmm/framedial.cpp @@ -6,7 +6,9 @@ ** ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2008 Chris Moore ** Copyright (c) 2009 Gerco Ballintijn +** Copyright (c) 2009 Carlos López ** ** This package is free software; you can redistribute it and/or ** modify it under the terms of the GNU General Public License as diff --git a/synfig-studio/trunk/src/gtkmm/framedial.h b/synfig-studio/trunk/src/gtkmm/framedial.h index 89dfac3..4fc51ca 100644 --- a/synfig-studio/trunk/src/gtkmm/framedial.h +++ b/synfig-studio/trunk/src/gtkmm/framedial.h @@ -8,6 +8,7 @@ ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley ** Copyright (c) 2008 Chris Moore ** Copyright (c) 2009 Gerco Ballintijn +** Copyright (c) 2009 Carlos López ** ** This package is free software; you can redistribute it and/or ** modify it under the terms of the GNU General Public License as diff --git a/synfig-studio/trunk/src/gtkmm/iconcontroller.cpp b/synfig-studio/trunk/src/gtkmm/iconcontroller.cpp index 1ee965d..3a29104 100644 --- a/synfig-studio/trunk/src/gtkmm/iconcontroller.cpp +++ b/synfig-studio/trunk/src/gtkmm/iconcontroller.cpp @@ -8,6 +8,8 @@ ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley ** Copyright (c) 2007, 2008 Chris Moore ** Copyright (c) 2008 Paul Wise +** Copyright (c) 2009 Gerco Ballintijn +** Copyright (c) 2009 Carlos López ** ** This package is free software; you can redistribute it and/or ** modify it under the terms of the GNU General Public License as -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Add code for multiple onion skins.
Module: synfig Branch: genete_master Commit: 96db5bbae7db6545fbf2a10e903132dbd87bd9a3 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=96db5bbae7db6545fbf2a10e903132dbd87bd9a3 Author: Carlos Lopez car...@pcnuevo.(none) Date: Wed Jul 8 15:09:50 2009 +0200 Add code for multiple onion skins. --- synfig-studio/trunk/src/gtkmm/workarea.cpp | 61 synfig-studio/trunk/src/gtkmm/workarea.h |2 + 2 files changed, 37 insertions(+), 26 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/workarea.cpp b/synfig-studio/trunk/src/gtkmm/workarea.cpp index 0ebd729..0d1ce1a 100644 --- a/synfig-studio/trunk/src/gtkmm/workarea.cpp +++ b/synfig-studio/trunk/src/gtkmm/workarea.cpp @@ -117,7 +117,7 @@ public: synfig::Mutex mutex; - void set_onion_skin(bool x) + void set_onion_skin(bool x, int *onions) { onionskin=x; @@ -126,26 +126,29 @@ public: if(!onionskin) return; onion_skin_queue.push_back(time); - //onion_skin_queue.push_back(time-1); - //onion_skin_queue.push_back(time+1); + try { - onion_skin_queue.push_back( - get_canvas()-keyframe_list().find_prev( - time - )-get_time() - ); + Time thistime=time; + for(int i=0; ionions[0]; i++) + { + Time keytime=get_canvas()-keyframe_list().find_prev(thistime)-get_time(); + onion_skin_queue.push_back(keytime); + thistime=keytime; + } } catch(...) { } try { - onion_skin_queue.push_back( - get_canvas()-keyframe_list().find_next( - time - )-get_time() - ); + Time thistime=time; + for(int i=0; ionions[1]; i++) + { + Time keytime=get_canvas()-keyframe_list().find_next(thistime)-get_time(); + onion_skin_queue.push_back(keytime); + thistime=keytime; + } } catch(...) { } @@ -414,7 +417,7 @@ public: std::listsynfig::Time onion_skin_queue; - void set_onion_skin(bool x) + void set_onion_skin(bool x, int *onions) { onionskin=x; @@ -427,22 +430,26 @@ public: //onion_skin_queue.push_back(time+1); try { - onion_skin_queue.push_back( - get_canvas()-keyframe_list().find_prev( - time - )-get_time() - ); + Time thistime=time; + for(int i=0; ionions[0]; i++) + { + Time keytime=get_canvas()-keyframe_list().find_prev(thistime)-get_time(); + onion_skin_queue.push_back(keytime); + thistime=keytime; + } } catch(...) { } try { - onion_skin_queue.push_back( - get_canvas()-keyframe_list().find_next( - time - )-get_time() - ); + Time thistime=time; + for(int i=0; ionions[1]; i++) + { + Time keytime=get_canvas()-keyframe_list().find_next(thistime)-get_time(); + onion_skin_queue.push_back(keytime); + thistime=keytime; + } } catch(...) { } @@ -672,6 +679,8 @@ WorkArea::WorkArea(etl::loose_handlesynfigapp::CanvasInterface canvas_interfac ph=0.001; last_focus_point=Point(0,0); onion_skin=false; + onion_skins[0]=0; + onion_skins[1]=2; queued=false; dirty_trap_enabled=false; solid_lines=true; @@ -2289,7 +2298,7 @@ studio::WorkArea::async_update_preview() handleWorkAreaTarget trgt(new class WorkAreaTarget(this,w,h)); trgt-set_rend_desc(desc); - trgt-set_onion_skin(get_onion_skin()); + trgt-set_onion_skin(get_onion_skin(), onion_skins); target=trgt; } else @@ -2298,7 +2307,7 @@
[Synfig-devl] Carlos Lopez : Fix two mistakes in the tooltips
Module: synfig Branch: genete_master Commit: 4f78a97e958c881f15cbfdc5ca133d8c1aa25896 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=4f78a97e958c881f15cbfdc5ca133d8c1aa25896 Author: Carlos Lopez car...@pcnuevo.(none) Date: Wed Jul 8 17:41:23 2009 +0200 Fix two mistakes in the tooltips --- synfig-studio/trunk/src/gtkmm/canvasview.cpp |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 34fc7bd..6f3719c 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -1183,7 +1183,7 @@ CanvasView::create_display_bar() snap_grid-add(*icon2); snap_grid-signal_toggled().connect( sigc::mem_fun(*this, studio::CanvasView::toggle_snap_grid)); - tooltips.set_tip(*snap_grid, _(snap grid when enabled)); + tooltips.set_tip(*snap_grid, _(Snap grid when enabled)); snap_grid-set_relief(Gtk::RELIEF_NONE); snap_grid-show(); @@ -1196,7 +1196,7 @@ CanvasView::create_display_bar() onion_skin-add(*icon3); onion_skin-signal_toggled().connect( sigc::mem_fun(*this, studio::CanvasView::toggle_onion_skin)); - tooltips.set_tip(*snap_grid, _(Shows onion skin when enabled)); + tooltips.set_tip(*onion_skin, _(Shows onion skin when enabled)); onion_skin-set_relief(Gtk::RELIEF_NONE); onion_skin-show(); -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Fix quality spin button feedback. It didn' t update the actions before.
Module: synfig Branch: genete_master Commit: 2a0be61cd8ecbabc8e4103b16f6450eddb8bdd13 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=2a0be61cd8ecbabc8e4103b16f6450eddb8bdd13 Author: Carlos Lopez car...@pcnuevo.(none) Date: Wed Jul 8 17:57:02 2009 +0200 Fix quality spin button feedback. It didn't update the actions before. --- synfig-studio/trunk/src/gtkmm/canvasview.cpp |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 6f3719c..4a555a8 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -3253,8 +3253,8 @@ CanvasView::toggle_low_res_pixel_flag() void CanvasView::update_quality() { - if(working_depth) - return; + //if(working_depth) + // return; if(updating_quality_) return; updating_quality_=true; -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Change the relief status of the toggle duck buttons
Module: synfig Branch: genete_master Commit: a2b6a6c79dfde84f0bc07a8674da399b1ae6f683 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=a2b6a6c79dfde84f0bc07a8674da399b1ae6f683 Author: Carlos Lopez car...@pcnuevo.(none) Date: Sun Jun 28 18:39:30 2009 +0200 Change the relief status of the toggle duck buttons --- synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp |1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp b/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp index 5474a8b..3f1230a 100644 --- a/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp +++ b/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp @@ -79,6 +79,7 @@ ToggleDucksDial::create_label_button(Gtk::IconSize iconsize, const char *stockid tbutton-add(*icon); icon-set_padding(0, 0); icon-show(); + tbutton-set_relief(Gtk::RELIEF_NONE); tbutton-show(); return tbutton; -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Synchronise quality spin button and quality action radio buttons.
Module: synfig Branch: genete_master Commit: d299430eb47c770495cb84e0832073a25ea0268f URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=d299430eb47c770495cb84e0832073a25ea0268f Author: Carlos Lopez car...@pcnuevo.(none) Date: Mon Jun 29 00:11:51 2009 +0200 Synchronise quality spin button and quality action radio buttons. Do not set insensitive the spin button when working depth is true. --- synfig-studio/trunk/src/gtkmm/canvasview.cpp | 24 ++-- synfig-studio/trunk/src/gtkmm/canvasview.h |1 + 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 0d1112b..87b4222 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -1423,7 +1423,7 @@ CanvasView::init_menus() } action_group-add( action, sigc::bind( - sigc::mem_fun(*work_area, studio::WorkArea::set_quality), + sigc::mem_fun(*this, studio::CanvasView::set_quality), i ) ); @@ -3188,20 +3188,32 @@ void CanvasView::update_quality() { if(working_depth) - { - quality_spin-set_sensitive(false); return; - } - else - quality_spin-set_sensitive(true); if(updating_quality_) return; updating_quality_=true; work_area-set_quality((int) quality_spin-get_value()); + // Update Quality Radio actions + Glib::RefPtrGtk::RadioAction action=Glib::RefPtrGtk::RadioAction::cast_dynamic( + action_group-get_action(strprintf(quality-%02d,(int) quality_spin-get_value())) + ); + action-set_active(); + updating_quality_=false; } void +CanvasView::set_quality(int x) +{ + if(updating_quality_) + return; + work_area-set_quality(x); + // Update the quality spin button + quality_spin-set_value(x); +} + + +void CanvasView::on_dirty_preview() { if(!is_playing_) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.h b/synfig-studio/trunk/src/gtkmm/canvasview.h index aa43bb8..2f26d7b 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.h +++ b/synfig-studio/trunk/src/gtkmm/canvasview.h @@ -437,6 +437,7 @@ private: void decrease_low_res_pixel_size(); void increase_low_res_pixel_size(); void toggle_low_res_pixel_flag(); + void set_quality(int x); /* -- ** -- P U B L I C M E T H O D S - -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Add snap grid toggle button with proper icon.
Module: synfig Branch: genete_master Commit: d845287cb7b04975efb055cbebcd94074b9b42ca URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=d845287cb7b04975efb055cbebcd94074b9b42ca Author: Carlos Lopez car...@pcnuevo.(none) Date: Mon Jun 29 12:38:24 2009 +0200 Add snap grid toggle button with proper icon. Add proper show grid icon. --- synfig-studio/trunk/images/Makefile.am |8 +- synfig-studio/trunk/images/show_grid_icon.sif| 1155 ++ synfig-studio/trunk/images/snap_grid_icon.sif| 1155 ++ synfig-studio/trunk/src/gtkmm/canvasview.cpp | 42 +- synfig-studio/trunk/src/gtkmm/canvasview.h |5 +- synfig-studio/trunk/src/gtkmm/iconcontroller.cpp |3 + 6 files changed, 2360 insertions(+), 8 deletions(-) Diff: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commitdiff;h=d845287cb7b04975efb055cbebcd94074b9b42ca -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Add onion skin icon, and two spin buttons to control past and future onion skins
Module: synfig Branch: genete_master Commit: 6c1f083296e18ba4f16a9b80d2369d9a4272eb12 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=6c1f083296e18ba4f16a9b80d2369d9a4272eb12 Author: Carlos Lopez car...@pcnuevo.(none) Date: Wed Jul 8 17:37:27 2009 +0200 Add onion skin icon, and two spin buttons to control past and future onion skins --- synfig-studio/trunk/images/Makefile.am |6 +- synfig-studio/trunk/images/onion_skin_icon.sif | 3897 ++ synfig-studio/trunk/src/gtkmm/canvasview.cpp | 61 +- synfig-studio/trunk/src/gtkmm/canvasview.h | 10 + synfig-studio/trunk/src/gtkmm/iconcontroller.cpp |2 + synfig-studio/trunk/src/gtkmm/workarea.cpp | 10 +- synfig-studio/trunk/src/gtkmm/workarea.h |1 + 7 files changed, 3982 insertions(+), 5 deletions(-) Diff: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commitdiff;h=6c1f083296e18ba4f16a9b80d2369d9a4272eb12 -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Add a member to check if the value node is invertible
Module: synfig Branch: genete_master Commit: fb6a93cf220f019cc2128e3b076f9094aa7b463f URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=fb6a93cf220f019cc2128e3b076f9094aa7b463f Author: Carlos Lopez car...@pcnuevo.(none) Date: Tue Jul 7 01:49:30 2009 +0200 Add a member to check if the value node is invertible and a member to calculate the inverse. Code in studio is more independent on core modifications. --- synfig-core/trunk/src/synfig/valuenode_scale.cpp | 47 + synfig-core/trunk/src/synfig/valuenode_scale.h |5 ++- synfig-studio/trunk/src/gtkmm/canvasview.cpp | 20 +- 3 files changed, 61 insertions(+), 11 deletions(-) diff --git a/synfig-core/trunk/src/synfig/valuenode_scale.cpp b/synfig-core/trunk/src/synfig/valuenode_scale.cpp index 25b3822..b272d7d 100644 --- a/synfig-core/trunk/src/synfig/valuenode_scale.cpp +++ b/synfig-core/trunk/src/synfig/valuenode_scale.cpp @@ -142,20 +142,49 @@ synfig::ValueNode_Scale::operator()(Time t)const } synfig::ValueBase -synfig::ValueNode_Scale::operator()(Time t, const synfig::Point target_value)const +synfig::ValueNode_Scale::get_inverse(Time t, const synfig::Vector target_value) const { Real scalar_value((*scalar)(t).get(Real())); if(scalar_value==0) - return (*value_node)(t).get(value_node-get_type()); - switch (get_type()) - case ValueBase::TYPE_REAL: - return target_value.mag() / scalar_value; - case ValueBase::TYPE_ANGLE: - return Angle::tan(target_value[1] / scalar_value ,target_value[0] / scalar_value); - default: - return target_value / scalar_value; + throw runtime_error(strprintf(ValueNode_Scale: %s,_(Attempting to get the inverse of a non invertible Valuenode))); + else + { + switch (get_type()) + { + case ValueBase::TYPE_REAL: + return target_value.mag() / scalar_value; + case ValueBase::TYPE_ANGLE: + return Angle::tan(target_value[1] / scalar_value ,target_value[0] / scalar_value); + default: + return target_value / scalar_value; + } + } + return ValueBase(); } +synfig::ValueBase +synfig::ValueNode_Scale::get_inverse(Time t, const synfig::Angle target_value) const +{ + Real scalar_value((*scalar)(t).get(Real())); + if(scalar_value==0) + throw runtime_error(strprintf(ValueNode_Scale: %s,_(Attempting to get the inverse of a non invertible Valuenode))); + else + { + switch (get_type()) + { + default: + return (*value_node)(t).get(Angle()) + target_value / scalar_value; + } + } + return ValueBase(); +} + +bool +synfig::ValueNode_Scale::is_invertible(Time t) const +{ + Real scalar_value((*scalar)(t).get(Real())); + return (!scalar_value==0); +} bool ValueNode_Scale::set_link_vfunc(int i,ValueNode::Handle value) diff --git a/synfig-core/trunk/src/synfig/valuenode_scale.h b/synfig-core/trunk/src/synfig/valuenode_scale.h index a11f6e0..fba1aa0 100644 --- a/synfig-core/trunk/src/synfig/valuenode_scale.h +++ b/synfig-core/trunk/src/synfig/valuenode_scale.h @@ -65,7 +65,10 @@ public: virtual ValueBase operator()(Time t)const; //! Returns the modified Link to match the target value at time t - virtual ValueBase operator()(Time t, const synfig::Point target_value) const; + ValueBase get_inverse(Time t, const synfig::Vector target_value) const; + ValueBase get_inverse(Time t, const synfig::Angle target_value) const; + + bool is_invertible(Time t)const; virtual String get_name()const; diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 50789a9..a76b1a0 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -2890,7 +2890,13 @@ CanvasView::on_duck_changed(const synfig::Point value,const synfigapp::ValueDes if (ValueNode_Scale::Handle scale_value_node = ValueNode_Scale::Handle::cast_dynamic(value_desc.get_value_node())) { int link_index(scale_value_node-get_link_index_from_name(link)); - return canvas_interface()-change_value(synfigapp::ValueDesc(scale_value_node,link_index), scale_value_node(t, value)); + if(scale_value_node-is_invertible(get_time())) + return canvas_interface()-change_value( +
[Synfig-devl] pxegeek : Correcting 'Toogle' spelling mistake on tooltips - Chris Norman
Module: synfig Branch: genete_master Commit: b276de9343a3cc69c8651abcc82e489302b2ece1 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=b276de9343a3cc69c8651abcc82e489302b2ece1 Author: pxegeek pxe.g...@gmail.com Date: Wed Jul 15 17:48:38 2009 -0700 Correcting 'Toogle' spelling mistake on tooltips - Chris Norman --- synfig-studio/trunk/src/gtkmm/iconcontroller.cpp | 12 ++-- synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp | 12 ++-- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/iconcontroller.cpp b/synfig-studio/trunk/src/gtkmm/iconcontroller.cpp index 8af9357..05301a7 100644 --- a/synfig-studio/trunk/src/gtkmm/iconcontroller.cpp +++ b/synfig-studio/trunk/src/gtkmm/iconcontroller.cpp @@ -195,12 +195,12 @@ IconController::IconController(const synfig::String /*basepath*/) INIT_STOCK_ICON(seek_next_frame,seek_next_frame.IMAGE_EXT,_(Next Frame)); INIT_STOCK_ICON(seek_end,seek_end.IMAGE_EXT,_(Seek to End)); - INIT_STOCK_ICON(toggle_duck_position,duck_position_icon.IMAGE_EXT,_(Toogle position ducks)); - INIT_STOCK_ICON(toggle_duck_vertex,duck_vertex_icon.IMAGE_EXT,_(Toogle vertex ducks)); - INIT_STOCK_ICON(toggle_duck_tangent,duck_tangent_icon.IMAGE_EXT,_(Toogle tangent ducks)); - INIT_STOCK_ICON(toggle_duck_radius,duck_radius_icon.IMAGE_EXT,_(Toogle radius ducks)); - INIT_STOCK_ICON(toggle_duck_width,duck_width_icon.IMAGE_EXT,_(Toogle width ducks)); - INIT_STOCK_ICON(toggle_duck_angle,duck_angle_icon.IMAGE_EXT,_(Toogle angle ducks)); + INIT_STOCK_ICON(toggle_duck_position,duck_position_icon.IMAGE_EXT,_(Toggle position ducks)); + INIT_STOCK_ICON(toggle_duck_vertex,duck_vertex_icon.IMAGE_EXT,_(Toggle vertex ducks)); + INIT_STOCK_ICON(toggle_duck_tangent,duck_tangent_icon.IMAGE_EXT,_(Toggle tangent ducks)); + INIT_STOCK_ICON(toggle_duck_radius,duck_radius_icon.IMAGE_EXT,_(Toggle radius ducks)); + INIT_STOCK_ICON(toggle_duck_width,duck_width_icon.IMAGE_EXT,_(Toggle width ducks)); + INIT_STOCK_ICON(toggle_duck_angle,duck_angle_icon.IMAGE_EXT,_(Toggle angle ducks)); INIT_STOCK_ICON(toggle_show_grid,show_grid_icon.IMAGE_EXT,_(Toggle show grid)); INIT_STOCK_ICON(toggle_snap_grid,snap_grid_icon.IMAGE_EXT,_(Toggle snap grid)); diff --git a/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp b/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp index 3f1230a..358923a 100644 --- a/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp +++ b/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp @@ -54,12 +54,12 @@ ToggleDucksDial::ToggleDucksDial(): Gtk::Table(1, 6, false) { Gtk::IconSize iconsize = Gtk::IconSize::from_name(synfig-small_icon); - ducks_position = create_label_button(iconsize, synfig-toggle_duck_position, _(Toogle position ducks)); - ducks_vertex = create_label_button(iconsize, synfig-toggle_duck_vertex, _(Toogle vertex ducks)); - ducks_tangent = create_label_button(iconsize, synfig-toggle_duck_tangent, _(Toogle tangent ducks)); - ducks_radius = create_label_button(iconsize, synfig-toggle_duck_radius, _(Toogle radius ducks)); - ducks_width = create_label_button(iconsize, synfig-toggle_duck_width, _(Toogle width ducks)); - ducks_angle = create_label_button(iconsize, synfig-toggle_duck_angle, _(Toogle angle ducks)); + ducks_position = create_label_button(iconsize, synfig-toggle_duck_position, _(Toggle position ducks)); + ducks_vertex = create_label_button(iconsize, synfig-toggle_duck_vertex, _(Toggle vertex ducks)); + ducks_tangent = create_label_button(iconsize, synfig-toggle_duck_tangent, _(Toggle tangent ducks)); + ducks_radius = create_label_button(iconsize, synfig-toggle_duck_radius, _(Toggle radius ducks)); + ducks_width = create_label_button(iconsize, synfig-toggle_duck_width, _(Toggle width ducks)); + ducks_angle = create_label_button(iconsize, synfig-toggle_duck_angle, _(Toggle angle ducks)); attach(*ducks_position, 0, 1, 0, 1, Gtk::SHRINK, Gtk::SHRINK, 0, 0); attach(*ducks_vertex, 1, 2, 0, 1, Gtk::SHRINK, Gtk::SHRINK, 0, 0); -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Document code
Module: synfig Branch: genete_master Commit: b03d9da72c356e9187a9d707de6fc5ea953b604a URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=b03d9da72c356e9187a9d707de6fc5ea953b604a Author: Carlos Lopez car...@pcnuevo.(none) Date: Wed Jul 15 17:23:49 2009 +0200 Document code --- synfig-studio/trunk/src/gtkmm/widget_gradient.cpp |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/widget_gradient.cpp b/synfig-studio/trunk/src/gtkmm/widget_gradient.cpp index 596feda..c964599 100644 --- a/synfig-studio/trunk/src/gtkmm/widget_gradient.cpp +++ b/synfig-studio/trunk/src/gtkmm/widget_gradient.cpp @@ -297,7 +297,7 @@ Widget_Gradient::on_event(GdkEvent *event) { if(!gradient_.size()) return true; Gradient::iterator iter(gradient_.find(selected_cpoint)); - + //! Use SHIFT to stack two CPoints together. if(event-button.stateGDK_SHIFT_MASK) { float begin(-1),end(1); -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Refresh curves widget after clear it to not show inconsistent curves.
Module: synfig Branch: genete_master Commit: 44ab8432eb1a1e3c0bbcef8ac1fbe7a5cdcaedc8 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=44ab8432eb1a1e3c0bbcef8ac1fbe7a5cdcaedc8 Author: Carlos Lopez car...@pcnuevo.(none) Date: Thu Jul 16 00:18:58 2009 +0200 Refresh curves widget after clear it to not show inconsistent curves. --- synfig-studio/trunk/src/gtkmm/dock_curves.cpp |1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/dock_curves.cpp b/synfig-studio/trunk/src/gtkmm/dock_curves.cpp index bc1a73c..9268fc2 100644 --- a/synfig-studio/trunk/src/gtkmm/dock_curves.cpp +++ b/synfig-studio/trunk/src/gtkmm/dock_curves.cpp @@ -93,6 +93,7 @@ _curve_selection_changed(Gtk::TreeView* param_tree_view,Widget_Curves* curves) if(!param_tree_view-get_selection()-count_selected_rows()) { curves-clear(); + curves-refresh(); return; } -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Code documentation.
Module: synfig Branch: genete_master Commit: 6260e2951bc2d219c0fa079e8c66d6e5c98889dc URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=6260e2951bc2d219c0fa079e8c66d6e5c98889dc Author: Carlos Lopez car...@pcnuevo.(none) Date: Wed Jul 15 16:08:39 2009 +0200 Code documentation. --- synfig-studio/trunk/src/gtkmm/dialog_gradient.h |3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/dialog_gradient.h b/synfig-studio/trunk/src/gtkmm/dialog_gradient.h index c681dac..f9d674c 100644 --- a/synfig-studio/trunk/src/gtkmm/dialog_gradient.h +++ b/synfig-studio/trunk/src/gtkmm/dialog_gradient.h @@ -105,7 +105,8 @@ public: Dialog_Gradient(); ~Dialog_Gradient(); - + //! Inerface to external calls to fill in the Gradient Editor Dialog + //! when a Constant ValueNode or a Animated ValueNode is double cliked. void edit(const synfigapp::ValueDesc x, etl::handlesynfigapp::CanvasInterface canvas_interface, synfig::Time time=0); }; // END of Dialog_Gradient -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Simplified version for reverse manipulation Scale convert types ducks
Module: synfig Branch: genete_master Commit: 9ff670a60001e455fa506f6b6292300e8d1cec8f URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=9ff670a60001e455fa506f6b6292300e8d1cec8f Author: Carlos Lopez car...@pcnuevo.(none) Date: Mon Jul 6 16:02:03 2009 +0200 Simplified version for reverse manipulation Scale convert types ducks --- synfig-core/trunk/src/synfig/valuenode_scale.cpp | 15 +++ synfig-core/trunk/src/synfig/valuenode_scale.h |3 +++ synfig-studio/trunk/src/gtkmm/canvasview.cpp |6 ++ synfig-studio/trunk/src/synfigapp/instance.cpp |2 ++ 4 files changed, 26 insertions(+), 0 deletions(-) diff --git a/synfig-core/trunk/src/synfig/valuenode_scale.cpp b/synfig-core/trunk/src/synfig/valuenode_scale.cpp index a0bba53..25b3822 100644 --- a/synfig-core/trunk/src/synfig/valuenode_scale.cpp +++ b/synfig-core/trunk/src/synfig/valuenode_scale.cpp @@ -141,6 +141,21 @@ synfig::ValueNode_Scale::operator()(Time t)const return ValueBase(); } +synfig::ValueBase +synfig::ValueNode_Scale::operator()(Time t, const synfig::Point target_value)const +{ + Real scalar_value((*scalar)(t).get(Real())); + if(scalar_value==0) + return (*value_node)(t).get(value_node-get_type()); + switch (get_type()) + case ValueBase::TYPE_REAL: + return target_value.mag() / scalar_value; + case ValueBase::TYPE_ANGLE: + return Angle::tan(target_value[1] / scalar_value ,target_value[0] / scalar_value); + default: + return target_value / scalar_value; +} + bool ValueNode_Scale::set_link_vfunc(int i,ValueNode::Handle value) diff --git a/synfig-core/trunk/src/synfig/valuenode_scale.h b/synfig-core/trunk/src/synfig/valuenode_scale.h index bb1ccd0..a11f6e0 100644 --- a/synfig-core/trunk/src/synfig/valuenode_scale.h +++ b/synfig-core/trunk/src/synfig/valuenode_scale.h @@ -64,6 +64,9 @@ public: virtual ValueBase operator()(Time t)const; + //! Returns the modified Link to match the target value at time t + virtual ValueBase operator()(Time t, const synfig::Point target_value) const; + virtual String get_name()const; virtual String get_local_name()const; diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 4a555a8..50789a9 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -2887,6 +2887,12 @@ CanvasView::on_duck_changed(const synfig::Point value,const synfigapp::ValueDes } } + if (ValueNode_Scale::Handle scale_value_node = ValueNode_Scale::Handle::cast_dynamic(value_desc.get_value_node())) + { + int link_index(scale_value_node-get_link_index_from_name(link)); + return canvas_interface()-change_value(synfigapp::ValueDesc(scale_value_node,link_index), scale_value_node(t, value)); + } + switch(value_desc.get_value_type()) { case ValueBase::TYPE_REAL: diff --git a/synfig-studio/trunk/src/synfigapp/instance.cpp b/synfig-studio/trunk/src/synfigapp/instance.cpp index 020d337..c3c542b 100644 --- a/synfig-studio/trunk/src/synfigapp/instance.cpp +++ b/synfig-studio/trunk/src/synfigapp/instance.cpp @@ -42,6 +42,7 @@ #include synfig/valuenode_blinecalctangent.h #include synfig/valuenode_blinecalcvertex.h #include synfig/valuenode_blinecalcwidth.h +#include synfig/valuenode_scale.h #include map #include general.h @@ -74,6 +75,7 @@ synfigapp::is_editable(synfig::ValueNode::Handle 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; -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Add keyframe mark in the curves dock dialogue when it exists .
Module: synfig Branch: genete_master Commit: 309ed1f5a3ab11376662015494c760d6e822bddd URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=309ed1f5a3ab11376662015494c760d6e822bddd Author: Carlos Lopez car...@pcnuevo.(none) Date: Thu Jul 16 01:07:33 2009 +0200 Add keyframe mark in the curves dock dialogue when it exists. --- synfig-studio/trunk/src/gtkmm/widget_curves.cpp | 22 ++ 1 files changed, 22 insertions(+), 0 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/widget_curves.cpp b/synfig-studio/trunk/src/gtkmm/widget_curves.cpp index 9375880..efd2cd1 100644 --- a/synfig-studio/trunk/src/gtkmm/widget_curves.cpp +++ b/synfig-studio/trunk/src/gtkmm/widget_curves.cpp @@ -501,6 +501,28 @@ Widget_Curves::redraw(GdkEventExpose */*bleh*/) gc-set_rgb_fg_color(Gdk::Color(#ff)); // It should be user selectable get_window()-draw_rectangle(gc, false, round_to_int((time_adjustment_-get_value()-t_begin)/dt), 0, 0, h); + // This is not the best solution but I guess that if the first valuenode + // has canvas then show the keyframes. Maybe I can loop all them until I find + // a valid canvas and use it for look to the keyframes. + synfig::Canvas::Handle canvas(curve_list_.begin()-value_desc.get_canvas()); + if(canvas) + { + const synfig::KeyframeList keyframe_list(canvas-keyframe_list()); + synfig::KeyframeList::const_iterator iter; + + for(iter=keyframe_list.begin();iter!=keyframe_list.end();++iter) + { + if(!iter-get_time().is_valid()) + continue; + + const int x((int)((float)w/(t_end-t_begin)*(iter-get_time()-t_begin))); + if(iter-get_time()=t_begin iter-get_time()t_end) + { + gc-set_rgb_fg_color(Gdk::Color(#a07f7f)); // It should be user selectable + get_window()-draw_rectangle(gc, true, x, 0, 1, h); + } + } + } // Draw curves for the valuenodes stored in the curve list for(curve_iter=curve_list_.begin();curve_iter!=curve_list_.end();++curve_iter) { -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Prevent a crash if there are not parameters selected.
Module: synfig Branch: genete_master Commit: 04e736f96597bb36dbd6b8059d785269369b3321 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=04e736f96597bb36dbd6b8059d785269369b3321 Author: Carlos Lopez car...@pcnuevo.(none) Date: Thu Jul 16 01:22:02 2009 +0200 Prevent a crash if there are not parameters selected. --- synfig-studio/trunk/src/gtkmm/widget_curves.cpp |3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/widget_curves.cpp b/synfig-studio/trunk/src/gtkmm/widget_curves.cpp index efd2cd1..cf44f76 100644 --- a/synfig-studio/trunk/src/gtkmm/widget_curves.cpp +++ b/synfig-studio/trunk/src/gtkmm/widget_curves.cpp @@ -474,6 +474,9 @@ Widget_Curves::redraw(GdkEventExpose */*bleh*/) if(!time_adjustment_ || !range_adjustment_ || !h || !w) return false; + if(!curve_list_.size()) + return false; + Glib::RefPtrGdk::GC gc(Gdk::GC::create(get_window())); const Real t_begin(time_adjustment_-get_lower()); -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Time cursor colour to be the same as time track. Document some code
Module: synfig Branch: genete_master Commit: 1b4c3fa03ceef65e4aeb2d907f450399e73b2bc7 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=1b4c3fa03ceef65e4aeb2d907f450399e73b2bc7 Author: Carlos Lopez car...@pcnuevo.(none) Date: Thu Jul 16 00:18:07 2009 +0200 Time cursor colour to be the same as time track. Document some code --- synfig-studio/trunk/src/gtkmm/widget_curves.cpp |3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/widget_curves.cpp b/synfig-studio/trunk/src/gtkmm/widget_curves.cpp index b4a5678..9375880 100644 --- a/synfig-studio/trunk/src/gtkmm/widget_curves.cpp +++ b/synfig-studio/trunk/src/gtkmm/widget_curves.cpp @@ -498,9 +498,10 @@ Widget_Curves::redraw(GdkEventExpose */*bleh*/) get_window()-draw_rectangle(gc, false, 0, round_to_int((0-r_bottom)/dr), w, 0); // Draw current time - gc-set_rgb_fg_color(Gdk::Color(#7f)); + gc-set_rgb_fg_color(Gdk::Color(#ff)); // It should be user selectable get_window()-draw_rectangle(gc, false, round_to_int((time_adjustment_-get_value()-t_begin)/dt), 0, 0, h); + // Draw curves for the valuenodes stored in the curve list for(curve_iter=curve_list_.begin();curve_iter!=curve_list_.end();++curve_iter) { Real t; -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Better solution to find a valid canvas for the displayed valuenodes
Module: synfig Branch: genete_master Commit: a109a797a2a1dbae8457cb65c905e44f4847b0ad URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=a109a797a2a1dbae8457cb65c905e44f4847b0ad Author: Carlos Lopez car...@pcnuevo.(none) Date: Thu Jul 16 15:13:22 2009 +0200 Better solution to find a valid canvas for the displayed valuenodes --- synfig-studio/trunk/src/gtkmm/widget_curves.cpp | 15 +++ 1 files changed, 11 insertions(+), 4 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/widget_curves.cpp b/synfig-studio/trunk/src/gtkmm/widget_curves.cpp index cf44f76..602 100644 --- a/synfig-studio/trunk/src/gtkmm/widget_curves.cpp +++ b/synfig-studio/trunk/src/gtkmm/widget_curves.cpp @@ -504,12 +504,19 @@ Widget_Curves::redraw(GdkEventExpose */*bleh*/) gc-set_rgb_fg_color(Gdk::Color(#ff)); // It should be user selectable get_window()-draw_rectangle(gc, false, round_to_int((time_adjustment_-get_value()-t_begin)/dt), 0, 0, h); - // This is not the best solution but I guess that if the first valuenode - // has canvas then show the keyframes. Maybe I can loop all them until I find - // a valid canvas and use it for look to the keyframes. - synfig::Canvas::Handle canvas(curve_list_.begin()-value_desc.get_canvas()); + // This try to find a valid vanvas to show the keyframes of those + // valuenodes. If not canvas found then no keyframes marks are shown. + synfig::Canvas::Handle canvas=0; + for(curve_iter=curve_list_.begin();curve_iter!=curve_list_.end();++curve_iter) + { + canvas=curve_iter-value_desc.get_canvas(); + if(canvas) + break; + } + if(canvas) { + // Draw vertical lines for the keyframes marks. const synfig::KeyframeList keyframe_list(canvas-keyframe_list()); synfig::KeyframeList::const_iterator iter; -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Draw time cursor always last.
Module: synfig Branch: genete_master Commit: 365ed5c5144c19a00b5dd71965f821086b3ab8eb URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=365ed5c5144c19a00b5dd71965f821086b3ab8eb Author: Carlos Lopez car...@pcnuevo.(none) Date: Thu Jul 16 15:29:54 2009 +0200 Draw time cursor always last. --- synfig-studio/trunk/src/gtkmm/widget_curves.cpp |9 + 1 files changed, 5 insertions(+), 4 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/widget_curves.cpp b/synfig-studio/trunk/src/gtkmm/widget_curves.cpp index 602..2260dad 100644 --- a/synfig-studio/trunk/src/gtkmm/widget_curves.cpp +++ b/synfig-studio/trunk/src/gtkmm/widget_curves.cpp @@ -500,10 +500,6 @@ Widget_Curves::redraw(GdkEventExpose */*bleh*/) gc-set_rgb_fg_color(Gdk::Color(#4f4f4f)); get_window()-draw_rectangle(gc, false, 0, round_to_int((0-r_bottom)/dr), w, 0); - // Draw current time - gc-set_rgb_fg_color(Gdk::Color(#ff)); // It should be user selectable - get_window()-draw_rectangle(gc, false, round_to_int((time_adjustment_-get_value()-t_begin)/dt), 0, 0, h); - // This try to find a valid vanvas to show the keyframes of those // valuenodes. If not canvas found then no keyframes marks are shown. synfig::Canvas::Handle canvas=0; @@ -533,6 +529,11 @@ Widget_Curves::redraw(GdkEventExpose */*bleh*/) } } } + + // Draw current time + gc-set_rgb_fg_color(Gdk::Color(#ff)); // It should be user selectable + get_window()-draw_rectangle(gc, false, round_to_int((time_adjustment_-get_value()-t_begin)/dt), 0, 0, h); + // Draw curves for the valuenodes stored in the curve list for(curve_iter=curve_list_.begin();curve_iter!=curve_list_.end();++curve_iter) { -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : New Canvas view layout. WIP
Module: synfig Branch: genete_master Commit: 15a3beef527c4f114f9d42836517accc8bd4db7a URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=15a3beef527c4f114f9d42836517accc8bd4db7a Author: Carlos Lopez car...@pcnuevo.(none) Date: Sun Jun 21 08:47:49 2009 +0200 New Canvas view layout. WIP -Move the Current time widget from the status to the timebar. -Add a new row at the bottom of the time bar and move there the animate and lock keyframe buttons. --- synfig-studio/trunk/src/gtkmm/canvasview.cpp | 52 ++--- 1 files changed, 29 insertions(+), 23 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 44c8340..23407b0 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -946,6 +946,7 @@ CanvasView::create_time_bar() { Gtk::Image *icon; + //Setup the Time Slider and the Time window scroll Gtk::HScrollbar *time_window_scroll = manage(new class Gtk::HScrollbar(time_window_adjustment())); //Gtk::HScrollbar *time_scroll = manage(new class Gtk::HScrollbar(time_adjustment())); //TIME BAR TEMPORARY POSITION @@ -965,6 +966,7 @@ CanvasView::create_time_bar() //time_scroll-signal_value_changed().connect(sigc::mem_fun(*work_area, studio::WorkArea::render_preview_hook)); //time_scroll-set_update_policy(Gtk::UPDATE_DISCONTINUOUS); + //Setup the Animation Mode Button and the Keyframe Lock button NORMAL_BUTTON(animatebutton,gtk-yes,_(Animate)); animatebutton-signal_clicked().connect(sigc::mem_fun(*this, studio::CanvasView::on_animate_button_pressed)); animatebutton-show(); @@ -973,7 +975,7 @@ CanvasView::create_time_bar() keyframebutton-signal_clicked().connect(sigc::mem_fun(*this, studio::CanvasView::on_keyframe_button_pressed)); keyframebutton-show(); - //setup the audio display + //Setup the audio display disp_audio-set_size_request(-1,32); //disp_audio-show(); disp_audio-set_time_adjustment(time_adjustment()); disp_audio-signal_start_scrubbing().connect( @@ -985,7 +987,15 @@ CanvasView::create_time_bar() disp_audio-signal_stop_scrubbing().connect( sigc::mem_fun(*audio,AudioContainer::stop_scrubbing) ); + //Setup the current time widget + current_time_widget=manage(new Widget_Time); + current_time_widget-set_value(get_time()); + current_time_widget-set_fps(get_canvas()-rend_desc().get_frame_rate()); + current_time_widget-signal_value_changed().connect( + sigc::mem_fun(*this,CanvasView::on_current_time_widget_changed) + ); + //Setup the FrameDial widget FrameDial *framedial = manage(new class FrameDial()); framedial-signal_seek_begin().connect( sigc::bind(sigc::mem_fun(*canvas_interface().get(), synfigapp::CanvasInterface::seek_time), Time::begin()) @@ -1001,15 +1011,19 @@ CanvasView::create_time_bar() ); framedial-show(); - Gtk::Table *table = manage(new class Gtk::Table(4, 3, false)); + Gtk::Table *table = manage(new class Gtk::Table(4, 4, false)); timebar = table; - table-attach(*manage(disp_audio), 0, 1, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); - table-attach(*framedial, 0, 1, 1, 2,Gtk::SHRINK, Gtk::SHRINK); - table-attach(*timeslider, 1, 2, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); - table-attach(*time_window_scroll, 1, 2, 2, 3, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); - table-attach(*animatebutton, 2, 3, 0, 3, Gtk::SHRINK, Gtk::SHRINK); - table-attach(*keyframebutton, 3, 4, 0, 3, Gtk::SHRINK, Gtk::SHRINK); + //Attach widgets to the time bar table + table-attach(*manage(disp_audio), 1, 4, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); + table-attach(*framedial, 0, 1, 2, 3,Gtk::SHRINK, Gtk::SHRINK); + table-attach(*current_time_widget, 0, 1, 1, 2, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); + table-attach(*timeslider, 1, 4, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); + table-attach(*time_window_scroll, 1, 4, 2, 3, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); + table-attach(*animatebutton, 2, 3, 3, 4, Gtk::FILL, Gtk::SHRINK); + table-attach(*keyframebutton, 3, 4, 3, 4, Gtk::FILL, Gtk::SHRINK); + + table-show(); return table; @@ -1036,7 +1050,7 @@ CanvasView::create_status_bar() cancel=false; // Create the status bar at the bottom of the window - Gtk::Table *statusbartable= manage(new class Gtk::Table(7, 1, false)); + Gtk::Table *statusbartable= manage(new class Gtk::Table(5, 1, false)); // statusbar = manage(new class Gtk::Statusbar()); // This is already done at construction progressbar =manage(new class Gtk::ProgressBar()); SMALL_BUTTON(stopbutton,gtk-stop,_(Stop)); @@
[Synfig-devl] Carlos Lopez : Add Keyframe Dial initial layout
Module: synfig Branch: genete_master Commit: 29dc41d9953bf08068615a30abcf687615ffdb08 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=29dc41d9953bf08068615a30abcf687615ffdb08 Author: Carlos Lopez car...@pcnuevo.(none) Date: Sun Jun 21 11:57:18 2009 +0200 Add Keyframe Dial initial layout --- synfig-studio/trunk/src/gtkmm/Makefile.am |6 +- synfig-studio/trunk/src/gtkmm/canvasview.cpp | 12 +++- synfig-studio/trunk/src/gtkmm/keyframedial.cpp | 77 synfig-studio/trunk/src/gtkmm/keyframedial.h | 70 + 4 files changed, 161 insertions(+), 4 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/Makefile.am b/synfig-studio/trunk/src/gtkmm/Makefile.am index 4742357..39acf8c 100644 --- a/synfig-studio/trunk/src/gtkmm/Makefile.am +++ b/synfig-studio/trunk/src/gtkmm/Makefile.am @@ -293,7 +293,8 @@ OTHER_HH = \ valuelink.h \ workarea.h \ zoomdial.h \ - framedial.h + framedial.h \ + keyframedial.h OTHER_CC = \ main.cpp \ @@ -324,7 +325,8 @@ OTHER_CC = \ valuelink.cpp \ workarea.cpp \ zoomdial.cpp \ - framedial.cpp + framedial.cpp \ + keyframedial.cpp INCLUDES = \ diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 23407b0..89bad1b 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -100,6 +100,7 @@ #include audiocontainer.h #include widget_timeslider.h #include framedial.h +#include keyframedial.h #include synfigapp/main.h #include synfigapp/inputdevice.h @@ -1011,6 +1012,12 @@ CanvasView::create_time_bar() ); framedial-show(); + //Setup the KeyFrameDial widget + KeyFrameDial *keyframedial = Gtk::manage(new class KeyFrameDial()); + keyframedial-signal_seek_prev_keyframe().connect(sigc::mem_fun(*canvas_interface().get(), synfigapp::CanvasInterface::jump_to_prev_keyframe)); + keyframedial-signal_seek_next_keyframe().connect(sigc::mem_fun(*canvas_interface().get(), synfigapp::CanvasInterface::jump_to_next_keyframe)); + keyframedial-show(); + Gtk::Table *table = manage(new class Gtk::Table(4, 4, false)); timebar = table; @@ -1020,8 +1027,9 @@ CanvasView::create_time_bar() table-attach(*current_time_widget, 0, 1, 1, 2, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); table-attach(*timeslider, 1, 4, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); table-attach(*time_window_scroll, 1, 4, 2, 3, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); - table-attach(*animatebutton, 2, 3, 3, 4, Gtk::FILL, Gtk::SHRINK); - table-attach(*keyframebutton, 3, 4, 3, 4, Gtk::FILL, Gtk::SHRINK); + table-attach(*keyframedial, 0, 1, 3, 4, Gtk::SHRINK, Gtk::SHRINK); + table-attach(*animatebutton, 2, 3, 3, 4, Gtk::SHRINK, Gtk::SHRINK); + table-attach(*keyframebutton, 1, 2, 3, 4, Gtk::SHRINK, Gtk::SHRINK); table-show(); diff --git a/synfig-studio/trunk/src/gtkmm/keyframedial.cpp b/synfig-studio/trunk/src/gtkmm/keyframedial.cpp new file mode 100644 index 000..ba60717 --- /dev/null +++ b/synfig-studio/trunk/src/gtkmm/keyframedial.cpp @@ -0,0 +1,77 @@ +/* === S Y N F I G = */ +/*!\file keyframedial.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2009 Gerco Ballintijn +** Copyright (c) 2009 Carlos Lopez +** +** 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. +** +** 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 +*/ +/* = */ + +/* === H E A D E R S === */ + +#ifdef USING_PCH +# include pch.h +#else +#ifdef HAVE_CONFIG_H +# include config.h +#endif + +#include keyframedial.h +#include gtkmm/image.h + +#endif + +/* === U S I N G === */ + +using namespace std; +using namespace studio; + +/* === M A C R O S = */ + +/* === G L O B A L S === */ + +/* === P R O C E D U R E S = */ + +/* === M E T H O D S
[Synfig-devl] Carlos Lopez : Show the current_time_widget in the proper function and request minimum horizontal size
Module: synfig Branch: genete_master Commit: c449d860f40a811c2faf19e823744ff7960202c4 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=c449d860f40a811c2faf19e823744ff7960202c4 Author: Carlos Lopez car...@pcnuevo.(none) Date: Mon Jun 22 00:42:37 2009 +0200 Show the current_time_widget in the proper function and request minimum horizontal size --- synfig-studio/trunk/src/gtkmm/canvasview.cpp |4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index d877e6d..b3e243f 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -992,6 +992,8 @@ CanvasView::create_time_bar() current_time_widget-signal_value_changed().connect( sigc::mem_fun(*this,CanvasView::on_current_time_widget_changed) ); + current_time_widget-set_size_request(0,-1); // request horizontal shrink + current_time_widget-show(); //Setup the FrameDial widget FrameDial *framedial = manage(new class FrameDial()); @@ -3209,7 +3211,7 @@ void CanvasView::show_timebar() { timebar-show(); - current_time_widget-show(); + //current_time_widget-show(); // not needed now that belongs to the timebar //keyframe_tab_child-show(); if(layer_tree) -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Reorder the code a bit and add some comments
Module: synfig Branch: genete_master Commit: 1a680abfce7422f6b44756fea9b047a9244ed697 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=1a680abfce7422f6b44756fea9b047a9244ed697 Author: Carlos Lopez car...@pcnuevo.(none) Date: Mon Jun 22 19:05:34 2009 +0200 Reorder the code a bit and add some comments --- synfig-studio/trunk/src/gtkmm/canvasview.h | 17 +++-- 1 files changed, 11 insertions(+), 6 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.h b/synfig-studio/trunk/src/gtkmm/canvasview.h index 3b27e8b..6f1f87e 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.h +++ b/synfig-studio/trunk/src/gtkmm/canvasview.h @@ -258,20 +258,22 @@ private: Gtk::Button *stopbutton; Gtk::Button *refreshbutton; - Gtk::Button *treetogglebutton; - Gtk::Notebook *notebook; + Gtk::Button *treetogglebutton; // not used + Gtk::Notebook *notebook; // not used Gtk::Widget *timebar; + Gtk::Button *animatebutton; + Gtk::Button *keyframebutton; + + //! Shows current time and allows edition Widget_Time *current_time_widget; void on_current_time_widget_changed(); - std::auto_ptrWidget_Timeslidertimeslider; + //! Time slider class. Same than the Time track panel + std::auto_ptrWidget_Timeslider timeslider; std::listsigc::connection duck_changed_connections; - Gtk::Button *animatebutton; - Gtk::Button *keyframebutton; - /* DEBUGPOINT_CLASS(8); Gtk::Menu duckmaskmenu; @@ -308,6 +310,7 @@ private: Gtk::CheckMenuItem* duck_mask_width; Gtk::CheckMenuItem* duck_mask_angle; */ + //! Menu members Gtk::Menu parammenu; Glib::RefPtrGtk::ToggleAction grid_snap_toggle; @@ -400,9 +403,11 @@ private: Gtk::Widget *create_time_bar(); + //! Pop up menu for the bezier (bline, draw) tool (?) void popup_param_menu_bezier(float location, synfigapp::ValueDesc value_desc) { popup_param_menu(value_desc,location,true); } + //! Pop up menu for the tools but not the bezier ones. void popup_param_menu(synfigapp::ValueDesc value_desc, float location=0, bool bezier=false); void workarea_layer_selected(synfig::Layer::Handle layer); -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Add Play/Stop button to the Frame Dial.
Module: synfig Branch: genete_master Commit: f2a5ca9cf3c770c4eb236d0c5c1ae7ecab242787 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=f2a5ca9cf3c770c4eb236d0c5c1ae7ecab242787 Author: Carlos Lopez car...@pcnuevo.(none) Date: Mon Jun 22 20:08:36 2009 +0200 Add Play/Stop button to the Frame Dial. --- synfig-studio/trunk/src/gtkmm/canvasview.cpp | 35 +++-- synfig-studio/trunk/src/gtkmm/canvasview.h |4 +++ synfig-studio/trunk/src/gtkmm/framedial.cpp |9 -- synfig-studio/trunk/src/gtkmm/framedial.h| 12 ++--- 4 files changed, 50 insertions(+), 10 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 32530cd..7c3aa0a 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -99,7 +99,6 @@ #include preview.h #include audiocontainer.h #include widget_timeslider.h -#include framedial.h #include keyframedial.h #include synfigapp/main.h @@ -997,13 +996,16 @@ CanvasView::create_time_bar() current_time_widget-show(); //Setup the FrameDial widget - FrameDial *framedial = manage(new class FrameDial()); + framedial = manage(new class FrameDial()); framedial-signal_seek_begin().connect( sigc::bind(sigc::mem_fun(*canvas_interface().get(), synfigapp::CanvasInterface::seek_time), Time::begin()) ); framedial-signal_seek_prev_frame().connect( sigc::bind(sigc::mem_fun(*canvas_interface().get(), synfigapp::CanvasInterface::seek_frame), -1) ); + framedial-signal_play_stop().connect( + sigc::mem_fun(*this, studio::CanvasView::on_play_stop_pressed) + ); framedial-signal_seek_next_frame().connect( sigc::bind(sigc::mem_fun(*canvas_interface().get(), synfigapp::CanvasInterface::seek_frame), 1) ); @@ -3154,8 +3156,8 @@ CanvasView::play() return; } } + on_play_stop_pressed(); is_playing_=false; - time_adjustment().set_value(endtime); time_adjustment().value_changed(); } @@ -3919,3 +3921,30 @@ CanvasView::on_delete_event(GdkEventAny* event __attribute__ ((unused))) return true; } + +//! Modify the play stop button apearence and play stop the animation +void +CanvasView::on_play_stop_pressed() +{ + Gtk::Image *icon; + Gtk::Button *stop_button; + stop_button=framedial-get_play_button(); + bool play_flag; + if(!is_playing()) + { + icon = manage(new Gtk::Image(Gtk::Stock::MEDIA_STOP, Gtk::IconSize::from_name(synfig-small_icon))); + stop_button-set_relief(Gtk::RELIEF_NORMAL); + play_flag=true; + } + else + { + icon = manage(new Gtk::Image(Gtk::Stock::MEDIA_PLAY, Gtk::IconSize::from_name(synfig-small_icon))); + stop_button-set_relief(Gtk::RELIEF_NONE); + play_flag=false; + } + stop_button-remove(); + stop_button-add(*icon); + icon-set_padding(0, 0); + icon-show(); + if(play_flag) play(); else stop(); +} diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.h b/synfig-studio/trunk/src/gtkmm/canvasview.h index 6f1f87e..844a57f 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.h +++ b/synfig-studio/trunk/src/gtkmm/canvasview.h @@ -65,6 +65,7 @@ #include dialog_waypoint.h #include dialog_keyframe.h +#include framedial.h #include duckmatic.h #include gtkmm/scale.h @@ -263,6 +264,7 @@ private: Gtk::Widget *timebar; Gtk::Button *animatebutton; Gtk::Button *keyframebutton; + FrameDial *framedial; //! Shows current time and allows edition @@ -679,6 +681,8 @@ private: //void on_audio_play(); bool on_audio_scrub(); + void on_play_stop_pressed(); + protected: bool close_instance_when_safe(); bool on_delete_event(GdkEventAny* event); diff --git a/synfig-studio/trunk/src/gtkmm/framedial.cpp b/synfig-studio/trunk/src/gtkmm/framedial.cpp index a361bd3..0392f4b 100644 --- a/synfig-studio/trunk/src/gtkmm/framedial.cpp +++ b/synfig-studio/trunk/src/gtkmm/framedial.cpp @@ -49,7 +49,7 @@ using namespace studio; /* === M E T H O D S === */ -FrameDial::FrameDial(): Gtk::Table(3, 1, false) +FrameDial::FrameDial(): Gtk::Table(5, 1, false) { Gtk::IconSize iconsize = Gtk::IconSize::from_name(synfig-small_icon); @@ -57,6 +57,8 @@ FrameDial::FrameDial(): Gtk::Table(3, 1, false) _(Seek to Begin)); seek_prev_frame = create_icon(iconsize, Gtk::Stock::MEDIA_REWIND, _(Previous Frame)); + play_stop = create_icon(iconsize, Gtk::Stock::MEDIA_PLAY, +
[Synfig-devl] Carlos Lopez : Keep correct size on the animate button after pressed.
Module: synfig Branch: genete_master Commit: 62c72bf0bc6482003ae7423ecf727b2576fd5c46 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=62c72bf0bc6482003ae7423ecf727b2576fd5c46 Author: Carlos Lopez car...@pcnuevo.(none) Date: Mon Jun 22 22:18:29 2009 +0200 Keep correct size on the animate button after pressed. --- synfig-studio/trunk/src/gtkmm/canvasview.cpp |5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 76437b9..a3c42cc 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -2580,10 +2580,11 @@ void CanvasView::on_mode_changed(synfigapp::CanvasInterface::Mode mode) { // If the animate flag was set in mode... + Gtk::IconSize iconsize=Gtk::IconSize::from_name(synfig-small_icon); if(modesynfigapp::MODE_ANIMATE) { Gtk::Image *icon; - icon=manage(new Gtk::Image(Gtk::StockID(gtk-no),Gtk::ICON_SIZE_BUTTON)); + icon=manage(new Gtk::Image(Gtk::StockID(gtk-no),iconsize)); animatebutton-remove(); animatebutton-add(*icon); tooltips.set_tip(*animatebutton,_(In Animate Editing Mode)); @@ -2593,7 +2594,7 @@ CanvasView::on_mode_changed(synfigapp::CanvasInterface::Mode mode) else { Gtk::Image *icon; - icon=manage(new Gtk::Image(Gtk::StockID(gtk-yes),Gtk::ICON_SIZE_BUTTON)); + icon=manage(new Gtk::Image(Gtk::StockID(gtk-yes),iconsize)); animatebutton-remove(); animatebutton-add(*icon); tooltips.set_tip(*animatebutton,_(Not in Animate Editing Mode)); -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Initial trial of keyframe list. It doesn't compile.
Module: synfig Branch: genete_master Commit: d984a091f5a0cb0c903d4abfcf7a7afb57ec82e3 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=d984a091f5a0cb0c903d4abfcf7a7afb57ec82e3 Author: Carlos Lopez car...@pcnuevo.(none) Date: Thu Jul 16 16:35:13 2009 +0200 Initial trial of keyframe list. It doesn't compile. --- .../trunk/src/gtkmm/widget_keyframe_list.cpp | 270 .../trunk/src/gtkmm/widget_keyframe_list.h | 101 2 files changed, 371 insertions(+), 0 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/widget_keyframe_list.cpp b/synfig-studio/trunk/src/gtkmm/widget_keyframe_list.cpp new file mode 100644 index 000..e0f372f --- /dev/null +++ b/synfig-studio/trunk/src/gtkmm/widget_keyframe_list.cpp @@ -0,0 +1,270 @@ +/* === S Y N F I G = */ +/*!\file widget_keyframe_list.cpp +** \brief A custom widget to manage keyframes in the timeline. +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007 Chris Moore +** Copyright (c) 2009 Carlos López +** +** 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. +** +** 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 +*/ +/* = */ + +/* === H E A D E R S === */ + +#ifdef USING_PCH +# include pch.h +#else +#ifdef HAVE_CONFIG_H +# include config.h +#endif + +#include widget_keyframe_list.h +#include app.h +#include gtkmm/menu.h +#include synfig/exception.h +#include ETL/misc + +#include general.h + +#endif + +/* === U S I N G === */ + +using namespace std; +using namespace etl; +using namespace synfig; +using namespace studio; + +/* === M A C R O S = */ + +/* === G L O B A L S === */ + +/* === P R O C E D U R E S = */ + +/* === M E T H O D S === */ + +Widget_Keyframe_List::Widget_Keyframe_List(): + editable_(false) +{ + set_size_request(-1,64); + signal_expose_event().connect(sigc::mem_fun(*this, studio::Widget_Keyframe_List::redraw)); + add_events(Gdk::BUTTON_PRESS_MASK | Gdk::BUTTON_RELEASE_MASK); + add_events(Gdk::BUTTON1_MOTION_MASK); + +} + +Widget_Keyframe_List::~Widget_Keyframe_List() +{ +} + +bool +Widget_Gradient::redraw(GdkEventExpose */*bleh*/) +{ + const int h(get_height()); + const int w(get_width()); + + Glib::RefPtrGdk::GC gc(Gdk::GC::create(get_window())); + Gdk::Rectangle area(0,0,w,h); + if(!editable_) + { + return true; + } + + gc-set_rgb_fg_color(Gdk::Color(#7f7f7f)); + get_window()-draw_rectangle(gc, false, 0, 0, w, h); + + KeyframeList::iterator iter,selected_iter; + bool show_selected(false); + for(iter=kf_list_.begin();iter!=kf_list_.end();iter++) + { + if(*iter!=selected_kf) + get_style()-paint_arrow( + get_window(), + (*iter==selected_kf)?Gtk::STATE_SELECTED:Gtk::STATE_ACTIVE, + Gtk::SHADOW_OUT, + area, + *this, +, + Gtk::ARROW_DOWN, + 1, + int(iter-get_time()*w)-h/2+1, /// to be fixed + 0, + h, + h + ); + else + { + selected_iter=iter; + show_selected=true; + } + } + + // we do this so that we can be sure that + // the selected marker is shown on top + if(show_selected) + { + get_style()-paint_arrow( + get_window(), + Gtk::STATE_SELECTED, + Gtk::SHADOW_OUT, + area, + *this, +, + Gtk::ARROW_DOWN, + 1, + round_to_int(selected_iter-get_time()*w)-h/2+1, + 0, + h, + h +
[Synfig-devl] Konstantin Dmitriev : Show git revision information on synfig --info.
Module: synfig Branch: genete_master Commit: eb646e952b600199e2f1a0c27ea1c4fde87a1f50 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=eb646e952b600199e2f1a0c27ea1c4fde87a1f50 Author: Konstantin Dmitriev ksee.zelga...@gmail.com Date: Thu Jul 16 21:47:30 2009 +0700 Show git revision information on synfig --info. --- .gitignore|1 + synfig-core/trunk/Makefile.am |1 + synfig-core/trunk/build_tools/Makefile.am |8 ++ synfig-core/trunk/build_tools/autorevision.sh | 101 + synfig-core/trunk/src/tool/main.cpp |5 +- 5 files changed, 115 insertions(+), 1 deletions(-) diff --git a/.gitignore b/.gitignore index 36dc72b..e990be0 100644 --- a/.gitignore +++ b/.gitignore @@ -64,6 +64,7 @@ synfig-core/trunk/src/synfig/proto/nodebase.h synfig-core/trunk/src/tool/synfig synfig-core/trunk/synfig.pc.in +synfig-core/trunk/autorevision.h synfig-core/trunk/m4/codeset.m4 synfig-core/trunk/m4/gettext.m4 synfig-core/trunk/m4/glibc2.m4 diff --git a/synfig-core/trunk/Makefile.am b/synfig-core/trunk/Makefile.am index bb201ca..22ad14d 100644 --- a/synfig-core/trunk/Makefile.am +++ b/synfig-core/trunk/Makefile.am @@ -43,6 +43,7 @@ MAINTAINERCLEANFILES = \ SUBDIRS = \ libltdl \ + build_tools \ src \ examples \ po diff --git a/synfig-core/trunk/build_tools/Makefile.am b/synfig-core/trunk/build_tools/Makefile.am new file mode 100644 index 000..29b053f --- /dev/null +++ b/synfig-core/trunk/build_tools/Makefile.am @@ -0,0 +1,8 @@ +dist_noinst_SCRIPTS = autorevision.sh + +all-local: + sh $(srcdir)/autorevision.sh $(top_srcdir) $(top_builddir) + +clean-local: + -rm -f $(top_builddir)/autorevision.h + diff --git a/synfig-core/trunk/build_tools/autorevision.sh b/synfig-core/trunk/build_tools/autorevision.sh new file mode 100644 index 000..2ccdb01 --- /dev/null +++ b/synfig-core/trunk/build_tools/autorevision.sh @@ -0,0 +1,101 @@ +#!/bin/sh + +# Copyright 2008 Paul Wise +# Copyright 2009 Konstantin Dmitriev +# +# 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. +# +# 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. + +get_git_id(){ + export SCM=git + export REVISION=`cd $1; git log --no-color -1 | head -n 1 | cut -f 2 -d ' '` + export BRANCH=`cd $1; git branch --no-color 2 /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'` + export DATE=`git-show --pretty=format:%ci HEAD | head -c 10` + DATE=${DATE:0:4}${DATE:5:2}${DATE:8:2} + export COMPARE=$1/.git/ + # The extra * at the end is for Modified + #REVISION=$REVISION`cd $1; [[ $(git status 2 /dev/null | tail -n1) != nothing to commit (working directory clean) ]] echo *` +} + +get_git_svn_id(){ + export SCM=git-svn + export REVISION=`cd $1; git svn find-rev HEAD` + export COMPARE=$1/.git/ + if [ x = x$REVISION ] ; then + # The extra M at the end is for Modified + export REVISION=`cd $1; git svn find-rev \`git rev-list --max-count=1 --grep='git-svn-id: ' HEAD\``M + else + export REVISION=$REVISION`cd $1; git diff --quiet HEAD || echo M` + fi +} + +get_svn_id(){ + export SCM=svn + export REVISION=`cd $1; svnversion || svn info | sed -n 's/^Revision: \(.*\)/\1/p'` +} + + +HEADER=$2/autorevision.h +SCM=none + + +if [ ! -f $HEADER ] ; then + touch -t 197001010101 $HEADER +fi + + +# Extract the revision from SVN/git/etc +if [ -e $1/../../.git/refs/remotes/origin ] ; then + get_git_id $1/../.. +elif [ -d $1/.git/svn ] ; then + get_git_svn_id $1 +elif [ -d $1/../.git/svn ] ; then + get_git_svn_id $1/.. +elif [ -d $1/../../.git/svn ] ; then + get_git_svn_id $1/../.. +elif [ -d $1/.svn ] ; then + COMPARE=$1/.svn + get_svn_id $1 +elif [ -d $1/_svn ] ; then + COMPARE=$1/_svn + get_svn_id $1 +fi + + +# Allow overriding both REVISION and DEVEL_VERSION +if [ -f $2/autorevision.conf ] ; then + SCM=manual + . $2/autorevision.conf +fi + + +# Abort if the header is newer +if [ $COMPARE -ot $HEADER ] ; then exit; fi + +# Set the development version string +if [ x = x$DEVEL_VERSION ] ; then + if [ x != x$REVISION ] ; then + if [ $SCM = svn ] ; then + DEVEL_VERSION=SVN r$REVISION + elif [ $SCM = git-svn ] ; then + DEVEL_VERSION=SVN r$REVISION (via git) + elif [ $SCM = git ] ; then +
[Synfig-devl] Carlos Lopez : Remove unneeded member call.
Module: synfig Branch: genete_master Commit: b4dbf420eee03a47b270864cfeeae984856b2a3b URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=b4dbf420eee03a47b270864cfeeae984856b2a3b Author: Carlos Lopez car...@pcnuevo.(none) Date: Mon Jun 22 21:02:42 2009 +0200 Remove unneeded member call. --- synfig-studio/trunk/src/gtkmm/canvasview.cpp |1 - 1 files changed, 0 insertions(+), 1 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 7c3aa0a..0b532cd 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -951,7 +951,6 @@ CanvasView::create_time_bar() //Gtk::HScrollbar *time_scroll = manage(new class Gtk::HScrollbar(time_adjustment())); //TIME BAR TEMPORARY POSITION //Widget_Timeslider *time_scroll = manage(new Widget_Timeslider); - timeslider-show(); timeslider-set_time_adjustment(time_adjustment()); timeslider-set_bounds_adjustment(time_window_adjustment()); //layout_table-attach(*timeslider, 0, 1, 2, 3, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL); -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Remove uneeded code
Module: synfig Branch: genete_master Commit: 548f791bdcf8b69caae961c7ea63f67b10f742df URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=548f791bdcf8b69caae961c7ea63f67b10f742df Author: Carlos Lopez car...@pcnuevo.(none) Date: Sun Jun 21 12:46:20 2009 +0200 Remove uneeded code --- synfig-studio/trunk/src/gtkmm/canvasview.cpp |7 +-- 1 files changed, 1 insertions(+), 6 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 7223410..d877e6d 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -972,12 +972,7 @@ CanvasView::create_time_bar() SMALL_BUTTON(animatebutton,gtk-yes,_(Animate)); animatebutton-signal_clicked().connect(sigc::mem_fun(*this, studio::CanvasView::on_animate_button_pressed)); animatebutton-show(); -/* - NORMAL_BUTTON(keyframebutton,synfig-keyframe_lock_all,_(All Keyframes Locked)); - keyframebutton-signal_clicked().connect(sigc::mem_fun(*this, studio::CanvasView::on_keyframe_button_pressed)); - keyframebutton-show(); - keyframebutton-set_relief(Gtk::RELIEF_NONE); -*/ + //Setup the audio display disp_audio-set_size_request(-1,32); //disp_audio-show(); disp_audio-set_time_adjustment(time_adjustment()); -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Konstantin Dmitriev : Synfig Studio Crash Monitor.
Module: synfig Branch: genete_master Commit: e8e10402449a7a1850dd5f4ab3e0e72d04af3f84 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=e8e10402449a7a1850dd5f4ab3e0e72d04af3f84 Author: Konstantin Dmitriev ksee.zelga...@gmail.com Date: Thu Jul 16 23:38:58 2009 +0700 Synfig Studio Crash Monitor. If it's run in background it collects synfig runtime and crashes statistics. All information collected in ~/.synfig/cph. Later we will use that information to calculate CPH (crash per hour) index and detect commits producing unstability. --- synfig-studio/trunk/synfigstudio-cph-monitor | 138 ++ 1 files changed, 138 insertions(+), 0 deletions(-) diff --git a/synfig-studio/trunk/synfigstudio-cph-monitor b/synfig-studio/trunk/synfigstudio-cph-monitor new file mode 100755 index 000..02fc18a --- /dev/null +++ b/synfig-studio/trunk/synfigstudio-cph-monitor @@ -0,0 +1,138 @@ +#!/bin/bash + +# Synfig Crash Monitor script +# Copyright (c) 2009 Konstantin Dmitriev +# 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. +# +# 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. + +set -e +trap writelog INT + +init() +{ +echo `date +%H:%M` Synfig Crash Monitor started. +STARTED=0 +RUNTIME=0 +VERSION='' +RELEASE='' +BRANCH='' +CRASH=0 +[ ! -d ~/.synfig/cph ] mkdir -p ~/.synfig/cph || true +} + +writelog() +{ + if [[ $STARTED != 0 ]]; then + if [[ $CRASH == 0 ]]; then + echo `date +%H:%M` Synfig exited normally. Session time: $RUNTIME. + else + echo `date +%H:%M` Crash detected. Version $VERSION.$RELEASE.$BRANCH, session time: $RUNTIME. + fi + if [ -e ~/.synfig/cph/log ]; then + #check if dump needed + CURRENTDATE=`date +%Y-%m-%d` + LOGMODDATE=`stat -c %y ~/.synfig/cph/log` + LOGMODDATE=${LOGMODDATE%% *} + if [[ $LOGMODDATE != $CURRENTDATE ]]; then + dumpstats + fi + fi + #write log + echo $VERSION/$BRANCH/$RELEASE $RUNTIME $CRASH ~/.synfig/cph/log + CRASH=0 + RUNTIME=0 + else + echo + fi +} + +dumpstats() +{ + echo `date +%H:%M` 'Dumping stats for previous session...' + LOGMODDATE=`stat -c %y ~/.synfig/cph/log` + LOGMODDATE=${LOGMODDATE%% *} + #get versions + VERSIONS='' + while read LINE; do + FOUND=0 + for VER in $VERSIONS; do + if [[ $VER == ${LINE%% *} ]]; then + FOUND=1 + break + fi + done + [[ $FOUND == 0 ]] VERSIONS=$VERSIONS ${LINE%% *} + done ~/.synfig/cph/log + echoLogged versions: ${VERSIONS} + for VER in $VERSIONS; do + #generating random record ID + ID=$( echo `date` `ps` | md5sum | md5sum ) + ID=${ID:2:16} + #summarizing time and counting crashes + CRASHCOUNT=0 + TIMECOUNT=0 + while read LINE; do + if [[ ${LINE%% *} == $VER ]]; then + TIMECOUNT=`expr $TIMECOUNT + $(echo $LINE| cut -f 2 -d ' ')` || true + CRASHCOUNT=`expr $CRASHCOUNT + $(echo $LINE| cut -f 3 -d ' ')` || true + fi + done ~/.synfig/cph/log + echo$LOGMODDATE $ID $VER $TIMECOUNT $CRASHCOUNT + echo $LOGMODDATE $ID $VER $TIMECOUNT $CRASHCOUNT ~/.synfig/cph/stats + done + rm -f ~/.synfig/cph/log + echo ' Done.' +} + +mainloop() +{ + while true; do + if ( ps -f -u `whoami`|egrep synfigstudio$ /dev/null ) ; then + #synfigstudio process exist + if [[ $STARTED == 0 ]]; then + STARTED=1 + RUNTIME=0 + #get version + P=$(ps -f -u `whoami`|egrep synfigstudio$| tr -s ' '| cut -d ' ' -f 8) + echo + if [ ! -e $P ]; then + P=`which $P` + fi + echo $P + P=`dirname $P` +
[Synfig-devl] Carlos Lopez : Now builds. Does not nothing yet.
Module: synfig Branch: genete_master Commit: eb5f135abc7ac06543500f32362ab56d75370be5 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=eb5f135abc7ac06543500f32362ab56d75370be5 Author: Carlos Lopez car...@pcnuevo.(none) Date: Fri Jul 17 19:32:51 2009 +0200 Now builds. Does not nothing yet. --- synfig-studio/trunk/src/gtkmm/Makefile.am |6 +- .../trunk/src/gtkmm/widget_keyframe_list.cpp | 233 +--- .../trunk/src/gtkmm/widget_keyframe_list.h | 58 -- 3 files changed, 150 insertions(+), 147 deletions(-) Diff: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commitdiff;h=eb5f135abc7ac06543500f32362ab56d75370be5 -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Add the code to setup an instance of the keyframe list handler.
Module: synfig Branch: genete_master Commit: d9145bee28dfd34a12ff9c5d43f9fc850bd15c61 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=d9145bee28dfd34a12ff9c5d43f9fc850bd15c61 Author: Carlos Lopez car...@pcnuevo.(none) Date: Fri Jul 17 19:57:15 2009 +0200 Add the code to setup an instance of the keyframe list handler. --- synfig-studio/trunk/src/gtkmm/dock_timetrack.cpp | 11 +++ synfig-studio/trunk/src/gtkmm/dock_timetrack.h |5 - .../trunk/src/gtkmm/widget_keyframe_list.cpp | 13 - .../trunk/src/gtkmm/widget_keyframe_list.h |6 +- 4 files changed, 32 insertions(+), 3 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/dock_timetrack.cpp b/synfig-studio/trunk/src/gtkmm/dock_timetrack.cpp index a0f7fca..956c9e1 100644 --- a/synfig-studio/trunk/src/gtkmm/dock_timetrack.cpp +++ b/synfig-studio/trunk/src/gtkmm/dock_timetrack.cpp @@ -43,6 +43,7 @@ #include layerparamtreestore.h #include workarea.h #include widget_timeslider.h +#include widget_keyframe_list.h #include layerparamtreestore.h #include general.h #include synfig/timepointcollect.h @@ -405,6 +406,7 @@ Dock_Timetrack::Dock_Timetrack(): { table_=0; widget_timeslider_= new Widget_Timeslider(); + widget_kf_list_= new Widget_Keyframe_List(); int header_height = 0; if(getenv(SYNFIG_TIMETRACK_HEADER_HEIGHT)) @@ -413,6 +415,8 @@ Dock_Timetrack::Dock_Timetrack(): header_height = 22; widget_timeslider_-set_size_request(-1,header_height); + widget_kf_list_-set_size_request(-1,header_height); + hscrollbar_=new Gtk::HScrollbar(); vscrollbar_=new Gtk::VScrollbar(); } @@ -423,6 +427,7 @@ Dock_Timetrack::~Dock_Timetrack() delete hscrollbar_; delete vscrollbar_; delete widget_timeslider_; + delete widget_kf_list_; } void @@ -493,14 +498,20 @@ Dock_Timetrack::changed_canvas_view_vfunc(etl::loose_handleCanvasView canvas_v assert(tree_view); + widget_timeslider_-set_time_adjustment(canvas_view-time_adjustment()); widget_timeslider_-set_bounds_adjustment(canvas_view-time_window_adjustment()); widget_timeslider_-set_global_fps(canvas_view-get_canvas()-rend_desc().get_frame_rate()); + widget_kf_list_-set_time_adjustment(canvas_view-time_adjustment()); + widget_kf_list_-set_fps(canvas_view-get_canvas()-rend_desc().get_frame_rate()); + widget_kf_list_-set_kf_list(canvas_view-get_canvas()-keyframe_list()); + vscrollbar_-set_adjustment(*tree_view-get_vadjustment()); hscrollbar_-set_adjustment(canvas_view-time_window_adjustment()); table_=new Gtk::Table(2,2); table_-attach(*widget_timeslider_, 0, 1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::SHRINK); + table_-attach(*widget_kf_list_, 0, 1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::SHRINK); table_-attach(*tree_view, 0, 1, 1, 2, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND); table_-attach(*hscrollbar_, 0, 1, 2, 3, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::SHRINK); table_-attach(*vscrollbar_, 1, 2, 0, 2, Gtk::FILL|Gtk::SHRINK, Gtk::FILL|Gtk::EXPAND); diff --git a/synfig-studio/trunk/src/gtkmm/dock_timetrack.h b/synfig-studio/trunk/src/gtkmm/dock_timetrack.h index d103d9a..9da19fd 100644 --- a/synfig-studio/trunk/src/gtkmm/dock_timetrack.h +++ b/synfig-studio/trunk/src/gtkmm/dock_timetrack.h @@ -6,6 +6,7 @@ ** ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2009 Carlos López ** ** This package is free software; you can redistribute it and/or ** modify it under the terms of the GNU General Public License as @@ -40,12 +41,14 @@ namespace studio { class Widget_Timeslider; +class Widget_Keyframe_List; class Dock_Timetrack : public Dock_CanvasSpecific { Gtk::HScrollbar* hscrollbar_; Gtk::VScrollbar* vscrollbar_; Widget_Timeslider* widget_timeslider_; + Widget_Keyframe_List* widget_kf_list_; Gtk::Table* table_; protected: @@ -59,7 +62,7 @@ public: Dock_Timetrack(); ~Dock_Timetrack(); -}; // END of Dock_Keyframes +}; // END of Dock_Timetrack }; // END of namespace studio diff --git a/synfig-studio/trunk/src/gtkmm/widget_keyframe_list.cpp b/synfig-studio/trunk/src/gtkmm/widget_keyframe_list.cpp index d3269de..e0669c4 100644 --- a/synfig-studio/trunk/src/gtkmm/widget_keyframe_list.cpp +++ b/synfig-studio/trunk/src/gtkmm/widget_keyframe_list.cpp @@ -218,7 +218,7 @@ Widget_Keyframe_List::on_event(GdkEvent *event) t = floor(t*fps + 0.5)/fps; } bool stat=perform_move_kf(); - synfig::info(Dropping keyframe at: %s, t.get_string()); +
[Synfig-devl] Konstantin Dmitriev : Merge branch 'master' into zelgadis_master
Module: synfig Branch: genete_master Commit: e9a42a585dec26a8c0aabcfd6e12755f0f0f1156 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=e9a42a585dec26a8c0aabcfd6e12755f0f0f1156 Author: Konstantin Dmitriev ksee.zelga...@gmail.com Date: Thu Jul 16 20:21:26 2009 +0700 Merge branch 'master' into zelgadis_master --- -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Konstantin Dmitriev : synfigstudio-cph-monitor: Show small notice about script purpose.
Module: synfig Branch: genete_master Commit: d240a32754a4dea85ac6321527e3110671e2e1ec URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=d240a32754a4dea85ac6321527e3110671e2e1ec Author: Konstantin Dmitriev ksee.zelga...@gmail.com Date: Fri Jul 17 14:21:15 2009 +0700 synfigstudio-cph-monitor: Show small notice about script purpose. --- synfig-studio/trunk/synfigstudio-cph-monitor |3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/synfig-studio/trunk/synfigstudio-cph-monitor b/synfig-studio/trunk/synfigstudio-cph-monitor index 02fc18a..52d33ad 100755 --- a/synfig-studio/trunk/synfigstudio-cph-monitor +++ b/synfig-studio/trunk/synfigstudio-cph-monitor @@ -17,6 +17,8 @@ trap writelog INT init() { +echo Synfig Crash Monitor is a tool to collect statistics about synfig crashes. All information is collected locally in ~/.synfig/cph directory. +echo echo `date +%H:%M` Synfig Crash Monitor started. STARTED=0 RUNTIME=0 @@ -105,7 +107,6 @@ mainloop() if [ ! -e $P ]; then P=`which $P` fi - echo $P P=`dirname $P` echoAssuming synfig installed in $P. VERSION=`$P/synfig --info|head -n 1|cut -d '-' -f 2` -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Now the widget is fully working. Need a place to be stored and better size.
Module: synfig Branch: genete_master Commit: b5c3d66d7714b6a2b6a10eb968206c6a46b0f026 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=b5c3d66d7714b6a2b6a10eb968206c6a46b0f026 Author: Carlos Lopez car...@pcnuevo.(none) Date: Sat Jul 18 12:44:52 2009 +0200 Now the widget is fully working. Need a place to be stored and better size. --- synfig-studio/trunk/src/gtkmm/dock_timetrack.cpp |3 +- .../trunk/src/gtkmm/widget_keyframe_list.cpp | 52 ++-- .../trunk/src/gtkmm/widget_keyframe_list.h |9 +++ 3 files changed, 58 insertions(+), 6 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/dock_timetrack.cpp b/synfig-studio/trunk/src/gtkmm/dock_timetrack.cpp index 7f0c253..c13bb71 100644 --- a/synfig-studio/trunk/src/gtkmm/dock_timetrack.cpp +++ b/synfig-studio/trunk/src/gtkmm/dock_timetrack.cpp @@ -504,8 +504,7 @@ Dock_Timetrack::changed_canvas_view_vfunc(etl::loose_handleCanvasView canvas_v widget_timeslider_-set_global_fps(canvas_view-get_canvas()-rend_desc().get_frame_rate()); widget_kf_list_-set_time_adjustment(canvas_view-time_adjustment()); - widget_kf_list_-set_fps(canvas_view-get_canvas()-rend_desc().get_frame_rate()); - widget_kf_list_-set_kf_list(canvas_view-get_canvas()-keyframe_list()); + widget_kf_list_-set_canvas_interface(canvas_view-canvas_interface()); vscrollbar_-set_adjustment(*tree_view-get_vadjustment()); hscrollbar_-set_adjustment(canvas_view-time_window_adjustment()); diff --git a/synfig-studio/trunk/src/gtkmm/widget_keyframe_list.cpp b/synfig-studio/trunk/src/gtkmm/widget_keyframe_list.cpp index dba098d..9ab98ba 100644 --- a/synfig-studio/trunk/src/gtkmm/widget_keyframe_list.cpp +++ b/synfig-studio/trunk/src/gtkmm/widget_keyframe_list.cpp @@ -48,6 +48,7 @@ using namespace etl; using namespace synfig; using namespace studio; + /* === M A C R O S = */ /* === G L O B A L S === */ @@ -165,23 +166,47 @@ void Widget_Keyframe_List::set_kf_list(synfig::KeyframeList* x) { kf_list_=x; - if(kf_list_-size()) - set_selected_keyframe(selected_none); + set_selected_keyframe(selected_none); + selected_=false; + dragging_=false; } void Widget_Keyframe_List::set_selected_keyframe(const synfig::Keyframe x) { selected_kf=x; + selected_=true; dragging_kf_time=selected_kf.get_time(); //signal_keyframe_selected_(selected_kf); + dragging_=false; queue_draw(); } bool Widget_Keyframe_List::perform_move_kf() { - return false; + if(!selected_) + return false; + if(dragging_kf_time == selected_kf.get_time()) + return false; + synfigapp::Action::Handle action(synfigapp::Action::create(KeyframeSet)); + if(!action) + return false; + selected_kf.set_time(dragging_kf_time); + action-set_param(canvas,canvas_interface_-get_canvas()); + action-set_param(canvas_interface,canvas_interface_); + action-set_param(keyframe,selected_kf); + //synfig::info(DELTA: %s, (dragging_kf_time-selected_kf.get_time()).get_string().c_str()); + try + { + canvas_interface_-get_instance()-perform_action(action); + } + catch(...) + { + return false; + } + queue_draw(); + return true; } bool @@ -243,6 +268,7 @@ Widget_Keyframe_List::on_event(GdkEvent *event) ) { set_selected_keyframe(selected_none); + selected_=false; synfig::info(Selected keyframe set to none); synfig::info(Distance to prev %s, (t-prev_t).get_string().c_str()); synfig::info(Distance to next %s, (next_t-t).get_string().c_str()); @@ -254,6 +280,7 @@ Widget_Keyframe_List::on_event(GdkEvent *event) set_selected_keyframe(*(kf_list_-find_prev(t))); synfig::info(Selected keyframe set to previous); queue_draw(); + selected_=true; return true; } else @@ -261,6 +288,7 @@ Widget_Keyframe_List::on_event(GdkEvent *event) set_selected_keyframe(*(kf_list_-find_next(t))); synfig::info(Selected keyframe set to next); queue_draw(); +
[Synfig-devl] Carlos Lopez : Make less verbose the output. Add some comments. No code change
Module: synfig Branch: genete_master Commit: 6ca831840a433a896022504f8314ceec00f81950 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=6ca831840a433a896022504f8314ceec00f81950 Author: Carlos Lopez car...@pcnuevo.(none) Date: Sat Jul 18 14:33:44 2009 +0200 Make less verbose the output. Add some comments. No code change --- .../trunk/src/gtkmm/widget_keyframe_list.cpp | 22 ++-- 1 files changed, 11 insertions(+), 11 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/widget_keyframe_list.cpp b/synfig-studio/trunk/src/gtkmm/widget_keyframe_list.cpp index 9ab98ba..1e597ce 100644 --- a/synfig-studio/trunk/src/gtkmm/widget_keyframe_list.cpp +++ b/synfig-studio/trunk/src/gtkmm/widget_keyframe_list.cpp @@ -196,7 +196,6 @@ Widget_Keyframe_List::perform_move_kf() action-set_param(canvas,canvas_interface_-get_canvas()); action-set_param(canvas_interface,canvas_interface_); action-set_param(keyframe,selected_kf); - //synfig::info(DELTA: %s, (dragging_kf_time-selected_kf.get_time()).get_string().c_str()); try { canvas_interface_-get_instance()-perform_action(action); @@ -227,7 +226,7 @@ Widget_Keyframe_List::on_event(GdkEvent *event) //Do not respond mouse events if the list is empty if(!kf_list_-size()) { - synfig::info(Keyframe list empty); + // synfig::info(Keyframe list empty); return true; } @@ -237,7 +236,7 @@ Widget_Keyframe_List::on_event(GdkEvent *event) case GDK_MOTION_NOTIFY: if(editable_) { - // stick to integer frames. + // stick to integer frames. It can be optional in the future if(fps) { t = floor(t*fps + 0.5)/fps; @@ -253,11 +252,11 @@ Widget_Keyframe_List::on_event(GdkEvent *event) dragging_=false; if(event-button.button==1) { - synfig::info(Looking keyframe at %s, t.get_string().c_str()); + /*synfig::info(Looking keyframe at %s, t.get_string().c_str()); synfig::info(Total amount of keyframes %i, kf_list_-size()); synfig::info(Time ratio %s,time_ratio.get_string().c_str()); synfig::info(Bottom %s,bottom.get_string().c_str()); - synfig::info(Top %s,top.get_string().c_str()); + synfig::info(Top %s,top.get_string().c_str());*/ if(editable_) { synfig::Time prev_t,next_t; @@ -269,16 +268,16 @@ Widget_Keyframe_List::on_event(GdkEvent *event) { set_selected_keyframe(selected_none); selected_=false; - synfig::info(Selected keyframe set to none); + /*synfig::info(Selected keyframe set to none); synfig::info(Distance to prev %s, (t-prev_t).get_string().c_str()); - synfig::info(Distance to next %s, (next_t-t).get_string().c_str()); + synfig::info(Distance to next %s, (next_t-t).get_string().c_str());*/ queue_draw(); return true; } else if ((t-prev_t)(next_t-t)) { set_selected_keyframe(*(kf_list_-find_prev(t))); - synfig::info(Selected keyframe set to previous); + //synfig::info(Selected keyframe set to previous); queue_draw(); selected_=true; return true; @@ -286,7 +285,7 @@ Widget_Keyframe_List::on_event(GdkEvent *event) else { set_selected_keyframe(*(kf_list_-find_next(t))); - synfig::info(Selected keyframe set to next); + //synfig::info(Selected keyframe set to next); queue_draw(); selected_=true; return true; @@ -312,8 +311,8 @@ Widget_Keyframe_List::on_event(GdkEvent *event) if(dragging_) stat=perform_move_kf(); dragging_=false; - synfig::info(Dropping keyframe
[Synfig-devl] Konstantin Dmitriev : Revision detection code cleanup.
Module: synfig Branch: genete_master Commit: 66e784568be71ba8f42919341417bfa06a690458 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=66e784568be71ba8f42919341417bfa06a690458 Author: Konstantin Dmitriev ksee.zelga...@gmail.com Date: Sat Jul 18 23:47:39 2009 +0700 Revision detection code cleanup. --- synfig-core/trunk/build_tools/autorevision.sh | 10 +- synfig-studio/trunk/build_tools/autorevision.sh |2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/synfig-core/trunk/build_tools/autorevision.sh b/synfig-core/trunk/build_tools/autorevision.sh index 9e31cd1..e2d247f 100644 --- a/synfig-core/trunk/build_tools/autorevision.sh +++ b/synfig-core/trunk/build_tools/autorevision.sh @@ -15,8 +15,8 @@ get_git_id(){ export SCM=git - export REVISION=`cd $1; git log --no-color -1 | head -n 1 | cut -f 2 -d ' '` - BRANCH=`cd $1; git branch -a --no-color --contains HEAD | sed -e s/\*\ // | sed -e s/\(no\ branch\)//` + export REVISION_ID=`cd $1; git log --no-color -1 | head -n 1 | cut -f 2 -d ' '` + export BRANCH=`cd $1; git branch -a --no-color --contains HEAD | sed -e s/\*\ // | sed -e s/\(no\ branch\)//` if ( echo $BRANCH | egrep origin/master /dev/null ); then #give a priority to master branch BRANCH='master' @@ -24,8 +24,8 @@ get_git_id(){ BRANCH=`echo $BRANCH | cut -d ' ' -f 1` BRANCH=${BRANCH#*/} fi - export DATE=`git-show --pretty=format:%ci HEAD | head -c 10` - DATE=${DATE:0:4}${DATE:5:2}${DATE:8:2} + export REVISION=`git-show --pretty=format:%ci HEAD | head -c 10` + REVISION=${REVISION:0:4}${REVISION:5:2}${REVISION:8:2} export COMPARE=$1/.git/ # The extra * at the end is for Modified #REVISION=$REVISION`cd $1; [[ $(git status 2 /dev/null | tail -n1) != nothing to commit (working directory clean) ]] echo *` @@ -94,7 +94,7 @@ if [ x = x$DEVEL_VERSION ] ; then elif [ $SCM = git-svn ] ; then DEVEL_VERSION=SVN r$REVISION (via git) elif [ $SCM = git ] ; then - DEVEL_VERSION=Development version: $DATE \\nBranch: ${BRANCH} \\nRevision ID: $REVISION + DEVEL_VERSION=Revision: $REVISION\\nBranch: ${BRANCH}\\nRevision ID: $REVISION_ID elif [ $SCM = manual ] ; then DEVEL_VERSION=$REVISION (manually configured) fi diff --git a/synfig-studio/trunk/build_tools/autorevision.sh b/synfig-studio/trunk/build_tools/autorevision.sh index e7e7b7a..27b2352 100644 --- a/synfig-studio/trunk/build_tools/autorevision.sh +++ b/synfig-studio/trunk/build_tools/autorevision.sh @@ -16,7 +16,7 @@ get_git_id(){ export SCM=git export REVISION_ID=`cd $1; git log --no-color -1 | head -n 1 | cut -f 2 -d ' '` - BRANCH=`cd $1; git branch -a --no-color --contains HEAD | sed -e s/\*\ // | sed -e s/\(no\ branch\)//` + export BRANCH=`cd $1; git branch -a --no-color --contains HEAD | sed -e s/\*\ // | sed -e s/\(no\ branch\)//` if ( echo $BRANCH | egrep origin/master /dev/null ); then #give a priority to master branch BRANCH='master' -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Konstantin Dmitriev : synfigstudio-cph-monitor: display version correctly if built on (no branch).
Module: synfig Branch: genete_master Commit: e24d1cb036230917979fd3893e88ac2373e70cac URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=e24d1cb036230917979fd3893e88ac2373e70cac Author: Konstantin Dmitriev ksee.zelga...@gmail.com Date: Sat Jul 18 22:53:21 2009 +0700 synfigstudio-cph-monitor: display version correctly if built on (no branch). --- synfig-studio/trunk/synfigstudio-cph-monitor |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/synfig-studio/trunk/synfigstudio-cph-monitor b/synfig-studio/trunk/synfigstudio-cph-monitor index 52d33ad..57ad242 100755 --- a/synfig-studio/trunk/synfigstudio-cph-monitor +++ b/synfig-studio/trunk/synfigstudio-cph-monitor @@ -108,14 +108,14 @@ mainloop() P=`which $P` fi P=`dirname $P` - echoAssuming synfig installed in $P. VERSION=`$P/synfig --info|head -n 1|cut -d '-' -f 2` RELEASE=`$P/synfig --info|egrep Development version:|cut -d ' ' -f 3` - BRANCH=`$P/synfig --info|egrep Branch:|cut -d ' ' -f 2` + BRANCH=`$P/synfig --info|egrep Branch:|cut -d ' ' -f 2-3` if [[ $BRANCH == '(no branch)' ]]; then BRANCH=`$P/synfig --info|egrep Revision ID:|cut -d ' ' -f 3` fi echo `date +%H:%M` Synfig $VERSION.$RELEASE.$BRANCH started. + echo `date +%H:%M` Assuming Synfig installed in $P. else let RUNTIME=$RUNTIME+1 fi -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : It looks ugly but it is shown. Doesn't work though
Module: synfig Branch: genete_master Commit: 7b4f66dfa1f4e6172e8826d3f91588fa00edde11 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=7b4f66dfa1f4e6172e8826d3f91588fa00edde11 Author: Carlos Lopez car...@pcnuevo.(none) Date: Fri Jul 17 20:02:56 2009 +0200 It looks ugly but it is shown. Doesn't work though --- synfig-studio/trunk/src/gtkmm/dock_timetrack.cpp | 10 +- 1 files changed, 5 insertions(+), 5 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/dock_timetrack.cpp b/synfig-studio/trunk/src/gtkmm/dock_timetrack.cpp index 956c9e1..f8a8feb 100644 --- a/synfig-studio/trunk/src/gtkmm/dock_timetrack.cpp +++ b/synfig-studio/trunk/src/gtkmm/dock_timetrack.cpp @@ -509,12 +509,12 @@ Dock_Timetrack::changed_canvas_view_vfunc(etl::loose_handleCanvasView canvas_v vscrollbar_-set_adjustment(*tree_view-get_vadjustment()); hscrollbar_-set_adjustment(canvas_view-time_window_adjustment()); - table_=new Gtk::Table(2,2); + table_=new Gtk::Table(2,3); table_-attach(*widget_timeslider_, 0, 1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::SHRINK); - table_-attach(*widget_kf_list_, 0, 1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::SHRINK); - table_-attach(*tree_view, 0, 1, 1, 2, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND); - table_-attach(*hscrollbar_, 0, 1, 2, 3, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::SHRINK); - table_-attach(*vscrollbar_, 1, 2, 0, 2, Gtk::FILL|Gtk::SHRINK, Gtk::FILL|Gtk::EXPAND); + table_-attach(*widget_kf_list_, 0, 1, 1, 2, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::SHRINK); + table_-attach(*tree_view, 0, 1, 2, 3, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND); + table_-attach(*hscrollbar_, 0, 1, 3, 4, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::SHRINK); + table_-attach(*vscrollbar_, 1, 2, 0, 3, Gtk::FILL|Gtk::SHRINK, Gtk::FILL|Gtk::EXPAND); add(*table_); //add(*last_widget_curves_); -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : A little smaller, and better look. I don' t like it so much though. Have to think other solution.
Module: synfig Branch: genete_master Commit: b22edfe1a90f8452b20a6f71816f0618fd2a9d37 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=b22edfe1a90f8452b20a6f71816f0618fd2a9d37 Author: Carlos Lopez car...@pcnuevo.(none) Date: Sat Jul 18 22:00:13 2009 +0200 A little smaller, and better look. I don't like it so much though. Have to think other solution. --- synfig-studio/trunk/src/gtkmm/canvasview.cpp | 22 +-- synfig-studio/trunk/src/gtkmm/canvasview.h |4 +++ synfig-studio/trunk/src/gtkmm/dock_timetrack.cpp |4 +- .../trunk/src/gtkmm/widget_keyframe_list.cpp | 13 +-- .../trunk/src/gtkmm/widget_timeslider.cpp |2 +- 5 files changed, 28 insertions(+), 17 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index a76b1a0..9675f03 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -690,6 +690,7 @@ CanvasView::CanvasView(etl::loose_handleInstance instance,etl::handlesynfigap statusbar (manage(new class Gtk::Statusbar())), timeslider (new Widget_Timeslider), + widget_kf_list (new Widget_Keyframe_List), ui_interface_ (new CanvasViewUIInterface(this)), selection_manager_ (new CanvasViewSelectionManager(this)), @@ -965,7 +966,13 @@ CanvasView::create_time_bar() //Widget_Timeslider *time_scroll = manage(new Widget_Timeslider); timeslider-set_time_adjustment(time_adjustment()); timeslider-set_bounds_adjustment(time_window_adjustment()); + //timeslider-set_size_request(-1,12); //layout_table-attach(*timeslider, 0, 1, 2, 3, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL); + //Setup the keyframe list widget + widget_kf_list-set_time_adjustment(time_adjustment()); + widget_kf_list-set_canvas_interface(canvas_interface()); + widget_kf_list-show(); + widget_kf_list-set_size_request(-1,8); tooltips.set_tip(*time_window_scroll,_(Moves the time window)); tooltips.set_tip(*timeslider,_(Changes the current time)); @@ -1033,16 +1040,17 @@ CanvasView::create_time_bar() keyframedial-show(); keyframebutton=keyframedial-get_lock_button(); - timebar = manage(new class Gtk::Table(5, 4, false)); + timebar = Gtk::manage(new class Gtk::Table(5, 4, false)); //Attach widgets to the timebar - timebar-attach(*manage(disp_audio), 1, 5, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); - timebar-attach(*framedial, 0, 1, 2, 3,Gtk::SHRINK, Gtk::SHRINK); - timebar-attach(*current_time_widget, 0, 1, 1, 2, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); - timebar-attach(*timeslider, 1, 3, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); + //timebar-attach(*manage(disp_audio), 1, 5, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); + timebar-attach(*current_time_widget, 0, 1, 0, 2, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); + timebar-attach(*framedial, 0, 1, 2, 3, Gtk::SHRINK, Gtk::SHRINK); + timebar-attach(*timeslider, 1, 3, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); + timebar-attach(*widget_kf_list, 1, 3, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); timebar-attach(*time_window_scroll, 1, 3, 2, 3, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); - timebar-attach(*keyframedial, 3, 4, 1, 2, Gtk::SHRINK, Gtk::SHRINK); - timebar-attach(*animatebutton, 4, 5, 1, 2, Gtk::SHRINK, Gtk::SHRINK); + timebar-attach(*keyframedial, 3, 4, 0, 2, Gtk::SHRINK, Gtk::SHRINK); + timebar-attach(*animatebutton, 4, 5, 0, 2, Gtk::SHRINK, Gtk::SHRINK); //timebar-attach(*keyframebutton, 1, 2, 3, 4, Gtk::SHRINK, Gtk::SHRINK); timebar-show(); diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.h b/synfig-studio/trunk/src/gtkmm/canvasview.h index a33fb26..cddcbe2 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.h +++ b/synfig-studio/trunk/src/gtkmm/canvasview.h @@ -70,6 +70,7 @@ #include framedial.h #include toggleducksdial.h #include resolutiondial.h +#include widget_keyframe_list.h #include duckmatic.h #include gtkmm/scale.h @@ -294,6 +295,9 @@ private: //! Time slider class. Same than the Time track panel std::auto_ptrWidget_Timeslider timeslider; + //!Keyframe list slider + std::auto_ptrWidget_Keyframe_List widget_kf_list; + std::listsigc::connection duck_changed_connections; /* DEBUGPOINT_CLASS(8); diff --git a/synfig-studio/trunk/src/gtkmm/dock_timetrack.cpp b/synfig-studio/trunk/src/gtkmm/dock_timetrack.cpp index c13bb71..ac36340 100644 --- a/synfig-studio/trunk/src/gtkmm/dock_timetrack.cpp +++ b/synfig-studio/trunk/src/gtkmm/dock_timetrack.cpp @@ -414,8 +414,8 @@ Dock_Timetrack::Dock_Timetrack(): if
[Synfig-devl] Konstantin Dmitriev : Make synfigstudio-cph-monitor compatible with latest changes. Enable logging of git revision ID. Minor fixes.
Module: synfig Branch: genete_master Commit: 0a146b70060f29b894a369af20396d7f4246d107 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=0a146b70060f29b894a369af20396d7f4246d107 Author: Konstantin Dmitriev ksee.zelga...@gmail.com Date: Sun Jul 19 22:39:40 2009 +0700 Make synfigstudio-cph-monitor compatible with latest changes. Enable logging of git revision ID. Minor fixes. --- synfig-studio/trunk/synfigstudio-cph-monitor | 13 - 1 files changed, 8 insertions(+), 5 deletions(-) diff --git a/synfig-studio/trunk/synfigstudio-cph-monitor b/synfig-studio/trunk/synfigstudio-cph-monitor index 57ad242..76f77f4 100755 --- a/synfig-studio/trunk/synfigstudio-cph-monitor +++ b/synfig-studio/trunk/synfigstudio-cph-monitor @@ -17,7 +17,8 @@ trap writelog INT init() { -echo Synfig Crash Monitor is a tool to collect statistics about synfig crashes. All information is collected locally in ~/.synfig/cph directory. +echo Synfig Crash Monitor is a tool to collect statistics about synfig crashes. +echo All information is collected locally in ~/.synfig/cph directory. echo echo `date +%H:%M` Synfig Crash Monitor started. STARTED=0 @@ -25,6 +26,7 @@ RUNTIME=0 VERSION='' RELEASE='' BRANCH='' +REVISION_ID='' CRASH=0 [ ! -d ~/.synfig/cph ] mkdir -p ~/.synfig/cph || true } @@ -47,7 +49,7 @@ writelog() fi fi #write log - echo $VERSION/$BRANCH/$RELEASE $RUNTIME $CRASH ~/.synfig/cph/log + echo $VERSION/$BRANCH/$RELEASE/$REVISION_ID $RUNTIME $CRASH ~/.synfig/cph/log CRASH=0 RUNTIME=0 else @@ -109,12 +111,13 @@ mainloop() fi P=`dirname $P` VERSION=`$P/synfig --info|head -n 1|cut -d '-' -f 2` - RELEASE=`$P/synfig --info|egrep Development version:|cut -d ' ' -f 3` + RELEASE=`$P/synfig --info|egrep Revision:|cut -d ' ' -f 2` BRANCH=`$P/synfig --info|egrep Branch:|cut -d ' ' -f 2-3` + REVISION_ID=`$P/synfig --info|egrep Revision ID:|cut -d ' ' -f 3` if [[ $BRANCH == '(no branch)' ]]; then - BRANCH=`$P/synfig --info|egrep Revision ID:|cut -d ' ' -f 3` + BRANCH=$REVISION_ID fi - echo `date +%H:%M` Synfig $VERSION.$RELEASE.$BRANCH started. + echo `date +%H:%M` Synfig $VERSION.$RELEASE.$BRANCH.$REVISION_ID started. echo `date +%H:%M` Assuming Synfig installed in $P. else let RUNTIME=$RUNTIME+1 -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Konstantin Dmitriev : Detect branch better when getting git revision information
Module: synfig Branch: genete_master Commit: f6235817a7a2b5a66539c494454daf2af04b2a4b URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=f6235817a7a2b5a66539c494454daf2af04b2a4b Author: Konstantin Dmitriev ksee.zelga...@gmail.com Date: Sat Jul 18 22:51:57 2009 +0700 Detect branch better when getting git revision information (for 'synfig --info' and about dialog). --- synfig-core/trunk/build_tools/autorevision.sh |9 - synfig-studio/trunk/build_tools/autorevision.sh |9 - 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/synfig-core/trunk/build_tools/autorevision.sh b/synfig-core/trunk/build_tools/autorevision.sh index 2ccdb01..9e31cd1 100644 --- a/synfig-core/trunk/build_tools/autorevision.sh +++ b/synfig-core/trunk/build_tools/autorevision.sh @@ -16,7 +16,14 @@ get_git_id(){ export SCM=git export REVISION=`cd $1; git log --no-color -1 | head -n 1 | cut -f 2 -d ' '` - export BRANCH=`cd $1; git branch --no-color 2 /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'` + BRANCH=`cd $1; git branch -a --no-color --contains HEAD | sed -e s/\*\ // | sed -e s/\(no\ branch\)//` + if ( echo $BRANCH | egrep origin/master /dev/null ); then + #give a priority to master branch + BRANCH='master' + else + BRANCH=`echo $BRANCH | cut -d ' ' -f 1` + BRANCH=${BRANCH#*/} + fi export DATE=`git-show --pretty=format:%ci HEAD | head -c 10` DATE=${DATE:0:4}${DATE:5:2}${DATE:8:2} export COMPARE=$1/.git/ diff --git a/synfig-studio/trunk/build_tools/autorevision.sh b/synfig-studio/trunk/build_tools/autorevision.sh index d8ee63b..e7e7b7a 100644 --- a/synfig-studio/trunk/build_tools/autorevision.sh +++ b/synfig-studio/trunk/build_tools/autorevision.sh @@ -16,7 +16,14 @@ get_git_id(){ export SCM=git export REVISION_ID=`cd $1; git log --no-color -1 | head -n 1 | cut -f 2 -d ' '` - export BRANCH=`cd $1; git branch --no-color 2 /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'` + BRANCH=`cd $1; git branch -a --no-color --contains HEAD | sed -e s/\*\ // | sed -e s/\(no\ branch\)//` + if ( echo $BRANCH | egrep origin/master /dev/null ); then + #give a priority to master branch + BRANCH='master' + else + BRANCH=`echo $BRANCH | cut -d ' ' -f 1` + BRANCH=${BRANCH#*/} + fi export REVISION=`git-show --pretty=format:%ci HEAD | head -c 10` REVISION=${REVISION:0:4}${REVISION:5:2}${REVISION:8:2} export COMPARE=$1/.git/ -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Added code to fix the shown of the keyfrmae list widget. It is not fully working at the moment.
Module: synfig Branch: genete_master Commit: dd3f7a1496c6ac179f17ca1d940cc4310333891e URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=dd3f7a1496c6ac179f17ca1d940cc4310333891e Author: Carlos Lopez car...@pcnuevo.(none) Date: Fri Jul 17 20:56:26 2009 +0200 Added code to fix the shown of the keyfrmae list widget. It is not fully working at the moment. --- synfig-studio/trunk/src/gtkmm/dock_timetrack.cpp |2 +- .../trunk/src/gtkmm/widget_keyframe_list.cpp | 32 +-- .../trunk/src/gtkmm/widget_keyframe_list.h |7 ++-- 3 files changed, 27 insertions(+), 14 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/dock_timetrack.cpp b/synfig-studio/trunk/src/gtkmm/dock_timetrack.cpp index f8a8feb..7f0c253 100644 --- a/synfig-studio/trunk/src/gtkmm/dock_timetrack.cpp +++ b/synfig-studio/trunk/src/gtkmm/dock_timetrack.cpp @@ -505,7 +505,7 @@ Dock_Timetrack::changed_canvas_view_vfunc(etl::loose_handleCanvasView canvas_v widget_kf_list_-set_time_adjustment(canvas_view-time_adjustment()); widget_kf_list_-set_fps(canvas_view-get_canvas()-rend_desc().get_frame_rate()); - widget_kf_list_-set_kf_list(canvas_view-get_canvas()-keyframe_list()); + widget_kf_list_-set_kf_list(canvas_view-get_canvas()-keyframe_list()); vscrollbar_-set_adjustment(*tree_view-get_vadjustment()); hscrollbar_-set_adjustment(canvas_view-time_window_adjustment()); diff --git a/synfig-studio/trunk/src/gtkmm/widget_keyframe_list.cpp b/synfig-studio/trunk/src/gtkmm/widget_keyframe_list.cpp index e0669c4..835f814 100644 --- a/synfig-studio/trunk/src/gtkmm/widget_keyframe_list.cpp +++ b/synfig-studio/trunk/src/gtkmm/widget_keyframe_list.cpp @@ -60,7 +60,8 @@ Widget_Keyframe_List::Widget_Keyframe_List(): editable_(true), adj_default(0,0,2,1/24,10/24), adj_timescale(0), - fps(24) + fps(24), + kf_list_(default_kf_list_) { set_size_request(-1,64); //!This signal is called when the widget need to be redrawn @@ -80,6 +81,7 @@ Widget_Keyframe_List::~Widget_Keyframe_List() bool Widget_Keyframe_List::redraw(GdkEventExpose */*bleh*/) { + if (kf_list_-empty()) return false; const int h(get_height()); const int w(get_width()); @@ -98,13 +100,13 @@ Widget_Keyframe_List::redraw(GdkEventExpose */*bleh*/) } //! draw a background - gc-set_rgb_fg_color(Gdk::Color(#7f7f7f)); - get_window()-draw_rectangle(gc, false, 0, 0, w, h); + gc-set_rgb_fg_color(Gdk::Color(#FF)); + get_window()-draw_rectangle(gc, true, 0, 0, w, h); //!Loop all the keyframes synfig::KeyframeList::iterator iter,selected_iter; bool show_selected(false); - for(iter=kf_list_.begin();iter!=kf_list_.end();iter++) + for(iter=kf_list_-begin();iter!=kf_list_-end();iter++) { //!do not draw keyframes out of the widget boundaries if (iter-get_time()top || iter-get_time()bottom) @@ -139,11 +141,11 @@ Widget_Keyframe_List::redraw(GdkEventExpose */*bleh*/) void -Widget_Keyframe_List::set_kf_list(const synfig::KeyframeList x) +Widget_Keyframe_List::set_kf_list(synfig::KeyframeList* x) { kf_list_=x; - if(kf_list_.size()) - set_selected_keyframe(*kf_list_.find_next(synfig::Time::zero())); + if(kf_list_-size()) + set_selected_keyframe(*kf_list_-find_next(synfig::Time::zero())); } void @@ -174,13 +176,21 @@ Widget_Keyframe_List::on_event(GdkEvent *event) if(pos1.0f)pos=1.0f; //! The time where the event x is synfig::Time t((float)(pos*(top-bottom))); - //! here the guts of the event + + //Do not respond mouse events if the list is empty + if(!kf_list_-size()) + { + synfig::info(Keyframe list empty); + return true; + } + + //! here the guts of the event switch(event-type) { case GDK_MOTION_NOTIFY: if(editable_) { - if(!kf_list_.size()) return true; + // stick to integer frames. if(fps) { @@ -195,10 +205,12 @@ Widget_Keyframe_List::on_event(GdkEvent *event) changed_=false; if(event-button.button==1) { + synfig::info(Looking keyframe at %s, t.get_string().c_str()); + synfig::info(Total amount of keyframes %i, kf_list_-size()); if(editable_) { synfig::KeyframeList::iterator selected; - selected = kf_list_.find_next(t); + selected = kf_list_-find_next(t);
[Synfig-devl] Konstantin Dmitriev : git-show is deprecated - don't use it.
Module: synfig Branch: genete_master Commit: d907815c1287e74a55891b220adcfaef8d0ed03d URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=d907815c1287e74a55891b220adcfaef8d0ed03d Author: Konstantin Dmitriev ksee.zelga...@gmail.com Date: Sun Jul 19 22:34:01 2009 +0700 git-show is deprecated - don't use it. --- synfig-core/trunk/build_tools/autorevision.sh |2 +- synfig-studio/trunk/build_tools/autorevision.sh |2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/synfig-core/trunk/build_tools/autorevision.sh b/synfig-core/trunk/build_tools/autorevision.sh index e2d247f..f898b10 100644 --- a/synfig-core/trunk/build_tools/autorevision.sh +++ b/synfig-core/trunk/build_tools/autorevision.sh @@ -24,7 +24,7 @@ get_git_id(){ BRANCH=`echo $BRANCH | cut -d ' ' -f 1` BRANCH=${BRANCH#*/} fi - export REVISION=`git-show --pretty=format:%ci HEAD | head -c 10` + export REVISION=`git show --pretty=format:%ci HEAD | head -c 10` REVISION=${REVISION:0:4}${REVISION:5:2}${REVISION:8:2} export COMPARE=$1/.git/ # The extra * at the end is for Modified diff --git a/synfig-studio/trunk/build_tools/autorevision.sh b/synfig-studio/trunk/build_tools/autorevision.sh index 27b2352..e6516b1 100644 --- a/synfig-studio/trunk/build_tools/autorevision.sh +++ b/synfig-studio/trunk/build_tools/autorevision.sh @@ -24,7 +24,7 @@ get_git_id(){ BRANCH=`echo $BRANCH | cut -d ' ' -f 1` BRANCH=${BRANCH#*/} fi - export REVISION=`git-show --pretty=format:%ci HEAD | head -c 10` + export REVISION=`git show --pretty=format:%ci HEAD | head -c 10` REVISION=${REVISION:0:4}${REVISION:5:2}${REVISION:8:2} export COMPARE=$1/.git/ # The extra * at the end is for Modified -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Fix bug for the modification of the keyframe length.
Module: synfig Branch: genete_master Commit: ccdb7642df27ee84d641dc7c8a63f5fffbce2665 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=ccdb7642df27ee84d641dc7c8a63f5fffbce2665 Author: Carlos Lopez car...@pcnuevo.(none) Date: Wed Jul 22 17:47:39 2009 +0200 Fix bug for the modification of the keyframe length. Now, modify the keyframe length column, shifts the rest of keyframes form the modified keyframe to the end of time. --- .../src/synfigapp/actions/keyframesetdelta.cpp |5 - 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/synfig-studio/trunk/src/synfigapp/actions/keyframesetdelta.cpp b/synfig-studio/trunk/src/synfigapp/actions/keyframesetdelta.cpp index 97898c3..6cd262a 100644 --- a/synfig-studio/trunk/src/synfigapp/actions/keyframesetdelta.cpp +++ b/synfig-studio/trunk/src/synfigapp/actions/keyframesetdelta.cpp @@ -178,7 +178,10 @@ Action::KeyframeSetDelta::perform() // Time location(keyframe.get_time()); Time location(get_canvas()-keyframe_list().find(keyframe)-get_time()); - Time delta(delta); +// This line sets delta to 0s regardless to any previous value of delta. +// I think it was here for symmetry to the undo() operation. +// It was causing that the Set delta operation was faulty. Now works! +// Time delta(delta); get_canvas()-keyframe_list().insert_time(location,delta); -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Forgot to commit those two files
Module: synfig Branch: genete_master Commit: 723347b927dd88f5e127484d6ec33149206042ea URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=723347b927dd88f5e127484d6ec33149206042ea Author: Carlos Lopez car...@pcnuevo.(none) Date: Tue Jul 21 01:43:49 2009 +0200 Forgot to commit those two files --- synfig-studio/trunk/src/gtkmm/canvasview.cpp |4 ++-- synfig-studio/trunk/src/gtkmm/dock_timetrack.cpp |4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index da2e672..6e40ea1 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -1046,8 +1046,8 @@ CanvasView::create_time_bar() //timebar-attach(*manage(disp_audio), 1, 5, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); timebar-attach(*current_time_widget, 0, 1, 0, 2, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); timebar-attach(*framedial, 0, 1, 2, 3, Gtk::SHRINK, Gtk::SHRINK); - timebar-attach(*timeslider, 1, 3, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL); - timebar-attach(*widget_kf_list, 1, 3, 1, 2, Gtk::EXPAND|Gtk::FILL,Gtk::EXPAND|Gtk::FILL); + timebar-attach(*timeslider, 1, 3, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL); + timebar-attach(*widget_kf_list, 1, 3, 0, 1, Gtk::EXPAND|Gtk::FILL,Gtk::EXPAND|Gtk::FILL); timebar-attach(*time_window_scroll, 1, 3, 2, 3, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); timebar-attach(*keyframedial, 3, 4, 0, 2, Gtk::SHRINK, Gtk::SHRINK); timebar-attach(*animatebutton, 4, 5, 0, 2, Gtk::SHRINK, Gtk::SHRINK); diff --git a/synfig-studio/trunk/src/gtkmm/dock_timetrack.cpp b/synfig-studio/trunk/src/gtkmm/dock_timetrack.cpp index c070e8b..1255cd2 100644 --- a/synfig-studio/trunk/src/gtkmm/dock_timetrack.cpp +++ b/synfig-studio/trunk/src/gtkmm/dock_timetrack.cpp @@ -509,8 +509,8 @@ Dock_Timetrack::changed_canvas_view_vfunc(etl::loose_handleCanvasView canvas_v vscrollbar_-set_adjustment(*tree_view-get_vadjustment()); hscrollbar_-set_adjustment(canvas_view-time_window_adjustment()); table_=new Gtk::Table(2,3); - table_-attach(*widget_timeslider_, 0, 1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::SHRINK); - table_-attach(*widget_kf_list_, 0, 1, 1, 2, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::SHRINK); + table_-attach(*widget_timeslider_, 0, 1, 1, 2, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::SHRINK); + table_-attach(*widget_kf_list_, 0, 1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::SHRINK); table_-attach(*tree_view, 0, 1, 2, 3, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND); table_-attach(*hscrollbar_, 0, 1, 3, 4, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::SHRINK); table_-attach(*vscrollbar_, 1, 2, 0, 3, Gtk::FILL|Gtk::SHRINK, Gtk::FILL|Gtk::EXPAND); -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Konstantin Dmitriev : Detect path to .git dir automatically.
Module: synfig Branch: genete_master Commit: 800a4e11123a4f0248eb37f7a79fd6a9b4b98c1c URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=800a4e11123a4f0248eb37f7a79fd6a9b4b98c1c Author: Konstantin Dmitriev ksee.zelga...@gmail.com Date: Fri Jul 24 22:36:57 2009 +0700 Detect path to .git dir automatically. --- synfig-core/trunk/build_tools/autorevision.sh |6 +++--- synfig-studio/trunk/build_tools/autorevision.sh |6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/synfig-core/trunk/build_tools/autorevision.sh b/synfig-core/trunk/build_tools/autorevision.sh index b635911..c7a1919 100644 --- a/synfig-core/trunk/build_tools/autorevision.sh +++ b/synfig-core/trunk/build_tools/autorevision.sh @@ -25,7 +25,7 @@ get_git_id(){ BRANCH=${BRANCH#*/} fi export REVISION=`git show --pretty=format:%ci HEAD | head -c 10 | tr -d '-'` - export COMPARE=$1/.git/ + export COMPARE=`git rev-parse --git-dir` # The extra * at the end is for Modified #REVISION=$REVISION`cd $1; [[ $(git status 2 /dev/null | tail -n1) != nothing to commit (working directory clean) ]] echo *` } @@ -58,8 +58,8 @@ fi # Extract the revision from SVN/git/etc -if [ -e $1/../../.git/refs/remotes/origin ] ; then - get_git_id $1/../.. +if git rev-parse --git-dir /dev/null 21 ; then + get_git_id . elif [ -d $1/.git/svn ] ; then get_git_svn_id $1 elif [ -d $1/../.git/svn ] ; then diff --git a/synfig-studio/trunk/build_tools/autorevision.sh b/synfig-studio/trunk/build_tools/autorevision.sh index 605f242..de4a5b6 100644 --- a/synfig-studio/trunk/build_tools/autorevision.sh +++ b/synfig-studio/trunk/build_tools/autorevision.sh @@ -25,7 +25,7 @@ get_git_id(){ BRANCH=${BRANCH#*/} fi export REVISION=`git show --pretty=format:%ci HEAD | head -c 10 | tr -d '-'` - export COMPARE=$1/.git/ + export COMPARE=`git rev-parse --git-dir` # The extra * at the end is for Modified #REVISION=$REVISION`cd $1; [[ $(git status 2 /dev/null | tail -n1) != nothing to commit (working directory clean) ]] echo *` } @@ -58,8 +58,8 @@ fi # Extract the revision from SVN/git/etc -if [ -e $1/../../.git/refs/remotes/origin ] ; then - get_git_id $1/../.. +if git rev-parse --git-dir /dev/null 21 ; then + get_git_id . elif [ -d $1/.git/svn ] ; then get_git_svn_id $1 elif [ -d $1/../.git/svn ] ; then -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Konstantin Dmitriev : Detect branch better. Don' t forget to clean autorevision.h in core.
Module: synfig Branch: genete_master Commit: 7abc6b3d3dbdb12d39d6e6f337fa20a20d320516 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=7abc6b3d3dbdb12d39d6e6f337fa20a20d320516 Author: Konstantin Dmitriev ksee.zelga...@gmail.com Date: Sat Jul 25 10:08:58 2009 +0700 Detect branch better. Don't forget to clean autorevision.h in core. --- synfig-core/trunk/build_tools/autorevision.sh |4 ++-- synfig-studio/trunk/build_tools/autorevision.sh |2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/synfig-core/trunk/build_tools/autorevision.sh b/synfig-core/trunk/build_tools/autorevision.sh index c7a1919..c8f4cf2 100644 --- a/synfig-core/trunk/build_tools/autorevision.sh +++ b/synfig-core/trunk/build_tools/autorevision.sh @@ -22,7 +22,7 @@ get_git_id(){ BRANCH='master' else BRANCH=`echo $BRANCH | cut -d ' ' -f 1` - BRANCH=${BRANCH#*/} + BRANCH=${BRANCH##*/} fi export REVISION=`git show --pretty=format:%ci HEAD | head -c 10 | tr -d '-'` export COMPARE=`git rev-parse --git-dir` @@ -103,5 +103,5 @@ fi # Output the header if [ x != x$DEVEL_VERSION ] ; then - printf #define DEVEL_VERSION \$DEVEL_VERSION\\n $HEADER + printf #define DEVEL_VERSION \$DEVEL_VERSION\\n $HEADER fi diff --git a/synfig-studio/trunk/build_tools/autorevision.sh b/synfig-studio/trunk/build_tools/autorevision.sh index de4a5b6..d8a5c8b 100644 --- a/synfig-studio/trunk/build_tools/autorevision.sh +++ b/synfig-studio/trunk/build_tools/autorevision.sh @@ -22,7 +22,7 @@ get_git_id(){ BRANCH='master' else BRANCH=`echo $BRANCH | cut -d ' ' -f 1` - BRANCH=${BRANCH#*/} + BRANCH=${BRANCH##*/} fi export REVISION=`git show --pretty=format:%ci HEAD | head -c 10 | tr -d '-'` export COMPARE=`git rev-parse --git-dir` -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Konstantin Dmitriev : synfigstudio-cph-monitor: Detect synfigstudio started with arguments too.
Module: synfig Branch: genete_master Commit: c7efa619796407db833eb61ac1f41deb4cca78c8 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=c7efa619796407db833eb61ac1f41deb4cca78c8 Author: Konstantin Dmitriev ksee.zelga...@gmail.com Date: Sat Jul 25 13:39:28 2009 +0700 synfigstudio-cph-monitor: Detect synfigstudio started with arguments too. --- synfig-studio/trunk/synfigstudio-cph-monitor |9 +++-- 1 files changed, 7 insertions(+), 2 deletions(-) diff --git a/synfig-studio/trunk/synfigstudio-cph-monitor b/synfig-studio/trunk/synfigstudio-cph-monitor index 76f77f4..000b83a 100755 --- a/synfig-studio/trunk/synfigstudio-cph-monitor +++ b/synfig-studio/trunk/synfigstudio-cph-monitor @@ -98,13 +98,18 @@ dumpstats() mainloop() { while true; do - if ( ps -f -u `whoami`|egrep synfigstudio$ /dev/null ) ; then + export PS=$(ps -f -u `whoami`) + if ( ( echo $PS |egrep synfigstudio$ /dev/null ) || ( echo $PS | egrep synfigstudio /dev/null ) ) ; then #synfigstudio process exist if [[ $STARTED == 0 ]]; then STARTED=1 RUNTIME=0 #get version - P=$(ps -f -u `whoami`|egrep synfigstudio$| tr -s ' '| cut -d ' ' -f 8) + if ( echo $PS |egrep synfigstudio$ /dev/null ) ; then + P=$( echo $PS |egrep synfigstudio$| tr -s ' '| cut -d ' ' -f 8) + else + P=$( echo $PS |egrep synfigstudio | tr -s ' '| cut -d ' ' -f 8) + fi echo if [ ! -e $P ]; then P=`which $P` -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Do not perform action when ALT-draging first keyframe
Module: synfig Branch: genete_master Commit: 12876a2268b54c0cc2f381b5066a3bbc8ca623e8 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=12876a2268b54c0cc2f381b5066a3bbc8ca623e8 Author: Carlos Lopez car...@pcnuevo.(none) Date: Sat Jul 25 11:18:48 2009 +0200 Do not perform action when ALT-draging first keyframe --- .../trunk/src/gtkmm/widget_keyframe_list.cpp |8 ++-- 1 files changed, 6 insertions(+), 2 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/widget_keyframe_list.cpp b/synfig-studio/trunk/src/gtkmm/widget_keyframe_list.cpp index 4c83d14..ace2b98 100644 --- a/synfig-studio/trunk/src/gtkmm/widget_keyframe_list.cpp +++ b/synfig-studio/trunk/src/gtkmm/widget_keyframe_list.cpp @@ -193,8 +193,12 @@ Widget_Keyframe_List::perform_move_kf(bool delta=false) kf_list_-find_prev_next(selected_kf_time, prev, next); // Not possible to set delta to the first keyframe // perform normal movement - if (prev==Time::begin()) delta = false; - + // As suggested by Zelgadis it is better to not perform anything. + if (prev==Time::begin() delta==true) + { + synfig::info(_(Not possible to ALT-drag the first keyframe)); + return false; + } if(!delta) { synfigapp::Action::Handle action(synfigapp::Action::create(KeyframeSet)); -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Use old and deprecated Tooltips class for compatibility with gtkmm 2.10
Module: synfig Branch: genete_master Commit: 08caa838e9fd7826b436c88b07931fa99a116822 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=08caa838e9fd7826b436c88b07931fa99a116822 Author: Carlos Lopez car...@pcnuevo.(none) Date: Thu Jul 23 16:40:30 2009 +0200 Use old and deprecated Tooltips class for compatibility with gtkmm 2.10 --- .../trunk/src/gtkmm/widget_keyframe_list.cpp | 11 +-- .../trunk/src/gtkmm/widget_keyframe_list.h |5 + 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/widget_keyframe_list.cpp b/synfig-studio/trunk/src/gtkmm/widget_keyframe_list.cpp index a350aa1..4c83d14 100644 --- a/synfig-studio/trunk/src/gtkmm/widget_keyframe_list.cpp +++ b/synfig-studio/trunk/src/gtkmm/widget_keyframe_list.cpp @@ -282,6 +282,7 @@ Widget_Keyframe_List::on_event(GdkEvent *event) // AND NOT left or right mouse button pressed else { + Glib::ustring ttip=; synfig::Time p_t,n_t; kf_list_-find_prev_next(t, p_t, n_t); if( (p_t==Time::begin() n_t==Time::end()) @@ -289,23 +290,21 @@ Widget_Keyframe_List::on_event(GdkEvent *event) ((t-p_t)time_ratio (n_t-t)time_ratio) ) { - Glib::ustring ttip = _(Click and drag keyframes); - set_tooltip_text(ttip); + ttip = _(Click and drag keyframes); } else if ((t-p_t)(n_t-t)) { synfig::Keyframe kf(*kf_list_-find_prev(t)); synfig::String kf_name(kf.get_description().c_str()); - Glib::ustring ttip = kf_name.c_str(); - set_tooltip_text(ttip); + ttip = kf_name.c_str(); } else { synfig::Keyframe kf(*kf_list_-find_next(t)); synfig::String kf_name(kf.get_description().c_str()); - Glib::ustring ttip = kf_name.c_str(); - set_tooltip_text(ttip); + ttip = kf_name.c_str(); } + tooltips.set_tip(*this, ttip); dragging_=false; queue_draw(); return true; diff --git a/synfig-studio/trunk/src/gtkmm/widget_keyframe_list.h b/synfig-studio/trunk/src/gtkmm/widget_keyframe_list.h index 349dcd3..1e41770 100644 --- a/synfig-studio/trunk/src/gtkmm/widget_keyframe_list.h +++ b/synfig-studio/trunk/src/gtkmm/widget_keyframe_list.h @@ -30,6 +30,7 @@ #include gtkmm/drawingarea.h #include gtkmm/adjustment.h +#include gtkmm/tooltips.h #include synfig/keyframe.h #include sigc++/connection.h #include synfigapp/canvasinterface.h @@ -45,6 +46,10 @@ namespace studio { class Widget_Keyframe_List : public Gtk::DrawingArea { + //! Tooltips class. It is deprecated since gtkmm 2.12 + //! replace with Tooltip class or use the own tooltip widget's members + Gtk::Tooltips tooltips; + //! The canvas interface being watched etl::loose_handlesynfigapp::CanvasInterface canvas_interface_; -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Apply akagogo's patch for importing SVG files.
Module: synfig Branch: genete_master Commit: 7c1abe51ca9fa3743536b52a3325483878f6cd4d URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=7c1abe51ca9fa3743536b52a3325483878f6cd4d Author: Carlos Lopez car...@pcnuevo.(none) Date: Sun Jul 26 08:26:02 2009 +0200 Apply akagogo's patch for importing SVG files. --- synfig-core/trunk/configure.ac |1 + synfig-core/trunk/src/modules/Makefile.am |1 + synfig-core/trunk/src/modules/mod_svg/Makefile.am | 14 + .../trunk/src/modules/mod_svg/layer_svg.cpp| 103 ++ synfig-core/trunk/src/modules/mod_svg/layer_svg.h | 67 + synfig-core/trunk/src/modules/mod_svg/main.cpp | 57 + synfig-core/trunk/src/modules/mod_svg/mod_svg.nsh | 20 + .../trunk/src/modules/mod_svg/svg_parser.cpp | 1934 synfig-core/trunk/src/modules/mod_svg/svg_parser.h | 211 +++ .../trunk/src/modules/mod_svg/unmod_svg.nsh|9 + .../trunk/src/modules/synfig_modules.cfg.in|1 + synfig-core/trunk/src/synfig/loadcanvas.cpp| 83 + synfig-core/trunk/src/synfig/loadcanvas.h |3 + .../trunk/src/synfigapp/canvasinterface.cpp| 29 + 14 files changed, 2533 insertions(+), 0 deletions(-) Diff: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commitdiff;h=7c1abe51ca9fa3743536b52a3325483878f6cd4d -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Konstantin Dmitriev : synfigstudio-cph-monitor: Better detection for running synfigstudio.
Module: synfig Branch: genete_master Commit: 510db4e9760325e1cf103a936fe04e10f17d0ccb URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=510db4e9760325e1cf103a936fe04e10f17d0ccb Author: Konstantin Dmitriev ksee.zelga...@gmail.com Date: Mon Jul 27 18:56:41 2009 +0700 synfigstudio-cph-monitor: Better detection for running synfigstudio. --- synfig-studio/trunk/synfigstudio-cph-monitor |9 ++--- 1 files changed, 2 insertions(+), 7 deletions(-) diff --git a/synfig-studio/trunk/synfigstudio-cph-monitor b/synfig-studio/trunk/synfigstudio-cph-monitor index 7ca8461..6dcc2bc 100755 --- a/synfig-studio/trunk/synfigstudio-cph-monitor +++ b/synfig-studio/trunk/synfigstudio-cph-monitor @@ -118,18 +118,13 @@ dumpstats() mainloop() { while true; do - export PS=$(ps -f -u `whoami`) - if ( ( echo $PS |egrep synfigstudio$ /dev/null ) || ( echo $PS | egrep synfigstudio /dev/null ) ) ; then + if ( ps --no-headers -f -Csynfigstudio |egrep ^`whoami` /dev/null ) ; then #synfigstudio process exist if [[ $STARTED == 0 ]]; then STARTED=1 RUNTIME=0 #get version - if ( echo $PS |egrep synfigstudio$ /dev/null ) ; then - P=$( echo $PS |egrep synfigstudio$| tr -s ' '| cut -d ' ' -f 8) - else - P=$( echo $PS |egrep synfigstudio | tr -s ' '| cut -d ' ' -f 8) - fi + P=$(ps --no-headers -f -Csynfigstudio |egrep ^`whoami` | tr -s ' '| cut -d ' ' -f 8) echo if [ ! -e $P ]; then P=`which $P` -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Merge branch 'zelgadis_master' into genete_master
Module: synfig Branch: genete_master Commit: ff20bb143f86979474d409a9bdc535d2ad1281bd URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=ff20bb143f86979474d409a9bdc535d2ad1281bd Author: Carlos Lopez car...@pcnuevo.(none) Date: Mon Jul 27 17:04:09 2009 +0200 Merge branch 'zelgadis_master' into genete_master --- -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] [ synfig-Feature Requests-2287177 ] Scale tool option: Scale width
Feature Requests item #2287177, was opened at 2008-11-15 00:51 Message generated for change (Comment added) made by genete You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=757419aid=2287177group_id=144022 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Closed Resolution: Rejected Priority: 5 Private: No Submitted By: Daniel Hornung (rubikcube) Assigned to: Genete (genete) Summary: Scale tool option: Scale width Initial Comment: It would be useful (especially when importing from other files) if the scale tool had an option to scale width as well. When enabled, scaling should also modify blines' Outline Width and Expand parameters. I know that an extra scale layer would do the same, but still think that this feature would be nice for the scale tool. -- Comment By: Genete (genete) Date: 2009-07-27 21:50 Message: If you show the width ducks when use the Scale tool, they are scaled too so there is not need for a Scale width Tool. -- You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=757419aid=2287177group_id=144022 -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] [ synfig-Feature Requests-1879205 ] delete multiple vertices in one single action
Feature Requests item #1879205, was opened at 2008-01-24 21:12 Message generated for change (Settings changed) made by genete You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=757419aid=1879205group_id=144022 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Nobody/Anonymous (nobody) Assigned to: Nobody/Anonymous (nobody) Summary: delete multiple vertices in one single action Initial Comment: the ability to delete multiple or grouped vertices's in an object or layer. -- You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=757419aid=1879205group_id=144022 -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] [ synfig-Feature Requests-1781903 ] make vertices/object move along paths
Feature Requests item #1781903, was opened at 2007-08-26 04:56 Message generated for change (Comment added) made by genete You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=757419aid=1781903group_id=144022 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Miscellaneous Group: None Status: Closed Resolution: Fixed Priority: 5 Private: No Submitted By: Nobody/Anonymous (nobody) Assigned to: Nobody/Anonymous (nobody) Summary: make vertices/object move along paths Initial Comment: Synfig is great fun to do animations in, but there are is one thing that has been bugging me and, to the best of my internet search skills, does not seem to have been implemented/described anywhere. Basically, I would like to be able to draw a bline with N vertices and have a shape move along that bline (the whole shape or individual vertices). Currently the only way I have found to do what I want is to draw a bline, and then move a shape along that line manually at fairly small intervals (very frustrating). Example: A triangle that should move along a sine curve always pointing in the direction it is going to move next. In that case I would like to be able to draw the triangle and the sine curve (or other bline) and say move the centre of the triangle along the bline and rotate it according to the shape of the bline. I have no idea how you would implement that, but it is a feature readily available in most 3D animation programs. Aternatively/in addition, it would be great to be able to change/edit the movement path (I have no idea what it really is called) in the window in the time-line dialog (the one selectd by the icon with the squiggly line next to the keyframe window), i.e. adding vertices or editing the tangents so that the interpolation between keyframes is changed. I hope I didn't just miss either of these features. Synfig is great (a big pat on the shoulder of the developers and the people producing the tutorials) but the documentation is quite sketchy at times so finding what is possible and how to do it is far from straight forward. -- Comment By: Genete (genete) Date: 2009-07-27 22:01 Message: This already has been implemented. -- Comment By: Genete (genete) Date: 2008-10-26 23:46 Message: I think that Link to Bline feature reply this feature request. Does it mean that this feature request can be closed? -- Comment By: dooglus (dooglus) Date: 2007-09-24 21:49 Message: Logged In: YES user_id=1546005 Originator: NO This URL: http://wiki.synfig.com/Convert#BLine_Vector should read http://wiki.synfig.com/Convert#BLine_Vertex -- Comment By: dooglus (dooglus) Date: 2007-09-24 00:13 Message: Logged In: YES user_id=1546005 Originator: NO That still leaves this: It would be great to be able to change/edit the movement path in the Curves dialog, i.e. adding vertices or editing the tangents so that the interpolation between keyframes is changed. As far as I can tell, the curves dialog needs a lot of work to make it useful. -- Comment By: dooglus (dooglus) Date: 2007-09-24 00:12 Message: Logged In: YES user_id=1546005 Originator: NO I implemented this in svn r745. See http://wiki.synfig.com/Following_a_BLine for a tutorial and http://wiki.synfig.com/Convert#BLine_Tangent http://wiki.synfig.com/Convert#BLine_Vector for documentation. -- Comment By: dooglus (dooglus) Date: 2007-09-18 18:30 Message: Logged In: YES user_id=1546005 Originator: NO I found that it is already possible to get an object to follow a single bline, but not a general outline. I uploaded an example to YouTube: http://www.youtube.com/watch?v=wJ7C-FcxAy0 The sif file is http://dooglus.rincevent.net/synfig/follow-bline.sifz and the .avi movie file is http://dooglus.rincevent.net/synfig/follow-bline.avi I still intend to make it possible to do the same for general outlines (lists of blines). I had to fix a few bugs in Synfig to get this to work, so it probably won't work in any of the released versions. The fixes will be in subversion in an hour or so, and will be in the next release. -- Comment By: dooglus (dooglus) Date: 2007-09-18 02:45 Message: Logged In: YES user_id=1546005 Originator: NO Interesting suggestion. I'll have a go at implementing something like that soon. I'll post more here as and when I've got anything.
[Synfig-devl] [ synfig-Feature Requests-1688429 ] make 'time loop' layer more flexible
Feature Requests item #1688429, was opened at 2007-03-26 16:30 Message generated for change (Comment added) made by genete You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=757419aid=1688429group_id=144022 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Closed Resolution: Fixed Priority: 5 Private: No Submitted By: dooglus (dooglus) Assigned to: Nobody/Anonymous (nobody) Summary: make 'time loop' layer more flexible Initial Comment: Using the time loop layer, I am able to repeat the first 'n' seconds of a layer's behaviour over and over. But what if I want to repeat the part from 10s to 11s over and over? I don't think it's possible. -- Comment By: Genete (genete) Date: 2009-07-27 22:06 Message: The new TIme Loop layer seems to fix this feature request. I close it. -- Comment By: dooglus (dooglus) Date: 2007-03-26 22:19 Message: Logged In: YES user_id=1546005 Originator: YES I just realised that all the features I requested here are currently possible with the existing 'time loop' layer, since it's possible to adjust the start time and end time with waypoints. With suitable waypoints it's even possible to make animations play backwards using the existing time loop layer. Suppose we have a 10 second layer. To make it play backwards (from 10s to 0s), set the time loop layer like this: A waypoint at 0s, with start time = -10s, end time = 1m A waypoint at 10s, with start time = 10s, end time = 1m -- Comment By: dooglus (dooglus) Date: 2007-03-26 16:35 Message: Logged In: YES user_id=1546005 Originator: YES ... and what if I want to play a segment of the layer faster or slower than before? Perhaps a better design would be to have parameters: source start time source end time target start time target end time this would allow me to play the part from 10s-15s in the source layer at time 30s-32s in the time loop layer, resulting in a 2.5x speed up. The time loop layer would loop, playing the same 10s-15 from the source layer at 32s-34s, 34s-36s, and so on, until a waypoint changes the settings. -- You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=757419aid=1688429group_id=144022 -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] [ synfig-Feature Requests-1672749 ] Timeline and Keyframes window merge
Feature Requests item #1672749, was opened at 2007-03-03 01:03 Message generated for change (Comment added) made by genete You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=757419aid=1672749group_id=144022 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: User interface Group: None Status: Closed Resolution: Fixed Priority: 5 Private: No Submitted By: Nobody/Anonymous (nobody) Assigned to: Genete (genete) Summary: Timeline and Keyframes window merge Initial Comment: I foresee that key frames will become difficult to manage if not placed visually on the time-line. The best way would be to have a key frame represented visually by a vertical block on a time-line of frames. Key-frame properties such as duration, start and end time would be edited simply by its placement and length. Sorry I have no idea how this would be accomplished, as I am an animator and not a programmer. However, I must say this project is a very exciting opportunity for those such as myself who lack resources and time. Good luck; looking forward to version 1.0! -- Comment By: Genete (genete) Date: 2009-07-27 22:12 Message: It has been implemented in development branch. It will be available in the next release. -- You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=757419aid=1672749group_id=144022 -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] [ synfig-Bugs-2807163 ] param blend mode not selecting Composite
Bugs item #2807163, was opened at 2009-06-16 15:25 Message generated for change (Comment added) made by genete You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=757416aid=2807163group_id=144022 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Usability Group: None Status: Open Resolution: Works For Me Priority: 5 Private: No Submitted By: Nobody/Anonymous (nobody) Assigned to: Nobody/Anonymous (nobody) Summary: param blend mode not selecting Composite Initial Comment: Happens on windows 2375 build and only for region and outlines as the other layers are fine -- Comment By: Genete (genete) Date: 2009-07-27 22:23 Message: I cannot reproduce. Can you describe a detailed step by step procedure? -- Comment By: Genete (genete) Date: 2009-07-27 22:23 Message: Closed due to lack of confirmation and lack of information or no response to request for information. -- You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=757416aid=2807163group_id=144022 -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] [ synfig-Bugs-2685228 ] Timeline frame numbering inaccurate
Bugs item #2685228, was opened at 2009-03-12 15:51 Message generated for change (Comment added) made by genete You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=757416aid=2685228group_id=144022 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Usability Group: Latest release Status: Pending Resolution: Remind Priority: 5 Private: No Submitted By: David Rylander (rylleman) Assigned to: Nobody/Anonymous (nobody) Summary: Timeline frame numbering inaccurate Initial Comment: The frame numbers indicated above the timeline is not accurate. Looking at the timeline in my attached image, it looks like I'm at frame 336 but I am in fact at frame 350 which is properly indicated in the main window seen above (and to further confirm the imported image sequence has a frame count rendered into it, saying frame 350). -- Comment By: Genete (genete) Date: 2009-07-27 22:33 Message: Remind to test this bug in the next release. -- Comment By: David Rylander (rylleman) Date: 2009-03-13 17:36 Message: If it is as you say that you can't find the issue in any revision you've tried then I'll live with it for now and keep my fingers crossed for the bug to magically dissapear next time I upgrade Synfig. (In the middle of an production so I don't want to risk anything by upgrading now) I'll get back to this report when I've upgraded. -- Comment By: Genete (genete) Date: 2009-03-13 16:58 Message: That's possible a correct one because the extra info is optional. I wonder how can I reproduce the bug... -- Comment By: Genete (genete) Date: 2009-03-13 16:47 Message: Hmmm, that's an old about dialog before the one of the 0.61.09 release. See the correct one posted. -- Comment By: Genete (genete) Date: 2009-03-13 16:38 Message: I've tried to reproduce the bug at the following revisions: 2130, 2140, 2150, 2160, 2170, 2180, 2190 and 2200 with no success. Release for 0.61.09 was revision 2128 Continue testing :) -- Comment By: David Rylander (rylleman) Date: 2009-03-13 16:34 Message: The About dialog doesn't have any revision info. Posting it anyway. synfig --info gives; synfig-0.61.09 Compiled on Nov 23 2008 with GCC 4.3.2 Copyright (c) 2001-2005 Robert B. Quattlebaum Jr., Adrian Bentley File Added: about_synfig.png -- Comment By: Genete (genete) Date: 2009-03-13 16:26 Message: I meant to say 2320 :) -- Comment By: Genete (genete) Date: 2009-03-13 16:24 Message: I have several binaries compiled from different revisions since revision 1200 to 2032. To allow me to hook the bug maybe you can paste the about dialog. There should be the revision number against that installed version was built. As far as I've seen in the sources you have posted, the revision doesn't correspond to exactly the 0.61.09 release but a little later. Meanwhile you post the about dialog I'll try to reproduce it in my old binaries. I confirm that in the latest svn revision it doesn't happen. -- Comment By: David Rylander (rylleman) Date: 2009-03-13 08:54 Message: There's nonthing special I'm doing to get this. As I wrote in my last comment I get this by just starting up a new project and setting it's frame length to a few hundred frames. Here's some specs that might help in pinpointing this bug; Ubuntu Studio 8.10, 64 bit on a Dell Precision 490. 4Gb of RAM, dual core Xeon. 2.6.27-11-generic kernel. Synfig Studio 0.61.09, installed by adding deb http://ppa.launchpad.net/stemp/ubuntu intrepid main to my sources. I also tested on my laptop, an old Sony Vaio with Ubuntu 8.10 with Synfig installed in the same way as above and I get the same behavior there. [A short note on the scene attached. It's part of an fuzzy cloud effect for an animated short. After animating the gradient in Synfig I process the images with a photoshop filter and imports the sequence into Moho which we do the main animation in. But I do have plans for a all Synfig short film later on. Thanks for the project size note, never crossed my mind, I'm all too used to working with pixel graphics.] -- Comment By: Genete (genete) Date: 2009-03-13 00:37 Message: I don't find a way to reproduce it with your sample file. Should I do something special apart
[Synfig-devl] [ synfig-Bugs-2356818 ] studio hung with duplicate layer active
Bugs item #2356818, was opened at 2008-11-28 22:13 Message generated for change (Comment added) made by genete You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=757416aid=2356818group_id=144022 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: Works For Me Priority: 5 Private: No Submitted By: dooglus (dooglus) Assigned to: Nobody/Anonymous (nobody) Summary: studio hung with duplicate layer active Initial Comment: I don't know how I did it, but studio hung. gdb shows me 2 threads both stopped, waiting to get a WriteLock: #1 synfig::RWLock::writer_lock (this=0x325ac48) at mutex.cpp:204 #2 WriterLock (this=0x4286ba80, x...@0x325ac48) at mutex.h:98 #3 synfig::Context::set_time (this=0x4286bc50, time={value_ = 1}) at context.cpp:342 #4 synfig::Layer_Duplicate::accelerated_render (this=0x325abb0, ...) at layer_duplicate.cpp:181 #1 synfig::RWLock::writer_lock (this=0x32349d8) at mutex.cpp:204 #2 WriterLock (this=0x7fffdcf43d10, x...@0x32349d8) at mutex.h:98 #3 synfig::Context::set_time (this=0x7fffdcf43d70, time={value_ = 0}) at context.cpp:342 #4 synfig::Canvas::set_time (this=0x3233f70, t={value_ = 0}) at canvas.cpp:299 #5 studio::CanvasView::rebuild_ducks (this=0x3252000) at canvasview.cpp:2916 #6 sigc::bound_mem_functor0void, studio::CanvasView::operator() (this=0x35dfc00) I was looking at the attached file - note it has a Duplicate layer. I suspect the Duplicate code isn't taking care when calling 'set_time()' -- Comment By: Genete (genete) Date: 2009-07-27 22:53 Message: Can't reproduce in latest development branch. -- Comment By: dooglus (dooglus) Date: 2008-11-28 22:15 Message: Note that no CPU was being used. And this was in SVN r2303. -- You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=757416aid=2356818group_id=144022 -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] [ synfig-Bugs-2175043 ] Crash when rendering in directory without write permission
Bugs item #2175043, was opened at 2008-10-17 17:39 Message generated for change (Comment added) made by genete You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=757416aid=2175043group_id=144022 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Crasher/nasty bug Group: GIT version Status: Closed Resolution: Fixed Priority: 5 Private: No Submitted By: Daniel Hornung (rubikcube) Assigned to: Genete (genete) Summary: Crash when rendering in directory without write permission Initial Comment: Setting the render target to a directory without write permissions crashes synfig-studio when trying to actually start the render. It aborts with the following error message: glibmm-ERROR **: unhandled exception (type unknown) in signal handler Trying to reproduce this with synfig alone, for example via synfig -o /foo.png /usr/share/synfig/examples/pirates.sifz yields: error: Caught string :add_frame(): target panic on start_frame()15527 -- 1h 9m 42s Render Failure. -- Comment By: Genete (genete) Date: 2009-07-27 23:05 Message: Fixed in latest development branch. Will be included in the next release. -- Comment By: Genete (genete) Date: 2009-07-12 19:59 Message: I've commit a solution for the first case (render a non writable target from the GUI). It is pending the second case. See git 'master' branch for July 12th 2009. -- Comment By: Genete (genete) Date: 2008-10-18 00:43 Message: I've confirmed only the first bug (glibmm-ERROR*). There is a patch to solve that in the review board. The second bug I cannot reproduce if the sifz file folder is writable, so the problem is not the same. I think that it would happen also if the /foo.png file were accessible. Not tested, just guessing. -- You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=757416aid=2175043group_id=144022 -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] [ synfig-Bugs-2175043 ] Crash when rendering in directory without write permission
Bugs item #2175043, was opened at 2008-10-17 17:39 Message generated for change (Settings changed) made by genete You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=757416aid=2175043group_id=144022 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Crasher/nasty bug Group: GIT version Status: Open Resolution: Accepted Priority: 5 Private: No Submitted By: Daniel Hornung (rubikcube) Assigned to: Genete (genete) Summary: Crash when rendering in directory without write permission Initial Comment: Setting the render target to a directory without write permissions crashes synfig-studio when trying to actually start the render. It aborts with the following error message: glibmm-ERROR **: unhandled exception (type unknown) in signal handler Trying to reproduce this with synfig alone, for example via synfig -o /foo.png /usr/share/synfig/examples/pirates.sifz yields: error: Caught string :add_frame(): target panic on start_frame()15527 -- 1h 9m 42s Render Failure. -- Comment By: Genete (genete) Date: 2009-07-27 23:05 Message: Fixed in latest development branch. Will be included in the next release. -- Comment By: Genete (genete) Date: 2009-07-12 19:59 Message: I've commit a solution for the first case (render a non writable target from the GUI). It is pending the second case. See git 'master' branch for July 12th 2009. -- Comment By: Genete (genete) Date: 2008-10-18 00:43 Message: I've confirmed only the first bug (glibmm-ERROR*). There is a patch to solve that in the review board. The second bug I cannot reproduce if the sifz file folder is writable, so the problem is not the same. I think that it would happen also if the /foo.png file were accessible. Not tested, just guessing. -- You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=757416aid=2175043group_id=144022 -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] [ synfig-Feature Requests-1912950 ] don't use low res as default
Feature Requests item #1912950, was opened at 2008-03-12 19:57 Message generated for change (Settings changed) made by genete You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=757419aid=1912950group_id=144022 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Nobody/Anonymous (nobody) Assigned to: Nobody/Anonymous (nobody) Summary: don't use low res as default Initial Comment: Hi ,I'm working on Synfig Studio 0.61.08. on Ubuntu. this is not quite a bug but a suggestion . Don't use low res as a default. One might think this is a bug. Let the program default to high res. I was puzzled when i saw those jagged images at first and i thought perhaps it can't do more than that. -- Comment By: Konstantin Dmitriev (zelgadis_ksee) Date: 2008-04-11 06:47 Message: Logged In: YES user_id=1438889 Originator: NO Agree with nobody. Synfig starting with low-res and imported images (especially sketches) looking really bad. That can distract new users. See screenshots: http://zelgadis.profusehost.net/files/synfig/lowres-on.png http://zelgadis.profusehost.net/files/synfig/lowres-off.png -- Comment By: Nobody/Anonymous (nobody) Date: 2008-03-23 16:06 Message: Logged In: NO Date: 2008-03-21 14:56 Sender: nobody Logged In: NO Suggestion: Set the default resolution (View-Preview Quality) according to image size, so that the number of pixels to calculate is fixed, not their size I wasn't talking about the preview resolution but actually about the resolution of the drawing screen. My synfig starts in low res by default and keeps on doing that every restart. -- Comment By: Nobody/Anonymous (nobody) Date: 2008-03-21 22:56 Message: Logged In: NO Suggestion: Set the default resolution (View-Preview Quality) according to image size, so that the number of pixels to calculate is fixed, not their size. Of course when doing animations for PAL, NTSC or youtube resolution you might want a higher preview quality (smaller low-res pixels) than for 35mm film rendering. Also, why not allow full-resolution (1 preview pixel = 1 final pixel) preview? -- Comment By: Nobody/Anonymous (nobody) Date: 2008-03-17 17:11 Message: Logged In: NO Yeah . My settings are as follow : Set low res pixelsize = 2. And it looks horrible. really. It's a big difference. And it only gets worse when increasing the pixelsize ( at about 4 even the chess table of the background gets distorted. What can i say maybe it's because i'm using a wide screen ? I know the card is not great ( it's an integrated intel mobile chipset, one of the cheepest i think but i never had any problems in 2d . But it looks ok without low-res. no problem whatsoever. thnx M.M ps . If you want i can send you more data about the chipset,screen,driver,etc whatever . :) -- Comment By: dooglus (dooglus) Date: 2008-03-12 20:06 Message: Logged In: YES user_id=1546005 Originator: NO Is your monitor displaying at quite a low resolution? On my monitor I can barely notice the difference between low and hi resolution, except that high resolution is four times slower to render... It's a trade-off between quality and speed, of course. There's a similar issue with the render quality - there are 11 levels of render quality, and studio defaults to using one of the lowest when previewing, for the sake of performance. -- You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=757419aid=1912950group_id=144022 -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] [ synfig-Bugs-1876919 ] Modify a parameter in non animation mode is weird.
Bugs item #1876919, was opened at 2008-01-22 00:28 Message generated for change (Comment added) made by genete You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=757416aid=1876919group_id=144022 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: Works For Me Priority: 5 Private: No Submitted By: Genete (genete) Assigned to: Nobody/Anonymous (nobody) Summary: Modify a parameter in non animation mode is weird. Initial Comment: 1)File - new (set time bigger than 0) 2)Add any type of layer 3)Change to animation mode 4) modify any parameter (add a waypoint) Let's call the modified parameter value A 5) Set non animation mode. 6) Modify again the same parameter (it would complain about being in non animation mode) let's say the modified parameter value is B. It is reverted to be A again. 7) Immediately set it to animation mode. It stills being A 8) Click on any parameter (the same or other) and the parameter holding A value becomes to be B value. -- Comment By: Genete (genete) Date: 2009-07-27 23:23 Message: Cannot reproduce in current development branch. -- You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=757416aid=1876919group_id=144022 -- Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] [ synfig-Bugs-1876745 ] enumerated lists interfere with each other
Bugs item #1876745, was opened at 2008-01-21 21:53 Message generated for change (Comment added) made by genete You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=757416aid=1876745group_id=144022 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: Accepted Priority: 5 Private: No Submitted By: Nobody/Anonymous (nobody) Assigned to: Nobody/Anonymous (nobody) Summary: enumerated lists interfere with each other Initial Comment: In studio, if I select a circle then: * set falloff to 'cosine' and attempt to * set blend method to 'brighten' then the blend method doesn't appear to change immediately. I need to click on some other parameter before it will update. Both 'cosine' and 'brighten' have values of 2 in the .sif file. Similarly, if the falloff is 'linear' and blend method is edited to be 'straight' (both values 0) the blend method doesn't change immediately. Also squared and composite (both value 0). I've been able to reproduce this on two different machines, with studio 0.61.06 and the latest svn code on both ubuntu 6.06 and debian sid, in both xfce4 and gnome. A could of other people have been unable to reproduce the problem. -- Comment By: Genete (genete) Date: 2009-07-27 23:26 Message: Still confirmed. -- You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=757416aid=1876745group_id=144022 -- Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] [ synfig-Bugs-1814151 ] Add a layer inside an exported canvas crash
Bugs item #1814151, was opened at 2007-10-15 23:23 Message generated for change (Comment added) made by genete You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=757416aid=1814151group_id=144022 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Crasher/nasty bug Group: SVN version Status: Open Resolution: Fixed Priority: 5 Private: No Submitted By: Genete (genete) Assigned to: Nobody/Anonymous (nobody) Summary: Add a layer inside an exported canvas crash Initial Comment: Using svn 933. If I select a layer inside an exported canvas when the main canvas is active and try to add a new layer then synfig crashes. The layer is not added. The result message in console is: synfig(22244): error: Bad canvas passed to add_layer_to Fallo de segmentación (core dumped) It happens when using the tools from the tool window (Circle, Bline, Rectangle, Polygon, Gradient and Draw). But if you add a layer by the canvas caret menu LayerNew Layer then the layer is not added and the console output is: synfig(22708): error: Bad canvas passed to add_layer_to Then synfig doesn't crash. On the other hand if I open the exported canvas in other window (only edit the exported canvas) then it is possible to add a new layer. But in this case when I close the exported canvas the new layer is not accessible by the main canvas. It is shown in the drawing area but not in the layer list. If I click on the layer it seems that the layer receives the click message due to the console output is: synfig(22353): info: STATE NORMAL: Received mouse button down Event synfig(22353): info: STATE NORMAL: Received layer click Event, rectangle (The added layer was a rectangle.) but is not possible select the layer immediately. (In fact is accesible because you can fill it with the Fill tool but the layer is not shown in the layer list and the ducks are not shown). If I save and load the file then the just added layer is accessible. Carlos -- Comment By: Genete (genete) Date: 2009-07-27 23:30 Message: Close it as it was fixed -- Comment By: Pixelgeek (pxegeek) Date: 2008-11-16 04:27 Message: Tested - it works. Thank you dooglus! -- Comment By: dooglus (dooglus) Date: 2008-11-14 23:58 Message: SVN r2201 makes it complain with an error dialog now rather than crashing. It's possible to work around the problem by working in the exported canvas' separate window (double click the canvas in the canvases panel to open it) It's also possible to work around it by making an encapsulation layer inside the exported canvas, and working in there. It seems to be only working at the top level of the exported canvas that is a problem. This is probably not intentional... -- You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=757416aid=1814151group_id=144022 -- Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] [ synfig-Bugs-1420091 ] Crash when deleting vertex items
Bugs item #1420091, was opened at 2006-01-31 09:11 Message generated for change (Comment added) made by genete You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=757416aid=1420091group_id=144022 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Closed Resolution: Fixed Priority: 5 Private: No Submitted By: Paul Wise (pabs3) Assigned to: Nobody/Anonymous (nobody) Summary: Crash when deleting vertex items Initial Comment: A bug report from snapsilverlight: Layer - New Layer - Geometry - Region Then in Params, expand the vertex list, right click on any vertex, click Insert Item (Smart) Then go and delete it. POOF! #0 0x082af60d in studio::CanvasTreeStore::get_value_vfunc (this=0x8a60800, it...@0xbfe897f4, column=2, val...@0xbfe89888) at canvastreestore.cpp:248 #1 0x082c071c in studio::LayerParamTreeStore::get_value_vfunc (this=0x8a60800, it...@0xbfe897f4, column=2, val...@0xbfe89888) at layerparamtreestore.cpp:150 #2 0xb79e2f77 in Gtk::TreeModel_Class::get_value_vfunc_callback () from /usr/lib/libgtkmm-2.4.so.1 #3 0xb767dec5 in IA__gtk_tree_model_get_value (tree_model=0x8a60b08, iter=0xbfe89984, column=0, value=0xbfe89888) at gtktreemodel.c:1077 #4 0xb76aa096 in IA__gtk_tree_view_column_cell_set_cell_data (tree_column=0x8a39790, tree_model=0x8a60b08, iter=0xbfe89984, is_expander=0, is_expanded=0) at gtktreeviewcolumn.c:2544 #5 0xb7699200 in gtk_tree_view_expose (widget=0x8a37418, event=0xbfe89f50) at gtktreeview.c:3651 #6 0xb79f4a62 in Gtk::Widget_Class::expose_event_callback () from /usr/lib/libgtkmm-2.4.so.1 #7 0xb75c6960 in _gtk_marshal_BOOLEAN__BOXED (closure=0x84d5d60, return_value=0xbfe89bc0, n_param_values=2, param_values=0xbfe89cac, invocation_hint=0xbfe89bac, marshal_data=0xb79f49e0) at gtkmarshalers.c:83 #8 0xb7133179 in g_type_class_meta_marshal (closure=0x84d5d60, return_value=0x0, n_param_values=0, param_values=0xbfe89cac, invocation_hint=0x0, marshal_data=0x0) at gclosure.c:569 #9 0xb7133839 in IA__g_closure_invoke (closure=0x84d5d60, return_value=0x0, n_param_values=0, param_values=0x0, invocation_hint=0x0) at gclosure.c:492 #10 0xb71437f5 in signal_emit_unlocked_R (node=0x84d5db0, detail=0, instance=0x8a37418, emission_return=0xbfe89e2c, instance_and_params=0xbfe89cac) at gsignal.c:2523 #11 0xb71446de in IA__g_signal_emit_valist (instance=0x8a37418, signal_id=33, detail=0, var_args=0xbfe89eb0 \u\236\u\uP\237\u\u\030t\u\b\017\203k\u\030t\u\b\u4J\b) at gsignal.c:2254 #12 0xb7144cd9 in IA__g_signal_emit (instance=0x0, signal_id=0, detail=0) at gsignal.c:2288 #13 0xb76b81c4 in gtk_widget_event_internal (widget=0x8a37418, event=0xbfe89f50) at gtkwidget.c:3735 #14 0xb75c53ca in IA__gtk_main_do_event (event=0xbfe89f50) at gtkmain.c:1370 #15 0xb73d388d in gdk_window_process_updates_internal (window=0x8a973f0) at gdkwindow.c:2215 #16 0xb73d396f in IA__gdk_window_process_all_updates () at gdkwindow.c:2268 #17 0xb7533597 in gtk_container_idle_sizer (data=0x0) at gtkcontainer.c:1117 #18 0xb70ad0f1 in g_idle_dispatch (source=0x8a94478, callback=0x3, user_data=0x0) at gmain.c:3817 #19 0xb70aab8c in IA__g_main_context_dispatch (context=0x849e978) at gmain.c:1934 #20 0xb70adf6b in g_main_context_iterate (context=0x849e978, block=1, dispatch=1, self=0x84b3488) at gmain.c:2565 #21 0xb70ae2c7 in IA__g_main_loop_run (loop=0x85aaee8) at gmain.c:2769 #22 0xb75c43a1 in IA__gtk_main () at gtkmain.c:991 #23 0xb799a626 in Gtk::Main::run_impl () from /usr/lib/libgtkmm-2.4.so.1 #24 0xb799a4d1 in Gtk::Main::run () from /usr/lib/libgtkmm-2.4.so.1 #25 0x081b8d05 in main (argc=0, argv=0xbfe8a394) at main.cpp:86 -- Comment By: Genete (genete) Date: 2009-07-28 00:06 Message: It seems it was long time ago fixed. Works for me. -- Comment By: dooglus (dooglus) Date: 2008-12-10 10:47 Message: get_root_canvas() in this case is returning the root canvas of the original window No, it's returning 0. Exporting a canvas causes it to be cloned, and clone() doesn't set the root canvas. Of course, it's possible that both windows have the same layer selected, and so both windows really need to have their parameter trees rebuilt. Oh, but there's only one params panel. So only one tree can be displayed at a time. Do we still need to rebuild both of them? -- Comment By: dooglus (dooglus) Date: 2008-12-10 10:09 Message: Here's another way to get the same crash: 1. layer new layer geometry outline 2. encapsulate 3. in params panel, right click canvas parameter and export, give it a name 4. in canvas panel, expand the entry and double-click the canvas inside it 5. with the