void UIMachine::prepareMachineLogic() { /* Prepare async visual state type change handler: */ qRegisterMetaType<UIVisualStateType>(); connect(this, SIGNAL(sigRequestAsyncVisualStateChange(UIVisualStateType)), this, SLOT(sltChangeVisualState(UIVisualStateType)), Qt::QueuedConnection); /* Load restricted visual states: */ UIVisualStateType restrictedVisualStates = gEDataManager->restrictedVisualStates(vboxGlobal().managedVMUuid()); /* Acquire allowed visual states: */ m_allowedVisualStates = static_cast<UIVisualStateType>(UIVisualStateType_All ^ restrictedVisualStates); /* Load requested visual state: */ UIVisualStateType requestedVisualState = gEDataManager->requestedVisualState(vboxGlobal().managedVMUuid()); /* Check if requested visual state is allowed: */ if (isVisualStateAllowed(requestedVisualState)) { switch (requestedVisualState) { /* Direct transition to scale/fullscreen mode allowed: */ case UIVisualStateType_Scale: m_initialVisualState = UIVisualStateType_Scale; break; case UIVisualStateType_Fullscreen: m_initialVisualState = UIVisualStateType_Fullscreen; break; /* While to seamless is not, so we have to make request to do transition later: */ case UIVisualStateType_Seamless: uisession()->setRequestedVisualState(UIVisualStateType_Seamless); break; default: break; } } /* Enter initial visual state: */ enterInitialVisualState(); }
void UIMachine::enterInitialVisualState() { sltChangeVisualState(m_initialVisualState); }
/* Constructor: */ UIVisualState(QObject *pParent, UISession *pSession) : QObject(pParent) , m_pSession(pSession) , m_pMachineLogic(0) #ifdef Q_WS_MAC , m_fadeToken(kCGDisplayFadeReservationInvalidToken) #endif /* Q_WS_MAC */ { /* Connect state-change handler: */ connect(this, SIGNAL(sigChangeVisualState(UIVisualStateType)), parent(), SLOT(sltChangeVisualState(UIVisualStateType))); }