Changed the message input widget to a QPlainTextEdit to be able to enter longer texts.

Wed, 28 Aug 2024 18:20:33 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 28 Aug 2024 18:20:33 +0200
changeset 12
cf507e6f12d7
parent 11
3641ea6b55d5
child 13
3fd49d7004b2

Changed the message input widget to a QPlainTextEdit to be able to enter longer texts.

OllamaInterface/OllamaHistoryWidget.ui file | annotate | diff | comparison | revisions
OllamaInterface/OllamaWidget.py file | annotate | diff | comparison | revisions
OllamaInterface/OllamaWidget.ui file | annotate | diff | comparison | revisions
OllamaInterface/Ui_OllamaHistoryWidget.py file | annotate | diff | comparison | revisions
OllamaInterface/Ui_OllamaWidget.py file | annotate | diff | comparison | revisions
--- a/OllamaInterface/OllamaHistoryWidget.ui	Tue Aug 27 14:06:50 2024 +0200
+++ b/OllamaInterface/OllamaHistoryWidget.ui	Wed Aug 28 18:20:33 2024 +0200
@@ -46,7 +46,7 @@
    <item>
     <widget class="QToolButton" name="newChatButton">
      <property name="toolTip">
-      <string>Press to start a new chat based on the current history.</string>
+      <string>Press to start a new chat based on the current history or switch to an already opened chat.</string>
      </property>
     </widget>
    </item>
--- a/OllamaInterface/OllamaWidget.py	Tue Aug 27 14:06:50 2024 +0200
+++ b/OllamaInterface/OllamaWidget.py	Wed Aug 28 18:20:33 2024 +0200
@@ -81,7 +81,7 @@
         self.historyScrollWidget.setLayout(self.__chatHistoryLayout)
         self.__chatHistoryLayout.addStretch(1)
 
-        self.mainSplitter.setSizes([200, 2000])
+        self.mainSplitter.setSizes([200, 2000, 100])
 
         self.newChatButton.setEnabled(False)
         self.__handleServerStateChanged(False)
@@ -99,7 +99,6 @@
         self.__initOllamaMenu()
 
         self.sendButton.clicked.connect(self.__sendMessage)
-        self.messageEdit.returnPressed.connect(self.__sendMessage)
 
         self.__loadHistory()
         self.__updateMessageEditState()
@@ -518,20 +517,17 @@
         button.
         """
         chatActive = bool(self.chatStackWidget.count())
-        hasText = bool(self.messageEdit.text())
+        hasText = bool(self.messageEdit.toPlainText())
 
         self.messageEdit.setEnabled(chatActive)
         self.sendButton.setEnabled(chatActive and hasText)
 
-    @pyqtSlot(str)
-    def on_messageEdit_textChanged(self, msg):
+    @pyqtSlot()
+    def on_messageEdit_textChanged(self):
         """
         Private slot to handle a change of the entered message.
-
-        @param msg text of the message line edit
-        @type str
         """
-        self.sendButton.setEnabled(bool(msg))
+        self.sendButton.setEnabled(bool(self.messageEdit.toPlainText()))
 
     @pyqtSlot()
     def __sendMessage(self):
@@ -541,7 +537,7 @@
 
         This sends the message with context (i.e. the history of the current chat).
         """
-        msg = self.messageEdit.text()
+        msg = self.messageEdit.toPlainText()
         if not msg:
             # empty message => ignore
             return
--- a/OllamaInterface/OllamaWidget.ui	Tue Aug 27 14:06:50 2024 +0200
+++ b/OllamaInterface/OllamaWidget.ui	Wed Aug 28 18:20:33 2024 +0200
@@ -90,9 +90,6 @@
      <property name="orientation">
       <enum>Qt::Vertical</enum>
      </property>
-     <property name="childrenCollapsible">
-      <bool>false</bool>
-     </property>
      <widget class="QScrollArea" name="historyScrollArea">
       <property name="sizePolicy">
        <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
@@ -112,7 +109,7 @@
          <x>0</x>
          <y>0</y>
          <width>533</width>
-         <height>641</height>
+         <height>68</height>
         </rect>
        </property>
       </widget>
@@ -125,32 +122,48 @@
        </sizepolicy>
       </property>
      </widget>
+     <widget class="QWidget" name="">
+      <layout class="QGridLayout" name="gridLayout">
+       <item row="0" column="0" rowspan="2">
+        <widget class="QPlainTextEdit" name="messageEdit">
+         <property name="toolTip">
+          <string>Enter the message to be sent to the 'ollama' server.</string>
+         </property>
+         <property name="tabChangesFocus">
+          <bool>true</bool>
+         </property>
+         <property name="placeholderText">
+          <string>Enter Message</string>
+         </property>
+        </widget>
+       </item>
+       <item row="1" column="1">
+        <spacer name="verticalSpacer">
+         <property name="orientation">
+          <enum>Qt::Vertical</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>20</width>
+           <height>40</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item row="0" column="1">
+        <widget class="QToolButton" name="sendButton">
+         <property name="enabled">
+          <bool>false</bool>
+         </property>
+         <property name="toolTip">
+          <string>Press to send the message of the current chat to the 'ollama' server.</string>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </widget>
     </widget>
    </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_3">
-     <item>
-      <widget class="QLineEdit" name="messageEdit">
-       <property name="toolTip">
-        <string>Enter the message to be sent to the 'ollama' server.</string>
-       </property>
-       <property name="placeholderText">
-        <string>Enter Message</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="sendButton">
-       <property name="enabled">
-        <bool>false</bool>
-       </property>
-       <property name="toolTip">
-        <string>Press to send the message of the current chat to the 'ollama' server.</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
   </layout>
  </widget>
  <customwidgets>
