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 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; } }
private void MergedLineupGridView_CellValidating(object sender, DataGridViewCellValidatingEventArgs 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.Number: try { int num = int.Parse(e.FormattedValue.ToString()); if (ch.Number == num) { return; } ch.Number = num; ch.Update(); } catch { e.Cancel = true; } break; case MergedChannelGridColumn.SubNumber: try { string formatted_value = e.FormattedValue.ToString(); int num = (formatted_value.Length != 0) ? int.Parse(formatted_value) : 0; if (ch.SubNumber == num) { return; } ch.SubNumber = num; ch.Update(); } catch { e.Cancel = true; } break; case MergedChannelGridColumn.Type: try { ChannelType channel_type = (ChannelType)Enum.Parse(typeof(ChannelType), e.FormattedValue.ToString()); if (ch.ChannelType == channel_type) { return; } ch.ChannelType = channel_type; ch.Update(); } catch { e.Cancel = true; } break; case MergedChannelGridColumn.UserBlockedState: try { UserBlockedState user_blocked_state = (UserBlockedState)Enum.Parse(typeof(UserBlockedState), e.FormattedValue.ToString()); if (ch.UserBlockedState == user_blocked_state) { return; } ch.UserBlockedState = user_blocked_state; ch.Update(); } catch { e.Cancel = true; } break; case MergedChannelGridColumn.Visibility: try { ChannelVisibility visibility = (ChannelVisibility)Enum.Parse(typeof(ChannelVisibility), e.FormattedValue.ToString()); if (ch.Visibility == visibility) { return; } ch.Visibility = visibility; ch.Update(); } catch { e.Cancel = true; } break; } }
private void MergedLineupGridView_CellValueNeeded(object sender, DataGridViewCellValueEventArgs 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.Logo: try { e.Value = GetChannelLogo(ch); } catch { e.Value = new Bitmap(5, 5); } break; case MergedChannelGridColumn.Number: e.Value = ch.Number; break; case MergedChannelGridColumn.SubNumber: if (ch.SubNumber != 0) { e.Value = ch.SubNumber; } else { e.Value = null; } break; case MergedChannelGridColumn.Listing: e.Value = ch.Service; break; case MergedChannelGridColumn.ListingProvider: e.Value = ch.Service?.Provider?.Name; break; case MergedChannelGridColumn.Type: e.Value = ch.ChannelType.ToString(); break; case MergedChannelGridColumn.TunerCount: e.Value = ChannelEditing.GetTunerCount(ch); break; case MergedChannelGridColumn.Visibility: e.Value = ch.Visibility.ToString(); break; case MergedChannelGridColumn.UserBlockedState: e.Value = ch.UserBlockedState.ToString(); break; case MergedChannelGridColumn.SourceChannels: e.Value = SerializeSourceChannelList(ch); break; case MergedChannelGridColumn.Encrypted: e.Value = ch.IsEncrypted; break; case MergedChannelGridColumn.HD: e.Value = IsChannelHD(ch); break; case MergedChannelGridColumn.InBand: e.Value = !ch.IgnoreInbandSchedule; break; } }