diff --git a/TermTk/TTkWidgets/__init__.py b/TermTk/TTkWidgets/__init__.py index bbe23191..473fc6a1 100644 --- a/TermTk/TTkWidgets/__init__.py +++ b/TermTk/TTkWidgets/__init__.py @@ -14,7 +14,7 @@ from .scrollbar import * from .scrollarea import * from .window import * from .tabwidget import * -from .list import * +from .list_ import * from .listwidget import * from .table import * from .tableview import * diff --git a/TermTk/TTkWidgets/combobox.py b/TermTk/TTkWidgets/combobox.py index e5362f85..e7048567 100644 --- a/TermTk/TTkWidgets/combobox.py +++ b/TermTk/TTkWidgets/combobox.py @@ -31,7 +31,7 @@ from TermTk.TTkCore.helper import TTkHelper from TermTk.TTkLayouts.gridlayout import TTkGridLayout from TermTk.TTkWidgets.widget import TTkWidget from TermTk.TTkWidgets.button import TTkButton -from TermTk.TTkWidgets.list import TTkList +from TermTk.TTkWidgets.list_ import TTkList from TermTk.TTkWidgets.lineedit import TTkLineEdit from TermTk.TTkWidgets.resizableframe import TTkResizableFrame @@ -58,7 +58,7 @@ class TTkComboBox(TTkWidget): def _lineEditChanged(self): text = self._lineEdit.text() - self._id + self._id=-1 if text in self._list: self._id = self._list.index(text) elif self._insertPolicy == TTkK.NoInsert: @@ -83,6 +83,23 @@ class TTkComboBox(TTkWidget): self.currentTextChanged.emit(text) self.editTextChanged.emit(text) + def addItem(self,item): + self._list.append(item) + self.update() + + def addItems(self,items): + for item in items: + self.addItem(item) + + def clear(self): + self._lineEdit.setText("") + self._list = [] + self._id = -1 + self.update() + + def lineEdit(self): + return self._lineEdit if self._editable else None + def resizeEvent(self, w: int, h: int): w,h = self.size() self._lineEdit.setGeometry(1,0,w-4,h) @@ -112,6 +129,16 @@ class TTkComboBox(TTkWidget): return self._list[self._id] return "" + def currentIndex(self): + return self._id + + @pyTTkSlot(int) + def setCurrentIndex(self, index): + self._id = index + self._lineEdit.setText(self.currentText()) + self.currentIndexChanged.emit(self._id) + self.update() + def insertPolicy(self): return self._insertPolicy diff --git a/TermTk/TTkWidgets/lineedit.py b/TermTk/TTkWidgets/lineedit.py index 01afd647..ea3e5180 100644 --- a/TermTk/TTkWidgets/lineedit.py +++ b/TermTk/TTkWidgets/lineedit.py @@ -64,7 +64,7 @@ class TTkLineEdit(TTkWidget): if text != self._text: self.textChanged.emit(text) self._text = text - self._cursorPos = min(len(text)-1,self._cursorPos) + self._cursorPos = min(len(text),self._cursorPos) self.update() def text(self): diff --git a/TermTk/TTkWidgets/list.py b/TermTk/TTkWidgets/list_.py similarity index 94% rename from TermTk/TTkWidgets/list.py rename to TermTk/TTkWidgets/list_.py index c4a90f62..b6eae5e9 100644 --- a/TermTk/TTkWidgets/list.py +++ b/TermTk/TTkWidgets/list_.py @@ -33,9 +33,9 @@ class TTkList(TTkAbstractScrollArea): __slots__ = ( '_listView', 'itemClicked', 'textClicked', # Forwarded Methods - 'items', 'addItem', 'addItemAt', 'indexOf', 'itemAt', - 'moveItem', 'removeAt', 'removeItem', - 'setSelectionMode', 'selectedItems', 'selectedLabels', + 'items', 'addItem', 'addItemAt', 'indexOf', 'itemAt', + 'moveItem', 'removeAt', 'removeItem', + 'setSelectionMode', 'selectedItems', 'selectedLabels', 'setCurrentRow', 'setCurrentItem', ) def __init__(self, *args, **kwargs): diff --git a/TermTk/TTkWidgets/menubar.py b/TermTk/TTkWidgets/menubar.py index 6f4389dc..33e8b5cb 100644 --- a/TermTk/TTkWidgets/menubar.py +++ b/TermTk/TTkWidgets/menubar.py @@ -124,7 +124,7 @@ class TTkMenuButton(TTkAbstractListItem): self.menuButtonClicked.emit(self) return # Import here to avoid circular import - from TermTk.TTkWidgets.list import TTkList + from TermTk.TTkWidgets.list_ import TTkList from TermTk.TTkWidgets.resizableframe import TTkResizableFrame # Stupid way to find out if I am a submenu diff --git a/demo/demo.old.py b/demo/demo.old.py index 34b8074c..fbfeeb4d 100755 --- a/demo/demo.old.py +++ b/demo/demo.old.py @@ -39,7 +39,7 @@ from showcase.splitter import demoSplitter from showcase.windows import demoWindows from showcase.formwidgets import demoFormWidgets from showcase.scrollarea import demoScrollArea -from showcase.list import demoList +from showcase.list_ import demoList from showcase.menubar import demoMenuBar from showcase.colorpicker import demoColorPicker diff --git a/demo/demo.py b/demo/demo.py index f977de55..530e386c 100755 --- a/demo/demo.py +++ b/demo/demo.py @@ -40,7 +40,7 @@ from showcase.splitter import demoSplitter from showcase.windows import demoWindows from showcase.formwidgets import demoFormWidgets from showcase.scrollarea import demoScrollArea -from showcase.list import demoList +from showcase.list_ import demoList from showcase.menubar import demoMenuBar from showcase.colorpicker import demoColorPicker