Merge branch 'master' into genete_setup_dialog
authorCarlos Lopez <carlos@pcnuevo.(none)>
Sat, 20 Jun 2009 12:22:02 +0000 (14:22 +0200)
committerCarlos Lopez <carlos@pcnuevo.(none)>
Sat, 20 Jun 2009 12:22:02 +0000 (14:22 +0200)
1  2 
synfig-studio/trunk/src/gtkmm/app.cpp

@@@ -280,8 -280,6 +280,8 @@@ String studio::App::custom_filename_pre
  int studio::App::preferred_x_size=480;
  int studio::App::preferred_y_size=270;
  String studio::App::predefined_size(DEFAULT_PREDEFINED_SIZE);
 +String studio::App::predefined_fps(DEFAULT_PREDEFINED_FPS);
 +float studio::App::preferred_fps=24.0;
  #ifdef USE_OPEN_FOR_URLS
  String studio::App::browser_command("open"); // MacOS only
  #else
@@@ -324,6 -322,34 +324,34 @@@ class GlobalUIInterface : public synfig
  {
  public:
  
+       virtual Response confirmation(const std::string &title,
+                       const std::string &primaryText,
+                       const std::string &secondaryText,
+                       const std::string &confirmPhrase,
+                       const std::string &cancelPhrase,
+                       Response defaultResponse)
+       {
+               Gtk::MessageDialog dialog(
+                       primaryText,            // Message
+                       false,                  // Markup
+                       Gtk::MESSAGE_WARNING,   // Type
+                       Gtk::BUTTONS_NONE,      // Buttons
+                       true                    // Modal
+               );
+               if (! title.empty())
+                       dialog.set_title(title);
+               if (! secondaryText.empty())
+                       dialog.set_secondary_text(secondaryText);
+               dialog.add_button(cancelPhrase, RESPONSE_CANCEL);
+               dialog.add_button(confirmPhrase, RESPONSE_OK);
+               dialog.set_default_response(defaultResponse);
+               dialog.show_all();
+               return (Response) dialog.run();
+       }
        virtual Response yes_no(const std::string &title, const std::string &message,Response dflt=RESPONSE_YES)
        {
                Gtk::Dialog dialog(
@@@ -544,16 -570,6 +572,16 @@@ public
                        value=strprintf("%s",App::predefined_size.c_str());
                        return true;
                }
 +              if(key=="preferred_fps")
 +              {
 +                      value=strprintf("%f",App::preferred_fps);
 +                      return true;
 +              }
 +              if(key=="predefined_fps")
 +              {
 +                      value=strprintf("%s",App::predefined_fps.c_str());
 +                      return true;
 +              }
  
                return synfigapp::Settings::get_value(key,value);
        }
                        App::predefined_size=value;
                        return true;
                }
 +              if(key=="preferred_fps")
 +              {
 +                      float i(atof(value.c_str()));
 +                      App::preferred_fps=i;
 +                      return true;
 +              }
 +              if(key=="predefined_fps")
 +              {
 +                      App::predefined_fps=value;
 +                      return true;
 +              }
 +
                return synfigapp::Settings::set_value(key,value);
        }
  
                ret.push_back("preferred_x_size");
                ret.push_back("preferred_y_size");
                ret.push_back("predefined_size");
 +              ret.push_back("preferred_fps");
 +              ret.push_back("predefined_fps");
                return ret;
        }
  };
@@@ -1316,12 -1318,13 +1344,13 @@@ App::App(int *argc, char ***argv)
                if(auto_recover->recovery_needed())
                {
                        splash_screen.hide();
-                       if (get_ui_interface()->yes_no(_("Auto Recovery"),
-                                                                                  _("Synfig Studio seems to have crashed\n"
-                                                                                        "before you could save all your files.\n"
-                                                                                        "Would you like to re-open those files\n"
-                                                                                        "and recover your unsaved changes?")) ==
-                               synfigapp::UIInterface::RESPONSE_YES)
+                       if (get_ui_interface()->confirmation("Crash Recovery",
+                                       _("Auto recovery file found"),
+                                       _("Synfig Studio seems to have crashed\n"
+                                         "before you could save all your files.\n"
+                                         "Recover unsaved changes?"),
+                                       _("Recover"), _("Ignore"))
+                               == synfigapp::UIInterface::RESPONSE_OK)
                        {
                                int number_recovered;
                                if(!auto_recover->recover(number_recovered))
@@@ -1765,8 -1768,6 +1794,8 @@@ App::reset_initial_window_configuration
        synfigapp::Main::settings().set_value("pref.preferred_x_size","480");
        synfigapp::Main::settings().set_value("pref.preferred_y_size","270");
        synfigapp::Main::settings().set_value("pref.predefined_size",DEFAULT_PREDEFINED_SIZE);
 +      synfigapp::Main::settings().set_value("pref.preferred_fps","24.0");
 +      synfigapp::Main::settings().set_value("pref.predefined_fps",DEFAULT_PREDEFINED_FPS);
        synfigapp::Main::settings().set_value("window.toolbox.pos","4 4");
  }
  
@@@ -2437,7 -2438,7 +2466,7 @@@ App::new_instance(
        canvas->set_name(file_name);
        file_name += ".sifz";
  
 -      canvas->rend_desc().set_frame_rate(24.0);
 +      canvas->rend_desc().set_frame_rate(preferred_fps);
        canvas->rend_desc().set_time_start(0.0);
        canvas->rend_desc().set_time_end(5.0);
        canvas->rend_desc().set_x_res(DPI2DPM(72.0f));