Hi,

Unfortunately this technic doesn’t seem to be working on Mac. Not sure if this 
is a BUG.

It is able to create the QQuickView, but as soon as it instantiates QQuickView, 
it crashes:

if (!window)
{
        window = QWindow::fromWinId((WId)ptr); // line that causes the crash

        ...

QML debugging is enabled. Only use this in a safe environment.
creating instance of patch model
finalizing vst
finalizing editor
finalizing app
destroying editor
2015-06-04 08:38:36.885 Live[88624:8396551] _DPSDiscardEvents: 
FlushEventsMatchingListFromQueue returned error (-50)
creating instance of patch model
2015-06-04 08:38:37.892 Live[88624:8396551] -[NSHIObject 
setPostsFrameChangedNotifications:]: unrecognized selector sent to instance 
0x1b333860
2015-06-04 08:38:37.892 Live[88624:8396551] -[NSHIObject 
setPostsFrameChangedNotifications:]: unrecognized selector sent to instance 
0x1b333860
2015-06-04 08:38:38.472 Live[88624:8396551] (
        0   CoreFoundation                      0x94787c63 __raiseError + 195
        1   libobjc.A.dylib                     0x996d0a2a objc_exception_throw 
+ 276
        2   CoreFoundation                      0x9478c7c5 -[NSObject(NSObject) 
doesNotRecognizeSelector:] + 277
        3   CoreFoundation                      0x946c2758 ___forwarding___ + 
1032
        4   CoreFoundation                      0x946c232e 
_CF_forwarding_prep_0 + 14
        5   drc                                 0x1e375970 
_ZN12QCocoaWindow14recreateWindowEPK15QPlatformWindow + 960
        6   drc                                 0x1e37526a 
_ZN12QCocoaWindowC2EP7QWindow + 1146
        7   drc                                 0x1e371295 
_ZNK17QCocoaIntegration20createPlatformWindowEP7QWindow + 37
        8   drc                                 0x1e7a9439 
_ZN14QWindowPrivate6createEb + 57
        9   drc                                 0x1e7accbf 
_ZN7QWindow9fromWinIdEj + 207
        10  drc                                 0x1dd60fed 
_ZN10IVstEditor4openEPv + 61

Does this say something to anyone?

Regards,

Nuno


> On 03/06/2015, at 18:11, Nuno Santos <[email protected]> wrote:
> 
> Hey Bo,
> 
> Just wanted to share with you some progress.
> 
> Actually Qt makes it really simple. I was amazed I could do it with a just 5 
> lines of code. (Qt ROCKS!)
> 
> Right now, I just have a problem. The plugin window opens and closes 
> perfectly. But once open, if I delete the plug in from the host and the 
> QApplication is deleted, it crashes. Still can't figure it why.
> 
> See below my simple solution for this case. I problably know it yourself. I'm 
> sharing it anyway.
> 
> bool IVstWrapperEditor::open(void *ptr)
> {
>     AEffEditor::open(ptr);
> 
>     if (!window)
>     {
>         window = QWindow::fromWinId((WId)ptr);
> 
>         view = new QQuickView(window);
>         view->setSource(QUrl(QStringLiteral("qrc:/main.qml")));
>         view->rootContext()->setContextProperty("controller", _controller);
>         view->show();
> 
>         return true;
>     }
> 
>     return false;
> }
> 
> void IVstWrapperEditor::close()
> {
>     if (window)
>     {
>         qDebug() << "destroying view";
>         view->deleteLater();
>         view=0;
> 
>         qDebug() << "destroying window";
>         window->deleteLater();
>         window=0;
>     }
> 
>     AEffEditor::close();
> }
> 
> Regards,
> 
> Nuno
> 
> On 03/06/2015 11:56, Nuno Santos wrote:
>> In my case I have a related app which opens the plugin. 
>> 
>> The host provides a window handle to the plugin.
>> 
>> I was trying to make that handle into a QWidget with the following code:
>> 
>> MyWindow::MyWindow(void* ptr) :
>>     QWidget(0)
>> {
>>     HWND w = (HWND) ptr;
>> 
>>     setGeometry(QRect(0,0,640,480));
>> 
>>     QPalette Pal(palette());
>> 
>>     // set black background
>>     Pal.setColor(QPalette::Background, Qt::black);
>>     setAutoFillBackground(true);
>>     setPalette(Pal);
>> 
>>     create((WId)w, false, false);
>> }
>> 
>> The problem is that two windows appear, the one the host provides and the 
>> one created by QWidget.
>> 
>> It seems that the create call is not working as intended.
>> 
>> MyWindow subclasses QWidget in order to call the create method since it’s 
>> protected.
>> 
>> Do you have any clue why this technic isn’t working?
>> 
>> Thanks,
>> 
>> Nuno Santos
>> Founder / CEO / CTO
>> www.imaginando.pt <http://www.imaginando.pt/>
>> +351 91 621 69 62
>> 
>>> On 03 Jun 2015, at 11:37, Bo Thorsen <[email protected] 
>>> <mailto:[email protected]>> wrote:
>>> 
>>> Den 03-06-2015 kl. 12:35 skrev Nuno Santos:
>>>> Thanks for sharing your code.
>>>> 
>>>> I will try and give some feedback.
>>>> 
>>>> Any thoughts regarding the initial approach? Is there any reason for you
>>>> not having followed that path?
>>> 
>>> My application inserts an overlay over a complete unrelated application 
>>> (the pokerstars or bet365 poker clients actually), so this is the only 
>>> approach that can work.
>>> 
>>> Bo Thorsen,
>>> Director, Viking Software.
>>> 
>>> -- 
>>> Viking Software
>>> Qt and C++ developers for hire
>>> http://www.vikingsoft.eu <http://www.vikingsoft.eu/>
>> 
>> 
>> 
>> _______________________________________________
>> Interest mailing list
>> [email protected] <mailto:[email protected]>
>> http://lists.qt-project.org/mailman/listinfo/interest 
>> <http://lists.qt-project.org/mailman/listinfo/interest>
> 
> _______________________________________________
> Interest mailing list
> [email protected]
> http://lists.qt-project.org/mailman/listinfo/interest

_______________________________________________
Interest mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to