Changeset 3145


Ignore:
Timestamp:
Oct 30, 2008, 2:02:36 AM (12 years ago)
Author:
Sam Hocevar
Message:

ThePimp?: make file dialogs singletons so that they retain their properties
and do not take ages to build.

Location:
libpipi/trunk/ThePimp/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • libpipi/trunk/ThePimp/src/MainWindow.cs

    r3144 r3145  
    3838        protected virtual void OnOpenActionActivated (object sender, System.EventArgs e)
    3939        {
    40             OpenFile dialog = new OpenFile();
    41 
    42             string s = dialog.GetChoice();
    43             dialog.Destroy();
     40            string s = OpenFile.GetChoice();
    4441            if(s == null)
    4542                return;
     
    9188            if(notebook1.NPages <= 0)
    9289                return;
    93             SaveFile save = new SaveFile();
     90
    9491            PictureView view = notebook1.CurrentPageWidget as PictureView;
    95             save.Save(view.Picture);
    96             save.Destroy();
     92
     93            string s = OpenFile.GetChoice();
     94            if(s == null)
     95                return;
     96
     97            view.Picture.Save(s);
    9798        }
    9899
  • libpipi/trunk/ThePimp/src/OpenFile.cs

    r3099 r3145  
    2020    public partial class OpenFile : Gtk.Dialog
    2121    {
    22         public OpenFile()
     22        private static readonly OpenFile instance = new OpenFile();
     23
     24        // Do not mark type as beforefieldinit
     25        static OpenFile() {}
     26
     27        private OpenFile()
    2328        {
    2429            this.Build();
    2530        }
    2631
    27         public string GetChoice()
     32        public static string GetChoice()
    2833        {
    29             ResponseType rsp = (ResponseType)Run();
    30             Hide();
     34            instance.ShowAll();
     35            ResponseType rsp = (ResponseType)instance.Run();
     36            instance.Hide();
    3137            if(rsp != ResponseType.Ok)
    3238                return null;
    33             return filechooserwidget1.Filename;
     39            return instance.filechooserwidget1.Filename;
    3440        }
    3541
  • libpipi/trunk/ThePimp/src/SaveFile.cs

    r3099 r3145  
    2020    public partial class SaveFile : Gtk.Dialog
    2121    {
    22         public SaveFile()
     22        private static readonly SaveFile instance = new SaveFile();
     23
     24        // Do not mark type as beforefieldinit
     25        static SaveFile() {}
     26
     27        private SaveFile()
    2328        {
    2429            this.Build();
    2530        }
    2631
    27         public void Save(Pipi.Picture p)
     32        public static string GetChoice()
    2833        {
    29             ResponseType rsp = (ResponseType)Run();
    30             Hide();
     34            instance.ShowAll();
     35            ResponseType rsp = (ResponseType)instance.Run();
     36            instance.Hide();
    3137            if(rsp != ResponseType.Ok)
    32                 return;
    33             p.Save(filechooserwidget1.Filename);
     38                return null;
     39            return instance.filechooserwidget1.Filename;
    3440        }
    3541
Note: See TracChangeset for help on using the changeset viewer.