Changeset 15 for Common/FormProgress.cs


Ignore:
Timestamp:
Jun 18, 2024, 12:15:33 PM (5 months ago)
Author:
chronos
Message:
  • Modified: Updated files.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Common/FormProgress.cs

    r14 r15  
    22using System.Collections.Generic;
    33using System.ComponentModel;
    4 using System.Drawing;
    54using System.Linq;
    65using System.Windows.Forms;
     
    87namespace Common
    98{
    10     public partial class FormProgress : Form
     9    public partial class FormProgress : FormEx
    1110    {
    1211        public List<Progress> Tasks;
    1312        public DateTime StartTime;
    1413        public Progress CurrentTask;
     14        private bool _canClose;
    1515
    1616        public FormProgress()
     
    2020            Tasks = new List<Progress>();
    2121            CurrentTask = null;
     22            _canClose = false;
    2223        }
    2324
    2425        private void timer1_Tick(object sender, EventArgs e)
    2526        {
    26             int steps = 10000;
     27            const int steps = 10000;
    2728            int total = Tasks.Count * steps;
    2829            int current;
     
    4849            }
    4950            else labelTime.Text = "";
     51
     52            // Update task bar progress
     53            if (progressBar1.Value < progressBar1.Maximum)
     54            {
     55                TaskBarProgress.SetValue(Handle, progressBar1.Value, progressBar1.Maximum);
     56                if (progressBar1.Value == 0)
     57                {
     58                    TaskBarProgress.SetState(Handle, TaskBarProgress.TaskBarStates.Indeterminate);
     59                }
     60            }
     61            else
     62            {
     63                TaskBarProgress.SetState(Handle, TaskBarProgress.TaskBarStates.NoProgress);
     64            }
    5065        }
    5166
    5267        private void FormProgress_Load(object sender, EventArgs e)
    5368        {
    54             Theme.UseTheme(this);
    55             DpiScaling.Apply(this);
    56             Icon = Icon.ExtractAssociatedIcon(Application.Execut‌​ablePath);
    57 
    5869            timer1_Tick(this, null);
    5970            timer1.Enabled = true;
     
    6374        private void FormProgress_FormClosing(object sender, FormClosingEventArgs e)
    6475        {
     76            e.Cancel = !_canClose;
    6577            CurrentTask.Terminated = true;
    6678            timer1.Enabled = false;
     
    8698                {
    8799                    CurrentTask = Tasks[nextIndex];
    88                     BackgroundWorker bg = new BackgroundWorker();
    89                     bg.DoWork += bg_DoWork;
    90                     bg.RunWorkerCompleted += bg_DoWorkerCompleted;
    91                     bg.RunWorkerAsync();
     100                    BackgroundWorker backgroundWorker = new BackgroundWorker();
     101                    backgroundWorker.DoWork += bg_DoWork;
     102                    backgroundWorker.RunWorkerCompleted += bg_DoWorkerCompleted;
     103                    backgroundWorker.RunWorkerAsync();
    92104                }
    93                 else Close();
    94             }
    95             else Close();
     105                else
     106                {
     107                    _canClose = true;
     108                    Close();
     109                }
     110            }
     111            else
     112            {
     113                _canClose = true;
     114                Close();
     115            }
    96116        }
    97117
     
    122142                StartTime = DateTime.Now;
    123143                CurrentTask = Tasks.First();
    124                 BackgroundWorker bg = new BackgroundWorker();
    125                 bg.DoWork += bg_DoWork;
    126                 bg.RunWorkerCompleted += bg_DoWorkerCompleted;
    127                 bg.RunWorkerAsync();
     144                BackgroundWorker backgroundWorker = new BackgroundWorker();
     145                backgroundWorker.DoWork += bg_DoWork;
     146                backgroundWorker.RunWorkerCompleted += bg_DoWorkerCompleted;
     147                backgroundWorker.RunWorkerAsync();
    128148                ShowDialog();
    129149            }
Note: See TracChangeset for help on using the changeset viewer.