Applied patch from IL'dar AKHmetgaleev aka AkhIL to allow different qualities of...
[synfig.git] / synfig-studio / trunk / src / gtkmm / canvasview.cpp
index 4f6dec9..fd9a212 100644 (file)
@@ -1290,6 +1290,28 @@ CanvasView::init_menus()
                }
        }
 
+       // Low-Res Quality Menu
+       {
+               int i;
+               for(i=1;i<=6;i++)
+               {
+                       Glib::RefPtr<Gtk::RadioAction> action(Gtk::RadioAction::create(quality_group,strprintf("lowres-pixel-%02d",i),
+                                                                                                                                                  strprintf(_("Set Low-Res pixel size to 2^%d"),i)));
+                       if(i==1)                        // default quality
+                       {
+                               action->set_active();
+                               work_area->set_lowrespixel(i);
+                       }
+                       action_group->add( action,
+                               sigc::bind(
+                                       sigc::mem_fun(*work_area, &studio::WorkArea::set_lowrespixel),
+                                       i
+                               )
+                       );
+               }
+       }
+
+
        action_group->add( Gtk::Action::create("play", Gtk::Stock::MEDIA_PLAY),
                sigc::mem_fun(*this, &studio::CanvasView::play)
        );
@@ -1298,22 +1320,29 @@ CanvasView::init_menus()
                sigc::mem_fun0(*preview_dialog, &studio::Dialog_Preview::present)
        );
 
-       action_group->add( Gtk::Action::create("toggle-grid-show", _("Toggle Grid Show")),
-               sigc::mem_fun(*work_area, &studio::WorkArea::toggle_grid)
-       );
-       action_group->add( Gtk::Action::create("toggle-grid-snap", _("Toggle Grid Snap")),
-               sigc::mem_fun(*work_area, &studio::WorkArea::toggle_grid_snap)
-       );
-       action_group->add( Gtk::Action::create("toggle-guide-show", _("Toggle Guide Show")),
-               sigc::mem_fun(*work_area, &studio::WorkArea::toggle_guide_snap)
-       );
-       action_group->add( Gtk::Action::create("toggle-low-res", _("Toggle Low-Res")),
-               sigc::mem_fun(*work_area, &studio::WorkArea::toggle_low_resolution_flag)
-       );
-       action_group->add( Gtk::Action::create("toggle-onion-skin", _("Toggle Onion Skin")),
-               sigc::mem_fun(*work_area, &studio::WorkArea::toggle_onion_skin)
-       );
+       {
+               Glib::RefPtr<Gtk::ToggleAction> action;
+
+               action = Gtk::ToggleAction::create("toggle-grid-show", _("Show Grid"));
+               action->set_active(work_area->grid_status());
+               action_group->add(action, sigc::mem_fun(*work_area, &studio::WorkArea::toggle_grid));
 
+               action = Gtk::ToggleAction::create("toggle-grid-snap", _("Snap to Grid"));
+               action->set_active(work_area->get_grid_snap());
+               action_group->add(action, sigc::mem_fun(*work_area, &studio::WorkArea::toggle_grid_snap));
+
+               action = Gtk::ToggleAction::create("toggle-guide-show", _("Show Guides"));
+               action->set_active(work_area->get_show_guides());
+               action_group->add(action, sigc::mem_fun(*work_area, &studio::WorkArea::toggle_guide_snap));
+
+               action = Gtk::ToggleAction::create("toggle-low-res", _("Use Low-Res"));
+               action->set_active(work_area->get_low_resolution_flag());
+               action_group->add(action, sigc::mem_fun(*work_area, &studio::WorkArea::toggle_low_resolution_flag));
+
+               action = Gtk::ToggleAction::create("toggle-onion-skin", _("Show Onion Skin"));
+               action->set_active(work_area->get_onion_skin());
+               action_group->add(action, sigc::mem_fun(*work_area, &studio::WorkArea::toggle_onion_skin));
+       }
 
        action_group->add( Gtk::Action::create("canvas-zoom-fit", Gtk::StockID("gtk-zoom-fit")),
                sigc::mem_fun(*work_area, &studio::WorkArea::zoom_fit)
@@ -2523,22 +2552,18 @@ CanvasView::on_keyframe_button_pressed()
 {
        synfigapp::CanvasInterface::Mode mode(get_mode());
 
+       //   future && past   -->             past
        if((mode&synfigapp::MODE_ANIMATE_FUTURE) && (mode&synfigapp::MODE_ANIMATE_PAST))
-       {
                set_mode(get_mode()-synfigapp::MODE_ANIMATE_FUTURE);
-       }
+       //             past   -->   future
        else if(!(mode&synfigapp::MODE_ANIMATE_FUTURE) && (mode&synfigapp::MODE_ANIMATE_PAST))
-       {
-               set_mode(get_mode()-synfigapp::MODE_ANIMATE_PAST|synfigapp::MODE_ANIMATE_FUTURE);
-       }
+               set_mode((get_mode()-synfigapp::MODE_ANIMATE_PAST)|synfigapp::MODE_ANIMATE_FUTURE);
+       //   future           -->       (nothing)
        else if((mode&synfigapp::MODE_ANIMATE_FUTURE) && !(mode&synfigapp::MODE_ANIMATE_PAST))
-       {
                set_mode(get_mode()-synfigapp::MODE_ANIMATE_FUTURE);
-       }
+       //      (nothing)     -->   future && past
        else if(!(mode&synfigapp::MODE_ANIMATE_FUTURE) && !(mode&synfigapp::MODE_ANIMATE_PAST))
-       {
                set_mode(get_mode()|synfigapp::MODE_ANIMATE_FUTURE|synfigapp::MODE_ANIMATE_PAST);
-       }
 }
 
 bool
@@ -3317,8 +3342,9 @@ CanvasView::toggle_duck_mask(Duckmatic::Type type)
 void
 CanvasView::image_import()
 {
-       String filename(dirname(get_canvas()->get_file_name()));
-       if(App::dialog_open_file(_("Import Image"), filename))
+       // String filename(dirname(get_canvas()->get_file_name()));
+       String filename("*.*");
+       if(App::dialog_open_file(_("Import Image"), filename, IMAGE_DIR_PREFERENCE))
                canvas_interface()->import(filename);
 }
 
@@ -3577,7 +3603,7 @@ CanvasView::set_ext_widget(const synfig::String& x, Gtk::Widget* y)
 }
 
 bool
-CanvasView::on_delete_event(GdkEventAny* event)
+CanvasView::on_delete_event(GdkEventAny* event __attribute__ ((unused)))
 {
        close_view();