예제 #1
0
        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();
        }
예제 #2
0
        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;
            }
        }
예제 #3
0
        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;
            }
        }
예제 #4
0
        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;
            }
        }