Ignore:
Timestamp:
26/10/10 14:00:09 (3 years ago)
Author:
Matias De la Puente <mfpuente.ar@…>
Children:
33592374e666da943a2de0a6e84fab987585392b
Parents:
a70bdd96cc9cb661637388cca3306aa4e2305e3c
git-author:
Matias De la Puente <mfpuente.ar@…> (25/10/10 12:51:10)
git-committer:
Matias De la Puente <mfpuente.ar@…> (26/10/10 14:00:09)
Message:

Add 'program profile' option

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libi4uccore/projectslogic.vala

    rdfe49c7 r628f3dc  
    2525        private ProjectsView _view; 
    2626        private DocumentsLogic _documents_logic; 
     27        private ProgrammersLogic _programmers_logic; 
    2728        private ProjectsPageLogic _page_logic; 
    2829        private ProfileBuilder _profile_builder = new ProfileBuilder (); 
    2930 
    30         public ProjectsLogic (ProjectsView view, DocumentsLogic documents_logic) 
     31        public ProjectsLogic (ProjectsView view, DocumentsLogic documents_logic, ProgrammersLogic programmers_logic) 
    3132        { 
    3233                _view = view; 
    3334                _documents_logic = documents_logic; 
     35                _programmers_logic = programmers_logic; 
    3436                 
    3537                _documents_logic.add_document_opener (".i4uc", this); 
     
    4749                _view.remove_profile_sensitive = false; 
    4850                _view.build_profile_sensitive = false; 
     51                _view.program_profile_sensitive = false; 
    4952                _view.stop_sensitive = false; 
    5053                _view.clean_profile_sensitive = false; 
     
    6568                _view.remove_profile_clicked.connect (on_remove_profile_clicked); 
    6669                _view.build_profile_clicked.connect (on_build_profile_clicked); 
     70                _view.program_profile_clicked.connect (on_program_profile_clicked); 
    6771                _view.stop_clicked.connect (on_stop_clicked); 
    6872                _view.clean_profile_clicked.connect (on_clean_profile_clicked); 
     
    7579                _profile_builder.new_message.connect (on_profile_builder_new_message); 
    7680                _profile_builder.command_finished.connect (on_profile_builder_command_finished); 
     81                _programmers_logic.notify["can-write-flash"].connect (on_programmers_logic_can_write_flash_changed); 
    7782        } 
    7883 
     
    232237                        _view.show_error_message (_("Error trying to build profile %s: %s").printf (current_profile.name, e.message)); 
    233238                } 
     239        } 
     240         
     241        private void on_program_profile_clicked () 
     242        { 
     243                var current_project = _page_logic.current_project; 
     244                var current_profile = current_project.profiles[_view.page_view.current_profile]; 
     245                var hexfile = current_project.name + "-" + current_profile.name + ".hex"; 
     246                var hexfile_uri = current_project.get_file_uri (hexfile.replace (" ", "_")); 
     247                var hexfile_file = File.new_for_uri (hexfile_uri); 
     248                 
     249                if (!hexfile_file.query_exists (null)) 
     250                { 
     251                        _view.show_error_message (_("The file %s doesn't exists").printf (hexfile_file.get_path ())); 
     252                        return; 
     253                } 
     254                _programmers_logic.write_flash (hexfile_uri); 
    234255        } 
    235256         
     
    285306                _view.build_profile_sensitive = profile_selected && !_profile_builder.is_building; 
    286307                _view.clean_profile_sensitive = profile_selected && !_profile_builder.is_building; 
     308                _view.program_profile_sensitive = profile_selected && !_profile_builder.is_building && _programmers_logic.can_write_flash; 
    287309        } 
    288310 
     
    324346                _view.build_profile_sensitive = !is_building; 
    325347                _view.stop_sensitive = is_building; 
     348                _view.program_profile_sensitive = !is_building; 
    326349        } 
    327350         
     
    335358                _view.build_log_page.add_command (command_context); 
    336359        } 
     360         
     361        private void on_programmers_logic_can_write_flash_changed () 
     362        { 
     363                var profile_selected = _view.page_view.current_profile != null && 
     364                                       _view.page_view.current_profile != "__NONE__"; 
     365                _view.program_profile_sensitive = profile_selected && !_profile_builder.is_building && _programmers_logic.can_write_flash; 
     366        } 
    337367} 
Note: See TracChangeset for help on using the changeset viewer.