git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33440 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
116 lines
4.6 KiB
Python
116 lines
4.6 KiB
Python
#----------------------------------------------------------------------------
|
|
# Name: UICommon.py
|
|
# Purpose: Shared UI stuff
|
|
#
|
|
# Author: Matt Fryer
|
|
#
|
|
# Created: 3/10/05
|
|
# CVS-ID: $Id$
|
|
# Copyright: (c) 2005 ActiveGrid, Inc.
|
|
# License: wxWindows License
|
|
#----------------------------------------------------------------------------
|
|
|
|
import os
|
|
import os.path
|
|
import wx
|
|
import ProjectEditor
|
|
_ = wx.GetTranslation
|
|
|
|
def CreateDirectoryControl( parent, fileLabel, dirLabel, fileExtension, startingName="", startingDirectory=""):
|
|
|
|
nameControl = wx.TextCtrl(parent, -1, startingName, size=(-1,-1))
|
|
nameLabelText = wx.StaticText(parent, -1, fileLabel)
|
|
dirLabelText = wx.StaticText(parent, -1, dirLabel)
|
|
dirControl = wx.TextCtrl(parent, -1, startingDirectory, size=(-1,-1))
|
|
dirControl.SetToolTipString(startingDirectory)
|
|
button = wx.Button(parent, -1, _("Browse..."), size=(60,-1))
|
|
|
|
def OnFindDirClick(event):
|
|
name = ""
|
|
nameCtrlValue = nameControl.GetValue()
|
|
if nameCtrlValue:
|
|
root, ext = os.path.splitext( nameCtrlValue )
|
|
if ext == '.' + fileExtension:
|
|
name = nameCtrlValue
|
|
else:
|
|
name = _("%s.%s") % (nameCtrlValue, fileExtension)
|
|
path = wx.FileSelector(_("Choose a filename and directory"),
|
|
"",
|
|
"%s" % name,
|
|
wildcard=_("*.%s") % fileExtension ,
|
|
flags=wx.SAVE,
|
|
parent=parent)
|
|
|
|
if path:
|
|
dir, filename = os.path.split(path)
|
|
dirControl.SetValue(dir)
|
|
dirControl.SetToolTipString(dir)
|
|
nameControl.SetValue(filename)
|
|
|
|
parent.Bind(wx.EVT_BUTTON, OnFindDirClick, button)
|
|
|
|
def Validate(allowOverwriteOnPrompt=False):
|
|
if nameControl.GetValue() == "":
|
|
wx.MessageBox(_("Please provide a filename."), _("Provide a Filename"))
|
|
return False
|
|
if nameControl.GetValue().find(' ') != -1:
|
|
wx.MessageBox(_("Please provide a filename that does not contains spaces."), _("Spaces in Filename"))
|
|
return False
|
|
filePath = os.path.join(dirControl.GetValue(), MakeNameEndInExtension(nameControl.GetValue(), "." + fileExtension))
|
|
if os.path.exists(filePath):
|
|
if allowOverwriteOnPrompt:
|
|
res = wx.MessageBox(_("That file already exists. Would you like to overwrite it."), "File Exists", style=wx.YES_NO|wx.NO_DEFAULT)
|
|
return (res == wx.YES)
|
|
else:
|
|
wx.MessageBox(_("That file already exists. Please choose a different name."), "File Exists")
|
|
return False
|
|
return True
|
|
HALF_SPACE = 5
|
|
flexGridSizer = wx.FlexGridSizer(cols = 3, vgap = HALF_SPACE, hgap = HALF_SPACE)
|
|
flexGridSizer.AddGrowableCol(1,1)
|
|
flexGridSizer.Add(nameLabelText, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_LEFT|wx.TOP|wx.RIGHT, HALF_SPACE)
|
|
flexGridSizer.Add(nameControl, 2, flag=wx.ALIGN_CENTER_VERTICAL|wx.EXPAND)
|
|
flexGridSizer.Add(button, flag=wx.ALIGN_RIGHT|wx.LEFT, border=HALF_SPACE)
|
|
|
|
flexGridSizer.Add(dirLabelText, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_LEFT|wx.TOP|wx.RIGHT, border=HALF_SPACE)
|
|
flexGridSizer.Add(dirControl, 2, flag=wx.ALIGN_CENTER_VERTICAL|wx.EXPAND, border=HALF_SPACE)
|
|
flexGridSizer.Add(wx.StaticText(parent, -1, ""), 0)
|
|
return nameControl, dirControl, flexGridSizer, Validate
|
|
|
|
def AddFilesToCurrentProject(paths, save=False):
|
|
projectService = wx.GetApp().GetService(ProjectEditor.ProjectService)
|
|
if projectService:
|
|
projectDocument = projectService.GetCurrentProject()
|
|
if projectDocument:
|
|
files = projectDocument.GetFiles()
|
|
for path in paths:
|
|
if path in files:
|
|
paths.remove(path)
|
|
if paths:
|
|
projectDocument.GetCommandProcessor().Submit(ProjectEditor.ProjectAddFilesCommand(projectDocument, paths))
|
|
if save:
|
|
projectDocument.OnSaveDocument(projectDocument.GetFilename())
|
|
|
|
def MakeNameEndInExtension(name, extension):
|
|
if not name:
|
|
return name
|
|
root, ext = os.path.splitext(name)
|
|
if ext == extension:
|
|
return name
|
|
else:
|
|
return name + extension
|
|
|
|
# Lame
|
|
def PluralName(name):
|
|
if not name:
|
|
return name
|
|
if name.endswith('us'):
|
|
return name[0:-2] + 'ii'
|
|
elif name.endswith('s'):
|
|
return name
|
|
elif name.endswith('y'):
|
|
return name[0:-1] + 'ies'
|
|
else:
|
|
return name + 's'
|
|
|