summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
181e301)
Corrected abuse of glib/gtk event loop revealed by fatal error report for initial URL.
-Investigate and fix the crash that occurs after we trigger exit from null_prompt_service.
Priority 2
Use ffmpeg to convert unsuitable video files (how do we check this?).
Priority 2
Use ffmpeg to convert unsuitable video files (how do we check this?).
// Copyright 2006 Ben Hutchings <ben@decadent.org.uk>.
// See the file "COPYING" for licence details.
// Copyright 2006 Ben Hutchings <ben@decadent.org.uk>.
// See the file "COPYING" for licence details.
#include <string>
#include <langinfo.h>
#include <string>
#include <langinfo.h>
if (!iid.Equals(prompt_service_iid))
return NS_ERROR_NO_INTERFACE;
if (!iid.Equals(prompt_service_iid))
return NS_ERROR_NO_INTERFACE;
+ if (null_prompt_service * service =
+ new (std::nothrow) null_prompt_service)
- *result = new null_prompt_service;
+ service->AddRef();
+ *result = service;
- catch (std::bad_alloc &)
{
return NS_ERROR_OUT_OF_MEMORY;
}
{
return NS_ERROR_OUT_OF_MEMORY;
}
dvd_contents::pgc_ref add_menu(const std::string & uri);
dvd_contents::pgc_ref add_title(const std::string & uri);
void load_next_page();
dvd_contents::pgc_ref add_menu(const std::string & uri);
dvd_contents::pgc_ref add_title(const std::string & uri);
void load_next_page();
void on_net_state_change(const char * uri, gint flags, guint status);
bool browser_is_busy() const
{
void on_net_state_change(const char * uri, gint flags, guint status);
bool browser_is_busy() const
{
add(browser_widget_);
browser_widget_.show();
add(browser_widget_);
browser_widget_.show();
+ Glib::signal_idle().connect(
+ SigC::slot(*this, &webdvd_window::on_idle));
browser_widget_.signal_net_state().connect(
SigC::slot(*this, &webdvd_window::on_net_state_change));
add_menu(main_page_uri);
browser_widget_.signal_net_state().connect(
SigC::slot(*this, &webdvd_window::on_net_state_change));
add_menu(main_page_uri);
}
bool webdvd_window::is_finished() const
}
bool webdvd_window::is_finished() const
browser_widget_.load_uri(uri);
}
browser_widget_.load_uri(uri);
}
+ bool webdvd_window::on_idle()
+ {
+ load_next_page();
+ return false; // don't call again thankyou
+ }
+
void webdvd_window::on_net_state_change(const char * uri,
gint flags, guint status)
{
void webdvd_window::on_net_state_change(const char * uri,
gint flags, guint status)
{
// Run the browser/converter
webdvd_window window(frame_params, menu_url, output_dir, encoder);
// Run the browser/converter
webdvd_window window(frame_params, menu_url, output_dir, encoder);
- Gtk::Main::run(window);
+ window.show();
+ window.signal_hide().connect(SigC::slot(&Gtk::Main::quit));
+ Gtk::Main::run();
return ((preview_mode || window.is_finished())
? EXIT_SUCCESS
return ((preview_mode || window.is_finished())
? EXIT_SUCCESS