Added a context menu to the chat widget to clear the chat, to save it or to copy it to the clipboard.

Tue, 30 Mar 2010 15:57:01 +0000

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 30 Mar 2010 15:57:01 +0000
changeset 160
32cc58d56d4d
parent 159
2e79b9c72e59
child 161
bb3cc98f4104

Added a context menu to the chat widget to clear the chat, to save it or to copy it to the clipboard.

APIs/Python3/eric5.api file | annotate | diff | comparison | revisions
Cooperation/ChatWidget.py file | annotate | diff | comparison | revisions
Cooperation/ChatWidget.ui file | annotate | diff | comparison | revisions
Documentation/Help/source.qch file | annotate | diff | comparison | revisions
Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Cooperation.ChatWidget.html file | annotate | diff | comparison | revisions
i18n/eric5_cs.ts file | annotate | diff | comparison | revisions
i18n/eric5_de.qm file | annotate | diff | comparison | revisions
i18n/eric5_de.ts file | annotate | diff | comparison | revisions
i18n/eric5_es.ts file | annotate | diff | comparison | revisions
i18n/eric5_fr.ts file | annotate | diff | comparison | revisions
i18n/eric5_it.ts file | annotate | diff | comparison | revisions
i18n/eric5_ru.ts file | annotate | diff | comparison | revisions
i18n/eric5_tr.ts file | annotate | diff | comparison | revisions
i18n/eric5_zh_CN.GB2312.ts file | annotate | diff | comparison | revisions
--- a/APIs/Python3/eric5.api	Tue Mar 30 15:30:24 2010 +0000
+++ b/APIs/Python3/eric5.api	Tue Mar 30 15:57:01 2010 +0000
@@ -5,6 +5,7 @@
 eric5.Cooperation.ChatWidget.ChatWidget.editorCommand?7
 eric5.Cooperation.ChatWidget.ChatWidget.getClient?4()
 eric5.Cooperation.ChatWidget.ChatWidget.on_cancelEditButton_clicked?4()
+eric5.Cooperation.ChatWidget.ChatWidget.on_chatEdit_customContextMenuRequested?4(pos)
 eric5.Cooperation.ChatWidget.ChatWidget.on_connectButton_clicked?4()
 eric5.Cooperation.ChatWidget.ChatWidget.on_hostEdit_textChanged?4(host)
 eric5.Cooperation.ChatWidget.ChatWidget.on_sendEditButton_clicked?4()
