VirtualBox

Changeset 60260 in vbox


Ignore:
Timestamp:
Mar 30, 2016 12:31:03 PM (9 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
106301
Message:

FE/Qt: ​​​bugref:8308: Implementing passive event handler (part 02): Adding extra-data flag to choose active/passive event handler with former as default (for now). It's GUI/EventHandlingType with possible Active/Passive values.

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackend.h

    r58688 r60260  
    8989template<> bool canConvert<InformationElementType>();
    9090template<> bool canConvert<PreviewUpdateIntervalType>();
     91template<> bool canConvert<EventHandlingType>();
    9192template<> bool canConvert<GlobalSettingsPageType>();
    9293template<> bool canConvert<MachineSettingsPageType>();
     
    165166template<> int toInternalInteger(const PreviewUpdateIntervalType &previewUpdateIntervalType);
    166167template<> PreviewUpdateIntervalType fromInternalInteger<PreviewUpdateIntervalType>(const int &iPreviewUpdateIntervalType);
     168template<> EventHandlingType fromInternalString<EventHandlingType>(const QString &strEventHandlingType);
    167169template<> QString toInternalString(const GlobalSettingsPageType &globalSettingsPageType);
    168170template<> GlobalSettingsPageType fromInternalString<GlobalSettingsPageType>(const QString &strGlobalSettingsPageType);
  • trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackendGlobal.cpp

    r58968 r60260  
    5656template<> bool canConvert<InformationElementType>() { return true; }
    5757template<> bool canConvert<PreviewUpdateIntervalType>() { return true; }
     58template<> bool canConvert<EventHandlingType>() { return true; }
    5859template<> bool canConvert<GlobalSettingsPageType>() { return true; }
    5960template<> bool canConvert<MachineSettingsPageType>() { return true; }
     
    10961097}
    10971098
     1099/* EventHandlingType <= QString: */
     1100template<> EventHandlingType fromInternalString<EventHandlingType>(const QString &strEventHandlingType)
     1101{
     1102    /* Here we have some fancy stuff allowing us
     1103     * to search through the keys using 'case-insensitive' rule: */
     1104    QStringList keys;  QList<EventHandlingType> values;
     1105    keys << "Active";  values << EventHandlingType_Active;
     1106    keys << "Passive"; values << EventHandlingType_Passive;
     1107    /* Active type for unknown words: */
     1108    if (!keys.contains(strEventHandlingType, Qt::CaseInsensitive))
     1109        return EventHandlingType_Active;
     1110    /* Corresponding type for known words: */
     1111    return values.at(keys.indexOf(QRegExp(strEventHandlingType, Qt::CaseInsensitive)));
     1112}
     1113
    10981114/* QString <= GlobalSettingsPageType: */
    10991115template<> QString toInternalString(const GlobalSettingsPageType &globalSettingsPageType)
  • trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.cpp

    r58689 r60260  
    2828/* General: */
    2929const char* UIExtraDataDefs::GUI_LanguageId = "GUI/LanguageID";
     30const char* UIExtraDataDefs::GUI_EventHandlingType = "GUI/EventHandlingType";
    3031
    3132/* Messaging: */
  • trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h

    r59698 r60260  
    3434        /** VBox language ID. */
    3535        extern const char* GUI_LanguageId;
     36
     37        /** Holds event handling type. */
     38        extern const char* GUI_EventHandlingType;
    3639    /** @} */
    3740
     
    480483};
    481484
     485/** Common UI: Event handling types. */
     486enum EventHandlingType
     487{
     488    EventHandlingType_Active,
     489    EventHandlingType_Passive
     490};
     491
    482492/** Common UI: Global settings page types. */
    483493enum GlobalSettingsPageType
  • trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp

    r60249 r60260  
    173173        << KVBoxEventType_OnExtraDataCanChange
    174174        << KVBoxEventType_OnExtraDataChanged;
    175     eventSourceVirtualBox.RegisterListener(m_comEventListener, vboxEvents, TRUE);
     175    eventSourceVirtualBox.RegisterListener(m_comEventListener, vboxEvents,
     176        gEDataManager->eventHandlingType() == EventHandlingType_Active ? TRUE : FALSE);
    176177    AssertWrapperOk(eventSourceVirtualBox);
     178
     179    /* If event listener registered as passive one: */
     180    if (gEDataManager->eventHandlingType() == EventHandlingType_Passive)
     181    {
     182        /* Register event sources in their listeners as well: */
     183        m_pQtListener->getWrapped()->registerSource(eventSourceVirtualBox, m_comEventListener);
     184    }
    177185}
    178186
     
    195203void UIExtraDataEventHandler::cleanupListener()
    196204{
     205    /* If event listener registered as passive one: */
     206    if (gEDataManager->eventHandlingType() == EventHandlingType_Passive)
     207    {
     208        /* Unregister everything: */
     209        m_pQtListener->getWrapped()->unregisterSources();
     210    }
     211
    197212    /* Make sure VBoxSVC is available: */
    198213    if (!vboxGlobal().isVBoxSVCAvailable())
     
    19241939           << QString()
    19251940           << GUI_LanguageId
     1941           << GUI_EventHandlingType
    19261942           << GUI_SuppressMessages << GUI_InvertMessageOption
    19271943#ifdef VBOX_GUI_WITH_NETWORK_MANAGER
     
    22552271}
    22562272
     2273EventHandlingType UIExtraDataManager::eventHandlingType()
     2274{
     2275    return gpConverter->fromInternalString<EventHandlingType>(extraDataString(GUI_EventHandlingType));
     2276}
     2277
    22572278QStringList UIExtraDataManager::suppressedMessages()
    22582279{
  • trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h

    r60249 r60260  
    110110#endif /* DEBUG */
    111111
    112     /** @name General
     112    /** @name Base
    113113      * @{ */
    114114        /** Returns whether Extra-data Manager cached the map with passed @a strID. */
     
    133133          * If valid @a strID is set => applies to machine extra-data, otherwise => to global one. */
    134134        void setExtraDataStringList(const QString &strKey, const QStringList &value, const QString &strID = GlobalID);
     135    /** @} */
     136
     137    /** @name General
     138      * @{ */
     139        /** Returns event handling type. */
     140        EventHandlingType eventHandlingType();
    135141    /** @} */
    136142
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIConsoleEventHandler.cpp

    r60227 r60260  
    2323# include "UIConsoleEventHandler.h"
    2424# include "UIMainEventListener.h"
     25# include "UIExtraDataManager.h"
    2526# include "VBoxGlobal.h"
    2627# include "UISession.h"
     
    193194        << KVBoxEventType_OnCanShowWindow
    194195        << KVBoxEventType_OnShowWindow;
    195     eventSource.RegisterListener(m_comEventListener, events, TRUE);
     196    eventSource.RegisterListener(m_comEventListener, events,
     197        gEDataManager->eventHandlingType() == EventHandlingType_Active ? TRUE : FALSE);
     198    AssertWrapperOk(eventSource);
     199
     200    /* If event listener registered as passive one: */
     201    if (gEDataManager->eventHandlingType() == EventHandlingType_Passive)
     202    {
     203        /* Register event sources in their listeners as well: */
     204        m_pQtListener->getWrapped()->registerSource(eventSource, m_comEventListener);
     205    }
    196206}
    197207
     
    264274    /* Make sure session is passed: */
    265275    AssertPtrReturnVoid(m_pSession);
     276
     277    /* If event listener registered as passive one: */
     278    if (gEDataManager->eventHandlingType() == EventHandlingType_Passive)
     279    {
     280        /* Unregister everything: */
     281        m_pQtListener->getWrapped()->unregisterSources();
     282    }
    266283
    267284    /* Get console: */
  • trunk/src/VBox/Frontends/VirtualBox/src/selector/UIVirtualBoxEventHandler.cpp

    r60227 r60260  
    2323# include "UIVirtualBoxEventHandler.h"
    2424# include "UIMainEventListener.h"
     25# include "UIExtraDataManager.h"
    2526# include "VBoxGlobal.h"
    2627
     
    138139    vboxClientEvents
    139140        << KVBoxEventType_OnVBoxSVCAvailabilityChanged;
    140     eventSourceVirtualBoxClient.RegisterListener(m_comEventListener, vboxClientEvents, TRUE);
     141    eventSourceVirtualBoxClient.RegisterListener(m_comEventListener, vboxClientEvents,
     142        gEDataManager->eventHandlingType() == EventHandlingType_Active ? TRUE : FALSE);
    141143    AssertWrapperOk(eventSourceVirtualBoxClient);
    142144
     
    158160        << KVBoxEventType_OnSnapshotChanged
    159161        << KVBoxEventType_OnSnapshotRestored;
    160     eventSourceVirtualBox.RegisterListener(m_comEventListener, vboxEvents, TRUE);
     162    eventSourceVirtualBox.RegisterListener(m_comEventListener, vboxEvents,
     163        gEDataManager->eventHandlingType() == EventHandlingType_Active ? TRUE : FALSE);
    161164    AssertWrapperOk(eventSourceVirtualBox);
     165
     166    /* If event listener registered as passive one: */
     167    if (gEDataManager->eventHandlingType() == EventHandlingType_Passive)
     168    {
     169        /* Register event sources in their listeners as well: */
     170        m_pQtListener->getWrapped()->registerSource(eventSourceVirtualBoxClient, m_comEventListener);
     171        m_pQtListener->getWrapped()->registerSource(eventSourceVirtualBox, m_comEventListener);
     172    }
    162173}
    163174
     
    201212void UIVirtualBoxEventHandlerProxy::cleanupListener()
    202213{
     214    /* If event listener registered as passive one: */
     215    if (gEDataManager->eventHandlingType() == EventHandlingType_Passive)
     216    {
     217        /* Unregister everything: */
     218        m_pQtListener->getWrapped()->unregisterSources();
     219    }
     220
    203221    /* Get VirtualBox: */
    204222    const CVirtualBox vbox = vboxGlobal().virtualBox();
Note: See TracChangeset for help on using the changeset viewer.

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