[geary/wip/135-contact-popovers: 4/13] Implement new Show Conversations action
- From: Michael Gratton <mjog src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [geary/wip/135-contact-popovers: 4/13] Implement new Show Conversations action
- Date: Thu, 14 Mar 2019 22:18:08 +0000 (UTC)
commit b0dc77b174362e80915ab511b0b2e1441009ddb6
Author: Michael Gratton <mike vee net>
Date: Thu Mar 14 17:40:12 2019 +1100
Implement new Show Conversations action
Removed old signal-based approach, move GearyController impl to
MainWindow, and just call that directly from the handler.
src/client/application/geary-controller.vala | 13 +------------
src/client/components/main-window.vala | 9 +++++++++
src/client/conversation-viewer/conversation-message.vala | 14 +++++++++-----
3 files changed, 19 insertions(+), 17 deletions(-)
---
diff --git a/src/client/application/geary-controller.vala b/src/client/application/geary-controller.vala
index 87ab2047..8b4e848a 100644
--- a/src/client/application/geary-controller.vala
+++ b/src/client/application/geary-controller.vala
@@ -2332,7 +2332,7 @@ public class GearyController : Geary.BaseObject {
}
private void on_search_activated(SimpleAction action) {
- show_search_bar();
+ this.main_window.show_search_bar();
}
private void on_archive_conversation(SimpleAction action) {
@@ -2670,10 +2670,6 @@ public class GearyController : Geary.BaseObject {
msg_view.save_image.connect((url, alt_text, buf) => {
on_save_image_extended(view, url, alt_text, buf);
});
- msg_view.search_activated.connect((op, value) => {
- string search = op + ":" + value;
- show_search_bar(search);
- });
}
view.save_attachments.connect(on_save_attachments);
view.view_source.connect(on_view_source);
@@ -2799,13 +2795,6 @@ public class GearyController : Geary.BaseObject {
return ret.size >= 1 ? ret : null;
}
- private void show_search_bar(string? text = null) {
- main_window.search_bar.give_search_focus();
- if (text != null) {
- main_window.search_bar.set_search_text(text);
- }
- }
-
private void do_search(string search_text) {
Geary.SearchFolder? search_folder = null;
if (this.current_account != null) {
diff --git a/src/client/components/main-window.vala b/src/client/components/main-window.vala
index 1b6bfbfa..ec7e80ba 100644
--- a/src/client/components/main-window.vala
+++ b/src/client/components/main-window.vala
@@ -146,6 +146,15 @@ public class MainWindow : Gtk.ApplicationWindow, Geary.BaseInterface {
update_infobar_frame();
}
+ /** Displays and focuses the search bar for the window. */
+ public void show_search_bar(string? text = null) {
+ this.search_bar.give_search_focus();
+ if (text != null) {
+ this.search_bar.set_search_text(text);
+ }
+ }
+
+ /** Displays an infobar in the window. */
public void show_infobar(MainWindowInfoBar info_bar) {
this.info_bar_container.add(info_bar);
this.info_bar_frame.show();
diff --git a/src/client/conversation-viewer/conversation-message.vala
b/src/client/conversation-viewer/conversation-message.vala
index 95623008..ac6cadce 100644
--- a/src/client/conversation-viewer/conversation-message.vala
+++ b/src/client/conversation-viewer/conversation-message.vala
@@ -281,9 +281,6 @@ public class ConversationMessage : Gtk.Grid, Geary.BaseInterface {
/** Fired when the user saves an inline displayed image. */
public signal void save_image(string? uri, string? alt_text, Geary.Memory.Buffer buffer);
- /** Fired when the user activates a specific search shortcut. */
- public signal void search_activated(string operator, string value);
-
/**
* Constructs a new view from an email's headers and body.
@@ -364,9 +361,8 @@ public class ConversationMessage : Gtk.Grid, Geary.BaseInterface {
add_action(ACTION_CONTACT_SAVE, true, new VariantType("(ss)"))
// XXX
;
- // XXX
- ;
add_action(ACTION_CONTACT_SHOW_CONVERSATIONS, true, VariantType.STRING)
+ .activate.connect(on_contact_show_conversations);
add_action(ACTION_CONVERSATION_NEW, true, new VariantType("(ss)"))
// XXX
;
@@ -1132,6 +1128,14 @@ public class ConversationMessage : Gtk.Grid, Geary.BaseInterface {
remote_images_infobar.hide();
}
+ private void on_contact_show_conversations(Variant? param) {
+ string email = param as string;
+ MainWindow? main = this.get_toplevel() as MainWindow;
+ if (main != null && email != null) {
+ main.show_search_bar("from:%s".printf(email));
+ }
+ }
+
private void on_copy_link(Variant? param) {
Gtk.Clipboard clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD);
clipboard.set_text(param.get_string(), -1);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]