diff --git a/cmake/version.cmake b/cmake/version.cmake
index 49bfb6e..3acb522 100644
--- a/cmake/version.cmake
+++ b/cmake/version.cmake
@@ -11,6 +11,6 @@ set (QT_PYTHON_VERSION ${QT_PYTHON_MAJOR_VERSION}.${QT_PYTHON_MINOR_VERSION}.${Q
# Pour la bibliothèque QtPython3 :
set (QT_PYTHON_3_MAJOR_VERSION "6")
set (QT_PYTHON_3_MINOR_VERSION "4")
-set (QT_PYTHON_3_RELEASE_VERSION "0")
+set (QT_PYTHON_3_RELEASE_VERSION "1")
set (QT_PYTHON_3_VERSION ${QT_PYTHON_3_MAJOR_VERSION}.${QT_PYTHON_3_MINOR_VERSION}.${QT_PYTHON_3_RELEASE_VERSION})
diff --git a/src/QtPython3/QtPythonConsole.cpp b/src/QtPython3/QtPythonConsole.cpp
index a91761f..cd00889 100644
--- a/src/QtPython3/QtPythonConsole.cpp
+++ b/src/QtPython3/QtPythonConsole.cpp
@@ -37,9 +37,7 @@ USE_ENCODING_AUTODETECTION
-/* On utilise la fonction python builtin execfile pour exécuter sous Pdb
- * des fichiers. Fonctionne bien avec Python 2.6 et 2.7, Pdb s'arrête bien aux
- * points d'arrêt demandés.
+/* On utilise la fonction python builtin execfile pour exécuter sous Pdb des fichiers. Fonctionne bien avec Python 2.6 et 2.7, Pdb s'arrête bien aux points d'arrêt demandés.
* Pb : cette fonction n'existe plus en Python 3.x, il faudra la réécrire.
*/
//#define USE_EXECFILE_PYTHON_FUNCTION 1
@@ -383,9 +381,7 @@ void QtPythonConsole::InstructionsFile::addLines (const vector& lines, s
throw exc;
} // if (0 == _tmpStream.get ( ))
- // Attention : on peut appeler addLines plusieurs fois pour le même
- // script ... _firstLineNum sert ensuite pour faire les conversions
- // num script <-> num fichier
+ // Attention : on peut appeler addLines plusieurs fois pour le même script ... _firstLineNum sert ensuite pour faire les conversions num script <-> num fichier
if (0 == _firstLineNum)
_firstLineNum = firstLineNum;
for (vector::const_iterator it = lines.begin ( ); lines.end ( ) != it; it++)
@@ -584,6 +580,8 @@ bool QtPythonConsole::stopOnError = true;
const QSize QtPythonConsole::iconSize (32, 32);
bool QtPythonConsole::_catchStdOutputs = true;
+// QTextCharFormat : zone avec du texte
+// QTextBlockFormat : le reste du bloc
static QTextBlockFormat defaultBlockFormat;
static QTextCharFormat defaultCharFormat;
static QBrush defaultBackground;
@@ -786,8 +784,7 @@ QtPythonConsole::QtPythonConsole (QWidget* parent, const string& appName)
// Enlève tous les points d'arrêt.
_clearBreakPointsAction = new QAction (QIcon (":/images/clear_breakpoints.png"), QSTR ("Enlever tous les points d'arrêt"),this);
connect (_clearBreakPointsAction, SIGNAL (triggered ( )), this, SLOT (clearBreakPointsCallback( )));
- // Affiche un sélecteur de fichier de chargement de script au point
- // d'édition courant :
+ // Affiche un sélecteur de fichier de chargement de script au point d'édition courant :
_insertScriptAction = new QAction (QIcon (":/images/load_script.png"), QSTR ("Insérer un script ..."), this);
connect (_insertScriptAction, SIGNAL (triggered ( )), this, SLOT (insertScriptCallback( )));
@@ -945,11 +942,9 @@ void QtPythonConsole::drawLinesNumbers (const QRect& rect)
{
if ((true == block.isVisible ( )) && (bottom >= rect.top ( )))
{
- // Rem : sous Qt 4.7.4 la surimpression (breakpoint, et par dessus
- // ligne actuelle) ne fonctionne pas ... (pixmap ? autre ?)
+ // Rem : sous Qt 4.7.4 la surimpression (breakpoint, et par dessus ligne actuelle) ne fonctionne pas ... (pixmap ? autre ?)
// => on n'affiche pas le BP si ligne courrante.
- if ((_breakpoints.end ( ) != _breakpoints.find (number)) &&
- (currentInstruction ( ) != number))
+ if ((_breakpoints.end ( ) != _breakpoints.find (number)) && (currentInstruction ( ) != number))
{
_breakPointIcon.paint (&painter, 3, top, width, height);
} // if (_breakpoints.end ( ) != _breakpoints.find (number))
@@ -995,7 +990,7 @@ void QtPythonConsole::setRunningMode (QtPythonConsole::RUNNING_MODE mode)
case QtPythonConsole::RM_DEBUG :
try
{
- _waitingForRunning = false; // v 1.14.0
+ _waitingForRunning = false;
quitDbg ( );
}
catch (...)
@@ -1017,12 +1012,10 @@ void QtPythonConsole::insert (const string& fileName, string& warnings)
// On se met en début de ligne courante :
moveCursor (QTextCursor::StartOfBlock, QTextCursor::MoveAnchor);
- Charset::CHARSET streamCharset = getFileCharset (fileName); // v 3.3.0
-// streamCharset = Charset::UNKNOWN == streamCharset ? Charset::ASCII : streamCharset;
+ Charset::CHARSET streamCharset = getFileCharset (fileName);
streamCharset = Charset::UNKNOWN == streamCharset ? Charset::UTF_8 : streamCharset; // v 5.1.7, éviter un rejet de conversion si caractère accentué
- // UTF-16 : les sauts de ligne ne sont pas des \n => réécrire différemment
- // la lecture du fichier.
+ // UTF-16 : les sauts de ligne ne sont pas des \n => réécrire différemment la lecture du fichier.
if (Charset::UTF_16 == streamCharset)
throw Exception ("Encodage UTF-16 non supporté dans cette version.");
@@ -1030,7 +1023,7 @@ void QtPythonConsole::insert (const string& fileName, string& warnings)
if ((false == stream.good ( )) && (false == stream.eof ( )))
throw Exception ("Fichier invalide.");
char buffer [10001];
- const size_t currentExecLine = _currentExecLine; // v 5.1.7
+ const size_t currentExecLine = _currentExecLine;
while ((true == stream.good ( )) && (false == stream.eof ( )))
{
memset (buffer, '\0', 10001);
@@ -1249,8 +1242,7 @@ void QtPythonConsole::validateCursorPosition ( )
block = document ( )->lastBlock ( );
cursor.movePosition (QTextCursor::EndOfBlock, QTextCursor::MoveAnchor);
cursor = textCursor ( );
- // Les 2 instructions suivantes sont nécessaires pour que les
- // lignes ajoutées ne soient pas en mode "exécutées" :
+ // Les 2 instructions suivantes sont nécessaires pour que les lignes ajoutées ne soient pas en mode "exécutées" :
cursor.setBlockFormat (defaultBlockFormat);
setCurrentCharFormat (defaultCharFormat);
appendPlainText ("");
@@ -1260,8 +1252,8 @@ void QtPythonConsole::validateCursorPosition ( )
{
block = document ( )->findBlockByNumber (_currentExecLine - 1);
cursor.setPosition (block.position ( ), QTextCursor::MoveAnchor);
- cursor.setCharFormat (defaultCharFormat);
- cursor.setBlockFormat (defaultBlockFormat);
+// cursor.setCharFormat (defaultCharFormat); // v 6.4.1
+// cursor.setBlockFormat (defaultBlockFormat); // v 6.4.1
} // else if (_currentExecLine > document ( )->blockCount ( ))
}
catch (...)
@@ -1568,7 +1560,7 @@ void QtPythonConsole::lineProcessedCallback (size_t line, bool ok, const string&
// Gérer les sorties du script python :
processPythonOutputs ( );
if (true == _checkingCompletion)
- return; // v 5.3.0
+ return;
// Cette ligne a été jouée (rem : les numéros Qt commencent à 0 ...) :
QTextBlock block = document ( )->findBlockByNumber (line-1);
@@ -1579,21 +1571,39 @@ void QtPythonConsole::lineProcessedCallback (size_t line, bool ok, const string&
{
if (false == isComment)
{
- // Tant que les lignes précédentes sont des commentaires on les récupère pour les ajouter au fichier script.
+ // Tant que les lignes précédentes sont des commentaires on les récupère pour les ajouter au fichier script + colorisation dans la console :
UTF8String comments (Charset::UTF_8);
size_t bl = true == isComment ? line - 1 : line - 2;
bool stopped = 2 > bl ? true : false;
while (false == stopped)
{
- const QTextBlock b = document()->findBlockByNumber(bl);
- const string l = b.text ( ).toStdString ( );
+ const QTextBlock b = document()->findBlockByNumber(bl);
+ const string l = b.text ( ).toStdString ( );
+ bool colorize = true; // v 6.4.1. Coloriser la console couleur "déjà joué" ?
+
if ((true == l.empty ( )) || ('#' != l [0]) || (bl <= 0))
{
+ if (false == l.empty ( ))
+ colorize = false;
stopped = true;
bl = bl < line - 1 ? bl + 1 : line - 1;
}
else
+ {
bl--;
+ } // else if ((true == l.empty ( )) || ('#' != l [0]) || (bl <= 0))
+
+ if (true == colorize) // v 6.4.1
+ {
+ QTextCursor cursor (b);
+ QTextBlockFormat commentBlockFormat = b.blockFormat ( );
+ QTextCharFormat commentCharFormat = b.charFormat ( );
+ cursor.select (QTextCursor::LineUnderCursor);
+ commentBlockFormat.setBackground (QtScriptTextFormat::ranInstructionFormat.background ( ));
+ commentCharFormat.setBackground (QtScriptTextFormat::ranInstructionFormat.background ( ));
+ cursor.setBlockFormat (commentBlockFormat);
+ cursor.setCharFormat (commentCharFormat);
+ } // if (true == colorize)
} // while (false == stopped)
for (size_t i = bl; i < line - 1; i++)
{
@@ -1608,40 +1618,31 @@ void QtPythonConsole::lineProcessedCallback (size_t line, bool ok, const string&
getLogDispatcher ( ).log (ScriptingLog (instruction, comments));
} // if (false == isComment)
} // if (line >= maxExecLine ( ))
- // QTextCharFormat : zone avec du texte
- // QTextBlockFormat : le reste du bloc
- QTextCharFormat cformat = block.charFormat ( );
+ QTextCharFormat cformat = block.charFormat ( ); // v 6.4.1
QTextBlockFormat bformat = block.blockFormat ( );
- cformat.setProperty (QTextFormat::FullWidthSelection, true);
bformat.setProperty (QTextFormat::FullWidthSelection, true);
- cformat.setBackground (true == ok ? QtScriptTextFormat::ranInstructionFormat.background ( ) : QtScriptTextFormat::failedInstructionFormat.background ( ));
- bformat.setBackground ( true == ok ? QtScriptTextFormat::ranInstructionFormat.background ( ) : QtScriptTextFormat::failedInstructionFormat.background ( ));
- QTextCursor cursor = textCursor ( );
- const int position= cursor.position ( );
- cursor.setPosition (block.position ( ), QTextCursor::MoveAnchor);
- cursor.select (QTextCursor::BlockUnderCursor);
- cursor.setCharFormat (cformat); // v 5.0.0
- cursor.setBlockFormat (bformat); // v 5.0.0
+ cformat.setBackground (true == ok ? QtScriptTextFormat::ranInstructionFormat.background ( ) : QtScriptTextFormat::failedInstructionFormat.background ( )); // v 6.4.1
+ bformat.setBackground (true == ok ? QtScriptTextFormat::ranInstructionFormat.background ( ) : QtScriptTextFormat::failedInstructionFormat.background ( ));
+ QTextCursor cursor (block); // v 6.4.1
+ cursor.select (QTextCursor::LineUnderCursor); // v 6.4.1 why BlockUnderCursor does not work ???
+ cursor.setCharFormat (cformat);
+ cursor.setBlockFormat (bformat);
+
if (true == cursor.atEnd ( ))
{
cursor.clearSelection ( );
QTextBlockFormat newformat = block.blockFormat ( );
- bformat.setBackground (QtScriptTextFormat::emptyLineFormat.background ( ));
- //cursor.insertBlock (newformat, QtScriptTextFormat::emptyLineFormat);
+ newformat.setBackground (QtScriptTextFormat::emptyLineFormat.background ( )); // v 6.4.1
cursor.setBlockFormat (newformat);
- cursor.setCharFormat (QtScriptTextFormat::emptyLineFormat);
+ cformat.setBackground (QtScriptTextFormat::emptyLineFormat.background ( )); // v 6.4.1
+ cursor.setCharFormat (cformat); // v 6.4.1
cursor.insertBlock (newformat, QtScriptTextFormat::emptyLineFormat);
- //appendPlainText (""); // v 5.0.0
} // if (true == cursor.atEnd ( ))
addToHistoric (instruction);
-// cursor.setCharFormat (cformat); // v 5.0.0
-// cursor.setBlockFormat (bformat); // v 5.0.0
cursor.clearSelection ( );
// On en profite pour s'assurer que la ligne courante est visible :
setTextCursor (cursor);
ensureCursorVisible ( );
- // On se repositionne là où on était :
- cursor.setPosition (position, QTextCursor::MoveAnchor);
// On passe à la ligne suivante :
_maxExecLine = line > _maxExecLine ? line : _maxExecLine;
@@ -1736,7 +1737,6 @@ void QtPythonConsole::addToHistoric (
} // if (linesCount > 1)
size_t line = currentInstruction ( );
-// if ((false == isRunning ( )) || (true == isExecutingFile ( )))
if ((false == isRunning ( )) || ((true == isExecutingFile ( )) && (QtPythonConsole::RM_DEBUG != _runningMode))) // v 5.0.5, en mode debug l'exécution de la console passe par un fichier ...
{
if (line < currentInstruction ( )) // Eviter de réécrire les boucles
@@ -1786,7 +1786,6 @@ void QtPythonConsole::addToHistoric (
QTextCharFormat defaultBlockCharFormat = cursor.blockCharFormat ( );
defaultBlockCharFormat.setBackground (defaultBackground);
cursor.setBlockCharFormat (defaultBlockCharFormat);
- setCurrentCharFormat (defaultCharFormat);
line += lineNumber (scriptingLog.getText ( ).utf8 ( )) - 1;
cursor.insertText (UTF8TOQSTRING (scriptingLog.getText ( )));
cursor.insertText ("\n");
@@ -1803,13 +1802,9 @@ void QtPythonConsole::addToHistoric (
QTextCursor cursor = textCursor ( );
cursor.setPosition (block.position ( ), QTextCursor::MoveAnchor);
cursor.movePosition (QTextCursor::EndOfBlock, QTextCursor::KeepAnchor);
- QTextCharFormat charFormat = cursor.charFormat ( );
- charFormat.setBackground (QtScriptTextFormat::failedInstructionFormat.background ( ));
- cursor.setCharFormat (charFormat);
cursor.movePosition (QTextCursor::EndOfBlock, QTextCursor::MoveAnchor);
setTextCursor (cursor);
cursor.setBlockFormat (defaultBlockFormat);
- setCurrentCharFormat (defaultCharFormat);
setTextCursor (cursor);
// Faut-il arrêter l'exécution du script ?
@@ -2036,10 +2031,8 @@ bool QtPythonConsole::handleDownKeyPress (QKeyEvent& event)
if (currentLine != instruction)
{
QTextCursor cursor = textCursor ( );
-// cursor.movePosition (QTextCursor::StartOfLine);
-// cursor.movePosition (QTextCursor::EndOfLine, QTextCursor::KeepAnchor);
- cursor.movePosition (QTextCursor::StartOfBlock); // v 5.0.0
- cursor.movePosition (QTextCursor::EndOfBlock, QTextCursor::KeepAnchor); // v 5.0.0
+ cursor.movePosition (QTextCursor::StartOfBlock);
+ cursor.movePosition (QTextCursor::EndOfBlock, QTextCursor::KeepAnchor);
cursor.insertText (instruction.c_str ( ));
} // if (currentLine != instruction)
} // if (_historyIndex < size)
@@ -2068,10 +2061,8 @@ bool QtPythonConsole::handleUpKeyPress (QKeyEvent& event)
if (currentLine != instruction)
{
QTextCursor cursor = textCursor ( );
-// cursor.movePosition (QTextCursor::StartOfLine);
-// cursor.movePosition (QTextCursor::EndOfLine, QTextCursor::KeepAnchor);
- cursor.movePosition (QTextCursor::StartOfBlock); // v 5.0.0
- cursor.movePosition (QTextCursor::EndOfBlock, QTextCursor::KeepAnchor); // v 5.0.0
+ cursor.movePosition (QTextCursor::StartOfBlock);
+ cursor.movePosition (QTextCursor::EndOfBlock, QTextCursor::KeepAnchor);
cursor.insertText (instruction.c_str ( ));
} // if (currentLine != instruction)
} // if (_historyIndex < _history.count ( ))
@@ -2131,8 +2122,7 @@ bool QtPythonConsole::handleComplete (QKeyEvent& event)
try
{
UTF8String request (charset);
-// request << "NECCompletionSession.instance ( ).complete ('" << editedInstruction ( ) << "'," << i << ")";
- request << "NECCompletionSession.instance ( ).complete ('" << trimedInstruction << "'," << i << ")"; // v 5.3.0
+ request << "NECCompletionSession.instance ( ).complete ('" << trimedInstruction << "'," << i << ")";
PyCompilerFlags flags;
// flags.cf_flags = CO_FUTURE_DIVISION;
@@ -2205,13 +2195,12 @@ bool QtPythonConsole::handleComplete (QKeyEvent& event)
cmps.insert (completions.begin ( ), completions.end ( ));
for (set::const_iterator it = cmps.begin ( ); cmps.end ( ) != it; it++)
{
-// _completionComboBox->addItem ((*it).c_str ( )); // v 5.3.0
UTF8String completion (charset);
if ((size_t)-1 != equalPos) // => A = ...
completion = left + head.utf8 ( )+ *it + tail.utf8 ( );
else
completion = head.utf8 ( )+ *it + tail.utf8 ( );
- _completionComboBox->addItem (completion.utf8 ( ).c_str ( )); // v 5.3.0
+ _completionComboBox->addItem (completion.utf8 ( ).c_str ( ));
} // for (set::const_iterator it = cmps.begin ( ); cmps.end ( ) != it; it++)
_completionComboBox->setCurrentIndex (0);
_completionComboBox->setGeometry (rect);
@@ -2226,8 +2215,8 @@ bool QtPythonConsole::handleComplete (QKeyEvent& event)
catch (...)
{
}
- _currentExecLine = currentLine; // v 5.3.0 déplacé par mécanisme de complétion
- _previousExecLine = _checkingCompletion; // v 5.3.0
+ _currentExecLine = currentLine;
+ _previousExecLine = _checkingCompletion;
_checkingCompletion = false;
} // if (0 != completions.size ( ))
@@ -2237,7 +2226,7 @@ bool QtPythonConsole::handleComplete (QKeyEvent& event)
void QtPythonConsole::addToHistoric (const string& instruction)
{ // On ne stocke pas 2 fois successivement la même instruction
- if (true == _checkingCompletion) // v 5.3.0
+ if (true == _checkingCompletion)
return;
const size_t size = _history.size ( );
@@ -2376,7 +2365,7 @@ void QtPythonConsole::addInstruction (const string& instruction)
{
// Un instruction en cours est peut être à compléter :
_pendingString += instruction;
-
+
// Commentaire, ligne blanche, ... : on ajoute et on passe à la suite.
bool completed = false;
if ((0 == _pendingString.size ( )) || ('#' == _pendingString [0]))
@@ -2400,11 +2389,10 @@ void QtPythonConsole::addInstruction (const string& instruction)
}
} // if (false == completed)
else
- { // v 5.1.5 : cas de l'insertion d'un commentaire multiligne. A noter qu'un bogue subsiste et qu'on peut
- // observer un décalage entre commentaires et instructions associées.
+ { // v 5.1.5 : cas de l'insertion d'un commentaire multiligne. A noter qu'un bogue subsiste et qu'on peut observer un décalage entre commentaires et instructions associées.
if ((0 != _pendingString.size ( )) && ('#' == _pendingString [0]))
{
- _pendingString = '\n' + _pendingString;
+// _pendingString = '\n' + _pendingString; v 6.4.1
const size_t count = Instruction (_pendingString).lineCount ( );
_currentExecLine += count;
} // if ((0 != _pendingString.size ( )) && ('#' == _pendingString [0]))
@@ -2413,7 +2401,6 @@ void QtPythonConsole::addInstruction (const string& instruction)
if (true == completed)
{
Instruction ins (_pendingString);
- setCurrentCharFormat (QtPythonConsole::QtScriptTextFormat::textFormat (ins));
_pendingString += '\n';
insertPlainText (QString::fromUtf8(_pendingString.c_str( )));
_pendingString.clear ( );
@@ -2426,7 +2413,7 @@ void QtPythonConsole::addInstruction (const string& instruction)
void QtPythonConsole::execInstructions ( )
{
- EndOfDocCursor endOfDocCursor (*this);
+// EndOfDocCursor endOfDocCursor (*this); v 6.4.1
setRunningMode (QtPythonConsole::RM_CONTINUOUS);
_running = true;
@@ -2440,8 +2427,7 @@ void QtPythonConsole::execInstructions ( )
const bool autoDelete = true;
_currentScript.reset (new QtPythonConsole::InstructionsFile (false, "python_panel_script_", QtPythonConsole::enableCodingIso8859_15, autoDelete));
_currentScript->addLines (instructions, _currentExecLine);
- // 2 cas de figure : une ligne uniquement, on la traite telle que, permet d'avoir dans stdout des retours type "4" pour
- // une ligne t.q. "2 + 2".
+ // 2 cas de figure : une ligne uniquement, on la traite telle que, permet d'avoir dans stdout des retours type "4" pour une ligne t.q. "2 + 2".
// C'est le fait d'être en une seule instruction + Py_single_input qui offre cette possibilité là.
// Pour les autres cas on reste avec Py_file_input qui est dédié aux cas multilignes.
PyObject* result = 0;
@@ -2490,8 +2476,6 @@ void QtPythonConsole::execInstructions ( )
_running = false;
_halted = true;
- // Actualisation IHM :
- const size_t lastAt = ++_currentExecLine;
_currentScript.reset (0);
validateCursorPosition ( );
@@ -2569,12 +2553,12 @@ void QtPythonConsole::execDbgInstructions (bool stopImmediatly)
{
error = exc.getFullMessage ( );
// addToHistoric ici car il faut false == isRunning ( )
- addToHistoric ("", "", error, true, false);
+// addToHistoric ("", "", error, true, false); // v 6.4.1
}
catch (...)
{
// addToHistoric ici car il faut false == isRunning ( )
- addToHistoric ("", "", error, true, false);
+// addToHistoric ("", "", error, true, false); // v 6.4.1
error = "Erreur non documentée.";
}
unregisterConsole (*this);
@@ -2628,7 +2612,7 @@ void QtPythonConsole::execInstruction (const string& instruction, bool insert)
flags.cf_flags = 0;
PyObject* result = 0;
- registerConsole (*this); // CP v 5.0.5
+ registerConsole (*this);
try
{ // gérer les erreurs C++ de l'API appelée
result = PyRun_StringFlags (instruction.c_str ( ), Py_file_input, _globalDict, _localDict, &flags);
@@ -2638,7 +2622,7 @@ void QtPythonConsole::execInstruction (const string& instruction, bool insert)
if ((QtPythonConsole::RM_DEBUG == getRunningMode ( )) && (0 != _runningModeAction))
_runningModeAction->setChecked (false);
}
- unregisterConsole (*this); // CP v 5.0.5
+ unregisterConsole (*this);
processPythonOutputs ( );
@@ -2652,11 +2636,6 @@ void QtPythonConsole::execInstruction (const string& instruction, bool insert)
throw Exception (error);
} // if (0 != retCode)
Py_DECREF (result);
-
- // Actualisation IHM :
-// v 5.0.5 : déjà appelé via tracePythonExecution
-// if (true == insert)
-// lineProcessedCallback (_currentExecLine, true, string ( ));
} // QtPythonConsole::execInstruction
@@ -3035,6 +3014,7 @@ void QtPythonConsole::cursorPositionCallback ( )
try
{
QtTextEditor::cursorPositionCallback ( ); // presumed no throw
+ validateCursorPosition ( ); // v 6.4.1 : s'assurer qu'il y a au moins un point d'insertion de texte (ex : suite backspace sur la seule ligne éditable)
updateActions ( );
}
catch (...)
diff --git a/src/QtPython3/public/QtPython3/QtPythonConsole.h b/src/QtPython3/public/QtPython3/QtPythonConsole.h
index 13983cd..7bbdc57 100644
--- a/src/QtPython3/public/QtPython3/QtPythonConsole.h
+++ b/src/QtPython3/public/QtPython3/QtPythonConsole.h
@@ -39,40 +39,27 @@ typedef struct _object PyObject;
*
* - ou saisi manuellement, façon éditeur de texte,
*
- ou importé depuis un fichier,
- *
- ou issu de l'historique des commandes jouées, et éventuellement modifé
- * (utilisation via MAJ + touche haut ou bas)
+ *
- ou issu de l'historique des commandes jouées, et éventuellement modifié (utilisation via MAJ + touche haut ou bas)
*
*
*
*
- * L'exécution du code est effectuée séquentiellement (pas de retour en arrière
- * dans le code), au fur et à mesure ou en mode debug, où les
- * instructions sont alors exécutées à la demande, en mode continu ou
- * pas à pas, avec possibilité de positionner des points d'arrêt.
+ * L'exécution du code est effectuée séquentiellement (pas de retour en arrière dans le code), au fur et à mesure ou en mode debug, où les
+ * instructions sont alors exécutées à la demande, en mode continu ou pas à pas, avec possibilité de positionner des points d'arrêt.
*
*
- * Cette classe est en mesure d'afficher les sorties standard et erreur des
- * commandes exécutées via une instance de la classe LogOutputStream.
- * Elle peut également insérer des commandes scriptables dans la console
- * transmises via la méthode log.
+ *
Cette classe est en mesure d'afficher les sorties standard et erreur des commandes exécutées via une instance de la classe LogOutputStream.
+ * Elle peut également insérer des commandes scriptables dans la console transmises via la méthode log.
*
*
- * Cette classe propose une complétion d'instruction reposant sur
- * readline. Cependant cette complétion est limitée (arguments non
- * renseignés) lorsqu'il s'agit d'un binding Swig car il repose sur une
- * transmission d'arguments de type varargs. Cette classe propose
- * néanmoins de faire un effort de recherche de signature, activable via
- * enableSwigCompletion. La complétion est appelable via la
- * combinaison de touches CTRL + Tab. Elle requiert d'être un peu
- * aidée (début de nom de fonction déjà saisi).
- * Depuis la version 2.6.0 de cette bibliothèque, la complétion ne prend pas
- * en compte les méthodes dont la signature comporte
- * UnusedStructForSwigCompletion. Ce dispositif permet de renseigner de
- * manière exacte la signature d'une méthode n'ayant qu'une seule signature. En
- * effet, dans un tel cas, il n'est pas possible avec SWIG d'obtenir de type
- * des arguments, alors qu'on y arrive si plusieurs choix sont possibles. Une
- * idée est alors par exemple de créer une macro créant une fonction de
- * signature bidon pour les cas où seule une signature est possible. Ex :
+ *
Cette classe propose une complétion d'instruction reposant sur readline. Cependant cette complétion est limitée (arguments non
+ * renseignés) lorsqu'il s'agit d'un binding Swig car il repose sur une transmission d'arguments de type varargs. Cette classe propose
+ * néanmoins de faire un effort de recherche de signature, activable via enableSwigCompletion. La complétion est appelable via la
+ * combinaison de touches CTRL + Tab. Elle requiert d'être un peu aidée (début de nom de fonction déjà saisi).
+ * Depuis la version 2.6.0 de cette bibliothèque, la complétion ne prend pas en compte les méthodes dont la signature comporte
+ * UnusedStructForSwigCompletion. Ce dispositif permet de renseigner de manière exacte la signature d'une méthode n'ayant qu'une seule signature. En
+ * effet, dans un tel cas, il n'est pas possible avec SWIG d'obtenir de type des arguments, alors qu'on y arrive si plusieurs choix sont possibles. Une
+ * idée est alors par exemple de créer une macro créant une fonction de signature bidon pour les cas où seule une signature est possible. Ex :
*
* struct UnusedStructForSwigCompletion { };
* #define SET_SWIG_COMPLETABLE_METHOD(method) \
@@ -83,13 +70,11 @@ typedef struct _object PyObject;
*
*
*
- * La classe QtDecoratedPythonConsole offre cet éditeur accolé à sa
- * barre d'icône. L'opérateur -> permet d'invoquer directement les
+ *
La classe QtDecoratedPythonConsole offre cet éditeur accolé à sa barre d'icône. L'opérateur -> permet d'invoquer directement les
* méthodes de l'instance de la classe QtPythonConsole de l'ensemble.
*
*
- * @warning Ne pas utiliser la méthode setEnabled, mais lui préférer la
- * méthode setUsabled qui est thread safe.
+ * @warning Ne pas utiliser la méthode setEnabled, mais lui préférer la méthode setUsabled qui est thread safe.
*/
class QtPythonConsole : public QtTextEditor
{
@@ -98,32 +83,27 @@ class QtPythonConsole : public QtTextEditor
public :
/**
- * Le mode de fonctionnement de la console : Continu, valeur par
- * défaut, ou debug.
+ * Le mode de fonctionnement de la console : Continu, valeur par défaut, ou debug.
*/
enum RUNNING_MODE { RM_CONTINUOUS, RM_DEBUG };
/**
- * La console doit elle supporter les scripts avec le jeu de caractères
- * iso-8859-15 (false par défaut) ?
+ * La console doit elle supporter les scripts avec le jeu de caractères iso-8859-15 (false par défaut) ?
*/
static bool enableCodingIso8859_15;
/**
- * La console doit elle faire des efforts de completions en cas d'appels via
- * un binding Swig (false par défaut) ?
+ * La console doit elle faire des efforts de completions en cas d'appels via un binding Swig (false par défaut) ?
*/
static bool enableSwigCompletion;
/**
- * La console doit elle s'arrêter lorsque en mode debug une erreur est
- * rencontrée ?
+ * La console doit elle s'arrêter lorsque en mode debug une erreur est rencontrée ?
*/
static bool stopOnError;
/**
- * @return Retourne - si possible - le jeu de caractères d'encodage
- * du fichier dont le chemin d'accès est transmis en argument.
+ * @return Retourne - si possible - le jeu de caractères d'encodage du fichier dont le chemin d'accès est transmis en argument.
*/
static TkUtil::Charset::CHARSET getFileCharset (const std::string& path);
@@ -140,14 +120,12 @@ class QtPythonConsole : public QtTextEditor
virtual ~QtPythonConsole ( );
/**
- * @return La largeur souhaitée pour l'affichage des numéros de ligne
- * et breakpoints.
+ * @return La largeur souhaitée pour l'affichage des numéros de ligne et breakpoints.
*/
virtual int lineNumberAreaWidth ( ) const;
/**
- * Dessine les numéros de ligne et icônes dans le rectangle transmis en
- * argument.
+ * Dessine les numéros de ligne et icônes dans le rectangle transmis en argument.
*/
virtual void drawLinesNumbers (const QRect& rect);
@@ -177,14 +155,12 @@ class QtPythonConsole : public QtTextEditor
virtual void insert (const std::string& fileName, std::string& warnings);
/**
- * Ajoute un point d'arrêt à la ligne dont le numéro est transmis en
- * argument (premier numéro : 1).
+ * Ajoute un point d'arrêt à la ligne dont le numéro est transmis en argument (premier numéro : 1).
*/
virtual void addBreakpoint (size_t line);
/**
- * Enlève le point d'arrêt à la ligne dont le numéro est transmis en
- * argument (premier numéro : 1).
+ * Enlève le point d'arrêt à la ligne dont le numéro est transmis en argument (premier numéro : 1).
*/
virtual void removeBreakpoint (size_t line);
@@ -194,8 +170,7 @@ class QtPythonConsole : public QtTextEditor
virtual void clearBreakpoints ( );
/**
- * Exécute le script à partir de la ligne d'exécution courante. Prend en
- * compte le mode d'exécution (continu/debug).
+ * Exécute le script à partir de la ligne d'exécution courante. Prend en compte le mode d'exécution (continu/debug).
* @see isRunning;
* @see stop
*/
@@ -211,8 +186,7 @@ class QtPythonConsole : public QtTextEditor
/**
* @return true si l'instance est en train d'exécuter des instructions (même si en mode pas à pas, ou exécution d'un
- * fichier via execFile), false dans le cas contraire. En cas d'exécution d'un fichier
- * isExecutingFile retournera également true.
+ * fichier via execFile), false dans le cas contraire. En cas d'exécution d'un fichier isExecutingFile retournera également true.
* @see isHalted
* @see run
* @see execFile
@@ -228,8 +202,7 @@ class QtPythonConsole : public QtTextEditor
virtual bool isExecutingFile ( ) const;
/**
- * @return true si l'instance est actuellement arrêtée et dans
- * l'attente d'un ordre de reprise (suivant, continuer).
+ * @return true si l'instance est actuellement arrêtée et dans l'attente d'un ordre de reprise (suivant, continuer).
* @see isRunning
*/
virtual bool isHalted ( ) const;
@@ -304,22 +277,17 @@ class QtPythonConsole : public QtTextEditor
bool runnable ( ) const;
/**
- * @return true si l'instruction appartient à un bloc (boucle
- * for, while, ..., if, ..., try,
- * ..., sinon false.
+ * @return true si l'instruction appartient à un bloc (boucle for, while, ..., if, ..., try, ..., sinon false.
*/
bool partOfBlock ( ) const;
/**
- * @return true si l'instruction transmise en argument est
- * de nature multilignes (début d'instruction for, if, while,
- * try), false dans le cas contraire.
+ * @return true si l'instruction transmise en argument est de nature multilignes (début d'instruction for, if, while, try), false dans le cas contraire.
*/
static bool isMultiline (const std::string& instruction);
/**
- * @return true si l'instruction transmise en argument est
- * exécutable, false dans le cas contraire.
+ * @return true si l'instruction transmise en argument est exécutable, false dans le cas contraire.
*/
static bool isRunnable (const std::string& instruction);
@@ -345,10 +313,7 @@ class QtPythonConsole : public QtTextEditor
{ return _type; }
// Marche moyennement avec le syntax highlighting !
- static const QtScriptTextFormat commentFormat, emptyLineFormat,
- instructionFormat,
- ranInstructionFormat,
- failedInstructionFormat, tryFormat;
+ static const QtScriptTextFormat commentFormat, emptyLineFormat, instructionFormat, ranInstructionFormat, failedInstructionFormat, tryFormat;
static const QtScriptTextFormat& textFormat (const Instruction& ins);
@@ -389,8 +354,7 @@ class QtPythonConsole : public QtTextEditor
virtual QAction& removeBreakPointAction ( );
/**
- * @return L'action "enlever tous les points d'arrêt" associée à
- * l instance.
+ * @return L'action "enlever tous les points d'arrêt" associée à instance.
*/
virtual QAction& removeAllBreakPointsAction ( );
@@ -422,7 +386,7 @@ class QtPythonConsole : public QtTextEditor
* Fonction callback appelée lorsqu'une ligne de la console vient d'être exécutée. Actualise la console.
* @param numéro de ligne venant d'être exécutée
* @param true si la ligne s'est correctement exécutée, false en cas d'erreur.
- * * @param Message décrivant l'éventuelle erreur rencontrée
+ * @param Message décrivant l'éventuelle erreur rencontrée
*/
virtual void lineProcessedCallback (size_t consoleLine, bool ok, const std::string& error);
@@ -432,81 +396,65 @@ class QtPythonConsole : public QtTextEditor
//@{
/**
- * @return L'éventuel flux sortant de messages utilisé pour écrire les
- * instructions exécutées dans des scripts.
+ * @return L'éventuel flux sortant de messages utilisé pour écrire les instructions exécutées dans des scripts.
*/
virtual TkUtil::LogDispatcher& getLogDispatcher ( );
/**
- * @return L'éventuel flux sortant de messages utilisé pour afficher
- * des messages sur le déroulement des commandes exécutées.
+ * @return L'éventuel flux sortant de messages utilisé pour afficher des messages sur le déroulement des commandes exécutées.
* @see setLogStream
* @see log
- * @warning Ce flux n'est pas adopté, et sa destruction reste de ce fait à
- * la charge de l'appelant.
+ * @warning Ce flux n'est pas adopté, et sa destruction reste de ce fait à la charge de l'appelant.
*/
virtual TkUtil::LogOutputStream* getLogStream ( );
/**
- * @param Le flux sortant de messages à utiliser pour afficher des
- * messages sur le déroulement des commandes exécutées.
+ * @param Le flux sortant de messages à utiliser pour afficher des messages sur le déroulement des commandes exécutées.
* @see getLogStream
* @see log
*/
virtual void setLogStream (TkUtil::LogOutputStream* stream);
/**
- * Affiche le message transmis en arguments dans le flux sortant de messages
- * associé à l'instance.
+ * Affiche le message transmis en arguments dans le flux sortant de messages associé à l'instance.
* @see getLogStream
*/
virtual void log (const TkUtil::Log& log);
/**
- * @param Les résultats contenant la chaine transmise en argument doivent
- * être masqués.
+ * @param Les résultats contenant la chaine transmise en argument doivent être masqués.
*/
virtual void hideResult (const std::string& str);
/**
- * Ajoute la commande transmise en argument, si il (le panneau) n'en est pas
- * à l'origine, à l'historique des commandes exécutées, mais ne l'exécute
- * pas. Présente l'intérêt d'intercaller des commandes effectuées par
- * ailleurs.
+ * Ajoute la commande transmise en argument, si il (le panneau) n'en est pas à l'origine, à l'historique des commandes exécutées, mais ne l'exécute
+ * pas. Présente l'intérêt d'intercaller des commandes effectuées par ailleurs.
* @param Commande à ajouter
* @param Commentaires associés à la commande.
* @param Sortie de la commande à ajouter.
* @param Status en erreur ou non de la commande
- * @param true si la commande vient du noyau, false
- * si elle vient d'ailleurs (par exemple de la console python).
+ * @param true si la commande vient du noyau, false si elle vient d'ailleurs (par exemple de la console python).
* @see setPythonOutputStream
*/
- virtual void addToHistoric (
- const IN_UTIL UTF8String& command, const IN_UTIL UTF8String& comments,
- const IN_UTIL UTF8String& commandOutput, bool statusErr,
- bool fromKernel = false);
+ virtual void addToHistoric (const IN_UTIL UTF8String& command, const IN_UTIL UTF8String& comments, const IN_UTIL UTF8String& commandOutput, bool statusErr, bool fromKernel = false);
/**
- * @return Nom de l'interpréteur python (ex : nom de l'application),
- * pour les messages d'erreur.
+ * @return Nom de l'interpréteur python (ex : nom de l'application), pour les messages d'erreur.
* @see setInterpreterName
*/
virtual const IN_STD string& getInterpreterName ( ) const;
/**
- * @param Nom de l'interpréteur python (ex : nom de l'application),
- * pour les messages d'erreur.
+ * @param Nom de l'interpréteur python (ex : nom de l'application), pour les messages d'erreur.
* @see getInterpreterName
*/
virtual void setInterpreterName (const IN_STD string& name);
/**
- * Flux standards (stdout et stderr) récupérés
- * (true) ou non (false) par la session python lors de
+ *
Flux standards (stdout et stderr) récupérés (true) ou non (false) par la session python lors de
* l'exécution de commandes ou fichiers scripts.
- *
L'intérêt de le faire est que les sorties figurent dans les
- * logs. L'intérêt de ne pas le faire est en cas de plantage où ces
+ *
L'intérêt de le faire est que les sorties figurent dans les logs. L'intérêt de ne pas le faire est en cas de plantage où ces
* traces, éventuellement utiles à la mise au point, sont perdues.
*
*/
@@ -552,8 +500,7 @@ class QtPythonConsole : public QtTextEditor
protected :
/**
- * Classe représentant une séquence d'instructions Python issue de la console et mises dans un fichier temporaire qui sera exécuté, en mode
- * debug ou non.
+ *
Classe représentant une séquence d'instructions Python issue de la console et mises dans un fichier temporaire qui sera exécuté, en mode debug ou non.
*
* Par convention les numéros de ligne commencent à 1.
*
@@ -676,7 +623,7 @@ class QtPythonConsole : public QtTextEditor
/** Le fichier temporaire utilisé. */
std::unique_ptr _tmpFile;
- /** Le flux utilisé pour écrire dans le fichier temporire. */
+ /** Le flux utilisé pour écrire dans le fichier temporaire. */
std::unique_ptr _tmpStream;
/** Les lignes conservées. */
@@ -685,12 +632,10 @@ class QtPythonConsole : public QtTextEditor
/** Le nombre de lignes du fichier. */
size_t _lineCount;
- /** Le numéro de la première ligne de la console écrite dans le
- fichier. */
+ /** Le numéro de la première ligne de la console écrite dans le fichier. */
size_t _firstLineNum;
- /** true si le jeu de caractères du fichier est
- * ISO-8859-15, sinon false. */
+ /** true si le jeu de caractères du fichier est ISO-8859-15, sinon false. */
bool _iso8859;
/** Le plus grand numéro de ligne traité. */
@@ -723,15 +668,12 @@ class QtPythonConsole : public QtTextEditor
/**
* Appelé lorsque le curseur change de position. Actualise les actions.
- * L'action d'insertion d'un script dépend notamment de la position du
- * curseur.
+ * L'action d'insertion d'un script dépend notamment de la position du curseur.
*/
virtual void cursorPositionCallback ( );
/**
- * Certains évènements sont interdits sur les zones de script déjà
- * exécutées. Les surcharges ci-dessous visent à metter en place cette
- * interdiction.
+ * Certains évènements sont interdits sur les zones de script déjà exécutées. Les surcharges ci-dessous visent à metter en place cette interdiction.
*/
virtual bool event (QEvent*);
virtual void dragEnterEvent (QDragEnterEvent*);
@@ -739,16 +681,14 @@ class QtPythonConsole : public QtTextEditor
virtual void dragMoveEvent (QDragMoveEvent*);
virtual void dropEvent (QDropEvent*);
- /** Gestion des évènements : surchages pour spécificité (historique des
- * instructions jouées, ...).
+ /** Gestion des évènements : surchages pour spécificité (historique des instructions jouées, ...).
* @see handleDownKeyPress
* @see handleUpKeyPress
*/
virtual void keyPressEvent (QKeyEvent* event);
/**
- * Appelé lorsque l'utilisateur presse la touche down
- * (resp. up). Si les modificateurs adéquats sont également pressés
+ * Appelé lorsque l'utilisateur presse la touche down (resp. up). Si les modificateurs adéquats sont également pressés
* propose alors une instruction présente dans l'historique.
* @see addToHistoric
*/
@@ -769,8 +709,7 @@ class QtPythonConsole : public QtTextEditor
virtual void updateActions ( );
/**
- * @return La ligne courrante, à savoir la prochaine ligne à devoir être
- * exécutée.
+ * @return La ligne courrante, à savoir la prochaine ligne à devoir être exécutée.
* @see editedInstruction
* @see previousInstruction
* @see maxExecLine
@@ -790,14 +729,9 @@ class QtPythonConsole : public QtTextEditor
virtual std::string editedInstruction ( ) const;
/**
- * @return La ligne d'instruction exécutable suivant la ligne transmise
- * dont le numéro est transmis en argument (saute les lignes
- * blanches, les lignes de commentaires). S'il n'y a que des lignes
- * blanches après retourne alors le numéro de la première ligne
- * blanche.
- * @warning ATTENTION : ne garanti pas que ce sera la prochaine
- * instruction exécutée, qui peut dépendre d'un branchement
- * conditionnel, d'une exception.
+ * @return La ligne d'instruction exécutable suivant la ligne transmise dont le numéro est transmis en argument (saute les lignes
+ * blanches, les lignes de commentaires). S'il n'y a que des lignes blanches après retourne alors le numéro de la première ligne blanche.
+ * @warning ATTENTION : ne garanti pas que ce sera la prochaine instruction exécutée, qui peut dépendre d'un branchement conditionnel, d'une exception.
* @see previousInstruction
*/
virtual size_t followingInstruction (size_t line) const;
@@ -809,10 +743,8 @@ class QtPythonConsole : public QtTextEditor
virtual size_t previousInstruction ( ) const;
/**
- * Ajoute l'instruction transmise en argument à la console, au point
- * courant d'édition. Vérifie que cette instruction est valable.
- * Gère les instructions multilignes, à savoir que le cas échéant l'instance
- * attend de disposer de tous le bloc multiligne avant de l'ajouter.
+ * Ajoute l'instruction transmise en argument à la console, au point courant d'édition. Vérifie que cette instruction est valable.
+ * Gère les instructions multilignes, à savoir que le cas échéant l'instance attend de disposer de tous le bloc multiligne avant de l'ajouter.
* @warning L'instruction est supposée être encodée en UTF8.
*/
virtual void addInstruction (const std::string& instruction);
@@ -830,8 +762,7 @@ class QtPythonConsole : public QtTextEditor
virtual void execDbgInstructions (bool stopImmediatly);
/**
- * Exécute l'instruction transmise en argument hors débogueur, via
- * PyRun_StringFlags.
+ * Exécute l'instruction transmise en argument hors débogueur, via PyRun_StringFlags.
* @param instruction à exécuter
* @param insère dans la console au point courant d'exécution
* l'instruction si insert vaut true.
@@ -839,8 +770,7 @@ class QtPythonConsole : public QtTextEditor
virtual void execInstruction (const std::string& instruction, bool insert);
/**
- * Exécute le fichier transmis en argument hors débogueur, via
- * PyRun_FileFlags. Le fichier n'est pas inséré dans la console.
+ * Exécute le fichier transmis en argument hors débogueur, via PyRun_FileFlags. Le fichier n'est pas inséré dans la console.
* isRunning retourne true durant l'exécution du fichier.
* @param fichier à exécuter
* @warning ATTENTION : Non compatible en l'état avec une seconde
@@ -849,22 +779,19 @@ class QtPythonConsole : public QtTextEditor
virtual void execFile (const std::string& file);
/**
- * @return Les instructions exécutables (depuis la ligne donnée en argument
- * à la dernière ligne).
+ * @return Les instructions exécutables (depuis la ligne donnée en argument à la dernière ligne).
*/
virtual std::vector getRunnableInstructions (size_t first) const;
/**
* @param from est la ligne (non évaluée) à partir de laquelle on recherche un breakpoint.
* @param num est le nombre de lignes à partir de from.
- * @return Le numéro de ligne du prochain breakpoint après from, ou from + num + 1
- * en l'absence de breakpoint suivant.
+ * @return Le numéro de ligne du prochain breakpoint après from, ou from + num + 1 en l'absence de breakpoint suivant.
*/
virtual size_t getNextBreakPoint (size_t from, size_t num) const;
/**
- * Récupère les sorties python et les exploite conformément au contexte
- * en cours.
+ * Récupère les sorties python et les exploite conformément au contexte en cours.
*/
virtual void processPythonOutputs ( );
@@ -874,40 +801,32 @@ class QtPythonConsole : public QtTextEditor
virtual int getIconSize ( ) const;
/**
- * @return true si la modification du script est autorisée à
- * l'emplacement du curseur, false dans le cas contraire.
+ * @return true si la modification du script est autorisée à l'emplacement du curseur, false dans le cas contraire.
*/
virtual bool allowEditionAtCursorPos ( ) const;
/**
- * @return true si la modification du script est autorisée à
- * la ligne dont le numéro est tranmis en argument (numéro première
- * ligne : 1).
+ * @return true si la modification du script est autorisée à la ligne dont le numéro est tranmis en argument (numéro première ligne : 1).
*/
virtual bool allowEditionAtLine (size_t line) const;
/**
- * Positionne le curseur à une "bonne position pour l'utilisateur". Ajoute
- * une nouvelle ligne si nécessaire.
+ * Positionne le curseur à une "bonne position pour l'utilisateur". Ajoute une nouvelle ligne si nécessaire.
*/
virtual void validateCursorPosition ( );
/**
* Ajoute à completions les complétions acceptées par Swig.
- * Cette fonction part du principe que l'instruction instruction est
- * un appel Swig, et les signatures des complétions qui seront
- * proposées (et ajoutées à completions) sont extraites des messages
- * d'erreur fournis par Swig ...
- * @param ensemble de complétions auxquelles seront ajoutées celle de cet
- * appel.
+ * Cette fonction part du principe que l'instruction instruction est un appel Swig, et les signatures des complétions qui seront
+ * proposées (et ajoutées à completions) sont extraites des messages d'erreur fournis par Swig ...
+ * @param ensemble de complétions auxquelles seront ajoutées celle de cet appel.
* @param instruction dont on recherche les complétion Swig.
* @see getSwigCompletion
*/
virtual void addSwigCompletions (std::vector& completions, const std::string& instruction);
/**
- * Trouve la seule complétion acceptable par Swig possible pour
- * l'instruction transmise en argument, et la retourne. Cette instruction
+ * Trouve la seule complétion acceptable par Swig possible pour l'instruction transmise en argument, et la retourne. Cette instruction
* est de type nom de fonction, sans parenthèes, sans arguments.
* La complétion retournée est reconstituée à partir des messages d'erreur fournis par Swig ...
* @return Complétion acceptable pour Swig
@@ -969,16 +888,14 @@ class QtPythonConsole : public QtTextEditor
virtual void removeBreakPointCallback ( );
/**
- * Appelé lorsque l'utilisateur active l'action "enlever tous les points
- * d'arrêt".
+ * Appelé lorsque l'utilisateur active l'action "enlever tous les points d'arrêt".
* Enlève tous les points d'arrêt.
*/
virtual void clearBreakPointsCallback ( );
/**
* Appelé lorsque l'utilisateur active l'action "charger un script".
- * Affiche un sélecteur de fichier de chargement d'un script et insère le
- * contenu du script sélectionné à l'emplacement du curseur.
+ * Affiche un sélecteur de fichier de chargement d'un script et insère le contenu du script sélectionné à l'emplacement du curseur.
* @warning L'insertion se fait sur une nouvelle ligne
*/
virtual void insertScriptCallback ( );
@@ -992,8 +909,7 @@ class QtPythonConsole : public QtTextEditor
signals :
/**
- * Signal émis en environnement multithread lorsque la méthode
- * setUsabled/I> est invoquée depuis un thread autre que le thread de l'instance.
+ * Signal émis en environnement multithread lorsque la méthode setUsabled/I> est invoquée depuis un thread autre que le thread de l'instance.
* @warning Requiert une compilation avec la directive -DMULTITHREADED_APPLICATION.
*/
void setUsabledCalled (bool usable);
@@ -1092,10 +1008,8 @@ class QtPythonConsole : public QtTextEditor
/**
*
- * Classe de widget comprenant une instance de la classe QtPythonConsole
- * accolée à sa barre d'icônes. L'opérateur -> permet d'invoquer
- * directement les méthodes de l'instance associée de la classe
- * QtPythonConsole.
+ * Classe de widget comprenant une instance de la classe QtPythonConsole accolée à sa barre d'icônes. L'opérateur -> permet d'invoquer
+ * directement les méthodes de l'instance associée de la classe QtPythonConsole.
*
*/
class QtDecoratedPythonConsole : public QMainWindow
@@ -1131,8 +1045,7 @@ class QtDecoratedPythonConsole : public QMainWindow
virtual QtPythonConsole& getPythonConsole ( );
/**
- * Invoquer directement des méthodes de l'instance de la console python
- * associée.
+ * Invoquer directement des méthodes de l'instance de la console python associée.
*/
virtual const QtPythonConsole* operator -> ( ) const;
virtual QtPythonConsole* operator -> ( );
diff --git a/versions.txt b/versions.txt
index cd0b7c6..4ddf1a9 100644
--- a/versions.txt
+++ b/versions.txt
@@ -1,3 +1,9 @@
+Version 6.4.1 : 15/03/24
+===============
+
+Divers correctifs console python 3 (environnement Qt 5).
+
+
Version 6.4.0 : 13/12/23
===============