Mon, 17 Mar 2014 19:11:48 +0100
Extended QsciScintillaCompat to allow to set the modified status and made the selection of an encoding in the editor change the modified state.
--- a/APIs/Python3/eric5.api Mon Mar 17 19:01:14 2014 +0100 +++ b/APIs/Python3/eric5.api Mon Mar 17 19:11:48 2014 +0100 @@ -7407,6 +7407,7 @@ eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.indicatorDefine?4(indicator, style, color) eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.inputMethodEvent?4(evt) eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.inputMethodQuery?4(query) +eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.isModified?4() eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.lineAt?4(pos) eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.lineEndPosition?4(line) eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.lineIndexFromPosition?4(pos) @@ -7436,6 +7437,7 @@ eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.setIndicator?4(indicator, sline, sindex, eline, eindex) eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.setIndicatorRange?4(indicator, spos, length) eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.setLexer?4(lex=None) +eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.setModified?4(m) eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.setRectangularSelection?4(startLine, startIndex, endLine, endIndex) eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.setStyleBits?4(bits) eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.setStyling?4(length, style)
--- a/Documentation/Help/source.qhp Mon Mar 17 19:01:14 2014 +0100 +++ b/Documentation/Help/source.qhp Mon Mar 17 19:11:48 2014 +0100 @@ -9589,6 +9589,7 @@ <keyword name="QsciScintillaCompat (Module)" id="QsciScintillaCompat (Module)" ref="eric5.QScintilla.QsciScintillaCompat.html" /> <keyword name="QsciScintillaCompat.__completionListSelected" id="QsciScintillaCompat.__completionListSelected" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.__completionListSelected" /> <keyword name="QsciScintillaCompat.__doSearchTarget" id="QsciScintillaCompat.__doSearchTarget" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.__doSearchTarget" /> + <keyword name="QsciScintillaCompat.__modificationChanged" id="QsciScintillaCompat.__modificationChanged" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.__modificationChanged" /> <keyword name="QsciScintillaCompat.__setFoldMarker" id="QsciScintillaCompat.__setFoldMarker" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.__setFoldMarker" /> <keyword name="QsciScintillaCompat._encodeString" id="QsciScintillaCompat._encodeString" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat._encodeString" /> <keyword name="QsciScintillaCompat.byteAt" id="QsciScintillaCompat.byteAt" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.byteAt" /> @@ -9645,6 +9646,7 @@ <keyword name="QsciScintillaCompat.indicatorDefine" id="QsciScintillaCompat.indicatorDefine" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.indicatorDefine" /> <keyword name="QsciScintillaCompat.inputMethodEvent" id="QsciScintillaCompat.inputMethodEvent" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.inputMethodEvent" /> <keyword name="QsciScintillaCompat.inputMethodQuery" id="QsciScintillaCompat.inputMethodQuery" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.inputMethodQuery" /> + <keyword name="QsciScintillaCompat.isModified" id="QsciScintillaCompat.isModified" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.isModified" /> <keyword name="QsciScintillaCompat.lineAt" id="QsciScintillaCompat.lineAt" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.lineAt" /> <keyword name="QsciScintillaCompat.lineEndPosition" id="QsciScintillaCompat.lineEndPosition" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.lineEndPosition" /> <keyword name="QsciScintillaCompat.lineIndexFromPosition" id="QsciScintillaCompat.lineIndexFromPosition" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.lineIndexFromPosition" /> @@ -9674,6 +9676,7 @@ <keyword name="QsciScintillaCompat.setIndicator" id="QsciScintillaCompat.setIndicator" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.setIndicator" /> <keyword name="QsciScintillaCompat.setIndicatorRange" id="QsciScintillaCompat.setIndicatorRange" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.setIndicatorRange" /> <keyword name="QsciScintillaCompat.setLexer" id="QsciScintillaCompat.setLexer" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.setLexer" /> + <keyword name="QsciScintillaCompat.setModified" id="QsciScintillaCompat.setModified" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.setModified" /> <keyword name="QsciScintillaCompat.setRectangularSelection" id="QsciScintillaCompat.setRectangularSelection" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.setRectangularSelection" /> <keyword name="QsciScintillaCompat.setStyleBits" id="QsciScintillaCompat.setStyleBits" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.setStyleBits" /> <keyword name="QsciScintillaCompat.setStyling" id="QsciScintillaCompat.setStyling" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.setStyling" />
--- a/Documentation/Source/eric5.QScintilla.Editor.html Mon Mar 17 19:01:14 2014 +0100 +++ b/Documentation/Source/eric5.QScintilla.Editor.html Mon Mar 17 19:11:48 2014 +0100 @@ -1981,10 +1981,15 @@ Private slot to create a new view to an open document. </p><a NAME="Editor.__normalizedEncoding" ID="Editor.__normalizedEncoding"></a> <h4>Editor.__normalizedEncoding</h4> -<b>__normalizedEncoding</b>(<i></i>) +<b>__normalizedEncoding</b>(<i>encoding=""</i>) <p> Private method to calculate the normalized encoding string. </p><dl> +<dt><i>encoding</i></dt> +<dd> +encoding to be normalized (string) +</dd> +</dl><dl> <dt>Returns:</dt> <dd> normalized encoding (string)
--- a/Documentation/Source/eric5.QScintilla.QsciScintillaCompat.html Mon Mar 17 19:01:14 2014 +0100 +++ b/Documentation/Source/eric5.QScintilla.QsciScintillaCompat.html Mon Mar 17 19:11:48 2014 +0100 @@ -79,6 +79,9 @@ <td><a href="#QsciScintillaCompat.__doSearchTarget">__doSearchTarget</a></td> <td>Private method to perform the search in target.</td> </tr><tr> +<td><a href="#QsciScintillaCompat.__modificationChanged">__modificationChanged</a></td> +<td>Private slot to handle the modificationChanged signal.</td> +</tr><tr> <td><a href="#QsciScintillaCompat.__setFoldMarker">__setFoldMarker</a></td> <td>Private method to define a fold marker.</td> </tr><tr> @@ -247,6 +250,9 @@ <td><a href="#QsciScintillaCompat.inputMethodQuery">inputMethodQuery</a></td> <td>Protected method to cope with a glitch in some Qscintilla versions handling input events.</td> </tr><tr> +<td><a href="#QsciScintillaCompat.isModified">isModified</a></td> +<td>Public method to return the modification status.</td> +</tr><tr> <td><a href="#QsciScintillaCompat.lineAt">lineAt</a></td> <td>Public method to calculate the line at a position.</td> </tr><tr> @@ -334,6 +340,9 @@ <td><a href="#QsciScintillaCompat.setLexer">setLexer</a></td> <td>Public method to set the lexer.</td> </tr><tr> +<td><a href="#QsciScintillaCompat.setModified">setModified</a></td> +<td>Public slot to set the modification status.</td> +</tr><tr> <td><a href="#QsciScintillaCompat.setRectangularSelection">setRectangularSelection</a></td> <td>Public method to set a rectangular selection.</td> </tr><tr> @@ -410,6 +419,16 @@ <dd> flag indicating a successful search (boolean) </dd> +</dl><a NAME="QsciScintillaCompat.__modificationChanged" ID="QsciScintillaCompat.__modificationChanged"></a> +<h4>QsciScintillaCompat.__modificationChanged</h4> +<b>__modificationChanged</b>(<i>m</i>) +<p> + Private slot to handle the modificationChanged signal. +</p><dl> +<dt><i>m</i></dt> +<dd> +modification status (boolean) +</dd> </dl><a NAME="QsciScintillaCompat.__setFoldMarker" ID="QsciScintillaCompat.__setFoldMarker"></a> <h4>QsciScintillaCompat.__setFoldMarker</h4> <b>__setFoldMarker</b>(<i>marknr, mark=QsciScintilla.SC_MARK_EMPTY</i>) @@ -1073,6 +1092,16 @@ <dd> object containing the requested information </dd> +</dl><a NAME="QsciScintillaCompat.isModified" ID="QsciScintillaCompat.isModified"></a> +<h4>QsciScintillaCompat.isModified</h4> +<b>isModified</b>(<i></i>) +<p> + Public method to return the modification status. +</p><dl> +<dt>Returns:</dt> +<dd> +flag indicating the modification status (boolean) +</dd> </dl><a NAME="QsciScintillaCompat.lineAt" ID="QsciScintillaCompat.lineAt"></a> <h4>QsciScintillaCompat.lineAt</h4> <b>lineAt</b>(<i>pos</i>) @@ -1422,6 +1451,16 @@ <dd> the lexer to be set or None to reset it. </dd> +</dl><a NAME="QsciScintillaCompat.setModified" ID="QsciScintillaCompat.setModified"></a> +<h4>QsciScintillaCompat.setModified</h4> +<b>setModified</b>(<i>m</i>) +<p> + Public slot to set the modification status. +</p><dl> +<dt><i>m</i></dt> +<dd> +new modification status (boolean) +</dd> </dl><a NAME="QsciScintillaCompat.setRectangularSelection" ID="QsciScintillaCompat.setRectangularSelection"></a> <h4>QsciScintillaCompat.setRectangularSelection</h4> <b>setRectangularSelection</b>(<i>startLine, startIndex, endLine, endIndex</i>)
--- a/QScintilla/Editor.py Mon Mar 17 19:01:14 2014 +0100 +++ b/QScintilla/Editor.py Mon Mar 17 19:11:48 2014 +0100 @@ -1375,6 +1375,7 @@ @param act reference to the action that was triggered (QAction) """ encoding = act.data() + self.setModified(True) self.__encodingChanged("{0}-selected".format(encoding)) def __checkEncoding(self): @@ -1402,15 +1403,18 @@ self.encodingChanged.emit(self.encoding) self.inEncodingChanged = False - def __normalizedEncoding(self): + def __normalizedEncoding(self, encoding=""): """ Private method to calculate the normalized encoding string. + @param encoding encoding to be normalized (string) @return normalized encoding (string) """ - return self.encoding.replace("-default", "")\ - .replace("-guessed", "")\ - .replace("-selected", "") + if not encoding: + encoding = self.encoding + return encoding.replace("-default", "")\ + .replace("-guessed", "")\ + .replace("-selected", "") def __showContextMenuEol(self): """
--- a/QScintilla/QsciScintillaCompat.py Mon Mar 17 19:01:14 2014 +0100 +++ b/QScintilla/QsciScintillaCompat.py Mon Mar 17 19:11:48 2014 +0100 @@ -68,7 +68,36 @@ self.__targetSearchEnd = -1 self.__targetSearchActive = False + self.__modified = False + self.userListActivated.connect(self.__completionListSelected) + self.modificationChanged.connect(self.__modificationChanged) + + def __modificationChanged(self, m): + """ + Private slot to handle the modificationChanged signal. + + @param m modification status (boolean) + """ + self.__modified = m + + def isModified(self): + """ + Public method to return the modification status. + + @return flag indicating the modification status (boolean) + """ + return self.__modified + + def setModified(self, m): + """ + Public slot to set the modification status. + + @param m new modification status (boolean) + """ + self.__modified = m + super().setModified(m) + self.modificationChanged.emit(m) def setLexer(self, lex=None): """