71 QPointer<const ProcessModel> m_model;
72 std::shared_ptr<Pd::Instance> m_instance;
75 , m_instance{proc.m_instance}
77 setGeometry(0, 0, 0, 0);
81 &QWidget::deleteLater);
82 const auto& bin = locatePdBinary();
85 libpd_set_instance(m_instance->instance);
86 libpd_start_gui(locatePdResourceFolder().toUtf8().constData());
87 m_instance->ui_open =
true;
92 QString locatePdResourceFolder()
noexcept
96 {QStringLiteral(
"/usr/lib64/puredata"), QStringLiteral(
"/usr/lib64/pd"),
97 QStringLiteral(
"/usr/lib/puredata"), QStringLiteral(
"/usr/lib/pd")})
98 if(QFile::exists(path))
101 return QFileInfo{locatePdBinary()}.absolutePath();
104 void closeEvent(QCloseEvent* event)
override
106 QPointer<UiWrapper> p(
this);
108 if(m_instance->ui_open)
110 m_instance->ui_open =
false;
111 libpd_set_instance(m_instance->instance);
117 const_cast<QWidget*&
>(m_model->externalUI) =
nullptr;
118 m_model->externalUIVisible(
false);
123 QWidget::closeEvent(event);
129 if(m_instance->ui_open)
131 m_instance->ui_open =
false;
132 libpd_set_instance(m_instance->instance);
138 const_cast<QWidget*&
>(m_model->externalUI) =
nullptr;
139 m_model->externalUIVisible(
false);
143 void timerEvent(QTimerEvent* event)
override
145 libpd_set_instance(m_instance->instance);
Definition DocumentContext.hpp:18