/// <summary> /// /// </summary> public override void ThreadFunc() { // fill items foreach (FileInfo fi in infos) { if (cancel) { break; } OnStatusUpdate(fi.Name); TagListViewItem lvi = new TagListViewItem(lv, fi.FullName); if (lvi.IntializeItem()) { // add it to listview //BKP OLD SafeAdd(lvi); if (ItemFound != null) { ItemFound(lvi); } } } SafeResize(); OnFinished(); // HACK!! System.Threading.Thread.Sleep(0); }
/// ID3v1 edit /// </summary> /// <param name="item">the item</param> public override void EditItem(TagListViewItem item) { // call base first base.EditItem(item); if (item.MetaTag != null) { UpdatePictureFrames(item); } }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void listView_ItemDrag(object sender, ItemDragEventArgs e) { if (this.listView.SelectedItems.Count > 0) { TagListViewItem item = (TagListViewItem)this.listView.SelectedItems[0]; FileInfo fi = (FileInfo)item.Tag; DataObject data = new DataObject(DataFormats.FileDrop, new string[1] { fi.FullName }); DoDragDrop(data, DragDropEffects.Copy); } }
/// <summary> /// /// </summary> /// <param name="lvi"></param> public void SafeAdd(TagListViewItem lvi) { if (InvokeRequired) { this.BeginInvoke( new SafeAddDelegate(SafeAdd), lvi); return; } //ListView.BeginUpdate(); ListView.Items.Add(lvi); //ListView.EndUpdate(); }
/// <summary> /// edit a item /// </summary> /// <param name="item"></param> protected void EditItem(TagListViewItem item) { item.BackColor = Color.Yellow; main.EditItem(item); //details.EditItem( item ); //original.EditItem( item ); //people.EditItem( item ); //web.EditItem( item ); //rating.EditItem( item ); pictures.EditItem(item); item.RefreshItem(); }
/// <summary> /// ID3v1 edit /// </summary> /// <param name="item">the item</param> public override void EditItem(TagListViewItem item) { base.EditItem(item); if (item.MetaTag != null) { if (!multi_edit || ckArtist.Checked) { item.MetaTag.Performers = Functions.GetArray(this.txtArtists.Text); } if (!multi_edit || ckAlbum.Checked) { item.MetaTag.Album = this.txtAlbum.Text; } if (!multi_edit || ckTitle.Checked) { item.MetaTag.Title = this.txtTitle.Text; } uint num = 0; if (!multi_edit || ckYear.Checked) { item.MetaTag.Year = uint.TryParse(this.txtYear.Text, out num) ? num : 0; } if (!multi_edit || ckTrack.Checked) { item.MetaTag.Track = uint.TryParse(this.txtTrack.Text, out num) ? num : 0; item.MetaTag.TrackCount = uint.TryParse(this.txtTrackCount.Text, out num) ? num : 0; } if (!multi_edit || ckDisc.Checked) { item.MetaTag.Disc = uint.TryParse(this.txtDisc.Text, out num) ? num : 0; item.MetaTag.DiscCount = uint.TryParse(this.txtDiscCount.Text, out num) ? num : 0; } if (!multi_edit || ckBMP.Checked) { item.MetaTag.BeatsPerMinute = uint.TryParse(this.txtBPM.Text, out num) ? num : 0; } if (!multi_edit || ckGenre.Checked) { item.MetaTag.Genres = Functions.GetArray(txtGenres.Text); } if (!multi_edit || ckComment.Checked) { item.MetaTag.Comment = this.txtComment.Text; } // BKP //UpdateCommentFrames( item ); } }
/// <summary> /// Update the comment frame /// </summary> private void UpdatePictureFrames(TagListViewItem item) { //BKP use IPicture ? if (this.pictures_dirty) { TagLib.IPicture[] pics = new TagLib.IPicture[pictureList.Items.Count]; int len = pictureList.Items.Count; for (int i = 0; i < len; ++i) { TagLib.IPicture p = pictureList.Items[i].Tag as TagLib.IPicture; pics[i] = p; } item.MetaTag.Pictures = pics; } }
/// <summary> /// ID3v1 edit /// </summary> /// <param name="item">the item</param> public virtual void EditItem(TagListViewItem item) { dirty = true; item.Dirty = true; }
/// <summary> /// /// </summary> /// <param name="lvi"></param> void thread_ItemFound(TagListViewItem lvi) { SafeAdd(lvi); }
/// <summary> /// /// </summary> /// <param name="lv"></param> public EditTagFrm(ListView lv, bool multi_edit) { InitializeComponent(); this.lv = lv; this.multi_edit = multi_edit; if (multi_edit) { this.Text = "Edit Multi"; taskNext.Enabled = false; taskPrevious.Enabled = false; } else { TagListViewItem item = (TagListViewItem)lv.SelectedItems[0]; string file = item.FileInfo.Name; this.Text = String.Format("{0} {1}", "Edit Single: -->", file); } this.panel1.Controls.Add(main); main.Initialize(lv, multi_edit); main.Location = this.panel1.Location; main.Dock = DockStyle.Fill; main.Show(); //this.panel1.Controls.Add( details ); //details.Location = this.panel1.Location; //details.Dock = DockStyle.Fill; //details.Initialize( lv, multi_edit ); //details.Hide(); //this.panel1.Controls.Add( lyrics ); //lyrics.Location = this.panel1.Location; //lyrics.Dock = DockStyle.Fill; //lyrics.Initialize( lv, multi_edit ); //lyrics.Hide(); this.panel1.Controls.Add(pictures); pictures.Location = this.panel1.Location; pictures.Dock = DockStyle.Fill; pictures.Initialize(lv, multi_edit); pictures.Hide(); //this.panel1.Controls.Add( web ); //web.Location = this.panel1.Location; //web.Dock = DockStyle.Fill; //web.Initialize( lv, multi_edit ); //web.Hide(); //this.panel1.Controls.Add( original ); //original.Location = this.panel1.Location; //original.Dock = DockStyle.Fill; //original.Initialize( lv, multi_edit ); //original.Hide(); //this.panel1.Controls.Add( people ); //people.Location = this.panel1.Location; //people.Dock = DockStyle.Fill; //people.Initialize( lv, multi_edit ); //people.Hide(); //this.panel1.Controls.Add( user ); //user.Location = this.panel1.Location; //user.Dock = DockStyle.Fill; //user.Initialize( lv, multi_edit ); //user.Hide(); //this.panel1.Controls.Add( rating ); //rating.Location = this.panel1.Location; //rating.Dock = DockStyle.Fill; //rating.Initialize( lv, multi_edit ); //rating.Hide(); current = main; }