@@ -165,8 +178,6 @@
   <tabstop>newChatButton</tabstop>
   <tabstop>reloadModelsButton</tabstop>
   <tabstop>historyScrollArea</tabstop>
-  <tabstop>messageEdit</tabstop>
-  <tabstop>sendButton</tabstop>
   <tabstop>ollamaMenuButton</tabstop>
  </tabstops>
  <resources/>
--- a/OllamaInterface/Ui_OllamaHistoryWidget.py	Tue Aug 27 14:06:50 2024 +0200
+++ b/OllamaInterface/Ui_OllamaHistoryWidget.py	Wed Aug 28 18:20:33 2024 +0200
@@ -44,6 +44,6 @@
 
     def retranslateUi(self, OllamaHistoryWidget):
         _translate = QtCore.QCoreApplication.translate
-        self.newChatButton.setToolTip(_translate("OllamaHistoryWidget", "Press to start a new chat based on the current history."))
+        self.newChatButton.setToolTip(_translate("OllamaHistoryWidget", "Press to start a new chat based on the current history or switch to an already opened chat."))
         self.editButton.setToolTip(_translate("OllamaHistoryWidget", "Press to edit the chat title."))
         self.deleteButton.setToolTip(_translate("OllamaHistoryWidget", "Press to delete this chat history."))
--- a/OllamaInterface/Ui_OllamaWidget.py	Tue Aug 27 14:06:50 2024 +0200
+++ b/OllamaInterface/Ui_OllamaWidget.py	Wed Aug 28 18:20:33 2024 +0200
@@ -48,7 +48,6 @@
         self.verticalLayout.addLayout(self.horizontalLayout)
         self.mainSplitter = QtWidgets.QSplitter(parent=OllamaWidget)
         self.mainSplitter.setOrientation(QtCore.Qt.Orientation.Vertical)
-        self.mainSplitter.setChildrenCollapsible(False)
         self.mainSplitter.setObjectName("mainSplitter")
         self.historyScrollArea = QtWidgets.QScrollArea(parent=self.mainSplitter)
         sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Expanding)
@@ -60,7 +59,7 @@
         self.historyScrollArea.setWidgetResizable(True)
         self.historyScrollArea.setObjectName("historyScrollArea")
         self.historyScrollWidget = QtWidgets.QWidget()
-        self.historyScrollWidget.setGeometry(QtCore.QRect(0, 0, 533, 641))
+        self.historyScrollWidget.setGeometry(QtCore.QRect(0, 0, 533, 68))
         self.historyScrollWidget.setObjectName("historyScrollWidget")
         self.historyScrollArea.setWidget(self.historyScrollWidget)
         self.chatStackWidget = QtWidgets.QStackedWidget(parent=self.mainSplitter)
@@ -70,26 +69,29 @@
         sizePolicy.setHeightForWidth(self.chatStackWidget.sizePolicy().hasHeightForWidth())
         self.chatStackWidget.setSizePolicy(sizePolicy)
         self.chatStackWidget.setObjectName("chatStackWidget")
-        self.verticalLayout.addWidget(self.mainSplitter)
-        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
-        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
-        self.messageEdit = QtWidgets.QLineEdit(parent=OllamaWidget)
+        self.widget = QtWidgets.QWidget(parent=self.mainSplitter)
+        self.widget.setObjectName("widget")
+        self.gridLayout = QtWidgets.QGridLayout(self.widget)
+        self.gridLayout.setContentsMargins(0, 0, 0, 0)
+        self.gridLayout.setObjectName("gridLayout")
+        self.messageEdit = QtWidgets.QPlainTextEdit(parent=self.widget)
+        self.messageEdit.setTabChangesFocus(True)
         self.messageEdit.setObjectName("messageEdit")
-        self.horizontalLayout_3.addWidget(self.messageEdit)
-        self.sendButton = QtWidgets.QToolButton(parent=OllamaWidget)
+        self.gridLayout.addWidget(self.messageEdit, 0, 0, 2, 1)
+        spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
+        self.gridLayout.addItem(spacerItem2, 1, 1, 1, 1)
+        self.sendButton = QtWidgets.QToolButton(parent=self.widget)
         self.sendButton.setEnabled(False)
         self.sendButton.setObjectName("sendButton")
-        self.horizontalLayout_3.addWidget(self.sendButton)
-        self.verticalLayout.addLayout(self.horizontalLayout_3)
+        self.gridLayout.addWidget(self.sendButton, 0, 1, 1, 1)
+        self.verticalLayout.addWidget(self.mainSplitter)
 
         self.retranslateUi(OllamaWidget)
         QtCore.QMetaObject.connectSlotsByName(OllamaWidget)
         OllamaWidget.setTabOrder(self.modelComboBox, self.newChatButton)
         OllamaWidget.setTabOrder(self.newChatButton, self.reloadModelsButton)
         OllamaWidget.setTabOrder(self.reloadModelsButton, self.historyScrollArea)
-        OllamaWidget.setTabOrder(self.historyScrollArea, self.messageEdit)
-        OllamaWidget.setTabOrder(self.messageEdit, self.sendButton)
-        OllamaWidget.setTabOrder(self.sendButton, self.ollamaMenuButton)
+        OllamaWidget.setTabOrder(self.historyScrollArea, self.ollamaMenuButton)
 
     def retranslateUi(self, OllamaWidget):
         _translate = QtCore.QCoreApplication.translate

eric ide

mercurial