Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
poezio
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
205
Issues
205
List
Boards
Labels
Service Desk
Milestones
Merge Requests
10
Merge Requests
10
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
poezio
poezio
Commits
8b6c0c5a
Commit
8b6c0c5a
authored
Jan 25, 2011
by
louiz’
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
data-forms: an help message
parent
6a0346a1
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
52 additions
and
5 deletions
+52
-5
src/data_forms.py
src/data_forms.py
+49
-4
src/windows.py
src/windows.py
+3
-1
No files found.
src/data_forms.py
View file @
8b6c0c5a
...
...
@@ -41,8 +41,9 @@ class DataFormsTab(Tab):
self
.
fields
.
append
(
field
)
self
.
topic_win
=
windows
.
Topic
()
self
.
tab_win
=
windows
.
GlobalInfoBar
()
self
.
form_win
=
FormWin
(
form
,
self
.
height
-
3
,
self
.
width
,
1
,
0
)
self
.
form_win
=
FormWin
(
form
,
self
.
height
-
4
,
self
.
width
,
1
,
0
)
self
.
help_win
=
windows
.
HelpText
(
"Ctrl+Y: send form, Ctrl+G: cancel"
)
self
.
help_win_dyn
=
windows
.
HelpText
()
self
.
key_func
[
'KEY_UP'
]
=
self
.
form_win
.
go_to_previous_input
self
.
key_func
[
'KEY_DOWN'
]
=
self
.
form_win
.
go_to_next_input
self
.
key_func
[
'^G'
]
=
self
.
on_cancel
...
...
@@ -59,21 +60,27 @@ class DataFormsTab(Tab):
def
on_input
(
self
,
key
):
if
key
in
self
.
key_func
:
return
self
.
key_func
[
key
]()
self
.
form_win
.
on_input
(
key
)
res
=
self
.
key_func
[
key
]()
self
.
help_win_dyn
.
refresh
(
self
.
form_win
.
get_help_message
())
self
.
form_win
.
refresh
()
return
res
else
:
self
.
form_win
.
on_input
(
key
)
def
resize
(
self
):
Tab
.
resize
(
self
)
self
.
topic_win
.
resize
(
1
,
self
.
width
,
0
,
0
,
self
.
core
.
stdscr
)
self
.
tab_win
.
resize
(
1
,
self
.
width
,
self
.
height
-
2
,
0
,
self
.
core
.
stdscr
)
self
.
form_win
.
resize
(
self
.
height
-
3
,
self
.
width
,
1
,
0
)
self
.
form_win
.
resize
(
self
.
height
-
4
,
self
.
width
,
1
,
0
)
self
.
help_win
.
resize
(
1
,
self
.
width
,
self
.
height
-
1
,
0
,
None
)
self
.
help_win_dyn
.
resize
(
1
,
self
.
width
,
self
.
height
-
3
,
0
,
None
)
self
.
lines
=
[]
def
refresh
(
self
,
tabs
,
informations
,
_
):
self
.
topic_win
.
refresh
(
self
.
_form
[
'title'
])
self
.
tab_win
.
refresh
(
tabs
,
tabs
[
0
])
self
.
help_win
.
refresh
()
self
.
help_win_dyn
.
refresh
(
self
.
form_win
.
get_help_message
())
self
.
form_win
.
refresh
()
class
FieldInput
(
object
):
...
...
@@ -105,6 +112,13 @@ class FieldInput(object):
"""
raise
NotImplementedError
def
get_help_message
(
self
):
"""
Should return a string explaining the keys of the input.
Will be displayed at each refresh on a line at the bottom of the tab.
"""
return
''
class
DummyInput
(
FieldInput
,
windows
.
Win
):
def
__init__
(
self
,
field
):
FieldInput
.
__init__
(
self
,
field
)
...
...
@@ -150,6 +164,9 @@ class BooleanWin(FieldInput, windows.Win):
self
.
_field
[
'label'
]
=
''
self
.
_field
.
setAnswer
(
self
.
value
)
def
get_help_message
(
self
):
return
'← and →: change the value between True and False'
class
TextMultiWin
(
FieldInput
,
windows
.
Win
):
def
__init__
(
self
,
field
):
FieldInput
.
__init__
(
self
,
field
)
...
...
@@ -212,6 +229,17 @@ class TextMultiWin(FieldInput, windows.Win):
values
=
[
val
for
val
in
self
.
options
if
val
]
self
.
_field
.
setAnswer
(
values
)
def
get_help_message
(
self
):
if
not
self
.
edition_input
:
help_msg
=
'← and →: browse the available entries. '
if
self
.
val_pos
==
len
(
self
.
options
)
-
1
:
help_msg
+=
'Enter: add an entry'
else
:
help_msg
+=
'Enter: edit this entry'
else
:
help_msg
=
'Enter: finish editing this entry.'
return
help_msg
class
ListMultiWin
(
FieldInput
,
windows
.
Win
):
def
__init__
(
self
,
field
):
FieldInput
.
__init__
(
self
,
field
)
...
...
@@ -254,6 +282,9 @@ class ListMultiWin(FieldInput, windows.Win):
values
=
[
option
[
0
][
'value'
]
for
option
in
self
.
options
if
option
[
1
]
is
True
]
self
.
_field
.
setAnswer
(
values
)
def
get_help_message
(
self
):
return
'←, →: Switch between the value. Space: select or unselect a value'
class
ListSingleWin
(
FieldInput
,
windows
.
Win
):
def
__init__
(
self
,
field
):
FieldInput
.
__init__
(
self
,
field
)
...
...
@@ -295,6 +326,9 @@ class ListSingleWin(FieldInput, windows.Win):
self
.
_field
.
delOptions
()
self
.
_field
.
setAnswer
(
self
.
options
[
self
.
val_pos
][
'value'
])
def
get_help_message
(
self
):
return
'←, →: Select a value amongst the others'
class
TextSingleWin
(
FieldInput
,
windows
.
Input
):
def
__init__
(
self
,
field
):
FieldInput
.
__init__
(
self
,
field
)
...
...
@@ -308,6 +342,9 @@ class TextSingleWin(FieldInput, windows.Input):
self
.
_field
[
'label'
]
=
''
self
.
_field
.
setAnswer
(
self
.
get_text
())
def
get_help_message
(
self
):
return
'Edit the text'
class
TextPrivateWin
(
TextSingleWin
):
def
__init__
(
self
,
field
):
TextSingleWin
.
__init__
(
self
,
field
)
...
...
@@ -327,6 +364,9 @@ class TextPrivateWin(TextSingleWin):
self
.
_win
.
attroff
(
curses
.
color_pair
(
self
.
color
))
self
.
_refresh
()
def
get_help_message
(
self
):
return
'Edit the secret text'
class
FormWin
(
object
):
"""
A window, with some subwins (the various inputs).
...
...
@@ -439,3 +479,8 @@ class FormWin(object):
inp
[
'input'
].
refresh
()
self
.
inputs
[
self
.
current_input
][
'input'
].
set_color
(
13
)
self
.
inputs
[
self
.
current_input
][
'input'
].
refresh
()
def
get_help_message
(
self
):
if
self
.
inputs
[
self
.
current_input
][
'input'
]:
return
self
.
inputs
[
self
.
current_input
][
'input'
].
get_help_message
()
return
''
src/windows.py
View file @
8b6c0c5a
...
...
@@ -650,7 +650,9 @@ class HelpText(Win):
def
resize
(
self
,
height
,
width
,
y
,
x
,
stdscr
):
self
.
_resize
(
height
,
width
,
y
,
x
,
stdscr
)
def
refresh
(
self
):
def
refresh
(
self
,
txt
=
None
):
if
txt
:
self
.
txt
=
txt
with
g_lock
:
self
.
_win
.
erase
()
self
.
addstr
(
0
,
0
,
self
.
txt
[:
self
.
width
-
1
],
curses
.
color_pair
(
theme
.
COLOR_INFORMATION_BAR
))
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment