From fe7062371c1bd15e20b9bcb224292cd42bf3649f Mon Sep 17 00:00:00 2001 From: Andrew Psaltis Date: Sat, 21 Feb 2009 19:36:57 -0500 Subject: [PATCH 1/3] curses/wicd-curses.py: Console display defaults to raw_display now, added -c argument to select curses_display curses/README,in/man=wicd-curses.8.in: Updated stuff done in wicd-curses.py --- curses/README | 3 +-- curses/wicd-curses.py | 13 +++++++++---- in/man=wicd-curses.8.in | 11 +++++++++-- setup.py | 2 +- 4 files changed, 20 insertions(+), 9 deletions(-) diff --git a/curses/README b/curses/README index 377b764..3e5df9d 100644 --- a/curses/README +++ b/curses/README @@ -44,8 +44,7 @@ What is wicd-curses? Why didn't you call it wicd-urwid? There is a hachoir-urwid package out there. I first called this "urwicd". However, due to the relative obscurity of the urwid package, and the fact that many more people know what "curses" - is, I named it wicd-curses. After all, it _does_ use curses (by default, - anyway). + is, I named it wicd-curses. Why don't you support lower-case keybindings for most of the commands? I was trying to prevent mass chaos from happening because of mashing keys. diff --git a/curses/wicd-curses.py b/curses/wicd-curses.py index 0428085..01dc154 100644 --- a/curses/wicd-curses.py +++ b/curses/wicd-curses.py @@ -865,12 +865,14 @@ def main(): # Import the screen based on whatever the user picked. # The raw_display will have some features that may be useful to users # later - if options.rawscreen: + parser.set_defaults(screen='raw') + if options.screen == 'raw': import urwid.raw_display ui = urwid.raw_display.Screen() - else: + elif options.screen is 'curses': import urwid.curses_display ui = urwid.curses_display.Screen() + # Default Color scheme. # Other potential color schemes can be found at: # http://excess.org/urwid/wiki/RecommendedPalette @@ -952,8 +954,11 @@ setup_dbus() ######################################## if __name__ == '__main__': parser = OptionParser(version="wicd-curses-%s (using wicd %s)" % (CURSES_REVNO,daemon.Hello())) - parser.add_option("-r", "--raw-screen",action="store_true",dest='rawscreen', - help="use urwid's raw screen controller") + # raw = True. curses = False + parser.set_defaults(screen='raw') + parser.add_option("-r", "--raw-screen",action="store_const",const='raw' + ,dest='screen',help="use urwid's raw screen controller (default)") + parser.add_option("-c", "--curses-screen",action="store_const",const='curses',dest='screen',help="use urwid's curses screen controller") (options,args) = parser.parse_args() main() # Make sure that the terminal does not try to overwrite the last line of diff --git a/in/man=wicd-curses.8.in b/in/man=wicd-curses.8.in index 9e0e549..99cfd68 100644 --- a/in/man=wicd-curses.8.in +++ b/in/man=wicd-curses.8.in @@ -1,5 +1,5 @@ .\" First revision was r203 -.TH WICD-CURSES "8" "January 2009" "wicd-curses-%CURSES_REVNO%" +.TH WICD-CURSES "8" "February 2009" "wicd-curses-%CURSES_REVNO%" .SH NAME .B wicd-curses \- curses-based wicd(8) controller @@ -12,7 +12,14 @@ This man page only documents the current status of wicd-curses. This may/may no .SH "ARGUMENTS" .TP .BR "\-r" , " \-\-raw\-screen" -Use Urwid's raw console display, instead of the (faster) curses-based one. This may be useful if you are experiencing unicode problems. +Use Urwid's raw console display. This is the default, and has several +advantages over the faster curses display, inculding fully functional unicode +and internationalization support. +.TP +.BR "\-c" , " \-\-curses\-screen" +Use Urwid's curses display. This may be faster than the default raw +display, but it lacks proper unicode support. This is fine to use if your +language of choice only uses Latin characters. .SH CONTROLS All of these are case sensitive. .TP diff --git a/setup.py b/setup.py index 1ab38bc..f55b4a4 100755 --- a/setup.py +++ b/setup.py @@ -28,7 +28,7 @@ import subprocess VERSION_NUM = '1.6.0a1' # REVISION_NUM is automatically updated REVISION_NUM = 'unknown' -CURSES_REVNO = 'r275' +CURSES_REVNO = 'r278' try: if not os.path.exists('vcsinfo.py'): From 432f1c96ca1458702bd1167c5a8bf298cbe04b68 Mon Sep 17 00:00:00 2001 From: Andrew Psaltis Date: Sat, 28 Feb 2009 08:40:02 -0500 Subject: [PATCH 2/3] curses/netentry_curses.py: Made the password field actually keep its "passwordiness" when we go to the buttons. in/scripts=wicd-client.in: Added support for X being off and wicd-curses not being there --- curses/netentry_curses.py | 15 ++++++++++----- in/scripts=wicd-client.in | 39 ++++++++++++++++++++++++--------------- 2 files changed, 34 insertions(+), 20 deletions(-) diff --git a/curses/netentry_curses.py b/curses/netentry_curses.py index c00c887..3eaccf4 100644 --- a/curses/netentry_curses.py +++ b/curses/netentry_curses.py @@ -192,11 +192,16 @@ class AdvancedSettingsDialog(urwid.WidgetWrap): self.overlay.mouse_event( dim, event, button, col, row, focus=True) - k = self.overlay.keypress(dim, k) - if k in ('up','page up'): - self._w.set_focus('body') - elif k in ('down','page down'): - self._w.set_focus('footer') + else: + k = self.overlay.keypress(dim, k) + if k in ('up','page up'): + self._w.set_focus('body') + # Until I figure out a better way to do this, then this will + # have to do. + self._w.body.get_focus()[0].get_focus()._invalidate() + #self._w.body.keypress(dim,'down') + elif k in ('down','page down'): + self._w.set_focus('footer') if "window resize" in keys: dim = ui.get_cols_rows() diff --git a/in/scripts=wicd-client.in b/in/scripts=wicd-client.in index 776581f..ada45f7 100755 --- a/in/scripts=wicd-client.in +++ b/in/scripts=wicd-client.in @@ -10,18 +10,19 @@ fi if [ -e "%DOCDIR%WHEREAREMYFILES" ] && [ ! -L "$HOME/.wicd/WHEREAREMYFILES" ]; then ln -s "%DOCDIR%WHEREAREMYFILES" "$HOME/.wicd/WHEREAREMYFILES" fi -if [ "$DISPLAY" = "" ] && [ -x "%BIN%wicd-curses" ]; then - if [ ! -f "$HOME/.wicd/CLIENT_CURSES_WARNING" ]; then - printf "NOTICE: You do not have an X server active on this console, \n" - printf "so ${BOLD}${BLUE}wicd-curses${NC} will be started instead. \n" - printf "Please see the wicd-client and/or wicd-curses manual pages \n" - printf "for more information about this error and resulting message. \n" - printf "\n" - printf "This message will not be displayed again. \n" - printf "Press enter to continue... \n" +if [ "$DISPLAY" = "" ]; then + if [ -x "%BIN%wicd-curses" ]; then + if [ ! -f "$HOME/.wicd/CLIENT_CURSES_WARNING" ]; then + printf "NOTICE: You do not have an X server active on this console, \n" + printf "so ${BOLD}${BLUE}wicd-curses${NC} will be started instead. \n" + printf "Please see the wicd-client and/or wicd-curses manual pages \n" + printf "for more information about this error and resulting message. \n" + printf "\n" + printf "This message will not be displayed again. \n" + printf "Press enter to continue... \n" - read _junk - cat >> "$HOME/.wicd/CLIENT_CURSES_WARNING" << EOF + read _junk + cat >> "$HOME/.wicd/CLIENT_CURSES_WARNING" << EOF The wicd-client script checks for the existence of this file to determine whether it should warn the user before launching wicd-curses instead, in the event of the gui client being launched outside of the X Window environment. @@ -29,8 +30,16 @@ the event of the gui client being launched outside of the X Window environment. If you delete this file, then wicd-client will print the warning if it is launched outside of X (and then recreate this file again). EOF - fi - exec %BIN%wicd-curses -fi + fi + exec %BIN%wicd-curses + + else + printf "NOTICE: You do not have an X server active on this console, \n" + printf "but you do not appear to have ${BOLD}${BLUE}wicd-curses${NC}\n" + printf "installed on this system. We'd normally be running it here.\n" + printf "Please see the wicd-client manual page for more information.\n" -exec python -O %LIB%wicd-client.py $@ + fi +else + exec python -O %LIB%wicd-client.py $@ +fi From 46ddb419660c70d030aef08fdbe03b97b0bf8d27 Mon Sep 17 00:00:00 2001 From: Andrew Psaltis Date: Sat, 7 Mar 2009 11:34:22 -0500 Subject: [PATCH 3/3] Fixed translations.py support in wicd-curses. --- curses/netentry_curses.py | 4 ---- curses/prefs_curses.py | 2 -- curses/wicd-curses.py | 2 -- wicd/translations.py | 1 - 4 files changed, 9 deletions(-) mode change 100755 => 100644 curses/prefs_curses.py mode change 100644 => 100755 curses/wicd-curses.py diff --git a/curses/netentry_curses.py b/curses/netentry_curses.py index 99e9086..0beed28 100644 --- a/curses/netentry_curses.py +++ b/curses/netentry_curses.py @@ -26,11 +26,7 @@ from curses_misc import TextDialog,DynWrap,MaskingEdit,ComboBox,error import wicd.misc as misc from wicd.misc import noneToString, stringToNone, noneToBlankString, to_bool - - from wicd.translations import language -for i in language.keys(): - language[i] = language[i].decode('utf8') daemon = None wired = None diff --git a/curses/prefs_curses.py b/curses/prefs_curses.py old mode 100755 new mode 100644 index c13d756..20d45d2 --- a/curses/prefs_curses.py +++ b/curses/prefs_curses.py @@ -29,8 +29,6 @@ wireless = None wired = None from wicd.translations import language -for i in language.keys(): - language[i] = language[i].decode('utf8') class PrefsDialog(urwid.WidgetWrap): def __init__(self,body,pos,ui,dbus=None): diff --git a/curses/wicd-curses.py b/curses/wicd-curses.py old mode 100644 new mode 100755 index 71b2319..323d7e8 --- a/curses/wicd-curses.py +++ b/curses/wicd-curses.py @@ -866,7 +866,6 @@ def main(): # Import the screen based on whatever the user picked. # The raw_display will have some features that may be useful to users # later - parser.set_defaults(screen='raw') if options.screen == 'raw': import urwid.raw_display ui = urwid.raw_display.Screen() @@ -955,7 +954,6 @@ setup_dbus() ######################################## if __name__ == '__main__': parser = OptionParser(version="wicd-curses-%s (using wicd %s)" % (CURSES_REVNO,daemon.Hello())) - # raw = True. curses = False parser.set_defaults(screen='raw') parser.add_option("-r", "--raw-screen",action="store_const",const='raw' ,dest='screen',help="use urwid's raw screen controller (default)") diff --git a/wicd/translations.py b/wicd/translations.py index e9523b1..397236c 100644 --- a/wicd/translations.py +++ b/wicd/translations.py @@ -1,6 +1,5 @@ #!/usr/bin/env python # -* coding: utf-8 -*- -# ^^ why do I need this? # # Copyright (C) 2007 - 2009 Adam Blackburn