示例#1
0
 protected FDFile(FDFile other, FileType type)
 {
     file       = other.file;
     path       = other.path;
     size       = other.size;
     this.type  = type;
     progress   = -1;
     included   = other.included;
     sizeString = other.sizeString;
 }
示例#2
0
        private void AddFiles(string[] files)
        {
            for (int i = 0; i < files.Length; i++)
            {
                if (AddFolder(files[i]) == false)
                {
                    this.files.Add(FDFile.CreateFile(files[i]));
                }
            }

            if (this.files.Count > 0)
            {
                btnStart.IsEnabled    = true;
                cbType.IsEnabled      = true;
                ckbIncluded.IsEnabled = true;
            }
        }
示例#3
0
        private void cbType_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (cbType.SelectedIndex == -1)
            {
                return;
            }

            List <FDFile> selected = lvFiles.SelectedItems.Cast <FDFile>().ToList();

            List <int> indices = GetFileIndices(selected);

            FileType type = (FileType)cbType.SelectedIndex;

            lvFiles.SelectionChanged -= lvFiles_SelectionChanged;

            for (int i = 0; i < indices.Count; i++)
            {
                FDFile current = files[indices[i]];
                switch (type)
                {
                case FileType.Unknown:
                    current.type = (FileType)cbType.SelectedIndex;
                    break;

                case FileType.Image:
                    files[indices[i]] = new FDTextureFile(current);
                    break;
                }
            }

            for (int i = 0; i < indices.Count; i++)
            {
                lvFiles.SelectedItems.Add(files[indices[i]]);
            }

            lvFiles.SelectionChanged += lvFiles_SelectionChanged;

            SetOptionsGroupVisibility((FileType)cbType.SelectedIndex);
        }
示例#4
0
        private void UpdateIncludeAllCheckbox()
        {
            if (lvFiles.SelectedItems.Count == 0)
            {
                return;
            }

            FDFile tmp = (FDFile)lvFiles.SelectedItems[0];

            if (lvFiles.SelectedItems.Count == 1)
            {
                ckbIncluded.IsChecked = tmp.included;
                return;
            }

            bool isAllIncluded = true;

            for (int i = 1; i < lvFiles.SelectedItems.Count; i++)
            {
                FDFile file = (FDFile)lvFiles.SelectedItems[i];

                if (tmp.included != file.included && isAllIncluded)
                {
                    isAllIncluded = false;
                }
            }

            if (!isAllIncluded)
            {
                ckbIncluded.IsChecked = null;
            }
            else
            {
                ckbIncluded.IsChecked = tmp.included;
            }
        }
示例#5
0
        private void lvFiles_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (lvFiles.SelectedItems.Count == 0)
            {
                btnCancel.IsEnabled = false;
                btnRemove.IsEnabled = false;
            }
            else
            {
                foreach (FDFile f in lvFiles.SelectedItems)
                {
                    if (f.included == null)
                    {
                        btnCancel.IsEnabled = true;
                    }
                }

                btnRemove.IsEnabled = true;
            }

            FDFile tmp = (FDFile)lvFiles.SelectedItems[0];

            cbType.SelectionChanged          -= cbType_SelectionChanged;
            cbImageChannels.SelectionChanged -= cbImageChannels_SelectionChanged;
            cbImageSizes.SelectionChanged    -= cbImageSizes_SelectionChanged;

            cbType.SelectedIndex          = 0;
            cbImageChannels.SelectedIndex = 0;
            cbImageSizes.SelectedIndex    = 0;

            for (int i = 1; i < lvFiles.SelectedItems.Count; i++)
            {
                FDFile file = (FDFile)lvFiles.SelectedItems[i];
                if (tmp.type != file.type)
                {
                    cbType.SelectedIndex = -1;
                }

                if (imageOptionsGroup.IsVisible)
                {
                    if (((FDTextureFile)tmp).channel != ((FDTextureFile)file).channel)
                    {
                        cbImageChannels.SelectedIndex = -1;
                    }

                    if (((FDTextureFile)tmp).channelType != ((FDTextureFile)file).channelType)
                    {
                        cbImageSizes.SelectedIndex = -1;
                    }
                }
            }

            if (cbType.SelectedIndex == 0)
            {
                cbType.SelectedIndex = (int)tmp.type;
                SetOptionsGroupVisibility(tmp.type);
            }
            else
            {
                imageOptionsGroup.Visibility = Visibility.Hidden;
                modelOptionsGroup.Visibility = Visibility.Hidden;
            }

            if (imageOptionsGroup.IsVisible)
            {
                if (cbImageChannels.SelectedIndex == 0)
                {
                    cbImageChannels.SelectedIndex = (int)((FDTextureFile)tmp).channel;
                }

                if (cbImageSizes.SelectedIndex == 0)
                {
                    cbImageSizes.SelectedIndex = (int)((FDTextureFile)tmp).channelType;
                }
            }

            cbType.SelectionChanged          += cbType_SelectionChanged;
            cbImageChannels.SelectionChanged += cbImageChannels_SelectionChanged;
            cbImageSizes.SelectionChanged    += cbImageSizes_SelectionChanged;

            UpdateIncludeAllCheckbox();
        }
示例#6
0
 public FDTextureFile(FDFile file) : base(file, FileType.Image)
 {
     channel     = TextureChannel.RGBA;
     channelType = TextureChannelType.Uint8;
 }