private void SelectMergedChannel(MergedChannel merged_channel) { int merged_channel_index = -1; for (int index = 0; index < merged_channels_.Count; ++index) { if (merged_channels_[index].StoredObjectGuid == merged_channel.StoredObjectGuid) { merged_channel_index = index; break; } } if (merged_channel_index >= 0) { MergedLineupGridView.ClearSelection(); MergedLineupGridView.CurrentCell = MergedLineupGridView.Rows[merged_channel_index].Cells[0]; foreach (DataGridViewCell cell in MergedLineupGridView.Rows[merged_channel_index].Cells) { cell.Selected = true; } if (MergedLineupGridView.FirstDisplayedScrollingRowIndex > merged_channel_index) { MergedLineupGridView.FirstDisplayedScrollingRowIndex = merged_channel_index; } else { if (MergedLineupGridView.DisplayedRowCount(false) + MergedLineupGridView.FirstDisplayedScrollingRowIndex <= merged_channel_index) { MergedLineupGridView.FirstDisplayedScrollingRowIndex = merged_channel_index - MergedLineupGridView.DisplayedRowCount(false) + 1; } } } }
private void MergedLineupGridView_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) { Comparison <MergedChannel> old_sort = current_sort_; Comparison <MergedChannel> new_sort = null; MergedChannelGridColumn column = MergedChannelColumnToEnum(e.ColumnIndex); switch (column) { case MergedChannelGridColumn.Number: case MergedChannelGridColumn.SubNumber: new_sort = CompareChannelNumbers; break; case MergedChannelGridColumn.Listing: new_sort = CompareListing; break; case MergedChannelGridColumn.Type: new_sort = CompareChannelType; break; case MergedChannelGridColumn.TunerCount: new_sort = CompareTunerCount; break; case MergedChannelGridColumn.Visibility: new_sort = CompareVisibility; break; case MergedChannelGridColumn.UserBlockedState: new_sort = CompareUserBlockedState; break; case MergedChannelGridColumn.Encrypted: new_sort = CompareEncrypted; break; case MergedChannelGridColumn.HD: new_sort = CompareHD; break; case MergedChannelGridColumn.InBand: new_sort = CompareInBand; break; } if (new_sort == null) { return; } reverse_sort_ = (new_sort == old_sort) && !reverse_sort_; current_sort_ = new_sort; SortChannels(); MergedLineupGridView.Invalidate(); }
private void SelectAndLoadLineup(MergedLineup lineup) { merged_lineup_ = lineup; Channel[] channels = merged_lineup_.GetChannels(); int channel_count = channels.Length; merged_channels_ = new List <MergedChannel>(); foreach (Channel ch in channels.Distinct()) { merged_channels_.Add((MergedChannel)ch); } SortChannels(); MergedLineupGridView.RowCount = merged_channels_.Count; MergedLineupGridView.Invalidate(); }
private void MergedLineupGridView_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex < 0 || e.RowIndex >= merged_channels_.Count) { return; } MergedChannel ch = merged_channels_[e.RowIndex]; MergedChannelGridColumn column = MergedChannelColumnToEnum(e.ColumnIndex); switch (column) { case MergedChannelGridColumn.Listing: new ListingSelectionForm(ch).ShowDialog(); MergedLineupGridView.InvalidateCell(e.ColumnIndex, e.RowIndex); break; case MergedChannelGridColumn.SourceChannels: new SourceChannelManagementForm(ch).ShowDialog(); MergedLineupGridView.InvalidateRow(e.RowIndex); break; case MergedChannelGridColumn.HD: if (ch.Service != null) { ch.Service.IsHDCapable = !ch.Service.IsHDCapable; ch.Service.Update(); MergedLineupGridView.InvalidateColumn(e.ColumnIndex); } break; case MergedChannelGridColumn.InBand: ch.IgnoreInbandSchedule = !ch.IgnoreInbandSchedule; ch.Update(); MergedLineupGridView.InvalidateCell(e.ColumnIndex, e.RowIndex); break; } }