Mono.Addins.Gui.AddinManagerDialog.OnButtonInstallFromFileClicked C# (CSharp) Method

OnButtonInstallFromFileClicked() protected method

protected OnButtonInstallFromFileClicked ( object sender, System e ) : void
sender object
e System
return void
        protected virtual void OnButtonInstallFromFileClicked(object sender, System.EventArgs e)
        {
            string[] files;
            Gtk.FileChooserDialog dlg = new Gtk.FileChooserDialog (Catalog.GetString ("Install Add-in Package"), this, FileChooserAction.Open);
            try {
                if (lastFolder != null)
                    dlg.SetCurrentFolder (lastFolder);
                else
                    dlg.SetCurrentFolder (Environment.GetFolderPath (Environment.SpecialFolder.Personal));
                dlg.SelectMultiple = true;

                Gtk.FileFilter f = new Gtk.FileFilter ();
                f.AddPattern ("*.mpack");
                f.Name = Catalog.GetString ("Add-in packages");
                dlg.AddFilter (f);

                f = new Gtk.FileFilter ();
                f.AddPattern ("*");
                f.Name = Catalog.GetString ("All files");
                dlg.AddFilter (f);

                dlg.AddButton (Gtk.Stock.Cancel, ResponseType.Cancel);
                dlg.AddButton (Gtk.Stock.Open, ResponseType.Ok);
                if (dlg.Run () != (int) Gtk.ResponseType.Ok)
                    return;
                files = dlg.Filenames;
                lastFolder = dlg.CurrentFolder;
            } finally {
                dlg.Destroy ();
            }

            InstallDialog idlg = new InstallDialog (this, service);
            try {
                idlg.InitForInstall (files);
                if (idlg.Run () == (int) Gtk.ResponseType.Ok)
                    LoadAll ();
            } finally {
                idlg.Destroy ();
            }
        }