[longomatch/redesign3: 142/156] Add new quick tagging dialog
- From: Andoni Morales Alastruey <amorales src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [longomatch/redesign3: 142/156] Add new quick tagging dialog
- Date: Wed, 17 Aug 2011 22:28:08 +0000 (UTC)
commit 61140a6d97871d0ef0ee07d75b9e93e0ebbad1b0
Author: Andoni Morales Alastruey <ylatuya gmail com>
Date: Thu Jun 2 01:25:41 2011 +0200
Add new quick tagging dialog
LongoMatch/DB/DataBase.cs | 4 +-
LongoMatch/Gui/Component/PlayersTaggerWidget.cs | 75 ++----
LongoMatch/Gui/Component/PlaysListTreeWidget.cs | 10 -
LongoMatch/Gui/Component/StringTaggerWidget.cs | 6 +-
LongoMatch/Gui/Component/TagsTreeWidget.cs | 2 -
LongoMatch/Gui/Dialog/PlayersSelectionDialog.cs | 61 +++--
LongoMatch/Gui/Dialog/TaggerDialog.cs | 46 +++-
LongoMatch/Gui/MainWindow.cs | 11 +-
LongoMatch/Gui/TreeView/ListTreeViewBase.cs | 85 +-------
LongoMatch/Handlers/EventsManager.cs | 50 +---
LongoMatch/IO/CSVExport.cs | 4 +-
LongoMatch/Store/Project.cs | 2 +-
LongoMatch/Store/SubCategory.cs | 2 +
LongoMatch/Store/Tag.cs | 48 ++++-
LongoMatch/Store/Templates/TeamTemplate.cs | 6 +-
...LongoMatch.Gui.Component.PlayersTaggerWidget.cs | 67 ++++--
.../LongoMatch.Gui.Component.StringTaggerWidget.cs | 7 +-
.../LongoMatch.Gui.Component.TaggerWidget.cs | 19 +--
.../gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs | 80 ++++++-
LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 2 +-
LongoMatch/gtk-gui/gui.stetic | 245 +++++++++++++-------
21 files changed, 459 insertions(+), 373 deletions(-)
---
diff --git a/LongoMatch/DB/DataBase.cs b/LongoMatch/DB/DataBase.cs
index 16ea79e..1f54d34 100644
--- a/LongoMatch/DB/DataBase.cs
+++ b/LongoMatch/DB/DataBase.cs
@@ -355,7 +355,7 @@ namespace LongoMatch.DB
Db4oFactory.Configure().ObjectClass(typeof(Team)).CascadeOnDelete(true);
Db4oFactory.Configure().ObjectClass(typeof(HotKey)).CascadeOnDelete(true);
Db4oFactory.Configure().ObjectClass(typeof(Player)).CascadeOnDelete(true);
- Db4oFactory.Configure().ObjectClass(typeof(Tag)).CascadeOnDelete(true);
+ Db4oFactory.Configure().ObjectClass(typeof(StringTag)).CascadeOnDelete(true);
Db4oFactory.Configure().ObjectClass(typeof(TeamTemplate)).CascadeOnDelete(true);
Db4oFactory.Configure().ObjectClass(typeof(Drawing)).CascadeOnDelete(true);
}
@@ -371,7 +371,7 @@ namespace LongoMatch.DB
Db4oFactory.Configure().ObjectClass(typeof(HotKey)).CascadeOnUpdate(true);
Db4oFactory.Configure().ObjectClass(typeof(Player)).CascadeOnUpdate(true);
Db4oFactory.Configure().ObjectClass(typeof(TeamTemplate)).CascadeOnUpdate(true);
- Db4oFactory.Configure().ObjectClass(typeof(Tag)).CascadeOnDelete(true);
+ Db4oFactory.Configure().ObjectClass(typeof(StringTag)).CascadeOnDelete(true);
Db4oFactory.Configure().ObjectClass(typeof(Drawing)).CascadeOnUpdate(true);
}
diff --git a/LongoMatch/Gui/Component/PlayersTaggerWidget.cs b/LongoMatch/Gui/Component/PlayersTaggerWidget.cs
index 91f2c0b..0fc4474 100644
--- a/LongoMatch/Gui/Component/PlayersTaggerWidget.cs
+++ b/LongoMatch/Gui/Component/PlayersTaggerWidget.cs
@@ -17,69 +17,42 @@
//
using System;
using System.Collections.Generic;
-using Gtk;
+using System.Linq;
using LongoMatch.Store;
using LongoMatch.Store.Templates;
+using LongoMatch.Gui.Dialog;
namespace LongoMatch.Gui.Component
{
[System.ComponentModel.ToolboxItem(true)]
public partial class PlayersTaggerWidget : Gtk.Bin
{
- TeamTemplate template;
- Dictionary<CheckButton, Player> checkButtonsDict;
-
- public PlayersTaggerWidget ()
- {
+ private List<PlayerTag> players;
+ private TeamTemplate template;
+
+ public PlayersTaggerWidget (String subcategoryName, TeamTemplate template, List<PlayerTag> players) {
this.Build ();
- checkButtonsDict = new Dictionary<CheckButton, Player>();
- }
-
- public void SetPlayersInfo(TeamTemplate template) {
- CheckButton button;
- List<Player> playersList;
- int i=0;
-
- if(this.template != null)
- return;
-
+ this.players = players;
this.template = template;
- playersList = template.PlayingPlayersList;
-
- table1.NColumns =(uint)(playersList.Count/10);
- table1.NRows =(uint) 10;
-
- foreach(Player player in playersList) {
- button = new CheckButton();
- button.Label = player.Number + "-" + player.Name;
- button.Name = i.ToString();
- button.Show();
-
- uint row_top =(uint)(i%table1.NRows);
- uint row_bottom = (uint) row_top+1 ;
- uint col_left = (uint) i/table1.NRows;
- uint col_right = (uint) col_left+1 ;
-
- table1.Attach(button,col_left,col_right,row_top,row_bottom);
- checkButtonsDict.Add(button, player);
- i++;
- }
+ CategoryLabel.Markup = "<b>" + subcategoryName + "</b>";
+ LoadTagsLabel();
}
-
- public List<Player> PlayersChecked {
- set {
- foreach(var pair in checkButtonsDict)
- pair.Key.Active = value.Contains(pair.Value);
- }
- get {
- List<Player> playersList = new List<Player>();
- foreach(var pair in checkButtonsDict) {
- if(pair.Key.Active)
- playersList.Add(pair.Value);
- }
- return playersList;
- }
+
+ private void LoadTagsLabel () {
+ var playersNames = players.Select(p => p.Value.Name).ToArray();
+ playerslabel.Text = String.Join(" ; ", playersNames);
+ }
+
+ protected virtual void OnEditClicked (object sender, System.EventArgs e)
+ {
+ PlayersSelectionDialog dialog = new PlayersSelectionDialog();
+ dialog.TransientFor = this.Toplevel as Gtk.Window;
+ dialog.Template = template;
+ dialog.SelectedPlayers = players;
+ dialog.Run();
+ dialog.Destroy();
+ LoadTagsLabel();
}
}
}
diff --git a/LongoMatch/Gui/Component/PlaysListTreeWidget.cs b/LongoMatch/Gui/Component/PlaysListTreeWidget.cs
index b405a7d..059285b 100644
--- a/LongoMatch/Gui/Component/PlaysListTreeWidget.cs
+++ b/LongoMatch/Gui/Component/PlaysListTreeWidget.cs
@@ -41,7 +41,6 @@ namespace LongoMatch.Gui.Component
public event TimeNodeDeletedHandler TimeNodeDeleted;
public event PlayListNodeAddedHandler PlayListNodeAdded;
public event SnapshotSeriesHandler SnapshotSeriesEvent;
- public event PlayersTaggedHandler PlayersTagged;
public event TagPlayHandler TagPlay;
private Project project;
@@ -54,7 +53,6 @@ namespace LongoMatch.Gui.Component
treeview.TimeNodeDeleted += OnTimeNodeDeleted;
treeview.PlayListNodeAdded += OnPlayListNodeAdded;
treeview.SnapshotSeriesEvent += OnSnapshotSeriesEvent;
- treeview.PlayersTagged += OnPlayersTagged;
treeview.TagPlay += OnTagPlay;
}
@@ -120,8 +118,6 @@ namespace LongoMatch.Gui.Component
if(project != null) {
treeview.Model = project.GetModel();
treeview.Colors = true;
- treeview.VisitorTeam = project.Description.VisitorName;
- treeview.LocalTeam = project.Description.LocalName;
}
else {
treeview.Model = null;
@@ -166,12 +162,6 @@ namespace LongoMatch.Gui.Component
SnapshotSeriesEvent(tNode);
}
- protected virtual void OnPlayersTagged(LongoMatch.Store.Play tNode, Team team)
- {
- if(PlayersTagged != null)
- PlayersTagged(tNode,team);
- }
-
protected virtual void OnTagPlay(LongoMatch.Store.Play tNode)
{
if(TagPlay != null)
diff --git a/LongoMatch/Gui/Component/StringTaggerWidget.cs b/LongoMatch/Gui/Component/StringTaggerWidget.cs
index 62c44db..a5a3b49 100644
--- a/LongoMatch/Gui/Component/StringTaggerWidget.cs
+++ b/LongoMatch/Gui/Component/StringTaggerWidget.cs
@@ -63,13 +63,13 @@ namespace LongoMatch.Gui.Component
var button = new CheckButton(tag.Value);
button.Toggled += delegate(object sender, EventArgs e) {
if (button.Active) {
- if (tags.Contains(tag))
- tags.Add(tag);
+ if (!tags.Contains(tag))
+ tags.Add(tag);
} else
tags.Remove(tag);
};
dict.Add(tag, button);
- buttonsbox.PackStart(button, true, false, 0);
+ buttonsbox.PackStart(button, false, false, 0);
button.ShowAll();
}
diff --git a/LongoMatch/Gui/Component/TagsTreeWidget.cs b/LongoMatch/Gui/Component/TagsTreeWidget.cs
index fba92a6..b291069 100644
--- a/LongoMatch/Gui/Component/TagsTreeWidget.cs
+++ b/LongoMatch/Gui/Component/TagsTreeWidget.cs
@@ -132,8 +132,6 @@ namespace LongoMatch.Gui.Component
model.AppendValues(play);
UpdateTagsList();
- treeview.LocalTeam = project.Description.LocalName;
- treeview.VisitorTeam = project.Description.VisitorName;
}
}
}
diff --git a/LongoMatch/Gui/Dialog/PlayersSelectionDialog.cs b/LongoMatch/Gui/Dialog/PlayersSelectionDialog.cs
index 805842d..9b8f88c 100644
--- a/LongoMatch/Gui/Dialog/PlayersSelectionDialog.cs
+++ b/LongoMatch/Gui/Dialog/PlayersSelectionDialog.cs
@@ -17,7 +17,9 @@
//
using System.Collections.Generic;
+using System.Linq;
using Gtk;
+
using LongoMatch.Store;
using LongoMatch.Store.Templates;
@@ -28,32 +30,50 @@ namespace LongoMatch.Gui.Dialog
public partial class PlayersSelectionDialog : Gtk.Dialog
{
TeamTemplate template;
- Dictionary<CheckButton, Player> checkButtonsDict;
+ List<PlayerTag> selectedPlayers;
+ Dictionary<CheckButton, PlayerTag> checkButtonsDict;
public PlayersSelectionDialog()
{
this.Build();
- checkButtonsDict = new Dictionary<CheckButton, Player>();
+ checkButtonsDict = new Dictionary<CheckButton, PlayerTag>();
+ }
+
+ public TeamTemplate Template {
+ set{
+ SetPlayersInfo(value);
+ }
+ }
+
+ public List<PlayerTag> SelectedPlayers {
+ set {
+ this.selectedPlayers = value;
+ foreach(var pair in checkButtonsDict)
+ pair.Key.Active = value.Contains(pair.Value);
+ }
+ get {
+ return selectedPlayers;
+ }
}
- public void SetPlayersInfo(TeamTemplate template) {
- CheckButton button;
- List<Player> playersList;
+ private void SetPlayersInfo(TeamTemplate template) {
+ List<PlayerTag> playersList;
int i=0;
if(this.template != null)
return;
this.template = template;
- playersList = template.PlayingPlayersList;
+ playersList = template.PlayingPlayersList.Select(p => new PlayerTag {Value=p}).ToList();
table1.NColumns =(uint)(playersList.Count/10);
table1.NRows =(uint) 10;
- foreach(Player player in playersList) {
- button = new CheckButton();
- button.Label = player.Number + "-" + player.Name;
+ foreach(PlayerTag player in playersList) {
+ CheckButton button = new CheckButton();
+ button.Label = player.Value.Number + "-" + player.Value.Name;
button.Name = i.ToString();
+ button.Toggled += OnButtonToggled;
button.Show();
uint row_top =(uint)(i%table1.NRows);
@@ -66,20 +86,15 @@ namespace LongoMatch.Gui.Dialog
i++;
}
}
-
- public List<Player> PlayersChecked {
- set {
- foreach(var pair in checkButtonsDict)
- pair.Key.Active = value.Contains(pair.Value);
- }
- get {
- List<Player> playersList = new List<Player>();
- foreach(var pair in checkButtonsDict) {
- if(pair.Key.Active)
- playersList.Add(pair.Value);
- }
- return playersList;
- }
+
+ protected virtual void OnButtonToggled (object sender, System.EventArgs args) {
+ CheckButton button = sender as CheckButton;
+ PlayerTag player = checkButtonsDict[button];
+
+ if (button.Active && !selectedPlayers.Contains(player))
+ selectedPlayers.Add(player);
+ else if (!button.Active)
+ selectedPlayers.Remove(player);
}
}
}
diff --git a/LongoMatch/Gui/Dialog/TaggerDialog.cs b/LongoMatch/Gui/Dialog/TaggerDialog.cs
index 8304f3b..92bd821 100644
--- a/LongoMatch/Gui/Dialog/TaggerDialog.cs
+++ b/LongoMatch/Gui/Dialog/TaggerDialog.cs
@@ -19,6 +19,9 @@
using System;
using System.Linq;
using System.Collections.Generic;
+
+using LongoMatch.Common;
+using LongoMatch.Gui.Component;
using LongoMatch.Store;
using LongoMatch.Store.Templates;
@@ -28,24 +31,53 @@ namespace LongoMatch.Gui.Dialog
public partial class TaggerDialog : Gtk.Dialog
{
+ private TeamTemplate localTeamTemplate;
+ private TeamTemplate visitorTeamTemplate;
- public TaggerDialog(Category cat, StringTagStore tags)
+ public TaggerDialog(Category cat, StringTagStore tags, PlayersTagStore players,
+ TeamTemplate localTeamTemplate, TeamTemplate visitorTeamTemplate)
{
this.Build();
- buttonOk.Visible = false;
+ this.localTeamTemplate = localTeamTemplate;
+ this.visitorTeamTemplate = visitorTeamTemplate;
+
+ /* Iterate over all subcategories, adding a widget only for the FastTag ones */
foreach (var subcat in cat.SubCategories) {
- if (subcat is TagSubCategory) {
+ if (subcat is SubCategoryTemplate) {
var tagcat = subcat as TagSubCategory;
- if (!tags.Contains(tagcat))
- continue;
- AddSubcategory(tagcat, tags.GetTags(tagcat));
+ if (tagcat.FastTag)
+ AddTagSubcategory(tagcat, tags.GetTags(tagcat));
+ } else if (subcat is PlayerSubCategory) {
+ var tagcat = subcat as PlayerSubCategory;
+ if (tagcat.FastTag)
+ AddPlayerSubcategory(tagcat, players.GetTags(tagcat));
}
}
}
- public void AddSubcategory (TagSubCategory subcat, List<StringTag> tags){
+ public void AddTagSubcategory (TagSubCategory subcat, List<StringTag> tags){
+ /* the notebook starts invisible */
+ tagsnotebook.Visible = true;
taggerwidget1.AddSubCategory(subcat, tags);
}
+
+ public void AddPlayerSubcategory (PlayerSubCategory subcat, List<PlayerTag> tags){
+ TeamTemplate template;
+
+ /* the notebook starts invisible */
+ playersnotebook.Visible = true;
+ if (subcat.Contains(Team.LOCAL))
+ template = localTeamTemplate;
+ /* FIXME: Add support for subcategories with both teams */
+ //else if (subcat.Contains(Team.VISITOR))
+ else
+ template = visitorTeamTemplate;
+
+ PlayersTaggerWidget widget = new PlayersTaggerWidget(subcat.Name, template, tags);
+ widget.Show();
+ playersbox.PackStart(widget, false, true, 0);
+ }
+
}
}
diff --git a/LongoMatch/Gui/MainWindow.cs b/LongoMatch/Gui/MainWindow.cs
index 80f2716..904f1fb 100644
--- a/LongoMatch/Gui/MainWindow.cs
+++ b/LongoMatch/Gui/MainWindow.cs
@@ -122,16 +122,9 @@ namespace LongoMatch.Gui
eManager.OpenedProjectType = projectType;
/* Update tabs labels */
- /* FIXME 1.0: Teams should have default names */
var desc = project.Description;
- if(desc.VisitorName == "")
- visitorteamlabel.Text = Catalog.GetString("Visitor Team");
- else
- visitorteamlabel.Text = desc.VisitorName;
- if(desc.LocalName == "")
- localteamlabel.Text = Catalog.GetString("Local Team");
- else
- localteamlabel.Text = desc.LocalName;
+ visitorteamlabel.Text = desc.VisitorName;
+ localteamlabel.Text = desc.LocalName;
if(projectType == ProjectType.FileProject) {
// Check if the file associated to the project exists
diff --git a/LongoMatch/Gui/TreeView/ListTreeViewBase.cs b/LongoMatch/Gui/TreeView/ListTreeViewBase.cs
index 9d02415..dddb728 100644
--- a/LongoMatch/Gui/TreeView/ListTreeViewBase.cs
+++ b/LongoMatch/Gui/TreeView/ListTreeViewBase.cs
@@ -32,10 +32,7 @@ namespace LongoMatch.Gui.Component
public abstract class ListTreeViewBase:TreeView
{
// Plays menu
- protected Menu menu, teamMenu;
- protected MenuItem local;
- protected MenuItem visitor;
- protected MenuItem noTeam;
+ protected Menu menu;
protected MenuItem tag;
protected MenuItem delete;
protected MenuItem addPLN;
@@ -45,19 +42,14 @@ namespace LongoMatch.Gui.Component
protected Gtk.CellRendererText nameCell;
protected Gtk.TreeViewColumn nameColumn;
- protected String[] teams_name;
protected bool editing;
protected bool projectIsLive;
- protected const string LOCAL_TEAM = "Local Team";
- protected const string VISITOR_TEAM = "Visitor Team";
-
public event TimeNodeChangedHandler TimeNodeChanged;
public event TimeNodeSelectedHandler TimeNodeSelected;
public event TimeNodeDeletedHandler TimeNodeDeleted;
public event PlayListNodeAddedHandler PlayListNodeAdded;
public event SnapshotSeriesHandler SnapshotSeriesEvent;
- public event PlayersTaggedHandler PlayersTagged;
public event TagPlayHandler TagPlay;
public ListTreeViewBase()
@@ -71,12 +63,6 @@ namespace LongoMatch.Gui.Component
ProjectIsLive = false;
PlayListLoaded = false;
- teams_name = new String[3];
- teams_name[(int)Team.NONE] = Catalog.GetString("None");
- teams_name[(int)Team.LOCAL] = Catalog.GetString(LOCAL_TEAM);
- teams_name[(int)Team.VISITOR] = Catalog.GetString(VISITOR_TEAM);
-
-
nameColumn = new Gtk.TreeViewColumn();
nameColumn.Title = "Name";
nameCell = new Gtk.CellRendererText();
@@ -105,29 +91,6 @@ namespace LongoMatch.Gui.Component
set;
}
- public String LocalTeam {
- set {
- Label l = (local.Children[0] as Label);
- if(value == "")
- l.Text = Catalog.GetString(LOCAL_TEAM);
- else {
- l.Text = value;
- }
- teams_name[(int)Team.LOCAL] = l.Text;
- }
- }
-
- public string VisitorTeam {
- set {
- Label l = (visitor.Children[0] as Label);
- if(value == "")
- l.Text = Catalog.GetString(VISITOR_TEAM);
- else
- l.Text = value;
- teams_name[(int)Team.VISITOR] = l.Text;
- }
- }
-
public bool PlayListLoaded {
set {
addPLN.Sensitive = value;
@@ -142,20 +105,10 @@ namespace LongoMatch.Gui.Component
protected void SetMenu() {
MenuItem team;
- teamMenu = new Menu();
- local = new MenuItem(Catalog.GetString(LOCAL_TEAM));
- visitor = new MenuItem(Catalog.GetString(VISITOR_TEAM));
- noTeam = new MenuItem(Catalog.GetString("No Team"));
- teamMenu .Append(local);
- teamMenu .Append(visitor);
- teamMenu .Append(noTeam);
-
menu = new Menu();
- name = new MenuItem(Catalog.GetString("Edit"));
- team = new MenuItem(Catalog.GetString("Team Selection"));
- team.Submenu = teamMenu;
- tag = new MenuItem(Catalog.GetString("Add tag"));
+ name = new MenuItem(Catalog.GetString("Edit name"));
+ tag = new MenuItem(Catalog.GetString("Edit tags"));
delete = new MenuItem(Catalog.GetString("Delete"));
deleteKeyFrame = new MenuItem(Catalog.GetString("Delete key frame"));
addPLN = new MenuItem(Catalog.GetString("Add to playlist"));
@@ -164,7 +117,6 @@ namespace LongoMatch.Gui.Component
menu.Append(name);
menu.Append(tag);
- menu.Append(team);
menu.Append(addPLN);
menu.Append(delete);
menu.Append(deleteKeyFrame);
@@ -172,9 +124,6 @@ namespace LongoMatch.Gui.Component
name.Activated += OnEdit;
tag.Activated += OnTag;
- local.Activated += OnTeamSelection;
- visitor.Activated += OnTeamSelection;
- noTeam.Activated += OnTeamSelection;
addPLN.Activated += OnAdded;
delete.Activated += OnDeleted;
deleteKeyFrame.Activated += OnDeleteKeyFrame;
@@ -336,24 +285,6 @@ namespace LongoMatch.Gui.Component
SetCursor(paths[0], nameColumn, true);
}
- protected void OnTeamSelection(object obj, EventArgs args) {
- MenuItem sender = (MenuItem)obj;
- Team team = Team.NONE;
- if(sender == local)
- team = Team.LOCAL;
- else if(sender == visitor)
- team = Team.VISITOR;
- else if(sender == noTeam)
- team = Team.NONE;
-
- TreePath[] paths = Selection.GetSelectedRows();
- for(int i=0; i<paths.Length; i++) {
- Play tNode = (Play)GetValueFromPath(paths[i]);
- //FIXME
- //tNode.Team = team;
- }
- }
-
protected void OnAdded(object obj, EventArgs args) {
if(PlayListNodeAdded != null) {
TreePath[] paths = Selection.GetSelectedRows();
@@ -374,16 +305,6 @@ namespace LongoMatch.Gui.Component
SnapshotSeriesEvent((Play)GetValueFromPath(Selection.GetSelectedRows()[0]));
}
- protected virtual void OnLocalPlayers(object o, EventArgs args) {
- if(PlayersTagged != null)
- PlayersTagged((Play)GetValueFromPath(Selection.GetSelectedRows()[0]), Team.LOCAL);
- }
-
- protected virtual void OnVisitorPlayers(object o, EventArgs args) {
- if(PlayersTagged != null)
- PlayersTagged((Play)GetValueFromPath(Selection.GetSelectedRows()[0]), Team.VISITOR);
- }
-
protected abstract bool SelectFunction(TreeSelection selection, TreeModel model, TreePath path, bool selected);
}
}
diff --git a/LongoMatch/Handlers/EventsManager.cs b/LongoMatch/Handlers/EventsManager.cs
index 54f0c1e..4608662 100644
--- a/LongoMatch/Handlers/EventsManager.cs
+++ b/LongoMatch/Handlers/EventsManager.cs
@@ -133,7 +133,6 @@ namespace LongoMatch
tagsTreeWidget.PlayListNodeAdded += OnPlayListNodeAdded;
/* Connect tags events */
- treewidget.PlayersTagged += OnPlayersTagged;
treewidget.TagPlay += OnTagPlay;
/* Connect SnapshotSeries events */
@@ -195,8 +194,7 @@ namespace LongoMatch
else
miniature = null;
var play = openedProject.AddPlay(category, start, stop,miniature);
- TaggerDialog tg = new TaggerDialog(category, play.Tags);
- tg.Run();
+ LaunchPlayTagger(play);
treewidget.AddPlay(play);
tagsTreeWidget.AddPlay(play);
timeline.AddPlay(play);
@@ -276,6 +274,14 @@ namespace LongoMatch
AddNewPlay(startTime, stopTime, category);
}
+ private void LaunchPlayTagger(Play play) {
+ TaggerDialog tg = new TaggerDialog(play.Category, play.Tags, play.Players,
+ openedProject.LocalTeamTemplate, openedProject.VisitorTeamTemplate);
+ tg.TransientFor = (Gtk.Window)treewidget.Toplevel;
+ tg.Run();
+ tg.Destroy();
+ }
+
protected virtual void OnTimeNodeSelected(Play tNode)
{
selectedTimeNode = tNode;
@@ -439,42 +445,8 @@ namespace LongoMatch
dialog.Destroy();
}
- protected virtual void OnTagPlay(Play tNode) {
- /*TaggerDialog tagger = new TaggerDialog();
- tagger.ProjectTags = openedProject.Tags;
- tagger.Tags = tNode.Tags;
- tagger.TransientFor = (Gtk.Window)player.Toplevel;
- tagger.Run();
- tNode.Tags = tagger.Tags;
- foreach (Tag tag in tagger.Tags){
- openedProject.Tags.AddTag(tag);
- }
- tagsTreeWidget.UpdateTagsList();
- tagger.Destroy();*/
- }
-
- protected virtual void OnPlayersTagged(Play tNode, Team team) {
- /*
- PlayersSelectionDialog dialog = new PlayersSelectionDialog();
- if (team == Team.LOCAL) {
- dialog.SetPlayersInfo(openedProject.LocalTeamTemplate);
- dialog.PlayersChecked = tNode.LocalPlayers;
- if (dialog.Run() == (int) ResponseType.Ok) {
- tNode.LocalPlayers = dialog.PlayersChecked;
- localPlayersList.UpdatePlaysList(openedProject.GetLocalTeamModel());
- }
- }
-
- else if (team == Team.VISITOR) {
- dialog.SetPlayersInfo(openedProject.VisitorTeamTemplate);
- dialog.PlayersChecked = tNode.VisitorPlayers;
- if (dialog.Run() == (int) ResponseType.Ok) {
- tNode.VisitorPlayers = dialog.PlayersChecked;
- visitorPlayersList.UpdatePlaysList(openedProject.GetVisitorTeamModel());
- }
- }
- dialog.Destroy();
- */
+ protected virtual void OnTagPlay(Play play) {
+ LaunchPlayTagger(play);
}
}
}
diff --git a/LongoMatch/IO/CSVExport.cs b/LongoMatch/IO/CSVExport.cs
index 42a57ea..7a4fa41 100644
--- a/LongoMatch/IO/CSVExport.cs
+++ b/LongoMatch/IO/CSVExport.cs
@@ -129,7 +129,7 @@ namespace LongoMatch.IO
#region Private Methods
- private void WriteCatagoriesData(TextWriter tx, Dictionary<Tag, List<Play>> tagsDic) {
+ /***private void WriteCatagoriesData(TextWriter tx, Dictionary<Tag, List<Play>> tagsDic) {
// Write Tags table
tx.WriteLine(String.Format("{0};{1};{2};{3};{4}",
Catalog.GetString("Tag"),
@@ -178,7 +178,7 @@ namespace LongoMatch.IO
}
tx.WriteLine();
tx.WriteLine();
- }
+ }***/
#endregion
}
}
diff --git a/LongoMatch/Store/Project.cs b/LongoMatch/Store/Project.cs
index c83c20d..2ddfdd2 100644
--- a/LongoMatch/Store/Project.cs
+++ b/LongoMatch/Store/Project.cs
@@ -266,7 +266,7 @@ namespace LongoMatch.Store
foreach (var play in timeline) {
foreach (var player in play.Players.AllUniqueElements)
- store.AppendValues(dict[player], new object[1] {play});
+ store.AppendValues(dict[player.Value], new object[1] {play});
}
return store;
}
diff --git a/LongoMatch/Store/SubCategory.cs b/LongoMatch/Store/SubCategory.cs
index de95a04..495fbcb 100644
--- a/LongoMatch/Store/SubCategory.cs
+++ b/LongoMatch/Store/SubCategory.cs
@@ -41,6 +41,7 @@ namespace LongoMatch.Store
[Serializable]
public class SubCategory<T>: List<T>, ISubCategory
{
+
public SubCategory() {
Name = "";
AllowMultiple = true;
@@ -87,6 +88,7 @@ namespace LongoMatch.Store
public virtual string ToMarkupString(){
return this.ToString();
}
+
}
[Serializable]
diff --git a/LongoMatch/Store/Tag.cs b/LongoMatch/Store/Tag.cs
index 40afe49..0e48da5 100644
--- a/LongoMatch/Store/Tag.cs
+++ b/LongoMatch/Store/Tag.cs
@@ -75,8 +75,8 @@ namespace LongoMatch.Store
public List<W> GetTags(T subCategory) {
if (!Tags.ContainsKey(subCategory)) {
- Log.Warning("Trying to get the tags of an unknow subcategory");
- return new List<W>();
+ Log.Debug(String.Format("Adding subcategory {0} to store", subCategory.Name));
+ Tags[subCategory] = new List<W>();
}
return Tags[subCategory];
}
@@ -86,9 +86,9 @@ namespace LongoMatch.Store
public class StringTagStore: TagsStore<TagSubCategory, StringTag> {}
- public class PlayersTagStore: TagsStore<PlayerSubCategory, Player> {}
+ public class PlayersTagStore: TagsStore<PlayerSubCategory, PlayerTag> {}
- public class TeamsTagStore: TagsStore<PlayerSubCategory, Team> {}
+ public class TeamsTagStore: TagsStore<PlayerSubCategory, TeamTag> {}
[Serializable]
@@ -101,23 +101,63 @@ namespace LongoMatch.Store
get;
set;
}
+
}
[Serializable]
public class StringTag: Tag<string>
{
public StringTag() {}
+
+ public override bool Equals (object obj)
+ {
+ StringTag tag = obj as StringTag;
+ if (tag == null)
+ return false;
+ return Value.Equals (tag.Value);
+ }
+
+ public override int GetHashCode ()
+ {
+ return Value.GetHashCode ();
+ }
}
[Serializable]
public class PlayerTag: Tag<Player>
{
public PlayerTag() {}
+
+ public override bool Equals (object obj)
+ {
+ PlayerTag tag = obj as PlayerTag;
+ if (tag == null)
+ return false;
+ return Value.Equals (tag.Value);
+ }
+
+ public override int GetHashCode ()
+ {
+ return Value.GetHashCode ();
+ }
}
[Serializable]
public class TeamTag: Tag<Team>
{
public TeamTag() {}
+
+ public override bool Equals (object obj)
+ {
+ TeamTag tag = obj as TeamTag;
+ if (tag == null)
+ return false;
+ return Value.Equals (tag.Value);
+ }
+
+ public override int GetHashCode ()
+ {
+ return Value.GetHashCode ();
+ }
}
}
diff --git a/LongoMatch/Store/Templates/TeamTemplate.cs b/LongoMatch/Store/Templates/TeamTemplate.cs
index dcc0cbc..306f777 100644
--- a/LongoMatch/Store/Templates/TeamTemplate.cs
+++ b/LongoMatch/Store/Templates/TeamTemplate.cs
@@ -38,11 +38,7 @@ namespace LongoMatch.Store.Templates
public List<Player> PlayingPlayersList {
get {
- var players =
- from player in this
- where player.Playing == true
- select player;
- return players.ToList() as List<Player>;
+ return this.Where(p=>p.Playing).Select(p=>p).ToList();
}
}
diff --git a/LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayersTaggerWidget.cs b/LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayersTaggerWidget.cs
index 4225eaf..12e4364 100644
--- a/LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayersTaggerWidget.cs
+++ b/LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayersTaggerWidget.cs
@@ -4,9 +4,17 @@ namespace LongoMatch.Gui.Component
{
public partial class PlayersTaggerWidget
{
- private global::Gtk.ScrolledWindow scrolledwindow1;
+ private global::Gtk.Frame frame1;
- private global::Gtk.Table table1;
+ private global::Gtk.Alignment GtkAlignment;
+
+ private global::Gtk.HBox hbox1;
+
+ private global::Gtk.Label playerslabel;
+
+ private global::Gtk.Button editbutton;
+
+ private global::Gtk.Label CategoryLabel;
protected virtual void Build ()
{
@@ -15,25 +23,50 @@ namespace LongoMatch.Gui.Component
global::Stetic.BinContainer.Attach (this);
this.Name = "LongoMatch.Gui.Component.PlayersTaggerWidget";
// Container child LongoMatch.Gui.Component.PlayersTaggerWidget.Gtk.Container+ContainerChild
- this.scrolledwindow1 = new global::Gtk.ScrolledWindow ();
- this.scrolledwindow1.CanFocus = true;
- this.scrolledwindow1.Name = "scrolledwindow1";
- this.scrolledwindow1.ShadowType = ((global::Gtk.ShadowType)(1));
- // Container child scrolledwindow1.Gtk.Container+ContainerChild
- global::Gtk.Viewport w1 = new global::Gtk.Viewport ();
- w1.ShadowType = ((global::Gtk.ShadowType)(0));
- // Container child GtkViewport.Gtk.Container+ContainerChild
- this.table1 = new global::Gtk.Table (((uint)(3)), ((uint)(3)), false);
- this.table1.Name = "table1";
- this.table1.RowSpacing = ((uint)(6));
- this.table1.ColumnSpacing = ((uint)(6));
- w1.Add (this.table1);
- this.scrolledwindow1.Add (w1);
- this.Add (this.scrolledwindow1);
+ this.frame1 = new global::Gtk.Frame ();
+ this.frame1.Name = "frame1";
+ this.frame1.ShadowType = ((global::Gtk.ShadowType)(2));
+ // Container child frame1.Gtk.Container+ContainerChild
+ this.GtkAlignment = new global::Gtk.Alignment (0f, 0f, 1f, 1f);
+ this.GtkAlignment.Name = "GtkAlignment";
+ this.GtkAlignment.LeftPadding = ((uint)(12));
+ // Container child GtkAlignment.Gtk.Container+ContainerChild
+ this.hbox1 = new global::Gtk.HBox ();
+ this.hbox1.Name = "hbox1";
+ this.hbox1.Spacing = 6;
+ // Container child hbox1.Gtk.Box+BoxChild
+ this.playerslabel = new global::Gtk.Label ();
+ this.playerslabel.Name = "playerslabel";
+ this.playerslabel.Xalign = 0f;
+ this.playerslabel.LabelProp = global::Mono.Unix.Catalog.GetString ("None");
+ this.hbox1.Add (this.playerslabel);
+ global::Gtk.Box.BoxChild w1 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.playerslabel]));
+ w1.Position = 0;
+ // Container child hbox1.Gtk.Box+BoxChild
+ this.editbutton = new global::Gtk.Button ();
+ this.editbutton.CanFocus = true;
+ this.editbutton.Name = "editbutton";
+ this.editbutton.UseStock = true;
+ this.editbutton.UseUnderline = true;
+ this.editbutton.Label = "gtk-edit";
+ this.hbox1.Add (this.editbutton);
+ global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.editbutton]));
+ w2.Position = 1;
+ w2.Expand = false;
+ w2.Fill = false;
+ this.GtkAlignment.Add (this.hbox1);
+ this.frame1.Add (this.GtkAlignment);
+ this.CategoryLabel = new global::Gtk.Label ();
+ this.CategoryLabel.Name = "CategoryLabel";
+ this.CategoryLabel.LabelProp = global::Mono.Unix.Catalog.GetString ("<b>GtkFrame</b>");
+ this.CategoryLabel.UseMarkup = true;
+ this.frame1.LabelWidget = this.CategoryLabel;
+ this.Add (this.frame1);
if ((this.Child != null)) {
this.Child.ShowAll ();
}
this.Hide ();
+ this.editbutton.Clicked += new global::System.EventHandler (this.OnEditClicked);
}
}
}
diff --git a/LongoMatch/gtk-gui/LongoMatch.Gui.Component.StringTaggerWidget.cs b/LongoMatch/gtk-gui/LongoMatch.Gui.Component.StringTaggerWidget.cs
index ec3758a..64cabc4 100644
--- a/LongoMatch/gtk-gui/LongoMatch.Gui.Component.StringTaggerWidget.cs
+++ b/LongoMatch/gtk-gui/LongoMatch.Gui.Component.StringTaggerWidget.cs
@@ -8,7 +8,7 @@ namespace LongoMatch.Gui.Component
private global::Gtk.Alignment GtkAlignment;
- private global::Gtk.HButtonBox buttonsbox;
+ private global::Gtk.HBox buttonsbox;
private global::Gtk.Label titlelabel;
@@ -21,14 +21,15 @@ namespace LongoMatch.Gui.Component
// Container child LongoMatch.Gui.Component.StringTaggerWidget.Gtk.Container+ContainerChild
this.frame = new global::Gtk.Frame ();
this.frame.Name = "frame";
- this.frame.ShadowType = ((global::Gtk.ShadowType)(0));
+ this.frame.ShadowType = ((global::Gtk.ShadowType)(2));
// Container child frame.Gtk.Container+ContainerChild
this.GtkAlignment = new global::Gtk.Alignment (0f, 0f, 1f, 1f);
this.GtkAlignment.Name = "GtkAlignment";
this.GtkAlignment.LeftPadding = ((uint)(12));
// Container child GtkAlignment.Gtk.Container+ContainerChild
- this.buttonsbox = new global::Gtk.HButtonBox ();
+ this.buttonsbox = new global::Gtk.HBox ();
this.buttonsbox.Name = "buttonsbox";
+ this.buttonsbox.Spacing = 6;
this.GtkAlignment.Add (this.buttonsbox);
this.frame.Add (this.GtkAlignment);
this.titlelabel = new global::Gtk.Label ();
diff --git a/LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs b/LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs
index 0fb880e..565c401 100644
--- a/LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs
+++ b/LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs
@@ -6,8 +6,6 @@ namespace LongoMatch.Gui.Component
{
private global::Gtk.VBox vbox2;
- private global::Gtk.ScrolledWindow scrolledwindow1;
-
private global::Gtk.Table table1;
protected virtual void Build ()
@@ -21,28 +19,17 @@ namespace LongoMatch.Gui.Component
this.vbox2.Name = "vbox2";
this.vbox2.Spacing = 6;
// Container child vbox2.Gtk.Box+BoxChild
- this.scrolledwindow1 = new global::Gtk.ScrolledWindow ();
- this.scrolledwindow1.CanFocus = true;
- this.scrolledwindow1.Name = "scrolledwindow1";
- this.scrolledwindow1.ShadowType = ((global::Gtk.ShadowType)(1));
- // Container child scrolledwindow1.Gtk.Container+ContainerChild
- global::Gtk.Viewport w1 = new global::Gtk.Viewport ();
- w1.ShadowType = ((global::Gtk.ShadowType)(0));
- // Container child GtkViewport.Gtk.Container+ContainerChild
this.table1 = new global::Gtk.Table (((uint)(3)), ((uint)(3)), false);
this.table1.Name = "table1";
this.table1.RowSpacing = ((uint)(6));
this.table1.ColumnSpacing = ((uint)(6));
- w1.Add (this.table1);
- this.scrolledwindow1.Add (w1);
- this.vbox2.Add (this.scrolledwindow1);
- global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.scrolledwindow1]));
- w4.Position = 0;
+ this.vbox2.Add (this.table1);
+ global::Gtk.Box.BoxChild w1 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.table1]));
+ w1.Position = 0;
this.Add (this.vbox2);
if ((this.Child != null)) {
this.Child.ShowAll ();
}
- this.scrolledwindow1.Hide ();
this.Hide ();
}
}
diff --git a/LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs b/LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs
index 1b4ae12..6b3d936 100644
--- a/LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs
+++ b/LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs
@@ -4,8 +4,20 @@ namespace LongoMatch.Gui.Dialog
{
public partial class TaggerDialog
{
+ private global::Gtk.HBox hbox1;
+
+ private global::Gtk.Notebook tagsnotebook;
+
private global::LongoMatch.Gui.Component.TaggerWidget taggerwidget1;
+ private global::Gtk.Label label1;
+
+ private global::Gtk.Notebook playersnotebook;
+
+ private global::Gtk.VBox playersbox;
+
+ private global::Gtk.Label label2;
+
private global::Gtk.Button buttonOk;
protected virtual void Build ()
@@ -16,23 +28,65 @@ namespace LongoMatch.Gui.Dialog
this.Title = global::Mono.Unix.Catalog.GetString ("Tag play");
this.Icon = global::Stetic.IconLoader.LoadIcon (this, "longomatch", global::Gtk.IconSize.Menu);
this.WindowPosition = ((global::Gtk.WindowPosition)(4));
+ this.AllowShrink = true;
+ this.Gravity = ((global::Gdk.Gravity)(5));
+ this.SkipPagerHint = true;
+ this.SkipTaskbarHint = true;
// Internal child LongoMatch.Gui.Dialog.TaggerDialog.VBox
global::Gtk.VBox w1 = this.VBox;
w1.Name = "dialog1_VBox";
w1.BorderWidth = ((uint)(2));
// Container child dialog1_VBox.Gtk.Box+BoxChild
+ this.hbox1 = new global::Gtk.HBox ();
+ this.hbox1.Name = "hbox1";
+ this.hbox1.Spacing = 6;
+ // Container child hbox1.Gtk.Box+BoxChild
+ this.tagsnotebook = new global::Gtk.Notebook ();
+ this.tagsnotebook.CanFocus = true;
+ this.tagsnotebook.Name = "tagsnotebook";
+ this.tagsnotebook.CurrentPage = 0;
+ // Container child tagsnotebook.Gtk.Notebook+NotebookChild
this.taggerwidget1 = new global::LongoMatch.Gui.Component.TaggerWidget ();
this.taggerwidget1.Events = ((global::Gdk.EventMask)(256));
this.taggerwidget1.Name = "taggerwidget1";
- w1.Add (this.taggerwidget1);
- global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(w1[this.taggerwidget1]));
- w2.Position = 0;
+ this.tagsnotebook.Add (this.taggerwidget1);
+ // Notebook tab
+ this.label1 = new global::Gtk.Label ();
+ this.label1.Name = "label1";
+ this.label1.LabelProp = global::Mono.Unix.Catalog.GetString ("Tags");
+ this.tagsnotebook.SetTabLabel (this.taggerwidget1, this.label1);
+ this.label1.ShowAll ();
+ this.hbox1.Add (this.tagsnotebook);
+ global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.tagsnotebook]));
+ w3.Position = 0;
+ // Container child hbox1.Gtk.Box+BoxChild
+ this.playersnotebook = new global::Gtk.Notebook ();
+ this.playersnotebook.CanFocus = true;
+ this.playersnotebook.Name = "playersnotebook";
+ this.playersnotebook.CurrentPage = 0;
+ // Container child playersnotebook.Gtk.Notebook+NotebookChild
+ this.playersbox = new global::Gtk.VBox ();
+ this.playersbox.Name = "playersbox";
+ this.playersbox.Spacing = 6;
+ this.playersnotebook.Add (this.playersbox);
+ // Notebook tab
+ this.label2 = new global::Gtk.Label ();
+ this.label2.Name = "label2";
+ this.label2.LabelProp = global::Mono.Unix.Catalog.GetString ("Players");
+ this.playersnotebook.SetTabLabel (this.playersbox, this.label2);
+ this.label2.ShowAll ();
+ this.hbox1.Add (this.playersnotebook);
+ global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.playersnotebook]));
+ w5.Position = 1;
+ w1.Add (this.hbox1);
+ global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(w1[this.hbox1]));
+ w6.Position = 0;
// Internal child LongoMatch.Gui.Dialog.TaggerDialog.ActionArea
- global::Gtk.HButtonBox w3 = this.ActionArea;
- w3.Name = "dialog1_ActionArea";
- w3.Spacing = 6;
- w3.BorderWidth = ((uint)(5));
- w3.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4));
+ global::Gtk.HButtonBox w7 = this.ActionArea;
+ w7.Name = "dialog1_ActionArea";
+ w7.Spacing = 6;
+ w7.BorderWidth = ((uint)(5));
+ w7.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4));
// Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild
this.buttonOk = new global::Gtk.Button ();
this.buttonOk.CanDefault = true;
@@ -42,14 +96,16 @@ namespace LongoMatch.Gui.Dialog
this.buttonOk.UseUnderline = true;
this.buttonOk.Label = "gtk-ok";
this.AddActionWidget (this.buttonOk, -5);
- global::Gtk.ButtonBox.ButtonBoxChild w4 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w3[this.buttonOk]));
- w4.Expand = false;
- w4.Fill = false;
+ global::Gtk.ButtonBox.ButtonBoxChild w8 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w7[this.buttonOk]));
+ w8.Expand = false;
+ w8.Fill = false;
if ((this.Child != null)) {
this.Child.ShowAll ();
}
- this.DefaultWidth = 426;
+ this.DefaultWidth = 511;
this.DefaultHeight = 267;
+ this.tagsnotebook.Hide ();
+ this.playersnotebook.Hide ();
this.Show ();
}
}
diff --git a/LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs b/LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs
index b102b4b..443d56c 100644
--- a/LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs
+++ b/LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs
@@ -233,7 +233,7 @@ namespace LongoMatch.Gui
this.notebook1 = new global::Gtk.Notebook ();
this.notebook1.CanFocus = true;
this.notebook1.Name = "notebook1";
- this.notebook1.CurrentPage = 0;
+ this.notebook1.CurrentPage = 1;
this.notebook1.TabPos = ((global::Gtk.PositionType)(3));
// Container child notebook1.Gtk.Notebook+NotebookChild
this.treewidget1 = new global::LongoMatch.Gui.Component.PlaysListTreeWidget ();
diff --git a/LongoMatch/gtk-gui/gui.stetic b/LongoMatch/gtk-gui/gui.stetic
index afbe107..3656023 100644
--- a/LongoMatch/gtk-gui/gui.stetic
+++ b/LongoMatch/gtk-gui/gui.stetic
@@ -5402,52 +5402,38 @@ Show-><b> S</b>
<property name="MemberName" />
<property name="Spacing">6</property>
<child>
- <widget class="Gtk.ScrolledWindow" id="scrolledwindow1">
+ <widget class="Gtk.Table" id="table1">
<property name="MemberName" />
- <property name="Visible">False</property>
- <property name="CanFocus">True</property>
- <property name="ShadowType">In</property>
+ <property name="NRows">3</property>
+ <property name="NColumns">3</property>
+ <property name="RowSpacing">6</property>
+ <property name="ColumnSpacing">6</property>
<child>
- <widget class="Gtk.Viewport" id="GtkViewport">
- <property name="MemberName" />
- <property name="ShadowType">None</property>
- <child>
- <widget class="Gtk.Table" id="table1">
- <property name="MemberName" />
- <property name="NRows">3</property>
- <property name="NColumns">3</property>
- <property name="RowSpacing">6</property>
- <property name="ColumnSpacing">6</property>
- <child>
- <placeholder />
- </child>
- <child>
- <placeholder />
- </child>
- <child>
- <placeholder />
- </child>
- <child>
- <placeholder />
- </child>
- <child>
- <placeholder />
- </child>
- <child>
- <placeholder />
- </child>
- <child>
- <placeholder />
- </child>
- <child>
- <placeholder />
- </child>
- <child>
- <placeholder />
- </child>
- </widget>
- </child>
- </widget>
+ <placeholder />
+ </child>
+ <child>
+ <placeholder />
+ </child>
+ <child>
+ <placeholder />
+ </child>
+ <child>
+ <placeholder />
+ </child>
+ <child>
+ <placeholder />
+ </child>
+ <child>
+ <placeholder />
+ </child>
+ <child>
+ <placeholder />
+ </child>
+ <child>
+ <placeholder />
+ </child>
+ <child>
+ <placeholder />
</child>
</widget>
<packing>
@@ -5458,7 +5444,7 @@ Show-><b> S</b>
</widget>
</child>
</widget>
- <widget class="Gtk.Dialog" id="LongoMatch.Gui.Dialog.TaggerDialog" design-size="426 267">
+ <widget class="Gtk.Dialog" id="LongoMatch.Gui.Dialog.TaggerDialog" design-size="620 267">
<property name="MemberName" />
<property name="Title" translatable="yes">Tag play</property>
<property name="Icon">stock:longomatch Menu</property>
@@ -5470,13 +5456,74 @@ Show-><b> S</b>
<property name="MemberName" />
<property name="BorderWidth">2</property>
<child>
- <widget class="LongoMatch.Gui.Component.TaggerWidget" id="taggerwidget1">
+ <widget class="Gtk.HBox" id="hbox1">
<property name="MemberName" />
- <property name="Events">ButtonPressMask</property>
+ <property name="Spacing">6</property>
+ <child>
+ <widget class="Gtk.Notebook" id="notebook1">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="CurrentPage">0</property>
+ <child>
+ <widget class="LongoMatch.Gui.Component.TaggerWidget" id="taggerwidget1">
+ <property name="MemberName" />
+ <property name="Events">ButtonPressMask</property>
+ </widget>
+ </child>
+ <child>
+ <widget class="Gtk.Label" id="label1">
+ <property name="MemberName" />
+ <property name="LabelProp" translatable="yes">page1</property>
+ </widget>
+ <packing>
+ <property name="type">tab</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="Position">0</property>
+ <property name="AutoSize">True</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.Notebook" id="notebook2">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="CurrentPage">0</property>
+ <child>
+ <widget class="Gtk.VBox" id="playersbox">
+ <property name="MemberName" />
+ <property name="Spacing">6</property>
+ <child>
+ <placeholder />
+ </child>
+ <child>
+ <placeholder />
+ </child>
+ <child>
+ <placeholder />
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="Gtk.Label" id="label2">
+ <property name="MemberName" />
+ <property name="LabelProp" translatable="yes">page1</property>
+ </widget>
+ <packing>
+ <property name="type">tab</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="Position">1</property>
+ <property name="AutoSize">True</property>
+ </packing>
+ </child>
</widget>
<packing>
<property name="Position">0</property>
- <property name="AutoSize">False</property>
+ <property name="AutoSize">True</property>
</packing>
</child>
</widget>
@@ -6264,66 +6311,87 @@ You can continue with the current capture, cancel it or save your project.
</widget>
</child>
</widget>
- <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.PlayersTaggerWidget" design-size="300 300">
+ <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.PlayersTaggerWidget" design-size="300 40">
<property name="MemberName" />
<property name="Visible">False</property>
<child>
- <widget class="Gtk.ScrolledWindow" id="scrolledwindow1">
+ <widget class="Gtk.Frame" id="frame1">
<property name="MemberName" />
- <property name="CanFocus">True</property>
- <property name="ShadowType">In</property>
+ <property name="ShadowType">Out</property>
<child>
- <widget class="Gtk.Viewport" id="GtkViewport">
+ <widget class="Gtk.Alignment" id="GtkAlignment">
<property name="MemberName" />
- <property name="ShadowType">None</property>
+ <property name="Xalign">0</property>
+ <property name="Yalign">0</property>
+ <property name="LeftPadding">12</property>
<child>
- <widget class="Gtk.Table" id="table1">
+ <widget class="Gtk.HBox" id="hbox1">
<property name="MemberName" />
- <property name="NRows">3</property>
- <property name="NColumns">3</property>
- <property name="RowSpacing">6</property>
- <property name="ColumnSpacing">6</property>
- <child>
- <placeholder />
- </child>
- <child>
- <placeholder />
- </child>
- <child>
- <placeholder />
- </child>
- <child>
- <placeholder />
- </child>
- <child>
- <placeholder />
- </child>
- <child>
- <placeholder />
- </child>
+ <property name="Spacing">6</property>
<child>
- <placeholder />
+ <widget class="Gtk.Label" id="label2">
+ <property name="MemberName" />
+ <property name="Xalign">0</property>
+ <property name="LabelProp" translatable="yes">Players:</property>
+ </widget>
+ <packing>
+ <property name="Position">0</property>
+ <property name="AutoSize">True</property>
+ <property name="Expand">False</property>
+ <property name="Fill">False</property>
+ </packing>
</child>
<child>
- <placeholder />
+ <widget class="Gtk.Label" id="playerslabel">
+ <property name="MemberName" />
+ <property name="Xalign">0</property>
+ <property name="LabelProp" translatable="yes">None</property>
+ </widget>
+ <packing>
+ <property name="Position">1</property>
+ <property name="AutoSize">False</property>
+ </packing>
</child>
<child>
- <placeholder />
+ <widget class="Gtk.Button" id="button5">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="UseStock">True</property>
+ <property name="Type">StockItem</property>
+ <property name="StockId">gtk-edit</property>
+ <property name="label">gtk-edit</property>
+ </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>
</child>
</widget>
</child>
+ <child>
+ <widget class="Gtk.Label" id="CategoryLabel">
+ <property name="MemberName" />
+ <property name="LabelProp" translatable="yes"><b>GtkFrame</b></property>
+ <property name="UseMarkup">True</property>
+ </widget>
+ <packing>
+ <property name="type">label_item</property>
+ </packing>
+ </child>
</widget>
</child>
</widget>
- <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.StringTaggerWidget" design-size="300 98">
+ <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.StringTaggerWidget" design-size="300 33">
<property name="MemberName" />
<property name="Visible">False</property>
<child>
<widget class="Gtk.Frame" id="frame">
<property name="MemberName" />
- <property name="ShadowType">None</property>
+ <property name="ShadowType">Out</property>
<child>
<widget class="Gtk.Alignment" id="GtkAlignment">
<property name="MemberName" />
@@ -6331,9 +6399,18 @@ You can continue with the current capture, cancel it or save your project.
<property name="Yalign">0</property>
<property name="LeftPadding">12</property>
<child>
- <widget class="Gtk.HButtonBox" id="buttonsbox">
+ <widget class="Gtk.HBox" id="buttonsbox">
<property name="MemberName" />
- <property name="Size">0</property>
+ <property name="Spacing">6</property>
+ <child>
+ <placeholder />
+ </child>
+ <child>
+ <placeholder />
+ </child>
+ <child>
+ <placeholder />
+ </child>
</widget>
</child>
</widget>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]