diff --git a/src/client/geary-application.vala b/src/client/geary-application.vala index 11c2b499..34f45767 100644 --- a/src/client/geary-application.vala +++ b/src/client/geary-application.vala @@ -22,6 +22,7 @@ public class GearyApplication : YorbaApplication { public const string ACTION_ABOUT = "GearyAbout"; public const string ACTION_QUIT = "GearyQuit"; public const string ACTION_NEW_MESSAGE = "GearyNewMessage"; + public const string ACTION_DEBUG_PRINT = "GearyDebugPrint"; public const string PREFIX = _PREFIX; @@ -90,6 +91,7 @@ along with Geary; if not, write to the Free Software Foundation, Inc., // Start Geary. actions.add_actions(create_actions(), this); ui_manager.insert_action_group(actions, 0); + load_ui_file("accelerators.ui"); main_window = new MainWindow(); @@ -213,6 +215,10 @@ along with Geary; if not, write to the Free Software Foundation, Inc., new_message.label = _("_New Message"); entries += new_message; + Gtk.ActionEntry secret_debug = { ACTION_DEBUG_PRINT, null, null, "P", + null, on_debug_print }; + entries += secret_debug; + return entries; } @@ -280,6 +286,10 @@ along with Geary; if not, write to the Free Software Foundation, Inc., cw.destroy(); } + private void on_debug_print() { + main_window.debug_print_selected(); + } + public Gtk.Window get_main_window() { return main_window; } diff --git a/src/client/ui/main-window.vala b/src/client/ui/main-window.vala index ab10b9ee..6ea20f89 100644 --- a/src/client/ui/main-window.vala +++ b/src/client/ui/main-window.vala @@ -333,6 +333,24 @@ public class MainWindow : Gtk.Window { on_folders_added_removed(accumulator, null); } + public void debug_print_selected() { + if (message_viewer.messages.size == 0) { + debug("Nothing to print"); + return; + } + + debug("---------------------------"); + foreach (Geary.Email e in message_viewer.messages) { + debug("Message: %s", e.id.to_string()); + if (e.header != null) + debug("\n%s", e.header.buffer.to_utf8()); + else + debug("No message data."); + + debug("---------------------------"); + } + } + private void cancel_folder() { Cancellable old_cancellable = cancellable_folder; cancellable_folder = new Cancellable(); diff --git a/src/client/ui/message-viewer.vala b/src/client/ui/message-viewer.vala index 2e0c3e76..91d2d261 100644 --- a/src/client/ui/message-viewer.vala +++ b/src/client/ui/message-viewer.vala @@ -18,7 +18,8 @@ public class MessageViewer : Gtk.Viewport { private const int MESSAGE_BOX_MARGIN = 10; // List of emails corresponding with VBox. - private Gee.LinkedList messages = new Gee.LinkedList(); + public Gee.LinkedList messages { get; private set; default = + new Gee.LinkedList(); } // GUI containing message widgets. private Gtk.VBox message_box = new Gtk.VBox(false, 0); @@ -66,6 +67,7 @@ public class MessageViewer : Gtk.Viewport { // Adds a message to the view. public void add_message(Geary.Email email) { + messages.add(email); Gtk.Builder builder = GearyApplication.instance.create_builder("message.glade"); string username; diff --git a/ui/accelerators.ui b/ui/accelerators.ui new file mode 100644 index 00000000..85bb7d45 --- /dev/null +++ b/ui/accelerators.ui @@ -0,0 +1,4 @@ + + + +