summarylogtreecommitdiffstats
path: root/022-FE-Qt-VBox-Manager-Create-destroy-notification-center.patch
blob: 3f59842656e631304ad24cae2cd09ee7aadaaac2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
commit d6c63639c31ecf95e19830b0311fb16482712258
Author: Sergey Dubov <sergey.dubov@oracle.com>
Date:   Fri Aug 15 14:31:43 2025 +0000

    FE/Qt: VBox Manager: Create/destroy notification-center same way as for the Runtime UI; Which means early enough to let other widgets post there their init/loading notifications.
    
    svn:sync-xref-src-repo-rev: r170248

    (remove VCS rubbish with $Id line)

diff --git a/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp b/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp
index 78feecd487b..a0ffa7a172a 100644
--- a/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp
+++ b/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp
@@ -2402,6 +2402,9 @@ void UIVirtualBoxManager::prepare()
     qApp->installEventFilter(this);
 #endif
 
+    /* Prepare notification-center invisibvle way: */
+    prepareNotificationCenter();
+
     /* Cache media data early if necessary: */
     if (uiCommon().agressiveCaching())
         gpMediumEnumerator->enumerateMedia();
@@ -2446,6 +2449,11 @@ void UIVirtualBoxManager::prepare()
 #endif /* VBOX_GUI_WITH_NETWORK_MANAGER && VBOX_WITH_UPDATE_REQUEST */
 }
 
+void UIVirtualBoxManager::prepareNotificationCenter()
+{
+    UINotificationCenter::create();
+}
+
 void UIVirtualBoxManager::prepareCloudMachineManager()
 {
     UICloudMachineManager::create();
@@ -2805,6 +2813,11 @@ void UIVirtualBoxManager::cleanupCloudMachineManager()
     UICloudMachineManager::destroy();
 }
 
+void UIVirtualBoxManager::cleanupNotificationCenter()
+{
+    UINotificationCenter::destroy();
+}
+
 void UIVirtualBoxManager::cleanup()
 {
     /* Ask sub-dialogs to commit data: */
@@ -2814,6 +2827,7 @@ void UIVirtualBoxManager::cleanup()
     cleanupWidgets();
     cleanupMenuBar();
     cleanupCloudMachineManager();
+    cleanupNotificationCenter();
 }
 
 UIVirtualMachineItem *UIVirtualBoxManager::currentItem() const
diff --git a/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.h b/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.h
index 0fbfda06e57..1ed2a72c86c 100644
--- a/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.h
+++ b/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.h
@@ -341,6 +341,8 @@ private:
       * @{ */
         /** Prepares window. */
         void prepare();
+        /** Prepares notification-center. */
+        void prepareNotificationCenter();
         /** Prepares cloud machine manager. */
         void prepareCloudMachineManager();
         /** Prepares icon. */
@@ -366,6 +368,8 @@ private:
         void cleanupMenuBar();
         /** Cleanups cloud machine manager. */
         void cleanupCloudMachineManager();
+        /** Cleanups notification-center. */
+        void cleanupNotificationCenter();
         /** Cleanups window. */
         void cleanup();
     /** @} */
diff --git a/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxWidget.cpp b/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxWidget.cpp
index eaf95e6659a..a21a41d5a3c 100644
--- a/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxWidget.cpp
+++ b/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxWidget.cpp
@@ -399,8 +399,8 @@ void UIVirtualBoxWidget::prepareWidgets()
         }
     }
 
-    /* Create notification-center: */
-    UINotificationCenter::create(this);
+    /* Reparent notification-center: */
+    gpNotificationCenter->setParent(this);
 
     /* Update toolbar finally: */
     updateToolbar();
@@ -746,8 +746,8 @@ void UIVirtualBoxWidget::cleanupConnections()
 
 void UIVirtualBoxWidget::cleanup()
 {
-    /* Destroy notification-center: */
-    UINotificationCenter::destroy();
+    /* Reparent notification-center: */
+    gpNotificationCenter->setParent(0);
 }
 
 UIGlobalToolsWidget *UIVirtualBoxWidget::globalToolsWidget() const