Skip to content
Open
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
36 changes: 20 additions & 16 deletions rofi.py
Original file line number Diff line number Diff line change
Expand Up @@ -462,7 +462,7 @@ def select(self, prompt, options, rofi_args=None, message="", select=None, **kwa
return index, key


def generic_entry(self, prompt, validator=None, message=None, rofi_args=None, **kwargs):
def generic_entry(self, prompt, validator=None, message=None, rofi_args=None, stdin_str="", **kwargs):
"""A generic entry box.

Parameters
Expand All @@ -481,6 +481,8 @@ def generic_entry(self, prompt, validator=None, message=None, rofi_args=None, **
user entered is returned as-is.
message: string
Optional message to display under the entry.
stdin_str: string
Optional string to pass to rofi stdin.

Returns
-------
Expand Down Expand Up @@ -517,7 +519,7 @@ def generic_entry(self, prompt, validator=None, message=None, rofi_args=None, **
args.extend(rofi_args)

# Run it.
returncode, stdout = self._run_blocking(args, input="")
returncode, stdout = self._run_blocking(args, input=stdin_str)

# Was the dialog cancelled?
if returncode == 1:
Expand All @@ -534,7 +536,7 @@ def generic_entry(self, prompt, validator=None, message=None, rofi_args=None, **


def text_entry(self, prompt, message=None, allow_blank=False, strip=True,
rofi_args=None, **kwargs):
rofi_args=None, stdin_str="", **kwargs):
"""Prompt the user to enter a piece of text.

Parameters
Expand All @@ -548,6 +550,8 @@ def text_entry(self, prompt, message=None, allow_blank=False, strip=True,
strip: Boolean
Whether to strip leading and trailing whitespace from the entered
value.
stdin_str: String
String to pass to rofi stdin.

Returns
-------
Expand All @@ -563,10 +567,10 @@ def text_validator(text):

return text, None

return self.generic_entry(prompt, text_validator, message, rofi_args, **kwargs)
return self.generic_entry(prompt, text_validator, message, rofi_args, stdin_str, **kwargs)


def integer_entry(self, prompt, message=None, min=None, max=None, rofi_args=None, **kwargs):
def integer_entry(self, prompt, message=None, min=None, max=None, rofi_args=None, stdin_str="", **kwargs):
"""Prompt the user to enter an integer.

Parameters
Expand Down Expand Up @@ -604,10 +608,10 @@ def integer_validator(text):

return value, None

return self.generic_entry(prompt, integer_validator, message, rofi_args, **kwargs)
return self.generic_entry(prompt, integer_validator, message, rofi_args, stdin_str, **kwargs)


def float_entry(self, prompt, message=None, min=None, max=None, rofi_args=None, **kwargs):
def float_entry(self, prompt, message=None, min=None, max=None, rofi_args=None, stdin_str="", **kwargs):
"""Prompt the user to enter a floating point number.

Parameters
Expand Down Expand Up @@ -645,10 +649,10 @@ def float_validator(text):

return value, None

return self.generic_entry(prompt, float_validator, message, rofi_args, **kwargs)
return self.generic_entry(prompt, float_validator, message, rofi_args, stdin_str,stdin_str, **kwargs)


def decimal_entry(self, prompt, message=None, min=None, max=None, rofi_args=None, **kwargs):
def decimal_entry(self, prompt, message=None, min=None, max=None, rofi_args=None, stdin_str="", **kwargs):
"""Prompt the user to enter a decimal number.

Parameters
Expand Down Expand Up @@ -686,11 +690,11 @@ def decimal_validator(text):

return value, None

return self.generic_entry(prompt, decimal_validator, message, rofi_args, **kwargs)
return self.generic_entry(prompt, decimal_validator, message, rofi_args, stdin_str, **kwargs)


def date_entry(self, prompt, message=None, formats=['%x', '%d/%m/%Y'],
show_example=False, rofi_args=None, **kwargs):
show_example=False, rofi_args=None, stdin_str="", **kwargs):
"""Prompt the user to enter a date.

Parameters
Expand Down Expand Up @@ -734,11 +738,11 @@ def date_validator(text):
message = message or ""
message += "Today's date in the correct format: " + datetime.now().strftime(formats[0])

return self.generic_entry(prompt, date_validator, message, rofi_args, **kwargs)
return self.generic_entry(prompt, date_validator, message, rofi_args, stdin_str, **kwargs)


def time_entry(self, prompt, message=None, formats=['%X', '%H:%M', '%I:%M', '%H.%M',
'%I.%M'], show_example=False, rofi_args=None, **kwargs):
'%I.%M'], show_example=False, rofi_args=None, stdin_str="", **kwargs):
"""Prompt the user to enter a time.

Parameters
Expand Down Expand Up @@ -782,11 +786,11 @@ def time_validator(text):
message = message or ""
message += "Current time in the correct format: " + datetime.now().strftime(formats[0])

return self.generic_entry(prompt, time_validator, message, rofi_args=None, **kwargs)
return self.generic_entry(prompt, time_validator, message, rofi_args=None, stdin_str = stdin_str, **kwargs)


def datetime_entry(self, prompt, message=None, formats=['%x %X'], show_example=False,
rofi_args=None, **kwargs):
rofi_args=None, stdin_str="", **kwargs):
"""Prompt the user to enter a date and time.

Parameters
Expand Down Expand Up @@ -830,7 +834,7 @@ def datetime_validator(text):
message = message or ""
message += "Current date and time in the correct format: " + datetime.now().strftime(formats[0])

return self.generic_entry(prompt, datetime_validator, message, rofi_args, **kwargs)
return self.generic_entry(prompt, datetime_validator, message, rofi_args, stdin_str, **kwargs)


def exit_with_error(self, error, **kwargs):
Expand Down