##// END OF EJS Templates
Étiquette Working snapshot ajoutée à la révision 483cfe27e044
Étiquette Working snapshot ajoutée à la révision 483cfe27e044

File last commit:

r0:1aa783210b8e default
r6:068bddcaf0c7 default
Show More
PygmentsHighlighter.cpp
63 lines | 1.7 KiB | text/x-c | CppLexer
/ src / NicePyConsole / PygmentsHighlighter.cpp
Jeandet Alexis
First init of SocExplorer Repository.
r0 /*! \file PygmentsHighlighter.cpp
* \brief implements PygmentsHighlighter
* \author "Melven Zoellner" <melven@topen.org>
*
*/
#include "PygmentsHighlighter.h"
#include <QApplication>
#include <PythonQt.h>
#include <socexplorer.h>
#include <QFile>
#include <QFileInfo>
PygmentsHighlighter::PygmentsHighlighter(QTextDocument *parentDoc) :
QSyntaxHighlighter(parentDoc)
{
// create an own pythonqt context for the highlighter
_context = PythonQt::self()->createUniqueModule();
// name this object
setObjectName("pygmentsHighlighter");
// make it accessable in pythonqt,
// this allows to delegate the work in highlightBlock
// to a python function
_context.addObject(objectName(),this);
// initialize python
QString fileName = QString(PYMODULES)+"/PygmentsHighlighter.py";
QString code;
QFile file;
QFileInfo fileinfo;
code.clear();
file.setFileName(fileName);
fileinfo.setFile(fileName);
if(!fileinfo.suffix().compare("py"))
{
file.open(QIODevice::ReadOnly);
QTextStream filestrm(&file);
while(!filestrm.atEnd())code.append(filestrm.readLine()+"\n");
_context.evalScript(code);
file.close();
// this->mainContext->evalFile(pathList.at(i));
}
//_context.evalFile(QString(PYMODULES)+"/PygmentsHighlighter.py");
}
// just delegate the protected method setFormat from base class
void PygmentsHighlighter::_setFormat(int start, int count, const QTextCharFormat &format)
{
setFormat(start, count, format);
}
void PygmentsHighlighter::highlightBlock(const QString &text)
{
// call python function to do everything
QVariantList args;
args.append(text);
_context.call("highlightCode", args);
}