Changeset 75427 in vbox
- Timestamp:
- Nov 13, 2018 4:39:09 PM (6 years ago)
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackend.h
r75016 r75427 89 89 template<> SHARED_LIBRARY_STUFF bool canConvert<UIExtraDataMetaDefs::MenuWindowActionType>(); 90 90 #endif /* VBOX_WS_MAC */ 91 template<> SHARED_LIBRARY_STUFF bool canConvert<UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral>(); 92 template<> SHARED_LIBRARY_STUFF bool canConvert<UIExtraDataMetaDefs::DetailsElementOptionTypeSystem>(); 93 template<> SHARED_LIBRARY_STUFF bool canConvert<UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay>(); 94 template<> SHARED_LIBRARY_STUFF bool canConvert<UIExtraDataMetaDefs::DetailsElementOptionTypeStorage>(); 95 template<> SHARED_LIBRARY_STUFF bool canConvert<UIExtraDataMetaDefs::DetailsElementOptionTypeAudio>(); 96 template<> SHARED_LIBRARY_STUFF bool canConvert<UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork>(); 97 template<> SHARED_LIBRARY_STUFF bool canConvert<UIExtraDataMetaDefs::DetailsElementOptionTypeSerial>(); 98 template<> SHARED_LIBRARY_STUFF bool canConvert<UIExtraDataMetaDefs::DetailsElementOptionTypeUsb>(); 99 template<> SHARED_LIBRARY_STUFF bool canConvert<UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders>(); 100 template<> SHARED_LIBRARY_STUFF bool canConvert<UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface>(); 101 template<> SHARED_LIBRARY_STUFF bool canConvert<UIExtraDataMetaDefs::DetailsElementOptionTypeDescription>(); 91 102 template<> SHARED_LIBRARY_STUFF bool canConvert<UIToolType>(); 92 103 template<> SHARED_LIBRARY_STUFF bool canConvert<UIVisualStateType>(); … … 164 175 template<> SHARED_LIBRARY_STUFF UIExtraDataMetaDefs::MenuWindowActionType fromInternalString<UIExtraDataMetaDefs::MenuWindowActionType>(const QString &strMenuWindowActionType); 165 176 #endif /* VBOX_WS_MAC */ 177 template<> SHARED_LIBRARY_STUFF QString toInternalString(const UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral &enmDetailsElementOptionTypeGeneral); 178 template<> SHARED_LIBRARY_STUFF UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral>(const QString &strDetailsElementOptionTypeGeneral); 179 template<> SHARED_LIBRARY_STUFF QString toInternalString(const UIExtraDataMetaDefs::DetailsElementOptionTypeSystem &enmDetailsElementOptionTypeSystem); 180 template<> SHARED_LIBRARY_STUFF UIExtraDataMetaDefs::DetailsElementOptionTypeSystem fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeSystem>(const QString &strDetailsElementOptionTypeSystem); 181 template<> SHARED_LIBRARY_STUFF QString toInternalString(const UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay &enmDetailsElementOptionTypeDisplay); 182 template<> SHARED_LIBRARY_STUFF UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay>(const QString &strDetailsElementOptionTypeDisplay); 183 template<> SHARED_LIBRARY_STUFF QString toInternalString(const UIExtraDataMetaDefs::DetailsElementOptionTypeStorage &enmDetailsElementOptionTypeStorage); 184 template<> SHARED_LIBRARY_STUFF UIExtraDataMetaDefs::DetailsElementOptionTypeStorage fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeStorage>(const QString &strDetailsElementOptionTypeStorage); 185 template<> SHARED_LIBRARY_STUFF QString toInternalString(const UIExtraDataMetaDefs::DetailsElementOptionTypeAudio &enmDetailsElementOptionTypeAudio); 186 template<> SHARED_LIBRARY_STUFF UIExtraDataMetaDefs::DetailsElementOptionTypeAudio fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeAudio>(const QString &strDetailsElementOptionTypeAudio); 187 template<> SHARED_LIBRARY_STUFF QString toInternalString(const UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork &enmDetailsElementOptionTypeNetwork); 188 template<> SHARED_LIBRARY_STUFF UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork>(const QString &strDetailsElementOptionTypeNetwork); 189 template<> SHARED_LIBRARY_STUFF QString toInternalString(const UIExtraDataMetaDefs::DetailsElementOptionTypeSerial &enmDetailsElementOptionTypeSerial); 190 template<> SHARED_LIBRARY_STUFF UIExtraDataMetaDefs::DetailsElementOptionTypeSerial fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeSerial>(const QString &strDetailsElementOptionTypeSerial); 191 template<> SHARED_LIBRARY_STUFF QString toInternalString(const UIExtraDataMetaDefs::DetailsElementOptionTypeUsb &enmDetailsElementOptionTypeUsb); 192 template<> SHARED_LIBRARY_STUFF UIExtraDataMetaDefs::DetailsElementOptionTypeUsb fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeUsb>(const QString &strDetailsElementOptionTypeUsb); 193 template<> SHARED_LIBRARY_STUFF QString toInternalString(const UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders &enmDetailsElementOptionTypeSharedFolders); 194 template<> SHARED_LIBRARY_STUFF UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders>(const QString &strDetailsElementOptionTypeSharedFolders); 195 template<> SHARED_LIBRARY_STUFF QString toInternalString(const UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface &enmDetailsElementOptionTypeUserInterface); 196 template<> SHARED_LIBRARY_STUFF UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface>(const QString &strDetailsElementOptionTypeUserInterface); 197 template<> SHARED_LIBRARY_STUFF QString toInternalString(const UIExtraDataMetaDefs::DetailsElementOptionTypeDescription &enmDetailsElementOptionTypeDescription); 198 template<> SHARED_LIBRARY_STUFF UIExtraDataMetaDefs::DetailsElementOptionTypeDescription fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeDescription>(const QString &strDetailsElementOptionTypeDescription); 166 199 template<> SHARED_LIBRARY_STUFF QString toInternalString(const UIToolType &enmToolType); 167 200 template<> SHARED_LIBRARY_STUFF UIToolType fromInternalString<UIToolType>(const QString &strToolType); -
trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackendGlobal.cpp
r75359 r75427 53 53 template<> bool canConvert<UIExtraDataMetaDefs::MenuWindowActionType>() { return true; } 54 54 #endif /* VBOX_WS_MAC */ 55 template<> bool canConvert<UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral>() { return true; } 56 template<> bool canConvert<UIExtraDataMetaDefs::DetailsElementOptionTypeSystem>() { return true; } 57 template<> bool canConvert<UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay>() { return true; } 58 template<> bool canConvert<UIExtraDataMetaDefs::DetailsElementOptionTypeStorage>() { return true; } 59 template<> bool canConvert<UIExtraDataMetaDefs::DetailsElementOptionTypeAudio>() { return true; } 60 template<> bool canConvert<UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork>() { return true; } 61 template<> bool canConvert<UIExtraDataMetaDefs::DetailsElementOptionTypeSerial>() { return true; } 62 template<> bool canConvert<UIExtraDataMetaDefs::DetailsElementOptionTypeUsb>() { return true; } 63 template<> bool canConvert<UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders>() { return true; } 64 template<> bool canConvert<UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface>() { return true; } 65 template<> bool canConvert<UIExtraDataMetaDefs::DetailsElementOptionTypeDescription>() { return true; } 55 66 template<> bool canConvert<UIToolType>() { return true; } 56 67 template<> bool canConvert<UIVisualStateType>() { return true; } … … 870 881 #endif /* VBOX_WS_MAC */ 871 882 883 /* QString <= UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral: */ 884 template<> QString toInternalString(const UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral &enmDetailsElementOptionTypeGeneral) 885 { 886 QString strResult; 887 switch (enmDetailsElementOptionTypeGeneral) 888 { 889 case UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral_Name: strResult = "Name"; break; 890 case UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral_OS: strResult = "OS"; break; 891 case UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral_Location: strResult = "Location"; break; 892 case UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral_Groups: strResult = "Groups"; break; 893 default: 894 { 895 AssertMsgFailed(("No text for details element option type=%d", enmDetailsElementOptionTypeGeneral)); 896 break; 897 } 898 } 899 return strResult; 900 } 901 902 /* UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral <= QString: */ 903 template<> UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral>(const QString &strDetailsElementOptionTypeGeneral) 904 { 905 /* Here we have some fancy stuff allowing us 906 * to search through the keys using 'case-insensitive' rule: */ 907 QStringList keys; QList<UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral> values; 908 keys << "Name"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral_Name; 909 keys << "OS"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral_OS; 910 keys << "Location"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral_Location; 911 keys << "Groups"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral_Groups; 912 /* Invalid type for unknown words: */ 913 if (!keys.contains(strDetailsElementOptionTypeGeneral, Qt::CaseInsensitive)) 914 return UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral_Invalid; 915 /* Corresponding type for known words: */ 916 return values.at(keys.indexOf(QRegExp(strDetailsElementOptionTypeGeneral, Qt::CaseInsensitive))); 917 } 918 919 /* QString <= UIExtraDataMetaDefs::DetailsElementOptionTypeSystem: */ 920 template<> QString toInternalString(const UIExtraDataMetaDefs::DetailsElementOptionTypeSystem &enmDetailsElementOptionTypeSystem) 921 { 922 QString strResult; 923 switch (enmDetailsElementOptionTypeSystem) 924 { 925 case UIExtraDataMetaDefs::DetailsElementOptionTypeSystem_RAM: strResult = "RAM"; break; 926 case UIExtraDataMetaDefs::DetailsElementOptionTypeSystem_CPUCount: strResult = "CPUCount"; break; 927 case UIExtraDataMetaDefs::DetailsElementOptionTypeSystem_CPUExecutionCap: strResult = "CPUExecutionCap"; break; 928 case UIExtraDataMetaDefs::DetailsElementOptionTypeSystem_BootOrder: strResult = "BootOrder"; break; 929 case UIExtraDataMetaDefs::DetailsElementOptionTypeSystem_ChipsetType: strResult = "ChipsetType"; break; 930 case UIExtraDataMetaDefs::DetailsElementOptionTypeSystem_Firmware: strResult = "Firmware"; break; 931 case UIExtraDataMetaDefs::DetailsElementOptionTypeSystem_Acceleration: strResult = "Acceleration"; break; 932 default: 933 { 934 AssertMsgFailed(("No text for details element option type=%d", enmDetailsElementOptionTypeSystem)); 935 break; 936 } 937 } 938 return strResult; 939 } 940 941 /* UIExtraDataMetaDefs::DetailsElementOptionTypeSystem <= QString: */ 942 template<> UIExtraDataMetaDefs::DetailsElementOptionTypeSystem fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeSystem>(const QString &strDetailsElementOptionTypeSystem) 943 { 944 /* Here we have some fancy stuff allowing us 945 * to search through the keys using 'case-insensitive' rule: */ 946 QStringList keys; QList<UIExtraDataMetaDefs::DetailsElementOptionTypeSystem> values; 947 keys << "RAM"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeSystem_RAM; 948 keys << "CPUCount"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeSystem_CPUCount; 949 keys << "CPUExecutionCap"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeSystem_CPUExecutionCap; 950 keys << "BootOrder"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeSystem_BootOrder; 951 keys << "ChipsetType"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeSystem_ChipsetType; 952 keys << "Firmware"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeSystem_Firmware; 953 keys << "Acceleration"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeSystem_Acceleration; 954 /* Invalid type for unknown words: */ 955 if (!keys.contains(strDetailsElementOptionTypeSystem, Qt::CaseInsensitive)) 956 return UIExtraDataMetaDefs::DetailsElementOptionTypeSystem_Invalid; 957 /* Corresponding type for known words: */ 958 return values.at(keys.indexOf(QRegExp(strDetailsElementOptionTypeSystem, Qt::CaseInsensitive))); 959 } 960 961 /* QString <= UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay: */ 962 template<> QString toInternalString(const UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay &enmDetailsElementOptionTypeDisplay) 963 { 964 QString strResult; 965 switch (enmDetailsElementOptionTypeDisplay) 966 { 967 case UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay_VRAM: strResult = "VRAM"; break; 968 case UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay_ScreenCount: strResult = "ScreenCount"; break; 969 case UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay_ScaleFactor: strResult = "ScaleFactor"; break; 970 case UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay_Acceleration: strResult = "Acceleration"; break; 971 case UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay_VRDE: strResult = "VRDE"; break; 972 case UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay_Recording: strResult = "Recording"; break; 973 default: 974 { 975 AssertMsgFailed(("No text for details element option type=%d", enmDetailsElementOptionTypeDisplay)); 976 break; 977 } 978 } 979 return strResult; 980 } 981 982 /* UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay <= QString: */ 983 template<> UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay>(const QString &strDetailsElementOptionTypeDisplay) 984 { 985 /* Here we have some fancy stuff allowing us 986 * to search through the keys using 'case-insensitive' rule: */ 987 QStringList keys; QList<UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay> values; 988 keys << "VRAM"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay_VRAM; 989 keys << "ScreenCount"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay_ScreenCount; 990 keys << "ScaleFactor"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay_ScaleFactor; 991 keys << "Acceleration"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay_Acceleration; 992 keys << "VRDE"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay_VRDE; 993 keys << "Recording"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay_Recording; 994 /* Invalid type for unknown words: */ 995 if (!keys.contains(strDetailsElementOptionTypeDisplay, Qt::CaseInsensitive)) 996 return UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay_Invalid; 997 /* Corresponding type for known words: */ 998 return values.at(keys.indexOf(QRegExp(strDetailsElementOptionTypeDisplay, Qt::CaseInsensitive))); 999 } 1000 1001 /* QString <= UIExtraDataMetaDefs::DetailsElementOptionTypeStorage: */ 1002 template<> QString toInternalString(const UIExtraDataMetaDefs::DetailsElementOptionTypeStorage &enmDetailsElementOptionTypeStorage) 1003 { 1004 QString strResult; 1005 switch (enmDetailsElementOptionTypeStorage) 1006 { 1007 case UIExtraDataMetaDefs::DetailsElementOptionTypeStorage_HardDisks: strResult = "HardDisks"; break; 1008 case UIExtraDataMetaDefs::DetailsElementOptionTypeStorage_OpticalDevices: strResult = "OpticalDevices"; break; 1009 case UIExtraDataMetaDefs::DetailsElementOptionTypeStorage_FloppyDevices: strResult = "FloppyDevices"; break; 1010 default: 1011 { 1012 AssertMsgFailed(("No text for details element option type=%d", enmDetailsElementOptionTypeStorage)); 1013 break; 1014 } 1015 } 1016 return strResult; 1017 } 1018 1019 /* UIExtraDataMetaDefs::DetailsElementOptionTypeStorage <= QString: */ 1020 template<> UIExtraDataMetaDefs::DetailsElementOptionTypeStorage fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeStorage>(const QString &strDetailsElementOptionTypeStorage) 1021 { 1022 /* Here we have some fancy stuff allowing us 1023 * to search through the keys using 'case-insensitive' rule: */ 1024 QStringList keys; QList<UIExtraDataMetaDefs::DetailsElementOptionTypeStorage> values; 1025 keys << "HardDisks"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeStorage_HardDisks; 1026 keys << "OpticalDevices"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeStorage_OpticalDevices; 1027 keys << "FloppyDevices"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeStorage_FloppyDevices; 1028 /* Invalid type for unknown words: */ 1029 if (!keys.contains(strDetailsElementOptionTypeStorage, Qt::CaseInsensitive)) 1030 return UIExtraDataMetaDefs::DetailsElementOptionTypeStorage_Invalid; 1031 /* Corresponding type for known words: */ 1032 return values.at(keys.indexOf(QRegExp(strDetailsElementOptionTypeStorage, Qt::CaseInsensitive))); 1033 } 1034 1035 /* QString <= UIExtraDataMetaDefs::DetailsElementOptionTypeAudio: */ 1036 template<> QString toInternalString(const UIExtraDataMetaDefs::DetailsElementOptionTypeAudio &enmDetailsElementOptionTypeAudio) 1037 { 1038 QString strResult; 1039 switch (enmDetailsElementOptionTypeAudio) 1040 { 1041 case UIExtraDataMetaDefs::DetailsElementOptionTypeAudio_Driver: strResult = "Driver"; break; 1042 case UIExtraDataMetaDefs::DetailsElementOptionTypeAudio_Controller: strResult = "Controller"; break; 1043 case UIExtraDataMetaDefs::DetailsElementOptionTypeAudio_IO: strResult = "IO"; break; 1044 default: 1045 { 1046 AssertMsgFailed(("No text for details element option type=%d", enmDetailsElementOptionTypeAudio)); 1047 break; 1048 } 1049 } 1050 return strResult; 1051 } 1052 1053 /* UIExtraDataMetaDefs::DetailsElementOptionTypeAudio <= QString: */ 1054 template<> UIExtraDataMetaDefs::DetailsElementOptionTypeAudio fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeAudio>(const QString &strDetailsElementOptionTypeAudio) 1055 { 1056 /* Here we have some fancy stuff allowing us 1057 * to search through the keys using 'case-insensitive' rule: */ 1058 QStringList keys; QList<UIExtraDataMetaDefs::DetailsElementOptionTypeAudio> values; 1059 keys << "Driver"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeAudio_Driver; 1060 keys << "Controller"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeAudio_Controller; 1061 keys << "IO"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeAudio_IO; 1062 /* Invalid type for unknown words: */ 1063 if (!keys.contains(strDetailsElementOptionTypeAudio, Qt::CaseInsensitive)) 1064 return UIExtraDataMetaDefs::DetailsElementOptionTypeAudio_Invalid; 1065 /* Corresponding type for known words: */ 1066 return values.at(keys.indexOf(QRegExp(strDetailsElementOptionTypeAudio, Qt::CaseInsensitive))); 1067 } 1068 1069 /* QString <= UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork: */ 1070 template<> QString toInternalString(const UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork &enmDetailsElementOptionTypeNetwork) 1071 { 1072 QString strResult; 1073 switch (enmDetailsElementOptionTypeNetwork) 1074 { 1075 case UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork_NotAttached: strResult = "NotAttached"; break; 1076 case UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork_NAT: strResult = "NAT"; break; 1077 case UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork_BridgetAdapter: strResult = "BridgetAdapter"; break; 1078 case UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork_InternalNetwork: strResult = "InternalNetwork"; break; 1079 case UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork_HostOnlyAdapter: strResult = "HostOnlyAdapter"; break; 1080 case UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork_GenericDriver: strResult = "GenericDriver"; break; 1081 default: 1082 { 1083 AssertMsgFailed(("No text for details element option type=%d", enmDetailsElementOptionTypeNetwork)); 1084 break; 1085 } 1086 } 1087 return strResult; 1088 } 1089 1090 /* UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork <= QString: */ 1091 template<> UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork>(const QString &strDetailsElementOptionTypeNetwork) 1092 { 1093 /* Here we have some fancy stuff allowing us 1094 * to search through the keys using 'case-insensitive' rule: */ 1095 QStringList keys; QList<UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork> values; 1096 keys << "NotAttached"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork_NotAttached; 1097 keys << "NAT"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork_NAT; 1098 keys << "BridgetAdapter"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork_BridgetAdapter; 1099 keys << "InternalNetwork"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork_InternalNetwork; 1100 keys << "HostOnlyAdapter"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork_HostOnlyAdapter; 1101 keys << "GenericDriver"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork_GenericDriver; 1102 /* Invalid type for unknown words: */ 1103 if (!keys.contains(strDetailsElementOptionTypeNetwork, Qt::CaseInsensitive)) 1104 return UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork_Invalid; 1105 /* Corresponding type for known words: */ 1106 return values.at(keys.indexOf(QRegExp(strDetailsElementOptionTypeNetwork, Qt::CaseInsensitive))); 1107 } 1108 1109 /* QString <= UIExtraDataMetaDefs::DetailsElementOptionTypeSerial: */ 1110 template<> QString toInternalString(const UIExtraDataMetaDefs::DetailsElementOptionTypeSerial &enmDetailsElementOptionTypeSerial) 1111 { 1112 QString strResult; 1113 switch (enmDetailsElementOptionTypeSerial) 1114 { 1115 case UIExtraDataMetaDefs::DetailsElementOptionTypeSerial_Disconnected: strResult = "Disconnected"; break; 1116 case UIExtraDataMetaDefs::DetailsElementOptionTypeSerial_HostPipe: strResult = "HostPipe"; break; 1117 case UIExtraDataMetaDefs::DetailsElementOptionTypeSerial_HostDevice: strResult = "HostDevice"; break; 1118 case UIExtraDataMetaDefs::DetailsElementOptionTypeSerial_RawFile: strResult = "RawFile"; break; 1119 case UIExtraDataMetaDefs::DetailsElementOptionTypeSerial_TCP: strResult = "TCP"; break; 1120 default: 1121 { 1122 AssertMsgFailed(("No text for details element option type=%d", enmDetailsElementOptionTypeSerial)); 1123 break; 1124 } 1125 } 1126 return strResult; 1127 } 1128 1129 /* UIExtraDataMetaDefs::DetailsElementOptionTypeSerial <= QString: */ 1130 template<> UIExtraDataMetaDefs::DetailsElementOptionTypeSerial fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeSerial>(const QString &strDetailsElementOptionTypeSerial) 1131 { 1132 /* Here we have some fancy stuff allowing us 1133 * to search through the keys using 'case-insensitive' rule: */ 1134 QStringList keys; QList<UIExtraDataMetaDefs::DetailsElementOptionTypeSerial> values; 1135 keys << "Disconnected"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeSerial_Disconnected; 1136 keys << "HostPipe"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeSerial_HostPipe; 1137 keys << "HostDevice"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeSerial_HostDevice; 1138 keys << "RawFile"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeSerial_RawFile; 1139 keys << "TCP"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeSerial_TCP; 1140 /* Invalid type for unknown words: */ 1141 if (!keys.contains(strDetailsElementOptionTypeSerial, Qt::CaseInsensitive)) 1142 return UIExtraDataMetaDefs::DetailsElementOptionTypeSerial_Invalid; 1143 /* Corresponding type for known words: */ 1144 return values.at(keys.indexOf(QRegExp(strDetailsElementOptionTypeSerial, Qt::CaseInsensitive))); 1145 } 1146 1147 /* QString <= UIExtraDataMetaDefs::DetailsElementOptionTypeUsb: */ 1148 template<> QString toInternalString(const UIExtraDataMetaDefs::DetailsElementOptionTypeUsb &enmDetailsElementOptionTypeUsb) 1149 { 1150 QString strResult; 1151 switch (enmDetailsElementOptionTypeUsb) 1152 { 1153 case UIExtraDataMetaDefs::DetailsElementOptionTypeUsb_Controller: strResult = "Controller"; break; 1154 case UIExtraDataMetaDefs::DetailsElementOptionTypeUsb_DeviceFilters: strResult = "DeviceFilters"; break; 1155 default: 1156 { 1157 AssertMsgFailed(("No text for details element option type=%d", enmDetailsElementOptionTypeUsb)); 1158 break; 1159 } 1160 } 1161 return strResult; 1162 } 1163 1164 /* UIExtraDataMetaDefs::DetailsElementOptionTypeUsb <= QString: */ 1165 template<> UIExtraDataMetaDefs::DetailsElementOptionTypeUsb fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeUsb>(const QString &strDetailsElementOptionTypeUsb) 1166 { 1167 /* Here we have some fancy stuff allowing us 1168 * to search through the keys using 'case-insensitive' rule: */ 1169 QStringList keys; QList<UIExtraDataMetaDefs::DetailsElementOptionTypeUsb> values; 1170 keys << "Controller"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeUsb_Controller; 1171 keys << "DeviceFilters"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeUsb_DeviceFilters; 1172 /* Invalid type for unknown words: */ 1173 if (!keys.contains(strDetailsElementOptionTypeUsb, Qt::CaseInsensitive)) 1174 return UIExtraDataMetaDefs::DetailsElementOptionTypeUsb_Invalid; 1175 /* Corresponding type for known words: */ 1176 return values.at(keys.indexOf(QRegExp(strDetailsElementOptionTypeUsb, Qt::CaseInsensitive))); 1177 } 1178 1179 /* QString <= UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders: */ 1180 template<> QString toInternalString(const UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders &enmDetailsElementOptionTypeSharedFolders) 1181 { 1182 QString strResult; 1183 switch (enmDetailsElementOptionTypeSharedFolders) 1184 { 1185 case UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders_Summary: strResult = "Summary"; break; 1186 default: 1187 { 1188 AssertMsgFailed(("No text for details element option type=%d", enmDetailsElementOptionTypeSharedFolders)); 1189 break; 1190 } 1191 } 1192 return strResult; 1193 } 1194 1195 /* UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders <= QString: */ 1196 template<> UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders>(const QString &strDetailsElementOptionTypeSharedFolders) 1197 { 1198 /* Here we have some fancy stuff allowing us 1199 * to search through the keys using 'case-insensitive' rule: */ 1200 QStringList keys; QList<UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders> values; 1201 keys << "Summary"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders_Summary; 1202 /* Invalid type for unknown words: */ 1203 if (!keys.contains(strDetailsElementOptionTypeSharedFolders, Qt::CaseInsensitive)) 1204 return UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders_Invalid; 1205 /* Corresponding type for known words: */ 1206 return values.at(keys.indexOf(QRegExp(strDetailsElementOptionTypeSharedFolders, Qt::CaseInsensitive))); 1207 } 1208 1209 /* QString <= UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface: */ 1210 template<> QString toInternalString(const UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface &enmDetailsElementOptionTypeUserInterface) 1211 { 1212 QString strResult; 1213 switch (enmDetailsElementOptionTypeUserInterface) 1214 { 1215 case UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface_MenuBar: strResult = "MenuBar"; break; 1216 case UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface_StatusBar: strResult = "StatusBar"; break; 1217 case UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface_MiniToolbar: strResult = "MiniToolbar"; break; 1218 default: 1219 { 1220 AssertMsgFailed(("No text for details element option type=%d", enmDetailsElementOptionTypeUserInterface)); 1221 break; 1222 } 1223 } 1224 return strResult; 1225 } 1226 1227 /* UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface <= QString: */ 1228 template<> UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface>(const QString &strDetailsElementOptionTypeUserInterface) 1229 { 1230 /* Here we have some fancy stuff allowing us 1231 * to search through the keys using 'case-insensitive' rule: */ 1232 QStringList keys; QList<UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface> values; 1233 keys << "MenuBar"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface_MenuBar; 1234 keys << "StatusBar"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface_StatusBar; 1235 keys << "MiniToolbar"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface_MiniToolbar; 1236 /* Invalid type for unknown words: */ 1237 if (!keys.contains(strDetailsElementOptionTypeUserInterface, Qt::CaseInsensitive)) 1238 return UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface_Invalid; 1239 /* Corresponding type for known words: */ 1240 return values.at(keys.indexOf(QRegExp(strDetailsElementOptionTypeUserInterface, Qt::CaseInsensitive))); 1241 } 1242 1243 /* QString <= UIExtraDataMetaDefs::DetailsElementOptionTypeDescription: */ 1244 template<> QString toInternalString(const UIExtraDataMetaDefs::DetailsElementOptionTypeDescription &enmDetailsElementOptionTypeDescription) 1245 { 1246 QString strResult; 1247 switch (enmDetailsElementOptionTypeDescription) 1248 { 1249 case UIExtraDataMetaDefs::DetailsElementOptionTypeDescription_Summary: strResult = "Summary"; break; 1250 default: 1251 { 1252 AssertMsgFailed(("No text for details element option type=%d", enmDetailsElementOptionTypeDescription)); 1253 break; 1254 } 1255 } 1256 return strResult; 1257 } 1258 1259 /* UIExtraDataMetaDefs::DetailsElementOptionTypeDescription <= QString: */ 1260 template<> UIExtraDataMetaDefs::DetailsElementOptionTypeDescription fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeDescription>(const QString &strDetailsElementOptionTypeDescription) 1261 { 1262 /* Here we have some fancy stuff allowing us 1263 * to search through the keys using 'case-insensitive' rule: */ 1264 QStringList keys; QList<UIExtraDataMetaDefs::DetailsElementOptionTypeDescription> values; 1265 keys << "Summary"; values << UIExtraDataMetaDefs::DetailsElementOptionTypeDescription_Summary; 1266 /* Invalid type for unknown words: */ 1267 if (!keys.contains(strDetailsElementOptionTypeDescription, Qt::CaseInsensitive)) 1268 return UIExtraDataMetaDefs::DetailsElementOptionTypeDescription_Invalid; 1269 /* Corresponding type for known words: */ 1270 return values.at(keys.indexOf(QRegExp(strDetailsElementOptionTypeDescription, Qt::CaseInsensitive))); 1271 } 1272 872 1273 /* QString <= UIToolType: */ 873 1274 template<> QString toInternalString(const UIToolType &enmToolType) -
trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h
r75424 r75427 417 417 { 418 418 Q_OBJECT; 419 420 /* Menu related stuff: */ 419 421 Q_ENUMS(MenuType); 420 422 Q_ENUMS(MenuApplicationActionType); … … 430 432 Q_ENUMS(MenuWindowActionType); 431 433 #endif 434 435 /* Details pane related stuff: */ 436 Q_ENUMS(DetailsElementOptionTypeGeneral); 437 Q_ENUMS(DetailsElementOptionTypeSystem); 438 Q_ENUMS(DetailsElementOptionTypeDisplay); 439 Q_ENUMS(DetailsElementOptionTypeStorage); 440 Q_ENUMS(DetailsElementOptionTypeAudio); 441 Q_ENUMS(DetailsElementOptionTypeNetwork); 442 Q_ENUMS(DetailsElementOptionTypeSerial); 443 Q_ENUMS(DetailsElementOptionTypeUsb); 444 Q_ENUMS(DetailsElementOptionTypeSharedFolders); 445 Q_ENUMS(DetailsElementOptionTypeUserInterface); 446 Q_ENUMS(DetailsElementOptionTypeDescription); 432 447 433 448 public: … … 602 617 }; 603 618 #endif /* VBOX_WS_MAC */ 619 620 621 /** VirtualBox Manager UI: Details element: "General" option types. */ 622 enum DetailsElementOptionTypeGeneral 623 { 624 DetailsElementOptionTypeGeneral_Invalid = 0, 625 DetailsElementOptionTypeGeneral_Name = RT_BIT(0), 626 DetailsElementOptionTypeGeneral_OS = RT_BIT(1), 627 DetailsElementOptionTypeGeneral_Location = RT_BIT(2), 628 DetailsElementOptionTypeGeneral_Groups = RT_BIT(3), 629 DetailsElementOptionTypeGeneral_Default = 0xFFFF 630 }; 631 632 /** VirtualBox Manager UI: Details element: "System" option types. */ 633 enum DetailsElementOptionTypeSystem 634 { 635 DetailsElementOptionTypeSystem_Invalid = 0, 636 DetailsElementOptionTypeSystem_RAM = RT_BIT(0), 637 DetailsElementOptionTypeSystem_CPUCount = RT_BIT(1), 638 DetailsElementOptionTypeSystem_CPUExecutionCap = RT_BIT(2), 639 DetailsElementOptionTypeSystem_BootOrder = RT_BIT(3), 640 DetailsElementOptionTypeSystem_ChipsetType = RT_BIT(4), 641 DetailsElementOptionTypeSystem_Firmware = RT_BIT(5), 642 DetailsElementOptionTypeSystem_Acceleration = RT_BIT(6), 643 DetailsElementOptionTypeSystem_Default = 0xFFFF 644 }; 645 646 /** VirtualBox Manager UI: Details element: "Display" option types. */ 647 enum DetailsElementOptionTypeDisplay 648 { 649 DetailsElementOptionTypeDisplay_Invalid = 0, 650 DetailsElementOptionTypeDisplay_VRAM = RT_BIT(0), 651 DetailsElementOptionTypeDisplay_ScreenCount = RT_BIT(1), 652 DetailsElementOptionTypeDisplay_ScaleFactor = RT_BIT(2), 653 DetailsElementOptionTypeDisplay_Acceleration = RT_BIT(3), 654 DetailsElementOptionTypeDisplay_VRDE = RT_BIT(4), 655 DetailsElementOptionTypeDisplay_Recording = RT_BIT(5), 656 DetailsElementOptionTypeDisplay_Default = 0xFFFF 657 }; 658 659 /** VirtualBox Manager UI: Details element: "Storage" option types. */ 660 enum DetailsElementOptionTypeStorage 661 { 662 DetailsElementOptionTypeStorage_Invalid = 0, 663 DetailsElementOptionTypeStorage_HardDisks = RT_BIT(0), 664 DetailsElementOptionTypeStorage_OpticalDevices = RT_BIT(1), 665 DetailsElementOptionTypeStorage_FloppyDevices = RT_BIT(2), 666 DetailsElementOptionTypeStorage_Default = 0xFFFF 667 }; 668 669 /** VirtualBox Manager UI: Details element: "Audio" option types. */ 670 enum DetailsElementOptionTypeAudio 671 { 672 DetailsElementOptionTypeAudio_Invalid = 0, 673 DetailsElementOptionTypeAudio_Driver = RT_BIT(0), 674 DetailsElementOptionTypeAudio_Controller = RT_BIT(1), 675 DetailsElementOptionTypeAudio_IO = RT_BIT(2), 676 DetailsElementOptionTypeAudio_Default = 0xFFFF 677 }; 678 679 /** VirtualBox Manager UI: Details element: "Network" option types. */ 680 enum DetailsElementOptionTypeNetwork 681 { 682 DetailsElementOptionTypeNetwork_Invalid = 0, 683 DetailsElementOptionTypeNetwork_NotAttached = RT_BIT(0), 684 DetailsElementOptionTypeNetwork_NAT = RT_BIT(1), 685 DetailsElementOptionTypeNetwork_BridgetAdapter = RT_BIT(2), 686 DetailsElementOptionTypeNetwork_InternalNetwork = RT_BIT(3), 687 DetailsElementOptionTypeNetwork_HostOnlyAdapter = RT_BIT(4), 688 DetailsElementOptionTypeNetwork_GenericDriver = RT_BIT(5), 689 DetailsElementOptionTypeNetwork_Default = 0xFFFF 690 }; 691 692 /** VirtualBox Manager UI: Details element: "Serial" option types. */ 693 enum DetailsElementOptionTypeSerial 694 { 695 DetailsElementOptionTypeSerial_Invalid = 0, 696 DetailsElementOptionTypeSerial_Disconnected = RT_BIT(0), 697 DetailsElementOptionTypeSerial_HostPipe = RT_BIT(1), 698 DetailsElementOptionTypeSerial_HostDevice = RT_BIT(2), 699 DetailsElementOptionTypeSerial_RawFile = RT_BIT(3), 700 DetailsElementOptionTypeSerial_TCP = RT_BIT(4), 701 DetailsElementOptionTypeSerial_Default = 0xFFFF 702 }; 703 704 /** VirtualBox Manager UI: Details element: "USB" option types. */ 705 enum DetailsElementOptionTypeUsb 706 { 707 DetailsElementOptionTypeUsb_Invalid = 0, 708 DetailsElementOptionTypeUsb_Controller = RT_BIT(0), 709 DetailsElementOptionTypeUsb_DeviceFilters = RT_BIT(1), 710 DetailsElementOptionTypeUsb_Default = 0xFFFF 711 }; 712 713 /** VirtualBox Manager UI: Details element: "SharedFolders" option types. */ 714 enum DetailsElementOptionTypeSharedFolders 715 { 716 DetailsElementOptionTypeSharedFolders_Invalid = 0, 717 DetailsElementOptionTypeSharedFolders_Summary = RT_BIT(0), 718 DetailsElementOptionTypeSharedFolders_Default = 0xFFFF 719 }; 720 721 /** VirtualBox Manager UI: Details element: "UserInterface" option types. */ 722 enum DetailsElementOptionTypeUserInterface 723 { 724 DetailsElementOptionTypeUserInterface_Invalid = 0, 725 DetailsElementOptionTypeUserInterface_MenuBar = RT_BIT(0), 726 DetailsElementOptionTypeUserInterface_StatusBar = RT_BIT(1), 727 DetailsElementOptionTypeUserInterface_MiniToolbar = RT_BIT(2), 728 DetailsElementOptionTypeUserInterface_Default = 0xFFFF 729 }; 730 731 /** VirtualBox Manager UI: Details element: "Description" option types. */ 732 enum DetailsElementOptionTypeDescription 733 { 734 DetailsElementOptionTypeDescription_Invalid = 0, 735 DetailsElementOptionTypeDescription_Summary = RT_BIT(0), 736 DetailsElementOptionTypeDescription_Default = 0xFFFF 737 }; 604 738 }; 605 739 -
trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp
r75424 r75427 2919 2919 } 2920 2920 2921 QStringList UIExtraDataManager::vboxManagerDetailsPaneElementOptions(DetailsElementType enmElementType) 2922 { 2923 /* Compose full key from GUI_Details_Elements and enmElementType: */ 2924 QString strElementType = gpConverter->toInternalString(enmElementType); 2925 AssertReturn(!strElementType.isEmpty(), QStringList()); 2926 strElementType[0] = strElementType.at(0).toUpper(); 2927 const QString strFullKey = QString("%1/%2").arg(GUI_Details_Elements).arg(strElementType); 2928 2929 /* Returns option list: */ 2930 return extraDataStringList(strFullKey); 2931 } 2932 2921 2933 bool UIExtraDataManager::snapshotManagerDetailsExpanded() 2922 2934 { … … 4583 4595 else if (strKey == GUI_Input_HostKeyCombination) 4584 4596 emit sigRuntimeUIHostKeyCombinationChange(); 4597 /* Details options: */ 4598 else if (strKey.startsWith(QString(GUI_Details_Elements) + '/')) 4599 { 4600 QString strLeftover = strKey; 4601 strLeftover.remove(QString(GUI_Details_Elements) + '/'); 4602 const DetailsElementType enmType = gpConverter->fromInternalString<DetailsElementType>(strLeftover); 4603 if (enmType != DetailsElementType_Invalid) 4604 emit sigDetailsOptionsChange(enmType); 4605 } 4585 4606 } 4586 4607 } -
trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h
r75424 r75427 71 71 /** Notifies about Runtime UI host-key combination change. */ 72 72 void sigRuntimeUIHostKeyCombinationChange(); 73 74 /** Notifies about VirtualBox Manager / Details pane options change. */ 75 void sigDetailsOptionsChange(DetailsElementType enmType); 73 76 74 77 /** Notifies about menu-bar configuration change. */ … … 341 344 /** Defines selector-window details-pane' preview update @a interval. */ 342 345 void setSelectorWindowPreviewUpdateInterval(PreviewUpdateIntervalType interval); 346 347 /** Returns VirtualBox Manager / Details pane options for certain @a enmElementType. */ 348 QStringList vboxManagerDetailsPaneElementOptions(DetailsElementType enmElementType); 343 349 /** @} */ 344 350 -
trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetails.cpp
r74679 r75427 27 27 # include "UIDetailsModel.h" 28 28 # include "UIDetailsView.h" 29 # include "UIExtraDataManager.h" 29 30 30 31 #endif /* !VBOX_WITH_PRECOMPILED_HEADERS */ … … 73 74 } 74 75 76 /* Extra-data events connections: */ 77 connect(gEDataManager, &UIExtraDataManager::sigDetailsOptionsChange, 78 m_pDetailsModel, &UIDetailsModel::sltHandleExtraDataOptionsChange); 79 75 80 /* Setup details-model connections: */ 76 81 connect(m_pDetailsModel, &UIDetailsModel::sigRootItemMinimumWidthHintChanged, -
trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsElement.cpp
r74878 r75427 34 34 # include "UIDetailsSet.h" 35 35 # include "UIDetailsModel.h" 36 # include "UIExtraDataManager.h" 36 37 # include "UIGraphicsRotatorButton.h" 37 38 # include "UIGraphicsTextPane.h" … … 249 250 } 250 251 252 QStringList UIDetailsElement::extraDataOptions() const 253 { 254 return gEDataManager->vboxManagerDetailsPaneElementOptions(elementType()); 255 } 256 251 257 const CMachine &UIDetailsElement::machine() 252 258 { -
trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsElement.h
r74942 r75427 155 155 /** Returns the description of the item. */ 156 156 virtual QString description() const /* override */; 157 158 /** Returns extra-data options. */ 159 QStringList extraDataOptions() const; 157 160 158 161 /** Returns cached machine reference. */ -
trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsElements.cpp
r75426 r75427 242 242 { 243 243 /* Name: */ 244 table << UITextTableLine(QApplication::translate("UIDetails", "Name", "details (general)"), comMachine.GetName()); 245 246 /* Operating System: */ 247 table << UITextTableLine(QApplication::translate("UIDetails", "Operating System", "details (general)"), 248 vboxGlobal().vmGuestOSTypeDescription(comMachine.GetOSTypeId())); 249 250 /* Settings File Location: */ 251 table << UITextTableLine(QApplication::translate("UIDetails", "Settings File Location", "details (general)"), 252 QDir::toNativeSeparators(QFileInfo(comMachine.GetSettingsFilePath()).absolutePath())); 244 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral_Name) 245 table << UITextTableLine(QApplication::translate("UIDetails", "Name", "details (general)"), comMachine.GetName()); 246 247 /* Operating system: */ 248 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral_OS) 249 table << UITextTableLine(QApplication::translate("UIDetails", "Operating System", "details (general)"), 250 vboxGlobal().vmGuestOSTypeDescription(comMachine.GetOSTypeId())); 251 252 /* Settings file location: */ 253 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral_Location) 254 table << UITextTableLine(QApplication::translate("UIDetails", "Settings File Location", "details (general)"), 255 QDir::toNativeSeparators(QFileInfo(comMachine.GetSettingsFilePath()).absolutePath())); 253 256 254 257 /* Groups: */ 255 QStringList groups = comMachine.GetGroups().toList(); 256 /* Do not show groups for machine which is in root group only: */ 257 if (groups.size() == 1) 258 groups.removeAll("/"); 259 /* If group list still not empty: */ 260 if (!groups.isEmpty()) 261 { 262 /* For every group: */ 263 for (int i = 0; i < groups.size(); ++i) 264 { 265 /* Trim first '/' symbol: */ 266 QString &strGroup = groups[i]; 267 if (strGroup.startsWith("/") && strGroup != "/") 268 strGroup.remove(0, 1); 269 } 270 table << UITextTableLine(QApplication::translate("UIDetails", "Groups", "details (general)"), groups.join(", ")); 258 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral_Groups) 259 { 260 QStringList groups = comMachine.GetGroups().toList(); 261 /* Do not show groups for machine which is in root group only: */ 262 if (groups.size() == 1) 263 groups.removeAll("/"); 264 /* If group list still not empty: */ 265 if (!groups.isEmpty()) 266 { 267 /* For every group: */ 268 for (int i = 0; i < groups.size(); ++i) 269 { 270 /* Trim first '/' symbol: */ 271 QString &strGroup = groups[i]; 272 if (strGroup.startsWith("/") && strGroup != "/") 273 strGroup.remove(0, 1); 274 } 275 table << UITextTableLine(QApplication::translate("UIDetails", "Groups", "details (general)"), groups.join(", ")); 276 } 271 277 } 272 278 } … … 276 282 /* Save the table as property: */ 277 283 setProperty("table", QVariant::fromValue(table)); 284 } 285 286 UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral UIDetailsElementGeneral::parsedExtraDataOptions() 287 { 288 UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral options = UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral_Invalid; 289 foreach (const QString &strOption, extraDataOptions()) 290 { 291 const UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral enmOption = 292 gpConverter->fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral>(strOption); 293 if (enmOption != UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral_Invalid) 294 options = static_cast<UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral>(options | enmOption); 295 } 296 if (options == UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral_Invalid) 297 options = UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral_Default; 298 return options; 278 299 } 279 300 … … 293 314 { 294 315 /* Base memory: */ 295 table << UITextTableLine(QApplication::translate("UIDetails", "Base Memory", "details (system)"), 296 QApplication::translate("UIDetails", "%1 MB", "details").arg(comMachine.GetMemorySize())); 297 298 /* CPU count: */ 299 const int cCPU = comMachine.GetCPUCount(); 300 if (cCPU > 1) 301 table << UITextTableLine(QApplication::translate("UIDetails", "Processors", "details (system)"), 302 QString::number(cCPU)); 303 304 /* CPU execution cap: */ 305 const int iCPUExecutionCap = comMachine.GetCPUExecutionCap(); 306 if (iCPUExecutionCap < 100) 307 table << UITextTableLine(QApplication::translate("UIDetails", "Execution Cap", "details (system)"), 308 QApplication::translate("UIDetails", "%1%", "details").arg(iCPUExecutionCap)); 309 310 /* Boot-order: */ 311 QStringList bootOrder; 312 for (ulong i = 1; i <= vboxGlobal().virtualBox().GetSystemProperties().GetMaxBootPosition(); ++i) 313 { 314 const KDeviceType enmDeviceType = comMachine.GetBootOrder(i); 315 if (enmDeviceType == KDeviceType_Null) 316 continue; 317 bootOrder << gpConverter->toString(enmDeviceType); 318 } 319 if (bootOrder.isEmpty()) 320 bootOrder << gpConverter->toString(KDeviceType_Null); 321 table << UITextTableLine(QApplication::translate("UIDetails", "Boot Order", "details (system)"), bootOrder.join(", ")); 316 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeSystem_RAM) 317 table << UITextTableLine(QApplication::translate("UIDetails", "Base Memory", "details (system)"), 318 QApplication::translate("UIDetails", "%1 MB", "details").arg(comMachine.GetMemorySize())); 319 320 /* Processors: */ 321 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeSystem_CPUCount) 322 { 323 const int cCPU = comMachine.GetCPUCount(); 324 if (cCPU > 1) 325 table << UITextTableLine(QApplication::translate("UIDetails", "Processors", "details (system)"), 326 QString::number(cCPU)); 327 } 328 329 /* Execution cap: */ 330 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeSystem_CPUExecutionCap) 331 { 332 const int iCPUExecutionCap = comMachine.GetCPUExecutionCap(); 333 if (iCPUExecutionCap < 100) 334 table << UITextTableLine(QApplication::translate("UIDetails", "Execution Cap", "details (system)"), 335 QApplication::translate("UIDetails", "%1%", "details").arg(iCPUExecutionCap)); 336 } 337 338 /* Boot order: */ 339 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeSystem_BootOrder) 340 { 341 QStringList bootOrder; 342 for (ulong i = 1; i <= vboxGlobal().virtualBox().GetSystemProperties().GetMaxBootPosition(); ++i) 343 { 344 const KDeviceType enmDeviceType = comMachine.GetBootOrder(i); 345 if (enmDeviceType == KDeviceType_Null) 346 continue; 347 bootOrder << gpConverter->toString(enmDeviceType); 348 } 349 if (bootOrder.isEmpty()) 350 bootOrder << gpConverter->toString(KDeviceType_Null); 351 table << UITextTableLine(QApplication::translate("UIDetails", "Boot Order", "details (system)"), bootOrder.join(", ")); 352 } 322 353 323 354 /* Chipset type: */ 324 const KChipsetType enmChipsetType = comMachine.GetChipsetType(); 325 if (enmChipsetType == KChipsetType_ICH9) 326 table << UITextTableLine(QApplication::translate("UIDetails", "Chipset Type", "details (system)"), 327 gpConverter->toString(enmChipsetType)); 328 329 /* Firware type: */ 330 switch (comMachine.GetFirmwareType()) 331 { 332 case KFirmwareType_EFI: 333 case KFirmwareType_EFI32: 334 case KFirmwareType_EFI64: 335 case KFirmwareType_EFIDUAL: 336 { 337 table << UITextTableLine(QApplication::translate("UIDetails", "EFI", "details (system)"), 338 QApplication::translate("UIDetails", "Enabled", "details (system/EFI)")); 339 break; 340 } 341 default: 342 { 343 // For NLS purpose: 344 QApplication::translate("UIDetails", "Disabled", "details (system/EFI)"); 345 break; 355 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeSystem_ChipsetType) 356 { 357 const KChipsetType enmChipsetType = comMachine.GetChipsetType(); 358 if (enmChipsetType == KChipsetType_ICH9) 359 table << UITextTableLine(QApplication::translate("UIDetails", "Chipset Type", "details (system)"), 360 gpConverter->toString(enmChipsetType)); 361 } 362 363 /* EFI: */ 364 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeSystem_Firmware) 365 { 366 switch (comMachine.GetFirmwareType()) 367 { 368 case KFirmwareType_EFI: 369 case KFirmwareType_EFI32: 370 case KFirmwareType_EFI64: 371 case KFirmwareType_EFIDUAL: 372 { 373 table << UITextTableLine(QApplication::translate("UIDetails", "EFI", "details (system)"), 374 QApplication::translate("UIDetails", "Enabled", "details (system/EFI)")); 375 break; 376 } 377 default: 378 { 379 // For NLS purpose: 380 QApplication::translate("UIDetails", "Disabled", "details (system/EFI)"); 381 break; 382 } 346 383 } 347 384 } 348 385 349 386 /* Acceleration: */ 350 QStringList acceleration; 351 if (vboxGlobal().virtualBox().GetHost().GetProcessorFeature(KProcessorFeature_HWVirtEx)) 352 { 353 /* VT-x/AMD-V: */ 354 if (comMachine.GetHWVirtExProperty(KHWVirtExPropertyType_Enabled)) 355 { 356 acceleration << QApplication::translate("UIDetails", "VT-x/AMD-V", "details (system)"); 357 /* Nested Paging (only when hw virt is enabled): */ 358 if (comMachine.GetHWVirtExProperty(KHWVirtExPropertyType_NestedPaging)) 359 acceleration << QApplication::translate("UIDetails", "Nested Paging", "details (system)"); 360 } 361 } 362 /* PAE/NX: */ 363 if (comMachine.GetCPUProperty(KCPUPropertyType_PAE)) 364 acceleration << QApplication::translate("UIDetails", "PAE/NX", "details (system)"); 365 /* Paravirtualization provider: */ 366 switch (comMachine.GetEffectiveParavirtProvider()) 367 { 368 case KParavirtProvider_Minimal: acceleration << QApplication::translate("UIDetails", "Minimal Paravirtualization", "details (system)"); break; 369 case KParavirtProvider_HyperV: acceleration << QApplication::translate("UIDetails", "Hyper-V Paravirtualization", "details (system)"); break; 370 case KParavirtProvider_KVM: acceleration << QApplication::translate("UIDetails", "KVM Paravirtualization", "details (system)"); break; 371 default: break; 372 } 373 if (!acceleration.isEmpty()) 374 table << UITextTableLine(QApplication::translate("UIDetails", "Acceleration", "details (system)"), 375 acceleration.join(", ")); 387 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeSystem_Acceleration) 388 { 389 QStringList acceleration; 390 if (vboxGlobal().virtualBox().GetHost().GetProcessorFeature(KProcessorFeature_HWVirtEx)) 391 { 392 /* VT-x/AMD-V: */ 393 if (comMachine.GetHWVirtExProperty(KHWVirtExPropertyType_Enabled)) 394 { 395 acceleration << QApplication::translate("UIDetails", "VT-x/AMD-V", "details (system)"); 396 /* Nested Paging (only when hw virt is enabled): */ 397 if (comMachine.GetHWVirtExProperty(KHWVirtExPropertyType_NestedPaging)) 398 acceleration << QApplication::translate("UIDetails", "Nested Paging", "details (system)"); 399 } 400 } 401 /* PAE/NX: */ 402 if (comMachine.GetCPUProperty(KCPUPropertyType_PAE)) 403 acceleration << QApplication::translate("UIDetails", "PAE/NX", "details (system)"); 404 /* Paravirtualization provider: */ 405 switch (comMachine.GetEffectiveParavirtProvider()) 406 { 407 case KParavirtProvider_Minimal: acceleration << QApplication::translate("UIDetails", "Minimal Paravirtualization", "details (system)"); break; 408 case KParavirtProvider_HyperV: acceleration << QApplication::translate("UIDetails", "Hyper-V Paravirtualization", "details (system)"); break; 409 case KParavirtProvider_KVM: acceleration << QApplication::translate("UIDetails", "KVM Paravirtualization", "details (system)"); break; 410 default: break; 411 } 412 if (!acceleration.isEmpty()) 413 table << UITextTableLine(QApplication::translate("UIDetails", "Acceleration", "details (system)"), 414 acceleration.join(", ")); 415 } 376 416 } 377 417 else … … 381 421 /* Save the table as property: */ 382 422 setProperty("table", QVariant::fromValue(table)); 423 } 424 425 UIExtraDataMetaDefs::DetailsElementOptionTypeSystem UIDetailsElementSystem::parsedExtraDataOptions() 426 { 427 UIExtraDataMetaDefs::DetailsElementOptionTypeSystem options = UIExtraDataMetaDefs::DetailsElementOptionTypeSystem_Invalid; 428 foreach (const QString &strOption, extraDataOptions()) 429 { 430 const UIExtraDataMetaDefs::DetailsElementOptionTypeSystem enmOption = 431 gpConverter->fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeSystem>(strOption); 432 if (enmOption != UIExtraDataMetaDefs::DetailsElementOptionTypeSystem_Invalid) 433 options = static_cast<UIExtraDataMetaDefs::DetailsElementOptionTypeSystem>(options | enmOption); 434 } 435 if (options == UIExtraDataMetaDefs::DetailsElementOptionTypeSystem_Invalid) 436 options = UIExtraDataMetaDefs::DetailsElementOptionTypeSystem_Default; 437 return options; 383 438 } 384 439 … … 398 453 { 399 454 /* Video memory: */ 400 table << UITextTableLine(QApplication::translate("UIDetails", "Video Memory", "details (display)"), 401 QApplication::translate("UIDetails", "%1 MB", "details").arg(comMachine.GetVRAMSize())); 402 403 /* Screen count: */ 404 const int cGuestScreens = comMachine.GetMonitorCount(); 405 if (cGuestScreens > 1) 406 table << UITextTableLine(QApplication::translate("UIDetails", "Screens", "details (display)"), 407 QString::number(cGuestScreens)); 455 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay_VRAM) 456 table << UITextTableLine(QApplication::translate("UIDetails", "Video Memory", "details (display)"), 457 QApplication::translate("UIDetails", "%1 MB", "details").arg(comMachine.GetVRAMSize())); 458 459 /* Screens: */ 460 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay_ScreenCount) 461 { 462 const int cGuestScreens = comMachine.GetMonitorCount(); 463 if (cGuestScreens > 1) 464 table << UITextTableLine(QApplication::translate("UIDetails", "Screens", "details (display)"), 465 QString::number(cGuestScreens)); 466 } 408 467 409 468 /* Scale-factor: */ 410 const QString strScaleFactor = comMachine.GetExtraData(UIExtraDataDefs::GUI_ScaleFactor); 411 { 412 /* Try to convert loaded data to double: */ 413 bool fOk = false; 414 double dValue = strScaleFactor.toDouble(&fOk); 415 /* Invent the default value: */ 416 if (!fOk || !dValue) 417 dValue = 1.0; 418 /* Append information: */ 419 if (dValue != 1.0) 420 table << UITextTableLine(QApplication::translate("UIDetails", "Scale-factor", "details (display)"), 421 QString::number(dValue, 'f', 2)); 469 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay_ScaleFactor) 470 { 471 const QString strScaleFactor = comMachine.GetExtraData(UIExtraDataDefs::GUI_ScaleFactor); 472 { 473 /* Try to convert loaded data to double: */ 474 bool fOk = false; 475 double dValue = strScaleFactor.toDouble(&fOk); 476 /* Invent the default value: */ 477 if (!fOk || !dValue) 478 dValue = 1.0; 479 /* Append information: */ 480 if (dValue != 1.0) 481 table << UITextTableLine(QApplication::translate("UIDetails", "Scale-factor", "details (display)"), 482 QString::number(dValue, 'f', 2)); 483 } 422 484 } 423 485 424 486 /* Acceleration: */ 425 QStringList acceleration; 487 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay_Acceleration) 488 { 489 QStringList acceleration; 426 490 #ifdef VBOX_WITH_VIDEOHWACCEL 427 /* 2D acceleration: */428 if (comMachine.GetAccelerate2DVideoEnabled())429 acceleration << QApplication::translate("UIDetails", "2D Video", "details (display)");491 /* 2D acceleration: */ 492 if (comMachine.GetAccelerate2DVideoEnabled()) 493 acceleration << QApplication::translate("UIDetails", "2D Video", "details (display)"); 430 494 #endif 431 /* 3D acceleration: */ 432 if (comMachine.GetAccelerate3DEnabled()) 433 acceleration << QApplication::translate("UIDetails", "3D", "details (display)"); 434 if (!acceleration.isEmpty()) 435 table << UITextTableLine(QApplication::translate("UIDetails", "Acceleration", "details (display)"), 436 acceleration.join(", ")); 437 438 /* VRDE: */ 439 const CVRDEServer comServer = comMachine.GetVRDEServer(); 440 if (!comServer.isNull()) 441 { 442 if (comServer.GetEnabled()) 443 table << UITextTableLine(QApplication::translate("UIDetails", "Remote Desktop Server Port", "details (display/vrde)"), 444 comServer.GetVRDEProperty("TCP/Ports")); 495 /* 3D acceleration: */ 496 if (comMachine.GetAccelerate3DEnabled()) 497 acceleration << QApplication::translate("UIDetails", "3D", "details (display)"); 498 if (!acceleration.isEmpty()) 499 table << UITextTableLine(QApplication::translate("UIDetails", "Acceleration", "details (display)"), 500 acceleration.join(", ")); 501 } 502 503 /* Remote desktop server: */ 504 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay_VRDE) 505 { 506 const CVRDEServer comServer = comMachine.GetVRDEServer(); 507 if (!comServer.isNull()) 508 { 509 if (comServer.GetEnabled()) 510 table << UITextTableLine(QApplication::translate("UIDetails", "Remote Desktop Server Port", "details (display/vrde)"), 511 comServer.GetVRDEProperty("TCP/Ports")); 512 else 513 table << UITextTableLine(QApplication::translate("UIDetails", "Remote Desktop Server", "details (display/vrde)"), 514 QApplication::translate("UIDetails", "Disabled", "details (display/vrde/VRDE server)")); 515 } 516 } 517 518 /* Recording: */ 519 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay_Recording) 520 { 521 CRecordingSettings comRecordingSettings = comMachine.GetRecordingSettings(); 522 if (comRecordingSettings.GetEnabled()) 523 { 524 /* For now all screens have the same config: */ 525 const CRecordingScreenSettings comRecordingScreen0Settings = comRecordingSettings.GetScreenSettings(0); 526 527 /** @todo r=andy Refine these texts (wrt audio and/or video). */ 528 table << UITextTableLine(QApplication::translate("UIDetails", "Recording File", "details (display/recording)"), 529 comRecordingScreen0Settings.GetFileName()); 530 table << UITextTableLine(QApplication::translate("UIDetails", "Recording Attributes", "details (display/recording)"), 531 QApplication::translate("UIDetails", "Frame Size: %1x%2, Frame Rate: %3fps, Bit Rate: %4kbps") 532 .arg(comRecordingScreen0Settings.GetVideoWidth()).arg(comRecordingScreen0Settings.GetVideoHeight()) 533 .arg(comRecordingScreen0Settings.GetVideoFPS()).arg(comRecordingScreen0Settings.GetVideoRate())); 534 } 445 535 else 446 table << UITextTableLine(QApplication::translate("UIDetails", "Remote Desktop Server", "details (display/vrde)"), 447 QApplication::translate("UIDetails", "Disabled", "details (display/vrde/VRDE server)")); 448 } 449 450 /* Recording info: */ 451 CRecordingSettings comRecordingSettings = comMachine.GetRecordingSettings(); 452 if (comRecordingSettings.GetEnabled()) 453 { 454 /* For now all screens have the same config: */ 455 const CRecordingScreenSettings comRecordingScreen0Settings = comRecordingSettings.GetScreenSettings(0); 456 457 /** @todo r=andy Refine these texts (wrt audio and/or video). */ 458 table << UITextTableLine(QApplication::translate("UIDetails", "Recording File", "details (display/recording)"), 459 comRecordingScreen0Settings.GetFileName()); 460 table << UITextTableLine(QApplication::translate("UIDetails", "Recording Attributes", "details (display/recording)"), 461 QApplication::translate("UIDetails", "Frame Size: %1x%2, Frame Rate: %3fps, Bit Rate: %4kbps") 462 .arg(comRecordingScreen0Settings.GetVideoWidth()).arg(comRecordingScreen0Settings.GetVideoHeight()) 463 .arg(comRecordingScreen0Settings.GetVideoFPS()).arg(comRecordingScreen0Settings.GetVideoRate())); 464 } 465 else 466 { 467 table << UITextTableLine(QApplication::translate("UIDetails", "Recording", "details (display/recording)"), 468 QApplication::translate("UIDetails", "Disabled", "details (display/recording)")); 536 { 537 table << UITextTableLine(QApplication::translate("UIDetails", "Recording", "details (display/recording)"), 538 QApplication::translate("UIDetails", "Disabled", "details (display/recording)")); 539 } 469 540 } 470 541 } … … 474 545 /* Save the table as property: */ 475 546 setProperty("table", QVariant::fromValue(table)); 547 } 548 549 UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay UIDetailsElementDisplay::parsedExtraDataOptions() 550 { 551 UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay options = UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay_Invalid; 552 foreach (const QString &strOption, extraDataOptions()) 553 { 554 const UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay enmOption = 555 gpConverter->fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay>(strOption); 556 if (enmOption != UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay_Invalid) 557 options = static_cast<UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay>(options | enmOption); 558 } 559 if (options == UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay_Invalid) 560 options = UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay_Default; 561 return options; 476 562 } 477 563 … … 502 588 /* Acquire device type first of all: */ 503 589 const KDeviceType enmDeviceType = attachment.GetType(); 590 591 /* Ignore restricted device types: */ 592 if ( ( !(m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeStorage_HardDisks) 593 && enmDeviceType == KDeviceType_HardDisk) 594 || ( !(m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeStorage_OpticalDevices) 595 && enmDeviceType == KDeviceType_DVD) 596 || ( !(m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeStorage_FloppyDevices) 597 && enmDeviceType == KDeviceType_Floppy)) 598 continue; 504 599 505 600 /* Prepare current storage slot: */ … … 561 656 } 562 657 658 UIExtraDataMetaDefs::DetailsElementOptionTypeStorage UIDetailsElementStorage::parsedExtraDataOptions() 659 { 660 UIExtraDataMetaDefs::DetailsElementOptionTypeStorage options = UIExtraDataMetaDefs::DetailsElementOptionTypeStorage_Invalid; 661 foreach (const QString &strOption, extraDataOptions()) 662 { 663 const UIExtraDataMetaDefs::DetailsElementOptionTypeStorage enmOption = 664 gpConverter->fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeStorage>(strOption); 665 if (enmOption != UIExtraDataMetaDefs::DetailsElementOptionTypeStorage_Invalid) 666 options = static_cast<UIExtraDataMetaDefs::DetailsElementOptionTypeStorage>(options | enmOption); 667 } 668 if (options == UIExtraDataMetaDefs::DetailsElementOptionTypeStorage_Invalid) 669 options = UIExtraDataMetaDefs::DetailsElementOptionTypeStorage_Default; 670 return options; 671 } 672 563 673 564 674 void UIDetailsUpdateTaskAudio::run() … … 578 688 if (comAudio.GetEnabled()) 579 689 { 580 /* Driver: */ 581 table << UITextTableLine(QApplication::translate("UIDetails", "Host Driver", "details (audio)"), 582 gpConverter->toString(comAudio.GetAudioDriver())); 690 /* Host driver: */ 691 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeAudio_Driver) 692 table << UITextTableLine(QApplication::translate("UIDetails", "Host Driver", "details (audio)"), 693 gpConverter->toString(comAudio.GetAudioDriver())); 583 694 584 695 /* Controller: */ 585 table << UITextTableLine(QApplication::translate("UIDetails", "Controller", "details (audio)"), 586 gpConverter->toString(comAudio.GetAudioController())); 696 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeAudio_Controller) 697 table << UITextTableLine(QApplication::translate("UIDetails", "Controller", "details (audio)"), 698 gpConverter->toString(comAudio.GetAudioController())); 587 699 588 700 #ifdef VBOX_WITH_AUDIO_INOUT_INFO 589 /* I/O: */ 590 table << UITextTableLine(QApplication::translate("UIDetails", "Audio Output", "details (audio)"), 591 comAudio.GetEnabledOut() ? 592 QApplication::translate("UIDetails", "Enabled", "details (audio/output)") : 593 QApplication::translate("UIDetails", "Disabled", "details (audio/output)")); 594 table << UITextTableLine(QApplication::translate("UIDetails", "Audio Input", "details (audio)"), 595 comAudio.GetEnabledIn() ? 596 QApplication::translate("UIDetails", "Enabled", "details (audio/input)") : 597 QApplication::translate("UIDetails", "Disabled", "details (audio/input)")); 701 /* Audio I/O: */ 702 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeAudio_IO) 703 { 704 table << UITextTableLine(QApplication::translate("UIDetails", "Audio Input", "details (audio)"), 705 comAudio.GetEnabledIn() ? 706 QApplication::translate("UIDetails", "Enabled", "details (audio/input)") : 707 QApplication::translate("UIDetails", "Disabled", "details (audio/input)")); 708 table << UITextTableLine(QApplication::translate("UIDetails", "Audio Output", "details (audio)"), 709 comAudio.GetEnabledOut() ? 710 QApplication::translate("UIDetails", "Enabled", "details (audio/output)") : 711 QApplication::translate("UIDetails", "Disabled", "details (audio/output)")); 712 } 598 713 #endif /* VBOX_WITH_AUDIO_INOUT_INFO */ 599 714 } … … 608 723 /* Save the table as property: */ 609 724 setProperty("table", QVariant::fromValue(table)); 725 } 726 727 UIExtraDataMetaDefs::DetailsElementOptionTypeAudio UIDetailsElementAudio::parsedExtraDataOptions() 728 { 729 UIExtraDataMetaDefs::DetailsElementOptionTypeAudio options = UIExtraDataMetaDefs::DetailsElementOptionTypeAudio_Invalid; 730 foreach (const QString &strOption, extraDataOptions()) 731 { 732 const UIExtraDataMetaDefs::DetailsElementOptionTypeAudio enmOption = 733 gpConverter->fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeAudio>(strOption); 734 if (enmOption != UIExtraDataMetaDefs::DetailsElementOptionTypeAudio_Invalid) 735 options = static_cast<UIExtraDataMetaDefs::DetailsElementOptionTypeAudio>(options | enmOption); 736 } 737 if (options == UIExtraDataMetaDefs::DetailsElementOptionTypeAudio_Invalid) 738 options = UIExtraDataMetaDefs::DetailsElementOptionTypeAudio_Default; 739 return options; 610 740 } 611 741 … … 642 772 case KNetworkAttachmentType_Bridged: 643 773 { 644 strAttachmentType = strAttachmentTemplate.arg(QApplication::translate("UIDetails", "Bridged Adapter, %1", "details (network)") 645 .arg(comAdapter.GetBridgedInterface())); 774 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork_BridgetAdapter) 775 strAttachmentType = strAttachmentTemplate.arg(QApplication::translate("UIDetails", "Bridged Adapter, %1", "details (network)") 776 .arg(comAdapter.GetBridgedInterface())); 646 777 break; 647 778 } 648 779 case KNetworkAttachmentType_Internal: 649 780 { 650 strAttachmentType = strAttachmentTemplate.arg(QApplication::translate("UIDetails", "Internal Network, '%1'", "details (network)") 651 .arg(comAdapter.GetInternalNetwork())); 781 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork_InternalNetwork) 782 strAttachmentType = strAttachmentTemplate.arg(QApplication::translate("UIDetails", "Internal Network, '%1'", "details (network)") 783 .arg(comAdapter.GetInternalNetwork())); 652 784 break; 653 785 } 654 786 case KNetworkAttachmentType_HostOnly: 655 787 { 656 strAttachmentType = strAttachmentTemplate.arg(QApplication::translate("UIDetails", "Host-only Adapter, '%1'", "details (network)") 657 .arg(comAdapter.GetHostOnlyInterface())); 788 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork_HostOnlyAdapter) 789 strAttachmentType = strAttachmentTemplate.arg(QApplication::translate("UIDetails", "Host-only Adapter, '%1'", "details (network)") 790 .arg(comAdapter.GetHostOnlyInterface())); 658 791 break; 659 792 } 660 793 case KNetworkAttachmentType_Generic: 661 794 { 662 const QString strGenericDriverProperties(summarizeGenericProperties(comAdapter)); 663 strAttachmentType = strGenericDriverProperties.isNull() ? 664 strAttachmentTemplate.arg(QApplication::translate("UIDetails", "Generic Driver, '%1'", "details (network)") 665 .arg(comAdapter.GetGenericDriver())) : 666 strAttachmentTemplate.arg(QApplication::translate("UIDetails", "Generic Driver, '%1' { %2 }", "details (network)") 667 .arg(comAdapter.GetGenericDriver(), strGenericDriverProperties)); 795 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork_GenericDriver) 796 { 797 const QString strGenericDriverProperties(summarizeGenericProperties(comAdapter)); 798 strAttachmentType = strGenericDriverProperties.isNull() ? 799 strAttachmentTemplate.arg(QApplication::translate("UIDetails", "Generic Driver, '%1'", "details (network)") 800 .arg(comAdapter.GetGenericDriver())) : 801 strAttachmentTemplate.arg(QApplication::translate("UIDetails", "Generic Driver, '%1' { %2 }", "details (network)") 802 .arg(comAdapter.GetGenericDriver(), strGenericDriverProperties)); 803 } 668 804 break; 669 805 } 670 806 case KNetworkAttachmentType_NATNetwork: 671 807 { 672 strAttachmentType = strAttachmentTemplate.arg(QApplication::translate("UIDetails", "NAT Network, '%1'", "details (network)") 673 .arg(comAdapter.GetNATNetwork())); 808 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork_NAT) 809 strAttachmentType = strAttachmentTemplate.arg(QApplication::translate("UIDetails", "NAT Network, '%1'", "details (network)") 810 .arg(comAdapter.GetNATNetwork())); 674 811 break; 675 812 } 676 813 default: 677 814 { 678 strAttachmentType = strAttachmentTemplate.arg(gpConverter->toString(enmType)); 815 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork_NotAttached) 816 strAttachmentType = strAttachmentTemplate.arg(gpConverter->toString(enmType)); 679 817 break; 680 818 } … … 691 829 /* Save the table as property: */ 692 830 setProperty("table", QVariant::fromValue(table)); 831 } 832 833 UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork UIDetailsElementNetwork::parsedExtraDataOptions() 834 { 835 UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork options = UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork_Invalid; 836 foreach (const QString &strOption, extraDataOptions()) 837 { 838 const UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork enmOption = 839 gpConverter->fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork>(strOption); 840 if (enmOption != UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork_Invalid) 841 options = static_cast<UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork>(options | enmOption); 842 } 843 if (options == UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork_Invalid) 844 options = UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork_Default; 845 return options; 693 846 } 694 847 … … 741 894 case KPortMode_HostPipe: 742 895 { 743 strModeType = strModeTemplate + QString("%1 (%2)").arg(gpConverter->toString(enmMode)).arg(QDir::toNativeSeparators(comPort.GetPath())); 896 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeSerial_HostPipe) 897 strModeType = strModeTemplate + QString("%1 (%2)").arg(gpConverter->toString(enmMode)).arg(QDir::toNativeSeparators(comPort.GetPath())); 744 898 break; 745 899 } 746 900 case KPortMode_HostDevice: 747 901 { 748 strModeType = strModeTemplate + QString("%1 (%2)").arg(gpConverter->toString(enmMode)).arg(QDir::toNativeSeparators(comPort.GetPath())); 902 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeSerial_HostDevice) 903 strModeType = strModeTemplate + QString("%1 (%2)").arg(gpConverter->toString(enmMode)).arg(QDir::toNativeSeparators(comPort.GetPath())); 749 904 break; 750 905 } 751 906 case KPortMode_RawFile: 752 907 { 753 strModeType = strModeTemplate + QString("%1 (%2)").arg(gpConverter->toString(enmMode)).arg(QDir::toNativeSeparators(comPort.GetPath())); 908 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeSerial_RawFile) 909 strModeType = strModeTemplate + QString("%1 (%2)").arg(gpConverter->toString(enmMode)).arg(QDir::toNativeSeparators(comPort.GetPath())); 754 910 break; 755 911 } 756 912 case KPortMode_TCP: 757 913 { 758 strModeType = strModeTemplate + QString("%1 (%2)").arg(gpConverter->toString(enmMode)).arg(QDir::toNativeSeparators(comPort.GetPath())); 914 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeSerial_TCP) 915 strModeType = strModeTemplate + QString("%1 (%2)").arg(gpConverter->toString(enmMode)).arg(QDir::toNativeSeparators(comPort.GetPath())); 759 916 break; 760 917 } 761 918 default: 762 919 { 763 strModeType = strModeTemplate + gpConverter->toString(enmMode); 920 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeSerial_Disconnected) 921 strModeType = strModeTemplate + gpConverter->toString(enmMode); 764 922 break; 765 923 } … … 776 934 /* Save the table as property: */ 777 935 setProperty("table", QVariant::fromValue(table)); 936 } 937 938 UIExtraDataMetaDefs::DetailsElementOptionTypeSerial UIDetailsElementSerial::parsedExtraDataOptions() 939 { 940 UIExtraDataMetaDefs::DetailsElementOptionTypeSerial options = UIExtraDataMetaDefs::DetailsElementOptionTypeSerial_Invalid; 941 foreach (const QString &strOption, extraDataOptions()) 942 { 943 const UIExtraDataMetaDefs::DetailsElementOptionTypeSerial enmOption = 944 gpConverter->fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeSerial>(strOption); 945 if (enmOption != UIExtraDataMetaDefs::DetailsElementOptionTypeSerial_Invalid) 946 options = static_cast<UIExtraDataMetaDefs::DetailsElementOptionTypeSerial>(options | enmOption); 947 } 948 if (options == UIExtraDataMetaDefs::DetailsElementOptionTypeSerial_Invalid) 949 options = UIExtraDataMetaDefs::DetailsElementOptionTypeSerial_Default; 950 return options; 778 951 } 779 952 … … 799 972 if (!controllers.isEmpty()) 800 973 { 801 /* Controllers: */ 802 QStringList controllersReadable; 803 foreach (const CUSBController &comController, controllers) 804 controllersReadable << gpConverter->toString(comController.GetType()); 805 table << UITextTableLine(QApplication::translate("UIDetails", "USB Controller", "details (usb)"), 806 controllersReadable.join(", ")); 807 808 /* Device Filters: */ 809 const CUSBDeviceFilterVector filters = comFilterObject.GetDeviceFilters(); 810 uint uActive = 0; 811 for (int i = 0; i < filters.size(); ++i) 812 if (filters.at(i).GetActive()) 813 ++uActive; 814 table << UITextTableLine(QApplication::translate("UIDetails", "Device Filters", "details (usb)"), 815 QApplication::translate("UIDetails", "%1 (%2 active)", "details (usb)").arg(filters.size()).arg(uActive)); 974 /* USB controllers: */ 975 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeUsb_Controller) 976 { 977 QStringList controllersReadable; 978 foreach (const CUSBController &comController, controllers) 979 controllersReadable << gpConverter->toString(comController.GetType()); 980 table << UITextTableLine(QApplication::translate("UIDetails", "USB Controller", "details (usb)"), 981 controllersReadable.join(", ")); 982 } 983 984 /* Device filters: */ 985 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeUsb_DeviceFilters) 986 { 987 const CUSBDeviceFilterVector filters = comFilterObject.GetDeviceFilters(); 988 uint uActive = 0; 989 for (int i = 0; i < filters.size(); ++i) 990 if (filters.at(i).GetActive()) 991 ++uActive; 992 table << UITextTableLine(QApplication::translate("UIDetails", "Device Filters", "details (usb)"), 993 QApplication::translate("UIDetails", "%1 (%2 active)", "details (usb)").arg(filters.size()).arg(uActive)); 994 } 816 995 } 817 996 else … … 826 1005 /* Save the table as property: */ 827 1006 setProperty("table", QVariant::fromValue(table)); 1007 } 1008 1009 UIExtraDataMetaDefs::DetailsElementOptionTypeUsb UIDetailsElementUSB::parsedExtraDataOptions() 1010 { 1011 UIExtraDataMetaDefs::DetailsElementOptionTypeUsb options = UIExtraDataMetaDefs::DetailsElementOptionTypeUsb_Invalid; 1012 foreach (const QString &strOption, extraDataOptions()) 1013 { 1014 const UIExtraDataMetaDefs::DetailsElementOptionTypeUsb enmOption = 1015 gpConverter->fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeUsb>(strOption); 1016 if (enmOption != UIExtraDataMetaDefs::DetailsElementOptionTypeUsb_Invalid) 1017 options = static_cast<UIExtraDataMetaDefs::DetailsElementOptionTypeUsb>(options | enmOption); 1018 } 1019 if (options == UIExtraDataMetaDefs::DetailsElementOptionTypeUsb_Invalid) 1020 options = UIExtraDataMetaDefs::DetailsElementOptionTypeUsb_Default; 1021 return options; 828 1022 } 829 1023 … … 843 1037 { 844 1038 /* Summary: */ 845 const ulong uCount = comMachine.GetSharedFolders().size(); 846 if (uCount > 0) 847 table << UITextTableLine(QApplication::translate("UIDetails", "Shared Folders", "details (shared folders)"), QString::number(uCount)); 848 else 849 table << UITextTableLine(QApplication::translate("UIDetails", "None", "details (shared folders)"), QString()); 1039 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders_Summary) 1040 { 1041 const ulong uCount = comMachine.GetSharedFolders().size(); 1042 if (uCount > 0) 1043 table << UITextTableLine(QApplication::translate("UIDetails", "Shared Folders", "details (shared folders)"), QString::number(uCount)); 1044 else 1045 table << UITextTableLine(QApplication::translate("UIDetails", "None", "details (shared folders)"), QString()); 1046 } 850 1047 } 851 1048 else … … 854 1051 /* Save the table as property: */ 855 1052 setProperty("table", QVariant::fromValue(table)); 1053 } 1054 1055 UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders UIDetailsElementSF::parsedExtraDataOptions() 1056 { 1057 UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders options = UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders_Invalid; 1058 foreach (const QString &strOption, extraDataOptions()) 1059 { 1060 const UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders enmOption = 1061 gpConverter->fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders>(strOption); 1062 if (enmOption != UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders_Invalid) 1063 options = static_cast<UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders>(options | enmOption); 1064 } 1065 if (options == UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders_Invalid) 1066 options = UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders_Default; 1067 return options; 856 1068 } 857 1069 … … 872 1084 #ifndef VBOX_WS_MAC 873 1085 /* Menu-bar: */ 874 const QString strMenubarEnabled = comMachine.GetExtraData(UIExtraDataDefs::GUI_MenuBar_Enabled); 875 { 1086 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface_MenuBar) 1087 { 1088 const QString strMenubarEnabled = comMachine.GetExtraData(UIExtraDataDefs::GUI_MenuBar_Enabled); 876 1089 /* Try to convert loaded data to bool: */ 877 1090 const bool fEnabled = !( strMenubarEnabled.compare("false", Qt::CaseInsensitive) == 0 … … 887 1100 888 1101 /* Status-bar: */ 889 const QString strStatusbarEnabled = comMachine.GetExtraData(UIExtraDataDefs::GUI_StatusBar_Enabled); 890 { 1102 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface_StatusBar) 1103 { 1104 const QString strStatusbarEnabled = comMachine.GetExtraData(UIExtraDataDefs::GUI_StatusBar_Enabled); 891 1105 /* Try to convert loaded data to bool: */ 892 1106 const bool fEnabled = !( strStatusbarEnabled.compare("false", Qt::CaseInsensitive) == 0 … … 902 1116 #ifndef VBOX_WS_MAC 903 1117 /* Mini-toolbar: */ 904 const QString strMiniToolbarEnabled = comMachine.GetExtraData(UIExtraDataDefs::GUI_ShowMiniToolBar); 905 { 1118 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface_MiniToolbar) 1119 { 1120 const QString strMiniToolbarEnabled = comMachine.GetExtraData(UIExtraDataDefs::GUI_ShowMiniToolBar); 906 1121 /* Try to convert loaded data to bool: */ 907 1122 const bool fEnabled = !( strMiniToolbarEnabled.compare("false", Qt::CaseInsensitive) == 0 … … 945 1160 } 946 1161 1162 UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface UIDetailsElementUI::parsedExtraDataOptions() 1163 { 1164 UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface options = UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface_Invalid; 1165 foreach (const QString &strOption, extraDataOptions()) 1166 { 1167 const UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface enmOption = 1168 gpConverter->fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface>(strOption); 1169 if (enmOption != UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface_Invalid) 1170 options = static_cast<UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface>(options | enmOption); 1171 } 1172 if (options == UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface_Invalid) 1173 options = UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface_Default; 1174 return options; 1175 } 1176 947 1177 948 1178 void UIDetailsUpdateTaskDescription::run() … … 960 1190 { 961 1191 /* Summary: */ 962 const QString strDescription = machine.GetDescription(); 963 if (!strDescription.isEmpty()) 964 table << UITextTableLine(strDescription, QString()); 965 else 966 table << UITextTableLine(QApplication::translate("UIDetails", "None", "details (description)"), QString()); 1192 if (m_fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeDescription_Summary) 1193 { 1194 const QString strDescription = machine.GetDescription(); 1195 if (!strDescription.isEmpty()) 1196 table << UITextTableLine(strDescription, QString()); 1197 else 1198 table << UITextTableLine(QApplication::translate("UIDetails", "None", "details (description)"), QString()); 1199 } 967 1200 } 968 1201 else … … 972 1205 setProperty("table", QVariant::fromValue(table)); 973 1206 } 1207 1208 UIExtraDataMetaDefs::DetailsElementOptionTypeDescription UIDetailsElementDescription::parsedExtraDataOptions() 1209 { 1210 UIExtraDataMetaDefs::DetailsElementOptionTypeDescription options = UIExtraDataMetaDefs::DetailsElementOptionTypeDescription_Invalid; 1211 foreach (const QString &strOption, extraDataOptions()) 1212 { 1213 const UIExtraDataMetaDefs::DetailsElementOptionTypeDescription enmOption = 1214 gpConverter->fromInternalString<UIExtraDataMetaDefs::DetailsElementOptionTypeDescription>(strOption); 1215 if (enmOption != UIExtraDataMetaDefs::DetailsElementOptionTypeDescription_Invalid) 1216 options = static_cast<UIExtraDataMetaDefs::DetailsElementOptionTypeDescription>(options | enmOption); 1217 } 1218 if (options == UIExtraDataMetaDefs::DetailsElementOptionTypeDescription_Invalid) 1219 options = UIExtraDataMetaDefs::DetailsElementOptionTypeDescription_Default; 1220 return options; 1221 } -
trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsElements.h
r75426 r75427 121 121 122 122 /** Constructs update task passing @a comMachine to the base-class. */ 123 UIDetailsUpdateTaskGeneral(const CMachine &comMachine) 124 : UIDetailsUpdateTask(comMachine) {} 125 126 private: 127 128 /** Contains update task body. */ 129 void run(); 123 UIDetailsUpdateTaskGeneral(const CMachine &comMachine, UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral fOptions) 124 : UIDetailsUpdateTask(comMachine), m_fOptions(fOptions) {} 125 126 private: 127 128 /** Contains update task body. */ 129 void run(); 130 131 /** Holds the options. */ 132 UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral m_fOptions; 130 133 }; 131 134 … … 144 147 private: 145 148 146 /** Creates update task for this element. */ 147 UITask *createUpdateTask() { return new UIDetailsUpdateTaskGeneral(machine()); } 149 /** Returns parsed extra-data options. */ 150 UIExtraDataMetaDefs::DetailsElementOptionTypeGeneral parsedExtraDataOptions(); 151 152 /** Creates update task for this element. */ 153 UITask *createUpdateTask() { return new UIDetailsUpdateTaskGeneral(machine(), parsedExtraDataOptions()); } 148 154 }; 149 155 … … 157 163 158 164 /** Constructs update task passing @a comMachine to the base-class. */ 159 UIDetailsUpdateTaskSystem(const CMachine &comMachine) 160 : UIDetailsUpdateTask(comMachine) {} 161 162 private: 163 164 /** Contains update task body. */ 165 void run(); 165 UIDetailsUpdateTaskSystem(const CMachine &comMachine, UIExtraDataMetaDefs::DetailsElementOptionTypeSystem fOptions) 166 : UIDetailsUpdateTask(comMachine), m_fOptions(fOptions) {} 167 168 private: 169 170 /** Contains update task body. */ 171 void run(); 172 173 /** Holds the options. */ 174 UIExtraDataMetaDefs::DetailsElementOptionTypeSystem m_fOptions; 166 175 }; 167 176 … … 180 189 private: 181 190 182 /** Creates update task for this element. */ 183 UITask *createUpdateTask() { return new UIDetailsUpdateTaskSystem(machine()); } 191 /** Returns parsed extra-data options. */ 192 UIExtraDataMetaDefs::DetailsElementOptionTypeSystem parsedExtraDataOptions(); 193 194 /** Creates update task for this element. */ 195 UITask *createUpdateTask() { return new UIDetailsUpdateTaskSystem(machine(), parsedExtraDataOptions()); } 184 196 }; 185 197 … … 193 205 194 206 /** Constructs update task passing @a comMachine to the base-class. */ 195 UIDetailsUpdateTaskDisplay(const CMachine &comMachine) 196 : UIDetailsUpdateTask(comMachine) {} 197 198 private: 199 200 /** Contains update task body. */ 201 void run(); 207 UIDetailsUpdateTaskDisplay(const CMachine &comMachine, UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay fOptions) 208 : UIDetailsUpdateTask(comMachine), m_fOptions(fOptions) {} 209 210 private: 211 212 /** Contains update task body. */ 213 void run(); 214 215 /** Holds the options. */ 216 UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay m_fOptions; 202 217 }; 203 218 … … 216 231 private: 217 232 218 /** Creates update task for this element. */ 219 UITask *createUpdateTask() { return new UIDetailsUpdateTaskDisplay(machine()); } 233 /** Returns parsed extra-data options. */ 234 UIExtraDataMetaDefs::DetailsElementOptionTypeDisplay parsedExtraDataOptions(); 235 236 /** Creates update task for this element. */ 237 UITask *createUpdateTask() { return new UIDetailsUpdateTaskDisplay(machine(), parsedExtraDataOptions()); } 220 238 }; 221 239 … … 229 247 230 248 /** Constructs update task passing @a comMachine to the base-class. */ 231 UIDetailsUpdateTaskStorage(const CMachine &comMachine) 232 : UIDetailsUpdateTask(comMachine) {} 233 234 private: 235 236 /** Contains update task body. */ 237 void run(); 249 UIDetailsUpdateTaskStorage(const CMachine &comMachine, UIExtraDataMetaDefs::DetailsElementOptionTypeStorage fOptions) 250 : UIDetailsUpdateTask(comMachine), m_fOptions(fOptions) {} 251 252 private: 253 254 /** Contains update task body. */ 255 void run(); 256 257 /** Holds the options. */ 258 UIExtraDataMetaDefs::DetailsElementOptionTypeStorage m_fOptions; 238 259 }; 239 260 … … 252 273 private: 253 274 254 /** Creates update task for this element. */ 255 UITask *createUpdateTask() { return new UIDetailsUpdateTaskStorage(machine()); } 275 /** Returns parsed extra-data options. */ 276 UIExtraDataMetaDefs::DetailsElementOptionTypeStorage parsedExtraDataOptions(); 277 278 /** Creates update task for this element. */ 279 UITask *createUpdateTask() { return new UIDetailsUpdateTaskStorage(machine(), parsedExtraDataOptions()); } 256 280 }; 257 281 … … 265 289 266 290 /** Constructs update task passing @a comMachine to the base-class. */ 267 UIDetailsUpdateTaskAudio(const CMachine &comMachine) 268 : UIDetailsUpdateTask(comMachine) {} 269 270 private: 271 272 /** Contains update task body. */ 273 void run(); 291 UIDetailsUpdateTaskAudio(const CMachine &comMachine, UIExtraDataMetaDefs::DetailsElementOptionTypeAudio fOptions) 292 : UIDetailsUpdateTask(comMachine), m_fOptions(fOptions) {} 293 294 private: 295 296 /** Contains update task body. */ 297 void run(); 298 299 /** Holds the options. */ 300 UIExtraDataMetaDefs::DetailsElementOptionTypeAudio m_fOptions; 274 301 }; 275 302 … … 288 315 private: 289 316 290 /** Creates update task for this element. */ 291 UITask *createUpdateTask() { return new UIDetailsUpdateTaskAudio(machine()); } 317 /** Returns parsed extra-data options. */ 318 UIExtraDataMetaDefs::DetailsElementOptionTypeAudio parsedExtraDataOptions(); 319 320 /** Creates update task for this element. */ 321 UITask *createUpdateTask() { return new UIDetailsUpdateTaskAudio(machine(), parsedExtraDataOptions()); } 292 322 }; 293 323 … … 301 331 302 332 /** Constructs update task passing @a comMachine to the base-class. */ 303 UIDetailsUpdateTaskNetwork(const CMachine &comMachine )304 : UIDetailsUpdateTask(comMachine) {}333 UIDetailsUpdateTaskNetwork(const CMachine &comMachine, UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork fOptions) 334 : UIDetailsUpdateTask(comMachine), m_fOptions(fOptions) {} 305 335 306 336 private: … … 311 341 /** Summarizes generic properties. */ 312 342 static QString summarizeGenericProperties(const CNetworkAdapter &adapter); 343 344 /** Holds the options. */ 345 UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork m_fOptions; 313 346 }; 314 347 … … 327 360 private: 328 361 329 /** Creates update task for this element. */ 330 UITask *createUpdateTask() { return new UIDetailsUpdateTaskNetwork(machine()); } 362 /** Returns parsed extra-data options. */ 363 UIExtraDataMetaDefs::DetailsElementOptionTypeNetwork parsedExtraDataOptions(); 364 365 /** Creates update task for this element. */ 366 UITask *createUpdateTask() { return new UIDetailsUpdateTaskNetwork(machine(), parsedExtraDataOptions()); } 331 367 }; 332 368 … … 340 376 341 377 /** Constructs update task passing @a comMachine to the base-class. */ 342 UIDetailsUpdateTaskSerial(const CMachine &comMachine) 343 : UIDetailsUpdateTask(comMachine) {} 344 345 private: 346 347 /** Contains update task body. */ 348 void run(); 378 UIDetailsUpdateTaskSerial(const CMachine &comMachine, UIExtraDataMetaDefs::DetailsElementOptionTypeSerial fOptions) 379 : UIDetailsUpdateTask(comMachine), m_fOptions(fOptions) {} 380 381 private: 382 383 /** Contains update task body. */ 384 void run(); 385 386 /** Holds the options. */ 387 UIExtraDataMetaDefs::DetailsElementOptionTypeSerial m_fOptions; 349 388 }; 350 389 … … 363 402 private: 364 403 365 /** Creates update task for this element. */ 366 UITask *createUpdateTask() { return new UIDetailsUpdateTaskSerial(machine()); } 404 /** Returns parsed extra-data options. */ 405 UIExtraDataMetaDefs::DetailsElementOptionTypeSerial parsedExtraDataOptions(); 406 407 /** Creates update task for this element. */ 408 UITask *createUpdateTask() { return new UIDetailsUpdateTaskSerial(machine(), parsedExtraDataOptions()); } 367 409 }; 368 410 … … 376 418 377 419 /** Constructs update task passing @a comMachine to the base-class. */ 378 UIDetailsUpdateTaskUSB(const CMachine &comMachine) 379 : UIDetailsUpdateTask(comMachine) {} 380 381 private: 382 383 /** Contains update task body. */ 384 void run(); 420 UIDetailsUpdateTaskUSB(const CMachine &comMachine, UIExtraDataMetaDefs::DetailsElementOptionTypeUsb fOptions) 421 : UIDetailsUpdateTask(comMachine), m_fOptions(fOptions) {} 422 423 private: 424 425 /** Contains update task body. */ 426 void run(); 427 428 /** Holds the options. */ 429 UIExtraDataMetaDefs::DetailsElementOptionTypeUsb m_fOptions; 385 430 }; 386 431 … … 399 444 private: 400 445 401 /** Creates update task for this element. */ 402 UITask *createUpdateTask() { return new UIDetailsUpdateTaskUSB(machine()); } 446 /** Returns parsed extra-data options. */ 447 UIExtraDataMetaDefs::DetailsElementOptionTypeUsb parsedExtraDataOptions(); 448 449 /** Creates update task for this element. */ 450 UITask *createUpdateTask() { return new UIDetailsUpdateTaskUSB(machine(), parsedExtraDataOptions()); } 403 451 }; 404 452 … … 412 460 413 461 /** Constructs update task passing @a comMachine to the base-class. */ 414 UIDetailsUpdateTaskSF(const CMachine &comMachine) 415 : UIDetailsUpdateTask(comMachine) {} 416 417 private: 418 419 /** Contains update task body. */ 420 void run(); 462 UIDetailsUpdateTaskSF(const CMachine &comMachine, UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders fOptions) 463 : UIDetailsUpdateTask(comMachine), m_fOptions(fOptions) {} 464 465 private: 466 467 /** Contains update task body. */ 468 void run(); 469 470 /** Holds the options. */ 471 UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders m_fOptions; 421 472 }; 422 473 … … 435 486 private: 436 487 437 /** Creates update task for this element. */ 438 UITask *createUpdateTask() { return new UIDetailsUpdateTaskSF(machine()); } 488 /** Returns parsed extra-data options. */ 489 UIExtraDataMetaDefs::DetailsElementOptionTypeSharedFolders parsedExtraDataOptions(); 490 491 /** Creates update task for this element. */ 492 UITask *createUpdateTask() { return new UIDetailsUpdateTaskSF(machine(), parsedExtraDataOptions()); } 439 493 }; 440 494 … … 448 502 449 503 /** Constructs update task passing @a comMachine to the base-class. */ 450 UIDetailsUpdateTaskUI(const CMachine &comMachine) 451 : UIDetailsUpdateTask(comMachine) {} 452 453 private: 454 455 /** Contains update task body. */ 456 void run(); 504 UIDetailsUpdateTaskUI(const CMachine &comMachine, UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface fOptions) 505 : UIDetailsUpdateTask(comMachine), m_fOptions(fOptions) {} 506 507 private: 508 509 /** Contains update task body. */ 510 void run(); 511 512 /** Holds the options. */ 513 UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface m_fOptions; 457 514 }; 458 515 … … 471 528 private: 472 529 473 /** Creates update task for this element. */ 474 UITask *createUpdateTask() { return new UIDetailsUpdateTaskUI(machine()); } 530 /** Returns parsed extra-data options. */ 531 UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface parsedExtraDataOptions(); 532 533 /** Creates update task for this element. */ 534 UITask *createUpdateTask() { return new UIDetailsUpdateTaskUI(machine(), parsedExtraDataOptions()); } 475 535 }; 476 536 … … 484 544 485 545 /** Constructs update task passing @a comMachine to the base-class. */ 486 UIDetailsUpdateTaskDescription(const CMachine &comMachine) 487 : UIDetailsUpdateTask(comMachine) {} 488 489 private: 490 491 /** Contains update task body. */ 492 void run(); 546 UIDetailsUpdateTaskDescription(const CMachine &comMachine, UIExtraDataMetaDefs::DetailsElementOptionTypeDescription fOptions) 547 : UIDetailsUpdateTask(comMachine), m_fOptions(fOptions) {} 548 549 private: 550 551 /** Contains update task body. */ 552 void run(); 553 554 /** Holds the options. */ 555 UIExtraDataMetaDefs::DetailsElementOptionTypeDescription m_fOptions; 493 556 }; 494 557 … … 507 570 private: 508 571 509 /** Creates update task for this element. */ 510 UITask *createUpdateTask() { return new UIDetailsUpdateTaskDescription(machine()); } 572 /** Returns parsed extra-data options. */ 573 UIExtraDataMetaDefs::DetailsElementOptionTypeDescription parsedExtraDataOptions(); 574 575 /** Creates update task for this element. */ 576 UITask *createUpdateTask() { return new UIDetailsUpdateTaskDescription(machine(), parsedExtraDataOptions()); } 511 577 }; 512 578 -
trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsModel.cpp
r74681 r75427 129 129 130 130 void UIDetailsModel::sltHandleToggleFinished() 131 { 132 m_pRoot->rebuildGroup(); 133 } 134 135 void UIDetailsModel::sltHandleExtraDataOptionsChange(DetailsElementType) 131 136 { 132 137 m_pRoot->rebuildGroup(); -
trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsModel.h
r74942 r75427 94 94 void sltHandleToggleFinished(); 95 95 96 /** Handle extra-data options change. */ 97 void sltHandleExtraDataOptionsChange(DetailsElementType enmType); 98 96 99 private slots: 97 100 -
trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsSet.h
r74942 r75427 71 71 * @param uStepId Brings the step ID. 72 72 * @param iStepNumber Brings the step number. */ 73 /** @} */74 virtual void sltBuildStep(const QUuid &uStepId, int iStepNumber) /* override */;73 virtual void sltBuildStep(const QUuid &uStepId, int iStepNumber) /* override */; 74 /** @} */ 75 75 76 76 protected:
Note:
See TracChangeset
for help on using the changeset viewer.