Exemple #1
0
        private void OpenPack(string filename)
        {
            if (Packer.Create(System.IO.Path.GetExtension(filename), out fileSystem))
            {
                waitWindow = new WaitWindow(this, "Opening", filename);
                waitWindow.Show();

                ThreadNotify done = new ThreadNotify(new ReadyEvent(() =>
                {
                    waitWindow.Destroy();
                    waitWindow = null;
                }));

                ThreadNotify error = new ThreadNotify(new ReadyEvent(() =>
                {
                    waitWindow.Destroy();
                    waitWindow = null;

                    CustomMessageDialog msg =
                        new CustomMessageDialog(this, MessageType.Error, fileSystem.LastError);
                    msg.Run();
                    msg.Destroy();
                }));

                new Thread(new ThreadStart(() =>
                {
                    if (fileSystem.Open(filename))
                    {
                        RebuildPackTree(fileSystem.ListFiles());
                        ChangePackActionSensitive(true);
                        done.WakeupMain();
                    }
                    else
                    {
                        error.WakeupMain();
                    }
                })).Start();
            }
        }