[longomatch] Add support for subcategories filters
- From: Andoni Morales Alastruey <amorales src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [longomatch] Add support for subcategories filters
- Date: Sun, 30 Sep 2012 15:45:56 +0000 (UTC)
commit 66119d4e06cb6155736a9dc1b437ae5887f32472
Author: Andoni Morales Alastruey <ylatuya gmail com>
Date: Sat Sep 29 15:52:16 2012 +0200
Add support for subcategories filters
LongoMatch.Core/Common/PlaysFilter.cs | 100 ++++++++---
.../Gui/Component/PlaysSelectionWidget.cs | 22 +++
.../Gui/TreeView/CategoriesFilterTreeView.cs | 54 +++---
LongoMatch.GUI/Gui/TreeView/FilterBaseView.cs | 24 +++-
.../Gui/TreeView/PlayersFilterTreeView.cs | 13 +--
...ongoMatch.Gui.Component.PlaysSelectionWidget.cs | 83 ++++++++-
LongoMatch.GUI/gtk-gui/gui.stetic | 194 +++++++++++++++-----
LongoMatch.GUI/gtk-gui/objects.xml | 30 ++--
libcesarplayer/bacon-video-widget-gst-0.10.c | 3 -
9 files changed, 387 insertions(+), 136 deletions(-)
---
diff --git a/LongoMatch.Core/Common/PlaysFilter.cs b/LongoMatch.Core/Common/PlaysFilter.cs
index 1559b7a..777e7a4 100644
--- a/LongoMatch.Core/Common/PlaysFilter.cs
+++ b/LongoMatch.Core/Common/PlaysFilter.cs
@@ -19,8 +19,10 @@ using System;
using System.Collections.Generic;
using System.Linq;
+using LongoMatch.Interfaces;
using LongoMatch.Handlers;
using LongoMatch.Store;
+using LongoMatch.Store.Templates;
namespace LongoMatch.Common
{
@@ -29,29 +31,57 @@ namespace LongoMatch.Common
public event FilterUpdatedHandler FilterUpdated;
- List<Category> categoriesFilter;
+ bool playersFiltered, categoriesFiltered;
+ Dictionary<Category, List<SubCategoryTags>> categoriesFilter;
List<Player> playersFilter;
Project project;
public PlaysFilter (Project project)
{
this.project = project;
- categoriesFilter = new List<Category>();
+ categoriesFilter = new Dictionary<Category, List<SubCategoryTags>>();
playersFilter = new List<Player>();
ClearAll();
}
+ public bool PlayersFilterEnabled {
+ get {
+ return playersFiltered;
+ }
+ set {
+ playersFiltered = value;
+ if (playersFiltered)
+ Update();
+ }
+ }
+
+ public bool CategoriesFilterEnabled {
+ get {
+ return categoriesFiltered;
+ }
+ set {
+ categoriesFiltered = value;
+ if (categoriesFiltered)
+ Update();
+ }
+ }
+
public void Update () {
EmitFilterUpdated();
}
- public void ClearPlayersFilter () {
+ public void ClearCategoriesFilter () {
categoriesFilter.Clear();
- foreach (var cat in project.Categories)
- categoriesFilter.Add(cat);
+ foreach (var cat in project.Categories) {
+ List<SubCategoryTags> list = new List<SubCategoryTags>();
+ foreach (var subcat in cat.SubCategories) {
+ list.Add(new SubCategoryTags{SubCategory = subcat});
+ }
+ categoriesFilter.Add(cat, list);
+ }
}
- public void ClearCategoriesFilter () {
+ public void ClearPlayersFilter () {
playersFilter.Clear();
foreach (var player in project.LocalTeamTemplate)
playersFilter.Add(player);
@@ -73,18 +103,18 @@ namespace LongoMatch.Common
playersFilter.Add(player);
}
- public void FilterCategory (Category category) {
- categoriesFilter.Remove(category);
- }
-
- public void UnFilterCategory(Category category) {
- if (!categoriesFilter.Contains(category))
- categoriesFilter.Add(category);
+ public void FilterSubCategory (Category cat, ISubCategory subcat, string option, bool filtered) {
+ SubCategoryTags tsub = categoriesFilter[cat].Find(s => s.SubCategory == subcat);
+ if (filtered) {
+ tsub.Add(option);
+ } else {
+ tsub.Remove(option);
+ }
}
public List<Category> VisibleCategories {
get {
- return categoriesFilter;
+ return categoriesFilter.Keys.ToList();
}
}
@@ -95,27 +125,38 @@ namespace LongoMatch.Common
}
public bool IsVisible(object o) {
- if (o is Player) {
+ if (o is Player && PlayersFilterEnabled) {
return VisiblePlayers.Contains(o as Player);
- } else if (o is Category) {
- return VisibleCategories.Contains(o as Category);
} else if (o is Play) {
- bool cat_match, player_match;
+ bool cat_match=true, player_match=true;
Play play = o as Play;
- cat_match = VisibleCategories.Contains(play.Category);
- if (!cat_match)
- return false;
+ if (CategoriesFilterEnabled) {
+ cat_match = false;
+ foreach (var subcat in categoriesFilter[play.Category]) {
+ foreach (var option in subcat) {
+ StringTag tag = new StringTag{SubCategory=subcat.SubCategory, Value=option};
+ Console.WriteLine("Trying to find match for tag " + subcat.SubCategory.Name + " " + option);
+ if (play.Tags.Contains(tag)) {
+ foreach (StringTag t in play.Tags.Tags) {
+ Console.WriteLine(String.Format("TAG {0} {1} equals? {2}", t.SubCategory.Name, t.Value, t == tag));
+ }
+ Console.WriteLine("Found match for tag " + subcat.SubCategory.Name + " " + option);
+ cat_match = true;
+ break;
+ }
+ }
+ if (cat_match)
+ break;
+ }
+ }
- if (play.Players.Tags.Count == 0)
- player_match = true;
- else
+ if (PlayersFilterEnabled)
player_match = VisiblePlayers.Intersect(play.Players.GetTagsValues()).Count() != 0;
return player_match && cat_match;
- } else {
- return false;
}
+ return true;
}
void EmitFilterUpdated () {
@@ -123,5 +164,12 @@ namespace LongoMatch.Common
FilterUpdated ();
}
}
+
+ class SubCategoryTags: List<string> {
+ public ISubCategory SubCategory {
+ get;
+ set;
+ }
+ }
}
diff --git a/LongoMatch.GUI/Gui/Component/PlaysSelectionWidget.cs b/LongoMatch.GUI/Gui/Component/PlaysSelectionWidget.cs
index 168f013..b501d4f 100644
--- a/LongoMatch.GUI/Gui/Component/PlaysSelectionWidget.cs
+++ b/LongoMatch.GUI/Gui/Component/PlaysSelectionWidget.cs
@@ -39,6 +39,7 @@ namespace LongoMatch.Gui.Component
public event TagPlayHandler TagPlay;
Project project;
+ PlaysFilter filter;
PlayersFilterTreeView playersfilter;
CategoriesFilterTreeView categoriesfilter;
@@ -55,6 +56,7 @@ namespace LongoMatch.Gui.Component
public void SetProject(Project project, bool isLive, PlaysFilter filter) {
this.project = project;
+ this.filter = filter;
playsList.ProjectIsLive = isLive;
localPlayersList.ProjectIsLive = isLive;
visitorPlayersList.ProjectIsLive = isLive;
@@ -181,6 +183,26 @@ namespace LongoMatch.Gui.Component
TagPlay (play);
UpdateTeamsModels();
}
+
+ protected void OnCategoriesFiltersbuttonClicked (object sender, System.EventArgs e)
+ {
+ if (catfiltersbutton.Active) {
+ catfiltersbutton.Label = Catalog.GetString("Disable categories filters");
+ } else {
+ catfiltersbutton.Label = Catalog.GetString("Enable categories filters");
+ }
+ filter.CategoriesFilterEnabled = catfiltersbutton.Active;
+ }
+
+ protected void OnPlayersFiltersbuttonClicked (object sender, System.EventArgs e)
+ {
+ if (playersfiltersbutton.Active) {
+ playersfiltersbutton.Label = Catalog.GetString("Disable players filters");
+ } else {
+ playersfiltersbutton.Label = Catalog.GetString("Enable players filters");
+ }
+ filter.PlayersFilterEnabled = playersfiltersbutton.Active;
+ }
}
}
diff --git a/LongoMatch.GUI/Gui/TreeView/CategoriesFilterTreeView.cs b/LongoMatch.GUI/Gui/TreeView/CategoriesFilterTreeView.cs
index 47ac63a..25f602a 100644
--- a/LongoMatch.GUI/Gui/TreeView/CategoriesFilterTreeView.cs
+++ b/LongoMatch.GUI/Gui/TreeView/CategoriesFilterTreeView.cs
@@ -51,47 +51,42 @@ namespace LongoMatch.Gui.Component
TreeIter catIter;
catIter = store.AppendValues(cat, filter.VisibleCategories.Contains(cat));
- /*
foreach (var subcat in cat.SubCategories) {
TreeIter subcatIter;
if (subcat is TagSubCategory) {
subcatIter = store.AppendValues(catIter, subcat, true);
- Console.WriteLine (subcat.Name);
foreach (string desc in subcat.ElementsDesc()) {
- store.AppendValues(subcatIter, new StringObject{Value=desc}, true);
+ store.AppendValues(subcatIter, new StringObject{Value=desc, SubCategory=subcat, Category=cat}, true);
}
}
}
- */
-
}
Model = store;
}
-
- protected override void HandleFilterCellToggled (object o, ToggledArgs args)
- {
- Gtk.TreeIter iter;
+
+ protected override void UpdateSelection(TreeIter iter, bool active) {
+ TreeIter child;
- if (store.GetIterFromString(out iter, args.Path))
- {
- object obj = store.GetValue(iter, 0);
- Category cat = obj as Category;
- if (cat == null)
- return;
-
- bool active = !((bool) store.GetValue(iter, 1));
+ object o = store.GetValue(iter, 0);
+
+ if (o is StringObject) {
+ StringObject so = o as StringObject;
- if (active) {
- filter.UnFilterCategory(cat);
- } else {
- filter.FilterCategory(cat);
- }
+ filter.FilterSubCategory(so.Category, so.SubCategory, so.Value, active);
+ } else {
+ /* don't do anything here and let the children do the filtering */
+ }
+ store.SetValue(iter, 1, active);
- store.SetValue(iter, 1, active);
- filter.Update();
+ /* Check/Uncheck all children */
+ store.IterChildren(out child, iter);
+ while (store.IterIsValid(child)) {
+ UpdateSelection(child, active);
+ store.IterNext(ref child);
}
+ filter.Update();
}
-
+
protected override void RenderColumn (TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter)
{
object obj = store.GetValue(iter, 0);
@@ -113,12 +108,21 @@ namespace LongoMatch.Gui.Component
}
protected override void Select(bool select_all) {
+ TreeIter iter;
+
+ store.GetIterFirst(out iter);
+ while (store.IterIsValid(iter)){
+ UpdateSelection(iter, select_all);
+ store.IterNext(ref iter);
+ }
}
}
class StringObject
{
public string Value {get;set;}
+ public ISubCategory SubCategory {get;set;}
+ public Category Category {get;set;}
}
}
diff --git a/LongoMatch.GUI/Gui/TreeView/FilterBaseView.cs b/LongoMatch.GUI/Gui/TreeView/FilterBaseView.cs
index 4e46b22..8937ba5 100644
--- a/LongoMatch.GUI/Gui/TreeView/FilterBaseView.cs
+++ b/LongoMatch.GUI/Gui/TreeView/FilterBaseView.cs
@@ -47,6 +47,16 @@ namespace LongoMatch.Gui.Component
FillTree();
}
+ public new TreeModel Model {
+ set{
+ base.Model = value;
+ store = value as TreeStore;
+ }
+ get {
+ return base.Model;
+ }
+ }
+
private void PrepareTree () {
TreeViewColumn nameColumn = new TreeViewColumn ();
CellRendererText nameCell = new CellRendererText ();
@@ -101,9 +111,21 @@ namespace LongoMatch.Gui.Component
playersMenu.Popup();
return base.OnButtonPressEvent (evnt);
}
+
+ protected void HandleFilterCellToggled (object o, ToggledArgs args)
+ {
+ Gtk.TreeIter iter;
+
+ if (store.GetIterFromString(out iter, args.Path))
+ {
+ bool active = !((bool) store.GetValue(iter, 1));
+ UpdateSelection(iter, active);
+ }
+ }
+
protected abstract void FillTree ();
- protected abstract void HandleFilterCellToggled (object o, ToggledArgs args);
+ protected abstract void UpdateSelection (TreeIter iter, bool active);
protected abstract void RenderColumn (TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter);
protected abstract void Select(bool select_all);
}
diff --git a/LongoMatch.GUI/Gui/TreeView/PlayersFilterTreeView.cs b/LongoMatch.GUI/Gui/TreeView/PlayersFilterTreeView.cs
index e707e8f..9694852 100644
--- a/LongoMatch.GUI/Gui/TreeView/PlayersFilterTreeView.cs
+++ b/LongoMatch.GUI/Gui/TreeView/PlayersFilterTreeView.cs
@@ -67,19 +67,8 @@ namespace LongoMatch.Gui.Component
Model = store;
}
- protected override void HandleFilterCellToggled (object o, ToggledArgs args)
- {
- Gtk.TreeIter iter;
- TreeStore store = Model as TreeStore;
-
- if (store.GetIterFromString(out iter, args.Path))
- {
- bool active = !((bool) store.GetValue(iter, 1));
- UpdateSelection(iter, active);
- }
- }
- void UpdateSelection(TreeIter iter, bool active) {
+ protected override void UpdateSelection(TreeIter iter, bool active) {
TreeStore store = Model as TreeStore;
Player player = (Player) store.GetValue(iter, 0);
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.PlaysSelectionWidget.cs b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.PlaysSelectionWidget.cs
index 7192915..68a76f7 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.PlaysSelectionWidget.cs
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.PlaysSelectionWidget.cs
@@ -14,7 +14,10 @@ namespace LongoMatch.Gui.Component
private global::LongoMatch.Gui.Component.PlayersListTreeWidget visitorPlayersList;
private global::Gtk.Label visitorPlaysList;
private global::Gtk.Label label1;
+ private global::Gtk.VBox vbox2;
private global::Gtk.Notebook filtersnotebook;
+ private global::Gtk.ToggleButton catfiltersbutton;
+ private global::Gtk.ToggleButton playersfiltersbutton;
private global::Gtk.Label label2;
protected virtual void Build ()
@@ -37,7 +40,7 @@ namespace LongoMatch.Gui.Component
this.notebook1 = new global::Gtk.Notebook ();
this.notebook1.CanFocus = true;
this.notebook1.Name = "notebook1";
- this.notebook1.CurrentPage = 1;
+ this.notebook1.CurrentPage = 2;
this.notebook1.TabPos = ((global::Gtk.PositionType)(3));
// Container child notebook1.Gtk.Notebook+NotebookChild
this.playsList = new global::LongoMatch.Gui.Component.PlaysListTreeWidget ();
@@ -78,34 +81,96 @@ namespace LongoMatch.Gui.Component
// Notebook tab
this.label1 = new global::Gtk.Label ();
this.label1.Name = "label1";
- this.label1.LabelProp = global::Mono.Unix.Catalog.GetString ("Plays Selection");
+ this.label1.LabelProp = global::Mono.Unix.Catalog.GetString (" Plays Selection ");
+ this.label1.Justify = ((global::Gtk.Justification)(2));
this.label1.Angle = 90;
this.notebook2.SetTabLabel (this.notebook1, this.label1);
this.label1.ShowAll ();
// Container child notebook2.Gtk.Notebook+NotebookChild
+ this.vbox2 = new global::Gtk.VBox ();
+ this.vbox2.Name = "vbox2";
+ this.vbox2.Spacing = 6;
+ // Container child vbox2.Gtk.Box+BoxChild
this.filtersnotebook = new global::Gtk.Notebook ();
this.filtersnotebook.CanFocus = true;
this.filtersnotebook.Name = "filtersnotebook";
this.filtersnotebook.CurrentPage = 0;
this.filtersnotebook.TabPos = ((global::Gtk.PositionType)(3));
- this.notebook2.Add (this.filtersnotebook);
- global::Gtk.Notebook.NotebookChild w5 = ((global::Gtk.Notebook.NotebookChild)(this.notebook2 [this.filtersnotebook]));
- w5.Position = 1;
+ this.vbox2.Add (this.filtersnotebook);
+ global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.filtersnotebook]));
+ w5.Position = 0;
+ // Container child vbox2.Gtk.Box+BoxChild
+ this.catfiltersbutton = new global::Gtk.ToggleButton ();
+ this.catfiltersbutton.CanFocus = true;
+ this.catfiltersbutton.Name = "catfiltersbutton";
+ this.catfiltersbutton.UseUnderline = true;
+ // Container child catfiltersbutton.Gtk.Container+ContainerChild
+ global::Gtk.Alignment w6 = new global::Gtk.Alignment (0.5F, 0.5F, 0F, 0F);
+ // Container child GtkAlignment.Gtk.Container+ContainerChild
+ global::Gtk.HBox w7 = new global::Gtk.HBox ();
+ w7.Spacing = 2;
+ // Container child GtkHBox.Gtk.Container+ContainerChild
+ global::Gtk.Image w8 = new global::Gtk.Image ();
+ w8.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-find", global::Gtk.IconSize.Menu);
+ w7.Add (w8);
+ // Container child GtkHBox.Gtk.Container+ContainerChild
+ global::Gtk.Label w10 = new global::Gtk.Label ();
+ w10.LabelProp = global::Mono.Unix.Catalog.GetString ("Activate categories filters");
+ w10.UseUnderline = true;
+ w7.Add (w10);
+ w6.Add (w7);
+ this.catfiltersbutton.Add (w6);
+ this.vbox2.Add (this.catfiltersbutton);
+ global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.catfiltersbutton]));
+ w14.Position = 1;
+ w14.Expand = false;
+ w14.Fill = false;
+ // Container child vbox2.Gtk.Box+BoxChild
+ this.playersfiltersbutton = new global::Gtk.ToggleButton ();
+ this.playersfiltersbutton.CanFocus = true;
+ this.playersfiltersbutton.Name = "playersfiltersbutton";
+ this.playersfiltersbutton.UseUnderline = true;
+ // Container child playersfiltersbutton.Gtk.Container+ContainerChild
+ global::Gtk.Alignment w15 = new global::Gtk.Alignment (0.5F, 0.5F, 0F, 0F);
+ // Container child GtkAlignment.Gtk.Container+ContainerChild
+ global::Gtk.HBox w16 = new global::Gtk.HBox ();
+ w16.Spacing = 2;
+ // Container child GtkHBox.Gtk.Container+ContainerChild
+ global::Gtk.Image w17 = new global::Gtk.Image ();
+ w17.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-find", global::Gtk.IconSize.Menu);
+ w16.Add (w17);
+ // Container child GtkHBox.Gtk.Container+ContainerChild
+ global::Gtk.Label w19 = new global::Gtk.Label ();
+ w19.LabelProp = global::Mono.Unix.Catalog.GetString ("Activate players filters");
+ w19.UseUnderline = true;
+ w16.Add (w19);
+ w15.Add (w16);
+ this.playersfiltersbutton.Add (w15);
+ this.vbox2.Add (this.playersfiltersbutton);
+ global::Gtk.Box.BoxChild w23 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.playersfiltersbutton]));
+ w23.Position = 2;
+ w23.Expand = false;
+ w23.Fill = false;
+ this.notebook2.Add (this.vbox2);
+ global::Gtk.Notebook.NotebookChild w24 = ((global::Gtk.Notebook.NotebookChild)(this.notebook2 [this.vbox2]));
+ w24.Position = 1;
// Notebook tab
this.label2 = new global::Gtk.Label ();
this.label2.Name = "label2";
- this.label2.LabelProp = global::Mono.Unix.Catalog.GetString ("Filters");
+ this.label2.LabelProp = global::Mono.Unix.Catalog.GetString (" Filters ");
this.label2.Angle = 90;
- this.notebook2.SetTabLabel (this.filtersnotebook, this.label2);
+ this.notebook2.SetTabLabel (this.vbox2, this.label2);
this.label2.ShowAll ();
this.hbox1.Add (this.notebook2);
- global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.hbox1 [this.notebook2]));
- w6.Position = 0;
+ global::Gtk.Box.BoxChild w25 = ((global::Gtk.Box.BoxChild)(this.hbox1 [this.notebook2]));
+ w25.Position = 0;
this.Add (this.hbox1);
if ((this.Child != null)) {
this.Child.ShowAll ();
}
this.Hide ();
+ this.catfiltersbutton.Clicked += new global::System.EventHandler (this.OnCategoriesFiltersbuttonClicked);
+ this.playersfiltersbutton.Clicked += new global::System.EventHandler (this.OnPlayersFiltersbuttonClicked);
}
}
}
diff --git a/LongoMatch.GUI/gtk-gui/gui.stetic b/LongoMatch.GUI/gtk-gui/gui.stetic
index 1fdba5c..d095a1b 100644
--- a/LongoMatch.GUI/gtk-gui/gui.stetic
+++ b/LongoMatch.GUI/gtk-gui/gui.stetic
@@ -6674,58 +6674,158 @@ Defining <b> Game Units </b> will help you during the analysis to in
<property name="MemberName" />
<property name="Visible">False</property>
<child>
- <widget class="Gtk.Notebook" id="notebook1">
+ <widget class="Gtk.HBox" id="hbox1">
<property name="MemberName" />
- <property name="CanFocus">True</property>
- <property name="CurrentPage">2</property>
- <property name="TabPos">Bottom</property>
- <child>
- <widget class="LongoMatch.Gui.Component.PlaysListTreeWidget" id="playsList">
- <property name="MemberName" />
- <property name="Events">ButtonPressMask</property>
- </widget>
- </child>
- <child>
- <widget class="Gtk.Label" id="playsList1">
- <property name="MemberName" />
- <property name="LabelProp" translatable="yes">Plays</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
- <child>
- <widget class="LongoMatch.Gui.Component.PlayersListTreeWidget" id="localPlayersList">
- <property name="MemberName" />
- <property name="Events">ButtonPressMask</property>
- </widget>
- <packing>
- <property name="Position">1</property>
- </packing>
- </child>
- <child>
- <widget class="Gtk.Label" id="localPlaysList">
- <property name="MemberName" />
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
- <child>
- <widget class="LongoMatch.Gui.Component.PlayersListTreeWidget" id="visitorPlayersList">
- <property name="MemberName" />
- <property name="Events">ButtonPressMask</property>
- </widget>
- <packing>
- <property name="Position">2</property>
- </packing>
- </child>
+ <property name="Spacing">6</property>
<child>
- <widget class="Gtk.Label" id="visitorPlaysList">
+ <widget class="Gtk.Notebook" id="notebook2">
<property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="CurrentPage">1</property>
+ <property name="TabPos">Left</property>
+ <child>
+ <widget class="Gtk.Notebook" id="notebook1">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="CurrentPage">2</property>
+ <property name="TabPos">Bottom</property>
+ <child>
+ <widget class="LongoMatch.Gui.Component.PlaysListTreeWidget" id="playsList">
+ <property name="MemberName" />
+ <property name="Events">ButtonPressMask</property>
+ </widget>
+ </child>
+ <child>
+ <widget class="Gtk.Label" id="playsList1">
+ <property name="MemberName" />
+ <property name="LabelProp" translatable="yes">Plays</property>
+ </widget>
+ <packing>
+ <property name="type">tab</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="LongoMatch.Gui.Component.PlayersListTreeWidget" id="localPlayersList">
+ <property name="MemberName" />
+ <property name="Events">ButtonPressMask</property>
+ </widget>
+ <packing>
+ <property name="Position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.Label" id="localPlaysList">
+ <property name="MemberName" />
+ </widget>
+ <packing>
+ <property name="type">tab</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="LongoMatch.Gui.Component.PlayersListTreeWidget" id="visitorPlayersList">
+ <property name="MemberName" />
+ <property name="Events">ButtonPressMask</property>
+ </widget>
+ <packing>
+ <property name="Position">2</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.Label" id="visitorPlaysList">
+ <property name="MemberName" />
+ </widget>
+ <packing>
+ <property name="type">tab</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="Gtk.Label" id="label1">
+ <property name="MemberName" />
+ <property name="LabelProp" translatable="yes"> Plays Selection </property>
+ <property name="Justify">Center</property>
+ <property name="Angle">90</property>
+ </widget>
+ <packing>
+ <property name="type">tab</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.VBox" id="vbox2">
+ <property name="MemberName" />
+ <property name="Spacing">6</property>
+ <child>
+ <widget class="Gtk.Notebook" id="filtersnotebook">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="CurrentPage">0</property>
+ <property name="TabPos">Bottom</property>
+ <child>
+ <placeholder />
+ </child>
+ <child>
+ <placeholder />
+ </child>
+ </widget>
+ <packing>
+ <property name="Position">0</property>
+ <property name="AutoSize">True</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.ToggleButton" id="catfiltersbutton">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="Type">TextAndIcon</property>
+ <property name="Icon">stock:gtk-find Menu</property>
+ <property name="Label" translatable="yes">Activate categories filters</property>
+ <property name="UseUnderline">True</property>
+ <signal name="Clicked" handler="OnCategoriesFiltersbuttonClicked" />
+ </widget>
+ <packing>
+ <property name="Position">1</property>
+ <property name="AutoSize">True</property>
+ <property name="Expand">False</property>
+ <property name="Fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.ToggleButton" id="playersfiltersbutton">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="Type">TextAndIcon</property>
+ <property name="Icon">stock:gtk-find Menu</property>
+ <property name="Label" translatable="yes">Activate players filters</property>
+ <property name="UseUnderline">True</property>
+ <signal name="Clicked" handler="OnPlayersFiltersbuttonClicked" />
+ </widget>
+ <packing>
+ <property name="Position">2</property>
+ <property name="AutoSize">True</property>
+ <property name="Expand">False</property>
+ <property name="Fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="Position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.Label" id="label2">
+ <property name="MemberName" />
+ <property name="LabelProp" translatable="yes"> Filters </property>
+ <property name="Angle">90</property>
+ </widget>
+ <packing>
+ <property name="type">tab</property>
+ </packing>
+ </child>
</widget>
<packing>
- <property name="type">tab</property>
+ <property name="Position">0</property>
+ <property name="AutoSize">True</property>
</packing>
</child>
</widget>
diff --git a/LongoMatch.GUI/gtk-gui/objects.xml b/LongoMatch.GUI/gtk-gui/objects.xml
index 16cffd7..f943be7 100644
--- a/LongoMatch.GUI/gtk-gui/objects.xml
+++ b/LongoMatch.GUI/gtk-gui/objects.xml
@@ -201,19 +201,6 @@
</itemgroup>
</signals>
</object>
- <object type="LongoMatch.Gui.Component.PlaysSelectionWidget" palette-category="General" allow-children="false" base-type="Gtk.Bin">
- <itemgroups />
- <signals>
- <itemgroup label="PlaysSelectionWidget Signals">
- <signal name="PlaysDeleted" />
- <signal name="PlaySelected" />
- <signal name="PlayListNodeAdded" />
- <signal name="SnapshotSeries" />
- <signal name="RenderPlaylist" />
- <signal name="TagPlay" />
- </itemgroup>
- </signals>
- </object>
<object type="LongoMatch.Gui.Component.PlayersListTreeWidget" palette-category="General" allow-children="false" base-type="Gtk.Bin">
<itemgroups />
<signals>
@@ -274,4 +261,21 @@
</itemgroup>
</signals>
</object>
+ <object type="LongoMatch.Gui.Component.PlayersFilterTreeView" palette-category="LongoMatch" allow-children="false" base-type="Gtk.TreeView">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.PlaysSelectionWidget" palette-category="General" allow-children="false" base-type="Gtk.Bin">
+ <itemgroups />
+ <signals>
+ <itemgroup label="PlaysSelectionWidget Signals">
+ <signal name="PlaysDeleted" />
+ <signal name="PlaySelected" />
+ <signal name="PlayListNodeAdded" />
+ <signal name="SnapshotSeries" />
+ <signal name="RenderPlaylist" />
+ <signal name="TagPlay" />
+ </itemgroup>
+ </signals>
+ </object>
</objects>
\ No newline at end of file
diff --git a/libcesarplayer/bacon-video-widget-gst-0.10.c b/libcesarplayer/bacon-video-widget-gst-0.10.c
index d6f5459..be259d9 100644
--- a/libcesarplayer/bacon-video-widget-gst-0.10.c
+++ b/libcesarplayer/bacon-video-widget-gst-0.10.c
@@ -28,9 +28,6 @@
*/
-
-
-
#include <gst/gst.h>
/* GStreamer Interfaces */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]