Reorder tool buttons in the toolbox.
[synfig.git] / synfig-studio / src / gtkmm / app.cpp
index 24e2bcf..68c8795 100644 (file)
@@ -9,6 +9,7 @@
 **     Copyright (c) 2007, 2008 Chris Moore
 **     Copyright (c) 2008 Gerald Young
 **  Copyright (c) 2008 Carlos López
+**     Copyright (c) 2009 Nikita Kitaev
 **
 **     This package is free software; you can redistribute it and/or
 **     modify it under the terms of the GNU General Public License as
@@ -728,7 +729,7 @@ init_ui_manager()
 
        Glib::RefPtr<Gtk::ActionGroup> toolbox_action_group = Gtk::ActionGroup::create("toolbox");
 
-       Glib::RefPtr<Gtk::ActionGroup> actions_action_group = Gtk::ActionGroup::create();
+       Glib::RefPtr<Gtk::ActionGroup> actions_action_group = Gtk::ActionGroup::create("actions");
 
        menus_action_group->add( Gtk::Action::create("menu-file", _("_File")) );
        menus_action_group->add( Gtk::Action::create("menu-edit", _("_Edit")) );
@@ -1059,79 +1060,79 @@ init_ui_manager()
        }
 
        // the toolbox
-       ACCEL("<Mod1>a",                                                                                                        "<Actions>//state-normal"                                       );
-       ACCEL("<Mod1>v",                                                                                                        "<Actions>//state-smooth_move"                          );
-       ACCEL("<Mod1>s",                                                                                                        "<Actions>//state-scale"                                        );
-       ACCEL("<Mod1>t",                                                                                                        "<Actions>//state-rotate"                                       );
-       ACCEL("<Mod1>m",                                                                                                        "<Actions>//state-mirror"                                       );
-       ACCEL("<Mod1>c",                                                                                                        "<Actions>//state-circle"                                       );
-       ACCEL("<Mod1>r",                                                                                                        "<Actions>//state-rectangle"                            );
-       ACCEL("<Mod1>q",                                                                                                        "<Actions>//state-star"                                         );
-       ACCEL("<Mod1>g",                                                                                                        "<Actions>//state-gradient"                                     );
-       ACCEL("<Mod1>p",                                                                                                        "<Actions>//state-polygon"                                      );
-       ACCEL("<Mod1>b",                                                                                                        "<Actions>//state-bline"                                        );
-       ACCEL("<Mod1>x",                                                                                                        "<Actions>//state-text"                                         );
-       ACCEL("<Mod1>f",                                                                                                        "<Actions>//state-fill"                                         );
-       ACCEL("<Mod1>e",                                                                                                        "<Actions>//state-eyedrop"                                      );
-       ACCEL("<Mod1>z",                                                                                                        "<Actions>//state-zoom"                                         );
-       ACCEL("<Mod1>d",                                                                                                        "<Actions>//state-draw"                                         );
-       ACCEL("<Mod1>k",                                                                                                        "<Actions>//state-sketch"                                       );
-       ACCEL("<Mod1>w",                                                                                                        "<Actions>//state-width"                                        );
+       ACCEL("<Mod1>a",                                                                                                        "<Actions>/action_group_state_manager/state-normal"                                     );
+       ACCEL("<Mod1>v",                                                                                                        "<Actions>/action_group_state_manager/state-smooth_move"                                );
+       ACCEL("<Mod1>s",                                                                                                        "<Actions>/action_group_state_manager/state-scale"                                      );
+       ACCEL("<Mod1>t",                                                                                                        "<Actions>/action_group_state_manager/state-rotate"                                     );
+       ACCEL("<Mod1>m",                                                                                                        "<Actions>/action_group_state_manager/state-mirror"                                     );
+       ACCEL("<Mod1>c",                                                                                                        "<Actions>/action_group_state_manager/state-circle"                                     );
+       ACCEL("<Mod1>r",                                                                                                        "<Actions>/action_group_state_manager/state-rectangle"                          );
+       ACCEL("<Mod1>q",                                                                                                        "<Actions>/action_group_state_manager/state-star"                                               );
+       ACCEL("<Mod1>g",                                                                                                        "<Actions>/action_group_state_manager/state-gradient"                                   );
+       ACCEL("<Mod1>p",                                                                                                        "<Actions>/action_group_state_manager/state-polygon"                                    );
+       ACCEL("<Mod1>b",                                                                                                        "<Actions>/action_group_state_manager/state-bline"                                      );
+       ACCEL("<Mod1>x",                                                                                                        "<Actions>/action_group_state_manager/state-text"                                               );
+       ACCEL("<Mod1>f",                                                                                                        "<Actions>/action_group_state_manager/state-fill"                                               );
+       ACCEL("<Mod1>e",                                                                                                        "<Actions>/action_group_state_manager/state-eyedrop"                                    );
+       ACCEL("<Mod1>z",                                                                                                        "<Actions>/action_group_state_manager/state-zoom"                                               );
+       ACCEL("<Mod1>d",                                                                                                        "<Actions>/action_group_state_manager/state-draw"                                               );
+       ACCEL("<Mod1>k",                                                                                                        "<Actions>/action_group_state_manager/state-sketch"                                     );
+       ACCEL("<Mod1>w",                                                                                                        "<Actions>/action_group_state_manager/state-width"                                      );
 
        // everything else
