Issue #20350. tkapp.splitlist() is now always used instead of unreliable

tkapp.split() in the tkinter package.
This commit is contained in:
Serhiy Storchaka 2016-06-26 00:09:19 +03:00
parent d3af156ded
commit 6bc87b4b4d
2 changed files with 12 additions and 15 deletions

View file

@ -383,7 +383,7 @@ class Variable:
pass pass
def trace_vinfo(self): def trace_vinfo(self):
"""Return all trace callback information.""" """Return all trace callback information."""
return [self._tk.split(x) for x in self._tk.splitlist( return [self._tk.splitlist(x) for x in self._tk.splitlist(
self._tk.call("trace", "vinfo", self._name))] self._tk.call("trace", "vinfo", self._name))]
def __eq__(self, other): def __eq__(self, other):
"""Comparison for equality (==). """Comparison for equality (==).
@ -1043,18 +1043,16 @@ class Misc:
def winfo_visualid(self): def winfo_visualid(self):
"""Return the X identifier for the visual for this widget.""" """Return the X identifier for the visual for this widget."""
return self.tk.call('winfo', 'visualid', self._w) return self.tk.call('winfo', 'visualid', self._w)
def winfo_visualsavailable(self, includeids=0): def winfo_visualsavailable(self, includeids=False):
"""Return a list of all visuals available for the screen """Return a list of all visuals available for the screen
of this widget. of this widget.
Each item in the list consists of a visual name (see winfo_visual), a Each item in the list consists of a visual name (see winfo_visual), a
depth and if INCLUDEIDS=1 is given also the X identifier.""" depth and if includeids is true is given also the X identifier."""
data = self.tk.split( data = self.tk.call('winfo', 'visualsavailable', self._w,
self.tk.call('winfo', 'visualsavailable', self._w, 'includeids' if includeids else None)
includeids and 'includeids' or None)) data = [self.tk.splitlist(x) for x in self.tk.splitlist(data)]
if isinstance(data, str): return [self.__winfo_parseitem(x) for x in data]
data = [self.tk.split(data)]
return [self.__winfo_parseitem(x) for x in data]
def __winfo_parseitem(self, t): def __winfo_parseitem(self, t):
"""Internal function.""" """Internal function."""
return t[:1] + tuple(map(self.__winfo_getint, t[1:])) return t[:1] + tuple(map(self.__winfo_getint, t[1:]))

View file

@ -1106,7 +1106,7 @@ class ListNoteBook(TixWidget):
def pages(self): def pages(self):
# Can't call subwidgets_all directly because we don't want .nbframe # Can't call subwidgets_all directly because we don't want .nbframe
names = self.tk.split(self.tk.call(self._w, 'pages')) names = self.tk.splitlist(self.tk.call(self._w, 'pages'))
ret = [] ret = []
for x in names: for x in names:
ret.append(self.subwidget(x)) ret.append(self.subwidget(x))
@ -1152,7 +1152,7 @@ class NoteBook(TixWidget):
def pages(self): def pages(self):
# Can't call subwidgets_all directly because we don't want .nbframe # Can't call subwidgets_all directly because we don't want .nbframe
names = self.tk.split(self.tk.call(self._w, 'pages')) names = self.tk.splitlist(self.tk.call(self._w, 'pages'))
ret = [] ret = []
for x in names: for x in names:
ret.append(self.subwidget(x)) ret.append(self.subwidget(x))
@ -1575,8 +1575,7 @@ class CheckList(TixWidget):
'''Returns a list of items whose status matches status. If status is '''Returns a list of items whose status matches status. If status is
not specified, the list of items in the "on" status will be returned. not specified, the list of items in the "on" status will be returned.
Mode can be on, off, default''' Mode can be on, off, default'''
c = self.tk.split(self.tk.call(self._w, 'getselection', mode)) return self.tk.splitlist(self.tk.call(self._w, 'getselection', mode))
return self.tk.splitlist(c)
def getstatus(self, entrypath): def getstatus(self, entrypath):
'''Returns the current status of entryPath.''' '''Returns the current status of entryPath.'''
@ -1897,7 +1896,7 @@ class Grid(TixWidget, XView, YView):
or a real number following by the word chars or a real number following by the word chars
(e.g. 3.4chars) that sets the width of the column to the (e.g. 3.4chars) that sets the width of the column to the
given number of characters.""" given number of characters."""
return self.tk.split(self.tk.call(self._w, 'size', 'column', index, return self.tk.splitlist(self.tk.call(self._w, 'size', 'column', index,
*self._options({}, kw))) *self._options({}, kw)))
def size_row(self, index, **kw): def size_row(self, index, **kw):
@ -1922,7 +1921,7 @@ class Grid(TixWidget, XView, YView):
or a real number following by the word chars or a real number following by the word chars
(e.g. 3.4chars) that sets the height of the row to the (e.g. 3.4chars) that sets the height of the row to the
given number of characters.""" given number of characters."""
return self.tk.split(self.tk.call( return self.tk.splitlist(self.tk.call(
self, 'size', 'row', index, *self._options({}, kw))) self, 'size', 'row', index, *self._options({}, kw)))
def unset(self, x, y): def unset(self, x, y):