private void FillList()
        {
            listViewFields.Items.Clear();

            if (currentFields != null)
            {
                foreach (ColumnField field in currentFields)
                {
                    ListViewItem newItem;

                    if (fieldType == DataBaseEngine.FieldType.TrackAndCD)
                    {
                        newItem = listViewFields.Items.Add(dataBase.GetNameOfFieldFull(field.Field));
                    }
                    else
                    {
                        newItem = listViewFields.Items.Add(dataBase.GetNameOfField(field.Field));
                    }

                    newItem.SubItems.Add(field.Width.ToString());
                    newItem.Tag     = field;
                    newItem.Checked = true;
                }
            }

            foreach (Field field in FieldHelper.GetAllFields())
            {
                if (field != Field.None && currentFields.GetColumnField(field) == null && !FieldHelper.IsInternalField(field))
                {
                    ListViewItem newItem = null;
                    switch (fieldType)
                    {
                    case FieldType.CD:
                        if (FieldHelper.IsCDField(field))
                        {
                            newItem = listViewFields.Items.Add(dataBase.GetNameOfField(field));
                        }
                        break;

                    case FieldType.Track:
                        if (FieldHelper.IsTrackField(field))
                        {
                            newItem = listViewFields.Items.Add(dataBase.GetNameOfField(field));
                        }
                        break;

                    case FieldType.TrackMain:
                        if (FieldHelper.IsTrackField(field, true))
                        {
                            newItem = listViewFields.Items.Add(dataBase.GetNameOfField(field));
                        }
                        break;

                    default:
                        newItem = listViewFields.Items.Add(dataBase.GetNameOfFieldFull(field));
                        break;
                    }

                    if (newItem != null)
                    {
                        ColumnField cf = new ColumnField(field);
                        newItem.Tag = cf;
                        newItem.SubItems.Add(cf.Width.ToString());
                    }
                }
            }
        }