-       ACCEL("<Control>a",                                                                                                     "<Actions>//select-all-ducks"                           );
-       ACCEL("<Control>d",                                                                                                     "<Actions>//unselect-all-ducks"                         );
-       ACCEL("<Control><Shift>a",                                                                                      "<Actions>//select-all-layers"                          );
-       ACCEL("<Control><Shift>d",                                                                                      "<Actions>//unselect-all-layers"                        );
-       ACCEL("F9",                                                                                                                     "<Actions>//render"                                                     );
-       ACCEL("F11",                                                                                                            "<Actions>//preview"                                            );
-       ACCEL("F8",                                                                                                                     "<Actions>//properties"                                         );
-       ACCEL("F12",                                                                                                            "<Actions>//options"                                            );
-       ACCEL("<control>i",                                                                                                     "<Actions>//import"                                                     );
-       ACCEL2(Gtk::AccelKey(GDK_Escape,static_cast<Gdk::ModifierType>(0),      "<Actions>//stop"                                                       ));
-       ACCEL("<Control>g",                                                                                                     "<Actions>//toggle-grid-show"                           );
-       ACCEL("<Control>l",                                                                                                     "<Actions>//toggle-grid-snap"                           );
-       ACCEL2(Gtk::AccelKey('`',Gdk::CONTROL_MASK,                                                     "<Actions>//toggle-low-res"                                     ));
-       ACCEL("<Mod1>1",                                                                                                        "<Actions>//mask-position-ducks"                        );
-       ACCEL("<Mod1>2",                                                                                                        "<Actions>//mask-vertex-ducks"                          );
-       ACCEL("<Mod1>3",                                                                                                        "<Actions>//mask-tangent-ducks"                         );
-       ACCEL("<Mod1>4",                                                                                                        "<Actions>//mask-radius-ducks"                          );
-       ACCEL("<Mod1>5",                                                                                                        "<Actions>//mask-width-ducks"                           );
-       ACCEL("<Mod1>6",                                                                                                        "<Actions>//mask-angle-ducks"                           );
-       ACCEL2(Gtk::AccelKey(GDK_Page_Up,Gdk::SHIFT_MASK,                                       "<Actions>//action-LayerRaise"                          ));
-       ACCEL2(Gtk::AccelKey(GDK_Page_Down,Gdk::SHIFT_MASK,                                     "<Actions>//action-LayerLower"                          ));
-       ACCEL("<Control>1",                                                                                                     "<Actions>//quality-01"                                         );
-       ACCEL("<Control>2",                                                                                                     "<Actions>//quality-02"                                         );
-       ACCEL("<Control>3",                                                                                                     "<Actions>//quality-03"                                         );
-       ACCEL("<Control>4",                                                                                                     "<Actions>//quality-04"                                         );
-       ACCEL("<Control>5",                                                                                                     "<Actions>//quality-05"                                         );
-       ACCEL("<Control>6",                                                                                                     "<Actions>//quality-06"                                         );
-       ACCEL("<Control>7",                                                                                                     "<Actions>//quality-07"                                         );
-       ACCEL("<Control>8",                                                                                                     "<Actions>//quality-08"                                         );
-       ACCEL("<Control>9",                                                                                                     "<Actions>//quality-09"                                         );
-       ACCEL("<Control>0",                                                                                                     "<Actions>//quality-10"                                         );
-       ACCEL("<Control>z",                                                                                                     "<Actions>//undo"                                                       );
-       ACCEL("<Control>r",                                                                                                     "<Actions>//redo"                                                       );
-       ACCEL2(Gtk::AccelKey(GDK_Delete,Gdk::CONTROL_MASK,                                      "<Actions>//action-LayerRemove"                         ));
-       ACCEL2(Gtk::AccelKey('(',Gdk::CONTROL_MASK,                                                     "<Actions>//decrease-low-res-pixel-size"        ));
-       ACCEL2(Gtk::AccelKey(')',Gdk::CONTROL_MASK,                                                     "<Actions>//increase-low-res-pixel-size"        ));
-       ACCEL2(Gtk::AccelKey('(',Gdk::MOD1_MASK|Gdk::CONTROL_MASK,                      "<Actions>//amount-dec"                                         ));
-       ACCEL2(Gtk::AccelKey(')',Gdk::MOD1_MASK|Gdk::CONTROL_MASK,                      "<Actions>//amount-inc"                                         ));
-       ACCEL2(Gtk::AccelKey(']',Gdk::CONTROL_MASK,                                                     "<Actions>//jump-next-keyframe"                         ));
-       ACCEL2(Gtk::AccelKey('[',Gdk::CONTROL_MASK,                                                     "<Actions>//jump-prev-keyframe"                         ));
-       ACCEL2(Gtk::AccelKey('=',Gdk::CONTROL_MASK,                                                     "<Actions>//canvas-zoom-in"                                     ));
-       ACCEL2(Gtk::AccelKey('-',Gdk::CONTROL_MASK,                                                     "<Actions>//canvas-zoom-out"                            ));
-       ACCEL2(Gtk::AccelKey('+',Gdk::CONTROL_MASK,                                                     "<Actions>//time-zoom-in"                                       ));
-       ACCEL2(Gtk::AccelKey('_',Gdk::CONTROL_MASK,                                                     "<Actions>//time-zoom-out"                                      ));
-       ACCEL2(Gtk::AccelKey('.',Gdk::CONTROL_MASK,                                                     "<Actions>//seek-next-frame"                            ));
-       ACCEL2(Gtk::AccelKey(',',Gdk::CONTROL_MASK,                                                     "<Actions>//seek-prev-frame"                            ));
-       ACCEL2(Gtk::AccelKey('>',Gdk::CONTROL_MASK,                                                     "<Actions>//seek-next-second"                           ));
-       ACCEL2(Gtk::AccelKey('<',Gdk::CONTROL_MASK,                                                     "<Actions>//seek-prev-second"                           ));
-       ACCEL("<Mod1>o",                                                                                                        "<Actions>//toggle-onion-skin"                          );
-       ACCEL("<Control><Shift>z",                                                                                      "<Actions>//canvas-zoom-fit"                            );
-       ACCEL("<Control>p",                                                                                                     "<Actions>//play"                                                       );
-       ACCEL("Home",                                                                                                           "<Actions>//seek-begin"                                         );
-       ACCEL("End",                                                                                                            "<Actions>//seek-end"                                           );
+       ACCEL("<Control>a",                                                                                                     "<Actions>/canvasview/select-all-ducks"                         );
+       ACCEL("<Control>d",                                                                                                     "<Actions>/canvasview/unselect-all-ducks"                               );
+       ACCEL("<Control><Shift>a",                                                                                      "<Actions>/canvasview/select-all-layers"                                );
+       ACCEL("<Control><Shift>d",                                                                                      "<Actions>/canvasview/unselect-all-layers"                      );
+       ACCEL("F9",                                                                                                                     "<Actions>/canvasview/render"                                                   );
+       ACCEL("F11",                                                                                                            "<Actions>/canvasview/preview"                                          );
+       ACCEL("F8",                                                                                                                     "<Actions>/canvasview/properties"                                               );
+       ACCEL("F12",                                                                                                            "<Actions>/canvasview/options"                                          );
+       ACCEL("<control>i",                                                                                                     "<Actions>/canvasview/import"                                                   );
+       ACCEL2(Gtk::AccelKey(GDK_Escape,static_cast<Gdk::ModifierType>(0),      "<Actions>/canvasview/stop"                                                     ));
+       ACCEL("<Control>g",                                                                                                     "<Actions>/canvasview/toggle-grid-show"                         );
+       ACCEL("<Control>l",                                                                                                     "<Actions>/canvasview/toggle-grid-snap"                         );
+       ACCEL2(Gtk::AccelKey('`',Gdk::CONTROL_MASK,                                                     "<Actions>/canvasview/toggle-low-res"                                   ));
+       ACCEL("<Mod1>1",                                                                                                        "<Actions>/canvasview/mask-position-ducks"                      );
+       ACCEL("<Mod1>2",                                                                                                        "<Actions>/canvasview/mask-vertex-ducks"                                );
+       ACCEL("<Mod1>3",                                                                                                        "<Actions>/canvasview/mask-tangent-ducks"                               );
+       ACCEL("<Mod1>4",                                                                                                        "<Actions>/canvasview/mask-radius-ducks"                                );
+       ACCEL("<Mod1>5",                                                                                                        "<Actions>/canvasview/mask-width-ducks"                         );
+       ACCEL("<Mod1>6",                                                                                                        "<Actions>/canvasview/mask-angle-ducks"                         );
+       ACCEL2(Gtk::AccelKey(GDK_Page_Up,Gdk::SHIFT_MASK,                                       "<Actions>/action_group_layer_action_manager/action-LayerRaise"                         ));
+       ACCEL2(Gtk::AccelKey(GDK_Page_Down,Gdk::SHIFT_MASK,                                     "<Actions>/action_group_layer_action_manager/action-LayerLower"                         ));
+       ACCEL("<Control>1",                                                                                                     "<Actions>/canvasview/quality-01"                                               );
+       ACCEL("<Control>2",                                                                                                     "<Actions>/canvasview/quality-02"                                               );
+       ACCEL("<Control>3",                                                                                                     "<Actions>/canvasview/quality-03"                                               );
+       ACCEL("<Control>4",                                                                                                     "<Actions>/canvasview/quality-04"                                               );
+       ACCEL("<Control>5",                                                                                                     "<Actions>/canvasview/quality-05"                                               );
+       ACCEL("<Control>6",                                                                                                     "<Actions>/canvasview/quality-06"                                               );
+       ACCEL("<Control>7",                                                                                                     "<Actions>/canvasview/quality-07"                                               );
+       ACCEL("<Control>8",                                                                                                     "<Actions>/canvasview/quality-08"                                               );
+       ACCEL("<Control>9",                                                                                                     "<Actions>/canvasview/quality-09"                                               );
+       ACCEL("<Control>0",                                                                                                     "<Actions>/canvasview/quality-10"                                               );
+       ACCEL("<Control>z",                                                                                                     "<Actions>/action_group_dock_history/undo"                                                      );
+       ACCEL("<Control>r",                                                                                                     "<Actions>/action_group_dock_history/redo"                                                      );
+       ACCEL2(Gtk::AccelKey(GDK_Delete,Gdk::CONTROL_MASK,                                      "<Actions>/action_group_layer_action_manager/action-LayerRemove"                                ));
+       ACCEL2(Gtk::AccelKey('(',Gdk::CONTROL_MASK,                                                     "<Actions>/canvasview/decrease-low-res-pixel-size"      ));
+       ACCEL2(Gtk::AccelKey(')',Gdk::CONTROL_MASK,                                                     "<Actions>/canvasview/increase-low-res-pixel-size"      ));
+       ACCEL2(Gtk::AccelKey('(',Gdk::MOD1_MASK|Gdk::CONTROL_MASK,                      "<Actions>/action_group_layer_action_manager/amount-dec"                                                ));
+       ACCEL2(Gtk::AccelKey(')',Gdk::MOD1_MASK|Gdk::CONTROL_MASK,                      "<Actions>/action_group_layer_action_manager/amount-inc"                                                ));
+       ACCEL2(Gtk::AccelKey(']',Gdk::CONTROL_MASK,                                                     "<Actions>/canvasview/jump-next-keyframe"                               ));
+       ACCEL2(Gtk::AccelKey('[',Gdk::CONTROL_MASK,                                                     "<Actions>/canvasview/jump-prev-keyframe"                               ));
+       ACCEL2(Gtk::AccelKey('=',Gdk::CONTROL_MASK,                                                     "<Actions>/canvasview/canvas-zoom-in"                                   ));
+       ACCEL2(Gtk::AccelKey('-',Gdk::CONTROL_MASK,                                                     "<Actions>/canvasview/canvas-zoom-out"                          ));
+       ACCEL2(Gtk::AccelKey('+',Gdk::CONTROL_MASK,                                                     "<Actions>/canvasview/time-zoom-in"                                     ));
+       ACCEL2(Gtk::AccelKey('_',Gdk::CONTROL_MASK,                                                     "<Actions>/canvasview/time-zoom-out"                                    ));
+       ACCEL2(Gtk::AccelKey('.',Gdk::CONTROL_MASK,                                                     "<Actions>/canvasview/seek-next-frame"                          ));
+       ACCEL2(Gtk::AccelKey(',',Gdk::CONTROL_MASK,                                                     "<Actions>/canvasview/seek-prev-frame"                          ));
+       ACCEL2(Gtk::AccelKey('>',Gdk::CONTROL_MASK,                                                     "<Actions>/canvasview/seek-next-second"                         ));
+       ACCEL2(Gtk::AccelKey('<',Gdk::CONTROL_MASK,                                                     "<Actions>/canvasview/seek-prev-second"                         ));
+       ACCEL("<Mod1>o",                                                                                                        "<Actions>/canvasview/toggle-onion-skin"                                );
+       ACCEL("<Control><Shift>z",                                                                                      "<Actions>/canvasview/canvas-zoom-fit"                          );
+       ACCEL("<Control>p",                                                                                                     "<Actions>/canvasview/play"                                                     );
+       ACCEL("Home",                                                                                                           "<Actions>/canvasview/seek-begin"                                               );
+       ACCEL("End",                                                                                                            "<Actions>/canvasview/seek-end"                                         );
 
 #undef ACCEL
 }
