- Use built-in python editor.
OPTION(SALOME_YACS_USE_SWIG "Enable Python wrapper" ON)
OPTION(SALOME_YACS_USE_DSC "Use DSC KERNEL extension" ON)
-CMAKE_DEPENDENT_OPTION(SALOME_YACS_USE_QSCINTILLA "Use QScintilla" ON
- "SALOME_BUILD_GUI" OFF)
+
+CMAKE_DEPENDENT_OPTION(SALOME_YACS_USE_PYEDITOR "Use built-in py editor" ON
+ "SALOME_USE_PYVIEWER" OFF)
+
+IF(SALOME_YACS_USE_PYEDITOR)
+ ADD_DEFINITIONS(-DHAS_PYEDITOR)
+ENDIF(SALOME_YACS_USE_PYEDITOR)
# Advanced options:
IF(SALOME_YACS_USE_KERNEL AND SALOME_YACS_USE_DSC)
FIND_PACKAGE(SalomeQt4 REQUIRED COMPONENTS QtCore QtGui)
ENDIF(SALOME_BUILD_GUI)
-# QScintilla
-IF(SALOME_YACS_USE_QSCINTILLA)
- FIND_PACKAGE(SalomeQScintilla)
- SALOME_LOG_OPTIONAL_PACKAGE(QScintilla SALOME_YACS_USE_QSCINTILLA)
- ADD_DEFINITIONS(-DHAS_QSCI4)
-ENDIF(SALOME_YACS_USE_QSCINTILLA)
-
##
## YACS specifics
##
SET(KERNEL_ROOT_DIR "${KERNEL_ROOT_DIR}")
SET(GUI_ROOT_DIR "${GUI_ROOT_DIR}")
SET(QT4_ROOT_DIR "${QT4_ROOT_DIR}")
-SET(QSCINTILLA_ROOT_DIR "${QSCINTILLA_ROOT_DIR}")
SET(CONF_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/include" "${PROJECT_BINARY_DIR}/include")
# Build variables that will be expanded when configuring Salome<MODULE>Config.cmake:
-SALOME_CONFIGURE_PREPARE(QScintilla Qt4)
+SALOME_CONFIGURE_PREPARE(Qt4)
CONFIGURE_PACKAGE_CONFIG_FILE(${PROJECT_NAME}Config.cmake.in
${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
INSTALL_DESTINATION "${SALOME_INSTALL_CMAKE_LOCAL}"
PATH_VARS CONF_INCLUDE_DIRS SALOME_INSTALL_CMAKE_LOCAL CMAKE_INSTALL_PREFIX
- KERNEL_ROOT_DIR GUI_ROOT_DIR QT4_ROOT_DIR QSCINTILLA_ROOT_DIR)
+ KERNEL_ROOT_DIR GUI_ROOT_DIR QT4_ROOT_DIR)
# - in the install tree (VSR 16/08/2013: TEMPORARILY COMMENT THIS - TO REMOVE?):
# Get the relative path of the include directory so
# ${PROJECT_BINARY_DIR}/to_install/${PROJECT_NAME}Config.cmake
# INSTALL_DESTINATION "${SALOME_INSTALL_CMAKE_LOCAL}"
# PATH_VARS CONF_INCLUDE_DIRS SALOME_INSTALL_CMAKE_LOCAL CMAKE_INSTALL_PREFIX
-# KERNEL_ROOT_DIR GUI_ROOT_DIR QT4_ROOT_DIR QSCINTILLA_ROOT_DIR)
+# KERNEL_ROOT_DIR GUI_ROOT_DIR QT4_ROOT_DIR)
WRITE_BASIC_PACKAGE_VERSION_FILE(${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
VERSION ${${PROJECT_NAME_UC}_VERSION}
SET(SALOME_YACS_BUILD_GUI @SALOME_BUILD_GUI@)
SET(SALOME_YACS_USE_KERNEL @SALOME_YACS_USE_KERNEL@)
SET(SALOME_YACS_USE_DSC @SALOME_YACS_USE_DSC@)
-SET(SALOME_YACS_USE_QSCINTILLA @SALOME_YACS_USE_QSCINTILLA@)
+SET(SALOME_YACS_USE_PYEDITOR @SALOME_YACS_USE_PYEDITOR@)
SET(SALOME_YACS_USE_SWIG @SALOME_YACS_USE_SWIG@)
# Optional level 1 prerequisites:
IF(SALOME_YACS_BUILD_GUI)
SET_AND_CHECK(GUI_ROOT_DIR_EXP "@PACKAGE_GUI_ROOT_DIR@")
LIST(APPEND YACS_DEFINITIONS "@GUI_DEFINITIONS@")
- IF(SALOME_YACS_USE_QSCINTILLA)
- SET_AND_CHECK(QSCINTILLA_ROOT_DIR_EXP "@PACKAGE_QSCINTILLA_ROOT_DIR@")
- ENDIF()
ENDIF()
# For all prerequisites, load the corresponding targets if the package was used
${LIBXML2_INCLUDE_DIR}
${GRAPHVIZ_INCLUDE_DIRS}
${QT_INCLUDES}
- ${QSCINTILLA_INCLUDE_DIRS}
${KERNEL_INCLUDE_DIRS}
${GUI_INCLUDE_DIRS}
${PROJECT_BINARY_DIR}/src/genericgui
# libraries to link to
SET(_link_LIBRARIES
${QT_LIBRARIES}
- ${QSCINTILLA_LIBRARIES}
YACSRuntimeSALOME
YACSloader
SalomeWrap
#include <QToolButton>
-#if HAS_QSCI4>0
-#include <qsciscintilla.h>
-#include <qscilexerpython.h>
+#ifdef HAS_PYEDITOR
+#include <PyEditor_Editor.h>
#endif
#include <cassert>
#include "FormContainer.hxx"
#include "Message.hxx"
-#if HAS_QSCI4>0
-#include <qsciscintilla.h>
-#include <qscilexerpython.h>
+#ifdef HAS_PYEDITOR
+#include <PyEditor_Editor.h>
+#include <PyEditor_Settings.h>
#endif
#include <QToolButton>
using namespace YACS;
using namespace YACS::HMI;
-#if HAS_QSCI4>0
-class myQsciScintilla: public QsciScintilla
-{
-public:
- myQsciScintilla(QWidget *parent=0)
- : QsciScintilla(parent) {};
- ~myQsciScintilla(){};
- virtual QSize sizeHint() const { return QSize(350, 150); };
-protected:
- virtual bool event(QEvent *e);
-};
-
-bool myQsciScintilla::event(QEvent *e)
-{
- if (e->type() == QEvent::ShortcutOverride)
- {
- e->accept();
- return true;
- }
- return QsciScintilla::event(e);
-}
-
-#endif
-
-
EditionScript::EditionScript(Subject* subject,
QWidget* parent,
const char* name)
setEditablePorts(true);
_haveScript = true;
-#if HAS_QSCI4>0
- _sci = new myQsciScintilla(this);
+#ifdef HAS_PYEDITOR
+ _sci = new PyEditor_Editor(false, 0, this);
#else
_sci = new QTextEdit(this);
#endif
}
_glayout->addWidget( _sci );
-#if HAS_QSCI4>0
- _sci->setUtf8(1);
- QsciLexerPython *lex = new QsciLexerPython(_sci);
- lex->setFont(Resource::pythonfont);
- _sci->setLexer(lex);
- _sci->setBraceMatching(QsciScintilla::SloppyBraceMatch);
- _sci->setAutoIndent(1);
- _sci->setIndentationWidth(4);
- _sci->setIndentationGuides(1);
- _sci->setIndentationsUseTabs(0);
- _sci->setAutoCompletionThreshold(2);
- //_sci->setMarginLineNumbers(1,true);
- _sci->setMarginWidth(1,0);
- _sci->setFolding(QsciScintilla::PlainFoldStyle);
-#endif
-
if (!QtGuiContext::getQtCurrent()->isEdition())
_sci->setReadOnly(true);
{
DEBTRACE("EditionScript::onApply");
bool scriptEdited = false;
-#if HAS_QSCI4>0
- _sci->lexer()->setFont(Resource::pythonfont);
+#ifdef HAS_PYEDITOR
+ _sci->settings()->p_Font = Resource::pythonfont;
#endif
if(Resource::pythonExternalEditor.isEmpty())
if (_haveScript)
{
-#if HAS_QSCI4>0
- if (_sci->isModified())
- {
- scriptEdited = true;
- std::string text=_sci->text().toStdString();
- if(text[text.length()-1] != '\n')
- text=text+'\n';
- bool ret = _subInlineNode->setScript(text);
- if (ret) scriptEdited = false;
- }
-#else
if (_sci->document()->isModified())
{
scriptEdited = true;
bool ret = _subInlineNode->setScript(text);
if (ret) scriptEdited = false;
}
-#endif
}
bool containerEdited = true;
return;
QString fileName = outFile.fileName();
QTextStream out(&outFile);
-#if HAS_QSCI4>0
- out << _sci->text();
-#else
out << _sci->toPlainText();
-#endif
outFile.close();
QStringList options=Resource::pythonExternalEditor.split(" ");
if (!inFile.open(QIODevice::ReadOnly))
return;
QTextStream in(&inFile);
-#if HAS_QSCI4>0
- _sci->setText(in.readAll());
-#else
_sci->setPlainText(in.readAll());
-#endif
onApply();
}
class FormContainer;
-#if HAS_QSCI4>0
-class QsciScintilla;
+#ifdef HAS_PYEDITOR
+class PyEditor_Editor;
#endif
namespace YACS
protected:
SubjectInlineNode *_subInlineNode;
-#if HAS_QSCI4>0
- QsciScintilla* _sci;
+#ifdef HAS_PYEDITOR
+ PyEditor_Editor* _sci;
#else
QTextEdit* _sci;
#endif
#include <QIntValidator>
#include <QLineEdit>
-#if HAS_QSCI4>0
-#include <qsciscintilla.h>
-#include <qscilexerpython.h>
+#ifdef HAS_PYEDITOR
+#include <PyEditor_Editor.h>
#endif
#include <sstream>
ch_aoc->setEnabled(false);
ch_aoc->setCheckState(Qt::Checked);
//
-#if HAS_QSCI4>0
- _initScript=new QsciScintilla(_advancedParams->tw_advance);
- QsciLexerPython *lex(new QsciLexerPython(_initScript));
- lex->setFont(YACS::HMI::Resource::pythonfont);
- _initScript->setLexer(lex);
- _initScript->setBraceMatching(QsciScintilla::SloppyBraceMatch);
- _initScript->setAutoIndent(1);
- _initScript->setIndentationWidth(4);
- _initScript->setIndentationGuides(1);
- _initScript->setIndentationsUseTabs(0);
- _initScript->setAutoCompletionThreshold(2);
- _initScript->setMarginWidth(1,0);
- _initScript->setFolding(QsciScintilla::PlainFoldStyle);
+#ifdef HAS_PYEDITOR
+ _initScript=new PyEditor_Editor(false, 0, _advancedParams->tw_advance);
#else
_initScript=new QTextEdit(this);
#endif
std::map<std::string,std::string> properties(_properties);
if(_initScriptModified)
{
- std::string text(_initScript->text().toStdString());
+ std::string text(_initScript->toPlainText().toStdString());
std::string text2(BuildWithFinalEndLine(text));
properties[YACS::ENGINE::HomogeneousPoolContainer::INITIALIZE_SCRIPT_KEY]=text2;
}
}
}
-#if HAS_QSCI4>0
-class QsciScintilla;
+#ifdef HAS_PYEDITOR
+class PyEditor_Editor;
#endif
class QTextEdit;
static std::string BuildWithFinalEndLine(const std::string& script);
private:
QLineEdit *_poolSz;
-#if HAS_QSCI4>0
- QsciScintilla* _initScript;
+#ifdef HAS_PYEDITOR
+ PyEditor_Editor* _initScript;
#else
QTextEdit* _initScript;
#endif
${OMNIORB_DEFINITIONS}
${BOOST_DEFINITIONS}
${QT_DEFINITIONS}
- ${QSCINTILLA_DEFINITIONS}
${GRAPHVIZ_DEFINITIONS}
)
SET(_link_LIBRARIES
GenericGui
${QT_LIBRARIES}
- ${QSCINTILLA_LIBRARIES}
${GUI_Event}
${GUI_SalomeApp}
${GUI_SalomeSession}