source: libi4uc/i4ucprojectspresenter.vala @ 7de01d30f19e0a3d6ec5aeb01b43dbe0c3dcc010

Revision 7de01d30f19e0a3d6ec5aeb01b43dbe0c3dcc010, 2.2 KB checked in by Matias De la Puente <mfpuente.ar@…>, 3 years ago (diff)

Projects: Disable close action when there isn't an opened project

  • Property mode set to 100644
Line 
1/* i4ucprojectspresenter.vala
2 *
3 * Copyright (C) 2010  Matias De la Puente
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
17 *
18 * Author:
19 *      Matias De la Puente <mfpuente.ar@gmail.com>
20 */
21
22public class I4uc.ProjectsPresenter : GLib.Object
23{
24        private ProjectsViewIface _view;
25        private ProjectsSidePagePresenter _projects_side_page_presenter;
26
27        public ProjectsPresenter (ProjectsViewIface view)
28        {
29                _view = view;
30
31                _projects_side_page_presenter = new ProjectsSidePagePresenter (_view.projects_side_page_view);
32
33                //Configure view
34                _view.close_sensitive = false;
35
36                //Connect view signals
37                _view.open_clicked.connect (on_open_clicked);
38                _view.close_clicked.connect (on_close_clicked);
39                _view.projects_side_page_view.project_changed.connect (on_project_changed);
40        }
41
42        public void open_project (string project_uri)
43        {
44                var project = new Project ();
45                if (project.open (project_uri))
46                        _projects_side_page_presenter.add_project (project);
47                else
48                        _view.show_error_message (_("Error trying to open <<%s>>").printf (project_uri));
49        }
50
51        public void close_all_projects ()
52        {
53                _projects_side_page_presenter.remove_all_projects ();
54        }
55
56        private void on_open_clicked ()
57        {
58                var folder_uri = I4uc.Settings.instance.working_folder;
59                Gee.List<string> projects;
60                _view.show_open_dialog (ref folder_uri, out projects);
61                I4uc.Settings.instance.working_folder = folder_uri;
62                foreach (var project in projects)
63                        open_project (project);
64        }
65
66        private void on_close_clicked ()
67        {
68                _projects_side_page_presenter.remove_project (_projects_side_page_presenter.current_project);
69        }
70
71        private void on_project_changed ()
72        {
73                _view.close_sensitive = _projects_side_page_presenter.current_project != null;
74        }
75}
Note: See TracBrowser for help on using the repository browser.