@@ -1181,7 +1182,7 @@ App::App(int *argc, char ***argv):
                        "different version of libsynfig than what is currently\n"
                        "installed. Synfig Studio will now abort. Try downloading\n"
                        "the latest version from the Synfig website at\n"
-                       "http://synfig.org/Download"
+                       "http://synfig.org/en/current-release"
                );
                throw 40;
        }
@@ -1292,30 +1293,31 @@ App::App(int *argc, char ***argv):
 
                studio_init_cb.task(_("Init Tools..."));
 
-               /* row 1 */
+               /* editing tools */
                state_manager->add_state(&state_normal);
                state_manager->add_state(&state_smooth_move);
                state_manager->add_state(&state_scale);
                state_manager->add_state(&state_rotate);
                studio_init_cb.task(_("Init ModMirror...")); module_list_.push_back(new ModMirror()); module_list_.back()->start();
 
-               /* row 2 */
+               /* geometry */
                state_manager->add_state(&state_circle);
                state_manager->add_state(&state_rectangle);
                state_manager->add_state(&state_star);
                state_manager->add_state(&state_gradient);
                if(!getenv("SYNFIG_DISABLE_POLYGON")) state_manager->add_state(&state_polygon); // Enabled - for working without ducks
-
-               /* row 3 */
+               
+               /* bline tools */
                state_manager->add_state(&state_bline);
