/opt/alt/python34/lib64/python3.4/idlelib
NameSizeModeActions
Icons/-0755rm
idle_test/-0755rm
__pycache__/-0755rm
aboutDialog.py66880644editdlrm
AutoComplete.py92020644editdlrm
AutoCompleteWindow.py177390644editdlrm
AutoExpand.py33950644editdlrm
Bindings.py30460644editdlrm
CallTips.py59320644editdlrm
CallTipWindow.py60340644editdlrm
ChangeLog563930644editdlrm
ClassBrowser.py69990644editdlrm
CodeContext.py83480644editdlrm
ColorDelegator.py96950644editdlrm
config-extensions.def29650644editdlrm
config-highlight.def25150644editdlrm
config-keys.def77770644editdlrm
config-main.def25630644editdlrm
configDialog.py643050644editdlrm
configHandler.py321970644editdlrm
configHelpSourceEdit.py66700644editdlrm
configSectionNameDialog.py40070644editdlrm
CREDITS.txt18650644editdlrm
Debugger.py187590644editdlrm
Delegator.py6650644editdlrm
dynOptionMenuWidget.py19900644editdlrm
EditorWindow.py660590644editdlrm
extend.txt36420644editdlrm
FileList.py38130644editdlrm
FormatParagraph.py72870644editdlrm
GrepDialog.py51240644editdlrm
help.html411260644editdlrm
help.py97010644editdlrm
help.txt179000644editdlrm
HISTORY.txt103170644editdlrm
HyperParser.py128770644editdlrm
idle.py4000644editdlrm
idle.pyw5700644editdlrm
IdleHistory.py40520644editdlrm
idlever.py4150644editdlrm
IOBinding.py197730644editdlrm
keybindingDialog.py124160644editdlrm
macosxSupport.py86840644editdlrm
MultiCall.py185710644editdlrm
MultiStatusBar.py13480644editdlrm
NEWS.txt398350644editdlrm
ObjectBrowser.py39750644editdlrm
OutputWindow.py43940644editdlrm
ParenMatch.py67130644editdlrm
PathBrowser.py32070644editdlrm
Percolator.py32440644editdlrm
PyParse.py204610644editdlrm
PyShell.py584500755editdlrm
README.txt77090644editdlrm
RemoteDebugger.py120070644editdlrm
RemoteObjectBrowser.py9640644editdlrm
ReplaceDialog.py66400644editdlrm
rpc.py207820644editdlrm
RstripExtension.py10500644editdlrm
run.py136730644editdlrm
ScriptBinding.py80610644editdlrm
ScrolledList.py43750644editdlrm
SearchDialog.py26300644editdlrm
SearchDialogBase.py70090644editdlrm
SearchEngine.py74850644editdlrm
StackViewer.py44260644editdlrm
tabbedpages.py184180644editdlrm
textView.py32250644editdlrm
TODO.txt84780644editdlrm
ToolTip.py31730644editdlrm
TreeWidget.py150240644editdlrm
UndoDelegator.py108150644editdlrm
WidgetRedirector.py68690644editdlrm
WindowList.py24720644editdlrm
ZoomHeight.py13000644editdlrm
__init__.py2880644editdlrm
__main__.py1590644editdlrm
Edit: /opt/alt/python34/lib64/python3.4/idlelib/configHelpSourceEdit.py (6670B)
"Dialog to specify or edit the parameters for a user configured help source." import os import sys from tkinter import * import tkinter.messagebox as tkMessageBox import tkinter.filedialog as tkFileDialog class GetHelpSourceDialog(Toplevel): def __init__(self, parent, title, menuItem='', filePath='', _htest=False): """Get menu entry and url/ local file location for Additional Help User selects a name for the Help resource and provides a web url or a local file as its source. The user can enter a url or browse for the file. _htest - bool, change box location when running htest """ Toplevel.__init__(self, parent) self.configure(borderwidth=5) self.resizable(height=FALSE, width=FALSE) self.title(title) self.transient(parent) self.grab_set() self.protocol("WM_DELETE_WINDOW", self.Cancel) self.parent = parent self.result = None self.CreateWidgets() self.menu.set(menuItem) self.path.set(filePath) self.withdraw() #hide while setting geometry #needs to be done here so that the winfo_reqwidth is valid self.update_idletasks() #centre dialog over parent. below parent if running htest. self.geometry( "+%d+%d" % ( parent.winfo_rootx() + (parent.winfo_width()/2 - self.winfo_reqwidth()/2), parent.winfo_rooty() + ((parent.winfo_height()/2 - self.winfo_reqheight()/2) if not _htest else 150))) self.deiconify() #geometry set, unhide self.bind('', self.Ok) self.wait_window() def CreateWidgets(self): self.menu = StringVar(self) self.path = StringVar(self) self.fontSize = StringVar(self) self.frameMain = Frame(self, borderwidth=2, relief=GROOVE) self.frameMain.pack(side=TOP, expand=TRUE, fill=BOTH) labelMenu = Label(self.frameMain, anchor=W, justify=LEFT, text='Menu Item:') self.entryMenu = Entry(self.frameMain, textvariable=self.menu, width=30) self.entryMenu.focus_set() labelPath = Label(self.frameMain, anchor=W, justify=LEFT, text='Help File Path: Enter URL or browse for file') self.entryPath = Entry(self.frameMain, textvariable=self.path, width=40) self.entryMenu.focus_set() labelMenu.pack(anchor=W, padx=5, pady=3) self.entryMenu.pack(anchor=W, padx=5, pady=3) labelPath.pack(anchor=W, padx=5, pady=3) self.entryPath.pack(anchor=W, padx=5, pady=3) browseButton = Button(self.frameMain, text='Browse', width=8, command=self.browseFile) browseButton.pack(pady=3) frameButtons = Frame(self) frameButtons.pack(side=BOTTOM, fill=X) self.buttonOk = Button(frameButtons, text='OK', width=8, default=ACTIVE, command=self.Ok) self.buttonOk.grid(row=0, column=0, padx=5,pady=5) self.buttonCancel = Button(frameButtons, text='Cancel', width=8, command=self.Cancel) self.buttonCancel.grid(row=0, column=1, padx=5, pady=5) def browseFile(self): filetypes = [ ("HTML Files", "*.htm *.html", "TEXT"), ("PDF Files", "*.pdf", "TEXT"), ("Windows Help Files", "*.chm"), ("Text Files", "*.txt", "TEXT"), ("All Files", "*")] path = self.path.get() if path: dir, base = os.path.split(path) else: base = None if sys.platform[:3] == 'win': dir = os.path.join(os.path.dirname(sys.executable), 'Doc') if not os.path.isdir(dir): dir = os.getcwd() else: dir = os.getcwd() opendialog = tkFileDialog.Open(parent=self, filetypes=filetypes) file = opendialog.show(initialdir=dir, initialfile=base) if file: self.path.set(file) def MenuOk(self): "Simple validity check for a sensible menu item name" menuOk = True menu = self.menu.get() menu.strip() if not menu: tkMessageBox.showerror(title='Menu Item Error', message='No menu item specified', parent=self) self.entryMenu.focus_set() menuOk = False elif len(menu) > 30: tkMessageBox.showerror(title='Menu Item Error', message='Menu item too long:' '\nLimit 30 characters.', parent=self) self.entryMenu.focus_set() menuOk = False return menuOk def PathOk(self): "Simple validity check for menu file path" pathOk = True path = self.path.get() path.strip() if not path: #no path specified tkMessageBox.showerror(title='File Path Error', message='No help file path specified.', parent=self) self.entryPath.focus_set() pathOk = False elif path.startswith(('www.', 'http')): pass else: if path[:5] == 'file:': path = path[5:] if not os.path.exists(path): tkMessageBox.showerror(title='File Path Error', message='Help file path does not exist.', parent=self) self.entryPath.focus_set() pathOk = False return pathOk def Ok(self, event=None): if self.MenuOk() and self.PathOk(): self.result = (self.menu.get().strip(), self.path.get().strip()) if sys.platform == 'darwin': path = self.result[1] if path.startswith(('www', 'file:', 'http:')): pass else: # Mac Safari insists on using the URI form for local files self.result = list(self.result) self.result[1] = "file://" + path self.destroy() def Cancel(self, event=None): self.result = None self.destroy() if __name__ == '__main__': from idlelib.idle_test.htest import run run(GetHelpSourceDialog)