summaryrefslogtreecommitdiffstats
path: root/build_tools/l7/larch0/gui/front/page_project.py
diff options
context:
space:
mode:
Diffstat (limited to 'build_tools/l7/larch0/gui/front/page_project.py')
-rw-r--r--build_tools/l7/larch0/gui/front/page_project.py203
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'))
-
-