-               state_manager->add_state(&state_text);
+               if(!getenv("SYNFIG_DISABLE_DRAW"   )) state_manager->add_state(&state_draw); // Enabled for now.  Let's see whether they're good enough yet.
+               if(!getenv("SYNFIG_DISABLE_WIDTH"  )) state_manager->add_state(&state_width); // Enabled since 0.61.09
                state_manager->add_state(&state_fill);
                state_manager->add_state(&state_eyedrop);
-               state_manager->add_state(&state_zoom);
-
-               if(!getenv("SYNFIG_DISABLE_DRAW"   )) state_manager->add_state(&state_draw); // Enabled for now.  Let's see whether they're good enough yet.
+               
+               /* other */
+               state_manager->add_state(&state_text);
                if(!getenv("SYNFIG_DISABLE_SKETCH" )) state_manager->add_state(&state_sketch);
-               if(!getenv("SYNFIG_DISABLE_WIDTH"  )) state_manager->add_state(&state_width); // Enabled since 0.61.09
+               state_manager->add_state(&state_zoom);
 
                studio_init_cb.task(_("Init ModPalette..."));
                module_list_.push_back(new ModPalette()); module_list_.back()->start();
@@ -1786,7 +1788,7 @@ App::reset_initial_window_configuration()
        synfigapp::Main::settings().set_value("pref.distance_system","pt");
        synfigapp::Main::settings().set_value("pref.use_colorspace_gamma","1");
 #ifdef SINGLE_THREADED
