void UIMachineWindowNormal::sltHandleMenuBarConfigurationChange(const QUuid &uMachineID) { /* Skip unrelated machine IDs: */ if (vboxGlobal().managedVMUuid() != uMachineID) return; /* Check whether menu-bar is enabled: */ const bool fEnabled = gEDataManager->menuBarEnabled(vboxGlobal().managedVMUuid()); /* Update settings action 'enable' state: */ QAction *pActionMenuBarSettings = actionPool()->action(UIActionIndexRT_M_View_M_MenuBar_S_Settings); pActionMenuBarSettings->setEnabled(fEnabled); /* Update switch action 'checked' state: */ QAction *pActionMenuBarSwitch = actionPool()->action(UIActionIndexRT_M_View_M_MenuBar_T_Visibility); pActionMenuBarSwitch->blockSignals(true); pActionMenuBarSwitch->setChecked(fEnabled); pActionMenuBarSwitch->blockSignals(false); /* Update menu-bar visibility: */ menuBar()->setVisible(pActionMenuBarSwitch->isChecked()); /* Update menu-bar: */ updateMenu(); /* Normalize geometry without moving: */ normalizeGeometry(false /* adjust position */); }
void UIMachineWindowNormal::sltHandleStatusBarConfigurationChange(const QUuid &uMachineID) { /* Skip unrelated machine IDs: */ if (vboxGlobal().managedVMUuid() != uMachineID) return; /* Check whether status-bar is enabled: */ const bool fEnabled = gEDataManager->statusBarEnabled(vboxGlobal().managedVMUuid()); /* Update settings action 'enable' state: */ QAction *pActionStatusBarSettings = actionPool()->action(UIActionIndexRT_M_View_M_StatusBar_S_Settings); pActionStatusBarSettings->setEnabled(fEnabled); /* Update switch action 'checked' state: */ QAction *pActionStatusBarSwitch = actionPool()->action(UIActionIndexRT_M_View_M_StatusBar_T_Visibility); pActionStatusBarSwitch->blockSignals(true); pActionStatusBarSwitch->setChecked(fEnabled); pActionStatusBarSwitch->blockSignals(false); /* Update status-bar visibility: */ statusBar()->setVisible(pActionStatusBarSwitch->isChecked()); /* Update status-bar indicators-pool: */ m_pIndicatorsPool->setAutoUpdateIndicatorStates(statusBar()->isVisible() && uisession()->isRunning()); /* Normalize geometry without moving: */ normalizeGeometry(false /* adjust position */); }
void UIMachineWindowNormal::showInNecessaryMode() { /* Make sure this window should be shown at all: */ if (!uisession()->isScreenVisible(m_uScreenId)) return hide(); /* Make sure this window is not minimized: */ if (isMinimized()) return; /* Show in normal mode: */ show(); /* Normalize machine-window geometry: */ normalizeGeometry(true /* adjust position */); /* Make sure machine-view have focus: */ m_pMachineView->setFocus(); }
void UIMachineWindowNormal::loadSettings() { /* Call to base-class: */ UIMachineWindow::loadSettings(); /* Load GUI customizations: */ { #ifndef VBOX_WS_MAC /* Update menu-bar visibility: */ menuBar()->setVisible(actionPool()->action(UIActionIndexRT_M_View_M_MenuBar_T_Visibility)->isChecked()); #endif /* !VBOX_WS_MAC */ /* Update status-bar visibility: */ statusBar()->setVisible(actionPool()->action(UIActionIndexRT_M_View_M_StatusBar_T_Visibility)->isChecked()); m_pIndicatorsPool->setAutoUpdateIndicatorStates(statusBar()->isVisible() && uisession()->isRunning()); } /* Load window geometry: */ { /* Load extra-data: */ QRect geo = gEDataManager->machineWindowGeometry(machineLogic()->visualStateType(), m_uScreenId, vboxGlobal().managedVMUuid()); /* If we do have proper geometry: */ if (!geo.isNull()) { /* If previous machine-state was SAVED: */ if (machine().GetState() == KMachineState_Saved) { /* Restore window geometry: */ m_normalGeometry = geo; VBoxGlobal::setTopLevelGeometry(this, m_normalGeometry); } /* If previous machine-state was NOT SAVED: */ else { /* Restore only window position: */ m_normalGeometry = QRect(geo.x(), geo.y(), width(), height()); VBoxGlobal::setTopLevelGeometry(this, m_normalGeometry); /* And normalize to the optimal-size: */ normalizeGeometry(false /* adjust position */); } /* Maximize (if necessary): */ if (gEDataManager->machineWindowShouldBeMaximized(machineLogic()->visualStateType(), m_uScreenId, vboxGlobal().managedVMUuid())) setWindowState(windowState() | Qt::WindowMaximized); } /* If we do NOT have proper geometry: */ else { /* Get available geometry, for screen with (x,y) coords if possible: */ QRect availableGeo = !geo.isNull() ? gpDesktop->availableGeometry(QPoint(geo.x(), geo.y())) : gpDesktop->availableGeometry(this); /* Normalize to the optimal size: */ normalizeGeometry(true /* adjust position */); /* Move newly created window to the screen-center: */ m_normalGeometry = geometry(); m_normalGeometry.moveCenter(availableGeo.center()); VBoxGlobal::setTopLevelGeometry(this, m_normalGeometry); } /* Normalize to the optimal size: */ #ifdef VBOX_WS_X11 QTimer::singleShot(0, this, SLOT(sltNormalizeGeometry())); #else /* !VBOX_WS_X11 */ normalizeGeometry(true /* adjust position */); #endif /* !VBOX_WS_X11 */ } }
void UIMachineViewSeamless::sltAdditionsStateChanged() { normalizeGeometry(false); }