UIWizardCloneVDPageBasic5.cpp revision 8d8dfc00d014a62894327907a04f148b00a08529
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync/* $Id$ */
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync/** @file
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync *
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * VBox frontends: Qt4 GUI ("VirtualBox"):
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * UIWizardCloneVDPageBasic5 class implementation
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync */
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync/*
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * Copyright (C) 2006-2012 Oracle Corporation
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync *
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * available from http://www.virtualbox.org. This file is free software;
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * you can redistribute it and/or modify it under the terms of the GNU
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * General Public License (GPL) as published by the Free Software
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync */
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync/* Local includes: */
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync#include "UIWizardCloneVDPageBasic5.h"
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync#include "UIWizardCloneVD.h"
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync#include "VBoxGlobal.h"
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync#include "QIRichTextLabel.h"
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncUIWizardCloneVDPage5::UIWizardCloneVDPage5()
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync{
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync}
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncUIWizardCloneVDPageBasic5::UIWizardCloneVDPageBasic5()
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync{
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync /* Create widgets: */
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync QVBoxLayout *pMainLayout = new QVBoxLayout(this);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync {
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync m_pLabel1 = new QIRichTextLabel(this);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync m_pSummaryText = new QIRichTextLabel(this);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync m_pLabel2 = new QIRichTextLabel(this);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync pMainLayout->addWidget(m_pLabel1);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync pMainLayout->addWidget(m_pSummaryText);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync pMainLayout->addWidget(m_pLabel2);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync pMainLayout->addStretch();
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync }
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync}
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncvoid UIWizardCloneVDPageBasic5::retranslateUi()
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync{
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync /* Translate page: */
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync setTitle(UIWizardCloneVD::tr("Summary"));
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync /* Translate widgets: */
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync m_pLabel1->setText(UIWizardCloneVD::tr("You are going to create a copied virtual disk with the following parameters:"));
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync m_pLabel2->setText(UIWizardCloneVD::tr("If the above settings are correct, press the <b>%1</b> button. "
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync "Once you press it the new virtual disk file will be created.")
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync .arg(VBoxGlobal::replaceHtmlEntities(VBoxGlobal::removeAccelMark(wizard()->buttonText(QWizard::FinishButton)))));
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync /* Compose summary: */
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync QString strSummary;
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync CMediumFormat mediumFormat = field("mediumFormat").value<CMediumFormat>();
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync qulonglong uVariant = field("mediumVariant").toULongLong();
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync QString strMediumPath = field("mediumPath").toString();
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync QString sizeFormatted = VBoxGlobal::formatSize(field("mediumSize").toULongLong());
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync QString sizeUnformatted = UIWizardCloneVD::tr("%1 B").arg(field("mediumSize").toULongLong());
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync strSummary += QString
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync (
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync "<tr><td><nobr>%1: </nobr></td><td><nobr>%2</nobr></td></tr>"
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync "<tr><td><nobr>%3: </nobr></td><td><nobr>%4</nobr></td></tr>"
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync "<tr><td><nobr>%5: </nobr></td><td><nobr>%6</nobr></td></tr>"
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync "<tr><td><nobr>%7: </nobr></td><td><nobr>%8 (%9)</nobr></td></tr>"
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync )
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync .arg(UIWizardCloneVD::tr("File type", "summary"), mediumFormat.isNull() ?
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync QString() : VBoxGlobal::removeAccelMark(UIWizardCloneVD::fullFormatName(mediumFormat.GetName())))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync .arg(UIWizardCloneVD::tr("Details", "summary"), vboxGlobal().toString((KMediumVariant)uVariant))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync .arg(UIWizardCloneVD::tr("Location", "summary"), strMediumPath)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync .arg(UIWizardCloneVD::tr("Size", "summary"), sizeFormatted, sizeUnformatted);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync m_pSummaryText->setText("<table cellspacing=0 cellpadding=0>" + strSummary + "</table>");
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync}
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncvoid UIWizardCloneVDPageBasic5::initializePage()
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync{
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync /* Translate page: */
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync retranslateUi();
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync /* Summary should have focus initially: */
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync m_pSummaryText->setFocus();
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync}
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncbool UIWizardCloneVDPageBasic5::validatePage()
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync{
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync /* Initial result: */
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync bool fResult = true;
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync /* Lock finish button: */
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync startProcessing();
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync /* Try to copy virtual-disk: */
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync if (fResult)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync fResult = qobject_cast<UIWizardCloneVD*>(wizard())->copyVirtualDisk();
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync /* Unlock finish button: */
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync endProcessing();
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync /* Return result: */
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync return fResult;
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync}
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync