**
** \legal
** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
-** Copyright (c) 2007 Chris Moore
+** Copyright (c) 2007, 2008 Chris Moore
**
** This package is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public License as
bool studio::App::use_colorspace_gamma=true;
bool studio::App::single_threaded=false;
-bool studio::App::restrict_radius_ducks=true;
+bool studio::App::restrict_radius_ducks=false;
+String studio::App::browser_command("firefox");
static int max_recent_files_=25;
int studio::App::get_max_recent_files() { return max_recent_files_; }
value=strprintf("%i",(int)App::restrict_radius_ducks);
return true;
}
+ if(key=="browser_command")
+ {
+ value=App::browser_command;
+ return true;
+ }
return synfigapp::Settings::get_value(key,value);
}
App::restrict_radius_ducks=i;
return true;
}
+ if(key=="browser_command")
+ {
+ App::browser_command=value;
+ return true;
+ }
return synfigapp::Settings::set_value(key,value);
}
ret.push_back("single_threaded");
ret.push_back("auto_recover_backup_interval");
ret.push_back("restrict_radius_ducks");
+ ret.push_back("browser_command");
return ret;
}
};
synfigapp::Main::settings().set_value("pref.distance_system","pt");
synfigapp::Main::settings().set_value("pref.use_colorspace_gamma","1");
synfigapp::Main::settings().set_value("pref.single_threaded","0");
- synfigapp::Main::settings().set_value("pref.restrict_radius_ducks","1");
+ synfigapp::Main::settings().set_value("pref.restrict_radius_ducks","0");
synfigapp::Main::settings().set_value("window.toolbox.pos","4 4");
}
dialog.run();
}
+static bool
+try_open_url(const std::string &url)
+{
+#ifdef WIN32
+ return ShellExecute(GetDesktopWindow(), "open", url.c_str(), NULL, NULL, SW_SHOW);
+#else // WIN32
+ gchar* argv[3] = {strdup(App::browser_command.c_str()), strdup(url.c_str()), NULL};
+
+ GError* gerror = NULL;
+ gboolean retval;
+ retval = g_spawn_async(NULL, argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, &gerror);
+ free(argv[0]);
+ free(argv[1]);
+
+ if (!retval)
+ {
+ error(_("Could not execute specified web browser: %s"), gerror->message);
+ g_error_free(gerror);
+ return false;
+ }
+
+ return true;
+#endif // WIN32
+}
+
+void
+App::dialog_help()
+{
+ if (!try_open_url("http://synfig.org/Documentation"))
+ {
+ 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_title(_("Help"));
+ dialog.run();
+ }
+}
+
+void
+App::open_url(const std::string &url)
+{
+ try_open_url(url);
+}
+
bool
App::dialog_entry(const std::string &title, const std::string &message,std::string &text)
{
}
void
-App::dialog_open()
+App::dialog_open(string filename)
{
- string filename="*.sif";
+ if (filename.empty())
+ filename="*.sif";
while(dialog_open_file("Open", filename, ANIMATION_DIR_PREFERENCE))
{