Display a placeholder when email body loading is taking a long time
This commit is contained in:
parent
f223564829
commit
c64eb72e69
2 changed files with 31 additions and 1 deletions
|
|
@ -551,7 +551,7 @@ public class ConversationEmail : Gtk.Box, Geary.BaseInterface {
|
||||||
);
|
);
|
||||||
|
|
||||||
this.body_loading_timeout = new Geary.TimeoutManager.milliseconds(
|
this.body_loading_timeout = new Geary.TimeoutManager.milliseconds(
|
||||||
BODY_LOAD_TIMEOUT_MSEC, this.primary_message.start_progress_pulse
|
BODY_LOAD_TIMEOUT_MSEC, this.on_body_loading_timeout
|
||||||
);
|
);
|
||||||
|
|
||||||
pack_start(this.primary_message, true, true, 0);
|
pack_start(this.primary_message, true, true, 0);
|
||||||
|
|
@ -1006,6 +1006,10 @@ public class ConversationEmail : Gtk.Box, Geary.BaseInterface {
|
||||||
op.run_dialog(window);
|
op.run_dialog(window);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void on_body_loading_timeout() {
|
||||||
|
this.primary_message.show_loading_pane();
|
||||||
|
}
|
||||||
|
|
||||||
private void on_flag_remote_images(ConversationMessage view) {
|
private void on_flag_remote_images(ConversationMessage view) {
|
||||||
// XXX check we aren't already auto loading the image
|
// XXX check we aren't already auto loading the image
|
||||||
mark_email(Geary.EmailFlags.LOAD_REMOTE_IMAGES, null);
|
mark_email(Geary.EmailFlags.LOAD_REMOTE_IMAGES, null);
|
||||||
|
|
|
||||||
|
|
@ -504,6 +504,32 @@ public class ConversationMessage : Gtk.Grid, Geary.BaseInterface {
|
||||||
body_revealer.set_reveal_child(false);
|
body_revealer.set_reveal_child(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Shows a panel when an email is being loaded. */
|
||||||
|
public void show_loading_pane() {
|
||||||
|
Components.PlaceholderPane pane = new Components.PlaceholderPane();
|
||||||
|
pane.icon_name = "content-loading-symbolic";
|
||||||
|
pane.title = "";
|
||||||
|
pane.subtitle = "";
|
||||||
|
|
||||||
|
// Don't want to break the announced freeze for 0.13, so just
|
||||||
|
// hope the icon gets the message across for now and replace
|
||||||
|
// them with the ones below for 0.14.
|
||||||
|
|
||||||
|
// Translators: Title label for placeholder when multiple
|
||||||
|
// an error occurs loading a message for display.
|
||||||
|
//pane.title = _("A problem occurred");
|
||||||
|
// Translators: Sub-title label for placeholder when multiple
|
||||||
|
// an error occurs loading a message for display.
|
||||||
|
//pane.subtitle = _(
|
||||||
|
// "This email cannot currently be displayed"
|
||||||
|
//);
|
||||||
|
this.body_placeholder = pane;
|
||||||
|
this.web_view.hide();
|
||||||
|
this.body_container.add(pane);
|
||||||
|
show_message_body(true);
|
||||||
|
start_progress_pulse();
|
||||||
|
}
|
||||||
|
|
||||||
/** Shows an error panel when email loading failed. */
|
/** Shows an error panel when email loading failed. */
|
||||||
public void show_load_error_pane() {
|
public void show_load_error_pane() {
|
||||||
Components.PlaceholderPane pane = new Components.PlaceholderPane();
|
Components.PlaceholderPane pane = new Components.PlaceholderPane();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue