2 #include <Process/GenericProcessFactory.hpp>
3 #include <Process/WidgetLayer/WidgetProcessFactory.hpp>
5 #include <Control/DefaultEffectItem.hpp>
6 #include <Effect/EffectFactory.hpp>
7 #include <Pd/Inspector/PdInspectorWidget.hpp>
8 #include <Pd/PdProcess.hpp>
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
94 #if defined(__linux__)
95 auto path = QStringLiteral(
"/usr/lib/pd");
96 if(QFile::exists(path))
99 return QStringLiteral(
"/usr/lib64/pd");
101 return QFileInfo{locatePdBinary()}.absolutePath();
105 void closeEvent(QCloseEvent* event)
override
107 QPointer<UiWrapper> p(
this);
109 if(m_instance->ui_open)
111 m_instance->ui_open =
false;
112 libpd_set_instance(m_instance->instance);
118 const_cast<QWidget*&
>(m_model->externalUI) =
nullptr;
119 m_model->externalUIVisible(
false);
124 QWidget::closeEvent(event);
130 if(m_instance->ui_open)
132 m_instance->ui_open =
false;
133 libpd_set_instance(m_instance->instance);
139 const_cast<QWidget*&
>(m_model->externalUI) =
nullptr;
140 m_model->externalUIVisible(
false);
144 void timerEvent(QTimerEvent* event)
override
146 libpd_set_instance(m_instance->instance);
void identified_object_destroying(IdentifiedObjectAbstract *o)
To be called by subclasses.
Definition: PdProcess.hpp:40
Definition: DefaultEffectItem.hpp:26
Definition: EffectFactory.hpp:66
Definition: PdLayer.hpp:70
Definition: DocumentContext.hpp:18