Changeset 26367 in vbox for trunk/src/VBox/Frontends/VirtualBox
- Timestamp:
- Feb 9, 2010 1:46:31 PM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 57460
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UINewVMWzd.cpp
r26333 r26367 29 29 #include "VBoxVMSettingsHD.h" 30 30 31 /* Globals */ 32 struct osTypePattern 33 { 34 QRegExp pattern; 35 const char *pcstId; 36 }; 37 38 /* Defines some patterns to guess the right OS type. Should be in sync with 39 * VirtualBox-settings-common.xsd in Main. The list is sorted by priority. The 40 * first matching string found, will be used. */ 41 static const osTypePattern gs_OSTypePattern[] = 42 { 43 { QRegExp("DO", Qt::CaseInsensitive), "DOS" }, 44 { QRegExp("Net", Qt::CaseInsensitive), "Netware" }, 45 { QRegExp("L4", Qt::CaseInsensitive), "L4" }, 46 { QRegExp("Wi.*3", Qt::CaseInsensitive), "Windows31" }, 47 { QRegExp("Wi.*98", Qt::CaseInsensitive), "Windows98" }, 48 { QRegExp("Wi.*95", Qt::CaseInsensitive), "Windows95" }, 49 { QRegExp("Wi.*Me", Qt::CaseInsensitive), "WindowsMe" }, 50 { QRegExp("Wi.*NT", Qt::CaseInsensitive), "WindowsNT4" }, 51 { QRegExp("Wi.*X.*64", Qt::CaseInsensitive), "WindowsXP_64" }, 52 { QRegExp("Wi.*X", Qt::CaseInsensitive), "WindowsXP" }, 53 { QRegExp("Wi.*2003.*64", Qt::CaseInsensitive), "Windows2003_64" }, 54 { QRegExp("Wi.*2003", Qt::CaseInsensitive), "Windows2003" }, 55 { QRegExp("Wi.*V.*64", Qt::CaseInsensitive), "WindowsVista_64" }, 56 { QRegExp("Wi.*V", Qt::CaseInsensitive), "WindowsVista" }, 57 { QRegExp("Wi.*2008.*64", Qt::CaseInsensitive), "Windows2008_64" }, 58 { QRegExp("Wi.*2008", Qt::CaseInsensitive), "Windows2008" }, 59 { QRegExp("Wi.*2", Qt::CaseInsensitive), "Windows2000" }, 60 { QRegExp("Wi.*7.*64", Qt::CaseInsensitive), "Windows7_64" }, 61 { QRegExp("Wi.*7", Qt::CaseInsensitive), "Windows7" }, 62 { QRegExp("Wi", Qt::CaseInsensitive), "WindowsXP" }, 63 { QRegExp("OS2.*W.*4.?5", Qt::CaseInsensitive), "OS2Warp45" }, 64 { QRegExp("OS2.*W.*4", Qt::CaseInsensitive), "OS2Warp4" }, 65 { QRegExp("OS2.*W", Qt::CaseInsensitive), "OS2Warp3" }, 66 { QRegExp("OS2.*e", Qt::CaseInsensitive), "OS2eCS" }, 67 { QRegExp("OS2", Qt::CaseInsensitive), "OS2" }, 68 { QRegExp("Ar.*64", Qt::CaseInsensitive), "ArchLinux_64" }, 69 { QRegExp("Ar", Qt::CaseInsensitive), "ArchLinux" }, 70 { QRegExp("De.*64", Qt::CaseInsensitive), "Debian_64" }, 71 { QRegExp("De", Qt::CaseInsensitive), "Debian" }, 72 { QRegExp("(SU)|(No)", Qt::CaseInsensitive), "OpenSUSE" }, 73 { QRegExp("((SU)|(No)).*64", Qt::CaseInsensitive), "OpenSUSE_64" }, 74 { QRegExp("Fe.*64", Qt::CaseInsensitive), "Fedora_64" }, 75 { QRegExp("Fe", Qt::CaseInsensitive), "Fedora" }, 76 { QRegExp("Ge.*64", Qt::CaseInsensitive), "Gentoo_64" }, 77 { QRegExp("Ge", Qt::CaseInsensitive), "Gentoo" }, 78 { QRegExp("Man.*64", Qt::CaseInsensitive), "Mandriva_64" }, 79 { QRegExp("Man", Qt::CaseInsensitive), "Mandriva" }, 80 { QRegExp("Re.*64", Qt::CaseInsensitive), "RedHat_64" }, 81 { QRegExp("Re", Qt::CaseInsensitive), "RedHat" }, 82 { QRegExp("Tu", Qt::CaseInsensitive), "Turbolinux" }, 83 { QRegExp("Ub.*64", Qt::CaseInsensitive), "Ubuntu_64" }, 84 { QRegExp("Ub", Qt::CaseInsensitive), "Ubuntu" }, 85 { QRegExp("Xa.*64", Qt::CaseInsensitive), "Xandros_64" }, 86 { QRegExp("Xa", Qt::CaseInsensitive), "Xandros" }, 87 { QRegExp("Or.*64", Qt::CaseInsensitive), "Oracle_64" }, 88 { QRegExp("Or", Qt::CaseInsensitive), "Oracle" }, 89 { QRegExp("Li.*2.?2", Qt::CaseInsensitive), "Linux22" }, 90 { QRegExp("Li.*2.?4.*64", Qt::CaseInsensitive), "Linux24_64" }, 91 { QRegExp("Li.*2.?4", Qt::CaseInsensitive), "Linux24" }, 92 { QRegExp("Li.*2.?6.*64", Qt::CaseInsensitive), "Linux26_64" }, 93 { QRegExp("Li.*2.?6", Qt::CaseInsensitive), "Linux26" }, 94 { QRegExp("Li", Qt::CaseInsensitive), "Linux26" }, 95 { QRegExp("Fr.*B.*64", Qt::CaseInsensitive), "FreeBSD_64" }, 96 { QRegExp("Fr.*B", Qt::CaseInsensitive), "FreeBSD" }, 97 { QRegExp("Op.*B.*64", Qt::CaseInsensitive), "OpenBSD_64" }, 98 { QRegExp("Op.*B", Qt::CaseInsensitive), "OpenBSD" }, 99 { QRegExp("Ne.*B.*64", Qt::CaseInsensitive), "NetBSD_64" }, 100 { QRegExp("Ne.*B", Qt::CaseInsensitive), "NetBSD" }, 101 { QRegExp("Op.*So.*64", Qt::CaseInsensitive), "OpenSolaris_64" }, 102 { QRegExp("Op.*So", Qt::CaseInsensitive), "OpenSolaris" }, 103 { QRegExp("So.*64", Qt::CaseInsensitive), "Solaris_64" }, 104 { QRegExp("So", Qt::CaseInsensitive), "Solaris" }, 105 { QRegExp("QN", Qt::CaseInsensitive), "QNX" }, 106 { QRegExp("Mac.*64", Qt::CaseInsensitive), "MacOS_64" }, 107 { QRegExp("Mac", Qt::CaseInsensitive), "MacOS" }, 108 { QRegExp("Ot", Qt::CaseInsensitive), "Other" }, 109 }; 110 31 111 UINewVMWzd::UINewVMWzd(QWidget *pParent) : QIWizard(pParent) 32 112 { … … 92 172 registerField("type*", m_pTypeSelector, "type", SIGNAL(osTypeChanged())); 93 173 174 connect(m_pNameEditor, SIGNAL(textChanged(const QString&)), 175 this, SLOT(sltNameChanged(const QString&))); 176 94 177 /* Setup contents */ 95 178 m_pTypeSelector->activateLayout(); … … 115 198 /* 'Name' field should have focus initially */ 116 199 m_pNameEditor->setFocus(); 200 } 201 202 void UINewVMWzdPage2::sltNameChanged(const QString &strNewText) 203 { 204 /* Search for a matching OS type based on the string the user typed 205 * already. */ 206 for (size_t i=0; i < RT_ELEMENTS(gs_OSTypePattern); ++i) 207 if (strNewText.contains(gs_OSTypePattern[i].pattern)) 208 { 209 m_pTypeSelector->setType(vboxGlobal().vmGuestOSType(gs_OSTypePattern[i].pcstId)); 210 break; 211 } 117 212 } 118 213 -
trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UINewVMWzd.h
r26079 r26367 72 72 73 73 UINewVMWzdPage2(); 74 75 protected slots: 76 77 void sltNameChanged(const QString &strNewText); 74 78 75 79 protected:
Note:
See TracChangeset
for help on using the changeset viewer.