[longomatch] Update filter when plays are added/removed/edited



commit 6edbf278f3fc843736cf5015b689cb991965bfca
Author: Andoni Morales Alastruey <ylatuya gmail com>
Date:   Tue Apr 23 23:20:48 2013 +0200

    Update filter when plays are added/removed/edited

 LongoMatch.Core/Handlers/Handlers.cs            |    2 +-
 LongoMatch.Services/Services/Core.cs            |    6 +++---
 LongoMatch.Services/Services/EventsManager.cs   |   20 ++++++++++----------
 LongoMatch.Services/Services/ProjectsManager.cs |   11 ++++++++---
 4 files changed, 22 insertions(+), 17 deletions(-)
---
diff --git a/LongoMatch.Core/Handlers/Handlers.cs b/LongoMatch.Core/Handlers/Handlers.cs
index 0ed7bef..6c6b9bb 100644
--- a/LongoMatch.Core/Handlers/Handlers.cs
+++ b/LongoMatch.Core/Handlers/Handlers.cs
@@ -50,7 +50,7 @@ namespace LongoMatch.Handlers
        
        /* Project Events */
        public delegate void SaveProjectHandler(Project project, ProjectType projectType);
-       public delegate void OpenedProjectChangedHandler(Project project, ProjectType projectType);
+       public delegate void OpenedProjectChangedHandler(Project project, ProjectType projectType, 
PlaysFilter filter);
        public delegate void OpenProjectHandler();
        public delegate void CloseOpenendProjectHandler(bool save);
        public delegate void NewProjectHandler();
diff --git a/LongoMatch.Services/Services/Core.cs b/LongoMatch.Services/Services/Core.cs
index a115cb1..132a000 100644
--- a/LongoMatch.Services/Services/Core.cs
+++ b/LongoMatch.Services/Services/Core.cs
@@ -142,15 +142,15 @@ namespace LongoMatch.Services
                        }
                }
                
-               private static void OnOpenedProjectChanged (Project project, ProjectType projectType) {
+               private static void OnOpenedProjectChanged (Project project, ProjectType projectType,
+                                                           PlaysFilter filter) {
                        if (project != null) {
                                hkManager.Categories=project.Categories;
                        } else {
                                hkManager.Categories=null;
                        }
                        
-                       eManager.OpenedProject = project;
-                       eManager.OpenedProjectType = projectType;
+                       eManager.SetProject (project, projectType, filter);
                        guManager.OpenedProject = project;
                        plManager.OpenedProject = project;
                        dbManager.OpenedProject = project;
diff --git a/LongoMatch.Services/Services/EventsManager.cs b/LongoMatch.Services/Services/EventsManager.cs
index 7a8c145..0db99b8 100644
--- a/LongoMatch.Services/Services/EventsManager.cs
+++ b/LongoMatch.Services/Services/EventsManager.cs
@@ -42,6 +42,7 @@ namespace LongoMatch.Services
                Project openedProject;
                ProjectType projectType;
                Time startTime;
+               PlaysFilter filter;
                
                IGUIToolkit guiToolkit;
                IMainWindow mainWindow;
@@ -58,16 +59,12 @@ namespace LongoMatch.Services
                        ConnectSignals();
                }
 
-               public  Project OpenedProject {
-                       set {
-                               openedProject = value;
-                       }
-               }
-
-               public ProjectType OpenedProjectType {
-                       set {
-                               projectType = value;
-                       }
+               public void SetProject (Project project, ProjectType projectType,
+                                       PlaysFilter filter)
+               {
+                       this.filter = filter;
+                       this.openedProject = project;
+                       this.projectType = projectType;
                }
 
                private void ConnectSignals() {
@@ -149,6 +146,7 @@ namespace LongoMatch.Services
                        if (!Config.FastTagging)
                                LaunchPlayTagger(play, false);
                        mainWindow.AddPlay(play);
+                       filter.Update();
                        if (projectType == ProjectType.FileProject) {
                                player.Play();
                        }
@@ -232,6 +230,7 @@ namespace LongoMatch.Services
                        else if(tNode is Category) {
                                mainWindow.UpdateCategories(openedProject.Categories);
                        }
+                       filter.Update();
                }
 
                protected virtual void OnPlaysDeleted(List<Play> plays)
@@ -244,6 +243,7 @@ namespace LongoMatch.Services
                                player.CloseActualSegment();
                                Core.DB.UpdateProject(openedProject);
                        }
+                       filter.Update();
                }
 
                protected virtual void OnSegmentClosedEvent()
diff --git a/LongoMatch.Services/Services/ProjectsManager.cs b/LongoMatch.Services/Services/ProjectsManager.cs
index e9a98fb..e3f0ff8 100644
--- a/LongoMatch.Services/Services/ProjectsManager.cs
+++ b/LongoMatch.Services/Services/ProjectsManager.cs
@@ -71,6 +71,11 @@ namespace LongoMatch.Services
                        get;
                }
                
+               public PlaysFilter PlaysFilter {
+                       get;
+                       set;
+               }
+               
                public ICapturer Capturer {
                        set;
                        get;
@@ -83,7 +88,7 @@ namespace LongoMatch.Services
                
                private void EmitProjectChanged() {
                        if (OpenedProjectChanged != null)
-                               OpenedProjectChanged(OpenedProject, OpenedProjectType);
+                               OpenedProjectChanged(OpenedProject, OpenedProjectType, PlaysFilter);
                }
                
                private void SaveCaptureProject(Project project) {
@@ -221,8 +226,8 @@ namespace LongoMatch.Services
 
                        OpenedProject = project;
                        OpenedProjectType = projectType;
-                       PlaysFilter filter = new PlaysFilter(project);
-                       mainWindow.SetProject(project, projectType, props, filter);
+                       PlaysFilter = new PlaysFilter(project);
+                       mainWindow.SetProject(project, projectType, props, PlaysFilter);
                        EmitProjectChanged();
                        return true;
                }


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