VirtualBox

Changeset 35722 in vbox for trunk/src/VBox/Frontends


Ignore:
Timestamp:
Jan 26, 2011 4:37:16 PM (14 years ago)
Author:
vboxsync
Message:

Main: reworked listener objects creation, fixes Win problems with events, few cleanups

Location:
trunk/src/VBox/Frontends
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VBoxHeadless/VBoxHeadless.cpp

    r35446 r35722  
    9999
    100100    virtual ~VirtualBoxClientEventListener()
     101    {
     102    }
     103
     104    HRESULT init()
     105    {
     106        return S_OK;
     107    }
     108
     109    void uninit()
    101110    {
    102111    }
     
    145154
    146155    virtual ~VirtualBoxEventListener()
     156    {
     157    }
     158
     159    HRESULT init()
     160    {
     161        return S_OK;
     162    }
     163
     164    void uninit()
    147165    {
    148166    }
     
    252270
    253271    virtual ~ConsoleEventListener()
     272    {
     273    }
     274
     275    HRESULT init()
     276    {
     277        return S_OK;
     278    }
     279
     280    void uninit()
    254281    {
    255282    }
     
    763790    ComPtr<IMachine> machine;
    764791    bool fSessionOpened = false;
    765     IEventListener *vboxClientListener = NULL;
    766     IEventListener *vboxListener = NULL;
    767     ConsoleEventListenerImpl *consoleListener = NULL;
     792    ComPtr<IEventListener> vboxClientListener;
     793    ComPtr<IEventListener> vboxListener;
     794    ComObjPtr<ConsoleEventListenerImpl> consoleListener;
    768795
    769796    do
     
    10011028            ComPtr<IEventSource> pES;
    10021029            CHECK_ERROR(pVirtualBoxClient, COMGETTER(EventSource)(pES.asOutParam()));
    1003             vboxClientListener = new VirtualBoxClientEventListenerImpl();
     1030            ComObjPtr<VirtualBoxClientEventListenerImpl> listener;
     1031            listener.createObject();
     1032            listener->init(new VirtualBoxClientEventListener());
     1033            vboxClientListener = listener;
    10041034            com::SafeArray<VBoxEventType_T> eventTypes;
    10051035            eventTypes.push_back(VBoxEventType_OnVBoxSVCAvailabilityChanged);
     
    10111041            ComPtr<IEventSource> es;
    10121042            CHECK_ERROR(console, COMGETTER(EventSource)(es.asOutParam()));
    1013             consoleListener = new ConsoleEventListenerImpl();
     1043            consoleListener.createObject();
     1044            consoleListener->init(new ConsoleEventListener());
    10141045            com::SafeArray<VBoxEventType_T> eventTypes;
    10151046            eventTypes.push_back(VBoxEventType_OnMouseCapabilityChanged);
     
    11661197            ComPtr<IEventSource> es;
    11671198            CHECK_ERROR(virtualBox, COMGETTER(EventSource)(es.asOutParam()));
    1168             vboxListener = new VirtualBoxEventListenerImpl();
     1199            ComObjPtr<VirtualBoxEventListenerImpl> listener;
     1200            listener.createObject();
     1201            listener->init(new VirtualBoxEventListener());
     1202            vboxListener = listener;
    11691203            com::SafeArray<VBoxEventType_T> eventTypes;
    11701204            eventTypes.push_back(VBoxEventType_OnGuestPropertyChanged);
  • trunk/src/VBox/Frontends/VBoxSDL/VBoxSDL.cpp

    r35666 r35722  
    245245    }
    246246
     247    HRESULT init()
     248    {
     249        return S_OK;
     250    }
     251
     252    void uninit()
     253    {
     254    }
     255
    247256    STDMETHOD(HandleEvent)(VBoxEventType_T aType, IEvent * aEvent)
    248257    {
     
    287296
    288297    virtual ~VBoxSDLEventListener()
     298    {
     299    }
     300
     301    HRESULT init()
     302    {
     303        return S_OK;
     304    }
     305
     306    void uninit()
    289307    {
    290308    }
     
    347365
    348366    virtual ~VBoxSDLConsoleEventListener()
     367    {
     368    }
     369
     370    HRESULT init()
     371    {
     372        return S_OK;
     373    }
     374
     375    void uninit()
    349376    {
    350377    }
     
    772799    uint32_t memorySize = 0;
    773800    uint32_t vramSize = 0;
    774     IEventListener *pVBoxClientListener = NULL;
    775     IEventListener *pVBoxListener = NULL;
    776     VBoxSDLConsoleEventListenerImpl *pConsoleListener = NULL;
     801    ComPtr<IEventListener> pVBoxClientListener;
     802    ComPtr<IEventListener> pVBoxListener;
     803    ComObjPtr<VBoxSDLConsoleEventListenerImpl> pConsoleListener;
    777804
    778805    bool fFullscreen = false;
     
    18341861        ComPtr<IEventSource> pES;
    18351862        CHECK_ERROR(pVirtualBoxClient, COMGETTER(EventSource)(pES.asOutParam()));
    1836         pVBoxClientListener = new VBoxSDLClientEventListenerImpl();
     1863        ComObjPtr<VBoxSDLClientEventListenerImpl> listener;
     1864        listener.createObject();
     1865        listener->init(new VBoxSDLClientEventListener());
     1866        pVBoxClientListener = listener;
    18371867        com::SafeArray<VBoxEventType_T> eventTypes;
    18381868        eventTypes.push_back(VBoxEventType_OnVBoxSVCAvailabilityChanged);
     
    18441874        ComPtr<IEventSource> pES;
    18451875        CHECK_ERROR(pVirtualBox, COMGETTER(EventSource)(pES.asOutParam()));
    1846         pVBoxListener = new VBoxSDLEventListenerImpl();
     1876        ComObjPtr<VBoxSDLEventListenerImpl> listener;
     1877        listener.createObject();
     1878        listener->init(new VBoxSDLEventListener());
     1879        pVBoxListener = listener;
    18471880        com::SafeArray<VBoxEventType_T> eventTypes;
    18481881        eventTypes.push_back(VBoxEventType_OnExtraDataChanged);
     
    18541887        ComPtr<IEventSource> pES;
    18551888        CHECK_ERROR(gpConsole, COMGETTER(EventSource)(pES.asOutParam()));
    1856         pConsoleListener = new VBoxSDLConsoleEventListenerImpl();
     1889        pConsoleListener.createObject();
     1890        pConsoleListener->init(new VBoxSDLConsoleEventListener());
    18571891        com::SafeArray<VBoxEventType_T> eventTypes;
    18581892        eventTypes.push_back(VBoxEventType_OnMousePointerShapeChanged);
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UIExtraDataEventHandler.cpp

    r34527 r35722  
    252252//    RTPrintf("Self add: %RTthrd\n", RTThreadSelf());
    253253    const CVirtualBox &vbox = vboxGlobal().virtualBox();
    254     UIMainEventListenerImpl *pListener = new UIMainEventListenerImpl(this);
     254    ComObjPtr<UIMainEventListenerImpl> pListener;
     255    pListener.createObject();
     256    pListener->init(new UIMainEventListener(), this);
    255257    m_mainEventListener = CEventListener(pListener);
    256258    QVector<KVBoxEventType> events;
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMainEventListener.cpp

    r34527 r35722  
    2525//#include <iprt/stream.h>
    2626
    27 UIMainEventListener::UIMainEventListener(QObject * /* pParent */)
    28 //  : QObject(pParent) /* Todo: Not sure if pParent should delete this. Especially on Win there is ref counting implemented. */
     27UIMainEventListener::UIMainEventListener()
    2928  : QObject()
    3029{
     
    4241}
    4342
     43HRESULT UIMainEventListener::init(QObject * /* pParent */)
     44{
     45    return S_OK;
     46}
     47
     48void    UIMainEventListener::uninit()
     49{
     50}
    4451
    4552/**
     
    5057{
    5158    CEvent event(pEvent);
    52 //    RTPrintf("Event received: %d (%RTthrd)\n", event.GetType(), RTThreadSelf());
     59    // printf("Event received: %d\n", event.GetType());
    5360    switch(event.GetType())
    5461    {
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMainEventListener.h

    r34527 r35722  
    4343
    4444public:
    45     UIMainEventListener(QObject *pParent);
     45    UIMainEventListener();
     46
     47
     48    HRESULT init(QObject *pParent);
     49    void    uninit();
    4650
    4751    STDMETHOD(HandleEvent)(VBoxEventType_T aType, IEvent *pEvent);
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp

    r35665 r35722  
    52495249    QApplication::removePostedEvents (this);
    52505250
    5251 #ifdef Q_WS_WIN
    5252     /* COM for the main thread is shutdown in main() */
    5253 #else
    52545251    COMBase::CleanupCOM();
    5255 #endif
    52565252
    52575253    mValid = false;
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIConsoleEventHandler.cpp

    r34527 r35722  
    5959
    6060//    RTPrintf("Self add: %RTthrd\n", RTThreadSelf());
    61     UIMainEventListenerImpl *pListener = new UIMainEventListenerImpl(this);
     61    ComObjPtr<UIMainEventListenerImpl> pListener;
     62    pListener.createObject();
     63    pListener->init(new UIMainEventListener(), this);
    6264    m_mainEventListener = CEventListener(pListener);
    6365    QVector<KVBoxEventType> events;
  • trunk/src/VBox/Frontends/VirtualBox/src/selector/UIVirtualBoxEventHandler.cpp

    r34527 r35722  
    5252//    RTPrintf("Self add: %RTthrd\n", RTThreadSelf());
    5353    const CVirtualBox &vbox = vboxGlobal().virtualBox();
    54     UIMainEventListenerImpl *pListener = new UIMainEventListenerImpl(this);
     54    ComObjPtr<UIMainEventListenerImpl> pListener;
     55    pListener.createObject();
     56    pListener->init(new UIMainEventListener(), this);
    5557    m_mainEventListener = CEventListener(pListener);
    5658    QVector<KVBoxEventType> events;
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette