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; }
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(); }
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); }
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; }
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); } }
/// <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; } } }
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); } }
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); } } } }