private void FillData()
        {
            int sel = -1;

            if (lvConnFiles.SelectedIndices.Count > 0)
            {
                sel = lvConnFiles.SelectedIndices[0];
            }

            lvConnFiles.Items.Clear();
            foreach (KeyValuePair<string, string> kvp in _tableConnFiles)
            {
                string[] data = new string[] { string.Empty, kvp.Key.ToUpperInvariant(), kvp.Value.ToUpperInvariant() };

                int i = 0;

                ListViewItem item = new ListViewItem(data[i++]);

                OPMListViewSubItem subItem = new OPMListViewSubItem(_txtEditPFT, item, data[i++]);
                subItem.ReadOnly = false;
                item.SubItems.Add(subItem);

                subItem = new OPMListViewSubItem(_txtEditCFT, item, data[i++]);
                subItem.ReadOnly = false;
                item.SubItems.Add(subItem);

                lvConnFiles.Items.Add(item);
            }

            lvConnFiles.Select();
            lvConnFiles.Focus();

            if (sel > 0 && sel < lvConnFiles.Items.Count)
            {
                lvConnFiles.Items[sel].Selected = true;
            }
        }
        private void BuildListFromSubtitleDownloadURIs()
        {
            lvDownloadAddresses.Items.Clear();

            string[] subtitleDownloadURIs = StringUtils.ToStringArray(_subtitleDownloadURIs, '\\');
            if (subtitleDownloadURIs != null)
            {
                foreach (string url in subtitleDownloadURIs)
                {
                    string[] fields = StringUtils.ToStringArray(url, ';');
                    List<String> lFields = new List<string>(fields);

                    lFields.Insert(0, string.Empty);
                    while (lFields.Count < lvDownloadAddresses.Columns.Count)
                    {
                        lFields.Add(string.Empty);
                    }
                    while (lFields.Count > lvDownloadAddresses.Columns.Count)
                    {
                        lFields.RemoveAt(lFields.Count - 1);
                    }

                    if (lFields[colActive.Index] == "1")
                        lFields[colActive.Index] = Translator.Translate("TXT_YES");
                    else
                        lFields[colActive.Index] = Translator.Translate("TXT_NO");

                    ListViewItem item = new ListViewItem(lFields[0]);

                    bool isDefaultServer = ProTONEConfig.DefaultSubtitleURIs.ToUpperInvariant().Contains(
                        lFields[colServerUrl.Index].ToUpperInvariant());

                    for(int i = 1; i < lFields.Count; i++)
                    {
                        OPMListViewSubItem subItem = null;
                        string text = lFields[i];

                        if (i == colServerType.Index)
                        {
                            subItem = new OPMListViewSubItem(_cmbEditServerType, item, text);
                            subItem.ReadOnly = isDefaultServer;
                        }
                        else if (i == colServerUrl.Index)
                        {
                            subItem = new OPMListViewSubItem(_txtEditServer, item, text);
                            subItem.ReadOnly = isDefaultServer;
                        }
                        else if (i == colActive.Index)
                        {
                            subItem = new OPMListViewSubItem(_cmbEditActive, item, text);
                            subItem.ReadOnly = false;
                        }
                        else if (i == colUserName.Index)
                        {
                            subItem = new OPMListViewSubItem(_txtEditUser, item, text);
                            subItem.ReadOnly = false;
                        }
                        else if (i == colPassword.Index)
                        {
                            subItem = new OPMListViewSubItem(_txtEditPswd, item, text);
                            subItem.ReadOnly = false;
                        }

                        item.SubItems.Add(subItem);
                    }
                    
                    lvDownloadAddresses.Items.Add(item);
                }
            }
        }
        private void OnAdd(object sender, EventArgs e)
        {
            string[] data = new string[] 
            { string.Empty, "Osdb", "[ URL ]", Translator.Translate("TXT_NO"), string.Empty, string.Empty };

            lvDownloadAddresses.EndEditing(false);

            int i = 0;

            ListViewItem item = new ListViewItem(data[i++]);
            
            OPMListViewSubItem subItem = new OPMListViewSubItem(_cmbEditServerType, item, data[i++]);
            subItem.ReadOnly = false;
            item.SubItems.Add(subItem);

            subItem = new OPMListViewSubItem(_txtEditServer, item, data[i++]);
            subItem.ReadOnly = false;
            item.SubItems.Add(subItem);

            subItem = new OPMListViewSubItem(_cmbEditActive, item, data[i++]);
            subItem.ReadOnly = false;
            item.SubItems.Add(subItem);

            subItem = new OPMListViewSubItem(_txtEditServer, item, data[i++]);
            subItem.ReadOnly = false;
            item.SubItems.Add(subItem);

            subItem = new OPMListViewSubItem(_txtEditUser, item, data[i++]);
            subItem.ReadOnly = false;
            item.SubItems.Add(subItem);

            lvDownloadAddresses.Items.Add(item);

            item.Selected = true;

            BuildSubtitleDownloadURIsFromList();
            Modified = true;
        }
示例#4
0
        private void OnDriveSelected(object sender, EventArgs e)
        {
            Wizard.CanMoveNext = false;
            lvTracks.Items.Clear();

            DriveInfoItem item = cmbAudioCDDrives.SelectedItem as DriveInfoItem;
            if (item != null)
            {
                string rootPath = System.IO.Path.GetPathRoot(item.Path);
                if (!string.IsNullOrEmpty(rootPath))
                {
                    CDEntry cdEntry = null;
                    char letter = rootPath.ToUpperInvariant()[0];
                    using (CDDrive cd = new CDDrive())
                    {
                        if (cd.Open(letter) && cd.Refresh())
                        {
                            // Check whether the disc is already added to our persistent storage
                            string discId = cd.GetCDDBDiskID();
                            cdEntry = CDEntry.LoadPersistentDisc(discId);

                            if (cdEntry == null)
                            {
                                switch (ProTONEConfig.AudioCdInfoSource)
                                {
                                    case CddaInfoSource.CdText:
                                        cdEntry = CDAFileInfo.BuildCdEntryByCdText(cd, cd.GetCDDBDiskID());
                                        break;

                                    case CddaInfoSource.Cddb:
                                        cdEntry = CDAFileInfo.BuildCdEntryByCddb(cd, cd.GetCDDBDiskID());
                                        break;

                                    case CddaInfoSource.CdText_Cddb:
                                        {
                                            cdEntry = CDAFileInfo.BuildCdEntryByCdText(cd, cd.GetCDDBDiskID());
                                            CDEntry cde = CDAFileInfo.BuildCdEntryByCddb(cd, cd.GetCDDBDiskID());
                                            cdEntry = CDAFileInfo.Merge(cdEntry, cde);
                                        }
                                        break;

                                    case CddaInfoSource.Cddb_CdText:
                                        {
                                            cdEntry = CDAFileInfo.BuildCdEntryByCddb(cd, cd.GetCDDBDiskID());
                                            CDEntry cde = CDAFileInfo.BuildCdEntryByCdText(cd, cd.GetCDDBDiskID());
                                            cdEntry = CDAFileInfo.Merge(cdEntry, cde);
                                        }
                                        break;

                                    default:
                                        break;
                                }

                                if (cdEntry != null)
                                {
                                   // Cache the disk to persistent storage for retrieving it faster later on
                                   cdEntry.PersistDisc();
                               }
                           }
                        }

                        if (cdEntry != null)
                        {
                            for (int i = 1; i <= cdEntry.NumberOfTracks; i++)
                            {
                                double size = cd.TrackSize(i);
                                int duration = cd.GetSeconds(i);
    
                                ListViewItem lvItem = new ListViewItem(i.ToString());
    
                                lvItem.SubItems.Add(TimeSpan.FromSeconds(duration).ToString());
                                lvItem.SubItems.Add(((size / (1024 * 1024)).ToString("F")) + " MB");
    
                                OPMListViewSubItem subItem = new OPMListViewSubItem(tbEditAlbum, lvItem,
                                    cdEntry.Tracks[i - 1].Album ?? string.Empty);
                                subItem.ReadOnly = false;
                                lvItem.SubItems.Add(subItem);
    
                                subItem = new OPMListViewSubItem(tbEditArtist, lvItem,
                                    cdEntry.Tracks[i - 1].Artist ?? string.Empty);
                                subItem.ReadOnly = false;
                                lvItem.SubItems.Add(subItem);
    
                                subItem = new OPMListViewSubItem(tbEditTitle, lvItem,
                                    cdEntry.Tracks[i - 1].Title ?? string.Empty);
                                subItem.ReadOnly = false;
                                lvItem.SubItems.Add(subItem);
    
                                subItem = new OPMListViewSubItem(cmbEditgenre, lvItem,
                                    cdEntry.Tracks[i - 1].Genre ?? string.Empty);
                                subItem.ReadOnly = false;
                                lvItem.SubItems.Add(subItem);
    
                                if (Wizard.RepeatCount == 0)
                                {
                                    lvItem.ImageIndex = 1;
                                }
                                else
                                {
                                    //lvItem.ImageIndex = ((BkgTask as Task).Tracks.Contains(i)) ? 1 : 0;
                                }
    
                                lvItem.Tag = cdEntry.Tracks[i - 1];
    
                                lvTracks.Items.Add(lvItem);
                            }
                        }
                    }
                }
            }

            CheckNextButton();
        }
示例#5
0
        private void btnAddCurrent_Click(object sender, EventArgs e)
        {
            MediaRenderer.DefaultInstance.PauseRenderer();

            string[] subItems = new string[]
            {
                string.Empty,
                CalculateNewBookmarkTime((int)MediaRenderer.DefaultInstance.MediaPosition),
                Translator.Translate("TXT_NEW_BOOKMARK")
            };

            int i = 0;
            ListViewItem item = new ListViewItem(subItems[i++]);
            item.ImageIndex = 0;
            //item.Tag = bmk;

            OPMListViewSubItem si = new OPMListViewSubItem(_dtpEditTime, item, subItems[i++]);
            si.ReadOnly = false;
            item.SubItems.Add(si);

            si = new OPMListViewSubItem(_txtEditComment, item, subItems[i++]);
            si.ReadOnly = false;
            item.SubItems.Add(si);

            item = lvBookmarks.Items.Add(item);

            SaveBookmarks(true);

            item.Selected = true;

            lvBookmarks.StartEditing(item, si);
        }
示例#6
0
        private void LoadBookmarks()
        {
            this.SuspendLayoutEx();

            pnlBookmarkEdit.Visible = false;
            lblNoInfo.Visible = true;

            try
            {
                lvBookmarks.Items.Clear();
                lblItem.Text = string.Empty;

                if (_plItem == null)
                    return;

                try
                {
                    lblItem.Text = _plItem.MediaFileInfo.Path;

                    if (_plItem.SupportsBookmarkInfo &&
                        _plItem.MediaFileInfo.Bookmarks != null)
                    {
                        pnlBookmarkEdit.Visible = true;
                        lblNoInfo.Visible = false;

                        pbAdd.Visible = pbDelete.Visible = _plItem.IsBookmarkInfoEditable;
                        lvBookmarks.AllowEditing = _plItem.IsBookmarkInfoEditable;

                        List<Bookmark> bmkList =
                            new List<Bookmark>(_plItem.MediaFileInfo.Bookmarks.Values);

                        bmkList.Sort(Bookmark.CompareByTime);

                        foreach (Bookmark bmk in bmkList)
                        {
                            string[] subItems = new string[]
                            {
                                string.Empty,
                                bmk.PlaybackTime.ToString(),
                                bmk.Title
                            };

                            int i = 0;
                            ListViewItem item = new ListViewItem(subItems[i++]);
                            item.Tag = bmk;
                            item.ImageIndex = 0;

                            OPMListViewSubItem si = new OPMListViewSubItem(_dtpEditTime, item, subItems[i++]);
                            si.ReadOnly = false;
                            item.SubItems.Add(si);

                            si = new OPMListViewSubItem(_txtEditComment, item, subItems[i++]);
                            si.ReadOnly = false;
                            item.SubItems.Add(si);

                            lvBookmarks.Items.Add(item);
                        }

                        if (lvBookmarks.Items.Count > 0)
                        {
                            lvBookmarks.Select();
                            lvBookmarks.Focus();
                            lvBookmarks.Items[0].Selected = true;
                        }
                    }
                    else
                    {
                        pbAdd.Visible = pbDelete.Visible = pbAddCurrent.Visible = false;
                        lvBookmarks.Enabled = false;
                        lvBookmarks.AllowEditing = false;
                    }
                }
                catch (Exception ex)
                {
                    pbAdd.Visible = pbDelete.Visible = pbAddCurrent.Visible = false;
                    lvBookmarks.Enabled = false;
                    lvBookmarks.AllowEditing = false;

                    ErrorDispatcher.DispatchError(ex);
                }
            }
            finally
            {
                this.ResumeLayoutEx();
            }
        }
        private void btnAdd_Click(object sender, EventArgs e)
        {
            string[] data = new string[] { string.Empty, Translator.Translate("TXT_PARENTFILETYPES"), Translator.Translate("TXT_CHILDFILETYPES") };

            lvConnFiles.EndEditing(false);

            int i = 0;

            ListViewItem item = new ListViewItem(data[i++]);

            OPMListViewSubItem subItem = new OPMListViewSubItem(_txtEditPFT, item, data[i++]);
            subItem.ReadOnly = false;
            item.SubItems.Add(subItem);

            subItem = new OPMListViewSubItem(_txtEditCFT, item, data[i++]);
            subItem.ReadOnly = false;
            item.SubItems.Add(subItem);

            lvConnFiles.Items.Add(item);

            item.Selected = true;

            RebuildDataTable();
            Modified = true;
        }
示例#8
0
        private void LoadPictures()
        {
            lblItem.Text = _id3ArtworkInfo.FileName;

            lvPictures.Items.Clear();

            foreach(PictureInfo pi in _id3ArtworkInfo.ArtworkImages)
            {
                ListViewItem lvi = new ListViewItem();

                OPMListViewSubItem subItem = new OPMListViewSubItem(_cmbImageType, lvi, pi.PictureType.ToString());
                subItem.ReadOnly = false;
                lvi.SubItems.Add(subItem);

                subItem = new OPMListViewSubItem(_txtDescription, lvi, pi.Description);
                subItem.ReadOnly = false;
                lvi.SubItems.Add(subItem);

                lvi.SubItems[colImage.Index].Tag = new ExtendedSubItemDetail(pi.Picture, "");

                lvi.Tag = pi;

                lvPictures.Items.Add(lvi);
            }
        }
示例#9
0
        /// <summary>
        /// Displays the in-place edit control for a given list view subitem.
        /// It is assumed that the in-place edit control was previously created
        /// and assigned to the proper column, by means of the SetEditControl
        /// method.
        /// </summary>
		/// <param name="editedItem">The item to be edited.</param>
		/// <param name="editedSubItem">The subitem to be edited.</param>
        public void StartEditing(ListViewItem editedItem, OPMListViewSubItem editedSubItem)
        {
            if (_allowEdit == false)
                return;

            row = editedItem.Index;
            column = editedItem.SubItems.IndexOf(editedSubItem);

            if (row < 0 || column < 0 || editedSubItem == null)
                return;

            // Check if event handler available and if positive, raise the event

            Control editControl = null;
			
			// Override the editable control in the custom subitem, if such an item is used.
			OPMListViewSubItem customSubItem = editedSubItem as OPMListViewSubItem;
			if (customSubItem != null)
			{
				if (customSubItem.ReadOnly)
				{
					// non-editable item
					return;
				}
				else
				{
					// override the edit control
					editControl = customSubItem.EditControl;
				}
			}

            if (editControl == null)
                return;

			ListViewSubItemEventArgs args =
				new ListViewSubItemEventArgs(editControl, editedItem, 
				editedSubItem, column);
			if (SubItemEditing != null && editControl != null)
			{
				SubItemEditing(this, args);
			}

            if (!(editControl is LinkLabel))
            {
                // For link labels, we only raise the SubItemEditing event

                // Check if the event was handled - thus the in-place edit controls
                // displayed.
                if (!args.Handled)
                {
                    // Display edit control and also set text.
                    DisplayEditControl(false, editControl, editedSubItem);
                }

                ThemeForm frm = FindForm() as ThemeForm;
                if (frm != null)
                {
                    frm.SuppressKeyPress = true;
                    _restoreKeyPreview = true;
                }
            }
        }
