[longomatch] Add multisepection support to the teams templates editor
- From: Andoni Morales Alastruey <amorales src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [longomatch] Add multisepection support to the teams templates editor
- Date: Wed, 21 Sep 2011 21:06:09 +0000 (UTC)
commit 3f518b3451a1435f7a9b1bc669d7b7cf4c06ec63
Author: Andoni Morales Alastruey <ylatuya gmail com>
Date: Fri Sep 16 00:13:40 2011 +0200
Add multisepection support to the teams templates editor
LongoMatch/Gui/Component/TemplatesEditorBase.cs | 17 ++++++++++----
.../Gui/TreeView/PlayerPropertiesTreeView.cs | 22 ++++++++++++++++++-
LongoMatch/Handlers/Handlers.cs | 3 ++
LongoMatch/gtk-gui/objects.xml | 2 +-
4 files changed, 36 insertions(+), 8 deletions(-)
---
diff --git a/LongoMatch/Gui/Component/TemplatesEditorBase.cs b/LongoMatch/Gui/Component/TemplatesEditorBase.cs
index 840dbba..4af7e5b 100644
--- a/LongoMatch/Gui/Component/TemplatesEditorBase.cs
+++ b/LongoMatch/Gui/Component/TemplatesEditorBase.cs
@@ -289,7 +289,7 @@ namespace LongoMatch.Gui.Component
public TeamTemplateEditorWidget () {
treeview = new PlayerPropertiesTreeView();
treeview.PlayerClicked += this.OnPlayerClicked;
- treeview.PlayerSelected += this.OnPlayersSelected;
+ treeview.PlayersSelected += this.OnPlayersSelected;
AddTreeView(treeview);
AddTeamNamesWidget();
@@ -333,17 +333,24 @@ namespace LongoMatch.Gui.Component
Edited = true;
}
- protected virtual void OnPlayerClicked(LongoMatch.Store.Player player)
+ protected virtual void OnPlayerClicked(Player player)
{
selected = new List<Player>();
selected.Add(player);
EditSelected();
}
- protected virtual void OnPlayersSelected(LongoMatch.Store.Player player)
+ protected virtual void OnPlayersSelected(List<Player> players)
{
- selected = new List<Player>();
- selected.Add(player);
+ selected = players;
+
+ if(selected.Count == 0) {
+ ButtonsSensitive = false;
+ } else if(selected.Count == 1) {
+ ButtonsSensitive = true;
+ } else {
+ MultipleSelection();
+ }
}
protected override void RemoveSelected (){
diff --git a/LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs b/LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs
index a52b001..4f0efc3 100644
--- a/LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs
+++ b/LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs
@@ -19,6 +19,7 @@
//
using System;
+using System.Collections.Generic;
using Gdk;
using Gtk;
using Mono.Unix;
@@ -28,18 +29,19 @@ using LongoMatch.Store;
namespace LongoMatch.Gui.Component
{
- public delegate void PlayerPropertiesHandler(Player player);
[System.ComponentModel.Category("LongoMatch")]
[System.ComponentModel.ToolboxItem(true)]
public class PlayerPropertiesTreeView : Gtk.TreeView
{
public event PlayerPropertiesHandler PlayerClicked;
- public event PlayerPropertiesHandler PlayerSelected;
+ public event PlayersPropertiesHandler PlayersSelected;
public PlayerPropertiesTreeView() {
RowActivated += OnTreeviewRowActivated;
+ Selection.Changed += OnSelectionChanged;
+ Selection.Mode = SelectionMode.Multiple;
Gtk.TreeViewColumn photoColumn = new Gtk.TreeViewColumn();
photoColumn.Title = Catalog.GetString("Photo");
@@ -170,6 +172,22 @@ namespace LongoMatch.Gui.Component
(cell as Gtk.CellRendererText).Text = player.Birthday.ToShortDateString();
}
+ protected virtual void OnSelectionChanged(object o, System.EventArgs e) {
+ TreeIter iter;
+ List<Player> list;
+ TreePath[] pathArray;
+
+ list = new List<Player>();
+ pathArray = Selection.GetSelectedRows();
+
+ for(int i=0; i< pathArray.Length; i++) {
+ Model.GetIterFromString(out iter, pathArray[i].ToString());
+ list.Add((Player) Model.GetValue(iter, 0));
+ }
+ if(PlayersSelected != null)
+ PlayersSelected(list);
+ }
+
protected virtual void OnTreeviewRowActivated(object o, Gtk.RowActivatedArgs args)
{
Gtk.TreeIter iter;
diff --git a/LongoMatch/Handlers/Handlers.cs b/LongoMatch/Handlers/Handlers.cs
index 91904ce..ad9c565 100644
--- a/LongoMatch/Handlers/Handlers.cs
+++ b/LongoMatch/Handlers/Handlers.cs
@@ -89,5 +89,8 @@ namespace LongoMatch.Handlers
public delegate void SubCategoryHandler(ISubCategory subcat);
public delegate void SubCategoriesHandler(List<ISubCategory> subcat);
+ public delegate void PlayerPropertiesHandler(Player player);
+ public delegate void PlayersPropertiesHandler(List<Player> players);
+
public delegate void ProjectsSelectedHandler(List<ProjectDescription> projects);
}
diff --git a/LongoMatch/gtk-gui/objects.xml b/LongoMatch/gtk-gui/objects.xml
index 07b38c8..2f164cb 100644
--- a/LongoMatch/gtk-gui/objects.xml
+++ b/LongoMatch/gtk-gui/objects.xml
@@ -20,7 +20,7 @@
<signals>
<itemgroup label="PlayerPropertiesTreeView Signals">
<signal name="PlayerClicked" />
- <signal name="PlayerSelected" />
+ <signal name="PlayersSelected" />
</itemgroup>
</signals>
</object>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]