diff options
Diffstat (limited to 'src/VBox/Frontends/VirtualBox/src')
187 files changed, 1312 insertions, 858 deletions
diff --git a/src/VBox/Frontends/VirtualBox/src/UIMediumTypeChangeDialog.cpp b/src/VBox/Frontends/VirtualBox/src/UIMediumTypeChangeDialog.cpp index f1fdbf071..af9b02a6d 100644 --- a/src/VBox/Frontends/VirtualBox/src/UIMediumTypeChangeDialog.cpp +++ b/src/VBox/Frontends/VirtualBox/src/UIMediumTypeChangeDialog.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMediumTypeChangeDialog.cpp 38311 2011-08-04 13:08:39Z vboxsync $ */ +/* $Id: UIMediumTypeChangeDialog.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/VBoxAboutDlg.cpp b/src/VBox/Frontends/VirtualBox/src/VBoxAboutDlg.cpp index d1a9c7915..543bb3595 100644 --- a/src/VBox/Frontends/VirtualBox/src/VBoxAboutDlg.cpp +++ b/src/VBox/Frontends/VirtualBox/src/VBoxAboutDlg.cpp @@ -1,4 +1,4 @@ -/* $Id: VBoxAboutDlg.cpp 37762 2011-07-04 12:55:46Z vboxsync $ */ +/* $Id: VBoxAboutDlg.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/VBoxFBOverlay.cpp b/src/VBox/Frontends/VirtualBox/src/VBoxFBOverlay.cpp index 0e35a5fd4..654a9ed99 100644 --- a/src/VBox/Frontends/VirtualBox/src/VBoxFBOverlay.cpp +++ b/src/VBox/Frontends/VirtualBox/src/VBoxFBOverlay.cpp @@ -1,4 +1,4 @@ -/* $Id: VBoxFBOverlay.cpp 38311 2011-08-04 13:08:39Z vboxsync $ */ +/* $Id: VBoxFBOverlay.cpp $ */ /** @file * VBoxFBOverlay implementation */ diff --git a/src/VBox/Frontends/VirtualBox/src/VBoxFBQGL.cpp b/src/VBox/Frontends/VirtualBox/src/VBoxFBQGL.cpp index d449a70b9..793e3854e 100644 --- a/src/VBox/Frontends/VirtualBox/src/VBoxFBQGL.cpp +++ b/src/VBox/Frontends/VirtualBox/src/VBoxFBQGL.cpp @@ -1,4 +1,4 @@ -/* $Id: VBoxFBQGL.cpp 29794 2010-05-25 16:06:59Z vboxsync $ */ +/* $Id: VBoxFBQGL.cpp $ */ /** @file * VBoxFBQGL Opengl-based FrameBuffer implementation */ diff --git a/src/VBox/Frontends/VirtualBox/src/VBoxGLSupportInfo.cpp b/src/VBox/Frontends/VirtualBox/src/VBoxGLSupportInfo.cpp index fcded7777..67d603d5b 100644 --- a/src/VBox/Frontends/VirtualBox/src/VBoxGLSupportInfo.cpp +++ b/src/VBox/Frontends/VirtualBox/src/VBoxGLSupportInfo.cpp @@ -1,4 +1,4 @@ -/* $Id: VBoxGLSupportInfo.cpp 36386 2011-03-24 06:51:19Z vboxsync $ */ +/* $Id: VBoxGLSupportInfo.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/VBoxGlobalSettings.cpp b/src/VBox/Frontends/VirtualBox/src/VBoxGlobalSettings.cpp index 0c661da47..e46ad71d1 100644 --- a/src/VBox/Frontends/VirtualBox/src/VBoxGlobalSettings.cpp +++ b/src/VBox/Frontends/VirtualBox/src/VBoxGlobalSettings.cpp @@ -1,4 +1,4 @@ -/* $Id: VBoxGlobalSettings.cpp 37544 2011-06-17 13:54:47Z vboxsync $ */ +/* $Id: VBoxGlobalSettings.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/VBoxLicenseViewer.cpp b/src/VBox/Frontends/VirtualBox/src/VBoxLicenseViewer.cpp index 41823d738..1e6d537dc 100644 --- a/src/VBox/Frontends/VirtualBox/src/VBoxLicenseViewer.cpp +++ b/src/VBox/Frontends/VirtualBox/src/VBoxLicenseViewer.cpp @@ -1,4 +1,4 @@ -/* $Id: VBoxLicenseViewer.cpp 38311 2011-08-04 13:08:39Z vboxsync $ */ +/* $Id: VBoxLicenseViewer.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/VBoxMediaManagerDlg.cpp b/src/VBox/Frontends/VirtualBox/src/VBoxMediaManagerDlg.cpp index ff11788b7..8763837f2 100644 --- a/src/VBox/Frontends/VirtualBox/src/VBoxMediaManagerDlg.cpp +++ b/src/VBox/Frontends/VirtualBox/src/VBoxMediaManagerDlg.cpp @@ -1,4 +1,4 @@ -/* $Id: VBoxMediaManagerDlg.cpp 38311 2011-08-04 13:08:39Z vboxsync $ */ +/* $Id: VBoxMediaManagerDlg.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/VBoxMedium.cpp b/src/VBox/Frontends/VirtualBox/src/VBoxMedium.cpp index 1e8d38f94..8963715e3 100644 --- a/src/VBox/Frontends/VirtualBox/src/VBoxMedium.cpp +++ b/src/VBox/Frontends/VirtualBox/src/VBoxMedium.cpp @@ -1,4 +1,4 @@ -/* $Id: VBoxMedium.cpp 38311 2011-08-04 13:08:39Z vboxsync $ */ +/* $Id: VBoxMedium.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/VBoxSnapshotDetailsDlg.cpp b/src/VBox/Frontends/VirtualBox/src/VBoxSnapshotDetailsDlg.cpp index 0d7071dea..75264e300 100644 --- a/src/VBox/Frontends/VirtualBox/src/VBoxSnapshotDetailsDlg.cpp +++ b/src/VBox/Frontends/VirtualBox/src/VBoxSnapshotDetailsDlg.cpp @@ -1,4 +1,4 @@ -/* $Id: VBoxSnapshotDetailsDlg.cpp 38311 2011-08-04 13:08:39Z vboxsync $ */ +/* $Id: VBoxSnapshotDetailsDlg.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/VBoxTakeSnapshotDlg.cpp b/src/VBox/Frontends/VirtualBox/src/VBoxTakeSnapshotDlg.cpp index bf621c3c2..430341b67 100644 --- a/src/VBox/Frontends/VirtualBox/src/VBoxTakeSnapshotDlg.cpp +++ b/src/VBox/Frontends/VirtualBox/src/VBoxTakeSnapshotDlg.cpp @@ -1,4 +1,4 @@ -/* $Id: VBoxTakeSnapshotDlg.cpp 38311 2011-08-04 13:08:39Z vboxsync $ */ +/* $Id: VBoxTakeSnapshotDlg.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/VBoxUpdateDlg.cpp b/src/VBox/Frontends/VirtualBox/src/VBoxUpdateDlg.cpp deleted file mode 100644 index f135c261b..000000000 --- a/src/VBox/Frontends/VirtualBox/src/VBoxUpdateDlg.cpp +++ /dev/null @@ -1,465 +0,0 @@ -/** @file - * - * VBox frontends: Qt4 GUI ("VirtualBox"): - * VBoxUpdateDlg class implementation - */ - -/* - * Copyright (C) 2006-2011 Oracle Corporation - * - * This file is part of VirtualBox Open Source Edition (OSE), as - * available from http://www.virtualbox.org. This file is free software; - * you can redistribute it and/or modify it under the terms of the GNU - * General Public License (GPL) as published by the Free Software - * Foundation, in version 2 as it comes in the "COPYING" file of the - * VirtualBox OSE distribution. VirtualBox OSE is distributed in the - * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. - */ - -#ifdef VBOX_WITH_PRECOMPILED_HEADERS -#include "precomp.h" -#else /* !VBOX_WITH_PRECOMPILED_HEADERS */ -/* Global includes */ -#include <QNetworkAccessManager> -#include <QNetworkReply> -/* Local includes */ -#include "VBoxUpdateDlg.h" -#include "VBoxGlobal.h" -#include "UIMessageCenter.h" -#include "UIIconPool.h" -#include "VBoxUtils.h" -#endif /* !VBOX_WITH_PRECOMPILED_HEADERS */ - -/** - * This class is used to store VBox version data. - */ -class VBoxVersion -{ -public: - - VBoxVersion(const QString &strVersion) - : x(0), y(0), z(0) - { - QStringList versionStack = strVersion.split('.'); - if (versionStack.size() > 0) - x = versionStack[0].toInt(); - if (versionStack.size() > 1) - y = versionStack[1].toInt(); - if (versionStack.size() > 2) - z = versionStack[2].toInt(); - } - - bool operator<(const VBoxVersion &other) const - { - return (x < other.x) || - (x == other.x && y < other.y) || - (x == other.x && y == other.y && z < other.z); - } - - QString toString() const - { - return QString("%1.%2.%3").arg(x).arg(y).arg(z); - } - -private: - - int x; - int y; - int z; -}; - -/* VBoxUpdateData stuff: */ -QList<UpdateDay> VBoxUpdateData::m_dayList = QList<UpdateDay>(); - -void VBoxUpdateData::populate() -{ - m_dayList.clear(); - - /* To avoid re-translation complexity all - * have to be retranslated separately: */ - - /* Separately retranslate each day: */ - m_dayList << UpdateDay(VBoxUpdateDlg::tr("1 day"), "1 d"); - m_dayList << UpdateDay(VBoxUpdateDlg::tr("2 days"), "2 d"); - m_dayList << UpdateDay(VBoxUpdateDlg::tr("3 days"), "3 d"); - m_dayList << UpdateDay(VBoxUpdateDlg::tr("4 days"), "4 d"); - m_dayList << UpdateDay(VBoxUpdateDlg::tr("5 days"), "5 d"); - m_dayList << UpdateDay(VBoxUpdateDlg::tr("6 days"), "6 d"); - - /* Separately retranslate each week */ - m_dayList << UpdateDay(VBoxUpdateDlg::tr("1 week"), "1 w"); - m_dayList << UpdateDay(VBoxUpdateDlg::tr("2 weeks"), "2 w"); - m_dayList << UpdateDay(VBoxUpdateDlg::tr("3 weeks"), "3 w"); - - /* Separately retranslate each month */ - m_dayList << UpdateDay(VBoxUpdateDlg::tr("1 month"), "1 m"); -} - -QStringList VBoxUpdateData::list() -{ - QStringList result; - for (int i = 0; i < m_dayList.size(); ++i) - result << m_dayList[i].val; - return result; -} - -VBoxUpdateData::VBoxUpdateData(const QString &strData) - : m_strData(strData) - , m_periodIndex(Period1Day) - , m_branchIndex(BranchStable) -{ - decode(); -} - -VBoxUpdateData::VBoxUpdateData(PeriodType periodIndex, BranchType branchIndex) - : m_strData(QString()) - , m_periodIndex(periodIndex) - , m_branchIndex(branchIndex) -{ - encode(); -} - -bool VBoxUpdateData::isNecessary() -{ - return m_periodIndex != PeriodNever && QDate::currentDate() >= m_date; -} - -bool VBoxUpdateData::isNoNeedToCheck() -{ - return m_periodIndex == PeriodNever; -} - -QString VBoxUpdateData::data() const -{ - return m_strData; -} - -VBoxUpdateData::PeriodType VBoxUpdateData::periodIndex() const -{ - return m_periodIndex; -} - -QString VBoxUpdateData::date() const -{ - return m_periodIndex == PeriodNever ? VBoxUpdateDlg::tr("Never") - : m_date.toString(Qt::LocaleDate); -} - -VBoxUpdateData::BranchType VBoxUpdateData::branchIndex() const -{ - return m_branchIndex; -} - -QString VBoxUpdateData::branchName() const -{ - switch (m_branchIndex) - { - case BranchStable: - return "stable"; - case BranchAllRelease: - return "allrelease"; - case BranchWithBetas: - return "withbetas"; - } - return QString(); -} - -void VBoxUpdateData::decode() -{ - /* Parse standard values: */ - if (m_strData == "never") - m_periodIndex = PeriodNever; - /* Parse other values: */ - else - { - QStringList parser(m_strData.split(", ", QString::SkipEmptyParts)); - - /* Parse 'period' value: */ - if (parser.size() > 0) - { - if (m_dayList.isEmpty()) - populate(); - PeriodType index = (PeriodType)m_dayList.indexOf(UpdateDay(QString(), parser[0])); - m_periodIndex = index == PeriodUndefined ? Period1Day : index; - } - - /* Parse 'date' value: */ - if (parser.size() > 1) - { - QDate date = QDate::fromString(parser[1], Qt::ISODate); - m_date = date.isValid() ? date : QDate::currentDate(); - } - - /* Parse 'branch' value: */ - if (parser.size() > 2) - { - QString branch(parser[2]); - m_branchIndex = branch == "withbetas" ? BranchWithBetas : - branch == "allrelease" ? BranchAllRelease : BranchStable; - } - } -} - -void VBoxUpdateData::encode() -{ - /* Encode standard values: */ - if (m_periodIndex == PeriodNever) - m_strData = "never"; - /* Encode other values: */ - else - { - /* Encode 'period' value: */ - if (m_dayList.isEmpty()) - populate(); - QString remindPeriod = m_dayList[m_periodIndex].key; - - /* Encode 'date' value: */ - m_date = QDate::currentDate(); - QStringList parser(remindPeriod.split(' ')); - if (parser[1] == "d") - m_date = m_date.addDays(parser[0].toInt()); - else if (parser[1] == "w") - m_date = m_date.addDays(parser[0].toInt() * 7); - else if (parser[1] == "m") - m_date = m_date.addMonths(parser[0].toInt()); - QString remindDate = m_date.toString(Qt::ISODate); - - /* Encode 'branch' value: */ - QString branchValue = m_branchIndex == BranchWithBetas ? "withbetas" : - m_branchIndex == BranchAllRelease ? "allrelease" : "stable"; - - /* Composite m_strData: */ - m_strData = QString("%1, %2, %3").arg(remindPeriod, remindDate, branchValue); - } -} - -/* VBoxUpdateDlg stuff: */ -bool VBoxUpdateDlg::isNecessary() -{ - VBoxUpdateData data(vboxGlobal().virtualBox().GetExtraData(VBoxDefs::GUI_UpdateDate)); - return data.isNecessary(); -} - -VBoxUpdateDlg::VBoxUpdateDlg(VBoxUpdateDlg **ppSelf, bool fForceRun, QWidget *pParent) - : QIWithRetranslateUI<QDialog>(pParent) - , m_ppSelf(ppSelf) - , m_pNetworkManager(new QNetworkAccessManager(this)) - , m_url("http://update.virtualbox.org/query.php") - , m_fForceRun(fForceRun) -{ - /* Store external pointer to this dialog: */ - *m_ppSelf = this; - - /* Apply UI decorations: */ - Ui::VBoxUpdateDlg::setupUi(this); - - /* Apply window icons: */ - setWindowIcon(UIIconPool::iconSetFull(QSize(32, 32), QSize(16, 16), - ":/refresh_32px.png", ":/refresh_16px.png")); - - /* Setup other connections: */ - connect(mBtnCheck, SIGNAL(clicked()), this, SLOT(search())); - connect(mBtnFinish, SIGNAL(clicked()), this, SLOT(accept())); - connect(this, SIGNAL(sigDelayedAcception()), this, SLOT(accept()), Qt::QueuedConnection); - - /* Setup initial condition: */ - mPbCheck->setMinimumWidth(mLogoUpdate->width() + mLogoUpdate->frameWidth() * 2); - mPbCheck->hide(); - mTextSuccessInfo->hide(); - mTextFailureInfo->hide(); - mTextNotFoundInfo->hide(); - - /* Retranslate string constants: */ - retranslateUi(); -} - -VBoxUpdateDlg::~VBoxUpdateDlg() -{ - /* Erase dialog handle in config file: */ - vboxGlobal().virtualBox().SetExtraData(VBoxDefs::GUI_UpdateDlgWinID, QString()); - - /* Erase external pointer to this dialog: */ - *m_ppSelf = 0; -} - -void VBoxUpdateDlg::retranslateUi() -{ - /* Translate uic generated strings: */ - Ui::VBoxUpdateDlg::retranslateUi(this); - - /* For wizard update: */ - if (!isHidden()) - { - setWindowTitle(tr("VirtualBox Update Wizard")); - - mPageUpdateHdr->setText(tr("Check for Updates")); - mBtnCheck->setText(tr("Chec&k")); - mBtnCancel->setText(tr("Cancel")); - - mPageFinishHdr->setText(tr("Summary")); - mBtnFinish->setText(tr("&Close")); - - mTextUpdateInfo->setText(tr("<p>This wizard will connect to the VirtualBox " - "web-site and check if a newer version of " - "VirtualBox is available.</p><p>Use the " - "<b>Check</b> button to check for a new version " - "now or the <b>Cancel</b> button if you do not " - "want to perform this check.</p><p>You can run " - "this wizard at any time by choosing <b>Check " - "for Updates...</b> from the <b>Help</b> menu.</p>")); - - mTextSuccessInfo->setText(tr("<p>A new version of VirtualBox has been released! " - "Version <b>%1</b> is available at " - "<a href=\"http://www.virtualbox.org/\">virtualbox.org</a>.</p>" - "<p>You can download this version using the link:</p>" - "<p><a href=%2>%3</a></p>")); - - mTextFailureInfo->setText(tr("<p>Unable to obtain the new version information " - "due to the following network error:</p><p><b>%1</b></p>")); - - mTextNotFoundInfo->setText(tr("You are already running the most recent version of VirtualBox.")); - } -} - -void VBoxUpdateDlg::accept() -{ - /* Recalculate new update data: */ - VBoxUpdateData oldData(vboxGlobal().virtualBox().GetExtraData(VBoxDefs::GUI_UpdateDate)); - VBoxUpdateData newData(oldData.periodIndex(), oldData.branchIndex()); - vboxGlobal().virtualBox().SetExtraData(VBoxDefs::GUI_UpdateDate, newData.data()); - /* Call to base-class: */ - QDialog::accept(); -} - -void VBoxUpdateDlg::search() -{ - /* Calculate the count of checks left: */ - int cCount = 1; - QString strCount = vboxGlobal().virtualBox().GetExtraData(VBoxDefs::GUI_UpdateCheckCount); - if (!strCount.isEmpty()) - { - bool ok = false; - int c = strCount.toLongLong(&ok); - if (ok) cCount = c; - } - - /* Compose query: */ - QUrl url(m_url); - url.addQueryItem("platform", vboxGlobal().virtualBox().GetPackageType()); - /* Branding: Check whether we have a local branding file which tells us our version suffix "FOO" - (e.g. 3.06.54321_FOO) to identify this installation */ - if (vboxGlobal().brandingIsActive()) - { - url.addQueryItem("version", QString("%1_%2_%3").arg(vboxGlobal().virtualBox().GetVersion()) - .arg(vboxGlobal().virtualBox().GetRevision()) - .arg(vboxGlobal().brandingGetKey("VerSuffix"))); - } - else - { - /* Use hard coded version set by VBOX_VERSION_STRING: */ - url.addQueryItem("version", QString("%1_%2").arg(vboxGlobal().virtualBox().GetVersion()) - .arg(vboxGlobal().virtualBox().GetRevision())); - } - url.addQueryItem("count", QString::number(cCount)); - url.addQueryItem("branch", VBoxUpdateData(vboxGlobal().virtualBox(). - GetExtraData(VBoxDefs::GUI_UpdateDate)).branchName()); - QString strUserAgent(QString("VirtualBox %1 <%2>") - .arg(vboxGlobal().virtualBox().GetVersion()) - .arg(vboxGlobal().platformInfo())); - - /* Show progress bar: */ - mPbCheck->show(); - - /* Setup GET request: */ - QNetworkRequest request; - request.setUrl(url); - request.setRawHeader("User-Agent", strUserAgent.toAscii()); - QNetworkReply *pReply = m_pNetworkManager->get(request); - connect(pReply, SIGNAL(finished()), this, SLOT(sltHandleReply())); - connect(pReply, SIGNAL(sslErrors(QList<QSslError>)), pReply, SLOT(ignoreSslErrors())); -} - -void VBoxUpdateDlg::sltHandleReply() -{ - /* Get corresponding network reply object: */ - QNetworkReply *pReply = qobject_cast<QNetworkReply*>(sender()); - /* And ask it for suicide: */ - pReply->deleteLater(); - - /* Hide progress bar: */ - mPbCheck->hide(); - - /* Handle normal result: */ - if (pReply->error() == QNetworkReply::NoError) - { - /* Deserialize incoming data: */ - QString strResponseData(pReply->readAll()); - - /* Newer version of necessary package found: */ - if (strResponseData.indexOf(QRegExp("^\\d+\\.\\d+\\.\\d+ \\S+$")) == 0) - { - QStringList response = strResponseData.split(" ", QString::SkipEmptyParts); - - /* For background update: */ - if (isHidden()) - { - msgCenter().showUpdateSuccess(vboxGlobal().mainWindow(), response[0], response[1]); - acceptLater(); - } - /* For wizard update: */ - else - { - mTextSuccessInfo->setText(mTextSuccessInfo->text().arg(response[0], response[1], response[1])); - mTextSuccessInfo->show(); - mPageStack->setCurrentIndex(1); - } - } - /* No newer version of necessary package found: */ - else - { - /* For background update: */ - if (isHidden()) - { - if (m_fForceRun) - msgCenter().showUpdateNotFound(vboxGlobal().mainWindow()); - acceptLater(); - } - /* For wizard update: */ - else - { - mTextNotFoundInfo->show(); - mPageStack->setCurrentIndex(1); - } - } - - /* Save left count of checks: */ - int cCount = 1; - QString strCount = vboxGlobal().virtualBox().GetExtraData(VBoxDefs::GUI_UpdateCheckCount); - if (!strCount.isEmpty()) - { - bool ok = false; - int c = strCount.toLongLong(&ok); - if (ok) cCount = c; - } - vboxGlobal().virtualBox().SetExtraData(VBoxDefs::GUI_UpdateCheckCount, QString("%1").arg((qulonglong)cCount + 1)); - } - /* Handle errors: */ - else - { - /* For background update: */ - if (isHidden()) - { - if (m_fForceRun) - msgCenter().showUpdateFailure(vboxGlobal().mainWindow(), pReply->errorString()); - acceptLater(); - } - /* For wizard update: */ - else - { - mTextFailureInfo->setText(mTextFailureInfo->text().arg(pReply->errorString())); - mTextFailureInfo->show(); - mPageStack->setCurrentIndex(1); - } - } -} - diff --git a/src/VBox/Frontends/VirtualBox/src/VBoxVMInformationDlg.cpp b/src/VBox/Frontends/VirtualBox/src/VBoxVMInformationDlg.cpp index 80c249bb3..dfa5be24d 100644 --- a/src/VBox/Frontends/VirtualBox/src/VBoxVMInformationDlg.cpp +++ b/src/VBox/Frontends/VirtualBox/src/VBoxVMInformationDlg.cpp @@ -1,4 +1,4 @@ -/* $Id: VBoxVMInformationDlg.cpp 35761 2011-01-28 13:19:26Z vboxsync $ */ +/* $Id: VBoxVMInformationDlg.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/VBoxVMLogViewer.cpp b/src/VBox/Frontends/VirtualBox/src/VBoxVMLogViewer.cpp index 8c17ea424..448e026d5 100644 --- a/src/VBox/Frontends/VirtualBox/src/VBoxVMLogViewer.cpp +++ b/src/VBox/Frontends/VirtualBox/src/VBoxVMLogViewer.cpp @@ -1,4 +1,4 @@ -/* $Id: VBoxVMLogViewer.cpp 38311 2011-08-04 13:08:39Z vboxsync $ */ +/* $Id: VBoxVMLogViewer.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/extensions/QIAdvancedSlider.cpp b/src/VBox/Frontends/VirtualBox/src/extensions/QIAdvancedSlider.cpp index d4f9bee6b..5a69aeac6 100644 --- a/src/VBox/Frontends/VirtualBox/src/extensions/QIAdvancedSlider.cpp +++ b/src/VBox/Frontends/VirtualBox/src/extensions/QIAdvancedSlider.cpp @@ -1,4 +1,4 @@ -/* $Id: QIAdvancedSlider.cpp 28800 2010-04-27 08:22:32Z vboxsync $ */ +/* $Id: QIAdvancedSlider.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/extensions/QIArrowButtonPress.cpp b/src/VBox/Frontends/VirtualBox/src/extensions/QIArrowButtonPress.cpp index 987ad299d..773adb8c6 100644 --- a/src/VBox/Frontends/VirtualBox/src/extensions/QIArrowButtonPress.cpp +++ b/src/VBox/Frontends/VirtualBox/src/extensions/QIArrowButtonPress.cpp @@ -1,4 +1,4 @@ -/* $Id: QIArrowButtonPress.cpp 33540 2010-10-28 09:27:05Z vboxsync $ */ +/* $Id: QIArrowButtonPress.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/extensions/QIArrowButtonSwitch.cpp b/src/VBox/Frontends/VirtualBox/src/extensions/QIArrowButtonSwitch.cpp index 4075a22ee..062cefb99 100644 --- a/src/VBox/Frontends/VirtualBox/src/extensions/QIArrowButtonSwitch.cpp +++ b/src/VBox/Frontends/VirtualBox/src/extensions/QIArrowButtonSwitch.cpp @@ -1,4 +1,4 @@ -/* $Id: QIArrowButtonSwitch.cpp 33540 2010-10-28 09:27:05Z vboxsync $ */ +/* $Id: QIArrowButtonSwitch.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/extensions/QIArrowSplitter.cpp b/src/VBox/Frontends/VirtualBox/src/extensions/QIArrowSplitter.cpp index 64bf62196..b55758ff9 100644 --- a/src/VBox/Frontends/VirtualBox/src/extensions/QIArrowSplitter.cpp +++ b/src/VBox/Frontends/VirtualBox/src/extensions/QIArrowSplitter.cpp @@ -1,4 +1,4 @@ -/* $Id: QIArrowSplitter.cpp 28800 2010-04-27 08:22:32Z vboxsync $ */ +/* $Id: QIArrowSplitter.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/extensions/QIDialog.cpp b/src/VBox/Frontends/VirtualBox/src/extensions/QIDialog.cpp index 527bda80d..46f10cb1c 100644 --- a/src/VBox/Frontends/VirtualBox/src/extensions/QIDialog.cpp +++ b/src/VBox/Frontends/VirtualBox/src/extensions/QIDialog.cpp @@ -1,4 +1,4 @@ -/* $Id: QIDialog.cpp 28800 2010-04-27 08:22:32Z vboxsync $ */ +/* $Id: QIDialog.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/extensions/QIDialogButtonBox.cpp b/src/VBox/Frontends/VirtualBox/src/extensions/QIDialogButtonBox.cpp index b372a1283..84cfca887 100644 --- a/src/VBox/Frontends/VirtualBox/src/extensions/QIDialogButtonBox.cpp +++ b/src/VBox/Frontends/VirtualBox/src/extensions/QIDialogButtonBox.cpp @@ -1,4 +1,4 @@ -/* $Id: QIDialogButtonBox.cpp 30356 2010-06-22 08:42:22Z vboxsync $ */ +/* $Id: QIDialogButtonBox.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/extensions/QIFileDialog.cpp b/src/VBox/Frontends/VirtualBox/src/extensions/QIFileDialog.cpp index ace6753bd..9ff1008bd 100644 --- a/src/VBox/Frontends/VirtualBox/src/extensions/QIFileDialog.cpp +++ b/src/VBox/Frontends/VirtualBox/src/extensions/QIFileDialog.cpp @@ -1,4 +1,4 @@ -/* $Id: QIFileDialog.cpp 37629 2011-06-24 12:46:48Z vboxsync $ */ +/* $Id: QIFileDialog.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/extensions/QILabel.cpp b/src/VBox/Frontends/VirtualBox/src/extensions/QILabel.cpp index 4e51505e5..3898d7d63 100644 --- a/src/VBox/Frontends/VirtualBox/src/extensions/QILabel.cpp +++ b/src/VBox/Frontends/VirtualBox/src/extensions/QILabel.cpp @@ -1,4 +1,4 @@ -/* $Id: QILabel.cpp 33540 2010-10-28 09:27:05Z vboxsync $ */ +/* $Id: QILabel.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/extensions/QILabelSeparator.cpp b/src/VBox/Frontends/VirtualBox/src/extensions/QILabelSeparator.cpp index 2f1fc1de9..a0ebcfb7f 100644 --- a/src/VBox/Frontends/VirtualBox/src/extensions/QILabelSeparator.cpp +++ b/src/VBox/Frontends/VirtualBox/src/extensions/QILabelSeparator.cpp @@ -1,4 +1,4 @@ -/* $Id: QILabelSeparator.cpp 28800 2010-04-27 08:22:32Z vboxsync $ */ +/* $Id: QILabelSeparator.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/extensions/QILineEdit.cpp b/src/VBox/Frontends/VirtualBox/src/extensions/QILineEdit.cpp index fc5c311c2..42eaf8e20 100644 --- a/src/VBox/Frontends/VirtualBox/src/extensions/QILineEdit.cpp +++ b/src/VBox/Frontends/VirtualBox/src/extensions/QILineEdit.cpp @@ -1,4 +1,4 @@ -/* $Id: QILineEdit.cpp 28800 2010-04-27 08:22:32Z vboxsync $ */ +/* $Id: QILineEdit.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/extensions/QIListView.cpp b/src/VBox/Frontends/VirtualBox/src/extensions/QIListView.cpp index 6e4023e25..54ff879f1 100644 --- a/src/VBox/Frontends/VirtualBox/src/extensions/QIListView.cpp +++ b/src/VBox/Frontends/VirtualBox/src/extensions/QIListView.cpp @@ -1,4 +1,4 @@ -/* $Id: QIListView.cpp 34064 2010-11-15 11:12:37Z vboxsync $ */ +/* $Id: QIListView.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/extensions/QIMainDialog.cpp b/src/VBox/Frontends/VirtualBox/src/extensions/QIMainDialog.cpp index c1b5ead58..8f8355028 100644 --- a/src/VBox/Frontends/VirtualBox/src/extensions/QIMainDialog.cpp +++ b/src/VBox/Frontends/VirtualBox/src/extensions/QIMainDialog.cpp @@ -1,4 +1,4 @@ -/* $Id: QIMainDialog.cpp 35131 2010-12-15 13:19:00Z vboxsync $ */ +/* $Id: QIMainDialog.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/extensions/QIMessageBox.cpp b/src/VBox/Frontends/VirtualBox/src/extensions/QIMessageBox.cpp index 7846abcee..10df2e2d7 100644 --- a/src/VBox/Frontends/VirtualBox/src/extensions/QIMessageBox.cpp +++ b/src/VBox/Frontends/VirtualBox/src/extensions/QIMessageBox.cpp @@ -1,4 +1,4 @@ -/* $Id: QIMessageBox.cpp 38373 2011-08-09 10:25:57Z vboxsync $ */ +/* $Id: QIMessageBox.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/extensions/QIRichToolButton.cpp b/src/VBox/Frontends/VirtualBox/src/extensions/QIRichToolButton.cpp index 5f41fd837..fe776077d 100644 --- a/src/VBox/Frontends/VirtualBox/src/extensions/QIRichToolButton.cpp +++ b/src/VBox/Frontends/VirtualBox/src/extensions/QIRichToolButton.cpp @@ -1,4 +1,4 @@ -/* $Id: QIRichToolButton.cpp 28800 2010-04-27 08:22:32Z vboxsync $ */ +/* $Id: QIRichToolButton.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/extensions/QISplitter.cpp b/src/VBox/Frontends/VirtualBox/src/extensions/QISplitter.cpp index 9af79a277..4ebdf9b29 100644 --- a/src/VBox/Frontends/VirtualBox/src/extensions/QISplitter.cpp +++ b/src/VBox/Frontends/VirtualBox/src/extensions/QISplitter.cpp @@ -1,4 +1,4 @@ -/* $Id: QISplitter.cpp 30868 2010-07-16 09:42:12Z vboxsync $ */ +/* $Id: QISplitter.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/extensions/QIStateIndicator.cpp b/src/VBox/Frontends/VirtualBox/src/extensions/QIStateIndicator.cpp index 15ea3531b..5cbb21073 100644 --- a/src/VBox/Frontends/VirtualBox/src/extensions/QIStateIndicator.cpp +++ b/src/VBox/Frontends/VirtualBox/src/extensions/QIStateIndicator.cpp @@ -1,4 +1,4 @@ -/* $Id: QIStateIndicator.cpp 33540 2010-10-28 09:27:05Z vboxsync $ */ +/* $Id: QIStateIndicator.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/extensions/QIStatusBar.cpp b/src/VBox/Frontends/VirtualBox/src/extensions/QIStatusBar.cpp index 42cea93de..6aa7bde06 100644 --- a/src/VBox/Frontends/VirtualBox/src/extensions/QIStatusBar.cpp +++ b/src/VBox/Frontends/VirtualBox/src/extensions/QIStatusBar.cpp @@ -1,4 +1,4 @@ -/* $Id: QIStatusBar.cpp 28800 2010-04-27 08:22:32Z vboxsync $ */ +/* $Id: QIStatusBar.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/extensions/QITableView.cpp b/src/VBox/Frontends/VirtualBox/src/extensions/QITableView.cpp index fb51a5b79..964cf5d1f 100644 --- a/src/VBox/Frontends/VirtualBox/src/extensions/QITableView.cpp +++ b/src/VBox/Frontends/VirtualBox/src/extensions/QITableView.cpp @@ -1,4 +1,4 @@ -/* $Id: QITableView.cpp 31533 2010-08-10 13:08:56Z vboxsync $ */ +/* $Id: QITableView.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/extensions/QITreeView.cpp b/src/VBox/Frontends/VirtualBox/src/extensions/QITreeView.cpp index 2ab67624b..7c42e72bf 100644 --- a/src/VBox/Frontends/VirtualBox/src/extensions/QITreeView.cpp +++ b/src/VBox/Frontends/VirtualBox/src/extensions/QITreeView.cpp @@ -1,4 +1,4 @@ -/* $Id: QITreeView.cpp 28800 2010-04-27 08:22:32Z vboxsync $ */ +/* $Id: QITreeView.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/extensions/QITreeWidget.cpp b/src/VBox/Frontends/VirtualBox/src/extensions/QITreeWidget.cpp index af057d911..e03966a78 100644 --- a/src/VBox/Frontends/VirtualBox/src/extensions/QITreeWidget.cpp +++ b/src/VBox/Frontends/VirtualBox/src/extensions/QITreeWidget.cpp @@ -1,4 +1,4 @@ -/* $Id: QITreeWidget.cpp 37610 2011-06-23 12:26:14Z vboxsync $ */ +/* $Id: QITreeWidget.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/extensions/QIWidgetValidator.cpp b/src/VBox/Frontends/VirtualBox/src/extensions/QIWidgetValidator.cpp index e8d54ec65..012c4aa75 100644 --- a/src/VBox/Frontends/VirtualBox/src/extensions/QIWidgetValidator.cpp +++ b/src/VBox/Frontends/VirtualBox/src/extensions/QIWidgetValidator.cpp @@ -1,4 +1,4 @@ -/* $Id: QIWidgetValidator.cpp 28800 2010-04-27 08:22:32Z vboxsync $ */ +/* $Id: QIWidgetValidator.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/extensions/QIWizard.cpp b/src/VBox/Frontends/VirtualBox/src/extensions/QIWizard.cpp index 85ebfeade..d2bfaa7f0 100644 --- a/src/VBox/Frontends/VirtualBox/src/extensions/QIWizard.cpp +++ b/src/VBox/Frontends/VirtualBox/src/extensions/QIWizard.cpp @@ -1,4 +1,4 @@ -/* $Id: QIWizard.cpp 35234 2010-12-20 09:40:31Z vboxsync $ */ +/* $Id: QIWizard.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/globals/COMDefs.cpp b/src/VBox/Frontends/VirtualBox/src/globals/COMDefs.cpp index 3543defcf..3eee51917 100644 --- a/src/VBox/Frontends/VirtualBox/src/globals/COMDefs.cpp +++ b/src/VBox/Frontends/VirtualBox/src/globals/COMDefs.cpp @@ -1,4 +1,4 @@ -/* $Id: COMDefs.cpp 37015 2011-05-09 14:11:00Z vboxsync $ */ +/* $Id: COMDefs.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.cpp b/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.cpp index 322765f04..910c6b0dd 100644 --- a/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.cpp +++ b/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.cpp @@ -1,4 +1,4 @@ -/* $Id: UIActionPool.cpp 38355 2011-08-08 15:27:10Z vboxsync $ */ +/* $Id: UIActionPool.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/globals/UIExtraDataEventHandler.cpp b/src/VBox/Frontends/VirtualBox/src/globals/UIExtraDataEventHandler.cpp index 936d27425..24d7763bb 100644 --- a/src/VBox/Frontends/VirtualBox/src/globals/UIExtraDataEventHandler.cpp +++ b/src/VBox/Frontends/VirtualBox/src/globals/UIExtraDataEventHandler.cpp @@ -1,4 +1,4 @@ -/* $Id: UIExtraDataEventHandler.cpp 35722 2011-01-26 16:37:16Z vboxsync $ */ +/* $Id: UIExtraDataEventHandler.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/globals/UIIconPool.cpp b/src/VBox/Frontends/VirtualBox/src/globals/UIIconPool.cpp index 1ce6a6bf8..7caaf05d5 100644 --- a/src/VBox/Frontends/VirtualBox/src/globals/UIIconPool.cpp +++ b/src/VBox/Frontends/VirtualBox/src/globals/UIIconPool.cpp @@ -1,4 +1,4 @@ -/* $Id: UIIconPool.cpp 30206 2010-06-15 15:41:05Z vboxsync $ */ +/* $Id: UIIconPool.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/globals/UIImageTools.cpp b/src/VBox/Frontends/VirtualBox/src/globals/UIImageTools.cpp index fa4e996f1..5a94870b5 100644 --- a/src/VBox/Frontends/VirtualBox/src/globals/UIImageTools.cpp +++ b/src/VBox/Frontends/VirtualBox/src/globals/UIImageTools.cpp @@ -1,4 +1,4 @@ -/* $Id: UIImageTools.cpp 35424 2011-01-07 13:05:41Z vboxsync $ */ +/* $Id: UIImageTools.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/globals/UIMainEventListener.cpp b/src/VBox/Frontends/VirtualBox/src/globals/UIMainEventListener.cpp index 90e27ec8a..b6356c483 100644 --- a/src/VBox/Frontends/VirtualBox/src/globals/UIMainEventListener.cpp +++ b/src/VBox/Frontends/VirtualBox/src/globals/UIMainEventListener.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMainEventListener.cpp 37712 2011-06-30 14:11:14Z vboxsync $ */ +/* $Id: UIMainEventListener.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp b/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp index 622cf89b0..fe5dc163f 100644 --- a/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp +++ b/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMessageCenter.cpp 38337 2011-08-08 09:05:36Z vboxsync $ */ +/* $Id: UIMessageCenter.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): @@ -21,6 +21,7 @@ #include <QDir> #include <QDesktopWidget> #include <QFileInfo> +#include <QLocale> #include <QThread> #ifdef Q_WS_MAC # include <QPushButton> @@ -1702,14 +1703,14 @@ void UIMessageCenter::cannotMountGuestAdditions(const QString &strMachineName) .arg(strMachineName)); } -bool UIMessageCenter::confirmDownloadAdditions(const QString &strUrl, - ulong uSize) +bool UIMessageCenter::confirmDownloadAdditions(const QString &strUrl, qulonglong uSize) { + QLocale loc(VBoxGlobal::languageId()); return messageOkCancel(mainMachineWindowShown(), Question, tr("<p>Are you sure you want to download the VirtualBox " "Guest Additions CD image from " "<nobr><a href=\"%1\">%2</a></nobr> " - "(size %3 bytes)?</p>").arg(strUrl).arg(strUrl).arg(uSize), + "(size %3 bytes)?</p>").arg(strUrl).arg(strUrl).arg(loc.toString(uSize)), 0, /* pcszAutoConfirmId */ tr("Download", "additions")); } @@ -1747,13 +1748,14 @@ bool UIMessageCenter::askAboutUserManualDownload(const QString &strMissedLocatio tr("Download", "additions")); } -bool UIMessageCenter::confirmUserManualDownload(const QString &strURL, ulong uSize) +bool UIMessageCenter::confirmUserManualDownload(const QString &strURL, qulonglong uSize) { + QLocale loc(VBoxGlobal::languageId()); return messageOkCancel(mainWindowShown(), Question, tr("<p>Are you sure you want to download the VirtualBox " "User Manual from " "<nobr><a href=\"%1\">%2</a></nobr> " - "(size %3 bytes)?</p>").arg(strURL).arg(strURL).arg(uSize), + "(size %3 bytes)?</p>").arg(strURL).arg(strURL).arg(loc.toString(uSize)), 0, /* Auto-confirm Id */ tr("Download", "additions")); } @@ -1787,6 +1789,57 @@ void UIMessageCenter::warnAboutUserManualCantBeSaved(const QString &strURL, cons .arg(strURL).arg(strURL).arg(strTarget)); } +bool UIMessageCenter::proposeDownloadExtensionPack(const QString &strExtPackName, const QString &strExtPackVersion) +{ + return messageOkCancel(mainWindowShown(), Question, + tr("<p>You have an old version (%1) of the <b><nobr>%2</nobr></b> installed.</p>" + "<p>Do you wish to download latest one from the Internet?</p>") + .arg(strExtPackVersion).arg(strExtPackName), + 0, /* Auto-confirm Id */ + tr("Download", "extension pack")); +} + +bool UIMessageCenter::confirmDownloadExtensionPack(const QString &strExtPackName, const QString &strURL, qulonglong uSize) +{ + QLocale loc(VBoxGlobal::languageId()); + return messageOkCancel(mainWindowShown(), Question, + tr("<p>Are you sure you want to download the <b><nobr>%1</nobr></b> " + "from <nobr><a href=\"%2\">%2</a></nobr> (size %3 bytes)?</p>") + .arg(strExtPackName, strURL, loc.toString(uSize)), + 0, /* Auto-confirm Id */ + tr("Download", "extension pack")); +} + +bool UIMessageCenter::proposeInstallExtentionPack(const QString &strExtPackName, const QString &strFrom, const QString &strTo) +{ + return messageOkCancel(mainWindowShown(), Question, + tr("<p>The <b><nobr>%1</nobr></b> has been " + "successfully downloaded from <nobr><a href=\"%2\">%2</a></nobr> " + "and saved locally as <nobr><b>%3</b>.</nobr></p>" + "<p>Do you wish to install this extension pack?</p>") + .arg(strExtPackName, strFrom, strTo), + 0, /* Auto-confirm Id */ + tr ("Install", "extension pack")); +} + +void UIMessageCenter::warnAboutExtentionPackCantBeSaved(const QString &strExtPackName, const QString &strFrom, const QString &strTo) +{ + message(mainWindowShown(), Error, + tr("<p>The <b><nobr>%1</nobr></b> has been " + "successfully downloaded from <nobr><a href=\"%2\">%2</a></nobr> " + "but can't be saved locally as <nobr><b>%3</b>.</nobr></p>" + "<p>Please choose another location for that file.</p>") + .arg(strExtPackName, strFrom, strTo)); +} + +void UIMessageCenter::cannotDownloadExtensionPack(const QString &strExtPackName, const QString &strFrom, const QString &strError) +{ + message(mainWindowShown(), Error, + tr("<p>Failed to download the <b><nobr>%1</nobr></b> " + "from <nobr><a href=\"%2\">%2</a>.</nobr></p><p>%3</p>") + .arg(strExtPackName, strFrom, strError)); +} + void UIMessageCenter::cannotConnectRegister(QWidget *pParent, const QString &strUrl, const QString &strReason) @@ -2833,7 +2886,7 @@ void UIMessageCenter::sltShowHelpHelpDialog() UIDownloaderUserManual *pDl = UIDownloaderUserManual::create(); /* Configure User Manual downloader: */ CVirtualBox vbox = vboxGlobal().virtualBox(); - pDl->addSource(QString("http://download.virtualbox.org/virtualbox/%1/").arg(vbox.GetVersion().remove("_OSE")) + strShortFileName); + pDl->addSource(QString("http://download.virtualbox.org/virtualbox/%1/").arg(vboxGlobal().vboxVersionStringNormalized()) + strShortFileName); pDl->addSource(QString("http://download.virtualbox.org/virtualbox/") + strShortFileName); pDl->setTarget(strUserManualFileName2); pDl->setParentWidget(mainWindowShown()); diff --git a/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h b/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h index bf1ad991a..602b54812 100644 --- a/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h +++ b/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h @@ -299,16 +299,22 @@ public: int cannotFindGuestAdditions(const QString &strSrc1, const QString &strSrc2); void cannotDownloadGuestAdditions(const QString &strUrl, const QString &strReason); void cannotMountGuestAdditions(const QString &strMachineName); - bool confirmDownloadAdditions(const QString &strUrl, ulong uSize); + bool confirmDownloadAdditions(const QString &strUrl, qulonglong uSize); bool confirmMountAdditions(const QString &strUrl, const QString &strSrc); void warnAboutAdditionsCantBeSaved(const QString &strTarget); bool askAboutUserManualDownload(const QString &strMissedLocation); - bool confirmUserManualDownload(const QString &strURL, ulong uSize); + bool confirmUserManualDownload(const QString &strURL, qulonglong uSize); void warnAboutUserManualCantBeDownloaded(const QString &strURL, const QString &strReason); void warnAboutUserManualDownloaded(const QString &strURL, const QString &strTarget); void warnAboutUserManualCantBeSaved(const QString &strURL, const QString &strTarget); + bool proposeDownloadExtensionPack(const QString &strExtPackName, const QString &strExtPackVersion); + bool confirmDownloadExtensionPack(const QString &strExtPackName, const QString &strURL, qulonglong uSize); + bool proposeInstallExtentionPack(const QString &strExtPackName, const QString &strFrom, const QString &strTo); + void warnAboutExtentionPackCantBeSaved(const QString &strExtPackName, const QString &strFrom, const QString &strTo); + void cannotDownloadExtensionPack(const QString &strExtPackName, const QString &strFrom, const QString &strError); + void cannotConnectRegister(QWidget *pParent, const QString &strUrl, const QString &strReason); diff --git a/src/VBox/Frontends/VirtualBox/src/globals/VBoxDefs.cpp b/src/VBox/Frontends/VirtualBox/src/globals/VBoxDefs.cpp index 134ccb80f..5b775ede0 100644 --- a/src/VBox/Frontends/VirtualBox/src/globals/VBoxDefs.cpp +++ b/src/VBox/Frontends/VirtualBox/src/globals/VBoxDefs.cpp @@ -1,4 +1,4 @@ -/* $Id: VBoxDefs.cpp 35897 2011-02-08 13:25:30Z vboxsync $ */ +/* $Id: VBoxDefs.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): @@ -23,6 +23,10 @@ /* Global includes */ #include <QStringList> +/* VBoxGlobalDefs stuff: */ +const char* VBoxGlobalDefs::UI_ExtPackName = "Oracle VM VirtualBox Extension Pack"; + +/* VBoxDefs stuff: */ const char* VBoxDefs::GUI_LastWindowPosition = "GUI/LastWindowPosition"; const char* VBoxDefs::GUI_LastNormalWindowPosition = "GUI/LastNormalWindowPosition"; const char* VBoxDefs::GUI_LastScaleWindowPosition = "GUI/LastScaleWindowPosition"; @@ -43,6 +47,7 @@ const char* VBoxDefs::GUI_MiniToolBarAlignment = "GUI/MiniToolBarAlignment"; const char* VBoxDefs::GUI_MiniToolBarAutoHide = "GUI/MiniToolBarAutoHide"; const char* VBoxDefs::GUI_LastCloseAction = "GUI/LastCloseAction"; const char* VBoxDefs::GUI_RestrictedCloseActions = "GUI/RestrictedCloseActions"; +const char* VBoxDefs::GUI_CloseActionHook = "GUI/CloseActionHook"; const char* VBoxDefs::GUI_SuppressMessages = "GUI/SuppressMessages"; const char* VBoxDefs::GUI_PermanentSharedFoldersAtRuntime = "GUI/PermanentSharedFoldersAtRuntime"; const char* VBoxDefs::GUI_LanguageId = "GUI/LanguageID"; diff --git a/src/VBox/Frontends/VirtualBox/src/globals/VBoxDefs.h b/src/VBox/Frontends/VirtualBox/src/globals/VBoxDefs.h index 8c9932814..87e2c145c 100644 --- a/src/VBox/Frontends/VirtualBox/src/globals/VBoxDefs.h +++ b/src/VBox/Frontends/VirtualBox/src/globals/VBoxDefs.h @@ -47,6 +47,15 @@ #define SIZEOF_ARRAY(a) (sizeof(a) / sizeof(a[0])) #endif +/** + * Common global VBox namespace. + * Later it will replace VBoxDefs struct used as global VBox namespace. + */ +namespace VBoxGlobalDefs +{ + extern const char *UI_ExtPackName; +} + /** Common namespace for all enums */ struct VBoxDefs { @@ -118,6 +127,7 @@ struct VBoxDefs static const char* GUI_MiniToolBarAutoHide; static const char* GUI_LastCloseAction; static const char* GUI_RestrictedCloseActions; + static const char* GUI_CloseActionHook; static const char* GUI_SuppressMessages; static const char* GUI_PermanentSharedFoldersAtRuntime; static const char* GUI_LanguageId; diff --git a/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp b/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp index 478353086..f446d9bcd 100644 --- a/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp +++ b/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp @@ -1,4 +1,4 @@ -/* $Id: VBoxGlobal.cpp 38421 2011-08-11 14:55:02Z vboxsync $ */ +/* $Id: VBoxGlobal.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): @@ -28,16 +28,18 @@ #include "QIMessageBox.h" #include "QIDialogButtonBox.h" #include "UIIconPool.h" +#include "UIActionPoolSelector.h" +#include "UIActionPoolRuntime.h" #include "UIExtraDataEventHandler.h" #include "QIFileDialog.h" #include "UINetworkManager.h" +#include "UIUpdateManager.h" #include "UIMachine.h" #include "UISession.h" #ifdef VBOX_WITH_REGISTRATION # include "UIRegistrationWzd.h" #endif -#include "VBoxUpdateDlg.h" #ifdef VBOX_WITH_VIDEOHWACCEL # include "VBoxFBOverlay.h" #endif /* VBOX_WITH_VIDEOHWACCEL */ @@ -270,7 +272,6 @@ VBoxGlobal::VBoxGlobal() #ifdef VBOX_WITH_REGISTRATION , mRegDlg (NULL) #endif - , mUpdDlg (NULL) #ifdef VBOX_GUI_WITH_SYSTRAY , mIsTrayMenu (false) , mIncreasedWindowCounter (false) @@ -374,6 +375,16 @@ uint VBoxGlobal::qtCTVersion() ct_ver_str.section ('.', 2, 2).toInt(); } +QString VBoxGlobal::vboxVersionString() const +{ + return mVBox.GetVersion(); +} + +QString VBoxGlobal::vboxVersionStringNormalized() const +{ + return vboxVersionString().remove(VBOX_BUILD_PUBLISHER); +} + bool VBoxGlobal::isBeta() const { return mVBox.GetVersion().contains("BETA", Qt::CaseInsensitive); @@ -4466,7 +4477,10 @@ quint64 VBoxGlobal::required3DWddmOffscreenVideoMemory(const QString &strGuestOS /* static */ bool VBoxGlobal::isWddmCompatibleOsType(const QString &strGuestOSTypeId) { - return strGuestOSTypeId.startsWith("WindowsVista") || strGuestOSTypeId.startsWith("Windows7") || strGuestOSTypeId.startsWith("Windows2008"); + return strGuestOSTypeId.startsWith("WindowsVista") + || strGuestOSTypeId.startsWith("Windows7") + || strGuestOSTypeId.startsWith("Windows8") + || strGuestOSTypeId.startsWith("Windows2008"); } #endif /* VBOX_WITH_CRHGSMI */ @@ -4612,67 +4626,6 @@ void VBoxGlobal::showRegistrationDialog (bool aForce) #endif } -/** - * Shows the VirtualBox version check & update dialog. - * - * @note that this method is not part of UIMessageCenter (like e.g. - * UIMessageCenter::sltShowHelpAboutDialog()) because it is tied to - * VBoxCallback::OnExtraDataChange() handling performed by VBoxGlobal. - * - * @param aForce - */ -void VBoxGlobal::showUpdateDialog (bool aForce) -{ - /* Silently check in one day after current time-stamp */ - QTimer::singleShot (24 /* hours */ * 60 /* minutes */ * - 60 /* seconds */ * 1000 /* milliseconds */, - this, SLOT (perDayNewVersionNotifier())); - - bool isNecessary = VBoxUpdateDlg::isNecessary(); - - if (!aForce && !isNecessary) - return; - - if (mUpdDlg) - { - if (!mUpdDlg->isHidden()) - { - mUpdDlg->setWindowState (mUpdDlg->windowState() & ~Qt::WindowMinimized); - mUpdDlg->raise(); - mUpdDlg->activateWindow(); - } - } - else - { - /* Store the ID of the main window to ensure that only one - * update dialog is shown at a time. Due to manipulations with - * OnExtraDataCanChange() and OnExtraDataChange() signals, this extra - * data item acts like an inter-process mutex, so the first process - * that attempts to set it will win, the rest will get a failure from - * the SetExtraData() call. */ - mVBox.SetExtraData (VBoxDefs::GUI_UpdateDlgWinID, - QString ("%1").arg ((qulonglong) mMainWindow->winId())); - - if (mVBox.isOk()) - { - /* We've got the "mutex", create a new update dialog */ - VBoxUpdateDlg *dlg = new VBoxUpdateDlg (&mUpdDlg, aForce, 0); - dlg->setAttribute (Qt::WA_DeleteOnClose); - Assert (dlg == mUpdDlg); - - /* Update dialog always in background mode for now. - * if (!aForce && isAutomatic) */ - mUpdDlg->search(); - /* else mUpdDlg->show(); */ - } - } -} - -void VBoxGlobal::perDayNewVersionNotifier() -{ - showUpdateDialog (false /* force show? */); -} - void VBoxGlobal::sltGUILanguageChange(QString strLang) { loadLanguage(strLang); @@ -4930,6 +4883,8 @@ void VBoxGlobal::init() {"Windows2008_64", ":/os_win2k8_64.png"}, {"Windows7", ":/os_win7.png"}, {"Windows7_64", ":/os_win7_64.png"}, + {"Windows8", ":/os_win8.png"}, + {"Windows8_64", ":/os_win8_64.png"}, {"WindowsNT", ":/os_win_other.png"}, {"OS2Warp3", ":/os_os2warp3.png"}, {"OS2Warp4", ":/os_os2warp4.png"}, @@ -5243,8 +5198,17 @@ void VBoxGlobal::init() /* Handle global settings change for the first time: */ sltProcessGlobalSettingChange(); + /* Create action pool: */ + if (isVMConsoleProcess()) + UIActionPoolRuntime::create(); + else + UIActionPoolSelector::create(); + /* Create network manager: */ UINetworkManager::create(); + + /* Schedule update manager: */ + UIUpdateManager::schedule(); } @@ -5255,9 +5219,18 @@ void VBoxGlobal::init() */ void VBoxGlobal::cleanup() { + /* Shutdown update manager: */ + UIUpdateManager::shutdown(); + /* Destroy network manager: */ UINetworkManager::destroy(); + /* Destroy action pool: */ + if (isVMConsoleProcess()) + UIActionPoolRuntime::destroy(); + else + UIActionPoolSelector::destroy(); + /* sanity check */ if (!sVBoxGlobalInCleanup) { diff --git a/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h b/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h index f38690052..258b4e949 100644 --- a/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h +++ b/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h @@ -127,6 +127,9 @@ public: static QString qtCTVersionString(); static uint qtCTVersion(); + QString vboxVersionString() const; + QString vboxVersionStringNormalized() const; + QString versionString() const { return mVerString; } bool isBeta() const; @@ -770,8 +773,6 @@ public slots: bool openURL (const QString &aURL); void showRegistrationDialog (bool aForce = true); - void showUpdateDialog (bool aForce = true); - void perDayNewVersionNotifier(); void sltGUILanguageChange(QString strLang); void sltProcessGlobalSettingChange(); @@ -805,7 +806,6 @@ private: #ifdef VBOX_WITH_REGISTRATION UIRegistrationWzd *mRegDlg; #endif - VBoxUpdateDlg *mUpdDlg; QString vmUuid; QList<QUrl> m_ArgUrlList; diff --git a/src/VBox/Frontends/VirtualBox/src/globals/VBoxUtils.h b/src/VBox/Frontends/VirtualBox/src/globals/VBoxUtils.h index f4b99586f..138f8d013 100644 --- a/src/VBox/Frontends/VirtualBox/src/globals/VBoxUtils.h +++ b/src/VBox/Frontends/VirtualBox/src/globals/VBoxUtils.h @@ -194,6 +194,58 @@ private: QString m_strAuthPassword; }; +/** + * VBoxVersion represents VirtualBox version parser + */ +class VBoxVersion +{ +public: + + VBoxVersion(const QString &strVersion) + : m_x(0), m_y(0), m_z(0) + { + QStringList versionStack = strVersion.split('.'); + if (versionStack.size() > 0) + m_x = versionStack[0].toInt(); + if (versionStack.size() > 1) + m_y = versionStack[1].toInt(); + if (versionStack.size() > 2) + m_z = versionStack[2].toInt(); + } + + bool equal(const VBoxVersion &other) const { return (m_x == other.m_x) && (m_y == other.m_y) && (m_z == other.m_z); } + bool operator==(const VBoxVersion &other) const { return equal(other); } + bool operator!=(const VBoxVersion &other) const { return !equal(other); } + + bool operator<(const VBoxVersion &other) const + { + return (m_x < other.m_x) || + (m_x == other.m_x && m_y < other.m_y) || + (m_x == other.m_x && m_y == other.m_y && m_z < other.m_z); + } + bool operator>(const VBoxVersion &other) const + { + return (m_x > other.m_x) || + (m_x == other.m_x && m_y > other.m_y) || + (m_x == other.m_x && m_y == other.m_y && m_z > other.m_z); + } + + QString toString() const + { + return QString("%1.%2.%3").arg(m_x).arg(m_y).arg(m_z); + } + + int x() const { return m_x; } + int y() const { return m_y; } + int z() const { return m_z; } + +private: + + int m_x; + int m_y; + int m_z; +}; + #ifdef Q_WS_MAC # include "VBoxUtils-darwin.h" #endif /* Q_WS_MAC */ diff --git a/src/VBox/Frontends/VirtualBox/src/hardenedmain.cpp b/src/VBox/Frontends/VirtualBox/src/hardenedmain.cpp index b7468f1d8..a36825f96 100644 --- a/src/VBox/Frontends/VirtualBox/src/hardenedmain.cpp +++ b/src/VBox/Frontends/VirtualBox/src/hardenedmain.cpp @@ -1,4 +1,4 @@ -/* $Id: hardenedmain.cpp 28800 2010-04-27 08:22:32Z vboxsync $ */ +/* $Id: hardenedmain.cpp $ */ /** @file * VirtualBox - Hardened main(). */ diff --git a/src/VBox/Frontends/VirtualBox/src/main.cpp b/src/VBox/Frontends/VirtualBox/src/main.cpp index 80acfd89e..a26fe221e 100644 --- a/src/VBox/Frontends/VirtualBox/src/main.cpp +++ b/src/VBox/Frontends/VirtualBox/src/main.cpp @@ -1,4 +1,4 @@ -/* $Id: main.cpp 38324 2011-08-05 14:02:53Z vboxsync $ */ +/* $Id: main.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): @@ -525,9 +525,6 @@ extern "C" DECLEXPORT(int) TrustedMain (int argc, char **argv, char ** /*envp*/) #ifdef VBOX_WITH_REGISTRATION_REQUEST vboxGlobal().showRegistrationDialog (false /* aForce */); #endif -#ifdef VBOX_WITH_UPDATE_REQUEST - vboxGlobal().showUpdateDialog (false /* aForce */); -#endif #ifdef VBOX_GUI_WITH_SYSTRAY } diff --git a/src/VBox/Frontends/VirtualBox/src/net/UIDownloader.cpp b/src/VBox/Frontends/VirtualBox/src/net/UIDownloader.cpp index 31ae18b8b..42f235afc 100644 --- a/src/VBox/Frontends/VirtualBox/src/net/UIDownloader.cpp +++ b/src/VBox/Frontends/VirtualBox/src/net/UIDownloader.cpp @@ -1,4 +1,4 @@ -/* $Id: UIDownloader.cpp 38421 2011-08-11 14:55:02Z vboxsync $ */ +/* $Id: UIDownloader.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/net/UIDownloaderAdditions.cpp b/src/VBox/Frontends/VirtualBox/src/net/UIDownloaderAdditions.cpp index 83c39603c..2697f83be 100644 --- a/src/VBox/Frontends/VirtualBox/src/net/UIDownloaderAdditions.cpp +++ b/src/VBox/Frontends/VirtualBox/src/net/UIDownloaderAdditions.cpp @@ -1,4 +1,4 @@ -/* $Id: UIDownloaderAdditions.cpp 38421 2011-08-11 14:55:02Z vboxsync $ */ +/* $Id: UIDownloaderAdditions.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/net/UIDownloaderExtensionPack.cpp b/src/VBox/Frontends/VirtualBox/src/net/UIDownloaderExtensionPack.cpp new file mode 100644 index 000000000..d61e29c3d --- /dev/null +++ b/src/VBox/Frontends/VirtualBox/src/net/UIDownloaderExtensionPack.cpp @@ -0,0 +1,149 @@ +/* $Id: UIDownloaderExtensionPack.cpp $ */ +/** @file + * + * VBox frontends: Qt GUI ("VirtualBox"): + * UIDownloader for extension pack + */ + +/* + * Copyright (C) 2011 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + */ + +/* Global includes: */ +#include <QDir> +#include <QFile> +#include <QNetworkReply> + +/* Local includes: */ +#include "UIDownloaderExtensionPack.h" +#include "VBoxGlobal.h" +#include "UIMessageCenter.h" +#include "QIFileDialog.h" +#include "VBoxDefs.h" + +/* Using declarations: */ +using namespace VBoxGlobalDefs; + +/* UIMiniProgressWidget stuff: */ +UIMiniProgressWidgetExtension::UIMiniProgressWidgetExtension(const QString &strSource, QWidget *pParent /* = 0 */) + : QIWithRetranslateUI<UIMiniProgressWidget>(pParent) +{ + sltSetSource(strSource); + retranslateUi(); +} + +void UIMiniProgressWidgetExtension::retranslateUi() +{ + setCancelButtonToolTip(tr("Cancel the <nobr><b>%1</b></nobr> download").arg(UI_ExtPackName)); + setProgressBarToolTip(tr("Downloading the <nobr><b>%1</b></nobr> from <nobr><b>%2</b>...</nobr>") + .arg(UI_ExtPackName, source())); +} + +/* UIDownloaderExtensionPack stuff: */ +UIDownloaderExtensionPack* UIDownloaderExtensionPack::m_pInstance = 0; + +/* static */ +void UIDownloaderExtensionPack::download(QObject *pListener) +{ + /* Create downloader instance: */ + UIDownloaderExtensionPack *pDownloader = new UIDownloaderExtensionPack; + pDownloader->setParentWidget(msgCenter().mainWindowShown()); + + /* Configure connections for the passed listener: */ + connect(pDownloader, SIGNAL(sigToStartAcknowledging()), + pListener, SIGNAL(sigDownloaderCreatedForExtensionPack())); + connect(pDownloader, SIGNAL(sigNotifyAboutExtensionPackDownloaded(const QString &, const QString &)), + pListener, SLOT(sltHandleDownloadedExtensionPack(const QString &, const QString &))); +} + +UIDownloaderExtensionPack::UIDownloaderExtensionPack() +{ + /* Prepare instance: */ + if (!m_pInstance) + m_pInstance = this; + + /* Prepare source/target: */ + QString strExtPackUnderscoredName(QString(UI_ExtPackName).replace(' ', '_')); + QString strTemplateSourcePath("http://download.virtualbox.org/virtualbox/%1/"); + QString strTemplateSourceName(QString("%1-%2.vbox-extpack").arg(strExtPackUnderscoredName)); + QString strSourcePath(strTemplateSourcePath.arg(vboxGlobal().vboxVersionStringNormalized())); + QString strSourceName(strTemplateSourceName.arg(vboxGlobal().vboxVersionStringNormalized())); + QString strSource(strSourcePath + strSourceName); + QString strTargetPath(vboxGlobal().virtualBox().GetHomeFolder()); + QString strTargetName(strSourceName); + QString strTarget(QDir(strTargetPath).absoluteFilePath(strTargetName)); + + /* Set source/target: */ + setSource(strSource); + setTarget(strTarget); + + /* Start downloading: */ + start(); +} + +UIDownloaderExtensionPack::~UIDownloaderExtensionPack() +{ + /* Cleanup instance: */ + if (m_pInstance == this) + m_pInstance = 0; +} + +UIMiniProgressWidget* UIDownloaderExtensionPack::createProgressWidgetFor(QWidget *pParent) const +{ + return new UIMiniProgressWidgetExtension(source(), pParent); +} + +bool UIDownloaderExtensionPack::askForDownloadingConfirmation(QNetworkReply *pReply) +{ + return msgCenter().confirmDownloadExtensionPack(UI_ExtPackName, source(), pReply->header(QNetworkRequest::ContentLengthHeader).toInt()); +} + +void UIDownloaderExtensionPack::handleDownloadedObject(QNetworkReply *pReply) +{ + /* Read received data into buffer: */ + QByteArray receivedData(pReply->readAll()); + /* Serialize the incoming buffer into the file: */ + while (true) + { + /* Try to open file for writing: */ + QFile file(target()); + if (file.open(QIODevice::WriteOnly)) + { + /* Write incoming buffer into the file: */ + file.write(receivedData); + file.close(); + /* Notify listener about extension pack was downloaded: */ + emit sigNotifyAboutExtensionPackDownloaded(source(), target()); + break; + } + else + { + /* Warn the user about extension pack was downloaded but was NOT saved, explain it: */ + msgCenter().warnAboutExtentionPackCantBeSaved(UI_ExtPackName, source(), QDir::toNativeSeparators(target())); + } + + /* Ask the user for another location for the extension pack file: */ + QString strTarget = QIFileDialog::getExistingDirectory(QFileInfo(target()).absolutePath(), parentWidget(), + tr("Select folder to save %1 to").arg(UI_ExtPackName), true); + + /* Check if user had really set a new target: */ + if (!strTarget.isNull()) + setTarget(QDir(strTarget).absoluteFilePath(QFileInfo(target()).fileName())); + else + break; + } +} + +void UIDownloaderExtensionPack::warnAboutNetworkError(const QString &strError) +{ + return msgCenter().cannotDownloadExtensionPack(UI_ExtPackName, source(), strError); +} + diff --git a/src/VBox/Frontends/VirtualBox/src/net/UIDownloaderExtensionPack.h b/src/VBox/Frontends/VirtualBox/src/net/UIDownloaderExtensionPack.h new file mode 100644 index 000000000..8798a5fee --- /dev/null +++ b/src/VBox/Frontends/VirtualBox/src/net/UIDownloaderExtensionPack.h @@ -0,0 +1,75 @@ +/** @file + * + * VBox frontends: Qt GUI ("VirtualBox"): + * UIDownloader for extension pack + */ + +/* + * Copyright (C) 2011 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + */ + +#ifndef __UIDownloaderExtensionPack_h__ +#define __UIDownloaderExtensionPack_h__ + +/* Local includes: */ +#include "QIWithRetranslateUI.h" +#include "UIDownloader.h" + +/* UIMiniProgressWidget reimplementation for the VirtualBox extension pack downloading: */ +class UIMiniProgressWidgetExtension : public QIWithRetranslateUI<UIMiniProgressWidget> +{ + Q_OBJECT; + +public: + + /* Constructor: */ + UIMiniProgressWidgetExtension(const QString &strSource, QWidget *pParent = 0); + +private: + + /* Translating stuff: */ + void retranslateUi(); +}; + +/* UIDownloader reimplementation for the VirtualBox Extension Pack updating: */ +class UIDownloaderExtensionPack : public UIDownloader +{ + Q_OBJECT; + +public: + + /* Returns updater if exists: */ + static UIDownloaderExtensionPack* current() { return m_pInstance; } + /* Start downloading: */ + static void download(QObject *pListener); + +signals: + + /* Notify listeners about extension pack downloaded: */ + void sigNotifyAboutExtensionPackDownloaded(const QString &strSource, const QString &strTarget); + +private: + + /* Constructor/destructor: */ + UIDownloaderExtensionPack(); + ~UIDownloaderExtensionPack(); + + /* Virtual methods reimplementations: */ + UIMiniProgressWidget* createProgressWidgetFor(QWidget *pParent) const; + bool askForDownloadingConfirmation(QNetworkReply *pReply); + void handleDownloadedObject(QNetworkReply *pReply); + void warnAboutNetworkError(const QString &strError); + + /* Variables: */ + static UIDownloaderExtensionPack *m_pInstance; +}; + +#endif // __UIDownloaderExtensionPack_h__ diff --git a/src/VBox/Frontends/VirtualBox/src/net/UIDownloaderUserManual.cpp b/src/VBox/Frontends/VirtualBox/src/net/UIDownloaderUserManual.cpp index 579831681..05d2eb42e 100644 --- a/src/VBox/Frontends/VirtualBox/src/net/UIDownloaderUserManual.cpp +++ b/src/VBox/Frontends/VirtualBox/src/net/UIDownloaderUserManual.cpp @@ -1,4 +1,4 @@ -/* $Id: UIDownloaderUserManual.cpp 38421 2011-08-11 14:55:02Z vboxsync $ */ +/* $Id: UIDownloaderUserManual.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/net/UINetworkManager.cpp b/src/VBox/Frontends/VirtualBox/src/net/UINetworkManager.cpp index 8c50862e9..d73e100eb 100644 --- a/src/VBox/Frontends/VirtualBox/src/net/UINetworkManager.cpp +++ b/src/VBox/Frontends/VirtualBox/src/net/UINetworkManager.cpp @@ -1,4 +1,4 @@ -/* $Id: UINetworkManager.cpp 38421 2011-08-11 14:55:02Z vboxsync $ */ +/* $Id: UINetworkManager.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/net/UIUpdateDefs.cpp b/src/VBox/Frontends/VirtualBox/src/net/UIUpdateDefs.cpp new file mode 100644 index 000000000..212ede8e4 --- /dev/null +++ b/src/VBox/Frontends/VirtualBox/src/net/UIUpdateDefs.cpp @@ -0,0 +1,193 @@ +/* $Id: UIUpdateDefs.cpp $ */ +/** @file + * + * VBox frontends: Qt4 GUI ("VirtualBox"): + * Update routine related implementations + */ + +/* + * Copyright (C) 2006-2011 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + */ + +/* Global includes: */ +#include <QCoreApplication> +#include <QStringList> + +/* Local includes: */ +#include "UIUpdateDefs.h" + +/* static: */ +VBoxUpdateDayList VBoxUpdateData::m_dayList = VBoxUpdateDayList(); + +/* static */ +void VBoxUpdateData::populate() +{ + /* Clear list initially: */ + m_dayList.clear(); + + /* To avoid re-translation complexity + * all values will be retranslated separately: */ + + /* Separately retranslate each day: */ + m_dayList << VBoxUpdateDay(QCoreApplication::translate("UIUpdateManager", "1 day"), "1 d"); + m_dayList << VBoxUpdateDay(QCoreApplication::translate("UIUpdateManager", "2 days"), "2 d"); + m_dayList << VBoxUpdateDay(QCoreApplication::translate("UIUpdateManager", "3 days"), "3 d"); + m_dayList << VBoxUpdateDay(QCoreApplication::translate("UIUpdateManager", "4 days"), "4 d"); + m_dayList << VBoxUpdateDay(QCoreApplication::translate("UIUpdateManager", "5 days"), "5 d"); + m_dayList << VBoxUpdateDay(QCoreApplication::translate("UIUpdateManager", "6 days"), "6 d"); + + /* Separately retranslate each week: */ + m_dayList << VBoxUpdateDay(QCoreApplication::translate("UIUpdateManager", "1 week"), "1 w"); + m_dayList << VBoxUpdateDay(QCoreApplication::translate("UIUpdateManager", "2 weeks"), "2 w"); + m_dayList << VBoxUpdateDay(QCoreApplication::translate("UIUpdateManager", "3 weeks"), "3 w"); + + /* Separately retranslate each month: */ + m_dayList << VBoxUpdateDay(QCoreApplication::translate("UIUpdateManager", "1 month"), "1 m"); +} + +/* static */ +QStringList VBoxUpdateData::list() +{ + QStringList result; + for (int i = 0; i < m_dayList.size(); ++i) + result << m_dayList[i].val; + return result; +} + +VBoxUpdateData::VBoxUpdateData(const QString &strData) + : m_strData(strData) + , m_periodIndex(Period1Day) + , m_branchIndex(BranchStable) +{ + decode(); +} + +VBoxUpdateData::VBoxUpdateData(PeriodType periodIndex, BranchType branchIndex) + : m_strData(QString()) + , m_periodIndex(periodIndex) + , m_branchIndex(branchIndex) +{ + encode(); +} + +bool VBoxUpdateData::isNoNeedToCheck() const +{ + return m_periodIndex == PeriodNever; +} + +bool VBoxUpdateData::isNeedToCheck() const +{ + return !isNoNeedToCheck() && QDate::currentDate() >= m_date; +} + +QString VBoxUpdateData::data() const +{ + return m_strData; +} + +VBoxUpdateData::PeriodType VBoxUpdateData::periodIndex() const +{ + return m_periodIndex; +} + +QString VBoxUpdateData::date() const +{ + return isNoNeedToCheck() ? QCoreApplication::translate("UIUpdateManager", "Never") : m_date.toString(Qt::LocaleDate); +} + +VBoxUpdateData::BranchType VBoxUpdateData::branchIndex() const +{ + return m_branchIndex; +} + +QString VBoxUpdateData::branchName() const +{ + switch (m_branchIndex) + { + case BranchStable: + return "stable"; + case BranchAllRelease: + return "allrelease"; + case BranchWithBetas: + return "withbetas"; + } + return QString(); +} + +void VBoxUpdateData::decode() +{ + /* Parse standard values: */ + if (m_strData == "never") + m_periodIndex = PeriodNever; + /* Parse other values: */ + else + { + QStringList parser(m_strData.split(", ", QString::SkipEmptyParts)); + + /* Parse 'period' value: */ + if (parser.size() > 0) + { + if (m_dayList.isEmpty()) + populate(); + PeriodType index = (PeriodType)m_dayList.indexOf(VBoxUpdateDay(QString(), parser[0])); + m_periodIndex = index == PeriodUndefined ? Period1Day : index; + } + + /* Parse 'date' value: */ + if (parser.size() > 1) + { + QDate date = QDate::fromString(parser[1], Qt::ISODate); + m_date = date.isValid() ? date : QDate::currentDate(); + } + + /* Parse 'branch' value: */ + if (parser.size() > 2) + { + QString branch(parser[2]); + m_branchIndex = branch == "withbetas" ? BranchWithBetas : + branch == "allrelease" ? BranchAllRelease : BranchStable; + } + } +} + +void VBoxUpdateData::encode() +{ + /* Encode standard values: */ + if (m_periodIndex == PeriodNever) + m_strData = "never"; + /* Encode other values: */ + else + { + /* Encode 'period' value: */ + if (m_dayList.isEmpty()) + populate(); + QString remindPeriod = m_dayList[m_periodIndex].key; + + /* Encode 'date' value: */ + m_date = QDate::currentDate(); + QStringList parser(remindPeriod.split(' ')); + if (parser[1] == "d") + m_date = m_date.addDays(parser[0].toInt()); + else if (parser[1] == "w") + m_date = m_date.addDays(parser[0].toInt() * 7); + else if (parser[1] == "m") + m_date = m_date.addMonths(parser[0].toInt()); + QString remindDate = m_date.toString(Qt::ISODate); + + /* Encode 'branch' value: */ + QString branchValue = m_branchIndex == BranchWithBetas ? "withbetas" : + m_branchIndex == BranchAllRelease ? "allrelease" : "stable"; + + /* Composite m_strData: */ + m_strData = QString("%1, %2, %3").arg(remindPeriod, remindDate, branchValue); + } +} + diff --git a/src/VBox/Frontends/VirtualBox/src/VBoxUpdateDlg.h b/src/VBox/Frontends/VirtualBox/src/net/UIUpdateDefs.h index 7b068d1c2..a7243b50c 100644 --- a/src/VBox/Frontends/VirtualBox/src/VBoxUpdateDlg.h +++ b/src/VBox/Frontends/VirtualBox/src/net/UIUpdateDefs.h @@ -1,7 +1,7 @@ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): - * VBoxUpdateDlg class declaration + * Update routine related declarations */ /* @@ -16,44 +16,31 @@ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. */ -#ifndef __VBoxUpdateDlg_h__ -#define __VBoxUpdateDlg_h__ +#ifndef __UIUpdateDefs_h__ +#define __UIUpdateDefs_h__ /* Global includes: */ #include <QDate> -#include <QUrl> -/* Local includes */ -#include "QIWithRetranslateUI.h" -#include "VBoxUpdateDlg.gen.h" - -/* Forward declarations: */ -class QNetworkAccessManager; - -/** - * This structure is used to store retranslated reminder values. - */ -struct UpdateDay +/* This structure is used to store retranslated reminder values. */ +struct VBoxUpdateDay { - UpdateDay(const QString &strVal, const QString &strKey) + VBoxUpdateDay(const QString &strVal, const QString &strKey) : val(strVal), key(strKey) {} - bool operator==(const UpdateDay &other) - { - return val == other.val || key == other.key; - } + bool operator==(const VBoxUpdateDay &other) { return val == other.val || key == other.key; } QString val; QString key; }; +typedef QList<VBoxUpdateDay> VBoxUpdateDayList; -/** - * This class is used to encode/decode the registration data. - */ +/* This class is used to encode/decode update data. */ class VBoxUpdateData { public: + /* Period types: */ enum PeriodType { PeriodNever = -2, @@ -70,6 +57,7 @@ public: Period1Month = 9 }; + /* Branch types: */ enum BranchType { BranchStable = 0, @@ -77,15 +65,17 @@ public: BranchWithBetas = 2 }; + /* Public static helpers: */ static void populate(); static QStringList list(); + /* Constructors: */ VBoxUpdateData(const QString &strData); VBoxUpdateData(PeriodType periodIndex, BranchType branchIndex); - bool isNecessary(); - bool isNoNeedToCheck(); - + /* Public helpers: */ + bool isNoNeedToCheck() const; + bool isNeedToCheck() const; QString data() const; PeriodType periodIndex() const; QString date() const; @@ -94,55 +84,16 @@ public: private: - /* Private functions */ + /* Private helpers: */ void decode(); void encode(); - /* Private variables */ - static QList <UpdateDay> m_dayList; - + /* Private variables: */ + static VBoxUpdateDayList m_dayList; QString m_strData; PeriodType m_periodIndex; QDate m_date; BranchType m_branchIndex; }; -class VBoxUpdateDlg : public QIWithRetranslateUI<QDialog>, public Ui::VBoxUpdateDlg -{ - Q_OBJECT; - -public: - - static bool isNecessary(); - - VBoxUpdateDlg(VBoxUpdateDlg **ppSelf, bool fForceRun, QWidget *pParent = 0); - ~VBoxUpdateDlg(); - -signals: - - void sigDelayedAcception(); - -public slots: - - void search(); - -protected: - - void retranslateUi(); - void acceptLater() { emit sigDelayedAcception(); } - -private slots: - - void accept(); - void sltHandleReply(); - -private: - - VBoxUpdateDlg **m_ppSelf; - QNetworkAccessManager *m_pNetworkManager; - QUrl m_url; - bool m_fForceRun; -}; - -#endif // __VBoxUpdateDlg_h__ - +#endif // __UIUpdateDefs_h__ diff --git a/src/VBox/Frontends/VirtualBox/src/net/UIUpdateManager.cpp b/src/VBox/Frontends/VirtualBox/src/net/UIUpdateManager.cpp new file mode 100644 index 000000000..001a320f0 --- /dev/null +++ b/src/VBox/Frontends/VirtualBox/src/net/UIUpdateManager.cpp @@ -0,0 +1,266 @@ +/* $Id: UIUpdateManager.cpp $ */ +/** @file + * + * VBox frontends: Qt4 GUI ("VirtualBox"): + * UIUpdateManager class implementation + */ + +/* + * Copyright (C) 2006-2011 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + */ + +/* Global includes: */ +#include <QEventLoop> +#include <QNetworkReply> +#include <QTimer> +#include <QDir> + +#include <VBox/version.h> + +/* Local includes: */ +#include "UIUpdateManager.h" +#include "UINetworkManager.h" +#include "VBoxGlobal.h" +#include "UIMessageCenter.h" +#include "VBoxUtils.h" +#include "UIDownloaderExtensionPack.h" +#include "UIGlobalSettingsExtension.h" +#include "VBoxDefs.h" + +/* Using declarations: */ +using namespace VBoxGlobalDefs; + +/* UIUpdateManager stuff: */ +UIUpdateManager* UIUpdateManager::m_pInstance = 0; + +/* static */ +void UIUpdateManager::schedule() +{ + /* Ensure instance is NOT created: */ + if (m_pInstance) + return; + + /* Create instance: */ + new UIUpdateManager; +} + +/* static */ +void UIUpdateManager::shutdown() +{ + /* Ensure instance is created: */ + if (!m_pInstance) + return; + + /* Delete instance: */ + delete m_pInstance; +} + +void UIUpdateManager::sltForceCheck() +{ + /* Force call for new version check: */ + sltCheckIfUpdateIsNecessary(true); +} + +UIUpdateManager::UIUpdateManager() + : m_uTime(1 /* day */ * 24 /* hours */ * 60 /* minutes */ * 60 /* seconds */ * 1000 /* ms */) +{ + /* Prepare instance: */ + if (m_pInstance != this) + m_pInstance = this; + +#ifdef VBOX_WITH_UPDATE_REQUEST + /* Ask updater to check for the first time: */ + QTimer::singleShot(0, this, SLOT(sltCheckIfUpdateIsNecessary())); +#endif /* VBOX_WITH_UPDATE_REQUEST */ +} + +UIUpdateManager::~UIUpdateManager() +{ + /* Cleanup instance: */ + if (m_pInstance == this) + m_pInstance = 0; +} + +void UIUpdateManager::sltCheckIfUpdateIsNecessary(bool fForceCall /* = false */) +{ + /* Load/decode curent update data: */ + VBoxUpdateData currentData(vboxGlobal().virtualBox().GetExtraData(VBoxDefs::GUI_UpdateDate)); + + /* Check if update is really neessary: */ + if (fForceCall || currentData.isNeedToCheck()) + { + /* Check if update is necessary for VirtualBox itself: */ + checkIfUpdateIsNecessary(fForceCall); + + /* Check if update is necessary for VirtualBox extension pack: */ + checkIfUpdateIsNecessaryForExtensionPack(fForceCall); + + /* Encode/save new update data: */ + VBoxUpdateData newData(currentData.periodIndex(), currentData.branchIndex()); + vboxGlobal().virtualBox().SetExtraData(VBoxDefs::GUI_UpdateDate, newData.data()); + } + +#ifdef VBOX_WITH_UPDATE_REQUEST + /* Ask updater to check for the next time: */ + QTimer::singleShot(m_uTime, this, SLOT(sltCheckIfUpdateIsNecessary())); +#endif /* VBOX_WITH_UPDATE_REQUEST */ +} + +void UIUpdateManager::checkIfUpdateIsNecessary(bool fForceCall) +{ + /* Creating VirtualBox version checker: */ + UINewVersionChecker checker(fForceCall); + /* Start synchronous check: */ + checker.checkForTheNewVersion(); +} + +void UIUpdateManager::checkIfUpdateIsNecessaryForExtensionPack(bool /* fForceCall */) +{ + /* Check if updater instance already created: */ + if (UIDownloaderExtensionPack::current()) + return; + + /* Get extension pack information: */ + CExtPack extPack = vboxGlobal().virtualBox().GetExtensionPackManager().Find(UI_ExtPackName); + /* Check if extension pack is really installed: */ + if (extPack.isNull()) + return; + + /* Get VirtualBox version: */ + VBoxVersion vboxVersion(vboxGlobal().vboxVersionStringNormalized()); + /* Get extension pack version: */ + QString strExtPackVersion(extPack.GetVersion().remove(VBOX_BUILD_PUBLISHER)); + VBoxVersion extPackVersion(strExtPackVersion); + /* Check if extension pack version less than required: */ + if ((vboxVersion.z() % 2 != 0) /* Skip unstable VBox version */ || + !(extPackVersion < vboxVersion) /* Ext Pack version more or equal to VBox version */) + return; + + /* Ask the user about extension pack downloading: */ + if (!msgCenter().proposeDownloadExtensionPack(UI_ExtPackName, strExtPackVersion)) + return; + + /* Run downloader for VirtualBox extension pack: */ + UIDownloaderExtensionPack::download(this); +} + +void UIUpdateManager::sltHandleDownloadedExtensionPack(const QString &strSource, const QString &strTarget) +{ + /* Warn the user about extension pack was downloaded and saved, propose to install it: */ + if (msgCenter().proposeInstallExtentionPack(UI_ExtPackName, strSource, QDir::toNativeSeparators(strTarget))) + UIGlobalSettingsExtension::doInstallation(strTarget, msgCenter().mainWindowShown(), NULL); +} + +/* UINewVersionChecker stuff: */ +UINewVersionChecker::UINewVersionChecker(bool fForceCall) + : m_url("http://update.virtualbox.org/query.php") + , m_fForceCall(fForceCall) + , m_pLoop(new QEventLoop(this)) +{ +} + +void UINewVersionChecker::checkForTheNewVersion() +{ + /* Calculate the count of checks left: */ + int cCount = 1; + QString strCount = vboxGlobal().virtualBox().GetExtraData(VBoxDefs::GUI_UpdateCheckCount); + if (!strCount.isEmpty()) + { + bool ok = false; + int c = strCount.toLongLong(&ok); + if (ok) cCount = c; + } + + /* Compose query: */ + QUrl url(m_url); + url.addQueryItem("platform", vboxGlobal().virtualBox().GetPackageType()); + /* Check if branding is active: */ + if (vboxGlobal().brandingIsActive()) + { + /* Branding: Check whether we have a local branding file which tells us our version suffix "FOO" + (e.g. 3.06.54321_FOO) to identify this installation: */ + url.addQueryItem("version", QString("%1_%2_%3").arg(vboxGlobal().virtualBox().GetVersion()) + .arg(vboxGlobal().virtualBox().GetRevision()) + .arg(vboxGlobal().brandingGetKey("VerSuffix"))); + } + else + { + /* Use hard coded version set by VBOX_VERSION_STRING: */ + url.addQueryItem("version", QString("%1_%2").arg(vboxGlobal().virtualBox().GetVersion()) + .arg(vboxGlobal().virtualBox().GetRevision())); + } + url.addQueryItem("count", QString::number(cCount)); + url.addQueryItem("branch", VBoxUpdateData(vboxGlobal().virtualBox(). + GetExtraData(VBoxDefs::GUI_UpdateDate)).branchName()); + QString strUserAgent(QString("VirtualBox %1 <%2>") + .arg(vboxGlobal().virtualBox().GetVersion()) + .arg(vboxGlobal().platformInfo())); + + /* Setup GET request: */ + QNetworkRequest request; + request.setUrl(url); + request.setRawHeader("User-Agent", strUserAgent.toAscii()); + QNetworkReply *pReply = gNetworkManager->get(request); + connect(pReply, SIGNAL(finished()), this, SLOT(sltHandleCheckReply())); + connect(pReply, SIGNAL(sslErrors(QList<QSslError>)), pReply, SLOT(ignoreSslErrors())); + + /* Lock event loop: */ + m_pLoop->exec(); +} + +void UINewVersionChecker::sltHandleCheckReply() +{ + /* Get corresponding network reply object: */ + QNetworkReply *pReply = qobject_cast<QNetworkReply*>(sender()); + /* And ask it for suicide: */ + pReply->deleteLater(); + + /* Handle normal result: */ + if (pReply->error() == QNetworkReply::NoError) + { + /* Deserialize incoming data: */ + QString strResponseData(pReply->readAll()); + + /* Newer version of necessary package found: */ + if (strResponseData.indexOf(QRegExp("^\\d+\\.\\d+\\.\\d+ \\S+$")) == 0) + { + QStringList response = strResponseData.split(" ", QString::SkipEmptyParts); + msgCenter().showUpdateSuccess(vboxGlobal().mainWindow(), response[0], response[1]); + } + /* No newer version of necessary package found: */ + else + { + if (m_fForceCall) + msgCenter().showUpdateNotFound(vboxGlobal().mainWindow()); + } + + /* Save left count of checks: */ + int cCount = 1; + QString strCount = vboxGlobal().virtualBox().GetExtraData(VBoxDefs::GUI_UpdateCheckCount); + if (!strCount.isEmpty()) + { + bool ok = false; + int c = strCount.toLongLong(&ok); + if (ok) cCount = c; + } + vboxGlobal().virtualBox().SetExtraData(VBoxDefs::GUI_UpdateCheckCount, QString("%1").arg((qulonglong)cCount + 1)); + } + /* Handle errors: */ + else + { + if (m_fForceCall) + msgCenter().showUpdateFailure(vboxGlobal().mainWindow(), pReply->errorString()); + } + + /* Unlock event loop: */ + m_pLoop->exit(); +} + diff --git a/src/VBox/Frontends/VirtualBox/src/net/UIUpdateManager.h b/src/VBox/Frontends/VirtualBox/src/net/UIUpdateManager.h new file mode 100644 index 000000000..e7daaaa6b --- /dev/null +++ b/src/VBox/Frontends/VirtualBox/src/net/UIUpdateManager.h @@ -0,0 +1,106 @@ +/** @file + * + * VBox frontends: Qt4 GUI ("VirtualBox"): + * UIUpdateManager class declaration + */ + +/* + * Copyright (C) 2006-2011 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + */ + +#ifndef __UIUpdateManager_h__ +#define __UIUpdateManager_h__ + +/* Global includes: */ +#include <QUrl> + +/* Local includes: */ +#include "UIUpdateDefs.h" + +/* Forward declarations: */ +class QEventLoop; + +/* Singleton to check for the new VirtualBox version. + * Performs update of required parts if necessary. */ +class UIUpdateManager : public QObject +{ + Q_OBJECT; + +public: + + /* Schedule manager: */ + static void schedule(); + /* Shutdown manager: */ + static void shutdown(); + /* Manager instance: */ + static UIUpdateManager* instance() { return m_pInstance; } + +signals: + + /* Signal to notify listeners about downloading: */ + void sigDownloaderCreatedForExtensionPack(); + +public slots: + + /* Force call for new version check: */ + void sltForceCheck(); + +private slots: + + /* Slot to check if update is necessary: */ + void sltCheckIfUpdateIsNecessary(bool fForceCall = false); + + /* Handle downloaded extension pack: */ + void sltHandleDownloadedExtensionPack(const QString &strSource, const QString &strTarget); + +private: + + /* Constructor/destructor: */ + UIUpdateManager(); + ~UIUpdateManager(); + + /* Helping stuff: */ + void checkIfUpdateIsNecessary(bool fForceCall); + void checkIfUpdateIsNecessaryForExtensionPack(bool fForceCall); + + /* Variables: */ + static UIUpdateManager* m_pInstance; + quint64 m_uTime; +}; +#define gUpdateManager UIUpdateManager::instance() + +/* Class to check for the new VirtualBox version: */ +class UINewVersionChecker : public QObject +{ + Q_OBJECT; + +public: + + /* Constructor: */ + UINewVersionChecker(bool fForceCall); + + /* Function to check if new version is available: */ + void checkForTheNewVersion(); + +private slots: + + /* Slot to analyze new version check reply: */ + void sltHandleCheckReply(); + +private: + + /* Variables: */ + QUrl m_url; + bool m_fForceCall; + QEventLoop *m_pLoop; +}; + +#endif // __UIUpdateManager_h__ diff --git a/src/VBox/Frontends/VirtualBox/src/platform/darwin/CocoaEventHelper.mm b/src/VBox/Frontends/VirtualBox/src/platform/darwin/CocoaEventHelper.mm index b79ba32c1..9b86ac3e6 100644 --- a/src/VBox/Frontends/VirtualBox/src/platform/darwin/CocoaEventHelper.mm +++ b/src/VBox/Frontends/VirtualBox/src/platform/darwin/CocoaEventHelper.mm @@ -1,4 +1,4 @@ -/* $Id: CocoaEventHelper.mm 30122 2010-06-09 13:50:26Z vboxsync $ */ +/* $Id: CocoaEventHelper.mm $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/platform/darwin/DarwinKeyboard.cpp b/src/VBox/Frontends/VirtualBox/src/platform/darwin/DarwinKeyboard.cpp index 0cf8d2814..b802d1c85 100644 --- a/src/VBox/Frontends/VirtualBox/src/platform/darwin/DarwinKeyboard.cpp +++ b/src/VBox/Frontends/VirtualBox/src/platform/darwin/DarwinKeyboard.cpp @@ -1,4 +1,4 @@ -/* $Id: DarwinKeyboard.cpp 35873 2011-02-07 14:10:08Z vboxsync $ */ +/* $Id: DarwinKeyboard.cpp $ */ /** @file * Common GUI Library - Darwin Keyboard routines. * diff --git a/src/VBox/Frontends/VirtualBox/src/platform/darwin/DockIconPreview.h b/src/VBox/Frontends/VirtualBox/src/platform/darwin/DockIconPreview.h index 8a4f86abc..c4ffaef4f 100644 --- a/src/VBox/Frontends/VirtualBox/src/platform/darwin/DockIconPreview.h +++ b/src/VBox/Frontends/VirtualBox/src/platform/darwin/DockIconPreview.h @@ -1,4 +1,4 @@ -/* $Id: DockIconPreview.h 29812 2010-05-26 11:46:22Z vboxsync $ */ +/* $Id: DockIconPreview.h $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/platform/darwin/UIAbstractDockIconPreview.cpp b/src/VBox/Frontends/VirtualBox/src/platform/darwin/UIAbstractDockIconPreview.cpp index fe6c17fc7..f2391f87f 100644 --- a/src/VBox/Frontends/VirtualBox/src/platform/darwin/UIAbstractDockIconPreview.cpp +++ b/src/VBox/Frontends/VirtualBox/src/platform/darwin/UIAbstractDockIconPreview.cpp @@ -1,4 +1,4 @@ -/* $Id: UIAbstractDockIconPreview.cpp 28800 2010-04-27 08:22:32Z vboxsync $ */ +/* $Id: UIAbstractDockIconPreview.cpp $ */ /** @file * Qt GUI - Realtime Dock Icon Preview */ diff --git a/src/VBox/Frontends/VirtualBox/src/platform/darwin/UIAbstractDockIconPreview.h b/src/VBox/Frontends/VirtualBox/src/platform/darwin/UIAbstractDockIconPreview.h index ec6c4b262..8c4c46fd2 100644 --- a/src/VBox/Frontends/VirtualBox/src/platform/darwin/UIAbstractDockIconPreview.h +++ b/src/VBox/Frontends/VirtualBox/src/platform/darwin/UIAbstractDockIconPreview.h @@ -1,4 +1,4 @@ -/* $Id: UIAbstractDockIconPreview.h 29823 2010-05-26 14:49:27Z vboxsync $ */ +/* $Id: UIAbstractDockIconPreview.h $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/platform/darwin/UICocoaApplication.mm b/src/VBox/Frontends/VirtualBox/src/platform/darwin/UICocoaApplication.mm index 96d9dbd9d..c45147102 100644 --- a/src/VBox/Frontends/VirtualBox/src/platform/darwin/UICocoaApplication.mm +++ b/src/VBox/Frontends/VirtualBox/src/platform/darwin/UICocoaApplication.mm @@ -1,4 +1,4 @@ -/* $Id: UICocoaApplication.mm 30154 2010-06-10 16:28:15Z vboxsync $ */ +/* $Id: UICocoaApplication.mm $ */ /** @file * UICocoaApplication - C++ interface to NSApplication for handling -sendEvent. */ diff --git a/src/VBox/Frontends/VirtualBox/src/platform/darwin/UICocoaDockIconPreview.h b/src/VBox/Frontends/VirtualBox/src/platform/darwin/UICocoaDockIconPreview.h index c20088f9f..7bfe2d76a 100644 --- a/src/VBox/Frontends/VirtualBox/src/platform/darwin/UICocoaDockIconPreview.h +++ b/src/VBox/Frontends/VirtualBox/src/platform/darwin/UICocoaDockIconPreview.h @@ -1,4 +1,4 @@ -/* $Id: UICocoaDockIconPreview.h 28800 2010-04-27 08:22:32Z vboxsync $ */ +/* $Id: UICocoaDockIconPreview.h $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/platform/darwin/UICocoaDockIconPreview.mm b/src/VBox/Frontends/VirtualBox/src/platform/darwin/UICocoaDockIconPreview.mm index 95fdd9ecf..152e5d1df 100644 --- a/src/VBox/Frontends/VirtualBox/src/platform/darwin/UICocoaDockIconPreview.mm +++ b/src/VBox/Frontends/VirtualBox/src/platform/darwin/UICocoaDockIconPreview.mm @@ -1,4 +1,4 @@ -/* $Id: UICocoaDockIconPreview.mm 30151 2010-06-10 16:12:33Z vboxsync $ */ +/* $Id: UICocoaDockIconPreview.mm $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/platform/darwin/UICocoaSpecialControls.mm b/src/VBox/Frontends/VirtualBox/src/platform/darwin/UICocoaSpecialControls.mm index ebedcd24e..e7688a9ff 100644 --- a/src/VBox/Frontends/VirtualBox/src/platform/darwin/UICocoaSpecialControls.mm +++ b/src/VBox/Frontends/VirtualBox/src/platform/darwin/UICocoaSpecialControls.mm @@ -1,4 +1,4 @@ -/* $Id: UICocoaSpecialControls.mm 37115 2011-05-16 22:44:58Z vboxsync $ */ +/* $Id: UICocoaSpecialControls.mm $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/platform/darwin/UIDesktopServices_darwin.cpp b/src/VBox/Frontends/VirtualBox/src/platform/darwin/UIDesktopServices_darwin.cpp index 4ab55aaa2..75041bd20 100644 --- a/src/VBox/Frontends/VirtualBox/src/platform/darwin/UIDesktopServices_darwin.cpp +++ b/src/VBox/Frontends/VirtualBox/src/platform/darwin/UIDesktopServices_darwin.cpp @@ -1,4 +1,4 @@ -/* $Id: UIDesktopServices_darwin.cpp 34411 2010-11-26 16:57:30Z vboxsync $ */ +/* $Id: UIDesktopServices_darwin.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/platform/darwin/UIDesktopServices_darwin_cocoa.mm b/src/VBox/Frontends/VirtualBox/src/platform/darwin/UIDesktopServices_darwin_cocoa.mm index bc0502c42..213aafd3b 100644 --- a/src/VBox/Frontends/VirtualBox/src/platform/darwin/UIDesktopServices_darwin_cocoa.mm +++ b/src/VBox/Frontends/VirtualBox/src/platform/darwin/UIDesktopServices_darwin_cocoa.mm @@ -1,4 +1,4 @@ -/* $Id: UIDesktopServices_darwin_cocoa.mm 34411 2010-11-26 16:57:30Z vboxsync $ */ +/* $Id: UIDesktopServices_darwin_cocoa.mm $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/platform/darwin/UIWindowMenuManager.cpp b/src/VBox/Frontends/VirtualBox/src/platform/darwin/UIWindowMenuManager.cpp index 6acc1f3ad..1bd88925c 100644 --- a/src/VBox/Frontends/VirtualBox/src/platform/darwin/UIWindowMenuManager.cpp +++ b/src/VBox/Frontends/VirtualBox/src/platform/darwin/UIWindowMenuManager.cpp @@ -1,4 +1,4 @@ -/* $Id: UIWindowMenuManager.cpp 34401 2010-11-26 16:37:51Z vboxsync $ */ +/* $Id: UIWindowMenuManager.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxIChatTheaterWrapper.h b/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxIChatTheaterWrapper.h index d1e86f996..235bc0a29 100644 --- a/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxIChatTheaterWrapper.h +++ b/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxIChatTheaterWrapper.h @@ -1,4 +1,4 @@ -/* $Id: VBoxIChatTheaterWrapper.h 28800 2010-04-27 08:22:32Z vboxsync $ */ +/* $Id: VBoxIChatTheaterWrapper.h $ */ /** @file * Qt GUI - iChat Theater cocoa wrapper. */ diff --git a/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxIChatTheaterWrapper.m b/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxIChatTheaterWrapper.m index d5f5de91a..1fd2792e8 100644 --- a/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxIChatTheaterWrapper.m +++ b/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxIChatTheaterWrapper.m @@ -1,4 +1,4 @@ -/* $Id: VBoxIChatTheaterWrapper.m 28800 2010-04-27 08:22:32Z vboxsync $ */ +/* $Id: VBoxIChatTheaterWrapper.m $ */ /** @file * Qt GUI - iChat Theater cocoa wrapper. */ diff --git a/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxUtils-darwin-cocoa.mm b/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxUtils-darwin-cocoa.mm index 5fbd7d54a..cf4195177 100644 --- a/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxUtils-darwin-cocoa.mm +++ b/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxUtils-darwin-cocoa.mm @@ -1,4 +1,4 @@ -/* $Id: VBoxUtils-darwin-cocoa.mm 35870 2011-02-07 13:18:02Z vboxsync $ */ +/* $Id: VBoxUtils-darwin-cocoa.mm $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxUtils-darwin.cpp b/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxUtils-darwin.cpp index 030a73e96..2d9e363f7 100644 --- a/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxUtils-darwin.cpp +++ b/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxUtils-darwin.cpp @@ -1,4 +1,4 @@ -/* $Id: VBoxUtils-darwin.cpp 36534 2011-04-04 15:00:49Z vboxsync $ */ +/* $Id: VBoxUtils-darwin.cpp $ */ /** @file * Qt GUI - Utility Classes and Functions specific to Darwin. */ diff --git a/src/VBox/Frontends/VirtualBox/src/platform/darwin/tstDarwinKeyboard.cpp b/src/VBox/Frontends/VirtualBox/src/platform/darwin/tstDarwinKeyboard.cpp index 84a4ae4ab..929de5335 100644 --- a/src/VBox/Frontends/VirtualBox/src/platform/darwin/tstDarwinKeyboard.cpp +++ b/src/VBox/Frontends/VirtualBox/src/platform/darwin/tstDarwinKeyboard.cpp @@ -1,4 +1,4 @@ -/* $Id: tstDarwinKeyboard.cpp 28800 2010-04-27 08:22:32Z vboxsync $ */ +/* $Id: tstDarwinKeyboard.cpp $ */ /** @file * Common GUI Library - Testcase - Darwin Keyboard routines. * diff --git a/src/VBox/Frontends/VirtualBox/src/platform/darwin/vmstarter.mm b/src/VBox/Frontends/VirtualBox/src/platform/darwin/vmstarter.mm index 23bb6e0be..f755566af 100644 --- a/src/VBox/Frontends/VirtualBox/src/platform/darwin/vmstarter.mm +++ b/src/VBox/Frontends/VirtualBox/src/platform/darwin/vmstarter.mm @@ -1,4 +1,4 @@ -/* $Id: vmstarter.mm 34275 2010-11-23 11:08:52Z vboxsync $ */ +/* $Id: vmstarter.mm $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/platform/os2/VBoxHlp.asm b/src/VBox/Frontends/VirtualBox/src/platform/os2/VBoxHlp.asm index 40739aa46..f82fac0b6 100644 --- a/src/VBox/Frontends/VirtualBox/src/platform/os2/VBoxHlp.asm +++ b/src/VBox/Frontends/VirtualBox/src/platform/os2/VBoxHlp.asm @@ -1,4 +1,4 @@ -; $Id: VBoxHlp.asm 28800 2010-04-27 08:22:32Z vboxsync $ +; $Id: VBoxHlp.asm $ ;; @file ; ; VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/platform/os2/VBoxHlp.cpp b/src/VBox/Frontends/VirtualBox/src/platform/os2/VBoxHlp.cpp index 989a7606c..87244dc56 100644 --- a/src/VBox/Frontends/VirtualBox/src/platform/os2/VBoxHlp.cpp +++ b/src/VBox/Frontends/VirtualBox/src/platform/os2/VBoxHlp.cpp @@ -1,4 +1,4 @@ -/* $Id: VBoxHlp.cpp 28800 2010-04-27 08:22:32Z vboxsync $ */ +/* $Id: VBoxHlp.cpp $ */ /** @file * VBox frontends: Qt GUI ("VirtualBox"): * Implementation of OS/2-specific helpers that require to reside in a DLL diff --git a/src/VBox/Frontends/VirtualBox/src/platform/win/UIDesktopServices_win.cpp b/src/VBox/Frontends/VirtualBox/src/platform/win/UIDesktopServices_win.cpp index a5f67ef7f..7f14234ef 100644 --- a/src/VBox/Frontends/VirtualBox/src/platform/win/UIDesktopServices_win.cpp +++ b/src/VBox/Frontends/VirtualBox/src/platform/win/UIDesktopServices_win.cpp @@ -1,4 +1,4 @@ -/* $Id: UIDesktopServices_win.cpp 34415 2010-11-26 17:09:29Z vboxsync $ */ +/* $Id: UIDesktopServices_win.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/platform/win/VBoxUtils-win.cpp b/src/VBox/Frontends/VirtualBox/src/platform/win/VBoxUtils-win.cpp index fc980a52c..50ee3aea9 100644 --- a/src/VBox/Frontends/VirtualBox/src/platform/win/VBoxUtils-win.cpp +++ b/src/VBox/Frontends/VirtualBox/src/platform/win/VBoxUtils-win.cpp @@ -1,4 +1,4 @@ -/* $Id: VBoxUtils-win.cpp 35940 2011-02-11 11:58:32Z vboxsync $ */ +/* $Id: VBoxUtils-win.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/platform/win/VirtualBox.rc b/src/VBox/Frontends/VirtualBox/src/platform/win/VirtualBox.rc index 87ea3ba74..64ac53857 100644 --- a/src/VBox/Frontends/VirtualBox/src/platform/win/VirtualBox.rc +++ b/src/VBox/Frontends/VirtualBox/src/platform/win/VirtualBox.rc @@ -1,4 +1,4 @@ -/* $Id: VirtualBox.rc 34384 2010-11-25 16:23:57Z vboxsync $ */ +/* $Id: VirtualBox.rc $ */ /** @file * Windows resource file for VirtualBox.exe. */ diff --git a/src/VBox/Frontends/VirtualBox/src/platform/x11/UIDesktopServices_x11.cpp b/src/VBox/Frontends/VirtualBox/src/platform/x11/UIDesktopServices_x11.cpp index e4fd8dcab..6aa8200d3 100644 --- a/src/VBox/Frontends/VirtualBox/src/platform/x11/UIDesktopServices_x11.cpp +++ b/src/VBox/Frontends/VirtualBox/src/platform/x11/UIDesktopServices_x11.cpp @@ -1,4 +1,4 @@ -/* $Id: UIDesktopServices_x11.cpp 34886 2010-12-09 14:06:02Z vboxsync $ */ +/* $Id: UIDesktopServices_x11.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/platform/x11/VBoxX11Helper.cpp b/src/VBox/Frontends/VirtualBox/src/platform/x11/VBoxX11Helper.cpp index 9d70cb657..45b2e5c85 100644 --- a/src/VBox/Frontends/VirtualBox/src/platform/x11/VBoxX11Helper.cpp +++ b/src/VBox/Frontends/VirtualBox/src/platform/x11/VBoxX11Helper.cpp @@ -1,4 +1,4 @@ -/* $Id: VBoxX11Helper.cpp 28800 2010-04-27 08:22:32Z vboxsync $ */ +/* $Id: VBoxX11Helper.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/platform/x11/XKeyboard-new.cpp b/src/VBox/Frontends/VirtualBox/src/platform/x11/XKeyboard-new.cpp index 980ada621..cb9728efb 100644 --- a/src/VBox/Frontends/VirtualBox/src/platform/x11/XKeyboard-new.cpp +++ b/src/VBox/Frontends/VirtualBox/src/platform/x11/XKeyboard-new.cpp @@ -1,4 +1,4 @@ -/* $Id: XKeyboard-new.cpp 36335 2011-03-21 21:58:58Z vboxsync $ */ +/* $Id: XKeyboard-new.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/precomp.h b/src/VBox/Frontends/VirtualBox/src/precomp.h index 58d43eae1..778e95c1b 100644 --- a/src/VBox/Frontends/VirtualBox/src/precomp.h +++ b/src/VBox/Frontends/VirtualBox/src/precomp.h @@ -1,4 +1,4 @@ -/* $Id: precomp.h 38412 2011-08-11 09:50:04Z vboxsync $*/ +/* $Id: precomp.h $*/ /** @file * Header used if VBOX_WITH_PRECOMPILED_HEADERS is active. */ diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/UIActionPoolRuntime.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/UIActionPoolRuntime.cpp index 95963db52..514fac4f6 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/UIActionPoolRuntime.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/UIActionPoolRuntime.cpp @@ -1,4 +1,4 @@ -/* $Id: UIActionPoolRuntime.cpp 38398 2011-08-10 13:24:33Z vboxsync $ */ +/* $Id: UIActionPoolRuntime.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/UIConsoleEventHandler.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/UIConsoleEventHandler.cpp index b444f6d28..4fa97ea27 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/UIConsoleEventHandler.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/UIConsoleEventHandler.cpp @@ -1,4 +1,4 @@ -/* $Id: UIConsoleEventHandler.cpp 37712 2011-06-30 14:11:14Z vboxsync $ */ +/* $Id: UIConsoleEventHandler.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBuffer.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBuffer.cpp index 3f8681244..5526b3d5f 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBuffer.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBuffer.cpp @@ -1,4 +1,4 @@ -/* $Id: UIFrameBuffer.cpp 38311 2011-08-04 13:08:39Z vboxsync $ */ +/* $Id: UIFrameBuffer.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBufferDirectDraw.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBufferDirectDraw.cpp index bb9384752..650cb5bfd 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBufferDirectDraw.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBufferDirectDraw.cpp @@ -1,4 +1,4 @@ -/* $Id: UIFrameBufferDirectDraw.cpp 33540 2010-10-28 09:27:05Z vboxsync $ */ +/* $Id: UIFrameBufferDirectDraw.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBufferQGL.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBufferQGL.cpp index c5e43f903..ecc38973e 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBufferQGL.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBufferQGL.cpp @@ -1,4 +1,4 @@ -/* $Id: UIFrameBufferQGL.cpp 28800 2010-04-27 08:22:32Z vboxsync $ */ +/* $Id: UIFrameBufferQGL.cpp $ */ /** @file * VBoxFBQGL Opengl-based FrameBuffer implementation */ diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBufferQImage.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBufferQImage.cpp index 03fca3218..36b0e5d08 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBufferQImage.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBufferQImage.cpp @@ -1,4 +1,4 @@ -/* $Id: UIFrameBufferQImage.cpp 38311 2011-08-04 13:08:39Z vboxsync $ */ +/* $Id: UIFrameBufferQImage.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBufferQuartz2D.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBufferQuartz2D.cpp index 077be1638..0a36a080d 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBufferQuartz2D.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBufferQuartz2D.cpp @@ -1,4 +1,4 @@ -/* $Id: UIFrameBufferQuartz2D.cpp 38311 2011-08-04 13:08:39Z vboxsync $ */ +/* $Id: UIFrameBufferQuartz2D.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBufferSDL.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBufferSDL.cpp index 86ce55066..8b035679b 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBufferSDL.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBufferSDL.cpp @@ -1,4 +1,4 @@ -/* $Id: UIFrameBufferSDL.cpp 28800 2010-04-27 08:22:32Z vboxsync $ */ +/* $Id: UIFrameBufferSDL.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/UIIndicatorsPool.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/UIIndicatorsPool.cpp index 9e2d48e0b..2da9d00ee 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/UIIndicatorsPool.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/UIIndicatorsPool.cpp @@ -1,4 +1,4 @@ -/* $Id: UIIndicatorsPool.cpp 38318 2011-08-04 15:51:15Z vboxsync $ */ +/* $Id: UIIndicatorsPool.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/UIKeyboardHandler.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/UIKeyboardHandler.cpp index 44055b6a9..596617000 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/UIKeyboardHandler.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/UIKeyboardHandler.cpp @@ -1,4 +1,4 @@ -/* $Id: UIKeyboardHandler.cpp 38348 2011-08-08 12:09:18Z vboxsync $ */ +/* $Id: UIKeyboardHandler.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): @@ -918,9 +918,6 @@ bool UIKeyboardHandler::winLowKeyboardEvent(UINT msg, const KBDLLHOOKSTRUCT &eve if (!m_views.contains(m_iKeyboardHookViewIndex)) return false; - if (!m_fIsKeyboardCaptured) - return false; - /* Sometimes it happens that Win inserts additional events on some key * press/release. For example, it prepends ALT_GR in German layout with * the VK_LCONTROL vkey with curious 0x21D scan code (seems to be necessary @@ -939,6 +936,14 @@ bool UIKeyboardHandler::winLowKeyboardEvent(UINT msg, const KBDLLHOOKSTRUCT &eve return true; } + /** @todo this needs to be after the preceding check so that + * we ignore those spurious key events even when the + * keyboard is not captured. However, that is probably a + * hint that that filtering should be done somewhere else, + * and not in the keyboard capture handler. */ + if (!m_fIsKeyboardCaptured) + return false; + /* It's possible that a key has been pressed while the keyboard was not * captured, but is being released under the capture. Detect this situation * and return false to let Windows process the message normally and update diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/UIMachine.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/UIMachine.cpp index bf11657fd..2df17a4f9 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/UIMachine.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/UIMachine.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMachine.cpp 38348 2011-08-08 12:09:18Z vboxsync $ */ +/* $Id: UIMachine.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): @@ -385,9 +385,6 @@ UIMachine::UIMachine(UIMachine **ppSelf, const CSession &session) if (m_ppThis) *m_ppThis = this; - /* Create action pool: */ - UIActionPoolRuntime::create(); - /* Create UISession object: */ m_pSession = new UISession(this, m_session); @@ -417,8 +414,6 @@ UIMachine::~UIMachine() m_pSession = 0; m_session.UnlockMachine(); m_session.detach(); - /* Destroy action pool: */ - UIActionPoolRuntime::destroy(); /* Quit application: */ QApplication::quit(); } diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp index 00ffcb21e..36733e1d7 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMachineLogic.cpp 38431 2011-08-12 11:04:16Z vboxsync $ */ +/* $Id: UIMachineLogic.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): @@ -45,7 +45,6 @@ /* Global includes */ #include <iprt/path.h> -#include <VBox/VMMDev.h> #ifdef VBOX_WITH_DEBUGGER_GUI # include <iprt/ldr.h> @@ -1454,7 +1453,7 @@ void UIMachineLogic::sltInstallGuestAdditions() /* Check for the already registered image */ CVirtualBox vbox = vboxGlobal().virtualBox(); - QString name = QString("VBoxGuestAdditions_%1.iso").arg(vbox.GetVersion().remove("_OSE")); + const QString &name = QString("VBoxGuestAdditions_%1.iso").arg(vboxGlobal().vboxVersionStringNormalized()); CMediumVector vec = vbox.GetDVDImages(); for (CMediumVector::ConstIterator it = vec.begin(); it != vec.end(); ++ it) @@ -1470,8 +1469,8 @@ void UIMachineLogic::sltInstallGuestAdditions() int result = msgCenter().cannotFindGuestAdditions(QDir::toNativeSeparators(strSrc1), QDir::toNativeSeparators(strSrc2)); if (result == QIMessageBox::Yes) { - QString source = QString("http://download.virtualbox.org/virtualbox/%1/").arg(vbox.GetVersion().remove("_OSE")) + name; - QString target = QDir(vboxGlobal().virtualBox().GetHomeFolder()).absoluteFilePath(name); + const QString &source = QString("http://download.virtualbox.org/virtualbox/%1/").arg(vboxGlobal().vboxVersionStringNormalized()) + name; + const QString &target = QDir(vboxGlobal().virtualBox().GetHomeFolder()).absoluteFilePath(name); UIDownloaderAdditions *pDl = UIDownloaderAdditions::create(); /* Configure the additions downloader. */ diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineMenuBar.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineMenuBar.cpp index df3a44cd6..9cedf9c5b 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineMenuBar.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineMenuBar.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMachineMenuBar.cpp 38348 2011-08-08 12:09:18Z vboxsync $ */ +/* $Id: UIMachineMenuBar.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): @@ -25,6 +25,7 @@ #include "UIMessageCenter.h" #include "UIExtraDataEventHandler.h" #include "UIImageTools.h" +#include "UIUpdateManager.h" /* Global includes */ #include <QMenuBar> @@ -294,7 +295,7 @@ void UIMachineMenuBar::prepareMenuHelp(QMenu *pMenu) VBoxGlobal::connect(gActionPool->action(UIActionIndex_Simple_About), SIGNAL(triggered()), &msgCenter(), SLOT(sltShowHelpAboutDialog())); VBoxGlobal::connect(gActionPool->action(UIActionIndex_Simple_Update), SIGNAL(triggered()), - &vboxGlobal(), SLOT(showUpdateDialog())); + gUpdateManager, SLOT(sltForceCheck())); #if defined(Q_WS_MAC) && (QT_VERSION < 0x040700) } #endif diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineShortcuts.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineShortcuts.cpp index ea96cb204..7fbed1cb8 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineShortcuts.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineShortcuts.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMachineShortcuts.cpp 36357 2011-03-23 09:36:05Z vboxsync $ */ +/* $Id: UIMachineShortcuts.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineView.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineView.cpp index b9405ef86..be044115d 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineView.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineView.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMachineView.cpp 38348 2011-08-08 12:09:18Z vboxsync $ */ +/* $Id: UIMachineView.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): @@ -485,6 +485,11 @@ void UIMachineView::cleanupFrameBuffer() * 2. make it easier to preserve the current 2D state */ Assert(m_pFrameBuffer == uisession()->frameBuffer(screenId())); m_pFrameBuffer->setView(NULL); +#ifdef VBOX_WITH_CROGL + /* Call SetFramebuffer to ensure 3D gets notified of view being destroyed */ + CDisplay display = session().GetConsole().GetDisplay(); + display.SetFramebuffer(m_uScreenId, CFramebuffer(m_pFrameBuffer)); +#endif } else #endif /* VBOX_WITH_VIDEOHWACCEL */ diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineWindow.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineWindow.cpp index 2efbc152c..def6976d0 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineWindow.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineWindow.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMachineWindow.cpp 38348 2011-08-08 12:09:18Z vboxsync $ */ +/* $Id: UIMachineWindow.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): @@ -197,6 +197,13 @@ void UIMachineWindow::closeEvent(QCloseEvent *pEvent) /* Get the machine: */ CMachine machine = session().GetMachine(); + /* Check if there is a close hock script defined. */ + const QString& strScript = machine.GetExtraData(VBoxDefs::GUI_CloseActionHook); + if (!strScript.isEmpty()) + { + QProcess::startDetached(strScript, QStringList() << machine.GetId()); + return; + } /* Prepare close dialog: */ UIVMCloseDialog dlg(machineWindow()); diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/UIMouseHandler.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/UIMouseHandler.cpp index b80a181c0..735b06e2b 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/UIMouseHandler.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/UIMouseHandler.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMouseHandler.cpp 38311 2011-08-04 13:08:39Z vboxsync $ */ +/* $Id: UIMouseHandler.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/UIMultiScreenLayout.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/UIMultiScreenLayout.cpp index 741dec02f..bbe49bc23 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/UIMultiScreenLayout.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/UIMultiScreenLayout.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMultiScreenLayout.cpp 38348 2011-08-08 12:09:18Z vboxsync $ */ +/* $Id: UIMultiScreenLayout.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp index 00611716b..1a37d4ef5 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp @@ -1,4 +1,4 @@ -/* $Id: UISession.cpp 38348 2011-08-08 12:09:18Z vboxsync $ */ +/* $Id: UISession.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): @@ -1026,11 +1026,6 @@ void UISession::reinitMenuPool() void UISession::preparePowerUp() { -#ifdef VBOX_WITH_UPDATE_REQUEST - /* Check for updates if necessary: */ - vboxGlobal().showUpdateDialog(false /* force request? */); -#endif - /* Notify user about mouse&keyboard auto-capturing: */ if (vboxGlobal().settings().autoCapture()) msgCenter().remindAboutAutoCapture(); diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/UIVMCloseDialog.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/UIVMCloseDialog.cpp index 0b8aa1e95..ebd02ef57 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/UIVMCloseDialog.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/UIVMCloseDialog.cpp @@ -1,4 +1,4 @@ -/* $Id: UIVMCloseDialog.cpp 38311 2011-08-04 13:08:39Z vboxsync $ */ +/* $Id: UIVMCloseDialog.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIKeyboardHandlerFullscreen.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIKeyboardHandlerFullscreen.cpp index 66e4db31d..d21199c6e 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIKeyboardHandlerFullscreen.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIKeyboardHandlerFullscreen.cpp @@ -1,4 +1,4 @@ -/* $Id: UIKeyboardHandlerFullscreen.cpp 35752 2011-01-28 10:57:53Z vboxsync $ */ +/* $Id: UIKeyboardHandlerFullscreen.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineLogicFullscreen.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineLogicFullscreen.cpp index 55b189c26..8b915e6d5 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineLogicFullscreen.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineLogicFullscreen.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMachineLogicFullscreen.cpp 38348 2011-08-08 12:09:18Z vboxsync $ */ +/* $Id: UIMachineLogicFullscreen.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineViewFullscreen.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineViewFullscreen.cpp index 3cf048145..410356772 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineViewFullscreen.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineViewFullscreen.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMachineViewFullscreen.cpp 38348 2011-08-08 12:09:18Z vboxsync $ */ +/* $Id: UIMachineViewFullscreen.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.cpp index f3876cb4b..40ff70c3e 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMachineWindowFullscreen.cpp 38348 2011-08-08 12:09:18Z vboxsync $ */ +/* $Id: UIMachineWindowFullscreen.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIKeyboardHandlerNormal.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIKeyboardHandlerNormal.cpp index 3796e4055..782417d88 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIKeyboardHandlerNormal.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIKeyboardHandlerNormal.cpp @@ -1,4 +1,4 @@ -/* $Id: UIKeyboardHandlerNormal.cpp 35752 2011-01-28 10:57:53Z vboxsync $ */ +/* $Id: UIKeyboardHandlerNormal.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineLogicNormal.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineLogicNormal.cpp index cf1f56f23..c96496a7b 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineLogicNormal.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineLogicNormal.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMachineLogicNormal.cpp 38348 2011-08-08 12:09:18Z vboxsync $ */ +/* $Id: UIMachineLogicNormal.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): @@ -30,6 +30,7 @@ #include "UIMachineLogicNormal.h" #include "UIMachineWindow.h" #include "UIDownloaderAdditions.h" +#include "UIDownloaderExtensionPack.h" #ifdef Q_WS_MAC #include "VBoxUtils.h" @@ -76,11 +77,14 @@ void UIMachineLogicNormal::initialize() /* Prepare normal machine window: */ prepareMachineWindows(); - /* If there is an Additions download running, update the parent window - * information. */ + /* If there is an Additions download running, update the parent window information. */ if (UIDownloaderAdditions *pDl = UIDownloaderAdditions::current()) pDl->setParentWidget(mainMachineWindow()->machineWindow()); + /* If there is an Extension Pack download running, update the parent window information. */ + if (UIDownloaderExtensionPack *pDl = UIDownloaderExtensionPack::current()) + pDl->setParentWidget(mainMachineWindow()->machineWindow()); + #ifdef Q_WS_MAC /* Prepare dock: */ prepareDock(); diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineViewNormal.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineViewNormal.cpp index c48658135..98b0afc3f 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineViewNormal.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineViewNormal.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMachineViewNormal.cpp 38348 2011-08-08 12:09:18Z vboxsync $ */ +/* $Id: UIMachineViewNormal.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineWindowNormal.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineWindowNormal.cpp index a9defab8f..952f1b642 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineWindowNormal.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineWindowNormal.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMachineWindowNormal.cpp 38348 2011-08-08 12:09:18Z vboxsync $ */ +/* $Id: UIMachineWindowNormal.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): @@ -36,8 +36,10 @@ #include "UIMachineLogic.h" #include "UIMachineWindowNormal.h" #include "UIMachineView.h" +#include "UIUpdateManager.h" #include "UIDownloaderAdditions.h" #include "UIDownloaderUserManual.h" +#include "UIDownloaderExtensionPack.h" #ifdef Q_WS_MAC # include "UIImageTools.h" #endif /* Q_WS_MAC */ @@ -167,20 +169,27 @@ void UIMachineWindowNormal::sltTryClose() UIMachineWindow::sltTryClose(); } -void UIMachineWindowNormal::sltDownloaderAdditionsEmbed() +void UIMachineWindowNormal::sltEmbedDownloaderForAdditions() { /* If there is an additions download running show the process bar: */ if (UIDownloaderAdditions *pDl = UIDownloaderAdditions::current()) statusBar()->addWidget(pDl->progressWidget(this), 0); } -void UIMachineWindowNormal::sltDownloaderUserManualEmbed() +void UIMachineWindowNormal::sltEmbedDownloaderForUserManual() { /* If there is an additions download running show the process bar: */ if (UIDownloaderUserManual *pDl = UIDownloaderUserManual::current()) statusBar()->addWidget(pDl->progressWidget(this), 0); } +void UIMachineWindowNormal::sltEmbedDownloaderForExtensionPack() +{ + /* If there is an extension pack download running show the process bar: */ + if (UIDownloaderExtensionPack *pDl = UIDownloaderExtensionPack::current()) + statusBar()->addWidget(pDl->progressWidget(this), 0); +} + void UIMachineWindowNormal::sltUpdateIndicators() { CConsole console = session().GetConsole(); @@ -459,11 +468,15 @@ void UIMachineWindowNormal::prepareStatusBar() /* Add the additions downloader progress bar to the status bar, * if a download is actually running: */ - sltDownloaderAdditionsEmbed(); + sltEmbedDownloaderForAdditions(); /* Add the user manual progress bar to the status bar, * if a download is actually running: */ - sltDownloaderUserManualEmbed(); + sltEmbedDownloaderForUserManual(); + + /* Add the extension pack progress bar to the status bar, + * if a download is actually running: */ + sltEmbedDownloaderForExtensionPack(); /* Create & start timer to update LEDs: */ m_pIdleTimer = new QTimer(this); @@ -482,9 +495,11 @@ void UIMachineWindowNormal::prepareConnections() connect(&vboxGlobal().settings(), SIGNAL(propertyChanged(const char *, const char *)), this, SLOT(sltProcessGlobalSettingChange(const char *, const char *))); /* Setup additions downloader listener: */ - connect(machineLogic(), SIGNAL(sigDownloaderAdditionsCreated()), this, SLOT(sltDownloaderAdditionsEmbed())); + connect(machineLogic(), SIGNAL(sigDownloaderAdditionsCreated()), this, SLOT(sltEmbedDownloaderForAdditions())); /* Setup user manual downloader listener: */ - connect(&msgCenter(), SIGNAL(sigDownloaderUserManualCreated()), this, SLOT(sltDownloaderUserManualEmbed())); + connect(&msgCenter(), SIGNAL(sigDownloaderUserManualCreated()), this, SLOT(sltEmbedDownloaderForUserManual())); + /* Setup extension pack downloader listener: */ + connect(gUpdateManager, SIGNAL(sigDownloaderCreatedForExtensionPack()), this, SLOT(sltEmbedDownloaderForExtensionPack())); } void UIMachineWindowNormal::prepareMachineView() diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineWindowNormal.h b/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineWindowNormal.h index 39be14cdf..36339db62 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineWindowNormal.h +++ b/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineWindowNormal.h @@ -62,8 +62,9 @@ private slots: void sltTryClose(); /* Downloader listeners: */ - void sltDownloaderAdditionsEmbed(); - void sltDownloaderUserManualEmbed(); + void sltEmbedDownloaderForAdditions(); + void sltEmbedDownloaderForUserManual(); + void sltEmbedDownloaderForExtensionPack(); private: diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIKeyboardHandlerScale.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIKeyboardHandlerScale.cpp index 4356e604d..3b6290221 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIKeyboardHandlerScale.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIKeyboardHandlerScale.cpp @@ -1,4 +1,4 @@ -/* $Id: UIKeyboardHandlerScale.cpp 35752 2011-01-28 10:57:53Z vboxsync $ */ +/* $Id: UIKeyboardHandlerScale.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIMachineLogicScale.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIMachineLogicScale.cpp index 0e5861c47..ed253f960 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIMachineLogicScale.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIMachineLogicScale.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMachineLogicScale.cpp 38348 2011-08-08 12:09:18Z vboxsync $ */ +/* $Id: UIMachineLogicScale.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): @@ -27,6 +27,7 @@ #include "UIMachineLogicScale.h" #include "UIMachineWindow.h" #include "UIDownloaderAdditions.h" +#include "UIDownloaderExtensionPack.h" #ifdef Q_WS_MAC #include "VBoxUtils.h" @@ -96,11 +97,14 @@ void UIMachineLogicScale::initialize() /* Prepare scale machine window: */ prepareMachineWindows(); - /* If there is an Additions download running, update the parent window - * information. */ + /* If there is an Additions download running, update the parent window information. */ if (UIDownloaderAdditions *pDl = UIDownloaderAdditions::current()) pDl->setParentWidget(mainMachineWindow()->machineWindow()); + /* If there is an Extension Pack download running, update the parent window information. */ + if (UIDownloaderExtensionPack *pDl = UIDownloaderExtensionPack::current()) + pDl->setParentWidget(mainMachineWindow()->machineWindow()); + #ifdef Q_WS_MAC /* Prepare dock: */ prepareDock(); diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIMachineViewScale.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIMachineViewScale.cpp index 5dc242f2a..460f6fc06 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIMachineViewScale.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIMachineViewScale.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMachineViewScale.cpp 33595 2010-10-29 10:35:00Z vboxsync $ */ +/* $Id: UIMachineViewScale.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIMachineWindowScale.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIMachineWindowScale.cpp index 7aa4bf135..5cccacbd0 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIMachineWindowScale.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIMachineWindowScale.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMachineWindowScale.cpp 38348 2011-08-08 12:09:18Z vboxsync $ */ +/* $Id: UIMachineWindowScale.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIKeyboardHandlerSeamless.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIKeyboardHandlerSeamless.cpp index c5228ca38..46bfd7e02 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIKeyboardHandlerSeamless.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIKeyboardHandlerSeamless.cpp @@ -1,4 +1,4 @@ -/* $Id: UIKeyboardHandlerSeamless.cpp 35752 2011-01-28 10:57:53Z vboxsync $ */ +/* $Id: UIKeyboardHandlerSeamless.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineLogicSeamless.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineLogicSeamless.cpp index ca400ea5e..93f0b43bd 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineLogicSeamless.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineLogicSeamless.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMachineLogicSeamless.cpp 38348 2011-08-08 12:09:18Z vboxsync $ */ +/* $Id: UIMachineLogicSeamless.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineViewSeamless.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineViewSeamless.cpp index 7e732253c..529a33772 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineViewSeamless.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineViewSeamless.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMachineViewSeamless.cpp 32174 2010-09-01 12:52:17Z vboxsync $ */ +/* $Id: UIMachineViewSeamless.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineWindowSeamless.cpp b/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineWindowSeamless.cpp index f27c90742..e2ea129ae 100644 --- a/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineWindowSeamless.cpp +++ b/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineWindowSeamless.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMachineWindowSeamless.cpp 38348 2011-08-08 12:09:18Z vboxsync $ */ +/* $Id: UIMachineWindowSeamless.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/selector/UIActionPoolSelector.cpp b/src/VBox/Frontends/VirtualBox/src/selector/UIActionPoolSelector.cpp index 2f7c3f91e..e0a10e0b3 100644 --- a/src/VBox/Frontends/VirtualBox/src/selector/UIActionPoolSelector.cpp +++ b/src/VBox/Frontends/VirtualBox/src/selector/UIActionPoolSelector.cpp @@ -1,4 +1,4 @@ -/* $Id: UIActionPoolSelector.cpp 38372 2011-08-09 09:52:55Z vboxsync $ */ +/* $Id: UIActionPoolSelector.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/selector/UISelectorShortcuts.cpp b/src/VBox/Frontends/VirtualBox/src/selector/UISelectorShortcuts.cpp index fda5c78ad..f7ce62913 100644 --- a/src/VBox/Frontends/VirtualBox/src/selector/UISelectorShortcuts.cpp +++ b/src/VBox/Frontends/VirtualBox/src/selector/UISelectorShortcuts.cpp @@ -1,4 +1,4 @@ -/* $Id: UISelectorShortcuts.cpp 37878 2011-07-11 16:15:02Z vboxsync $ */ +/* $Id: UISelectorShortcuts.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/selector/UIVMDesktop.cpp b/src/VBox/Frontends/VirtualBox/src/selector/UIVMDesktop.cpp index 8eb12e9dc..8f1a6fb0a 100644 --- a/src/VBox/Frontends/VirtualBox/src/selector/UIVMDesktop.cpp +++ b/src/VBox/Frontends/VirtualBox/src/selector/UIVMDesktop.cpp @@ -1,4 +1,4 @@ -/* $Id: UIVMDesktop.cpp 37755 2011-07-04 10:21:00Z vboxsync $ */ +/* $Id: UIVMDesktop.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/selector/UIVMItem.cpp b/src/VBox/Frontends/VirtualBox/src/selector/UIVMItem.cpp index 08c6a4f81..bd3587194 100644 --- a/src/VBox/Frontends/VirtualBox/src/selector/UIVMItem.cpp +++ b/src/VBox/Frontends/VirtualBox/src/selector/UIVMItem.cpp @@ -1,4 +1,4 @@ -/* $Id: UIVMItem.cpp 38311 2011-08-04 13:08:39Z vboxsync $ */ +/* $Id: UIVMItem.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/selector/UIVMListView.cpp b/src/VBox/Frontends/VirtualBox/src/selector/UIVMListView.cpp index 74429c86c..822cdc676 100644 --- a/src/VBox/Frontends/VirtualBox/src/selector/UIVMListView.cpp +++ b/src/VBox/Frontends/VirtualBox/src/selector/UIVMListView.cpp @@ -1,4 +1,4 @@ -/* $Id: UIVMListView.cpp 38311 2011-08-04 13:08:39Z vboxsync $ */ +/* $Id: UIVMListView.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/selector/UIVMPreviewWindow.cpp b/src/VBox/Frontends/VirtualBox/src/selector/UIVMPreviewWindow.cpp index 4c7774f0e..de9f554d1 100644 --- a/src/VBox/Frontends/VirtualBox/src/selector/UIVMPreviewWindow.cpp +++ b/src/VBox/Frontends/VirtualBox/src/selector/UIVMPreviewWindow.cpp @@ -1,4 +1,4 @@ -/* $Id: UIVMPreviewWindow.cpp 35798 2011-01-31 18:09:28Z vboxsync $ */ +/* $Id: UIVMPreviewWindow.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/selector/UIVirtualBoxEventHandler.cpp b/src/VBox/Frontends/VirtualBox/src/selector/UIVirtualBoxEventHandler.cpp index f284021a5..453f4f01f 100644 --- a/src/VBox/Frontends/VirtualBox/src/selector/UIVirtualBoxEventHandler.cpp +++ b/src/VBox/Frontends/VirtualBox/src/selector/UIVirtualBoxEventHandler.cpp @@ -1,4 +1,4 @@ -/* $Id: UIVirtualBoxEventHandler.cpp 35722 2011-01-26 16:37:16Z vboxsync $ */ +/* $Id: UIVirtualBoxEventHandler.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/selector/VBoxSelectorWnd.cpp b/src/VBox/Frontends/VirtualBox/src/selector/VBoxSelectorWnd.cpp index 9db321781..b9a2185b5 100644 --- a/src/VBox/Frontends/VirtualBox/src/selector/VBoxSelectorWnd.cpp +++ b/src/VBox/Frontends/VirtualBox/src/selector/VBoxSelectorWnd.cpp @@ -21,7 +21,9 @@ #else /* !VBOX_WITH_PRECOMPILED_HEADERS */ #include "QISplitter.h" #include "UIBar.h" +#include "UIUpdateManager.h" #include "UIDownloaderUserManual.h" +#include "UIDownloaderExtensionPack.h" #include "UIExportApplianceWzd.h" #include "UIIconPool.h" #include "UIImportApplianceWzd.h" @@ -41,7 +43,7 @@ #include "UISelectorShortcuts.h" #include "UIDesktopServices.h" #include "UIGlobalSettingsExtension.h" /* extension pack installation */ -#include "UIActionPoolSelector.h" +#include "UIActionPool.h" #ifdef VBOX_GUI_WITH_SYSTRAY # include "VBoxTrayIcon.h" @@ -93,9 +95,6 @@ VBoxSelectorWnd(VBoxSelectorWnd **aSelf, QWidget* aParent, : QIWithRetranslateUI2<QMainWindow>(aParent, aFlags) , mDoneInaccessibleWarningOnce(false) { - /* Create offline action pool: */ - UIActionPoolSelector::create(); - VBoxGlobalSettings settings = vboxGlobal().settings(); if (aSelf) @@ -493,7 +492,8 @@ VBoxSelectorWnd(VBoxSelectorWnd **aSelf, QWidget* aParent, #endif /* Listen to potential downloaders signals: */ - connect(&msgCenter(), SIGNAL(sigDownloaderUserManualCreated()), this, SLOT(sltDownloaderUserManualEmbed())); + connect(&msgCenter(), SIGNAL(sigDownloaderUserManualCreated()), this, SLOT(sltEmbedDownloaderForUserManual())); + connect(gUpdateManager, SIGNAL(sigDownloaderCreatedForExtensionPack()), this, SLOT(sltEmbedDownloaderForExtensionPack())); /* bring the VM list to the focus */ mVMListView->setFocus(); @@ -562,9 +562,6 @@ VBoxSelectorWnd::~VBoxSelectorWnd() /* Delete the items from our model */ mVMModel->clear(); - - /* Delete offline action pool: */ - UIActionPoolSelector::destroy(); } // @@ -1662,13 +1659,20 @@ void VBoxSelectorWnd::trayIconChanged(bool fEnabled) #endif /* VBOX_GUI_WITH_SYSTRAY */ -void VBoxSelectorWnd::sltDownloaderUserManualEmbed() +void VBoxSelectorWnd::sltEmbedDownloaderForUserManual() { /* If there is User Manual downloader created => show the process bar: */ if (UIDownloaderUserManual *pDl = UIDownloaderUserManual::current()) statusBar()->addWidget(pDl->progressWidget(this), 0); } +void VBoxSelectorWnd::sltEmbedDownloaderForExtensionPack() +{ + /* If there is Extension Pack downloader created => show the process bar: */ + if (UIDownloaderExtensionPack *pDl = UIDownloaderExtensionPack::current()) + statusBar()->addWidget(pDl->progressWidget(this), 0); +} + void VBoxSelectorWnd::showViewContextMenu(const QPoint &pos) { CVirtualBox vbox = vboxGlobal().virtualBox(); @@ -1769,7 +1773,7 @@ void VBoxSelectorWnd::prepareMenuHelp(QMenu *pMenu) gActionPool->action(UIActionIndex_Simple_Register), SLOT(setEnabled(bool))); #endif /* VBOX_WITH_REGISTRATION */ VBoxGlobal::connect(gActionPool->action(UIActionIndex_Simple_Update), SIGNAL(triggered()), - &vboxGlobal(), SLOT(showUpdateDialog())); + gUpdateManager, SLOT(sltForceCheck())); VBoxGlobal::connect(gActionPool->action(UIActionIndex_Simple_About), SIGNAL(triggered()), &msgCenter(), SLOT(sltShowHelpAboutDialog())); } diff --git a/src/VBox/Frontends/VirtualBox/src/selector/VBoxSelectorWnd.h b/src/VBox/Frontends/VirtualBox/src/selector/VBoxSelectorWnd.h index a69ba2f4f..31d2885d5 100644 --- a/src/VBox/Frontends/VirtualBox/src/selector/VBoxSelectorWnd.h +++ b/src/VBox/Frontends/VirtualBox/src/selector/VBoxSelectorWnd.h @@ -133,7 +133,8 @@ private slots: void trayIconChanged(bool fEnabled); #endif - void sltDownloaderUserManualEmbed(); + void sltEmbedDownloaderForUserManual(); + void sltEmbedDownloaderForExtensionPack(); void showViewContextMenu(const QPoint &pos); diff --git a/src/VBox/Frontends/VirtualBox/src/selector/VBoxSnapshotsWgt.cpp b/src/VBox/Frontends/VirtualBox/src/selector/VBoxSnapshotsWgt.cpp index d06e913ce..2756260ea 100644 --- a/src/VBox/Frontends/VirtualBox/src/selector/VBoxSnapshotsWgt.cpp +++ b/src/VBox/Frontends/VirtualBox/src/selector/VBoxSnapshotsWgt.cpp @@ -1,4 +1,4 @@ -/* $Id: VBoxSnapshotsWgt.cpp 38393 2011-08-10 10:25:56Z vboxsync $ */ +/* $Id: VBoxSnapshotsWgt.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDefs.cpp b/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDefs.cpp index 953d9ebdf..e719bd27a 100644 --- a/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDefs.cpp +++ b/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDefs.cpp @@ -1,4 +1,4 @@ -/* $Id: UISettingsDefs.cpp 36589 2011-04-06 15:24:00Z vboxsync $ */ +/* $Id: UISettingsDefs.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialog.cpp b/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialog.cpp index 8692b71de..829ce3f23 100644 --- a/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialog.cpp +++ b/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialog.cpp @@ -1,4 +1,4 @@ -/* $Id: UISettingsDialog.cpp 38311 2011-08-04 13:08:39Z vboxsync $ */ +/* $Id: UISettingsDialog.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp b/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp index 610cabab4..bd0d8be00 100644 --- a/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp +++ b/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp @@ -1,4 +1,4 @@ -/* $Id: UISettingsDialogSpecific.cpp 38311 2011-08-04 13:08:39Z vboxsync $ */ +/* $Id: UISettingsDialogSpecific.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): @@ -469,12 +469,6 @@ void UISettingsDialogGlobal::saveData() void UISettingsDialogGlobal::retranslateUi() { - /* Base-class UI translation: */ - UISettingsDialog::retranslateUi(); - - /* Set dialog's name: */ - setWindowTitle(title()); - /* General page: */ m_pSelector->setItemText(GLSettingsPage_General, tr("General")); @@ -499,8 +493,14 @@ void UISettingsDialogGlobal::retranslateUi() /* Proxy page: */ m_pSelector->setItemText(GLSettingsPage_Proxy, tr("Proxy")); - /* Translate the selector: */ + /* Polish the selector: */ m_pSelector->polish(); + + /* Base-class UI translation: */ + UISettingsDialog::retranslateUi(); + + /* Set dialog's name: */ + setWindowTitle(title()); } QString UISettingsDialogGlobal::title() const @@ -864,12 +864,6 @@ void UISettingsDialogMachine::retranslateUi() if (QWidget *pPage = m_pSelector->idToPage(VMSettingsPage_Parallel)) qApp->sendEvent(pPage, &event); - /* Base-class UI translation: */ - UISettingsDialog::retranslateUi(); - - /* Set dialog's name: */ - setWindowTitle(title()); - /* General page: */ m_pSelector->setItemText(VMSettingsPage_General, tr("General")); @@ -903,8 +897,14 @@ void UISettingsDialogMachine::retranslateUi() /* SFolders page: */ m_pSelector->setItemText(VMSettingsPage_SF, tr("Shared Folders")); - /* Translate the selector: */ + /* Polish the selector: */ m_pSelector->polish(); + + /* Base-class UI translation: */ + UISettingsDialog::retranslateUi(); + + /* Set dialog's name: */ + setWindowTitle(title()); } QString UISettingsDialogMachine::title() const diff --git a/src/VBox/Frontends/VirtualBox/src/settings/UISettingsPage.cpp b/src/VBox/Frontends/VirtualBox/src/settings/UISettingsPage.cpp index 7864714f6..bc7b70217 100644 --- a/src/VBox/Frontends/VirtualBox/src/settings/UISettingsPage.cpp +++ b/src/VBox/Frontends/VirtualBox/src/settings/UISettingsPage.cpp @@ -1,4 +1,4 @@ -/* $Id: UISettingsPage.cpp 36594 2011-04-06 16:22:58Z vboxsync $ */ +/* $Id: UISettingsPage.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/settings/VBoxSettingsSelector.cpp b/src/VBox/Frontends/VirtualBox/src/settings/VBoxSettingsSelector.cpp index 63892d7c4..ed11fcae5 100644 --- a/src/VBox/Frontends/VirtualBox/src/settings/VBoxSettingsSelector.cpp +++ b/src/VBox/Frontends/VirtualBox/src/settings/VBoxSettingsSelector.cpp @@ -1,4 +1,4 @@ -/* $Id: VBoxSettingsSelector.cpp 37610 2011-06-23 12:26:14Z vboxsync $ */ +/* $Id: VBoxSettingsSelector.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsExtension.cpp b/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsExtension.cpp index 5a589709b..21ae06120 100644 --- a/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsExtension.cpp +++ b/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsExtension.cpp @@ -1,4 +1,4 @@ -/* $Id: UIGlobalSettingsExtension.cpp 38311 2011-08-04 13:08:39Z vboxsync $ */ +/* $Id: UIGlobalSettingsExtension.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsGeneral.cpp b/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsGeneral.cpp index b2ca9c691..100621cbd 100644 --- a/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsGeneral.cpp +++ b/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsGeneral.cpp @@ -1,4 +1,4 @@ -/* $Id: UIGlobalSettingsGeneral.cpp 33926 2010-11-10 09:02:39Z vboxsync $ */ +/* $Id: UIGlobalSettingsGeneral.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsInput.cpp b/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsInput.cpp index e0d890de4..280628dea 100644 --- a/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsInput.cpp +++ b/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsInput.cpp @@ -1,4 +1,4 @@ -/* $Id: UIGlobalSettingsInput.cpp 35862 2011-02-07 08:57:38Z vboxsync $ */ +/* $Id: UIGlobalSettingsInput.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsLanguage.cpp b/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsLanguage.cpp index afb4ee14b..378cb37d8 100644 --- a/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsLanguage.cpp +++ b/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsLanguage.cpp @@ -1,4 +1,4 @@ -/* $Id: UIGlobalSettingsLanguage.cpp 35522 2011-01-13 13:06:44Z vboxsync $ */ +/* $Id: UIGlobalSettingsLanguage.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsNetwork.cpp b/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsNetwork.cpp index 440b880dc..7500a8874 100644 --- a/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsNetwork.cpp +++ b/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsNetwork.cpp @@ -1,4 +1,4 @@ -/* $Id: UIGlobalSettingsNetwork.cpp 38311 2011-08-04 13:08:39Z vboxsync $ */ +/* $Id: UIGlobalSettingsNetwork.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsNetworkDetails.cpp b/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsNetworkDetails.cpp index 5a6cfd831..75bd79265 100644 --- a/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsNetworkDetails.cpp +++ b/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsNetworkDetails.cpp @@ -1,4 +1,4 @@ -/* $Id: UIGlobalSettingsNetworkDetails.cpp 34162 2010-11-18 12:04:47Z vboxsync $ */ +/* $Id: UIGlobalSettingsNetworkDetails.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsProxy.cpp b/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsProxy.cpp index 13cd07cfb..3a147d51e 100644 --- a/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsProxy.cpp +++ b/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsProxy.cpp @@ -1,4 +1,4 @@ -/* $Id: UIGlobalSettingsProxy.cpp 37548 2011-06-20 06:19:31Z vboxsync $ */ +/* $Id: UIGlobalSettingsProxy.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsUpdate.cpp b/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsUpdate.cpp index a9acc3c26..b3d74537e 100644 --- a/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsUpdate.cpp +++ b/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsUpdate.cpp @@ -1,4 +1,4 @@ -/* $Id: UIGlobalSettingsUpdate.cpp 34166 2010-11-18 12:36:43Z vboxsync $ */ +/* $Id: UIGlobalSettingsUpdate.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsUpdate.h b/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsUpdate.h index 051428562..b0dc89c48 100644 --- a/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsUpdate.h +++ b/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsUpdate.h @@ -22,7 +22,7 @@ /* Local includes */ #include "UISettingsPage.h" #include "UIGlobalSettingsUpdate.gen.h" -#include "VBoxUpdateDlg.h" +#include "UIUpdateDefs.h" /* Global settings / Update page / Cache: */ struct UISettingsCacheGlobalUpdate diff --git a/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsAudio.cpp b/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsAudio.cpp index d0c9ca7be..e087f5156 100644 --- a/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsAudio.cpp +++ b/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsAudio.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMachineSettingsAudio.cpp 37126 2011-05-17 13:56:50Z vboxsync $ */ +/* $Id: UIMachineSettingsAudio.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp b/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp index 77a642b8d..8f84b7e1d 100644 --- a/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp +++ b/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMachineSettingsDisplay.cpp 38311 2011-08-04 13:08:39Z vboxsync $ */ +/* $Id: UIMachineSettingsDisplay.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.cpp b/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.cpp index e3218a1bc..68f83f941 100644 --- a/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.cpp +++ b/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMachineSettingsGeneral.cpp 38311 2011-08-04 13:08:39Z vboxsync $ */ +/* $Id: UIMachineSettingsGeneral.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsNetwork.cpp b/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsNetwork.cpp index cf858fae9..b32b2029c 100644 --- a/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsNetwork.cpp +++ b/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsNetwork.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMachineSettingsNetwork.cpp 37945 2011-07-14 09:40:35Z vboxsync $ */ +/* $Id: UIMachineSettingsNetwork.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsParallel.cpp b/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsParallel.cpp index eaf00bbfb..5093c6bd0 100644 --- a/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsParallel.cpp +++ b/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsParallel.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMachineSettingsParallel.cpp 37126 2011-05-17 13:56:50Z vboxsync $ */ +/* $Id: UIMachineSettingsParallel.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsPortForwardingDlg.cpp b/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsPortForwardingDlg.cpp index 3d7d6dd49..1409d1104 100644 --- a/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsPortForwardingDlg.cpp +++ b/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsPortForwardingDlg.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMachineSettingsPortForwardingDlg.cpp 38311 2011-08-04 13:08:39Z vboxsync $ */ +/* $Id: UIMachineSettingsPortForwardingDlg.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSF.cpp b/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSF.cpp index 217a71089..c6dfbb47a 100644 --- a/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSF.cpp +++ b/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSF.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMachineSettingsSF.cpp 38311 2011-08-04 13:08:39Z vboxsync $ */ +/* $Id: UIMachineSettingsSF.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSFDetails.cpp b/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSFDetails.cpp index 710075642..25219fd47 100644 --- a/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSFDetails.cpp +++ b/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSFDetails.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMachineSettingsSFDetails.cpp 35956 2011-02-14 11:43:07Z vboxsync $ */ +/* $Id: UIMachineSettingsSFDetails.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSerial.cpp b/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSerial.cpp index ac2378d88..2598ab3c7 100644 --- a/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSerial.cpp +++ b/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSerial.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMachineSettingsSerial.cpp 37126 2011-05-17 13:56:50Z vboxsync $ */ +/* $Id: UIMachineSettingsSerial.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.cpp b/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.cpp index f8b6ed2ad..c01b401a5 100644 --- a/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.cpp +++ b/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMachineSettingsStorage.cpp 38311 2011-08-04 13:08:39Z vboxsync $ */ +/* $Id: UIMachineSettingsStorage.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSystem.cpp b/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSystem.cpp index 2918d647b..b088052a9 100644 --- a/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSystem.cpp +++ b/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSystem.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMachineSettingsSystem.cpp 37753 2011-07-04 10:09:18Z vboxsync $ */ +/* $Id: UIMachineSettingsSystem.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsUSB.cpp b/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsUSB.cpp index bc282a122..51fc5bbdd 100644 --- a/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsUSB.cpp +++ b/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsUSB.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMachineSettingsUSB.cpp 38311 2011-08-04 13:08:39Z vboxsync $ */ +/* $Id: UIMachineSettingsUSB.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): @@ -17,6 +17,9 @@ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. */ +/* Global includes */ +#include <QHeaderView> + /* Local includes */ #include "QIWidgetValidator.h" #include "UIIconPool.h" @@ -25,9 +28,10 @@ #include "UIToolBar.h" #include "UIMachineSettingsUSB.h" #include "UIMachineSettingsUSBFilterDetails.h" +#include "VBoxDefs.h" -/* Global includes */ -#include <QHeaderView> +/* Using declarations: */ +using namespace VBoxGlobalDefs; UIMachineSettingsUSB::UIMachineSettingsUSB(UISettingsPageType type) : UISettingsPage(type) @@ -308,8 +312,7 @@ void UIMachineSettingsUSB::putToCache() /* USB 1.0 (OHCI): */ usbData.m_fUSBEnabled = mGbUSB->isChecked(); /* USB 2.0 (EHCI): */ - QString strExtPackName = "Oracle VM VirtualBox Extension Pack"; - CExtPack extPack = vboxGlobal().virtualBox().GetExtensionPackManager().Find(strExtPackName); + CExtPack extPack = vboxGlobal().virtualBox().GetExtensionPackManager().Find(UI_ExtPackName); usbData.m_fEHCIEnabled = extPack.isNull() || !extPack.GetUsable() ? false : mCbUSB2->isChecked(); /* Update USB cache: */ @@ -466,8 +469,9 @@ void UIMachineSettingsUSB::setValidator (QIWidgetValidator *aVal) bool UIMachineSettingsUSB::revalidate(QString &strWarningText, QString& /* strTitle */) { /* USB 2.0 Extension Pack presence test: */ - QString strExtPackName = "Oracle VM VirtualBox Extension Pack"; - CExtPack extPack = vboxGlobal().virtualBox().GetExtensionPackManager().Find(strExtPackName); + NOREF(strWarningText); +#ifdef VBOX_WITH_EXTPACK + CExtPack extPack = vboxGlobal().virtualBox().GetExtensionPackManager().Find(UI_ExtPackName); if (mGbUSB->isChecked() && mCbUSB2->isChecked() && (extPack.isNull() || !extPack.GetUsable())) { strWarningText = tr("USB 2.0 is currently enabled for this virtual machine. " @@ -475,10 +479,11 @@ bool UIMachineSettingsUSB::revalidate(QString &strWarningText, QString& /* strTi "Please install the Extension Pack from the VirtualBox download site. " "After this you will be able to re-enable USB 2.0. " "It will be disabled in the meantime unless you cancel the current settings changes.") - .arg(strExtPackName); - msgCenter().remindAboutUnsupportedUSB2(strExtPackName, this); + .arg(UI_ExtPackName); + msgCenter().remindAboutUnsupportedUSB2(UI_ExtPackName, this); return true; } +#endif return true; } diff --git a/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsUSBFilterDetails.cpp b/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsUSBFilterDetails.cpp index b2b59c34b..f9602283b 100644 --- a/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsUSBFilterDetails.cpp +++ b/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsUSBFilterDetails.cpp @@ -1,4 +1,4 @@ -/* $Id: UIMachineSettingsUSBFilterDetails.cpp 33882 2010-11-09 09:32:27Z vboxsync $ */ +/* $Id: UIMachineSettingsUSBFilterDetails.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/widgets/UIApplianceEditorWidget.cpp b/src/VBox/Frontends/VirtualBox/src/widgets/UIApplianceEditorWidget.cpp index 7a36ba687..68ab5dd61 100644 --- a/src/VBox/Frontends/VirtualBox/src/widgets/UIApplianceEditorWidget.cpp +++ b/src/VBox/Frontends/VirtualBox/src/widgets/UIApplianceEditorWidget.cpp @@ -1,4 +1,4 @@ -/* $Id: UIApplianceEditorWidget.cpp 38384 2011-08-09 16:07:54Z vboxsync $ */ +/* $Id: UIApplianceEditorWidget.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/widgets/UIApplianceExportEditorWidget.cpp b/src/VBox/Frontends/VirtualBox/src/widgets/UIApplianceExportEditorWidget.cpp index 235c7524e..800c205ff 100644 --- a/src/VBox/Frontends/VirtualBox/src/widgets/UIApplianceExportEditorWidget.cpp +++ b/src/VBox/Frontends/VirtualBox/src/widgets/UIApplianceExportEditorWidget.cpp @@ -1,4 +1,4 @@ -/* $Id: UIApplianceExportEditorWidget.cpp 38410 2011-08-11 09:34:18Z vboxsync $ */ +/* $Id: UIApplianceExportEditorWidget.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/widgets/UIApplianceImportEditorWidget.cpp b/src/VBox/Frontends/VirtualBox/src/widgets/UIApplianceImportEditorWidget.cpp index 341e5870d..f85290cd9 100644 --- a/src/VBox/Frontends/VirtualBox/src/widgets/UIApplianceImportEditorWidget.cpp +++ b/src/VBox/Frontends/VirtualBox/src/widgets/UIApplianceImportEditorWidget.cpp @@ -1,4 +1,4 @@ -/* $Id: UIApplianceImportEditorWidget.cpp 38412 2011-08-11 09:50:04Z vboxsync $ */ +/* $Id: UIApplianceImportEditorWidget.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/widgets/UIBar.cpp b/src/VBox/Frontends/VirtualBox/src/widgets/UIBar.cpp index 459f90427..5fe7f4b28 100644 --- a/src/VBox/Frontends/VirtualBox/src/widgets/UIBar.cpp +++ b/src/VBox/Frontends/VirtualBox/src/widgets/UIBar.cpp @@ -1,4 +1,4 @@ -/* $Id: UIBar.cpp 35424 2011-01-07 13:05:41Z vboxsync $ */ +/* $Id: UIBar.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/widgets/UIBootTable.cpp b/src/VBox/Frontends/VirtualBox/src/widgets/UIBootTable.cpp index 77792d83e..bdfdca1c7 100644 --- a/src/VBox/Frontends/VirtualBox/src/widgets/UIBootTable.cpp +++ b/src/VBox/Frontends/VirtualBox/src/widgets/UIBootTable.cpp @@ -1,4 +1,4 @@ -/* $Id: UIBootTable.cpp 34614 2010-12-02 14:09:47Z vboxsync $ */ +/* $Id: UIBootTable.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/widgets/UIHotKeyEditor.cpp b/src/VBox/Frontends/VirtualBox/src/widgets/UIHotKeyEditor.cpp index ca0a5b678..7c0317549 100644 --- a/src/VBox/Frontends/VirtualBox/src/widgets/UIHotKeyEditor.cpp +++ b/src/VBox/Frontends/VirtualBox/src/widgets/UIHotKeyEditor.cpp @@ -1,4 +1,4 @@ -/* $Id: UIHotKeyEditor.cpp 35862 2011-02-07 08:57:38Z vboxsync $ */ +/* $Id: UIHotKeyEditor.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/widgets/UILineTextEdit.cpp b/src/VBox/Frontends/VirtualBox/src/widgets/UILineTextEdit.cpp index 52cb4e387..4608f8a29 100644 --- a/src/VBox/Frontends/VirtualBox/src/widgets/UILineTextEdit.cpp +++ b/src/VBox/Frontends/VirtualBox/src/widgets/UILineTextEdit.cpp @@ -1,4 +1,4 @@ -/* $Id: UILineTextEdit.cpp 38375 2011-08-09 11:55:48Z vboxsync $ */ +/* $Id: UILineTextEdit.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupBox.cpp b/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupBox.cpp index 1c552fc68..31b8bae12 100644 --- a/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupBox.cpp +++ b/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupBox.cpp @@ -1,4 +1,4 @@ -/* $Id: UIPopupBox.cpp 30904 2010-07-19 09:43:24Z vboxsync $ */ +/* $Id: UIPopupBox.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/widgets/UIProgressDialog.cpp b/src/VBox/Frontends/VirtualBox/src/widgets/UIProgressDialog.cpp index 2d43f5d30..03aad59dd 100644 --- a/src/VBox/Frontends/VirtualBox/src/widgets/UIProgressDialog.cpp +++ b/src/VBox/Frontends/VirtualBox/src/widgets/UIProgressDialog.cpp @@ -1,4 +1,4 @@ -/* $Id: UIProgressDialog.cpp 37572 2011-06-21 11:37:31Z vboxsync $ */ +/* $Id: UIProgressDialog.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/widgets/UISpecialControls.cpp b/src/VBox/Frontends/VirtualBox/src/widgets/UISpecialControls.cpp index 353c9a5a0..85233ecfb 100644 --- a/src/VBox/Frontends/VirtualBox/src/widgets/UISpecialControls.cpp +++ b/src/VBox/Frontends/VirtualBox/src/widgets/UISpecialControls.cpp @@ -1,4 +1,4 @@ -/* $Id: UISpecialControls.cpp 30694 2010-07-07 09:24:18Z vboxsync $ */ +/* $Id: UISpecialControls.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/widgets/VBoxFilePathSelectorWidget.cpp b/src/VBox/Frontends/VirtualBox/src/widgets/VBoxFilePathSelectorWidget.cpp index e16221b11..8f951835c 100644 --- a/src/VBox/Frontends/VirtualBox/src/widgets/VBoxFilePathSelectorWidget.cpp +++ b/src/VBox/Frontends/VirtualBox/src/widgets/VBoxFilePathSelectorWidget.cpp @@ -1,4 +1,4 @@ -/* $Id: VBoxFilePathSelectorWidget.cpp 33778 2010-11-04 15:25:25Z vboxsync $ */ +/* $Id: VBoxFilePathSelectorWidget.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/widgets/VBoxGuestRAMSlider.cpp b/src/VBox/Frontends/VirtualBox/src/widgets/VBoxGuestRAMSlider.cpp index 964c69d49..c194e4742 100644 --- a/src/VBox/Frontends/VirtualBox/src/widgets/VBoxGuestRAMSlider.cpp +++ b/src/VBox/Frontends/VirtualBox/src/widgets/VBoxGuestRAMSlider.cpp @@ -1,4 +1,4 @@ -/* $Id: VBoxGuestRAMSlider.cpp 28800 2010-04-27 08:22:32Z vboxsync $ */ +/* $Id: VBoxGuestRAMSlider.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/widgets/VBoxMediaComboBox.cpp b/src/VBox/Frontends/VirtualBox/src/widgets/VBoxMediaComboBox.cpp index 607a5524b..382711d48 100644 --- a/src/VBox/Frontends/VirtualBox/src/widgets/VBoxMediaComboBox.cpp +++ b/src/VBox/Frontends/VirtualBox/src/widgets/VBoxMediaComboBox.cpp @@ -1,4 +1,4 @@ -/* $Id: VBoxMediaComboBox.cpp 33540 2010-10-28 09:27:05Z vboxsync $ */ +/* $Id: VBoxMediaComboBox.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/widgets/VBoxMiniToolBar.cpp b/src/VBox/Frontends/VirtualBox/src/widgets/VBoxMiniToolBar.cpp index 6cbac2bcb..703485ee7 100644 --- a/src/VBox/Frontends/VirtualBox/src/widgets/VBoxMiniToolBar.cpp +++ b/src/VBox/Frontends/VirtualBox/src/widgets/VBoxMiniToolBar.cpp @@ -1,4 +1,4 @@ -/* $Id: VBoxMiniToolBar.cpp 35867 2011-02-07 12:51:10Z vboxsync $ */ +/* $Id: VBoxMiniToolBar.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/widgets/VBoxOSTypeSelectorButton.cpp b/src/VBox/Frontends/VirtualBox/src/widgets/VBoxOSTypeSelectorButton.cpp index 745838c00..6253d4c62 100644 --- a/src/VBox/Frontends/VirtualBox/src/widgets/VBoxOSTypeSelectorButton.cpp +++ b/src/VBox/Frontends/VirtualBox/src/widgets/VBoxOSTypeSelectorButton.cpp @@ -1,4 +1,4 @@ -/* $Id: VBoxOSTypeSelectorButton.cpp 28800 2010-04-27 08:22:32Z vboxsync $ */ +/* $Id: VBoxOSTypeSelectorButton.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/widgets/VBoxOSTypeSelectorWidget.cpp b/src/VBox/Frontends/VirtualBox/src/widgets/VBoxOSTypeSelectorWidget.cpp index b1dcc7624..7d453c8a6 100644 --- a/src/VBox/Frontends/VirtualBox/src/widgets/VBoxOSTypeSelectorWidget.cpp +++ b/src/VBox/Frontends/VirtualBox/src/widgets/VBoxOSTypeSelectorWidget.cpp @@ -1,4 +1,4 @@ -/* $Id: VBoxOSTypeSelectorWidget.cpp 33781 2010-11-04 15:59:35Z vboxsync $ */ +/* $Id: VBoxOSTypeSelectorWidget.cpp $ */ /** @file * * VBox frontends: Qt GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/widgets/VBoxWarningPane.cpp b/src/VBox/Frontends/VirtualBox/src/widgets/VBoxWarningPane.cpp index d24970a01..ae41c05a4 100644 --- a/src/VBox/Frontends/VirtualBox/src/widgets/VBoxWarningPane.cpp +++ b/src/VBox/Frontends/VirtualBox/src/widgets/VBoxWarningPane.cpp @@ -1,4 +1,4 @@ -/* $Id: VBoxWarningPane.cpp 37106 2011-05-16 14:50:12Z vboxsync $ */ +/* $Id: VBoxWarningPane.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UICloneVMWizard.cpp b/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UICloneVMWizard.cpp index d862d49b1..89870028a 100644 --- a/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UICloneVMWizard.cpp +++ b/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UICloneVMWizard.cpp @@ -1,4 +1,4 @@ -/* $Id: UICloneVMWizard.cpp 38440 2011-08-12 15:32:49Z vboxsync $ */ +/* $Id: UICloneVMWizard.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIExportApplianceWzd.cpp b/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIExportApplianceWzd.cpp index ba1182d93..5d1fa861d 100644 --- a/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIExportApplianceWzd.cpp +++ b/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIExportApplianceWzd.cpp @@ -1,4 +1,4 @@ -/* $Id: UIExportApplianceWzd.cpp 38343 2011-08-08 10:11:12Z vboxsync $ */ +/* $Id: UIExportApplianceWzd.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/wizards/firstrun/UIFirstRunWzd.cpp b/src/VBox/Frontends/VirtualBox/src/wizards/firstrun/UIFirstRunWzd.cpp index b83d76ee8..ac0efb188 100644 --- a/src/VBox/Frontends/VirtualBox/src/wizards/firstrun/UIFirstRunWzd.cpp +++ b/src/VBox/Frontends/VirtualBox/src/wizards/firstrun/UIFirstRunWzd.cpp @@ -1,4 +1,4 @@ -/* $Id: UIFirstRunWzd.cpp 38311 2011-08-04 13:08:39Z vboxsync $ */ +/* $Id: UIFirstRunWzd.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIImportApplianceWzd.cpp b/src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIImportApplianceWzd.cpp index 38ffb1002..98e3344a7 100644 --- a/src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIImportApplianceWzd.cpp +++ b/src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIImportApplianceWzd.cpp @@ -1,4 +1,4 @@ -/* $Id: UIImportApplianceWzd.cpp 38412 2011-08-11 09:50:04Z vboxsync $ */ +/* $Id: UIImportApplianceWzd.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): diff --git a/src/VBox/Frontends/VirtualBox/src/wizards/newhd/UINewHDWizard.cpp b/src/VBox/Frontends/VirtualBox/src/wizards/newhd/UINewHDWizard.cpp index beed26bb9..38f5a1601 100644 --- a/src/VBox/Frontends/VirtualBox/src/wizards/newhd/UINewHDWizard.cpp +++ b/src/VBox/Frontends/VirtualBox/src/wizards/newhd/UINewHDWizard.cpp @@ -1,4 +1,4 @@ -/* $Id: UINewHDWizard.cpp 38311 2011-08-04 13:08:39Z vboxsync $ */ +/* $Id: UINewHDWizard.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): @@ -196,11 +196,11 @@ UINewHDWizard::UINewHDWizard(QWidget *pParent, const QString &strDefaultName, co /* Create & add pages: */ if (wizardType() == UINewHDWizardType_Copying) - addPage(new UINewHDWizardPageWelcome(sourceHardDisk)); - addPage(new UINewHDWizardPageFormat); - addPage(new UINewHDWizardPageVariant); - addPage(new UINewHDWizardPageOptions(strDefaultName, strDefaultPath, uDefaultSize)); - addPage(new UINewHDWizardPageSummary); + setPage(PageWelcome, new UINewHDWizardPageWelcome(sourceHardDisk)); + setPage(PageFormat, new UINewHDWizardPageFormat); + setPage(PageVariant, new UINewHDWizardPageVariant); + setPage(PageOptions, new UINewHDWizardPageOptions(strDefaultName, strDefaultPath, uDefaultSize)); + setPage(PageSummary, new UINewHDWizardPageSummary); /* Translate wizard: */ retranslateUi(); @@ -371,6 +371,12 @@ QString UINewHDWizardPageFormat::fullFormatName(const QString &strBaseFormatName return UINewHDWizard::tr("V&MDK (Virtual Machine Disk)"); else if (strBaseFormatName == "VHD") return UINewHDWizard::tr("V&HD (Virtual Hard Disk)"); + else if (strBaseFormatName == "Parallels") + return UINewHDWizard::tr("H&DD (Parallels Hard Disk)"); + else if (strBaseFormatName == "QED") + return UINewHDWizard::tr("Q&ED (QEMU enhanced disk)"); + else if (strBaseFormatName == "QCOW") + return UINewHDWizard::tr("&QCOW (QEMU Copy-On-Write)"); return strBaseFormatName; } @@ -447,6 +453,23 @@ bool UINewHDWizardPageFormat::isComplete() const return !m_mediumFormat.isNull(); } +int UINewHDWizardPageFormat::nextId() const +{ + CMediumFormat mediumFormat = field("mediumFormat").value<CMediumFormat>(); + ULONG uCapabilities = mediumFormat.GetCapabilities(); + int cTest = 0; + if (uCapabilities & KMediumFormatCapabilities_CreateDynamic) + ++cTest; + if (uCapabilities & KMediumFormatCapabilities_CreateFixed) + ++cTest; + if (uCapabilities & KMediumFormatCapabilities_CreateSplit2G) + ++cTest; + if (cTest > 1) + return UINewHDWizard::PageVariant; + + return UINewHDWizard::PageOptions; +} + void UINewHDWizardPageFormat::processFormat(CMediumFormat mediumFormat) { /* Check that medium format supports creation: */ @@ -481,7 +504,10 @@ UINewHDWizardPageVariant::UINewHDWizardPageVariant() /* Register 'mediumVariant' field: */ registerField("mediumVariant", this, "mediumVariant"); - /* Unfortuanelly, KMediumVariant is very messy, + /* Default */ + setMediumVariant(KMediumVariant_Standard); + + /* Unfortunately, KMediumVariant is very messy, * so we can't enumerate it to make sure GUI will not hard-code its values, * we can only use hard-coded values that we need: */ diff --git a/src/VBox/Frontends/VirtualBox/src/wizards/newhd/UINewHDWizard.h b/src/VBox/Frontends/VirtualBox/src/wizards/newhd/UINewHDWizard.h index 507576e0a..ed685aea6 100644 --- a/src/VBox/Frontends/VirtualBox/src/wizards/newhd/UINewHDWizard.h +++ b/src/VBox/Frontends/VirtualBox/src/wizards/newhd/UINewHDWizard.h @@ -49,6 +49,15 @@ class UINewHDWizard : public QIWizard public: + enum + { + PageWelcome, + PageFormat, + PageVariant, + PageOptions, + PageSummary + }; + /* Constructor: */ UINewHDWizard(QWidget *pParent, const QString &strDefaultName = QString(), const QString &strDefaultPath = QString(), @@ -155,6 +164,8 @@ private: /* Completeness validator: */ bool isComplete() const; + int nextId() const; + /* Helping stuff: */ void processFormat(CMediumFormat mediumFormat); diff --git a/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UINewVMWzd.cpp b/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UINewVMWzd.cpp index d54837991..c6f7930ec 100644 --- a/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UINewVMWzd.cpp +++ b/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UINewVMWzd.cpp @@ -1,4 +1,4 @@ -/* $Id: UINewVMWzd.cpp 38311 2011-08-04 13:08:39Z vboxsync $ */ +/* $Id: UINewVMWzd.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): @@ -27,6 +27,10 @@ #include "QIFileDialog.h" #include "UIMessageCenter.h" #include "UIMachineSettingsStorage.h" +#include "VBoxDefs.h" + +/* Using declarations: */ +using namespace VBoxGlobalDefs; /* Globals */ struct osTypePattern @@ -55,9 +59,11 @@ static const osTypePattern gs_OSTypePattern[] = { QRegExp("(Wi.*V)|(Vista)", Qt::CaseInsensitive), "WindowsVista" }, { QRegExp("((Wi.*2008)|(W2K8)).*64", Qt::CaseInsensitive), "Windows2008_64" }, { QRegExp("(Wi.*2008)|(W2K8)", Qt::CaseInsensitive), "Windows2008" }, - { QRegExp("(Wi.*2)|(W2K)", Qt::CaseInsensitive), "Windows2000" }, + { QRegExp("(Wi.*2000)|(W2K)", Qt::CaseInsensitive), "Windows2000" }, { QRegExp("(Wi.*7.*64)|(W7.*64)", Qt::CaseInsensitive), "Windows7_64" }, { QRegExp("(Wi.*7)|(W7)", Qt::CaseInsensitive), "Windows7" }, + { QRegExp("(Wi.*8.*64)|(W8.*64)", Qt::CaseInsensitive), "Windows8_64" }, + { QRegExp("(Wi.*8)|(W8)", Qt::CaseInsensitive), "Windows8" }, { QRegExp("Wi.*3", Qt::CaseInsensitive), "Windows31" }, { QRegExp("Wi", Qt::CaseInsensitive), "WindowsXP" }, @@ -85,8 +91,8 @@ static const osTypePattern gs_OSTypePattern[] = /* Regular names of Linux distributions */ { QRegExp("Arc.*64", Qt::CaseInsensitive), "ArchLinux_64" }, { QRegExp("Arc", Qt::CaseInsensitive), "ArchLinux" }, - { QRegExp("De.*64", Qt::CaseInsensitive), "Debian_64" }, - { QRegExp("De", Qt::CaseInsensitive), "Debian" }, + { QRegExp("Deb.*64", Qt::CaseInsensitive), "Debian_64" }, + { QRegExp("Deb", Qt::CaseInsensitive), "Debian" }, { QRegExp("((SU)|(Nov)|(SLE)).*64", Qt::CaseInsensitive), "OpenSUSE_64" }, { QRegExp("(SU)|(Nov)|(SLE)", Qt::CaseInsensitive), "OpenSUSE" }, { QRegExp("Fe.*64", Qt::CaseInsensitive), "Fedora_64" }, @@ -763,9 +769,8 @@ bool UINewVMWzdPage5::constructMachine() * necessary evil to patch over legacy compatability issues * introduced by the new distribution model. */ - static const char *s_pszUsbExtPackName = "Oracle VM VirtualBox Extension Pack"; CExtPackManager manager = vboxGlobal().virtualBox().GetExtensionPackManager(); - if (manager.IsExtPackUsable(s_pszUsbExtPackName)) + if (manager.IsExtPackUsable(UI_ExtPackName)) usbController.SetEnabledEhci(true); } diff --git a/src/VBox/Frontends/VirtualBox/src/wizards/registration/UIRegistrationWzd.cpp b/src/VBox/Frontends/VirtualBox/src/wizards/registration/UIRegistrationWzd.cpp index d2f579d1e..c2d508d68 100644 --- a/src/VBox/Frontends/VirtualBox/src/wizards/registration/UIRegistrationWzd.cpp +++ b/src/VBox/Frontends/VirtualBox/src/wizards/registration/UIRegistrationWzd.cpp @@ -1,4 +1,4 @@ -/* $Id: UIRegistrationWzd.cpp 38311 2011-08-04 13:08:39Z vboxsync $ */ +/* $Id: UIRegistrationWzd.cpp $ */ /** @file * * VBox frontends: Qt4 GUI ("VirtualBox"): |