public void Remove(TorrentLabel label) { if (Labels.Remove(label)) { Event.Raise <LabelEventArgs> (Removed, this, new LabelEventArgs(label)); } }
private void BuildContextMenu() { contextMenu = new Menu(); createItem = new ImageMenuItem(_("Create")); createItem.Image = new Image(Stock.Add, IconSize.Menu); createItem.Activated += Event.Wrap((EventHandler) delegate(object o, EventArgs e) { Controller.Add(new TorrentLabel(_("New Label"))); }); contextMenu.Append(createItem); removeItem = new ImageMenuItem(_("Remove")); removeItem.Image = new Image(Stock.Remove, IconSize.Menu); contextMenu.Add(removeItem); removeItem.Activated += Event.Wrap((EventHandler) delegate(object o, EventArgs e) { TreeIter iter; if (!Selection.GetSelected(out iter)) { return; } TorrentLabel label = (TorrentLabel)Model.GetValue(iter, 0); if (label.Immutable) { return; } Controller.Remove(label); }); }
public LabelController() { All = new TorrentLabel (_("All"), "gtk-home", true); Delete = new TorrentLabel (_("Remove"), "gtk-remove", true); Downloading = new TorrentLabel (_("Downloading"), "gtk-go-down", true); Seeding = new TorrentLabel (_("Seeding"), "gtk-go-up", true); Selection = All; Labels = new List<TorrentLabel> { All, Downloading, Seeding }; HookEvents (); }
public LabelController() { All = new TorrentLabel(_("All"), "gtk-home", true); Delete = new TorrentLabel(_("Remove"), "gtk-remove", true); Downloading = new TorrentLabel(_("Downloading"), "gtk-go-down", true); Seeding = new TorrentLabel(_("Seeding"), "gtk-go-up", true); Selection = All; Labels = new List <TorrentLabel> { All, Downloading, Seeding }; HookEvents(); }
protected virtual void OnAddLabelButtonClicked(object sender, System.EventArgs e) { TorrentLabel label; if (selectedIcon != null) { label = new TorrentLabel(nameEntry.Text, selectedIcon); } else { label = new TorrentLabel(nameEntry.Text); } labelController.Add(label); }
void Remove(TorrentLabel label) { TreeIter iter; if (Model.GetIterFirst(out iter)) { do { if (Model.GetValue(iter, 0) != label) { continue; } label.Added -= LabelChanged; label.Removed -= LabelChanged; Model.Remove(ref iter); return; } while (Model.IterNext(ref iter)); } }
private void OnLabelSelectionChanged(object o, System.EventArgs args) { TreeIter iter; TreeModel model; if (((TreeSelection)o).GetSelected(out model, out iter)) { TorrentLabel label = (TorrentLabel)model.GetValue(iter, 0); if (label.Name == "All" || label.Name == "Downloading" || label.Name == "Seeding") { removeLabelButton.Sensitive = false; } else { removeLabelButton.Sensitive = true; } return; } removeLabelButton.Sensitive = false; }
private void buildColumns() { Model = new ListStore(typeof(TorrentLabel), typeof(Gdk.Pixbuf), typeof(string), typeof(string), typeof(bool)); iconColumn = new TreeViewColumn(); nameColumn = new TreeViewColumn(); sizeColumn = new TreeViewColumn(); Gtk.CellRendererPixbuf iconRendererCell = new Gtk.CellRendererPixbuf(); Gtk.CellRendererText nameRendererCell = new Gtk.CellRendererText { Editable = true }; Gtk.CellRendererText sizeRendererCell = new Gtk.CellRendererText(); iconColumn.PackStart(iconRendererCell, true); nameColumn.PackStart(nameRendererCell, true); sizeColumn.PackStart(sizeRendererCell, true); iconColumn.AddAttribute(iconRendererCell, "pixbuf", 1); nameColumn.AddAttribute(nameRendererCell, "text", 2); sizeColumn.AddAttribute(sizeRendererCell, "text", 3); nameColumn.AddAttribute(nameRendererCell, "editable", 4); AppendColumn(iconColumn); AppendColumn(nameColumn); AppendColumn(sizeColumn); nameRendererCell.Edited += Event.Wrap((EditedHandler) delegate(object o, Gtk.EditedArgs args) { Gtk.TreeIter iter; if (Model.GetIter(out iter, new Gtk.TreePath(args.Path))) { TorrentLabel label = (TorrentLabel)Model.GetValue(iter, 0); label.Name = args.NewText; } }); }
public TorrentTreeView() : base() { Torrents = new ListStore(typeof(Download), typeof(string), typeof(string), typeof(int), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string)); FilterModel = new Gtk.TreeModelFilter(Torrents, null); FilterModel.VisibleFunc = delegate(TreeModel model, TreeIter iter) { return(Filter == null ? true : Filter((Download)model.GetValue(iter, 0))); }; Model = FilterModel; this.torrentController = ServiceManager.Get <TorrentController> (); buildColumns(); Reorderable = true; HeadersVisible = true; HeadersClickable = true; Selection.Mode = SelectionMode.Multiple; Selection.Changed += Event.Wrap(delegate(object o, EventArgs e) { TreeIter iter; TreePath [] selectedTorrents = Selection.GetSelectedRows(); List <Download> downloads = new List <Download> (); foreach (TreePath path in Selection.GetSelectedRows()) { if (Torrents.GetIter(out iter, path)) { downloads.Add((Download)Torrents.GetValue(iter, 0)); } } torrentController.Select(downloads); }); sourceEntries = new TargetEntry [] { new TargetEntry(RowAtom.Name, TargetFlags.App, 0) }; targetEntries = new TargetEntry [] { new TargetEntry(RowAtom.Name, TargetFlags.Widget, 0), new TargetEntry(FileAtom.Name, TargetFlags.OtherApp, 0) }; EnableModelDragSource(Gdk.ModifierType.Button1Mask, sourceEntries, Gdk.DragAction.Copy); EnableModelDragDest(targetEntries, Gdk.DragAction.Copy); DragDataGet += OnTorrentDragDataGet; menu = new TorrentContextMenu(); torrentController.Added += delegate(object sender, DownloadAddedEventArgs e) { AddDownload(e.Download); }; torrentController.Removed += delegate(object sender, DownloadAddedEventArgs e) { RemoveDownload(e.Download); }; LabelController lc = ServiceManager.Get <LabelController> (); lc.SelectionChanged += delegate { TorrentLabel label = lc.Selection; Filter = delegate(Download download) { return(label.Torrents.Contains(download)); }; }; // FIXME: This shouldn't be necessary torrentController.Torrents.ForEach(AddDownload); }
public LabelEventArgs(TorrentLabel label) { Label = label; }
public void Remove(TorrentLabel label) { if (Labels.Remove (label)) Event.Raise <LabelEventArgs> (Removed, this, new LabelEventArgs (label)); }
public void Add(TorrentLabel label) { Labels.Add (label); Event.Raise <LabelEventArgs> (Added, this, new LabelEventArgs (label)); }
void Add(TorrentLabel label) { UpdateSize(Model.AppendValues(label, label.Icon, label.Name, "", !label.Immutable)); label.Added += LabelChanged; label.Removed += LabelChanged; }
void Remove(TorrentLabel label) { TreeIter iter; if (Model.GetIterFirst (out iter)) { do { if (Model.GetValue (iter, 0) != label) continue; label.Added -= LabelChanged; label.Removed -= LabelChanged; Model.Remove (ref iter); return; } while (Model.IterNext (ref iter)); } }
void Add(TorrentLabel label) { UpdateSize (Model.AppendValues (label, label.Icon, label.Name, "", !label.Immutable)); label.Added += LabelChanged; label.Removed += LabelChanged; }
void UpdateSize(TreeIter iter) { TorrentLabel label = (TorrentLabel)Model.GetValue(iter, 0); Model.SetValue(iter, 3, "(" + label.Size + ")"); }
public void Add(TorrentLabel label) { Labels.Add(label); Event.Raise <LabelEventArgs> (Added, this, new LabelEventArgs(label)); }