diff --git a/3rdparty/python-console/modified/pyconsole.cc b/3rdparty/python-console/modified/pyconsole.cc index 35f3e930..186d74d2 100644 --- a/3rdparty/python-console/modified/pyconsole.cc +++ b/3rdparty/python-console/modified/pyconsole.cc @@ -52,7 +52,8 @@ void PythonConsole::keyPressEvent( QKeyEvent* e ) if ( ! canGoLeft( ) ) return; } - + if (!cursorIsOnInputLine()) return; + if (textCursor().columnNumber() < PythonConsole::PROMPT.size()) return; QTextEdit::keyPressEvent( e ); } @@ -292,3 +293,30 @@ void PythonConsole::moveCursorToEnd( ) cursor.movePosition( QTextCursor::End ); setTextCursor( cursor ); } + +void PythonConsole::insertFromMimeData(const QMimeData *src) +{ + if (src->hasText()) { + QStringList list = src->text().split("\n",QString::KeepEmptyParts); + bool lastends = src->text().endsWith("\n"); + for (int i=0;i #include +#include #include "ParseHelper.h" #include "ParseListener.h" @@ -47,6 +48,8 @@ class PythonConsole : public QTextEdit, ParseListener virtual void handleReturnKeyPress(); + virtual void insertFromMimeData(const QMimeData *src); + /** Handle a compilable chunk of Python user input. */ diff --git a/gui/CMakeLists.txt b/gui/CMakeLists.txt index 2021b7ea..68fd0229 100644 --- a/gui/CMakeLists.txt +++ b/gui/CMakeLists.txt @@ -1,18 +1,20 @@ set(CMAKE_AUTOMOC ON) set(CMAKE_INCLUDE_CURRENT_DIR ON) -set(PYTHON_CONSOLE_SRC - ../3rdparty/python-console/ColumnFormatter.cpp - ../3rdparty/python-console/ParseHelper.cpp - ../3rdparty/python-console/ParseHelper.BlockParseState.cpp - ../3rdparty/python-console/ParseHelper.BracketParseState.cpp - ../3rdparty/python-console/ParseHelper.ContinuationParseState.cpp - ../3rdparty/python-console/ParseMessage.cpp - - ../3rdparty/python-console/modified/pyredirector.cc - ../3rdparty/python-console/modified/pyinterpreter.cc - ../3rdparty/python-console/modified/pyconsole.cc -) +if (BUILD_PYTHON) + set(PYTHON_CONSOLE_SRC + ../3rdparty/python-console/ColumnFormatter.cpp + ../3rdparty/python-console/ParseHelper.cpp + ../3rdparty/python-console/ParseHelper.BlockParseState.cpp + ../3rdparty/python-console/ParseHelper.BracketParseState.cpp + ../3rdparty/python-console/ParseHelper.ContinuationParseState.cpp + ../3rdparty/python-console/ParseMessage.cpp + + ../3rdparty/python-console/modified/pyredirector.cc + ../3rdparty/python-console/modified/pyinterpreter.cc + ../3rdparty/python-console/modified/pyconsole.cc + ) +endif() aux_source_directory(. GUI_SOURCE_FILES) aux_source_directory(${family}/ GUI_SOURCE_FILES) @@ -25,6 +27,10 @@ set(GUI_LIBRARY_FILES_${ufamily} Qt5::Widgets Qt5::OpenGL ${OPENGL_LIBRARIES} Qt add_library(gui_${family} STATIC ${GUI_SOURCE_FILES} ${PYTHON_CONSOLE_SRC} ${GUI_RESOURCE_FILES}) -target_include_directories(gui_${family} PRIVATE ../${family} ${family} ../3rdparty/QtPropertyBrowser/src ../3rdparty/python-console ../3rdparty/python-console/modified) +target_include_directories(gui_${family} PRIVATE ../${family} ${family} ../3rdparty/QtPropertyBrowser/src) +if (BUILD_PYTHON) + target_include_directories(gui_${family} PRIVATE ../3rdparty/python-console ../3rdparty/python-console/modified) +endif() + target_compile_definitions(gui_${family} PRIVATE NEXTPNR_NAMESPACE=nextpnr_${family} ARCH_${ufamily} ARCHNAME=${family} QT_NO_KEYWORDS) target_link_libraries(gui_${family} Qt5::Widgets)