コード例 #1
0
        public void updateInfo()
        {
            m_CurrentArtist = "";
            m_CurrentTitle  = "";
            tbLyrics.Text   = "";
            lbTitle.Text    = "";
            lbSource.Text   = "";
            lbLRCTest.Text  = "";

            tbLyrics.Enabled = false;

            // Selected a title
            if (treeView.SelectedNode != null && treeView.SelectedNode.Parent != null)
            {
                string artist = treeView.SelectedNode.Parent.Text;
                string title  = treeView.SelectedNode.Text;

                if (artist.Length != 0 && title.Length != 0)
                {
                    m_CurrentArtist = LyricUtil.CapatalizeString(artist);
                    m_CurrentTitle  = LyricUtil.CapatalizeString(title);

                    if (DatabaseUtil.IsTrackInLyricsDatabase(CurrentDB, m_CurrentArtist, m_CurrentTitle).Equals(DatabaseUtil.LYRIC_FOUND))
                    {
                        LyricsItem item       = CurrentDB[DatabaseUtil.CorrectKeyFormat(m_CurrentArtist, m_CurrentTitle)];
                        string     lyricsText = item.Lyrics;

                        lyricsText = LyricsEngine.LyricUtil.ReturnEnvironmentNewLine(lyricsText);

                        m_OriginalLyric  = lyricsText;
                        tbLyrics.Text    = m_OriginalLyric;
                        tbLyrics.Enabled = true;

                        lbTitle.Text  = "\"" + m_CurrentArtist + " - " + m_CurrentTitle + "\"";
                        lbSource.Text = "(" + item.Source + ")";
                    }
                }
            }
            // Selected an artist
            else if (treeView.SelectedNode != null)
            {
                string artist = treeView.SelectedNode.Text;
                m_CurrentArtist = LyricUtil.CapatalizeString(artist);
            }
        }
コード例 #2
0
        /// <summary>
        /// AddSong adds a lyric to the treeView and not to the lyric database
        /// </summary>
        /// <param name="lyricsItem">lyrics item</param>
        private void AddSong(LyricsItem lyricsItem)
        {
            var artist = LyricUtil.CapatalizeString(lyricsItem.Artist);
            var title  = LyricUtil.CapatalizeString(lyricsItem.Title);

            // add artist, if it doesn't exists
            if (!treeView.Nodes.ContainsKey(artist))
            {
                treeView.Nodes.Add(artist, artist);
                ++_mNoOfArtists;
            }

            // add title, if it doesn't exists
            var artistIndex = treeView.Nodes.IndexOfKey(artist);

            if (artistIndex >= 0 && !treeView.Nodes[artistIndex].Nodes.ContainsKey(title))
            {
                treeView.Nodes[artistIndex].Nodes.Add(title, title);
                treeView.Nodes[artistIndex].Nodes[treeView.Nodes[artistIndex].Nodes.Count - 1].Tag = lyricsItem;
                ++_mNoOfTitles;
            }
        }
コード例 #3
0
        private void btSwitch_Click(object sender, EventArgs e)
        {
            string temp   = "";
            string artist = "";
            string title  = "";

            if (treeView.SelectedNode != null)
            {
                temp = treeView.SelectedNode.Text;

                if (treeView.SelectedNode.Parent != null)
                {
                    artist = treeView.SelectedNode.Parent.Text;
                    title  = temp;
                }
                else
                {
                    artist = temp;
                }
            }

            if (artist.Length == 0 && title.Length == 0)
            {
                MessageBox.Show("No artist or track selected");
            }
            else if (title.Length == 0)
            {
                TreeNode artistNode = treeView.SelectedNode;

                LyricsDatabase otherDatabase = null;
                if (CurrentDB.Equals(MyLyricsSettings.LyricsDB))
                {
                    otherDatabase = MyLyricsSettings.LyricsMarkedDB;
                }
                else
                {
                    otherDatabase = MyLyricsSettings.LyricsDB;
                }

                foreach (TreeNode node in artistNode.Nodes)
                {
                    string     key  = DatabaseUtil.CorrectKeyFormat(artist, node.Text);
                    LyricsItem item = CurrentDB[key];
                    CurrentDB.Remove(key);

                    if (!DatabaseUtil.IsTrackInLyricsDatabase(otherDatabase, artist, item.Title).Equals(DatabaseUtil.LYRIC_NOT_FOUND))
                    {
                        otherDatabase.Add(key, item);
                    }
                    else
                    {
                        otherDatabase[key] = item;
                    }
                }
                updateLyricsTree();
                DatabaseUtil.SerializeDBs();
            }
            else
            {
                string     key  = DatabaseUtil.CorrectKeyFormat(artist, title);
                LyricsItem item = CurrentDB[key];

                // remove song from treeview and current database
                RemoveSong(artist, title);

                // add song to other database and serialize it
                if (CurrentDB.Equals(MyLyricsSettings.LyricsDB))
                {
                    MyLyricsSettings.LyricsMarkedDB.Add(key, item);
                    DatabaseUtil.SerializeDB(MyLyricsSettings.LyricsMarkedDB);
                }
                else
                {
                    MyLyricsSettings.LyricsDB.Add(key, item);
                    DatabaseUtil.SerializeDB(MyLyricsSettings.LyricsDB);
                }
                updateLyricDatabaseStats();
            }

            treeView.Focus();
        }