bool UIVMItem::recache() { bool needsResort = true; m_strId = m_machine.GetId(); m_strSettingsFile = m_machine.GetSettingsFilePath(); m_fAccessible = m_machine.GetAccessible(); if (m_fAccessible) { QString name = m_machine.GetName(); CSnapshot snp = m_machine.GetCurrentSnapshot(); m_strSnapshotName = snp.isNull() ? QString::null : snp.GetName(); needsResort = name != m_strName; m_strName = name; m_machineState = m_machine.GetState(); m_lastStateChange.setTime_t(m_machine.GetLastStateChange() / 1000); m_sessionState = m_machine.GetSessionState(); m_strOSTypeId = m_machine.GetOSTypeId(); m_cSnaphot = m_machine.GetSnapshotCount(); if ( m_machineState == KMachineState_PoweredOff || m_machineState == KMachineState_Saved || m_machineState == KMachineState_Teleported || m_machineState == KMachineState_Aborted ) { m_pid = (ULONG) ~0; /// @todo Remove. See @c todo in #switchTo() below. #if 0 mWinId = (WId) ~0; #endif } else { m_pid = m_machine.GetSessionPID(); /// @todo Remove. See @c todo in #switchTo() below. #if 0 mWinId = FindWindowIdFromPid(m_pid); #endif } /* Determine configuration access level: */ m_configurationAccessLevel = ::configurationAccessLevel(m_sessionState, m_machineState); /* Also take restrictions into account: */ if ( m_configurationAccessLevel != ConfigurationAccessLevel_Null && !gEDataManager->machineReconfigurationEnabled(m_strId)) m_configurationAccessLevel = ConfigurationAccessLevel_Null; /* Should we show details for this item? */ m_fHasDetails = gEDataManager->showMachineInSelectorDetails(m_strId); } else { m_accessError = m_machine.GetAccessError(); /* this should be in sync with * UIMessageCenter::confirm_machineDeletion() */ QFileInfo fi(m_strSettingsFile); QString name = VBoxGlobal::hasAllowedExtension(fi.completeSuffix(), VBoxFileExts) ? fi.completeBaseName() : fi.fileName(); needsResort = name != m_strName; m_strName = name; m_machineState = KMachineState_Null; m_sessionState = KSessionState_Null; m_lastStateChange = QDateTime::currentDateTime(); m_strOSTypeId = QString::null; m_cSnaphot = 0; m_pid = (ULONG) ~0; /// @todo Remove. See @c todo in #switchTo() below. #if 0 mWinId = (WId) ~0; #endif /* Set configuration access level to NULL: */ m_configurationAccessLevel = ConfigurationAccessLevel_Null; /* Should we show details for this item? */ m_fHasDetails = true; } return needsResort; }
bool UIVMItem::recache() { bool needsResort = true; m_strId = m_machine.GetId(); m_strSettingsFile = m_machine.GetSettingsFilePath(); m_fAccessible = m_machine.GetAccessible(); if (m_fAccessible) { QString name = m_machine.GetName(); CSnapshot snp = m_machine.GetCurrentSnapshot(); m_strSnapshotName = snp.isNull() ? QString::null : snp.GetName(); needsResort = name != m_strName; m_strName = name; m_machineState = m_machine.GetState(); m_lastStateChange.setTime_t(m_machine.GetLastStateChange() / 1000); m_sessionState = m_machine.GetSessionState(); m_strOSTypeId = m_machine.GetOSTypeId(); m_cSnaphot = m_machine.GetSnapshotCount(); if ( m_machineState == KMachineState_PoweredOff || m_machineState == KMachineState_Saved || m_machineState == KMachineState_Teleported || m_machineState == KMachineState_Aborted ) { m_pid = (ULONG) ~0; /// @todo Remove. See @c todo in #switchTo() below. #if 0 mWinId = (WId) ~0; #endif } else { m_pid = m_machine.GetSessionPid(); /// @todo Remove. See @c todo in #switchTo() below. #if 0 mWinId = FindWindowIdFromPid(m_pid); #endif } } else { m_accessError = m_machine.GetAccessError(); /* this should be in sync with * UIMessageCenter::confirm_machineDeletion() */ QFileInfo fi(m_strSettingsFile); QString name = VBoxGlobal::hasAllowedExtension(fi.completeSuffix(), VBoxFileExts) ? fi.completeBaseName() : fi.fileName(); needsResort = name != m_strName; m_strName = name; m_machineState = KMachineState_Null; m_sessionState = KSessionState_Null; m_lastStateChange = QDateTime::currentDateTime(); m_strOSTypeId = QString::null; m_cSnaphot = 0; m_pid = (ULONG) ~0; /// @todo Remove. See @c todo in #switchTo() below. #if 0 mWinId = (WId) ~0; #endif } return needsResort; }