示例#10
0
        public void DisplayKeys()
        {
            try
            {
                User32.LockWindowUpdate(this.Handle);

                this.SuspendLayout();

                lvShortcuts.Items.Clear();

                List<OPMShortcut> shortcuts = new List<OPMShortcut>();
                for (OPMShortcut cmd = ShortcutMapper.CmdFirst; cmd < ShortcutMapper.CmdLast; cmd++)
                {
                    shortcuts.Add(cmd);
                }

                shortcuts.Sort(ShortcutsSorter);

                StringBuilder sb = new StringBuilder();

                foreach(OPMShortcut cmd in shortcuts)
                {
                    if (ShortcutMapper.IsHiddenShortcut(cmd))
                        continue;

                    string cmdName = cmd.ToString();
                    string desc = Translator.Translate("TXT_" + cmdName.ToUpperInvariant());
                    KeysConverter kc = new KeysConverter();
                    string key = kc.ConvertToInvariantString(ShortcutMapper.KeyCommands[(int)cmd].KeyData);
                    string altKey = kc.ConvertToInvariantString(ShortcutMapper.AltKeyCommands[(int)cmd].KeyData);

                    ListViewItem item = new ListViewItem(cmdName.Replace("Cmd", string.Empty));

                    OPMListViewSubItem subItemDesc = new OPMListViewSubItem(item, desc);
                    OPMListViewSubItem subItemKey = null;
                    OPMListViewSubItem subItemAltKey = null;

                    if (ShortcutMapper.IsConfigurableShortcut(cmd))
                    {
                        subItemKey = new OPMListViewSubItem(_llEditKeys, item, key);
                        subItemAltKey = new OPMListViewSubItem(_llEditKeys, item, altKey);
                    }
                    else
                    {
                        subItemKey = new OPMListViewSubItem(item, key);
                        subItemAltKey = new OPMListViewSubItem(item, altKey);
                    }

                    item.SubItems.Add(subItemDesc);
                    item.SubItems.Add(subItemKey);
                    item.SubItems.Add(subItemAltKey);


                    item.Tag = cmd;
                    lvShortcuts.Items.Add(item);

                    sb.AppendLine("<tr>");

                    sb.AppendLine("<td>");
                    sb.AppendLine(item.Text);
                    sb.AppendLine("</td>");

                    sb.AppendLine("<td>");
                    sb.AppendLine(subItemDesc.Text);
                    sb.AppendLine("</td>");

                    sb.AppendLine("<td>");
                    sb.AppendLine(subItemKey.Text);
                    sb.AppendLine("</td>");

                    sb.AppendLine("<td>");
                    sb.AppendLine(subItemAltKey.Text);
                    sb.AppendLine("</td>");

                    sb.AppendLine("<td>");
                    sb.AppendLine("Yes");
                    sb.AppendLine("</td>");

                    sb.AppendLine("</tr>");
                }

                this.ResumeLayout();
            }
            finally
            {
                User32.LockWindowUpdate(IntPtr.Zero);
            }
        }
示例#11
0
        private void DisplaySubtitle()
        {
            this.Items.Clear();

            if (_subtitle != null)
            {
                List<SubtitleElement> elements = _subtitle.Elements;

                if (elements != null && elements.Count > 0)
                {
                    int index = 0;

                    foreach (SubtitleElement se in elements)
                    {
                        index++;

                        ListViewItem item = new ListViewItem(index.ToString());
                        item.Tag = se;

                        OPMListViewSubItem si = new OPMListViewSubItem(item, se.StartTime.ToString(Subtitle.TimeDisplayFormat));
                        //si.ReadOnly = false;
                        item.SubItems.Add(si);

                        si = new OPMListViewSubItem(item, se.StartFrames.ToString());
                        //si.ReadOnly = false;
                        item.SubItems.Add(si);

                        si = new OPMListViewSubItem(item, se.EndTime.ToString(Subtitle.TimeDisplayFormat));
                        //si.ReadOnly = false;
                        item.SubItems.Add(si);

                        si = new OPMListViewSubItem(item, se.EndFrames.ToString());
                        //si.ReadOnly = false;
                        item.SubItems.Add(si);

                        si = new OPMListViewSubItem(item, se.ContentsForNavigationPanel);
                        //si.ReadOnly = false;
                        item.SubItems.Add(si);

                        this.Items.Add(item);
                    }
                }
            }
        }