--- a/Cooperation/ChatWidget.py	Tue Mar 30 15:30:24 2010 +0000
+++ b/Cooperation/ChatWidget.py	Tue Mar 30 15:57:01 2010 +0000
@@ -7,8 +7,9 @@
 Module implementing the chat dialog.
 """
 
-from PyQt4.QtCore import Qt, pyqtSlot, pyqtSignal, QDateTime
-from PyQt4.QtGui import QWidget, QColor, QListWidgetItem
+from PyQt4.QtCore import Qt, pyqtSlot, pyqtSignal, QDateTime, QPoint, QFileInfo
+from PyQt4.QtGui import QWidget, QColor, QListWidgetItem, QMenu, QFileDialog, \
+    QMessageBox, QApplication
 
 from E5Gui.E5Application import e5App
 
@@ -19,6 +20,7 @@
 from .Ui_ChatWidget import Ui_ChatWidget
 
 import Preferences
+import Utilities
 import UI.PixmapCache
 
 class ChatWidget(QWidget, Ui_ChatWidget):
@@ -64,6 +66,14 @@
         self.__client = CooperationClient()
         self.__myNickName = self.__client.nickName()
         
+        self.__chatMenu = QMenu(self)
+        self.__clearChatAct = \
+            self.__chatMenu.addAction(self.trUtf8("Clear"), self.__clearChat)
+        self.__saveChatAct = \
+            self.__chatMenu.addAction(self.trUtf8("Save"), self.__saveChat)
+        self.__copyChatAct = \
+            self.__chatMenu.addAction(self.trUtf8("Copy"), self.__copyChat)
+        
         self.messageEdit.returnPressed.connect(self.__handleMessage)
         self.sendButton.clicked.connect(self.__handleMessage)
         self.__client.newMessage.connect(self.appendMessage)
@@ -376,3 +386,72 @@
         self.startEditButton.setEnabled(sharing and not editing and not remoteEditing)
         self.sendEditButton.setEnabled(editing)
         self.cancelEditButton.setEnabled(editing)
+    
+    @pyqtSlot(QPoint)
+    def on_chatEdit_customContextMenuRequested(self, pos):
+        """
+        Private slot to show the context menu for the chat.
+        
+        @param pos the position of the mouse pointer (QPoint)
+        """
+        self.__saveChatAct.setEnabled(self.chatEdit.toPlainText() != "")
+        self.__copyChatAct.setEnabled(self.chatEdit.toPlainText() != "")
+        self.__chatMenu.popup(self.chatEdit.mapToGlobal(pos))
+    
+    def __clearChat(self):
+        """
+        Private slot to clear the contents of the chat display.
+        """
+        self.chatEdit.clear()
+    
+    def __saveChat(self):
+        """
+        Private slot to save the contents of the chat display.
+        """
+        txt = self.chatEdit.toPlainText()
+        if txt:
+            fname, selectedFilter = QFileDialog.getSaveFileNameAndFilter(\
+                self,
+                self.trUtf8("Save Chat"),
+                "",
+                self.trUtf8("Text Files (*.txt);;All Files (*)"),
+                None,
+                QFileDialog.Options(QFileDialog.DontConfirmOverwrite))
+            if fname:
+                ext = QFileInfo(fname).suffix()
+                if not ext:
+                    ex = selectedFilter.split("(*")[1].split(")")[0]
+                    if ex:
+                        fname += ex
+                if QFileInfo(fname).exists():
+                    res = QMessageBox.warning(self,
+                        self.trUtf8("Save Chat"),
+                        self.trUtf8("<p>The file <b>{0}</b> already exists.</p>")
+                            .format(fname),
+                        QMessageBox.StandardButtons(\
+                            QMessageBox.Abort | \
+                            QMessageBox.Save),
+                        QMessageBox.Abort)
+                    if res != QMessageBox.Save:
+                        return
+                    fname = Utilities.toNativeSeparators(fname)
+                
+                try:
+                    f = open(fname, "w", encoding = "utf-8")
+                    f.write(txt)
+                    f.close()
+                except IOError as err:
+                    QMessageBox.critical(self,
+                        self.trUtf8("Error saving Chat"),
+                        self.trUtf8("""<p>The chat contents could not be written"""
+                                    """ to <b>{0}</b></p><p>Reason: {1}</p>""")\
+                            .format(fname, str(err)))
+    
+    def __copyChat(self):
+        """
+        Private slot to copy the contents of the chat display to the clipboard.
+        """
+        txt = self.chatEdit.toPlainText()
+        if txt:
+            cb = QApplication.clipboard()
+            cb.setText(txt)
--- a/Cooperation/ChatWidget.ui	Tue Mar 30 15:30:24 2010 +0000
+++ b/Cooperation/ChatWidget.ui	Tue Mar 30 15:57:01 2010 +0000
@@ -53,6 +53,9 @@
         <property name="focusPolicy">
          <enum>Qt::NoFocus</enum>
         </property>
+        <property name="contextMenuPolicy">
+         <enum>Qt::CustomContextMenu</enum>
+        </property>
         <property name="readOnly">
          <bool>true</bool>
         </property>
Binary file Documentation/Help/source.qch has changed
--- a/Documentation/Help/source.qhp	Tue Mar 30 15:30:24 2010 +0000
+++ b/Documentation/Help/source.qhp	Tue Mar 30 15:57:01 2010 +0000
@@ -3184,17 +3184,21 @@
       <keyword name="ChatWidget (Module)" id="ChatWidget (Module)" ref="eric5.Cooperation.ChatWidget.html" />
       <keyword name="ChatWidget" id="ChatWidget" ref="eric5.Cooperation.ChatWidget.html#ChatWidget" />
       <keyword name="ChatWidget (Constructor)" id="ChatWidget (Constructor)" ref="eric5.Cooperation.ChatWidget.html#ChatWidget.__init__" />
+      <keyword name="ChatWidget.__clearChat" id="ChatWidget.__clearChat" ref="eric5.Cooperation.ChatWidget.html#ChatWidget.__clearChat" />
+      <keyword name="ChatWidget.__copyChat" id="ChatWidget.__copyChat" ref="eric5.Cooperation.ChatWidget.html#ChatWidget.__copyChat" />
       <keyword name="ChatWidget.__editorCommandMessage" id="ChatWidget.__editorCommandMessage" ref="eric5.Cooperation.ChatWidget.html#ChatWidget.__editorCommandMessage" />
       <keyword name="ChatWidget.__handleMessage" id="ChatWidget.__handleMessage" ref="eric5.Cooperation.ChatWidget.html#ChatWidget.__handleMessage" />
       <keyword name="ChatWidget.__initialConnectionRefused" id="ChatWidget.__initialConnectionRefused" ref="eric5.Cooperation.ChatWidget.html#ChatWidget.__initialConnectionRefused" />
       <keyword name="ChatWidget.__newParticipant" id="ChatWidget.__newParticipant" ref="eric5.Cooperation.ChatWidget.html#ChatWidget.__newParticipant" />
       <keyword name="ChatWidget.__participantLeft" id="ChatWidget.__participantLeft" ref="eric5.Cooperation.ChatWidget.html#ChatWidget.__participantLeft" />
+      <keyword name="ChatWidget.__saveChat" id="ChatWidget.__saveChat" ref="eric5.Cooperation.ChatWidget.html#ChatWidget.__saveChat" />
       <keyword name="ChatWidget.__setConnected" id="ChatWidget.__setConnected" ref="eric5.Cooperation.ChatWidget.html#ChatWidget.__setConnected" />
       <keyword name="ChatWidget.__showErrorMessage" id="ChatWidget.__showErrorMessage" ref="eric5.Cooperation.ChatWidget.html#ChatWidget.__showErrorMessage" />
       <keyword name="ChatWidget.appendMessage" id="ChatWidget.appendMessage" ref="eric5.Cooperation.ChatWidget.html#ChatWidget.appendMessage" />
       <keyword name="ChatWidget.checkEditorActions" id="ChatWidget.checkEditorActions" ref="eric5.Cooperation.ChatWidget.html#ChatWidget.checkEditorActions" />
       <keyword name="ChatWidget.getClient" id="ChatWidget.getClient" ref="eric5.Cooperation.ChatWidget.html#ChatWidget.getClient" />
       <keyword name="ChatWidget.on_cancelEditButton_clicked" id="ChatWidget.on_cancelEditButton_clicked" ref="eric5.Cooperation.ChatWidget.html#ChatWidget.on_cancelEditButton_clicked" />
+      <keyword name="ChatWidget.on_chatEdit_customContextMenuRequested" id="ChatWidget.on_chatEdit_customContextMenuRequested" ref="eric5.Cooperation.ChatWidget.html#ChatWidget.on_chatEdit_customContextMenuRequested" />
       <keyword name="ChatWidget.on_connectButton_clicked" id="ChatWidget.on_connectButton_clicked" ref="eric5.Cooperation.ChatWidget.html#ChatWidget.on_connectButton_clicked" />
       <keyword name="ChatWidget.on_hostEdit_textChanged" id="ChatWidget.on_hostEdit_textChanged" ref="eric5.Cooperation.ChatWidget.html#ChatWidget.on_hostEdit_textChanged" />
       <keyword name="ChatWidget.on_sendEditButton_clicked" id="ChatWidget.on_sendEditButton_clicked" ref="eric5.Cooperation.ChatWidget.html#ChatWidget.on_sendEditButton_clicked" />
--- a/Documentation/Source/eric5.Cooperation.ChatWidget.html	Tue Mar 30 15:30:24 2010 +0000
+++ b/Documentation/Source/eric5.Cooperation.ChatWidget.html	Tue Mar 30 15:57:01 2010 +0000
@@ -80,6 +80,12 @@
 <td><a href="#ChatWidget.__init__">ChatWidget</a></td>
 <td>Constructor</td>
 </tr><tr>
+<td><a href="#ChatWidget.__clearChat">__clearChat</a></td>
+<td>Private slot to clear the contents of the chat display.</td>
+</tr><tr>
+<td><a href="#ChatWidget.__copyChat">__copyChat</a></td>
+<td>Private slot to copy the contents of the chat display to the clipboard.</td>
+</tr><tr>
 <td><a href="#ChatWidget.__editorCommandMessage">__editorCommandMessage</a></td>
 <td>Private slot to handle editor command messages from the client.</td>
 </tr><tr>
@@ -95,6 +101,9 @@
 <td><a href="#ChatWidget.__participantLeft">__participantLeft</a></td>
 <td>Private slot handling a participant leaving the session.</td>
 </tr><tr>
+<td><a href="#ChatWidget.__saveChat">__saveChat</a></td>
+<td>Private slot to save the contents of the chat display.</td>
+</tr><tr>
 <td><a href="#ChatWidget.__setConnected">__setConnected</a></td>
 <td>Private slot to set the connected state.</td>
 </tr><tr>
@@ -113,6 +122,9 @@
 <td><a href="#ChatWidget.on_cancelEditButton_clicked">on_cancelEditButton_clicked</a></td>
 <td>Private slot to cancel a shared edit session.</td>
 </tr><tr>
+<td><a href="#ChatWidget.on_chatEdit_customContextMenuRequested">on_chatEdit_customContextMenuRequested</a></td>
+<td>Private slot to show the context menu for the chat.</td>
+</tr><tr>
 <td><a href="#ChatWidget.on_connectButton_clicked">on_connectButton_clicked</a></td>
 <td>Private slot initiating the connection.</td>
 </tr><tr>
@@ -148,7 +160,17 @@
 <dd>
 reference to the parent widget (QWidget)
 </dd>
-</dl><a NAME="ChatWidget.__editorCommandMessage" ID="ChatWidget.__editorCommandMessage"></a>
+</dl><a NAME="ChatWidget.__clearChat" ID="ChatWidget.__clearChat"></a>
+<h4>ChatWidget.__clearChat</h4>
+<b>__clearChat</b>(<i></i>)
+<p>
+        Private slot to clear the contents of the chat display.
+</p><a NAME="ChatWidget.__copyChat" ID="ChatWidget.__copyChat"></a>
+<h4>ChatWidget.__copyChat</h4>
+<b>__copyChat</b>(<i></i>)
+<p>
+        Private slot to copy the contents of the chat display to the clipboard.
+</p><a NAME="ChatWidget.__editorCommandMessage" ID="ChatWidget.__editorCommandMessage"></a>
 <h4>ChatWidget.__editorCommandMessage</h4>
 <b>__editorCommandMessage</b>(<i>hash, fileName, message</i>)
 <p>
@@ -194,7 +216,12 @@
 <dd>
 nick name of the participant (string)
 </dd>
-</dl><a NAME="ChatWidget.__setConnected" ID="ChatWidget.__setConnected"></a>
+</dl><a NAME="ChatWidget.__saveChat" ID="ChatWidget.__saveChat"></a>
+<h4>ChatWidget.__saveChat</h4>
+<b>__saveChat</b>(<i></i>)
+<p>
+        Private slot to save the contents of the chat display.
+</p><a NAME="ChatWidget.__setConnected" ID="ChatWidget.__setConnected"></a>
 <h4>ChatWidget.__setConnected</h4>
 <b>__setConnected</b>(<i>connected</i>)
 <p>
@@ -247,7 +274,17 @@
 <b>on_cancelEditButton_clicked</b>(<i></i>)
 <p>
         Private slot to cancel a shared edit session.
-</p><a NAME="ChatWidget.on_connectButton_clicked" ID="ChatWidget.on_connectButton_clicked"></a>
+</p><a NAME="ChatWidget.on_chatEdit_customContextMenuRequested" ID="ChatWidget.on_chatEdit_customContextMenuRequested"></a>
+<h4>ChatWidget.on_chatEdit_customContextMenuRequested</h4>
+<b>on_chatEdit_customContextMenuRequested</b>(<i>pos</i>)
+<p>
+        Private slot to show the context menu for the chat.
+</p><dl>
+<dt><i>pos</i></dt>
+<dd>
+the position of the mouse pointer (QPoint)
+</dd>
+</dl><a NAME="ChatWidget.on_connectButton_clicked" ID="ChatWidget.on_connectButton_clicked"></a>
 <h4>ChatWidget.on_connectButton_clicked</h4>
 <b>on_connectButton_clicked</b>(<i></i>)
 <p>
--- a/i18n/eric5_cs.ts	Tue Mar 30 15:30:24 2010 +0000
+++ b/i18n/eric5_cs.ts	Tue Mar 30 15:57:01 2010 +0000
@@ -1955,119 +1955,159 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="67"/>
+        <location filename="Cooperation/ChatWidget.ui" line="70"/>
         <source>Press to send the text above</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="70"/>
+        <location filename="Cooperation/ChatWidget.ui" line="73"/>
         <source>Send</source>
         <translation type="unfinished">Odeslat</translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="176"/>
+        <location filename="Cooperation/ChatWidget.ui" line="179"/>
         <source>Connection</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="182"/>
+        <location filename="Cooperation/ChatWidget.ui" line="185"/>
         <source>Host:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="247"/>
+        <location filename="Cooperation/ChatWidget.ui" line="250"/>
         <source>Port:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="231"/>
+        <location filename="Cooperation/ChatWidget.ui" line="234"/>
         <source>Shows the connection status</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="241"/>
+        <location filename="Cooperation/ChatWidget.ui" line="244"/>
         <source>Server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="286"/>
+        <location filename="Cooperation/ChatWidget.ui" line="289"/>
         <source>Shows the status of the server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="203"/>
+        <location filename="Cooperation/ChatWidget.py" line="213"/>
         <source>Start Server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="98"/>
+        <location filename="Cooperation/ChatWidget.py" line="108"/>
         <source>! Unknown command: {0}
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="119"/>
+        <location filename="Cooperation/ChatWidget.py" line="129"/>
         <source>* {0} has joined.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="148"/>
+        <location filename="Cooperation/ChatWidget.py" line="158"/>
         <source>* {0} has left.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="211"/>
+        <location filename="Cooperation/ChatWidget.py" line="221"/>
         <source>Stop Server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="216"/>
+        <location filename="Cooperation/ChatWidget.py" line="226"/>
         <source>! Server Error: {0}
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="228"/>
+        <location filename="Cooperation/ChatWidget.py" line="238"/>
         <source>Disconnect</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="232"/>
+        <location filename="Cooperation/ChatWidget.py" line="242"/>
         <source>Connect</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="83"/>
+        <location filename="Cooperation/ChatWidget.ui" line="86"/>
         <source>Share Editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="105"/>
+        <location filename="Cooperation/ChatWidget.ui" line="108"/>
         <source>Press to toggle the shared status of the current editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="Cooperation/ChatWidget.ui" line="156"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.ui" line="124"/>
+        <source>Press to start a shared edit</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.ui" line="140"/>
+        <source>Press to end the edit and send the changes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="Cooperation/ChatWidget.ui" line="153"/>
-        <source>...</source>
-        <translation type="unfinished">...</translation>
-    </message>
-    <message>
-        <location filename="Cooperation/ChatWidget.ui" line="121"/>
-        <source>Press to start a shared edit</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Cooperation/ChatWidget.ui" line="137"/>
-        <source>Press to end the edit and send the changes</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Cooperation/ChatWidget.ui" line="150"/>
         <source>Press to cancel the shared edit</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="71"/>
+        <source>Clear</source>
+        <translation type="unfinished">Vyčistit</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="73"/>
+        <source>Save</source>
+        <translation type="unfinished">Uložit</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="75"/>
+        <source>Copy</source>
+        <translation type="unfinished">Kopírovat</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="427"/>
+        <source>Save Chat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="413"/>
+        <source>Text Files (*.txt);;All Files (*)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="427"/>
+        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="444"/>
+        <source>Error saving Chat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="444"/>
+        <source>&lt;p&gt;The chat contents could not be written to &lt;b&gt;{0}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>CodeMetricsDialog</name>
Binary file i18n/eric5_de.qm has changed
--- a/i18n/eric5_de.ts	Tue Mar 30 15:30:24 2010 +0000
+++ b/i18n/eric5_de.ts	Tue Mar 30 15:57:01 2010 +0000
@@ -1819,123 +1819,163 @@
         <translation>Nutzer</translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="67"/>
+        <location filename="Cooperation/ChatWidget.ui" line="70"/>
         <source>Press to send the text above</source>
         <translation>Drücken, um den obigen Text zu senden</translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="70"/>
+        <location filename="Cooperation/ChatWidget.ui" line="73"/>
         <source>Send</source>
         <translation>Senden</translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="176"/>
+        <location filename="Cooperation/ChatWidget.ui" line="179"/>
         <source>Connection</source>
         <translation>Verbindung</translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="182"/>
+        <location filename="Cooperation/ChatWidget.ui" line="185"/>
         <source>Host:</source>
         <translation>Rechner:</translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="247"/>
+        <location filename="Cooperation/ChatWidget.ui" line="250"/>
         <source>Port:</source>
         <translation>Port:</translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="231"/>
+        <location filename="Cooperation/ChatWidget.ui" line="234"/>
         <source>Shows the connection status</source>
         <translation>Zeigt den Verbindungsstatus</translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="241"/>
+        <location filename="Cooperation/ChatWidget.ui" line="244"/>
         <source>Server</source>
         <translation>Server</translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="286"/>
+        <location filename="Cooperation/ChatWidget.ui" line="289"/>
         <source>Shows the status of the server</source>
         <translation>Zeigt den Status des Servers</translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="203"/>
+        <location filename="Cooperation/ChatWidget.py" line="213"/>
         <source>Start Server</source>
         <translation>Server starten</translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="98"/>
+        <location filename="Cooperation/ChatWidget.py" line="108"/>
         <source>! Unknown command: {0}
 </source>
         <translation>! Unbekannter Befehl: {0}
 </translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="119"/>
+        <location filename="Cooperation/ChatWidget.py" line="129"/>
         <source>* {0} has joined.
 </source>
         <translation>* {0} ist beigetreten.
 </translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="148"/>
+        <location filename="Cooperation/ChatWidget.py" line="158"/>
         <source>* {0} has left.
 </source>
         <translation>* {0} hat die Sitzung verlassen.
 </translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="211"/>
+        <location filename="Cooperation/ChatWidget.py" line="221"/>
         <source>Stop Server</source>
         <translation>Server anhalten</translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="216"/>
+        <location filename="Cooperation/ChatWidget.py" line="226"/>
         <source>! Server Error: {0}
 </source>
         <translation>! Serverfehler: {0}
 </translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="228"/>
+        <location filename="Cooperation/ChatWidget.py" line="238"/>
         <source>Disconnect</source>
         <translation>Unterbrechen</translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="232"/>
+        <location filename="Cooperation/ChatWidget.py" line="242"/>
         <source>Connect</source>
         <translation>Verbinden</translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="83"/>
+        <location filename="Cooperation/ChatWidget.ui" line="86"/>
         <source>Share Editor</source>
         <translation>Verteilter Editor</translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="105"/>
+        <location filename="Cooperation/ChatWidget.ui" line="108"/>
         <source>Press to toggle the shared status of the current editor</source>
         <translation>Drücken, um den Freigabestatus des aktuellen Editors umzuschalten</translation>
     </message>
     <message>
+        <location filename="Cooperation/ChatWidget.ui" line="156"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.ui" line="124"/>
+        <source>Press to start a shared edit</source>
+        <translation>Drücken, um eine verteilte Änderungssitzung zu starten</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.ui" line="140"/>
+        <source>Press to end the edit and send the changes</source>
+        <translation>Drücken, um eine verteilte Änderungssitzung zu beenden und die Änderungen zu senden</translation>
+    </message>
+    <message>
         <location filename="Cooperation/ChatWidget.ui" line="153"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="Cooperation/ChatWidget.ui" line="121"/>
-        <source>Press to start a shared edit</source>
-        <translation>Drücken, um eine verteilte Änderungssitzung zu starten</translation>
-    </message>
-    <message>
-        <location filename="Cooperation/ChatWidget.ui" line="137"/>
-        <source>Press to end the edit and send the changes</source>
-        <translation>Drücken, um eine verteilte Änderungssitzung zu beenden und die Änderungen zu senden</translation>
-    </message>
-    <message>
-        <location filename="Cooperation/ChatWidget.ui" line="150"/>
         <source>Press to cancel the shared edit</source>
         <translation>Drücken, um eine verteilte Änderungssitzung abzubrechen</translation>
     </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="71"/>
+        <source>Clear</source>
+        <translation>Löschen</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="73"/>
+        <source>Save</source>
+        <translation>Speichern</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="427"/>
+        <source>Save Chat</source>
+        <translation>Chat speichern</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="413"/>
+        <source>Text Files (*.txt);;All Files (*)</source>
+        <translation>Text Dateien (*.txt);;Alle Dateien (*)</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="444"/>
+        <source>Error saving Chat</source>
+        <translation>Fehlr beim Speichern</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="444"/>
+        <source>&lt;p&gt;The chat contents could not be written to &lt;b&gt;{0}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
+        <translation>&lt;p&gt;Der Inhalt des Chats konnte nicht nach &lt;b&gt;{0}&lt;/b&gt; geschrieben werden.&lt;/p&gt;&lt;p&gt;Ursache: {1}&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="427"/>
+        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists.&lt;/p&gt;</source>
+        <translation>&lt;p&gt;Die Datei &lt;b&gt;{0}&lt;/b&gt; existiert bereits.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="75"/>
+        <source>Copy</source>
+        <translation>Kopieren</translation>
+    </message>
 </context>
 <context>
     <name>CodeMetricsDialog</name>
--- a/i18n/eric5_es.ts	Tue Mar 30 15:30:24 2010 +0000
+++ b/i18n/eric5_es.ts	Tue Mar 30 15:57:01 2010 +0000
@@ -1816,119 +1816,159 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="67"/>
+        <location filename="Cooperation/ChatWidget.ui" line="70"/>
         <source>Press to send the text above</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="70"/>
+        <location filename="Cooperation/ChatWidget.ui" line="73"/>
         <source>Send</source>
         <translation type="unfinished">Enviar</translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="176"/>
+        <location filename="Cooperation/ChatWidget.ui" line="179"/>
         <source>Connection</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="182"/>
+        <location filename="Cooperation/ChatWidget.ui" line="185"/>
         <source>Host:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="247"/>
+        <location filename="Cooperation/ChatWidget.ui" line="250"/>
         <source>Port:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="231"/>
+        <location filename="Cooperation/ChatWidget.ui" line="234"/>
         <source>Shows the connection status</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="241"/>
+        <location filename="Cooperation/ChatWidget.ui" line="244"/>
         <source>Server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="286"/>
+        <location filename="Cooperation/ChatWidget.ui" line="289"/>
         <source>Shows the status of the server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="203"/>
+        <location filename="Cooperation/ChatWidget.py" line="213"/>
         <source>Start Server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="98"/>
+        <location filename="Cooperation/ChatWidget.py" line="108"/>
         <source>! Unknown command: {0}
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="119"/>
+        <location filename="Cooperation/ChatWidget.py" line="129"/>
         <source>* {0} has joined.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="148"/>
+        <location filename="Cooperation/ChatWidget.py" line="158"/>
         <source>* {0} has left.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="211"/>
+        <location filename="Cooperation/ChatWidget.py" line="221"/>
         <source>Stop Server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="216"/>
+        <location filename="Cooperation/ChatWidget.py" line="226"/>
         <source>! Server Error: {0}
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="228"/>
+        <location filename="Cooperation/ChatWidget.py" line="238"/>
         <source>Disconnect</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="232"/>
+        <location filename="Cooperation/ChatWidget.py" line="242"/>
         <source>Connect</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="83"/>
+        <location filename="Cooperation/ChatWidget.ui" line="86"/>
         <source>Share Editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="105"/>
+        <location filename="Cooperation/ChatWidget.ui" line="108"/>
         <source>Press to toggle the shared status of the current editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="Cooperation/ChatWidget.ui" line="156"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.ui" line="124"/>
+        <source>Press to start a shared edit</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.ui" line="140"/>
+        <source>Press to end the edit and send the changes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="Cooperation/ChatWidget.ui" line="153"/>
-        <source>...</source>
-        <translation type="unfinished">...</translation>
-    </message>
-    <message>
-        <location filename="Cooperation/ChatWidget.ui" line="121"/>
-        <source>Press to start a shared edit</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Cooperation/ChatWidget.ui" line="137"/>
-        <source>Press to end the edit and send the changes</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Cooperation/ChatWidget.ui" line="150"/>
         <source>Press to cancel the shared edit</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="71"/>
+        <source>Clear</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="73"/>
+        <source>Save</source>
+        <translation type="unfinished">Guardar</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="75"/>
+        <source>Copy</source>
+        <translation type="unfinished">Copiar</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="427"/>
+        <source>Save Chat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="413"/>
+        <source>Text Files (*.txt);;All Files (*)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="427"/>
+        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists.&lt;/p&gt;</source>
+        <translation type="unfinished">&lt;p&gt;El archivo &lt;b&gt;{0}&lt;/b&gt; ya existe.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="444"/>
+        <source>Error saving Chat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="444"/>
+        <source>&lt;p&gt;The chat contents could not be written to &lt;b&gt;{0}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>CodeMetricsDialog</name>
--- a/i18n/eric5_fr.ts	Tue Mar 30 15:30:24 2010 +0000
+++ b/i18n/eric5_fr.ts	Tue Mar 30 15:57:01 2010 +0000
@@ -2005,119 +2005,159 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="67"/>
+        <location filename="Cooperation/ChatWidget.ui" line="70"/>
         <source>Press to send the text above</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="70"/>
+        <location filename="Cooperation/ChatWidget.ui" line="73"/>
         <source>Send</source>
         <translation type="unfinished">Envoyer</translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="176"/>
+        <location filename="Cooperation/ChatWidget.ui" line="179"/>
         <source>Connection</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="182"/>
+        <location filename="Cooperation/ChatWidget.ui" line="185"/>
         <source>Host:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="247"/>
+        <location filename="Cooperation/ChatWidget.ui" line="250"/>
         <source>Port:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="231"/>
+        <location filename="Cooperation/ChatWidget.ui" line="234"/>
         <source>Shows the connection status</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="241"/>
+        <location filename="Cooperation/ChatWidget.ui" line="244"/>
         <source>Server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="286"/>
+        <location filename="Cooperation/ChatWidget.ui" line="289"/>
         <source>Shows the status of the server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="203"/>
+        <location filename="Cooperation/ChatWidget.py" line="213"/>
         <source>Start Server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="98"/>
+        <location filename="Cooperation/ChatWidget.py" line="108"/>
         <source>! Unknown command: {0}
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="119"/>
+        <location filename="Cooperation/ChatWidget.py" line="129"/>
         <source>* {0} has joined.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="148"/>
+        <location filename="Cooperation/ChatWidget.py" line="158"/>
         <source>* {0} has left.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="211"/>
+        <location filename="Cooperation/ChatWidget.py" line="221"/>
         <source>Stop Server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="216"/>
+        <location filename="Cooperation/ChatWidget.py" line="226"/>
         <source>! Server Error: {0}
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="228"/>
+        <location filename="Cooperation/ChatWidget.py" line="238"/>
         <source>Disconnect</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="232"/>
+        <location filename="Cooperation/ChatWidget.py" line="242"/>
         <source>Connect</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="83"/>
+        <location filename="Cooperation/ChatWidget.ui" line="86"/>
         <source>Share Editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="105"/>
+        <location filename="Cooperation/ChatWidget.ui" line="108"/>
         <source>Press to toggle the shared status of the current editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="Cooperation/ChatWidget.ui" line="156"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.ui" line="124"/>
+        <source>Press to start a shared edit</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.ui" line="140"/>
+        <source>Press to end the edit and send the changes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="Cooperation/ChatWidget.ui" line="153"/>
-        <source>...</source>
-        <translation type="unfinished">...</translation>
-    </message>
-    <message>
-        <location filename="Cooperation/ChatWidget.ui" line="121"/>
-        <source>Press to start a shared edit</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Cooperation/ChatWidget.ui" line="137"/>
-        <source>Press to end the edit and send the changes</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Cooperation/ChatWidget.ui" line="150"/>
         <source>Press to cancel the shared edit</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="71"/>
+        <source>Clear</source>
+        <translation type="unfinished">Effacer</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="73"/>
+        <source>Save</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="75"/>
+        <source>Copy</source>
+        <translation type="unfinished">Copier</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="427"/>
+        <source>Save Chat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="413"/>
+        <source>Text Files (*.txt);;All Files (*)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="427"/>
+        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="444"/>
+        <source>Error saving Chat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="444"/>
+        <source>&lt;p&gt;The chat contents could not be written to &lt;b&gt;{0}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>CodeMetricsDialog</name>
--- a/i18n/eric5_it.ts	Tue Mar 30 15:30:24 2010 +0000
+++ b/i18n/eric5_it.ts	Tue Mar 30 15:57:01 2010 +0000
@@ -1960,119 +1960,159 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="67"/>
+        <location filename="Cooperation/ChatWidget.ui" line="70"/>
         <source>Press to send the text above</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="70"/>
+        <location filename="Cooperation/ChatWidget.ui" line="73"/>
         <source>Send</source>
         <translation type="unfinished">Spedisci</translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="176"/>
+        <location filename="Cooperation/ChatWidget.ui" line="179"/>
         <source>Connection</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="182"/>
+        <location filename="Cooperation/ChatWidget.ui" line="185"/>
         <source>Host:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="247"/>
+        <location filename="Cooperation/ChatWidget.ui" line="250"/>
         <source>Port:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="231"/>
+        <location filename="Cooperation/ChatWidget.ui" line="234"/>
         <source>Shows the connection status</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="241"/>
+        <location filename="Cooperation/ChatWidget.ui" line="244"/>
         <source>Server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="286"/>
+        <location filename="Cooperation/ChatWidget.ui" line="289"/>
         <source>Shows the status of the server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="203"/>
+        <location filename="Cooperation/ChatWidget.py" line="213"/>
         <source>Start Server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="98"/>
+        <location filename="Cooperation/ChatWidget.py" line="108"/>
         <source>! Unknown command: {0}
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="119"/>
+        <location filename="Cooperation/ChatWidget.py" line="129"/>
         <source>* {0} has joined.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="148"/>
+        <location filename="Cooperation/ChatWidget.py" line="158"/>
         <source>* {0} has left.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="211"/>
+        <location filename="Cooperation/ChatWidget.py" line="221"/>
         <source>Stop Server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="216"/>
+        <location filename="Cooperation/ChatWidget.py" line="226"/>
         <source>! Server Error: {0}
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="228"/>
+        <location filename="Cooperation/ChatWidget.py" line="238"/>
         <source>Disconnect</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="232"/>
+        <location filename="Cooperation/ChatWidget.py" line="242"/>
         <source>Connect</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="83"/>
+        <location filename="Cooperation/ChatWidget.ui" line="86"/>
         <source>Share Editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="105"/>
+        <location filename="Cooperation/ChatWidget.ui" line="108"/>
         <source>Press to toggle the shared status of the current editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="Cooperation/ChatWidget.ui" line="156"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.ui" line="124"/>
+        <source>Press to start a shared edit</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.ui" line="140"/>
+        <source>Press to end the edit and send the changes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="Cooperation/ChatWidget.ui" line="153"/>
-        <source>...</source>
-        <translation type="unfinished">...</translation>
-    </message>
-    <message>
-        <location filename="Cooperation/ChatWidget.ui" line="121"/>
-        <source>Press to start a shared edit</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Cooperation/ChatWidget.ui" line="137"/>
-        <source>Press to end the edit and send the changes</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Cooperation/ChatWidget.ui" line="150"/>
         <source>Press to cancel the shared edit</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="71"/>
+        <source>Clear</source>
+        <translation type="unfinished">Pulisci</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="73"/>
+        <source>Save</source>
+        <translation type="unfinished">Salva</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="75"/>
+        <source>Copy</source>
+        <translation type="unfinished">Copia</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="427"/>
+        <source>Save Chat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="413"/>
+        <source>Text Files (*.txt);;All Files (*)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="427"/>
+        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="444"/>
+        <source>Error saving Chat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="444"/>
+        <source>&lt;p&gt;The chat contents could not be written to &lt;b&gt;{0}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>CodeMetricsDialog</name>
--- a/i18n/eric5_ru.ts	Tue Mar 30 15:30:24 2010 +0000
+++ b/i18n/eric5_ru.ts	Tue Mar 30 15:57:01 2010 +0000
@@ -1965,119 +1965,159 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="67"/>
+        <location filename="Cooperation/ChatWidget.ui" line="70"/>
         <source>Press to send the text above</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="70"/>
+        <location filename="Cooperation/ChatWidget.ui" line="73"/>
         <source>Send</source>
         <translation type="unfinished">Отправить</translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="176"/>
+        <location filename="Cooperation/ChatWidget.ui" line="179"/>
         <source>Connection</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="182"/>
+        <location filename="Cooperation/ChatWidget.ui" line="185"/>
         <source>Host:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="247"/>
+        <location filename="Cooperation/ChatWidget.ui" line="250"/>
         <source>Port:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="231"/>
+        <location filename="Cooperation/ChatWidget.ui" line="234"/>
         <source>Shows the connection status</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="241"/>
+        <location filename="Cooperation/ChatWidget.ui" line="244"/>
         <source>Server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="286"/>
+        <location filename="Cooperation/ChatWidget.ui" line="289"/>
         <source>Shows the status of the server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="203"/>
+        <location filename="Cooperation/ChatWidget.py" line="213"/>
         <source>Start Server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="98"/>
+        <location filename="Cooperation/ChatWidget.py" line="108"/>
         <source>! Unknown command: {0}
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="119"/>
+        <location filename="Cooperation/ChatWidget.py" line="129"/>
         <source>* {0} has joined.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="148"/>
+        <location filename="Cooperation/ChatWidget.py" line="158"/>
         <source>* {0} has left.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="211"/>
+        <location filename="Cooperation/ChatWidget.py" line="221"/>
         <source>Stop Server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="216"/>
+        <location filename="Cooperation/ChatWidget.py" line="226"/>
         <source>! Server Error: {0}
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="228"/>
+        <location filename="Cooperation/ChatWidget.py" line="238"/>
         <source>Disconnect</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="232"/>
+        <location filename="Cooperation/ChatWidget.py" line="242"/>
         <source>Connect</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="83"/>
+        <location filename="Cooperation/ChatWidget.ui" line="86"/>
         <source>Share Editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="105"/>
+        <location filename="Cooperation/ChatWidget.ui" line="108"/>
         <source>Press to toggle the shared status of the current editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="Cooperation/ChatWidget.ui" line="156"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.ui" line="124"/>
+        <source>Press to start a shared edit</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.ui" line="140"/>
+        <source>Press to end the edit and send the changes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="Cooperation/ChatWidget.ui" line="153"/>
-        <source>...</source>
-        <translation type="unfinished">...</translation>
-    </message>
-    <message>
-        <location filename="Cooperation/ChatWidget.ui" line="121"/>
-        <source>Press to start a shared edit</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Cooperation/ChatWidget.ui" line="137"/>
-        <source>Press to end the edit and send the changes</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Cooperation/ChatWidget.ui" line="150"/>
         <source>Press to cancel the shared edit</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="71"/>
+        <source>Clear</source>
+        <translation type="unfinished">Очистить</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="73"/>
+        <source>Save</source>
+        <translation type="unfinished">Сохранить</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="75"/>
+        <source>Copy</source>
+        <translation type="unfinished">Копировать</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="427"/>
+        <source>Save Chat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="413"/>
+        <source>Text Files (*.txt);;All Files (*)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="427"/>
+        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="444"/>
+        <source>Error saving Chat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="444"/>
+        <source>&lt;p&gt;The chat contents could not be written to &lt;b&gt;{0}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>CodeMetricsDialog</name>
--- a/i18n/eric5_tr.ts	Tue Mar 30 15:30:24 2010 +0000
+++ b/i18n/eric5_tr.ts	Tue Mar 30 15:57:01 2010 +0000
@@ -1996,119 +1996,159 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="67"/>
+        <location filename="Cooperation/ChatWidget.ui" line="70"/>
         <source>Press to send the text above</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="70"/>
+        <location filename="Cooperation/ChatWidget.ui" line="73"/>
         <source>Send</source>
         <translation type="unfinished">Gönder</translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="176"/>
+        <location filename="Cooperation/ChatWidget.ui" line="179"/>
         <source>Connection</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="182"/>
+        <location filename="Cooperation/ChatWidget.ui" line="185"/>
         <source>Host:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="247"/>
+        <location filename="Cooperation/ChatWidget.ui" line="250"/>
         <source>Port:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="231"/>
+        <location filename="Cooperation/ChatWidget.ui" line="234"/>
         <source>Shows the connection status</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="241"/>
+        <location filename="Cooperation/ChatWidget.ui" line="244"/>
         <source>Server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="286"/>
+        <location filename="Cooperation/ChatWidget.ui" line="289"/>
         <source>Shows the status of the server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="203"/>
+        <location filename="Cooperation/ChatWidget.py" line="213"/>
         <source>Start Server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="98"/>
+        <location filename="Cooperation/ChatWidget.py" line="108"/>
         <source>! Unknown command: {0}
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="119"/>
+        <location filename="Cooperation/ChatWidget.py" line="129"/>
         <source>* {0} has joined.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="148"/>
+        <location filename="Cooperation/ChatWidget.py" line="158"/>
         <source>* {0} has left.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="211"/>
+        <location filename="Cooperation/ChatWidget.py" line="221"/>
         <source>Stop Server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="216"/>
+        <location filename="Cooperation/ChatWidget.py" line="226"/>
         <source>! Server Error: {0}
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="228"/>
+        <location filename="Cooperation/ChatWidget.py" line="238"/>
         <source>Disconnect</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="232"/>
+        <location filename="Cooperation/ChatWidget.py" line="242"/>
         <source>Connect</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="83"/>
+        <location filename="Cooperation/ChatWidget.ui" line="86"/>
         <source>Share Editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="105"/>
+        <location filename="Cooperation/ChatWidget.ui" line="108"/>
         <source>Press to toggle the shared status of the current editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="Cooperation/ChatWidget.ui" line="156"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.ui" line="124"/>
+        <source>Press to start a shared edit</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.ui" line="140"/>
+        <source>Press to end the edit and send the changes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="Cooperation/ChatWidget.ui" line="153"/>
-        <source>...</source>
-        <translation type="unfinished">...</translation>
-    </message>
-    <message>
-        <location filename="Cooperation/ChatWidget.ui" line="121"/>
-        <source>Press to start a shared edit</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Cooperation/ChatWidget.ui" line="137"/>
-        <source>Press to end the edit and send the changes</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Cooperation/ChatWidget.ui" line="150"/>
         <source>Press to cancel the shared edit</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="71"/>
+        <source>Clear</source>
+        <translation type="unfinished">Temizle</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="73"/>
+        <source>Save</source>
+        <translation type="unfinished">Kaydet</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="75"/>
+        <source>Copy</source>
+        <translation type="unfinished">Kopyala</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="427"/>
+        <source>Save Chat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="413"/>
+        <source>Text Files (*.txt);;All Files (*)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="427"/>
+        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="444"/>
+        <source>Error saving Chat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="444"/>
+        <source>&lt;p&gt;The chat contents could not be written to &lt;b&gt;{0}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>CodeMetricsDialog</name>
--- a/i18n/eric5_zh_CN.GB2312.ts	Tue Mar 30 15:30:24 2010 +0000
+++ b/i18n/eric5_zh_CN.GB2312.ts	Tue Mar 30 15:57:01 2010 +0000
@@ -1998,119 +1998,159 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="67"/>
+        <location filename="Cooperation/ChatWidget.ui" line="70"/>
         <source>Press to send the text above</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="70"/>
+        <location filename="Cooperation/ChatWidget.ui" line="73"/>
         <source>Send</source>
         <translation type="unfinished">发送</translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="176"/>
+        <location filename="Cooperation/ChatWidget.ui" line="179"/>
         <source>Connection</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="182"/>
+        <location filename="Cooperation/ChatWidget.ui" line="185"/>
         <source>Host:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="247"/>
+        <location filename="Cooperation/ChatWidget.ui" line="250"/>
         <source>Port:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="231"/>
+        <location filename="Cooperation/ChatWidget.ui" line="234"/>
         <source>Shows the connection status</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="241"/>
+        <location filename="Cooperation/ChatWidget.ui" line="244"/>
         <source>Server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="286"/>
+        <location filename="Cooperation/ChatWidget.ui" line="289"/>
         <source>Shows the status of the server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="203"/>
+        <location filename="Cooperation/ChatWidget.py" line="213"/>
         <source>Start Server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="98"/>
+        <location filename="Cooperation/ChatWidget.py" line="108"/>
         <source>! Unknown command: {0}
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="119"/>
+        <location filename="Cooperation/ChatWidget.py" line="129"/>
         <source>* {0} has joined.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="148"/>
+        <location filename="Cooperation/ChatWidget.py" line="158"/>
         <source>* {0} has left.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="211"/>
+        <location filename="Cooperation/ChatWidget.py" line="221"/>
         <source>Stop Server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="216"/>
+        <location filename="Cooperation/ChatWidget.py" line="226"/>
         <source>! Server Error: {0}
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="228"/>
+        <location filename="Cooperation/ChatWidget.py" line="238"/>
         <source>Disconnect</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.py" line="232"/>
+        <location filename="Cooperation/ChatWidget.py" line="242"/>
         <source>Connect</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="83"/>
+        <location filename="Cooperation/ChatWidget.ui" line="86"/>
         <source>Share Editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Cooperation/ChatWidget.ui" line="105"/>
+        <location filename="Cooperation/ChatWidget.ui" line="108"/>
         <source>Press to toggle the shared status of the current editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="Cooperation/ChatWidget.ui" line="156"/>
+        <source>...</source>
+        <translation type="unfinished">……</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.ui" line="124"/>
+        <source>Press to start a shared edit</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.ui" line="140"/>
+        <source>Press to end the edit and send the changes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="Cooperation/ChatWidget.ui" line="153"/>
-        <source>...</source>
-        <translation type="unfinished">……</translation>
-    </message>
-    <message>
-        <location filename="Cooperation/ChatWidget.ui" line="121"/>
-        <source>Press to start a shared edit</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Cooperation/ChatWidget.ui" line="137"/>
-        <source>Press to end the edit and send the changes</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Cooperation/ChatWidget.ui" line="150"/>
         <source>Press to cancel the shared edit</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="71"/>
+        <source>Clear</source>
+        <translation type="unfinished">清除</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="73"/>
+        <source>Save</source>
+        <translation type="unfinished">保存</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="75"/>
+        <source>Copy</source>
+        <translation type="unfinished">复制</translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="427"/>
+        <source>Save Chat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="413"/>
+        <source>Text Files (*.txt);;All Files (*)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="427"/>
+        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="444"/>
+        <source>Error saving Chat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Cooperation/ChatWidget.py" line="444"/>
+        <source>&lt;p&gt;The chat contents could not be written to &lt;b&gt;{0}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>CodeMetricsDialog</name>

eric ide

mercurial