24 QSize sizeHint()
const override {
return {800, 300}; }
25 std::vector<QString> text()
const noexcept;
27 void addTab(
const QString& name,
const QString& text,
const std::string_view language);
28 void setText(
int idx,
const QString& str);
29 void setError(
const QString& str);
31 void openInExternalEditor(
const QString& editorPath);
34 virtual void on_accepted() = 0;
36 void hideEvent(QHideEvent* event)
override;
37 void keyPressEvent(QKeyEvent* event)
override;
40 QObject* m_compileFilter{};
44 QTextEdit* textedit{};
46 std::vector<EditorTab> m_editors;
47 QPlainTextEdit* m_error{};
54 using param_type =
typename Property_T::param_type;
60 const auto& prop = (m_process.*Property_T::get)();
61 for(
auto& [name, addr, lang] : param_type::specification)
63 addTab(name, prop.*addr, lang);
66 con(m_process, Property_T::notify,
this, [
this]() {
67 const auto& prop = (m_process.*Property_T::get)();
69 for(
auto& [name, addr, lang] : param_type::specification)
71 setText(i, prop.*addr);
76 con(m_process, &Process_T::errorMessage,
this,
77 &ProcessMultiScriptEditDialog::setError);
88 void on_accepted()
override
91 if(this->text() != (m_process.*Property_T::get)())
95 if(m_process.validate(this->text()))
99 m_process, this->text(), m_context});
105 const Process_T& m_process;
106 bool m_processGone{};
109 void reject()
override { close(); }
111 void closeEvent(QCloseEvent* event)
override
113 if(!m_processGone && m_process.scriptUI ==
this)
115 const_cast<QWidget*&
>(m_process.scriptUI) =
nullptr;
116 m_process.scriptUIVisible(
false);
Definition DocumentContext.hpp:18