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);
}
action_group->add( action,
sigc::bind(
- sigc::mem_fun(*work_area, &studio::WorkArea::set_quality),
+ sigc::mem_fun(*this, &studio::CanvasView::set_quality),
i
)
);
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::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_)