mirror of
https://github.com/gryf/wicd.git
synced 2025-12-20 04:48:00 +01:00
Prevent empty or whitespace-only wired profile names in wicd-curses.
Did some code cleanup in curses/curses_misc.py
This commit is contained in:
@@ -33,10 +33,6 @@ def error(ui,parent,message):
|
|||||||
dialog = TextDialog(message,6,40,('important',"ERROR"))
|
dialog = TextDialog(message,6,40,('important',"ERROR"))
|
||||||
return dialog.run(ui,parent)
|
return dialog.run(ui,parent)
|
||||||
|
|
||||||
# My savior. :-)
|
|
||||||
# Although I could have made this myself pretty easily, just want to give credit
|
|
||||||
# where it's due.
|
|
||||||
# http://excess.org/urwid/browser/contrib/trunk/rbreu_filechooser.py
|
|
||||||
class SelText(urwid.Text):
|
class SelText(urwid.Text):
|
||||||
"""A selectable text widget. See urwid.Text."""
|
"""A selectable text widget. See urwid.Text."""
|
||||||
|
|
||||||
@@ -253,7 +249,7 @@ class ComboBoxException(Exception):
|
|||||||
# I based this off of the code found here:
|
# I based this off of the code found here:
|
||||||
# http://excess.org/urwid/browser/contrib/trunk/rbreu_menus.py
|
# http://excess.org/urwid/browser/contrib/trunk/rbreu_menus.py
|
||||||
# This is a hack/kludge. It isn't without quirks, but it more or less works.
|
# This is a hack/kludge. It isn't without quirks, but it more or less works.
|
||||||
# We need to wait for changes in urwid's Canvas controls before we can actually
|
# We need to wait for changes in urwid's Canvas API before we can actually
|
||||||
# make a real ComboBox.
|
# make a real ComboBox.
|
||||||
class ComboBox(urwid.WidgetWrap):
|
class ComboBox(urwid.WidgetWrap):
|
||||||
"""A ComboBox of text objects"""
|
"""A ComboBox of text objects"""
|
||||||
@@ -333,9 +329,8 @@ class ComboBox(urwid.WidgetWrap):
|
|||||||
str,trash = self.label.get_text()
|
str,trash = self.label.get_text()
|
||||||
|
|
||||||
self.overlay = None
|
self.overlay = None
|
||||||
#w,sensitive=True,attrs=('editbx','editnfc'),focus_attr='editfc')
|
|
||||||
self.cbox = DynWrap(SelText(self.DOWN_ARROW),attrs=attrs,focus_attr=focus_attr)
|
self.cbox = DynWrap(SelText(self.DOWN_ARROW),attrs=attrs,focus_attr=focus_attr)
|
||||||
# Unicode will kill me sooner or later. ^_^
|
# Unicode will kill me sooner or later.
|
||||||
if label != '':
|
if label != '':
|
||||||
w = urwid.Columns([('fixed',len(str),self.label),self.cbox],dividechars=1)
|
w = urwid.Columns([('fixed',len(str),self.label),self.cbox],dividechars=1)
|
||||||
else:
|
else:
|
||||||
@@ -344,10 +339,9 @@ class ComboBox(urwid.WidgetWrap):
|
|||||||
|
|
||||||
# We need this to pick our keypresses
|
# We need this to pick our keypresses
|
||||||
self.use_enter = use_enter
|
self.use_enter = use_enter
|
||||||
# The Focus
|
|
||||||
self.focus = focus
|
self.focus = focus
|
||||||
|
|
||||||
# The callback and friends
|
|
||||||
self.callback = callback
|
self.callback = callback
|
||||||
self.user_args = user_args
|
self.user_args = user_args
|
||||||
|
|
||||||
@@ -442,11 +436,6 @@ class Dialog2(urwid.WidgetWrap):
|
|||||||
urwid.Divider()] )
|
urwid.Divider()] )
|
||||||
w = self.frame
|
w = self.frame
|
||||||
self.view = w
|
self.view = w
|
||||||
|
|
||||||
# pad area around listbox
|
|
||||||
#w = urwid.Padding(w, ('fixed left',2), ('fixed right',2))
|
|
||||||
#w = urwid.Filler(w, ('fixed top',1), ('fixed bottom',1))
|
|
||||||
#w = urwid.AttrWrap(w, 'body')
|
|
||||||
|
|
||||||
# buttons: tuple of name,exitcode
|
# buttons: tuple of name,exitcode
|
||||||
def add_buttons(self, buttons):
|
def add_buttons(self, buttons):
|
||||||
@@ -503,8 +492,6 @@ class Dialog2(urwid.WidgetWrap):
|
|||||||
class TextDialog(Dialog2):
|
class TextDialog(Dialog2):
|
||||||
def __init__(self, text, height, width, header=None,align='left'):
|
def __init__(self, text, height, width, header=None,align='left'):
|
||||||
l = [urwid.Text(text)]
|
l = [urwid.Text(text)]
|
||||||
#for line in text:
|
|
||||||
# l.append( urwid.Text( line,align=align))
|
|
||||||
body = urwid.ListBox(l)
|
body = urwid.ListBox(l)
|
||||||
body = urwid.AttrWrap(body, 'body')
|
body = urwid.AttrWrap(body, 'body')
|
||||||
|
|
||||||
@@ -596,7 +583,6 @@ class OptCols(urwid.WidgetWrap):
|
|||||||
else:
|
else:
|
||||||
key += part
|
key += part
|
||||||
|
|
||||||
#theText = urwid.Text([(attrs[0],cmd[0]),(attrs[1],cmd[1])])
|
|
||||||
if debug:
|
if debug:
|
||||||
callback = self.debugClick
|
callback = self.debugClick
|
||||||
args = cmd[1]
|
args = cmd[1]
|
||||||
@@ -608,9 +594,6 @@ class OptCols(urwid.WidgetWrap):
|
|||||||
('fixed',len(key)+1,urwid.Text((attrs[0],key+':')) ),
|
('fixed',len(key)+1,urwid.Text((attrs[0],key+':')) ),
|
||||||
urwid.AttrWrap(urwid.Text(cmd[1]),attrs[1])],
|
urwid.AttrWrap(urwid.Text(cmd[1]),attrs[1])],
|
||||||
callback,args)
|
callback,args)
|
||||||
#if i != len(tuples)-1:
|
|
||||||
# textList.append(('fixed',maxlen,col))
|
|
||||||
#else: # The last one
|
|
||||||
textList.append(col)
|
textList.append(col)
|
||||||
i+=1
|
i+=1
|
||||||
if debug:
|
if debug:
|
||||||
@@ -625,19 +608,3 @@ class OptCols(urwid.WidgetWrap):
|
|||||||
def mouse_event(self,size,event,button,x,y,focus):
|
def mouse_event(self,size,event,button,x,y,focus):
|
||||||
# Widgets are evenly long (as of current), so...
|
# Widgets are evenly long (as of current), so...
|
||||||
return self._w.mouse_event(size,event,button,x,y,focus)
|
return self._w.mouse_event(size,event,button,x,y,focus)
|
||||||
"""
|
|
||||||
if self.debug:
|
|
||||||
if x > size[0]-10:
|
|
||||||
return
|
|
||||||
widsize = (size[0]-10)/len(self.callbacks)
|
|
||||||
else:
|
|
||||||
widsize = size[0]/len(self.callbacks)
|
|
||||||
widnum = x/widsize
|
|
||||||
if self.debug:
|
|
||||||
text = str(widnum)
|
|
||||||
if self.callbacks[widnum] == None:
|
|
||||||
text += " None"
|
|
||||||
self.debug.set_text(text)
|
|
||||||
elif self.callbacks[widnum] != None:
|
|
||||||
self.callbacks[widnum]()
|
|
||||||
"""
|
|
||||||
|
|||||||
@@ -383,18 +383,25 @@ class WiredComboBox(ComboBox):
|
|||||||
|
|
||||||
def keypress(self,size,key):
|
def keypress(self,size,key):
|
||||||
prev_focus = self.get_focus()[1]
|
prev_focus = self.get_focus()[1]
|
||||||
key = self.__super.keypress(size,key)
|
key = ComboBox.keypress(self,size,key)
|
||||||
if self.get_focus()[1] == len(self.list)-1:
|
if key == ' ':
|
||||||
dialog = InputDialog(('header',language["add_new_wired_profile"]),7,30)
|
if self.get_focus()[1] == len(self.list)-1:
|
||||||
|
dialog = InputDialog(('header',language["add_new_wired_profile"]),7,30)
|
||||||
exitcode,name = dialog.run(ui,self.parent)
|
exitcode,name = dialog.run(ui,self.parent)
|
||||||
if exitcode == 0:
|
if exitcode == 0:
|
||||||
wired.CreateWiredNetworkProfile(name,False)
|
name = name.strip()
|
||||||
self.set_list(wired.GetWiredProfileList())
|
if not name:
|
||||||
self.rebuild_combobox()
|
error(ui,self.parent,'Invalid profile name')
|
||||||
self.set_focus(prev_focus)
|
self.set_focus(prev_focus)
|
||||||
else:
|
return key
|
||||||
wired.ReadWiredNetworkProfile(self.get_selected_profile())
|
|
||||||
|
wired.CreateWiredNetworkProfile(name,False)
|
||||||
|
self.set_list(wired.GetWiredProfileList())
|
||||||
|
self.rebuild_combobox()
|
||||||
|
self.set_focus(prev_focus)
|
||||||
|
else:
|
||||||
|
print "updating..."
|
||||||
|
wired.ReadWiredNetworkProfile(self.get_selected_profile())
|
||||||
if key == 'delete':
|
if key == 'delete':
|
||||||
if len(self.theList) == 1:
|
if len(self.theList) == 1:
|
||||||
error(self.ui,self.parent,language["no_delete_last_profile"])
|
error(self.ui,self.parent,language["no_delete_last_profile"])
|
||||||
|
|||||||
Reference in New Issue
Block a user