예제 #1
0
        /// <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);
        }
예제 #2
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);
            }
        }
예제 #3
0
 /// <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);
     }
 }
예제 #4
0
 /// <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();
 }
예제 #5
0
 /// <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();
 }
예제 #6
0
        /// <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 );
            }
        }
예제 #7
0
 /// <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;
     }
 }
예제 #8
0
 /// <summary>
 ///  ID3v1 edit
 /// </summary>
 /// <param name="item">the item</param>
 public virtual void EditItem(TagListViewItem item)
 {
     dirty      = true;
     item.Dirty = true;
 }
예제 #9
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="lvi"></param>
 void thread_ItemFound(TagListViewItem lvi)
 {
     SafeAdd(lvi);
 }
예제 #10
0
        /// <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;
        }