VirtualBox

source: vbox/trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h@ 42998

Last change on this file since 42998 was 42998, checked in by vboxsync, 12 years ago

FE/Qt: 6234: Support for VM groups: Error-handling for group-saving mechanism.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 25.2 KB
Line 
1/** @file
2 *
3 * VBox frontends: Qt GUI ("VirtualBox"):
4 * UIMessageCenter class declaration
5 */
6
7/*
8 * Copyright (C) 2006-2012 Oracle Corporation
9 *
10 * This file is part of VirtualBox Open Source Edition (OSE), as
11 * available from http://www.virtualbox.org. This file is free software;
12 * you can redistribute it and/or modify it under the terms of the GNU
13 * General Public License (GPL) as published by the Free Software
14 * Foundation, in version 2 as it comes in the "COPYING" file of the
15 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
16 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
17 */
18
19#ifndef __UIMessageCenter_h__
20#define __UIMessageCenter_h__
21
22/* Qt includes: */
23#include <QObject>
24#include <QPointer>
25
26/* GUI includes: */
27#include "QIMessageBox.h"
28#include "UIMediumDefs.h"
29
30/* COM includes: */
31#include "COMEnums.h"
32#include "CProgress.h"
33
34/* Forward declarations: */
35class UIMedium;
36struct StorageSlot;
37#ifdef VBOX_WITH_DRAG_AND_DROP
38class CGuest;
39#endif /* VBOX_WITH_DRAG_AND_DROP */
40
41/**
42 * The UIMessageCenter class is a central place to handle all problem/error
43 * situations that happen during application runtime and require the user's
44 * attention.
45 *
46 * The role of this class is to describe the problem and/or the cause of the
47 * error to the user and give him the opportunity to select an action (when
48 * appropriate).
49 *
50 * Every problem situation has its own (correspondingly named) method in this
51 * class that takes a list of arguments necessary to describe the situation and
52 * to provide the appropriate actions. The method then returns the choice to the
53 * caller.
54 */
55class UIMessageCenter: public QObject
56{
57 Q_OBJECT;
58
59public:
60
61 enum Type
62 {
63 Info = 1,
64 Question,
65 Warning,
66 Error,
67 Critical,
68 GuruMeditation
69 };
70
71 enum
72 {
73 AutoConfirmed = 0x8000
74 };
75
76 bool isAnyWarningShown();
77 bool isAlreadyShown(const QString &strGuardBlockName) const;
78 void setShownStatus(const QString &strGuardBlockName);
79 void clearShownStatus(const QString &strGuardBlockName);
80 void closeAllWarnings();
81
82 int message(QWidget *pParent, Type type, const QString &strMessage,
83 const QString &strDetails = QString::null,
84 const char *pcszAutoConfirmId = 0,
85 int button1 = 0, int button2 = 0, int button3 = 0,
86 const QString &strText1 = QString::null,
87 const QString &strText2 = QString::null,
88 const QString &strText3 = QString::null) const;
89
90 int message(QWidget *pParent, Type type, const QString &strMessage,
91 const char *pcszAutoConfirmId,
92 int button1 = 0, int button2 = 0, int button3 = 0,
93 const QString &strText1 = QString::null,
94 const QString &strText2 = QString::null,
95 const QString &strText3 = QString::null) const
96 {
97 return message(pParent, type, strMessage, QString::null, pcszAutoConfirmId,
98 button1, button2, button3, strText1, strText2, strText3);
99 }
100
101 bool messageYesNo(QWidget *pParent, Type type, const QString &strMessage,
102 const QString &strDetails = QString::null,
103 const char *pcszAutoConfirmId = 0,
104 const QString &strYesText = QString::null,
105 const QString &strNoText = QString::null) const
106 {
107 return(message(pParent, type, strMessage, strDetails, pcszAutoConfirmId,
108 QIMessageBox::Yes | QIMessageBox::Default,
109 QIMessageBox::No | QIMessageBox::Escape,
110 0,
111 strYesText, strNoText, QString::null) &
112 QIMessageBox::ButtonMask) == QIMessageBox::Yes;
113 }
114
115 bool messageYesNo(QWidget *pParent, Type type, const QString &strMessage,
116 const char *pcszAutoConfirmId,
117 const QString &strYesText = QString::null,
118 const QString &strNoText = QString::null) const
119 {
120 return messageYesNo(pParent, type, strMessage, QString::null,
121 pcszAutoConfirmId, strYesText, strNoText);
122 }
123
124 bool messageOkCancel(QWidget *pParent, Type type, const QString &strMessage,
125 const QString &strDetails = QString::null,
126 const char *pcszAutoConfirmId = 0,
127 const QString &strOkText = QString::null,
128 const QString &strCancelText = QString::null) const
129 {
130 return(message(pParent, type, strMessage, strDetails, pcszAutoConfirmId,
131 QIMessageBox::Ok | QIMessageBox::Default,
132 QIMessageBox::Cancel | QIMessageBox::Escape,
133 0,
134 strOkText, strCancelText, QString::null) &
135 QIMessageBox::ButtonMask) == QIMessageBox::Ok;
136 }
137
138 bool messageOkCancel(QWidget *pParent, Type type, const QString &strMessage,
139 const char *pcszAutoConfirmId,
140 const QString &strOkText = QString::null,
141 const QString &strCancelText = QString::null) const
142 {
143 return messageOkCancel(pParent, type, strMessage, QString::null,
144 pcszAutoConfirmId, strOkText, strCancelText);
145 }
146
147 int messageWithOption(QWidget *pParent,
148 Type type,
149 const QString &strMessage,
150 const QString &strOptionText,
151 bool fDefaultOptionValue = true,
152 const QString &strDetails = QString::null,
153 int iButton1 = 0,
154 int iButton2 = 0,
155 int iButton3 = 0,
156 const QString &strButtonName1 = QString::null,
157 const QString &strButtonName2 = QString::null,
158 const QString &strButtonName3 = QString::null) const;
159
160 bool showModalProgressDialog(CProgress &progress, const QString &strTitle,
161 const QString &strImage = "", QWidget *pParent = 0,
162 bool fSheetOnDarwin = false, int cMinDuration = 2000);
163
164 QWidget* mainWindowShown() const;
165 QWidget* mainMachineWindowShown() const;
166 QWidget* networkManagerOrMainWindowShown() const;
167 QWidget* networkManagerOrMainMachineWindowShown() const;
168
169 bool askForOverridingFile(const QString& strPath, QWidget *pParent = NULL);
170 bool askForOverridingFiles(const QVector<QString>& strPaths, QWidget *pParent = NULL);
171 bool askForOverridingFileIfExists(const QString& strPath, QWidget *pParent = NULL);
172 bool askForOverridingFilesIfExists(const QVector<QString>& strPaths, QWidget *pParent = NULL);
173
174 void checkForMountedWrongUSB();
175
176 void showBETAWarning();
177 void showBEBWarning();
178
179#ifdef Q_WS_X11
180 void cannotFindLicenseFiles(const QString &strPath);
181#endif
182 void cannotOpenLicenseFile(QWidget *pParent, const QString &strPath);
183
184 void cannotOpenURL(const QString &strUrl);
185
186 void cannotFindLanguage(const QString &strLangId, const QString &strNlsPath);
187 void cannotLoadLanguage(const QString &strLangFile);
188
189 void cannotInitCOM(HRESULT rc);
190 void cannotInitUserHome(const QString &strUserHome);
191 void cannotCreateVirtualBox(const CVirtualBox &vbox);
192
193 void cannotLoadGlobalConfig(const CVirtualBox &vbox, const QString &strError);
194 void cannotSaveGlobalConfig(const CVirtualBox &vbox);
195 void cannotSetSystemProperties(const CSystemProperties &props);
196
197 void cannotAccessUSB(const COMBaseWithEI &object);
198
199 void cannotCreateMachine(const CVirtualBox &vbox, QWidget *pParent = 0);
200 void cannotCreateMachine(const CVirtualBox &vbox, const CMachine &machine, QWidget *pParent = 0);
201
202 void cannotOpenMachine(QWidget *pParent, const QString &strMachinePath, const CVirtualBox &vbox);
203 void cannotRegisterMachine(const CVirtualBox &vbox, const CMachine &machine, QWidget *pParent);
204 void cannotReregisterMachine(QWidget *pParent, const QString &strMachinePath, const QString &strMachineName);
205 void cannotApplyMachineSettings(const CMachine &machine, const COMResult &res);
206 void cannotSaveMachineSettings(const CMachine &machine, QWidget *pParent = 0);
207 void cannotLoadMachineSettings(const CMachine &machine, bool fStrict = true, QWidget *pParent = 0);
208
209 bool confirmedSettingsReloading(QWidget *pParent);
210 void warnAboutStateChange(QWidget *pParent);
211
212 void cannotStartMachine(const CConsole &console);
213 void cannotStartMachine(const CProgress &progress);
214 void cannotPauseMachine(const CConsole &console);
215 void cannotResumeMachine(const CConsole &console);
216 void cannotACPIShutdownMachine(const CConsole &console);
217 void cannotSaveMachineState(const CConsole &console);
218 void cannotSaveMachineState(const CProgress &progress);
219 void cannotCreateClone(const CMachine &machine, QWidget *pParent = 0);
220 void cannotCreateClone(const CMachine &machine, const CProgress &progress, QWidget *pParent = 0);
221 void cannotTakeSnapshot(const CConsole &console);
222 void cannotTakeSnapshot(const CProgress &progress);
223 void cannotStopMachine(const CConsole &console);
224 void cannotStopMachine(const CProgress &progress);
225 void cannotDeleteMachine(const CMachine &machine);
226 void cannotDeleteMachine(const CMachine &machine, const CProgress &progress);
227 void cannotDiscardSavedState(const CConsole &console);
228
229 void cannotSendACPIToMachine();
230
231 bool warnAboutVirtNotEnabled64BitsGuest(bool fHWVirtExSupported);
232 bool warnAboutVirtNotEnabledGuestRequired(bool fHWVirtExSupported);
233
234 int askAboutSnapshotRestoring(const QString &strSnapshotName, bool fAlsoCreateNewSnapshot);
235 bool askAboutSnapshotDeleting(const QString &strSnapshotName);
236 bool askAboutSnapshotDeletingFreeSpace(const QString &strSnapshotName,
237 const QString &strTargetImageName,
238 const QString &strTargetImageMaxSize,
239 const QString &strTargetFileSystemFree);
240 void cannotRestoreSnapshot(const CConsole &console, const QString &strSnapshotName);
241 void cannotRestoreSnapshot(const CProgress &progress, const QString &strSnapshotName);
242 void cannotDeleteSnapshot(const CConsole &console, const QString &strSnapshotName);
243 void cannotDeleteSnapshot(const CProgress &progress, const QString &strSnapshotName);
244 void cannotFindSnapshotByName(QWidget *pParent, const CMachine &machine, const QString &strMachine) const;
245
246 void cannotFindMachineByName(const CVirtualBox &vbox, const QString &name);
247
248 void cannotEnterSeamlessMode(ULONG uWidth, ULONG uHeight,
249 ULONG uBpp, ULONG64 uMinVRAM);
250 int cannotEnterFullscreenMode(ULONG uWidth, ULONG uHeight,
251 ULONG uBpp, ULONG64 uMinVRAM);
252 void cannotSwitchScreenInSeamless(quint64 uMinVRAM);
253 int cannotSwitchScreenInFullscreen(quint64 uMinVRAM);
254 int cannotEnterFullscreenMode();
255 int cannotEnterSeamlessMode();
256
257 void notifyAboutCollisionOnGroupRemovingCantBeResolved(const QString &strName, const QString &strGroupName);
258 int askAboutCollisionOnGroupRemoving(const QString &strName, const QString &strGroupName);
259 int confirmMachineItemRemoval(const QStringList &names);
260 int confirmMachineDeletion(const QList<CMachine> &machines);
261 bool confirmDiscardSavedState(const QString &strNames);
262
263 void cannotSetGroups(const CMachine &machine);
264
265 void cannotChangeMediumType(QWidget *pParent, const CMedium &medium, KMediumType oldMediumType, KMediumType newMediumType);
266
267 bool confirmReleaseMedium(QWidget *pParent, const UIMedium &aMedium,
268 const QString &strUsage);
269
270 bool confirmRemoveMedium(QWidget *pParent, const UIMedium &aMedium);
271
272 void sayCannotOverwriteHardDiskStorage(QWidget *pParent,
273 const QString &strLocation);
274 int confirmDeleteHardDiskStorage(QWidget *pParent,
275 const QString &strLocation);
276 void cannotDeleteHardDiskStorage(QWidget *pParent, const CMedium &medium,
277 const CProgress &progress);
278
279 int askAboutHardDiskAttachmentCreation(QWidget *pParent, const QString &strControllerName);
280 int askAboutOpticalAttachmentCreation(QWidget *pParent, const QString &strControllerName);
281 int askAboutFloppyAttachmentCreation(QWidget *pParent, const QString &strControllerName);
282
283 int confirmRemovingOfLastDVDDevice() const;
284
285 void cannotCreateHardDiskStorage(QWidget *pParent, const CVirtualBox &vbox,
286 const QString &strLocation,
287 const CMedium &medium,
288 const CProgress &progress);
289 void cannotDetachDevice(QWidget *pParent, const CMachine &machine,
290 UIMediumType type, const QString &strLocation, const StorageSlot &storageSlot);
291
292 int cannotRemountMedium(QWidget *pParent, const CMachine &machine, const UIMedium &aMedium, bool fMount, bool fRetry);
293 void cannotOpenMedium(QWidget *pParent, const CVirtualBox &vbox,
294 UIMediumType type, const QString &strLocation);
295 void cannotCloseMedium(QWidget *pParent, const UIMedium &aMedium,
296 const COMResult &rc);
297
298 void cannotOpenSession(const CSession &session);
299 void cannotOpenSession(const CVirtualBox &vbox, const CMachine &machine,
300 const CProgress &progress = CProgress());
301 void cannotOpenSession(const CMachine &machine);
302
303 void cannotGetMediaAccessibility(const UIMedium &aMedium);
304
305 int confirmDeletingHostInterface(const QString &strName, QWidget *pParent = 0);
306
307 void cannotAttachUSBDevice(const CConsole &console, const QString &device);
308 void cannotAttachUSBDevice(const CConsole &console, const QString &device,
309 const CVirtualBoxErrorInfo &error);
310 void cannotDetachUSBDevice(const CConsole &console, const QString &device);
311 void cannotDetachUSBDevice(const CConsole &console, const QString &device,
312 const CVirtualBoxErrorInfo &error);
313
314 void remindAboutGuestAdditionsAreNotActive(QWidget *pParent);
315 bool cannotFindGuestAdditions();
316 void cannotMountGuestAdditions(const QString &strMachineName);
317 bool confirmDownloadAdditions(const QString &strUrl, qulonglong uSize);
318 bool confirmMountAdditions(const QString &strUrl, const QString &strSrc);
319 void warnAboutAdditionsCantBeSaved(const QString &strTarget);
320
321 bool askAboutUserManualDownload(const QString &strMissedLocation);
322 bool confirmUserManualDownload(const QString &strURL, qulonglong uSize);
323 void warnAboutUserManualDownloaded(const QString &strURL, const QString &strTarget);
324 void warnAboutUserManualCantBeSaved(const QString &strURL, const QString &strTarget);
325
326 bool proposeDownloadExtensionPack(const QString &strExtPackName, const QString &strExtPackVersion);
327 bool requestUserDownloadExtensionPack(const QString &strExtPackName, const QString &strExtPackVersion, const QString &strVBoxVersion);
328 bool confirmDownloadExtensionPack(const QString &strExtPackName, const QString &strURL, qulonglong uSize);
329 bool proposeInstallExtentionPack(const QString &strExtPackName, const QString &strFrom, const QString &strTo);
330 void warnAboutExtentionPackCantBeSaved(const QString &strExtPackName, const QString &strFrom, const QString &strTo);
331
332 void cannotConnectRegister(QWidget *pParent,
333 const QString &strUrl,
334 const QString &strReason);
335 void showRegisterResult(QWidget *pParent,
336 const QString &strResult);
337
338 void showUpdateSuccess(const QString &strVersion, const QString &strLink);
339 void showUpdateNotFound();
340
341 bool askAboutCancelAllNetworkRequest(QWidget *pParent);
342
343 bool confirmInputCapture(bool *pfAutoConfirmed = NULL);
344 void remindAboutAutoCapture();
345 void remindAboutMouseIntegration(bool fSupportsAbsolute);
346 bool remindAboutPausedVMInput();
347
348 int warnAboutSettingsAutoConversion(const QString &strFileList, bool fAfterRefresh);
349
350 bool remindAboutInaccessibleMedia();
351
352 bool confirmGoingFullscreen(const QString &strHotKey);
353 bool confirmGoingSeamless(const QString &strHotKey);
354 bool confirmGoingScale(const QString &strHotKey);
355
356 bool remindAboutGuruMeditation(const CConsole &console,
357 const QString &strLogFolder);
358
359 bool confirmVMReset(const QString &strNames);
360 bool confirmVMACPIShutdown(const QString &strNames);
361 bool confirmVMPowerOff(const QString &strNames);
362
363 void warnAboutCannotRemoveMachineFolder(QWidget *pParent, const QString &strFolderName);
364 void warnAboutCannotRewriteMachineFolder(QWidget *pParent, const QString &strFolderName);
365 void warnAboutCannotCreateMachineFolder(QWidget *pParent, const QString &strFolderName);
366 bool confirmHardDisklessMachine(QWidget *pParent);
367
368 void cannotRunInSelectorMode();
369
370 void cannotImportAppliance(CAppliance *pAppliance, QWidget *pParent = NULL) const;
371 void cannotImportAppliance(const CProgress &progress, CAppliance *pAppliance, QWidget *pParent = NULL) const;
372
373 void cannotCheckFiles(const CProgress &progress, QWidget *pParent = NULL) const;
374 void cannotRemoveFiles(const CProgress &progress, QWidget *pParent = NULL) const;
375
376 bool confirmExportMachinesInSaveState(const QStringList &strMachineNames, QWidget *pParent = NULL) const;
377 void cannotExportAppliance(CAppliance *pAppliance, QWidget *pParent = NULL) const;
378 void cannotExportAppliance(const CMachine &machine, CAppliance *pAppliance, QWidget *pParent = NULL) const;
379 void cannotExportAppliance(const CProgress &progress, CAppliance *pAppliance, QWidget *pParent = NULL) const;
380
381 void cannotUpdateGuestAdditions(const CProgress &progress, QWidget *pParent /* = NULL */) const;
382
383 void cannotOpenExtPack(const QString &strFilename, const CExtPackManager &extPackManager, QWidget *pParent);
384 void badExtPackFile(const QString &strFilename, const CExtPackFile &extPackFile, QWidget *pParent);
385 void cannotInstallExtPack(const QString &strFilename, const CExtPackFile &extPackFile, const CProgress &progress, QWidget *pParent);
386 void cannotUninstallExtPack(const QString &strPackName, const CExtPackManager &extPackManager, const CProgress &progress, QWidget *pParent);
387 bool confirmInstallingPackage(const QString &strPackName, const QString &strPackVersion, const QString &strPackDescription, QWidget *pParent);
388 bool confirmReplacePackage(const QString &strPackName, const QString &strPackVersionNew, const QString &strPackVersionOld,
389 const QString &strPackDescription, QWidget *pParent);
390 bool confirmRemovingPackage(const QString &strPackName, QWidget *pParent);
391 void notifyAboutExtPackInstalled(const QString &strPackName, QWidget *pParent);
392
393 void warnAboutIncorrectPort(QWidget *pParent) const;
394 bool confirmCancelingPortForwardingDialog(QWidget *pParent) const;
395
396 void showRuntimeError(const CConsole &console, bool fFatal,
397 const QString &strErrorId,
398 const QString &strErrorMsg) const;
399
400 static QString mediumToAccusative(UIMediumType type, bool fIsHostDrive = false);
401
402 static QString formatRC(HRESULT rc);
403
404 static QString formatErrorInfo(const COMErrorInfo &info,
405 HRESULT wrapperRC = S_OK);
406
407 static QString formatErrorInfo(const CVirtualBoxErrorInfo &info)
408 {
409 return formatErrorInfo(COMErrorInfo(info));
410 }
411
412 static QString formatErrorInfo(const COMBaseWithEI &wrapper)
413 {
414 Assert(wrapper.lastRC() != S_OK);
415 return formatErrorInfo(wrapper.errorInfo(), wrapper.lastRC());
416 }
417
418 static QString formatErrorInfo(const COMResult &rc)
419 {
420 Assert(rc.rc() != S_OK);
421 return formatErrorInfo(rc.errorInfo(), rc.rc());
422 }
423
424 void showGenericError(COMBaseWithEI *object, QWidget *pParent = 0);
425
426 /* Stuff supporting interthreading: */
427 void cannotCreateHostInterface(const CHost &host, QWidget *pParent = 0);
428 void cannotCreateHostInterface(const CProgress &progress, QWidget *pParent = 0);
429 void cannotRemoveHostInterface(const CHost &host, const CHostNetworkInterface &iface, QWidget *pParent = 0);
430 void cannotRemoveHostInterface(const CProgress &progress, const CHostNetworkInterface &iface, QWidget *pParent = 0);
431 void cannotAttachDevice(const CMachine &machine, UIMediumType type,
432 const QString &strLocation, const StorageSlot &storageSlot, QWidget *pParent = 0);
433 void cannotCreateSharedFolder(const CMachine &machine, const QString &strName,
434 const QString &strPath, QWidget *pParent = 0);
435 void cannotRemoveSharedFolder(const CMachine &machine, const QString &strName,
436 const QString &strPath, QWidget *pParent = 0);
437 void cannotCreateSharedFolder(const CConsole &console, const QString &strName,
438 const QString &strPath, QWidget *pParent = 0);
439 void cannotRemoveSharedFolder(const CConsole &console, const QString &strName,
440 const QString &strPath, QWidget *pParent = 0);
441#ifdef VBOX_WITH_DRAG_AND_DROP
442 void cannotDropData(const CGuest &guest, QWidget *pParent = 0) const;
443 void cannotDropData(const CProgress &progress, QWidget *pParent = 0) const;
444#endif /* VBOX_WITH_DRAG_AND_DROP */
445 void remindAboutWrongColorDepth(ulong uRealBPP, ulong uWantedBPP);
446 void remindAboutUnsupportedUSB2(const QString &strExtPackName, QWidget *pParent = 0);
447
448signals:
449
450 void sigToCloseAllWarnings();
451
452 /* Stuff supporting interthreading: */
453 void sigCannotCreateHostInterface(const CHost &host, QWidget *pParent);
454 void sigCannotCreateHostInterface(const CProgress &progress, QWidget *pParent);
455 void sigCannotRemoveHostInterface(const CHost &host, const CHostNetworkInterface &iface, QWidget *pParent);
456 void sigCannotRemoveHostInterface(const CProgress &progress, const CHostNetworkInterface &iface, QWidget *pParent);
457 void sigCannotAttachDevice(const CMachine &machine, UIMediumType type,
458 const QString &strLocation, const StorageSlot &storageSlot, QWidget *pParent);
459 void sigCannotCreateSharedFolder(const CMachine &machine, const QString &strName,
460 const QString &strPath, QWidget *pParent);
461 void sigCannotRemoveSharedFolder(const CMachine &machine, const QString &strName,
462 const QString &strPath, QWidget *pParent);
463 void sigCannotCreateSharedFolder(const CConsole &console, const QString &strName,
464 const QString &strPath, QWidget *pParent);
465 void sigCannotRemoveSharedFolder(const CConsole &console, const QString &strName,
466 const QString &strPath, QWidget *pParent);
467 void sigRemindAboutWrongColorDepth(ulong uRealBPP, ulong uWantedBPP);
468 void sigRemindAboutUnsupportedUSB2(const QString &strExtPackName, QWidget *pParent);
469
470public slots:
471
472 void sltShowHelpWebDialog();
473 void sltShowHelpAboutDialog();
474 void sltShowHelpHelpDialog();
475 void sltResetSuppressedMessages();
476 void sltShowUserManual(const QString &strLocation);
477
478private slots:
479
480 /* Stuff supporting interthreading: */
481 void sltCannotCreateHostInterface(const CHost &host, QWidget *pParent);
482 void sltCannotCreateHostInterface(const CProgress &progress, QWidget *pParent);
483 void sltCannotRemoveHostInterface(const CHost &host, const CHostNetworkInterface &iface, QWidget *pParent);
484 void sltCannotRemoveHostInterface(const CProgress &progress, const CHostNetworkInterface &iface, QWidget *pParent);
485 void sltCannotAttachDevice(const CMachine &machine, UIMediumType type,
486 const QString &strLocation, const StorageSlot &storageSlot, QWidget *pParent);
487 void sltCannotCreateSharedFolder(const CMachine &machine, const QString &strName,
488 const QString &strPath, QWidget *pParent);
489 void sltCannotRemoveSharedFolder(const CMachine &machine, const QString &strName,
490 const QString &strPath, QWidget *pParent);
491 void sltCannotCreateSharedFolder(const CConsole &console, const QString &strName,
492 const QString &strPath, QWidget *pParent);
493 void sltCannotRemoveSharedFolder(const CConsole &console, const QString &strName,
494 const QString &strPath, QWidget *pParent);
495 void sltRemindAboutWrongColorDepth(ulong uRealBPP, ulong uWantedBPP);
496 void sltRemindAboutUnsupportedUSB2(const QString &strExtPackName, QWidget *pParent);
497
498private:
499
500 UIMessageCenter();
501
502 static UIMessageCenter &instance();
503
504 friend UIMessageCenter &msgCenter();
505
506 static QString errorInfoToString(const COMErrorInfo &info,
507 HRESULT wrapperRC = S_OK);
508
509 QStringList m_strShownWarnings;
510 mutable QList<QPointer<QIMessageBox> > m_warnings;
511};
512
513/* Shortcut to the static UIMessageCenter::instance() method, for convenience. */
514inline UIMessageCenter &msgCenter() { return UIMessageCenter::instance(); }
515
516#endif // __UIMessageCenter_h__
517
Note: See TracBrowser for help on using the repository browser.

© 2023 Oracle
ContactPrivacy policyTerms of Use