Exemple #1
0
        public SortForm(SortProject project, MainForm mainForm, bool randomSort)
        {
            InitializeComponent();
            _randomSort = randomSort;
            _mainForm   = mainForm;
            _project    = project;

            // vlc control used for webms
            _vlcControl = new VlcControl();
            _vlcControl.VlcMediaplayerOptions  = new string[] { "--loop" };
            _vlcControl.VlcLibDirectoryNeeded += VlcLibDirectoryNeeded;
            _vlcControl.EndReached            += EndReached;
            _vlcControl.Dock            = DockStyle.Fill;
            _vlcControl.BackColor       = SystemColors.Control;
            _vlcControl.VlcLibDirectory = new DirectoryInfo(".");
            _vlcControl.EndInit();
            _vlcControl.Visible = false;

            // picture box used for everything else - the vlc control can show images, but it's a lot slower than the picture box
            // we disable both and choose which one to display based on the filetype of the current image
            _pictureBox          = new PictureBox();
            _pictureBox.Dock     = DockStyle.Fill;
            _pictureBox.Visible  = false;
            _pictureBox.SizeMode = PictureBoxSizeMode.Zoom;

            splitter.Panel1.Controls.Add(_vlcControl);
            splitter.Panel1.Controls.Add(_pictureBox);

            // load the first image
            LoadImage(FindNextImage());
        }
        /// <summary>
        /// Save the history - image history is saved in a seperate file, to make appending to both formats easier.
        /// </summary>
        private static void SaveHistory(SortProject project)
        {
            var appDataFolder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

            CreateDataDirectory(appDataFolder);

            var filePath   = Path.Combine(appDataFolder, "imagetool", project.Id + ".hist");
            var fileExists = File.Exists(filePath);
            var outputFile = File.Open(
                filePath,
                project.HistoryCount < 0 ? FileMode.Create : FileMode.Append
                );

            var outputWriter = new StreamWriter(outputFile);

            if (!fileExists || project.HistoryCount < 0)
            {
                outputWriter.WriteLine("--history--");
                foreach (string file in project.History)
                {
                    outputWriter.WriteLine(file);
                }
            }
            else
            {
                foreach (string file in project.GetHistoryBuffer())
                {
                    outputWriter.WriteLine(file);
                }
            }
            project.ClearHistoryBuffer();
            outputWriter.Close();
            outputFile.Close();
        }
Exemple #3
0
 public ComicListForm(SortProject project, MainForm form)
 {
     InitializeComponent();
     _project  = project;
     _mainForm = form;
     RefreshComics();
     yesButton.Enabled = false;
     noButton.Enabled  = false;
 }
        /// <summary>
        /// Delete the sort project.
        /// </summary>
        public static void DeleteProject(SortProject project)
        {
            var appDataFolder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
            var projectPath   = Path.Combine(appDataFolder, "imagetool", project.Id);

            if (File.Exists(projectPath + ".dat"))
            {
                File.Delete(projectPath + ".dat");
            }
            if (File.Exists(projectPath + ".hist"))
            {
                File.Delete(projectPath + ".hist");
            }
        }
Exemple #5
0
 private void createButton_Click(object sender, EventArgs e)
 {
     if (string.IsNullOrWhiteSpace(projectNameBox.Text) ||
         string.IsNullOrWhiteSpace(directoryBox.Text))
     {
         return;
     }
     DialogResult = DialogResult.OK;
     this.Hide();
     Project = new SortProject(projectNameBox.Text, directoryBox.Text)
     {
         Type = (SortProject.ProjectType)
                Enum.Parse(typeof(SortProject.ProjectType), (string)projectType.SelectedItem)
     };
 }
        /// <summary>
        /// Saves a single project.
        /// </summary>
        public static void SaveProject(SortProject project)
        {
            // find the app folder and ensure it's created.
            var appDataFolder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

            CreateDataDirectory(appDataFolder);

            var filePath   = Path.Combine(appDataFolder, "imagetool", project.Id + ".dat");
            var fileExists = File.Exists(filePath);
            var outputFile = File.Open(
                filePath,
                FileMode.Append
                );

            var outputWriter = new StreamWriter(outputFile);

            // if the file doesn't exist, write the header
            if (!fileExists)
            {
                outputWriter.WriteLine("--project2--");
                outputWriter.WriteLine(project.Id);
                outputWriter.WriteLine(project.Name);
                outputWriter.WriteLine(project.Directory);
                outputWriter.WriteLine(project.Type);
                foreach (string file in project.FinishedFiles)
                {
                    outputWriter.WriteLine(file);
                }
            }
            else // if the file exists, just write the files that have changed since last save
            {
                foreach (string file in project.GetBuffer())
                {
                    outputWriter.WriteLine(file);
                }
                project.ClearBuffer();
            }
            outputWriter.Close();
            outputFile.Close();

            SaveHistory(project);
        }