[blam/gtk3] Wire up the refresh menu button



commit 872b45528a8a62370579c0831078914229e06804
Author: Carlos Martín Nieto <cmn dwim me>
Date:   Mon Oct 14 11:59:37 2013 +0200

    Wire up the refresh menu button

 src/Blam.cs        |    9 +++++++++
 src/ChannelList.cs |   15 +++++++++++----
 src/blam.ui        |    4 ++--
 3 files changed, 22 insertions(+), 6 deletions(-)
---
diff --git a/src/Blam.cs b/src/Blam.cs
index b29ed83..b7664bd 100644
--- a/src/Blam.cs
+++ b/src/Blam.cs
@@ -122,6 +122,15 @@ namespace Blam
                                }
                        });
 
+                       item = bld.GetObject<MenuItem>("menu-refresh");
+                       Observable.Merge(
+                               item.ObserveActivated().Select(_ => Unit.Default),
+                               FeedList.ObserveRefresh)
+                       .Subscribe(async _ => {
+                               var chan = FeedList.GetSelected();
+                               chan.RefreshAsync();
+                       });
+
                        item = bld.GetObject<MenuItem>("menu-preferences");
                        Observable.Merge(
                                item.ObserveActivated().Select(_ => Unit.Default),
diff --git a/src/ChannelList.cs b/src/ChannelList.cs
index 53fa17d..12f7eab 100644
--- a/src/ChannelList.cs
+++ b/src/ChannelList.cs
@@ -16,6 +16,7 @@ using System.Runtime.InteropServices;
 using System.Collections.ObjectModel;
 using System.Reactive;
 using System.Reactive.Linq;
+using System.Reactive.Subjects;
 using System.ComponentModel;
 using System.Threading;
 using Mono.Unix;
@@ -26,11 +27,19 @@ namespace Blam
        using IChannel = Imendio.Blam.IChannel;
        using ChannelGroup = Imendio.Blam.ChannelGroup;
        using ChannelMenu = Imendio.Blam.ChannelMenu;
+       using Unit = System.Reactive.Unit;
 
        public class FeedList : Gtk.TreeView
        {
                public Gtk.Window MainWindow;
 
+               Subject<Unit> refreshSubject;
+               public IObservable<Unit> ObserveRefresh {
+                       get {
+                               return refreshSubject;
+                       }
+               }
+
                TreeViewColumn name_col;
                ChannelMenu Popup;
 
@@ -161,11 +170,9 @@ namespace Blam
                                }
                        }
 
+                       refreshSubject = new Subject<Unit>();
                        Popup = new ChannelMenu();
-                       Popup.RefreshSelected += async () => {
-                               var chan = GetSelected();
-                               await chan.RefreshAsync();
-                       };
+                       Popup.RefreshSelected += () => refreshSubject.OnNext(Unit.Default);
                        Popup.MarkAsReadSelected += () => GetSelected().MarkAsRead();
                        Popup.EditSelected += editCurrent;
 
diff --git a/src/blam.ui b/src/blam.ui
index e840f54..f824427 100644
--- a/src/blam.ui
+++ b/src/blam.ui
@@ -130,7 +130,7 @@
                       </object>
                     </child>
                     <child>
-                      <object class="GtkImageMenuItem" id="refreshChannelMenuItem">
+                      <object class="GtkImageMenuItem" id="menu-refresh">
                         <property name="label">gtk-refresh</property>
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
@@ -148,7 +148,7 @@
                       </object>
                     </child>
                     <child>
-                      <object class="GtkImageMenuItem" id="editChannelMenuItem">
+                      <object class="GtkImageMenuItem" id="menu-edit-channel">
                         <property name="label">gtk-edit</property>
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]