Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[3.8] bpo-33987: Add master ttk Frame to IDLE search dialogs (GH-22942) #22956

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Oct 25, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions Lib/idlelib/NEWS.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ Released on 2020-12-??
======================================


bpo-33987: Mostly finish using ttk widgets, mainly for editor,
settings, and searches. Some patches by Mark Roseman.

bpo-41775: Make 'IDLE Shell' the shell title.

bpo-35764: Rewrite the Calltips doc section.
Expand Down
14 changes: 7 additions & 7 deletions Lib/idlelib/idle_test/test_searchbase.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ def test_create_widgets(self):
def test_make_entry(self):
equal = self.assertEqual
self.dialog.row = 0
self.dialog.top = self.root
self.dialog.frame = Frame(self.root)
entry, label = self.dialog.make_entry("Test:", 'hello')
equal(label['text'], 'Test:')

Expand All @@ -89,15 +89,15 @@ def test_make_entry(self):
equal(self.dialog.row, 1)

def test_create_entries(self):
self.dialog.top = self.root
self.dialog.frame = Frame(self.root)
self.dialog.row = 0
self.engine.setpat('hello')
self.dialog.create_entries()
self.assertIn(self.dialog.ent.get(), 'hello')

def test_make_frame(self):
self.dialog.row = 0
self.dialog.top = self.root
self.dialog.frame = Frame(self.root)
frame, label = self.dialog.make_frame()
self.assertEqual(label, '')
self.assertEqual(str(type(frame)), "<class 'tkinter.ttk.Frame'>")
Expand All @@ -108,7 +108,7 @@ def test_make_frame(self):
self.assertEqual(label['text'], 'testlabel')

def btn_test_setup(self, meth):
self.dialog.top = self.root
self.dialog.frame = Frame(self.root)
self.dialog.row = 0
return meth()

Expand Down Expand Up @@ -140,13 +140,13 @@ def test_create_other_buttons(self):
self.assertEqual(var.get(), state)

def test_make_button(self):
self.dialog.top = self.root
self.dialog.buttonframe = Frame(self.dialog.top)
self.dialog.frame = Frame(self.root)
self.dialog.buttonframe = Frame(self.dialog.frame)
btn = self.dialog.make_button('Test', self.dialog.close)
self.assertEqual(btn['text'], 'Test')

def test_create_command_buttons(self):
self.dialog.top = self.root
self.dialog.frame = Frame(self.root)
self.dialog.create_command_buttons()
# Look for close button command in buttonframe
closebuttoncommand = ''
Expand Down
19 changes: 12 additions & 7 deletions Lib/idlelib/searchbase.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ def __init__(self, root, engine):
'''Initialize root, engine, and top attributes.

top (level widget): set in create_widgets() called from open().
frame: container for all widgets in dialog.
text (Text searched): set in open(), only used in subclasses().
ent (ry): created in make_entry() called from create_entry().
row (of grid): 0 in create_widgets(), +1 in make_entry/frame().
Expand Down Expand Up @@ -83,10 +84,14 @@ def create_widgets(self):
top.wm_title(self.title)
top.wm_iconname(self.icon)
self.top = top
self.frame = Frame(top, padding="5px")
self.frame.grid(sticky="nwes")
top.grid_columnconfigure(0, weight=100)
top.grid_rowconfigure(0, weight=100)

self.row = 0
self.top.grid_columnconfigure(0, pad=2, weight=0)
self.top.grid_columnconfigure(1, pad=2, minsize=100, weight=100)
self.frame.grid_columnconfigure(0, pad=2, weight=0)
self.frame.grid_columnconfigure(1, pad=2, minsize=100, weight=100)

self.create_entries() # row 0 (and maybe 1), cols 0, 1
self.create_option_buttons() # next row, cols 0, 1
Expand All @@ -99,9 +104,9 @@ def make_entry(self, label_text, var):
entry - gridded labeled Entry for text entry.
label - Label widget, returned for testing.
'''
label = Label(self.top, text=label_text)
label = Label(self.frame, text=label_text)
label.grid(row=self.row, column=0, sticky="nw")
entry = Entry(self.top, textvariable=var, exportselection=0)
entry = Entry(self.frame, textvariable=var, exportselection=0)
entry.grid(row=self.row, column=1, sticky="nwe")
self.row = self.row + 1
return entry, label
Expand All @@ -117,11 +122,11 @@ def make_frame(self,labeltext=None):
label - Label widget, returned for testing.
'''
if labeltext:
label = Label(self.top, text=labeltext)
label = Label(self.frame, text=labeltext)
label.grid(row=self.row, column=0, sticky="nw")
else:
label = ''
frame = Frame(self.top)
frame = Frame(self.frame)
frame.grid(row=self.row, column=1, columnspan=1, sticky="nwe")
self.row = self.row + 1
return frame, label
Expand Down Expand Up @@ -171,7 +176,7 @@ def make_button(self, label, command, isdef=0):

def create_command_buttons(self):
"Place buttons in vertical command frame gridded on right."
f = self.buttonframe = Frame(self.top)
f = self.buttonframe = Frame(self.frame)
f.grid(row=0,column=2,padx=2,pady=2,ipadx=2,ipady=2)

b = self.make_button("Close", self.close)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Mostly finish using ttk widgets, mainly for editor, settings,
and searches. Some patches by Mark Roseman.