28 #include <QVBoxLayout>
31 const int accumulate_updates_during_msec = 20.;
36 , m_textEdit(new QTextEdit)
37 , m_sampleModel(nullptr)
38 , m_instrumentModel(nullptr)
39 , m_highlighter(nullptr)
40 , m_updateTimer(new
UpdateTimer(accumulate_updates_during_msec, this))
43 m_textEdit->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
45 auto mainLayout =
new QVBoxLayout;
46 mainLayout->setContentsMargins(0, 0, 0, 0);
49 setLayout(mainLayout);
52 QFont textFont(
"Monospace");
91 m_textEdit->setLineWrapMode(QTextEdit::NoWrap);
94 const int old_scrollbar_value =
m_textEdit->verticalScrollBar()->value();
98 if (!code_snippet.isEmpty())
103 m_textEdit->verticalScrollBar()->setValue(old_scrollbar_value);
110 Qt::UniqueConnection);
112 Qt::UniqueConnection);
114 Qt::UniqueConnection);
116 Qt::UniqueConnection);
119 Qt::UniqueConnection);
153 if (!result.isEmpty())
156 }
catch (
const std::exception& ex) {
158 QString(
"Generation of Python Script failed. Code is not complete.\n\n"
159 "It can happen if sample requires further assembling or some of sample "
160 "parameters are not valid. See details below.\n\n%1")
161 .arg(QString::fromStdString(ex.what()));
Defines class DesignerHelper.
Defines DomainObjectBuilder namespace.
Defines ExportToPython namespace.
Defines class MultiLayerItem.
Defines class MultiLayer.
Defines class PythonSyntaxHighlighter.
Defines class SampleModel.
Defines namespace SessionItemUtils.
Defines class UpdateTimer.
Defines class WarningSign.
static int getPythonEditorFontSize()
Implementation of highlighting for Python code.
Main model to hold sample items.
SessionItem * itemForIndex(const QModelIndex &index) const
QVector< T * > topItems() const
The UpdateTimer class accumulates update requests during certain period of time, and at the end of th...
The WarningSign controls appearance of WarningSignWidget on top of parent widget.
void clear()
Clears warning message;.
void setWarningMessage(const QString &warningMessage)
Shows warning sign on the screen.
std::unique_ptr< MultiLayer > buildMultiLayer(const SessionItem &multilayer_item)
std::string sampleCode(const MultiLayer &multilayer)
bool IsPositionRelated(const SessionItem &item)
Returns true if current item is related to the position on sample editor canvas.