示例#1
0
        private void mnuAddChapterPages_Click(object sender, RoutedEventArgs e)
        {
            ListBoxAction <Core.MangaChapter>(lstFileChapters, (ch) =>
            {
                Microsoft.Win32.OpenFileDialog dlgOpenImages = new Microsoft.Win32.OpenFileDialog();
                dlgOpenImages.Filter          = "Supported Images|" + Core.FileImporter.BitmapSupportedImagesExtensions;
                dlgOpenImages.FileName        = "Open supported images";
                dlgOpenImages.CheckFileExists = true;
                dlgOpenImages.Multiselect     = true;
                dlgOpenImages.Title           = "Choose images to import:";

                if (dlgOpenImages.ShowDialog() == true)
                {
                    Core.FileImporter fileImporter = new Core.FileImporter();

                    float cutoff = float.Parse(txtPageMaxWidth.Text);
                    var numFix   = cbNumberFix.IsChecked ?? false;

                    Func <System.IO.FileSystemInfo, object> orderFunc = (si) => si.CreationTime;
                    if (rbByName.IsChecked ?? false)
                    {
                        orderFunc = (si) => numFix ? FileImporter.pad0AllNumbers(si.Name) : si.Name;
                    }


                    ch.autoPageNumbering = false;

                    List <FileImporterError> importErrors = new List <FileImporterError>();
                    winWorking.waitForTask(this, (updateFunc) =>
                    {
                        return(fileImporter.importImages(dlgOpenImages.FileNames, cutoff, orderFunc, importErrors, updateFunc));
                    },
                                           isProgressKnwon: true)
                    .ForEach(page => ch.Pages.Add(page));

                    ch.autoPageNumbering = true;
                    ch.updateChapterStats();


                    if (importErrors.Count > 0)
                    {
                        (new dlgImportErrors()
                        {
                            DataErrors = importErrors
                        }).ShowDialog();
                    }
                }
            });
        }
示例#2
0
        private void menuImprtFolders_Click(object sender, RoutedEventArgs e)
        {
            dlgSaveFile.Filter          = "Folder|_Choose.Here_";
            dlgSaveFile.FileName        = "_Choose.Here_";
            dlgSaveFile.CheckFileExists = false;
            dlgSaveFile.Multiselect     = false;
            dlgSaveFile.ValidateNames   = false;
            dlgSaveFile.Title           = "Choose folder to import from:";

            if (dlgSaveFile.ShowDialog() == true)
            {
                Core.FileImporter fileImporter = new Core.FileImporter();

                var   DirPath    = new System.IO.FileInfo(dlgSaveFile.FileName).Directory.FullName;
                var   subFolders = cbSubfolders.IsChecked ?? false;
                float cutoff     = float.Parse(txtPageMaxWidth.Text);
                var   rtl        = rbRTL.IsChecked ?? false;
                var   numFix     = cbNumberFix.IsChecked ?? false;

                Func <System.IO.FileSystemInfo, object> orderFunc = (si) => si.CreationTime;
                if (rbByName.IsChecked ?? false)
                {
                    orderFunc = (si) => numFix?FileImporter.pad0AllNumbers(si.Name) : si.Name;
                }

                List <FileImporterError> importErrors = new List <FileImporterError>();
                winWorking.waitForTask(this, (updateFunc) =>
                {
                    return(fileImporter.getChapters(DirPath, subFolders, cutoff, rtl, orderFunc, importErrors, updateFunc));
                },
                                       isProgressKnwon: false)
                .ForEach(ch => mangaChapters.Add(MangaChapter.Extend <SelectableMangaChapter>(ch)));

                if (importErrors.Count > 0)
                {
                    (new dlgImportErrors()
                    {
                        DataErrors = importErrors
                    }).ShowDialog();
                }
                else
                {
                    StartWhiteRatioScan();
                }
            }
        }