VirtualBox

Ignore:
Timestamp:
Apr 13, 2015 3:53:01 PM (10 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
99520
Message:

Main/Console+Machine+Session+Snapshot: move the save state and snapshot related methods from IConsole to IMachine, with lots of unavoidable code restructuring and cleanup. Also define two new machine states (so that the "Saving" one is specifically for saving state now) which requires more changes everywhere
Frontends: necessary adjustments
doc/SDK: document the changes

Location:
trunk/src/VBox/Frontends/VirtualBox/src
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackendCOM.cpp

    r55140 r55214  
    55
    66/*
    7  * Copyright (C) 2012-2014 Oracle Corporation
     7 * Copyright (C) 2012-2015 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    7373        case KMachineState_Stuck:                  return QColor(Qt::darkMagenta);
    7474        case KMachineState_Teleporting:            return QColor(Qt::blue);
     75        case KMachineState_Snapshotting:           return QColor(Qt::green);
     76        case KMachineState_OnlineSnapshotting:     return QColor(Qt::green);
    7577        case KMachineState_LiveSnapshotting:       return QColor(Qt::green);
    7678        case KMachineState_Starting:               return QColor(Qt::green);
     
    108110        case KMachineState_Stuck:                  return UIIconPool::iconSet(":/state_stuck_16px.png");
    109111        case KMachineState_Teleporting:            return UIIconPool::iconSet(":/state_running_16px.png");
     112        case KMachineState_Snapshotting:           return UIIconPool::iconSet(":/state_saving_16px.png");
     113        case KMachineState_OnlineSnapshotting:     return UIIconPool::iconSet(":/state_running_16px.png");
    110114        case KMachineState_LiveSnapshotting:       return UIIconPool::iconSet(":/state_running_16px.png");
    111115        case KMachineState_Starting:               return UIIconPool::iconSet(":/state_running_16px.png");
     
    143147        case KMachineState_Stuck:                  return QApplication::translate("VBoxGlobal", "Guru Meditation", "MachineState");
    144148        case KMachineState_Teleporting:            return QApplication::translate("VBoxGlobal", "Teleporting", "MachineState");
     149        case KMachineState_Snapshotting:           return QApplication::translate("VBoxGlobal", "Taking Snapshot", "MachineState");
     150        case KMachineState_OnlineSnapshotting:     return QApplication::translate("VBoxGlobal", "Taking Online Snapshot", "MachineState");
    145151        case KMachineState_LiveSnapshotting:       return QApplication::translate("VBoxGlobal", "Taking Live Snapshot", "MachineState");
    146152        case KMachineState_Starting:               return QApplication::translate("VBoxGlobal", "Starting", "MachineState");
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp

    r55115 r55214  
    55
    66/*
    7  * Copyright (C) 2006-2013 Oracle Corporation
     7 * Copyright (C) 2006-2014 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    766766}
    767767
    768 void UIMessageCenter::cannotDiscardSavedState(const CConsole &console) const
     768void UIMessageCenter::cannotDiscardSavedState(const CMachine &machine) const
    769769{
    770770    error(0, MessageType_Error,
    771771          tr("Failed to discard the saved state of the virtual machine <b>%1</b>.")
    772              .arg(CConsole(console).GetMachine().GetName()),
    773           formatErrorInfo(console));
    774 }
    775 
    776 void UIMessageCenter::cannotSaveMachineState(const CConsole &console)
     772             .arg(machine.GetName()),
     773          formatErrorInfo(machine));
     774}
     775
     776void UIMessageCenter::cannotSaveMachineState(const CMachine &machine)
    777777{
    778778    error(0, MessageType_Error,
    779779          tr("Failed to save the state of the virtual machine <b>%1</b>.")
    780              .arg(CConsole(console).GetMachine().GetName()),
    781           formatErrorInfo(console));
     780             .arg(machine.GetName()),
     781          formatErrorInfo(machine));
    782782}
    783783
     
    866866}
    867867
    868 void UIMessageCenter::cannotTakeSnapshot(const CConsole &console, const QString &strMachineName, QWidget *pParent /* = 0*/) const
     868void UIMessageCenter::cannotTakeSnapshot(const CMachine &machine, const QString &strMachineName, QWidget *pParent /* = 0*/) const
    869869{
    870870    error(pParent, MessageType_Error,
    871871          tr("Failed to create a snapshot of the virtual machine <b>%1</b>.")
    872872             .arg(strMachineName),
    873           formatErrorInfo(console));
     873          formatErrorInfo(machine));
    874874}
    875875
     
    882882}
    883883
    884 bool UIMessageCenter::cannotRestoreSnapshot(const CConsole &console, const QString &strSnapshotName, const QString &strMachineName) const
     884bool UIMessageCenter::cannotRestoreSnapshot(const CMachine &machine, const QString &strSnapshotName, const QString &strMachineName) const
    885885{
    886886    error(0, MessageType_Error,
    887887          tr("Failed to restore the snapshot <b>%1</b> of the virtual machine <b>%2</b>.")
    888888             .arg(strSnapshotName, strMachineName),
    889           formatErrorInfo(console));
     889          formatErrorInfo(machine));
    890890    return false;
    891891}
     
    900900}
    901901
    902 void UIMessageCenter::cannotRemoveSnapshot(const CConsole &console, const QString &strSnapshotName, const QString &strMachineName) const
     902void UIMessageCenter::cannotRemoveSnapshot(const CMachine &machine, const QString &strSnapshotName, const QString &strMachineName) const
    903903{
    904904    error(0, MessageType_Error,
    905905          tr("Failed to delete the snapshot <b>%1</b> of the virtual machine <b>%2</b>.")
    906906             .arg(strSnapshotName, strMachineName),
    907           formatErrorInfo(console));
     907          formatErrorInfo(machine));
    908908}
    909909
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h

    r54937 r55214  
    44
    55/*
    6  * Copyright (C) 2006-2013 Oracle Corporation
     6 * Copyright (C) 2006-2014 Oracle Corporation
    77 *
    88 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    191191    void cannotPauseMachine(const CConsole &console) const;
    192192    void cannotResumeMachine(const CConsole &console) const;
    193     void cannotDiscardSavedState(const CConsole &console) const;
    194     void cannotSaveMachineState(const CConsole &console);
     193    void cannotDiscardSavedState(const CMachine &machine) const;
     194    void cannotSaveMachineState(const CMachine &machine);
    195195    void cannotSaveMachineState(const CProgress &progress, const QString &strMachineName);
    196196    void cannotACPIShutdownMachine(const CConsole &console) const;
     
    203203    bool warnAboutSnapshotRemovalFreeSpace(const QString &strSnapshotName, const QString &strTargetImageName,
    204204                                           const QString &strTargetImageMaxSize, const QString &strTargetFileSystemFree) const;
    205     void cannotTakeSnapshot(const CConsole &console, const QString &strMachineName, QWidget *pParent = 0) const;
     205    void cannotTakeSnapshot(const CMachine &machine, const QString &strMachineName, QWidget *pParent = 0) const;
    206206    void cannotTakeSnapshot(const CProgress &progress, const QString &strMachineName, QWidget *pParent = 0) const;
    207     bool cannotRestoreSnapshot(const CConsole &console, const QString &strSnapshotName, const QString &strMachineName) const;
     207    bool cannotRestoreSnapshot(const CMachine &machine, const QString &strSnapshotName, const QString &strMachineName) const;
    208208    bool cannotRestoreSnapshot(const CProgress &progress, const QString &strSnapshotName, const QString &strMachineName) const;
    209     void cannotRemoveSnapshot(const CConsole &console, const QString &strSnapshotName, const QString &strMachineName) const;
     209    void cannotRemoveSnapshot(const CMachine &machine, const QString &strSnapshotName, const QString &strMachineName) const;
    210210    void cannotRemoveSnapshot(const CProgress &progress, const QString &strSnapshotName, const QString &strMachineName) const;
    211211
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachine.cpp

    r53046 r55214  
    6262        CSnapshot snapshot = machine.GetCurrentSnapshot();
    6363
    64         /* Open corresponding console: */
    65         CConsole console  = session.GetConsole();
    6664        /* Prepare restore-snapshot progress: */
    67         CProgress progress = console.RestoreSnapshot(snapshot);
    68         if (!console.isOk())
    69             return msgCenter().cannotRestoreSnapshot(console, snapshot.GetName(), machine.GetName());
     65        CProgress progress = machine.RestoreSnapshot(snapshot);
     66        if (!machine.isOk())
     67            return msgCenter().cannotRestoreSnapshot(machine, snapshot.GetName(), machine.GetName());
    7068
    7169        /* Show the snapshot-discarding progress: */
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp

    r55170 r55214  
    13911391        return;
    13921392
    1393     /* Remember the paused state: */
    1394     bool fWasPaused = uisession()->isPaused();
    1395     if (!fWasPaused)
    1396     {
    1397         /* Suspend the VM and ignore the close event if failed to do so.
    1398          * pause() will show the error message to the user. */
    1399         if (!uisession()->pause())
    1400             return;
    1401     }
    1402 
    14031393    /* Create take-snapshot dialog: */
    14041394    QWidget *pDlgParent = windowManager().realParentWindow(activeMachineWindow());
     
    14331423    {
    14341424        /* Prepare the take-snapshot progress: */
    1435         CProgress progress = console().TakeSnapshot(strSnapshotName, strSnapshotDescription);
    1436         if (console().isOk())
     1425        CProgress progress = machine().TakeSnapshot(strSnapshotName, strSnapshotDescription, true);
     1426        if (machine().isOk())
    14371427        {
    14381428            /* Show the take-snapshot progress: */
     
    14421432        }
    14431433        else
    1444             msgCenter().cannotTakeSnapshot(console(), machineName());
    1445     }
    1446 
    1447     /* Restore the running state if needed: */
    1448     if (!fWasPaused)
    1449     {
    1450         /* Make sure machine-state-change callback is processed: */
    1451         QApplication::sendPostedEvents(uisession(), UIConsoleEventType_StateChange);
    1452         /* Unpause VM: */
    1453         uisession()->unpause();
     1434            msgCenter().cannotTakeSnapshot(machine(), machineName());
    14541435    }
    14551436}
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp

    r55155 r55214  
    55
    66/*
    7  * Copyright (C) 2006-2013 Oracle Corporation
     7 * Copyright (C) 2006-2014 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    300300{
    301301    /* Prepare the saving progress: */
    302     CProgress progress = console().SaveState();
    303     if (console().isOk())
     302    CProgress progress = machine().SaveState();
     303    if (machine().isOk())
    304304    {
    305305        /* Show the saving progress: */
     
    315315    {
    316316        /* Failed in console: */
    317         msgCenter().cannotSaveMachineState(console());
     317        msgCenter().cannotSaveMachineState(machine());
    318318        return false;
    319319    }
     
    408408        do
    409409        {
    410             /* Acquire console for this session: */
    411             CConsole cons = sess.GetConsole();
    412             if (cons.isNull())
     410            /* Acquire machine for this session: */
     411            CMachine machine = sess.GetMachine();
     412            if (machine.isNull())
    413413            {
    414                 /* Unable to acquire console: */
     414                /* Unable to acquire machine: */
    415415                break;
    416416            }
    417417
    418418            /* Prepare the snapshot-discard progress: */
    419             const CSnapshot snap = mach.GetCurrentSnapshot();
    420             CProgress prog = cons.RestoreSnapshot(snap);
    421             if (!cons.isOk() || prog.isNull())
     419            const CSnapshot snap = machine.GetCurrentSnapshot();
     420            CProgress prog = machine.RestoreSnapshot(snap);
     421            if (!machine.isOk() || prog.isNull())
    422422            {
    423423                /* Unable to restore snapshot: */
    424                 msgCenter().cannotRestoreSnapshot(cons, snap.GetName(), machineName());
     424                msgCenter().cannotRestoreSnapshot(machine, snap.GetName(), machineName());
    425425                break;
    426426            }
    427427
    428428            /* Show the snapshot-discard progress: */
    429             msgCenter().showModalProgressDialog(prog, mach.GetName(), ":/progress_snapshot_discard_90px.png");
     429            msgCenter().showModalProgressDialog(prog, machine.GetName(), ":/progress_snapshot_discard_90px.png");
    430430            if (prog.GetResultCode() != 0)
    431431            {
    432432                /* Unable to restore snapshot: */
    433                 msgCenter().cannotRestoreSnapshot(prog, snap.GetName(), mach.GetName());
     433                msgCenter().cannotRestoreSnapshot(prog, snap.GetName(), machine.GetName());
    434434                break;
    435435            }
  • trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp

    r55170 r55214  
    55
    66/*
    7  * Copyright (C) 2006-2013 Oracle Corporation
     7 * Copyright (C) 2006-2015 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    498498            return;
    499499
    500         /* Get session console: */
    501         CConsole console = session.GetConsole();
    502         console.DiscardSavedState(true);
    503         if (!console.isOk())
    504             msgCenter().cannotDiscardSavedState(console);
     500        /* Get session machine: */
     501        CMachine machine = session.GetMachine();
     502        machine.DiscardSavedState(true);
     503        if (!machine.isOk())
     504            msgCenter().cannotDiscardSavedState(machine);
    505505
    506506        /* Unlock machine finally: */
     
    623623        /* Get session console: */
    624624        CConsole console = session.GetConsole();
     625        /* Get session machine: */
     626        CMachine machine = session.GetMachine();
    625627        /* Pause VM first: */
    626628        console.Pause();
     
    628630        {
    629631            /* Prepare machine state saving: */
    630             CProgress progress = console.SaveState();
    631             if (console.isOk())
     632            CProgress progress = machine.SaveState();
     633            if (machine.isOk())
    632634            {
    633635                /* Show machine state saving progress: */
    634                 CMachine machine = session.GetMachine();
    635636                msgCenter().showModalProgressDialog(progress, machine.GetName(), ":/progress_state_save_90px.png");
    636637                if (!progress.isOk() || progress.GetResultCode() != 0)
     
    638639            }
    639640            else
    640                 msgCenter().cannotSaveMachineState(console);
     641                msgCenter().cannotSaveMachineState(machine);
    641642        }
    642643        else
  • trunk/src/VBox/Frontends/VirtualBox/src/selector/VBoxSnapshotsWgt.cpp

    r54774 r55214  
    55
    66/*
    7  * Copyright (C) 2006-2013 Oracle Corporation
     7 * Copyright (C) 2006-2014 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    641641
    642642    /* Restore chosen snapshot: */
    643     CConsole console = session.GetConsole();
    644     CProgress progress = console.RestoreSnapshot(snapshot);
    645     if (console.isOk())
     643    CMachine machine = session.GetMachine();
     644    CProgress progress = machine.RestoreSnapshot(snapshot);
     645    if (machine.isOk())
    646646    {
    647647        msgCenter().showModalProgressDialog(progress, mMachine.GetName(), ":/progress_snapshot_restore_90px.png");
     
    650650    }
    651651    else
    652         msgCenter().cannotRestoreSnapshot(console, snapshot.GetName(), mMachine.GetName());
     652        msgCenter().cannotRestoreSnapshot(machine, snapshot.GetName(), mMachine.GetName());
    653653
    654654    /* Unlock machine finally: */
     
    688688        return;
    689689
    690     CConsole console = session.GetConsole();
    691     CProgress progress = console.DeleteSnapshot (snapId);
    692     if (console.isOk())
     690    /* Remove chosen snapshot: */
     691    CMachine machine = session.GetMachine();
     692    CProgress progress = machine.DeleteSnapshot(snapId);
     693    if (machine.isOk())
    693694    {
    694695        /* Show the progress dialog */
     
    699700    }
    700701    else
    701         msgCenter().cannotRemoveSnapshot(console,  snapshot.GetName(), mMachine.GetName());
     702        msgCenter().cannotRemoveSnapshot(machine,  snapshot.GetName(), mMachine.GetName());
    702703
    703704    session.UnlockMachine();
     
    829830    if (fIsValid)
    830831    {
    831         /* Get corresponding console object also: */
    832         CConsole console = session.GetConsole();
    833         /* Remember runtime state: */
    834         bool fAtRuntime = mMachine.GetState() == KMachineState_Running;
    835         /* Remember paused state: */
    836         bool fWasPaused = mMachine.GetState() == KMachineState_Paused ||
    837                           mMachine.GetState() == KMachineState_TeleportingPausedVM;
    838 
    839         /* Pause VM if necessary: */
    840         if (fIsValid && fAtRuntime && !fWasPaused)
    841         {
    842             /* Pausing VM: */
    843             console.Pause();
    844             if (!console.isOk())
     832        /* Get corresponding machine object also: */
     833        CMachine machine = session.GetMachine();
     834
     835        /* Create take-snapshot dialog: */
     836        QWidget *pDlgParent = windowManager().realParentWindow(this);
     837        QPointer<VBoxTakeSnapshotDlg> pDlg = new VBoxTakeSnapshotDlg(pDlgParent, mMachine);
     838        windowManager().registerNewParent(pDlg, pDlgParent);
     839
     840        /* Assign corresponding icon: */
     841        pDlg->mLbIcon->setPixmap(vboxGlobal().vmGuestOSTypeIcon(mMachine.GetOSTypeId()));
     842
     843        /* Search for the max available snapshot index: */
     844        int iMaxSnapShotIndex = 0;
     845        QString snapShotName = tr("Snapshot %1");
     846        QRegExp regExp(QString("^") + snapShotName.arg("([0-9]+)") + QString("$"));
     847        QTreeWidgetItemIterator iterator(mTreeWidget);
     848        while (*iterator)
     849        {
     850            QString snapShot = static_cast<SnapshotWgtItem*>(*iterator)->text(0);
     851            int pos = regExp.indexIn(snapShot);
     852            if (pos != -1)
     853                iMaxSnapShotIndex = regExp.cap(1).toInt() > iMaxSnapShotIndex ? regExp.cap(1).toInt() : iMaxSnapShotIndex;
     854            ++iterator;
     855        }
     856        pDlg->mLeName->setText(snapShotName.arg(iMaxSnapShotIndex + 1));
     857
     858        /* Exec the dialog: */
     859        bool fDialogAccepted = pDlg->exec() == QDialog::Accepted;
     860
     861        /* Is the dialog still valid? */
     862        if (pDlg)
     863        {
     864            /* Acquire variables: */
     865            QString strSnapshotName = pDlg->mLeName->text().trimmed();
     866            QString strSnapshotDescription = pDlg->mTeDescription->toPlainText();
     867
     868            /* Destroy dialog early: */
     869            delete pDlg;
     870
     871            /* Was the dialog accepted? */
     872            if (fDialogAccepted)
    845873            {
    846                 msgCenter().cannotPauseMachine(console);
    847                 fIsValid = false;
    848             }
    849         }
    850 
    851         if (fIsValid)
    852         {
    853             /* Create take-snapshot dialog: */
    854             QWidget *pDlgParent = windowManager().realParentWindow(this);
    855             QPointer<VBoxTakeSnapshotDlg> pDlg = new VBoxTakeSnapshotDlg(pDlgParent, mMachine);
    856             windowManager().registerNewParent(pDlg, pDlgParent);
    857 
    858             /* Assign corresponding icon: */
    859             pDlg->mLbIcon->setPixmap(vboxGlobal().vmGuestOSTypeIcon(mMachine.GetOSTypeId()));
    860 
    861             /* Search for the max available snapshot index: */
    862             int iMaxSnapShotIndex = 0;
    863             QString snapShotName = tr("Snapshot %1");
    864             QRegExp regExp(QString("^") + snapShotName.arg("([0-9]+)") + QString("$"));
    865             QTreeWidgetItemIterator iterator(mTreeWidget);
    866             while (*iterator)
    867             {
    868                 QString snapShot = static_cast<SnapshotWgtItem*>(*iterator)->text(0);
    869                 int pos = regExp.indexIn(snapShot);
    870                 if (pos != -1)
    871                     iMaxSnapShotIndex = regExp.cap(1).toInt() > iMaxSnapShotIndex ? regExp.cap(1).toInt() : iMaxSnapShotIndex;
    872                 ++iterator;
    873             }
    874             pDlg->mLeName->setText(snapShotName.arg(iMaxSnapShotIndex + 1));
    875 
    876             /* Exec the dialog: */
    877             bool fDialogAccepted = pDlg->exec() == QDialog::Accepted;
    878 
    879             /* Is the dialog still valid? */
    880             if (pDlg)
    881             {
    882                 /* Acquire variables: */
    883                 QString strSnapshotName = pDlg->mLeName->text().trimmed();
    884                 QString strSnapshotDescription = pDlg->mTeDescription->toPlainText();
    885 
    886                 /* Destroy dialog early: */
    887                 delete pDlg;
    888 
    889                 /* Was the dialog accepted? */
    890                 if (fDialogAccepted)
     874                /* Prepare the take-snapshot progress: */
     875                CProgress progress = machine.TakeSnapshot(strSnapshotName, strSnapshotDescription, true);
     876                if (machine.isOk())
    891877                {
    892                     /* Prepare the take-snapshot progress: */
    893                     CProgress progress = console.TakeSnapshot(strSnapshotName, strSnapshotDescription);
    894                     if (console.isOk())
     878                    /* Show the take-snapshot progress: */
     879                    msgCenter().showModalProgressDialog(progress, mMachine.GetName(), ":/progress_snapshot_create_90px.png");
     880                    if (!progress.isOk() || progress.GetResultCode() != 0)
    895881                    {
    896                         /* Show the take-snapshot progress: */
    897                         msgCenter().showModalProgressDialog(progress, mMachine.GetName(), ":/progress_snapshot_create_90px.png");
    898                         if (!progress.isOk() || progress.GetResultCode() != 0)
    899                         {
    900                             msgCenter().cannotTakeSnapshot(progress, mMachine.GetName());
    901                             fIsValid = false;
    902                         }
    903                     }
    904                     else
    905                     {
    906                         msgCenter().cannotTakeSnapshot(console, mMachine.GetName());
     882                        msgCenter().cannotTakeSnapshot(progress, mMachine.GetName());
    907883                        fIsValid = false;
    908884                    }
    909885                }
    910886                else
     887                {
     888                    msgCenter().cannotTakeSnapshot(machine, mMachine.GetName());
    911889                    fIsValid = false;
     890                }
    912891            }
    913892            else
    914893                fIsValid = false;
    915894        }
    916 
    917         /* Resume VM if necessary: */
    918         if (fIsValid && fAtRuntime && !fWasPaused)
    919         {
    920             /* Resuming VM: */
    921             console.Resume();
    922             if (!console.isOk())
    923             {
    924                 msgCenter().cannotResumeMachine(console);
    925                 fIsValid = false;
    926             }
    927         }
     895        else
     896            fIsValid = false;
    928897
    929898        /* Unlock machine finally: */
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVM.cpp

    r52730 r55214  
    55
    66/*
    7  * Copyright (C) 2011-2013 Oracle Corporation
     7 * Copyright (C) 2011-2014 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    7979            return false;
    8080
    81         /* Prepare console: */
    82         CConsole console = session.GetConsole();
     81        /* Prepare machine: */
     82        CMachine machine = session.GetMachine();
    8383
    8484        /* Take the snapshot: */
    8585        QString strSnapshotName = tr("Linked Base for %1 and %2").arg(m_machine.GetName()).arg(strName);
    86         CProgress progress = console.TakeSnapshot(strSnapshotName, "");
    87 
    88         if (console.isOk())
     86        CProgress progress = machine.TakeSnapshot(strSnapshotName, "", true);
     87
     88        if (machine.isOk())
    8989        {
    9090            /* Show the "Taking Snapshot" progress dialog: */
     
    9999        else
    100100        {
    101             msgCenter().cannotTakeSnapshot(console, m_machine.GetName(), this);
     101            msgCenter().cannotTakeSnapshot(machine, m_machine.GetName(), this);
    102102            return false;
    103103        }
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette