Author: Carlos Lopez <[email protected]>
Date:   Sun Apr 29 22:15:25 2012 +0200

Add a Widget_Time entry on the Time tab for the RendDesc dialog showing the 
duration of the animation. If the Duration is changed the end time is modified 
accordingly. Duration is end time less start time plus one frame.

---

 synfig-studio/src/gui/renddesc.cpp |   47 ++++++++---------------------------
 synfig-studio/src/gui/renddesc.h   |   13 +--------
 2 files changed, 13 insertions(+), 47 deletions(-)

diff --git a/synfig-studio/src/gui/renddesc.cpp 
b/synfig-studio/src/gui/renddesc.cpp
index 9cd73dd..d5d10c7 100644
--- a/synfig-studio/src/gui/renddesc.cpp
+++ b/synfig-studio/src/gui/renddesc.cpp
@@ -130,6 +130,8 @@ Widget_RendDesc::refresh()
        entry_start_time->set_value(rend_desc_.get_time_start());
        entry_end_time->set_fps(rend_desc_.get_frame_rate());
        entry_end_time->set_value(rend_desc_.get_time_end());
+       entry_duration->set_fps(rend_desc_.get_frame_rate());
+       entry_duration->set_value(rend_desc_.get_duration());
 
        adjustment_fps.set_value(rend_desc_.get_frame_rate());
        adjustment_span.set_value(rend_desc_.get_span());
@@ -264,27 +266,16 @@ Widget_RendDesc::on_end_time_changed()
        signal_changed()();
 }
 
-/*
-void
-Widget_RendDesc::on_start_frame_changed()
-{
-       if(update_lock)return;
-       UpdateLock lock(update_lock);
-       
rend_desc_.set_frame_start((int)(adjustment_start_frame.get_value()+0.5));
-       refresh();
-       signal_changed()();
-}
 
 void
-Widget_RendDesc::on_end_frame_changed()
+Widget_RendDesc::on_duration_changed()
 {
        if(update_lock)return;
        UpdateLock lock(update_lock);
-       rend_desc_.set_frame_end((int)(adjustment_end_frame.get_value()+0.5));
+       rend_desc_.set_duration(entry_duration->get_value());
        refresh();
        signal_changed()();
 }
-*/
 
 void
 Widget_RendDesc::on_fps_changed()
@@ -340,27 +331,12 @@ void
 Widget_RendDesc::disable_time_section()
 {
        time_frame->set_sensitive(false);
-
-/*
-       Gtk::Table::TableList &list=time_table->children();
-       Gtk::Table::TableList::iterator iter;
-       for(iter=list.begin();iter!=list.end();iter++)
-               iter->get_widget()->set_sensitive(false);
-*/
 }
 
 void
 Widget_RendDesc::enable_time_section()
 {
        time_frame->set_sensitive(true);
-
-/*
-       Gtk::Table::TableList &list=time_table->children();
-       Gtk::Table::TableList::iterator iter;
-       for(iter=list.begin();iter!=list.end();iter++)
-               iter->get_widget()->set_sensitive(true);
-
-*/
 }
 
 void
@@ -385,8 +361,7 @@ Widget_RendDesc::create_widgets()
        entry_fps=manage(new Gtk::SpinButton(adjustment_fps,1,5));
        entry_start_time=manage(new Widget_Time());
        entry_end_time=manage(new Widget_Time());
-       //entry_start_frame=manage(new 
Gtk::SpinButton(adjustment_start_frame,1,0));
-       //entry_end_frame=manage(new Gtk::SpinButton(adjustment_end_frame,1,0));
+       entry_duration=manage(new Widget_Time());
        entry_focus=manage(new Widget_Vector());
        toggle_px_aspect=manage(new Gtk::CheckButton(_("_Pixel Aspect"), true));
        toggle_px_aspect->set_alignment(0, 0.5);
@@ -419,8 +394,7 @@ Widget_RendDesc::connect_signals()
        
entry_fps->signal_value_changed().connect(sigc::mem_fun(*this,&studio::Widget_RendDesc::on_fps_changed));
        
entry_start_time->signal_value_changed().connect(sigc::mem_fun(*this,&studio::Widget_RendDesc::on_start_time_changed));
        
