diff options
Diffstat (limited to 'build_tools/l7/larch0/gui/front/page_project.py')
-rw-r--r-- | build_tools/l7/larch0/gui/front/page_project.py | 203 |
1 files changed, 0 insertions, 203 deletions
diff --git a/build_tools/l7/larch0/gui/front/page_project.py b/build_tools/l7/larch0/gui/front/page_project.py deleted file mode 100644 index e9b902d..0000000 --- a/build_tools/l7/larch0/gui/front/page_project.py +++ /dev/null @@ -1,203 +0,0 @@ -# page_project.py - Handler for the project settings page -# -# (c) Copyright 2010 Michael Towers (larch42 at googlemail dot com) -# -# This file is part of the larch project. -# -# larch is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# larch is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with larch; if not, write to the Free Software Foundation, Inc., -# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# -#---------------------------------------------------------------------------- -# 2010.07.13 - -import os - -class ProjectSettings: - def __init__(self): - ui.widgetlist(fss('fetch_layout', 'page_project.uim')) - - ui.connectlist( - (':choose_profile_combo*changed', self.switch_profile), - (':profile_rename*clicked', self.rename_profile), - (':profile_browse*clicked', self.browse_profile), - (':profile_delete*clicked', self.delete_profile), - (':profile_save*clicked', self.save_profile), - (':installation_path_change*clicked', self.new_build_path), - (':choose_project_combo*changed', self.switch_project), - (':new_project*clicked', self.get_new_project_name), - (':project_delete*clicked', self.delete_project), - ) - - - def setup(self): - # Initialize project combobox - self.projects = fss('get_projects') - self.project_name = fss('get_project') - try: - pix = self.projects.index(self.project_name) - except: - self.switch_project(0) - return - ui.command(':choose_project_combo.set', self.projects, pix) - # Initialize profile combobox - self.profiles = fss('get_profiles') - self.profile_name = fss('get_profile') - try: - pfix = self.profiles.index(self.profile_name) - except: - self.switch_profile(0) - pfix = 0 - ui.command(':choose_profile_combo.set', self.profiles, pfix) - # Initialize installation_dir display - self.set_build_dir(fss('get_installation_dir')) - - - def enter(self): - """This is called when the page is entered/selected/shown. - It performs initializations which depend on the state. - """ - docviewer.gohome('gui_project_settings.html') - - - def data(self, key): - return ui.command('project_page_data.get', key) - - - def set_build_dir(self, path): - self.build_dir = path - ui.command(':installation_path_show.text', self.build_dir) - ui.enable_installation_page(self.build_dir != '/') - - - def switch_profile(self, index): - """This has no effect on the display! - It is assumed that the display is already updated, or will be - updated later, and that the index is valid, so that the operation - cannot fail. - """ - self.profile_name = self.profiles[index] - fss('set_profile', self.profile_name) - - - def browse_profile(self): - source = ui.fileDialog(self.data('file_ps'), dirsonly=True, - bookmarks=fss('get_profile_bookmarks'), - startdir=fss('getitem', 'profile_browse_dir')) - if source: - fss('setitem', 'profile_browse_dir', os.path.dirname(source)) - if os.path.basename(source) in self.profiles: - if not ui.command('confirmDialog', self.data('prompt_pr')): - return - if fss('get_new_profile', source): - self.setup() - else: - run_error(self.data('msg_npd') % source) - - - def rename_profile(self): - if fss('can_rename_profile'): - ok, new = ui.command('textLineDialog', - self.data('prompt_pn'), - None, self.profile_name) - if ok: - new = new.strip() - if new in self.profiles: - ui.command('warningDialog', self.data('prompt_pe') % new) - else: - fss('rename_profile', new) - self.setup() - else: - ui.command('infoDialog', self.data('msg_pu')) - - - def save_profile(self): - bookmarks = fss('get_profile_bookmarks') - startdir = fss('getitem', 'profile_browse_dir') - path = ui.fileDialog(self.data('file_sp'), - create=True, file=self.profile_name, - bookmarks=bookmarks, - startdir=startdir if startdir else bookmarks[0][0]) - if path: - fss('setitem', 'profile_browse_dir', os.path.dirname(path)) - ok = fss('save_profile', path, False) - if ok == False: - if ui.command('confirmDialog', self.data('prompt_dr')): - # Force overwrite - fss('save_profile', path, True) - elif ok == None: - run_error(self.data('msg_piu')) - else: - self.setup() - - - def delete_profile(self): - plist = fss('list_free_profiles') - if plist: - ok, item = ui.command('listDialog', self.data('prompt_dp'), - self.data('delprof'), plist) - if ok: - if fss('delete_profile', item): - self.setup() - else: - ui.command('infoDialog', self.data('msg_dpff') % item) - else: - ui.command('infoDialog', self.data('msg_npf')) - - - def new_build_path(self): - # Is anything more necessary? Do I need to test or create the path? - # I don't think so, the installation code does that. - # If the path is "/", the installation page should be inhibited, - # but that is handled by 'setup'. - ok, path = ui.command('textLineDialog', - self.data('prompt_ip'), - None, self.build_dir) - if ok: - path = fss('set_installation_dir', path) - if path: - self.set_build_dir(path) - - - def switch_project(self, index): - fss('set_project', self.projects[index]) - self.setup() - - - def get_new_project_name(self): - ok, name = ui.command('textLineDialog', - self.data('prompt_np'), - None, self.project_name) - if ok: - if name in self.projects: - run_error(self.data('msg_pe') % name) - else: - fss('set_project', name) - self.setup() - - - def delete_project(self): - """Pop up a list of eligible project names, the selected one - will be deleted. - """ - plist = fss('list_free_projects') - if plist: - ok, item = ui.command('listDialog', self.data('prompt_pd'), - self.data('delproj'), plist) - if ok: - fss('delete_project', item) - self.setup() - else: - ui.command('infoDialog', self.data('msg_np')) - - |