X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fapp.cpp;h=ba154c2d18596710c0e14b828af852534dee3cf9;hb=eebf73ecd0914fe08549d23e5d38e946b65b669a;hp=5fabbbb06013a83280971279f6d3488c65a54cd8;hpb=fc860c23ed833d1da82174bd636d51d1b54a4af2;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/app.cpp b/synfig-studio/trunk/src/gtkmm/app.cpp index 5fabbbb..ba154c2 100644 --- a/synfig-studio/trunk/src/gtkmm/app.cpp +++ b/synfig-studio/trunk/src/gtkmm/app.cpp @@ -55,6 +55,7 @@ #include "app.h" #include "about.h" +#include "splash.h" #include "instance.h" #include "canvasview.h" #include "dialog_setup.h" @@ -222,6 +223,8 @@ const etl::handle& App::get_ui_interface() { return ui_i etl::handle App::selected_instance; etl::handle App::selected_canvas_view; +studio::About *studio::App::about=NULL; + studio::Toolbox *studio::App::toolbox=NULL; studio::AutoRecover *studio::App::auto_recover=NULL; @@ -1025,13 +1028,13 @@ App::App(int *argc, char ***argv): } Glib::set_application_name(_("Synfig Studio")); - About about_window; - about_window.set_can_self_destruct(false); - about_window.show(); + Splash splash_screen; + splash_screen.set_can_self_destruct(false); + splash_screen.show(); shutdown_in_progress=false; - SuperCallback synfig_init_cb(about_window.get_callback(),0,9000,10000); - SuperCallback studio_init_cb(about_window.get_callback(),9000,10000,10000); + SuperCallback synfig_init_cb(splash_screen.get_callback(),0,9000,10000); + SuperCallback studio_init_cb(splash_screen.get_callback(),9000,10000,10000); // Initialize the Synfig library try { synfigapp_main=etl::smart_ptr(new synfigapp::Main(etl::dirname((*argv)[0]),&synfig_init_cb)); } @@ -1059,6 +1062,9 @@ App::App(int *argc, char ***argv): studio_init_cb.task(_("Init Toolbox...")); toolbox=new studio::Toolbox(); + studio_init_cb.task(_("Init About Dialog...")); + about=new studio::About(); + studio_init_cb.task(_("Init Tool Options...")); dialog_tool_options=new studio::Dialog_ToolOptions(); dock_manager->register_dockable(*dialog_tool_options); @@ -1122,30 +1128,27 @@ App::App(int *argc, char ***argv): device_tracker=new studio::DeviceTracker(); studio_init_cb.task(_("Init Tools...")); + + /* row 1 */ 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 */ state_manager->add_state(&state_bline); - - state_manager->add_state(&state_circle); state_manager->add_state(&state_rectangle); - state_manager->add_state(&state_gradient); - state_manager->add_state(&state_eyedrop); - state_manager->add_state(&state_fill); + if(!getenv("SYNFIG_DISABLE_POLYGON")) state_manager->add_state(&state_polygon); // Enabled - for working without ducks - state_manager->add_state(&state_zoom); - - // Enabled - it's useful to be able to work with polygons without tangent ducks getting in the way. - // I know we can switch tangent ducks off, but why not allow this kind of layer as well? - if(!getenv("SYNFIG_DISABLE_POLYGON")) state_manager->add_state(&state_polygon); - - // Enabled for now. Let's see whether they're good enough yet. - if(!getenv("SYNFIG_DISABLE_DRAW" )) state_manager->add_state(&state_draw); + /* row 3 */ + 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_SKETCH" )) state_manager->add_state(&state_sketch); + state_manager->add_state(&state_fill); + state_manager->add_state(&state_eyedrop); + state_manager->add_state(&state_zoom); // Disabled by default - it doesn't work properly? if(getenv("SYNFIG_ENABLE_WIDTH" )) state_manager->add_state(&state_width); @@ -1153,10 +1156,6 @@ App::App(int *argc, char ***argv): studio_init_cb.task(_("Init ModPalette...")); module_list_.push_back(new ModPalette()); module_list_.back()->start(); - studio_init_cb.task(_("Init ModMirror...")); - module_list_.push_back(new ModMirror()); module_list_.back()->start(); - - studio_init_cb.task(_("Init Setup Dialog...")); dialog_setup=new studio::Dialog_Setup(); @@ -1177,7 +1176,7 @@ App::App(int *argc, char ***argv): if(auto_recover->recovery_needed()) { - about_window.hide(); + splash_screen.hide(); if( get_ui_interface()->yes_no( _("Auto Recovery"), @@ -1200,7 +1199,7 @@ App::App(int *argc, char ***argv): "idea to review them and save them now.") ); } - about_window.show(); + splash_screen.show(); } // Look for any files given on the command line, @@ -1210,10 +1209,10 @@ App::App(int *argc, char ***argv): if((*argv)[*argc] && (*argv)[*argc][0]!='-') { studio_init_cb.task(_("Loading files...")); - about_window.hide(); + splash_screen.hide(); open((*argv)[*argc]); opened_any = true; - about_window.show(); + splash_screen.show(); } // if no file was specified to be opened, create a new document to help new users get started more easily @@ -1257,6 +1256,8 @@ App::~App() delete auto_recover; + delete about; + toolbox->hide(); // studio::App::iteration(false); @@ -2049,7 +2050,8 @@ App::get_instance(etl::handle canvas) void App::dialog_about() { - (new class About())->show(); + if(about) + about->show(); } void