-       synfigapp::Main::settings().set_value("pref.single_threaded","0");
+       synfigapp::Main::settings().set_value("pref.single_threaded","1");
 #endif
        synfigapp::Main::settings().set_value("pref.restrict_radius_ducks","0");
        synfigapp::Main::settings().set_value("pref.resize_imported_images","0");
@@ -2101,7 +2103,8 @@ App::dialog_save_file(const std::string &title, std::string &filename, std::stri
        {
                file_type_enum = manage(new Widget_Enum());
                file_type_enum->set_param_desc(ParamDesc().set_hint("enum")
-                                                                          .add_enum_value(synfig::RELEASE_VERSION_0_61_09, "0.61.09", strprintf("0.61.09 (%s)", _("current")))
+                                                                          .add_enum_value(synfig::RELEASE_VERSION_0_62_00, "0.62.00", strprintf("0.62.00 (%s)", _("current")))
+                                                                          .add_enum_value(synfig::RELEASE_VERSION_0_61_09, "0.61.09", "0.61.09")
                                                                           .add_enum_value(synfig::RELEASE_VERSION_0_61_08, "0.61.08", "0.61.08")
                                                                           .add_enum_value(synfig::RELEASE_VERSION_0_61_07, "0.61.07", "0.61.07")
                                                                           .add_enum_value(synfig::RELEASE_VERSION_0_61_06, "0.61.06", strprintf("0.61.06 %s", _("and older"))));
@@ -2291,10 +2294,10 @@ try_open_url(const std::string &url)
 void
 App::dialog_help()
 {
-       if (!try_open_url("http://synfig.org/Documentation"))
+       if (!try_open_url("http://synfig.org/wiki/Category:Manual"))
        {
                Gtk::MessageDialog dialog(_("Documentation"), false, Gtk::MESSAGE_INFO, Gtk::BUTTONS_CLOSE, true);
-               dialog.set_secondary_text(_("Documentation for Synfig Studio is available on the website:\n\nhttp://www.synfig.org/Documentation"));
+               dialog.set_secondary_text(_("Documentation for Synfig Studio is available on the website:\n\nhttp://synfig.org/wiki/Category:Manual"));
                dialog.set_title(_("Help"));
                dialog.run();
        }