Add tooltip to the quality spin button.
[synfig.git] / synfig-studio / trunk / src / gtkmm / canvasview.cpp
index 7e77704..3fe39e7 100644 (file)
@@ -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);
@@ -1423,7 +1424,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
                                )
                        );
@@ -3187,14 +3188,33 @@ CanvasView::toggle_low_res_pixel_flag()
 void
 CanvasView::update_quality()
 {
+       if(working_depth)
+                       return;
        if(updating_quality_)
                return;
        updating_quality_=true;
        work_area->set_quality((int) quality_spin->get_value());
+       // Update Quality Radio actions
+       Glib::RefPtr<Gtk::RadioAction> action=Glib::RefPtr<Gtk::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_)