/[svn]/gigedit/trunk/src/gigedit/mainwindow.h
ViewVC logotype

Diff of /gigedit/trunk/src/gigedit/mainwindow.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3469 by persson, Tue Feb 12 18:54:58 2019 UTC revision 3470 by persson, Thu Feb 14 19:10:49 2019 UTC
# Line 156  protected: Line 156  protected:
156      Gtk::ProgressBar progressBar;      Gtk::ProgressBar progressBar;
157  };  };
158    
159  class Loader : public sigc::trackable {  class LoaderSaverBase {
160  public:  public:
     Loader(const char* filename);  
161      void launch();      void launch();
162      Glib::Dispatcher& signal_progress();      Glib::Dispatcher& signal_progress();
163      Glib::Dispatcher& signal_finished(); ///< Finished successfully, without error.      Glib::Dispatcher& signal_finished(); ///< Finished successfully, without error.
# Line 169  public: Line 168  public:
168      Glib::ustring error_message;      Glib::ustring error_message;
169      gig::File* gig;      gig::File* gig;
170    
171    protected:
172        LoaderSaverBase(const Glib::ustring filename, gig::File* gig);
173    
174  private:  private:
175      Glib::Threads::Thread* thread;      Glib::Threads::Thread* thread;
176      void thread_function();      void thread_function();
177        virtual void thread_function_sub(gig::progress_t& progress) = 0;
178      Glib::Dispatcher finished_dispatcher;      Glib::Dispatcher finished_dispatcher;
179      Glib::Dispatcher progress_dispatcher;      Glib::Dispatcher progress_dispatcher;
180      Glib::Dispatcher error_dispatcher;      Glib::Dispatcher error_dispatcher;
# Line 179  private: Line 182  private:
182      float progress;      float progress;
183  };  };
184    
185  class Saver : public sigc::trackable {  class Loader : public LoaderSaverBase {
186    public:
187        Loader(const char* filename);
188    
189    private:
190        void thread_function_sub(gig::progress_t& progress);
191    };
192    
193    class Saver : public LoaderSaverBase {
194  public:  public:
195      Saver(gig::File* file, Glib::ustring filename = ""); ///< one argument means "save", two arguments means "save as"      Saver(gig::File* file, Glib::ustring filename = ""); ///< one argument means "save", two arguments means "save as"
     void launch();  
     Glib::Dispatcher& signal_progress();  
     Glib::Dispatcher& signal_finished(); ///< Finished successfully, without error.  
     Glib::Dispatcher& signal_error();  
     void progress_callback(float fraction);  
     float get_progress();  
     gig::File* gig;  
     const Glib::ustring filename;  
     Glib::ustring error_message;  
196    
197  private:  private:
198      Glib::Threads::Thread* thread;      void thread_function_sub(gig::progress_t& progress);
     void thread_function();  
     Glib::Dispatcher finished_dispatcher;  
     Glib::Dispatcher progress_dispatcher;  
     Glib::Dispatcher error_dispatcher;  
     Glib::Threads::Mutex progressMutex;  
     float progress;  
199  };  };
200    
201  class MainWindow : public ManagedWindow {  class MainWindow : public ManagedWindow {

Legend:
Removed from v.3469  
changed lines
  Added in v.3470

  ViewVC Help
Powered by ViewVC