Changeset 9a6914c73481a770bff1b5d3aecebdb24db3ee5e


Ignore:
Timestamp:
08/07/10 12:14:01 (3 years ago)
Author:
Matias De la Puente <mfpuente.ar@…>
Children:
423b3229331c4bfe49071c45954d2a19294b0651
Parents:
f12219a27c07e386a589e6cd32c6a806f3f65319
git-committer:
Matias De la Puente <mfpuente.ar@…> (08/07/10 12:14:01)
Message:

Projects: Improve code when changing project's parameters

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libi4uc/i4ucprojectssidepagepresenter.vala

    rf12219a r9a6914c  
    2626        private DocumentsPresenter _documents_presenter; 
    2727        private ArrayList<Project> _projects = new ArrayList<Project> (); 
     28        private Project _current_project; 
     29        private string _current_profile; 
    2830 
    2931        public Project current_project 
    3032        { 
    3133                set { _view.current_project = value.uri; } 
    32                 owned get { return get_project_from_uri (_view.current_project); } 
     34                get { return _current_project; } 
    3335        } 
    3436         
     
    100102                _view.clear_profiles_list (); 
    101103 
    102                 var current_project = get_project_from_uri (_view.current_project); 
    103                 if (current_project == null) 
     104                _current_project = get_project_from_uri (_view.current_project); 
     105                if (_current_project == null) 
    104106                        return; 
    105107 
    106108                //Load files list 
    107                 foreach (var file in current_project.files) 
     109                foreach (var file in _current_project.files) 
    108110                        _view.add_file (file); 
    109111 
    110112                //Load profiles list 
    111                 foreach (var profile in current_project.profiles.values) 
     113                foreach (var profile in _current_project.profiles.values) 
    112114                { 
    113115                        _view.add_profile (profile.name); 
     
    122124                _view.builders_list.linker_script_visible = false; 
    123125 
    124                 Project current_project; 
    125                 string current_profile; 
    126                 if (!get_current_project_and_profile (out current_project, out current_profile)) 
    127                         return; 
    128  
    129                 _view.builders_list.current_builder = current_project.profiles[current_profile].builder_id; 
    130                 _view.builders_list.current_device_type = current_project.profiles[current_profile].device_type; 
    131                 _view.builders_list.current_device = current_project.profiles[current_profile].device; 
    132                  
    133                 var builder = I4uc.Settings.instance.builders[current_project.profiles[current_profile].builder_id]; 
     126                if (_current_project == null) 
     127                        return; 
     128                 
     129                _current_profile = _view.current_profile; 
     130                if (_current_profile == null) 
     131                        return; 
     132 
     133                var profile = _current_project.profiles[_current_profile]; 
     134                 
     135                _view.builders_list.current_builder = profile.builder_id; 
     136                _view.builders_list.current_device_type = profile.device_type; 
     137                _view.builders_list.current_device = profile.device; 
     138                 
     139                var builder = I4uc.Settings.instance.builders[profile.builder_id]; 
    134140                if (builder != null) 
    135141                { 
    136                         var device_type = builder.device_types[current_project.profiles[current_profile].device_type]; 
     142                        var device_type = builder.device_types[profile.device_type]; 
    137143                        if (device_type != null) 
    138144                        { 
    139145                                _view.builders_list.linker_script_visible = device_type.has_linker_script; 
    140146                                if (_view.builders_list.linker_script_visible) 
    141                                         _view.builders_list.current_linker_script = current_project.profiles[current_profile].linker_script; 
     147                                        _view.builders_list.current_linker_script = profile.linker_script; 
    142148                        } 
    143149                } 
     
    151157                        return; 
    152158 
    153                 var current_project = get_project_from_uri (_view.current_project); 
    154                 if (current_project == null || _view.current_file == null) 
     159                if (_current_project == null || _view.current_file == null) 
    155160                        return; 
    156161 
    157162                if (active) 
    158163                { 
    159                         current_project.profiles[profile].files.add (_view.current_file); 
     164                        _current_project.profiles[profile].files.add (_view.current_file); 
    160165                        _view.add_profile_file (profile, _view.current_file); 
    161166                } 
    162167                else 
    163168                { 
    164                         current_project.profiles[profile].files.remove (_view.current_file); 
     169                        _current_project.profiles[profile].files.remove (_view.current_file); 
    165170                        _view.remove_profile_file (profile, _view.current_file); 
    166171                } 
    167                 current_project.save (); 
     172                _current_project.save (); 
    168173        } 
    169174 
    170175        private void on_file_activated () 
    171176        { 
    172                 var document_uri = this.current_project.get_file_uri (_view.current_file); 
     177                var document_uri = _current_project.get_file_uri (_view.current_file); 
    173178                _documents_presenter.open_document (document_uri); 
    174179        } 
     
    179184                _view.uncheck_all_profiles (); 
    180185 
    181                 var current_project = get_project_from_uri (_view.current_project); 
    182                 if (current_project == null || _view.current_file == null) 
    183                         return; 
    184  
    185                 foreach (var profile in current_project.profiles.values) 
     186                if (_current_project == null || _view.current_file == null) 
     187                        return; 
     188 
     189                foreach (var profile in _current_project.profiles.values) 
    186190                        _view.check_profile (profile.name, _view.current_file in profile.files); 
    187191                _view.profiles_check_list_sensitive = true; 
     
    192196                _view.builders_list.clear_device_types_list (); 
    193197 
    194                 Project current_project; 
    195                 string current_profile; 
    196                 if (!get_current_project_and_profile (out current_project, out current_profile)) 
     198                if (_current_project == null || _current_profile == null) 
    197199                        return; 
    198200                 
     
    200202                if (_view.builders_list_sensitive) 
    201203                { 
    202                         current_project.profiles[current_profile].builder_id = current_builder == null ? "" : current_builder; 
    203                         current_project.save (); 
     204                        _current_project.profiles[_current_profile].builder_id = current_builder == null ? "" : current_builder; 
     205                        _current_project.save (); 
    204206                } 
    205207 
     
    217219                _view.builders_list.linker_script_visible = false; 
    218220 
    219                 Project current_project; 
    220                 string current_profile; 
    221                 if (!get_current_project_and_profile (out current_project, out current_profile)) 
     221                if (_current_project == null || _current_profile == null) 
    222222                        return; 
    223223                 
     
    225225                if (_view.builders_list_sensitive) 
    226226                { 
    227                         current_project.profiles[current_profile].device_type = current_device_type == null ? "" : current_device_type; 
    228                         current_project.save (); 
     227                        _current_project.profiles[_current_profile].device_type = current_device_type == null ? "" : current_device_type; 
     228                        _current_project.save (); 
    229229                } 
    230230                 
     
    239239                _view.builders_list.linker_script_visible = device_type.has_linker_script; 
    240240                if (_view.builders_list.linker_script_visible) 
    241                         _view.builders_list.current_linker_script = current_project.profiles[current_profile].linker_script; 
     241                        _view.builders_list.current_linker_script = _current_project.profiles[_current_profile].linker_script; 
    242242        } 
    243243 
     
    247247                        return; 
    248248 
    249                 Project current_project; 
    250                 string current_profile; 
    251                 if (!get_current_project_and_profile (out current_project, out current_profile)) 
     249                if (_current_project == null || _current_profile == null) 
    252250                        return; 
    253251                 
    254252                var current_device = _view.builders_list.current_device; 
    255                 current_project.profiles[current_profile].device = current_device == null ? "" : current_device; 
    256                 current_project.save (); 
     253                _current_project.profiles[_current_profile].device = current_device == null ? "" : current_device; 
     254                _current_project.save (); 
    257255        } 
    258256         
     
    262260                        return; 
    263261                 
    264                 Project current_project; 
    265                 string current_profile; 
    266                 if (!get_current_project_and_profile (out current_project, out current_profile)) 
     262                if (_current_project == null || _current_profile == null) 
    267263                        return; 
    268264                 
    269265                var current_linker_script = _view.builders_list.current_linker_script; 
    270                 current_project.profiles[current_profile].linker_script = current_linker_script == null ? "" : current_linker_script; 
    271                 current_project.save (); 
     266                _current_project.profiles[_current_profile].linker_script = current_linker_script == null ? "" : current_linker_script; 
     267                _current_project.save (); 
    272268        } 
    273269 
     
    279275                return null; 
    280276        } 
    281  
    282         private bool get_current_project_and_profile (out Project current_project, out string current_profile) 
    283         { 
    284                 current_project = get_project_from_uri (_view.current_project); 
    285                 current_profile = _view.current_profile; 
    286                 return (current_project != null) && (current_profile != null); 
    287         } 
    288277} 
Note: See TracChangeset for help on using the changeset viewer.