mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
UI tweak to column select
This commit is contained in:
parent
f9d2bcce04
commit
8114fc7bc2
@ -51,6 +51,7 @@ from invokeai.frontend.install.model_install import addModelsForm, process_and_e
|
|||||||
# TO DO - Move all the frontend code into invokeai.frontend.install
|
# TO DO - Move all the frontend code into invokeai.frontend.install
|
||||||
from invokeai.frontend.install.widgets import (
|
from invokeai.frontend.install.widgets import (
|
||||||
SingleSelectColumns,
|
SingleSelectColumns,
|
||||||
|
SingleSelectColumnsSimple,
|
||||||
MultiSelectColumns,
|
MultiSelectColumns,
|
||||||
CenteredButtonPress,
|
CenteredButtonPress,
|
||||||
FileBox,
|
FileBox,
|
||||||
@ -384,7 +385,7 @@ Use cursor arrows to make a checkbox selection, and space to toggle.
|
|||||||
)
|
)
|
||||||
self.nextrely -= 2
|
self.nextrely -= 2
|
||||||
self.precision = self.add_widget_intelligent(
|
self.precision = self.add_widget_intelligent(
|
||||||
SingleSelectColumns,
|
SingleSelectColumnsSimple,
|
||||||
columns=len(PRECISION_CHOICES),
|
columns=len(PRECISION_CHOICES),
|
||||||
name="Precision",
|
name="Precision",
|
||||||
values=PRECISION_CHOICES,
|
values=PRECISION_CHOICES,
|
||||||
@ -405,7 +406,7 @@ Use cursor arrows to make a checkbox selection, and space to toggle.
|
|||||||
)
|
)
|
||||||
self.nextrely -= 2
|
self.nextrely -= 2
|
||||||
self.device = self.add_widget_intelligent(
|
self.device = self.add_widget_intelligent(
|
||||||
SingleSelectColumns,
|
SingleSelectColumnsSimple,
|
||||||
columns=len(DEVICE_CHOICES),
|
columns=len(DEVICE_CHOICES),
|
||||||
values=DEVICE_CHOICES,
|
values=DEVICE_CHOICES,
|
||||||
value=DEVICE_CHOICES.index(device),
|
value=DEVICE_CHOICES.index(device),
|
||||||
@ -425,7 +426,7 @@ Use cursor arrows to make a checkbox selection, and space to toggle.
|
|||||||
)
|
)
|
||||||
self.nextrely -= 2
|
self.nextrely -= 2
|
||||||
self.attention_type = self.add_widget_intelligent(
|
self.attention_type = self.add_widget_intelligent(
|
||||||
SingleSelectColumns,
|
SingleSelectColumnsSimple,
|
||||||
columns=len(ATTENTION_CHOICES),
|
columns=len(ATTENTION_CHOICES),
|
||||||
values=ATTENTION_CHOICES,
|
values=ATTENTION_CHOICES,
|
||||||
value=ATTENTION_CHOICES.index(attention_type),
|
value=ATTENTION_CHOICES.index(attention_type),
|
||||||
@ -447,7 +448,7 @@ Use cursor arrows to make a checkbox selection, and space to toggle.
|
|||||||
)
|
)
|
||||||
self.nextrely -= 2
|
self.nextrely -= 2
|
||||||
self.attention_slice_size = self.add_widget_intelligent(
|
self.attention_slice_size = self.add_widget_intelligent(
|
||||||
SingleSelectColumns,
|
SingleSelectColumnsSimple,
|
||||||
columns=len(ATTENTION_SLICE_CHOICES),
|
columns=len(ATTENTION_SLICE_CHOICES),
|
||||||
values=ATTENTION_SLICE_CHOICES,
|
values=ATTENTION_SLICE_CHOICES,
|
||||||
value=ATTENTION_SLICE_CHOICES.index(attention_slice_size),
|
value=ATTENTION_SLICE_CHOICES.index(attention_slice_size),
|
||||||
|
@ -177,6 +177,8 @@ class FloatTitleSlider(npyscreen.TitleText):
|
|||||||
|
|
||||||
|
|
||||||
class SelectColumnBase:
|
class SelectColumnBase:
|
||||||
|
"""Base class for selection widget arranged in columns."""
|
||||||
|
|
||||||
def make_contained_widgets(self):
|
def make_contained_widgets(self):
|
||||||
self._my_widgets = []
|
self._my_widgets = []
|
||||||
column_width = self.width // self.columns
|
column_width = self.width // self.columns
|
||||||
@ -253,6 +255,7 @@ class MultiSelectColumns(SelectColumnBase, npyscreen.MultiSelect):
|
|||||||
class SingleSelectWithChanged(npyscreen.SelectOne):
|
class SingleSelectWithChanged(npyscreen.SelectOne):
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
self.on_changed = None
|
||||||
|
|
||||||
def h_select(self, ch):
|
def h_select(self, ch):
|
||||||
super().h_select(ch)
|
super().h_select(ch)
|
||||||
@ -260,7 +263,7 @@ class SingleSelectWithChanged(npyscreen.SelectOne):
|
|||||||
self.on_changed(self.value)
|
self.on_changed(self.value)
|
||||||
|
|
||||||
|
|
||||||
class SingleSelectColumns(SelectColumnBase, SingleSelectWithChanged):
|
class SingleSelectColumnsSimple(SelectColumnBase, SingleSelectWithChanged):
|
||||||
def __init__(self, screen, columns: int = 1, values: list = [], **keywords):
|
def __init__(self, screen, columns: int = 1, values: list = [], **keywords):
|
||||||
self.columns = columns
|
self.columns = columns
|
||||||
self.value_cnt = len(values)
|
self.value_cnt = len(values)
|
||||||
@ -271,9 +274,6 @@ class SingleSelectColumns(SelectColumnBase, SingleSelectWithChanged):
|
|||||||
def when_value_edited(self):
|
def when_value_edited(self):
|
||||||
self.h_select(self.cursor_line)
|
self.h_select(self.cursor_line)
|
||||||
|
|
||||||
def when_cursor_moved(self):
|
|
||||||
self.h_select(self.cursor_line)
|
|
||||||
|
|
||||||
def h_cursor_line_right(self, ch):
|
def h_cursor_line_right(self, ch):
|
||||||
self.h_exit_down("bye bye")
|
self.h_exit_down("bye bye")
|
||||||
|
|
||||||
@ -281,6 +281,11 @@ class SingleSelectColumns(SelectColumnBase, SingleSelectWithChanged):
|
|||||||
self.h_exit_up("bye bye")
|
self.h_exit_up("bye bye")
|
||||||
|
|
||||||
|
|
||||||
|
class SingleSelectColumns(SingleSelectColumnsSimple):
|
||||||
|
def when_cursor_moved(self):
|
||||||
|
self.h_select(self.cursor_line)
|
||||||
|
|
||||||
|
|
||||||
class TextBoxInner(npyscreen.MultiLineEdit):
|
class TextBoxInner(npyscreen.MultiLineEdit):
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
Loading…
Reference in New Issue
Block a user