entry_end_time->signal_value_changed().connect(sigc::mem_fun(*this,&studio::Widget_RendDesc::on_end_time_changed));
-       
//entry_start_frame->signal_value_changed().connect(sigc::mem_fun(*this,&studio::Widget_RendDesc::on_start_frame_changed));
-       
//entry_end_frame->signal_value_changed().connect(sigc::mem_fun(*this,&studio::Widget_RendDesc::on_end_frame_changed));
+       
entry_duration->signal_value_changed().connect(sigc::mem_fun(*this,&studio::Widget_RendDesc::on_duration_changed));
        
entry_focus->signal_value_changed().connect(sigc::mem_fun(*this,&studio::Widget_RendDesc::on_focus_changed));
        toggle_px_aspect->signal_toggled().connect(sigc::mem_fun(*this, 
&studio::Widget_RendDesc::on_lock_changed));
        toggle_px_width->signal_toggled().connect(sigc::mem_fun(*this, 
&studio::Widget_RendDesc::on_lock_changed));
@@ -559,6 +533,11 @@ Widget_RendDesc::create_time_tab()
        timeFrameTable->attach(*timeEndLabel, 0, 1, 2, 3, Gtk::EXPAND | 
Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0);
        timeFrameTable->attach(*entry_end_time, 1, 2, 2, 3, Gtk::EXPAND | 
Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0);
 
+       Gtk::Label *timeDurationLabel = manage(new Gtk::Label(_("_Duration"), 
0, 0.5, true));
+       timeDurationLabel->set_mnemonic_widget(*entry_duration);
+       timeFrameTable->attach(*timeDurationLabel, 0, 1, 3, 4, Gtk::EXPAND | 
Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0);
+       timeFrameTable->attach(*entry_duration, 1, 2, 3, 4, Gtk::EXPAND | 
Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0);
+
        paddedPanel->show_all();
        return paddedPanel;
 }
@@ -615,7 +594,3 @@ Widget_RendDesc::create_other_tab()
        paddedPanel->show_all();
        return paddedPanel;
 }
-
-/*
- * vim:ts=4:sw=4
- */
diff --git a/synfig-studio/src/gui/renddesc.h b/synfig-studio/src/gui/renddesc.h
index 724ddac..c0726fd 100644
--- a/synfig-studio/src/gui/renddesc.h
+++ b/synfig-studio/src/gui/renddesc.h
@@ -59,10 +59,6 @@ class Widget_RendDesc : public Gtk::Notebook
        Gtk::Adjustment adjustment_phy_width;
        Gtk::Adjustment adjustment_phy_height;
        Gtk::Adjustment adjustment_fps;
-       //Gtk::Adjustment adjustment_start_time;
-       //Gtk::Adjustment adjustment_end_time;
-       //Gtk::Adjustment adjustment_start_frame;
-       //Gtk::Adjustment adjustment_end_frame;
        Gtk::Adjustment adjustment_span;
 
        Gtk::SpinButton *entry_width;
@@ -72,10 +68,6 @@ class Widget_RendDesc : public Gtk::Notebook
        Gtk::SpinButton *entry_phy_width;
        Gtk::SpinButton *entry_phy_height;
        Gtk::SpinButton *entry_fps;
-//     Gtk::SpinButton *entry_start_time;
-//     Gtk::SpinButton *entry_end_time;
-//     Gtk::SpinButton *entry_start_frame;
-//     Gtk::SpinButton *entry_end_frame;
        Gtk::SpinButton *entry_span;
 
        Gtk::CheckButton *toggle_px_aspect;
@@ -87,7 +79,6 @@ class Widget_RendDesc : public Gtk::Notebook
        Gtk::CheckButton *toggle_im_height;
        Gtk::CheckButton *toggle_im_span;
 
-       /* Gtk::Table *time_table; */
        Gtk::Frame *time_frame;
 
        Widget_Vector *entry_tl;
@@ -97,6 +88,7 @@ class Widget_RendDesc : public Gtk::Notebook
 
        Widget_Time *entry_start_time;
        Widget_Time *entry_end_time;
+       Widget_Time *entry_duration;
 
        mutable int update_lock;
 
@@ -141,8 +133,7 @@ private:
        void on_fps_changed();
        void on_start_time_changed();
        void on_end_time_changed();
-       //void on_start_frame_changed();
-       //void on_end_frame_changed();
+       void on_duration_changed();
        void on_lock_changed();
        void on_focus_changed();
        void on_span_changed();


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Synfig-devl mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/synfig-devl

Reply via email to