+CanvasView::decrease_low_res_pixel_size()
+{
+ if(changing_resolution_)
+ return;
+ changing_resolution_=true;
+ list<int> sizes = CanvasView::get_pixel_sizes();
+ int pixel_size = work_area->get_low_res_pixel_size();
+ for (list<int>::iterator iter = sizes.begin(); iter != sizes.end(); iter++)
+ if (*iter == pixel_size)
+ {
+ if (iter == sizes.begin())
+ // we already have the smallest low-res pixels possible - turn off low-res instead
+ work_area->set_low_resolution_flag(false);
+ else
+ {
+ iter--;
+ Glib::RefPtr<Gtk::Action> action = action_group->get_action(strprintf("lowres-pixel-%d", *iter));
+ action->activate(); // to make sure the radiobutton in the menu is updated too
+ work_area->set_low_resolution_flag(true);
+ }
+ break;
+ }
+ // Update the "toggle-low-res" action
+ Glib::RefPtr<Gtk::ToggleAction> action = Glib::RefPtr<Gtk::ToggleAction>::cast_dynamic(action_group->get_action("toggle-low-res"));
+ action->set_active(work_area->get_low_resolution_flag());
+ // Update toggle low res button
+ resolutiondial->update_lowres(work_area->get_low_resolution_flag());
+ changing_resolution_=false;
+}
+
+void
+CanvasView::increase_low_res_pixel_size()
+{
+ if(changing_resolution_)
+ return;
+ changing_resolution_=true;
+ list<int> sizes = CanvasView::get_pixel_sizes();
+ int pixel_size = work_area->get_low_res_pixel_size();
+ if (!work_area->get_low_resolution_flag())
+ {
+ // We were using "hi res" so change it to low res.
+ work_area->set_low_resolution_flag(true);
+ // Update the "toggle-low-res" action
+ Glib::RefPtr<Gtk::ToggleAction> action = Glib::RefPtr<Gtk::ToggleAction>::cast_dynamic(action_group->get_action("toggle-low-res"));
+ action->set_active(true);
+ // Update the toggle low res button
+ resolutiondial->update_lowres(true);
+ changing_resolution_=false;
+ return;
+ }
+
+ for (list<int>::iterator iter = sizes.begin(); iter != sizes.end(); iter++)
+ if (*iter == pixel_size)
+ {
+ iter++;
+ if (iter != sizes.end())
+ {
+ Glib::RefPtr<Gtk::Action> action = action_group->get_action(strprintf("lowres-pixel-%d", *iter));
+ action->activate(); // to make sure the radiobutton in the menu is updated too
+ work_area->set_low_resolution_flag(true);
+ }
+ break;
+ }
+ // Update the "toggle-low-res" action
+ Glib::RefPtr<Gtk::ToggleAction> action = Glib::RefPtr<Gtk::ToggleAction>::cast_dynamic(action_group->get_action("toggle-low-res"));
+ action->set_active(work_area->get_low_resolution_flag());
+ // Update toggle low res button
+ resolutiondial->update_lowres(work_area->get_low_resolution_flag());
+ changing_resolution_=false;
+}
+
+void
+CanvasView::toggle_low_res_pixel_flag()
+{
+ if(changing_resolution_)
+ return;
+ changing_resolution_=true;
+ work_area->toggle_low_resolution_flag();
+ // Update the toggle low res button
+ resolutiondial->update_lowres(work_area->get_low_resolution_flag());
+ // Update the "toggle-low-res" action
+ Glib::RefPtr<Gtk::ToggleAction> action = Glib::RefPtr<Gtk::ToggleAction>::cast_dynamic(action_group->get_action("toggle-low-res"));
+ action->set_active(work_area->get_low_resolution_flag());
+ changing_resolution_=false;
+}
+
+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