Changeset 71038 in vbox for trunk/src/VBox/Frontends/VirtualBox
- Timestamp:
- Feb 16, 2018 3:48:59 PM (7 years ago)
- svn:sync-xref-src-repo-rev:
- 120901
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/guestctrl
- Files:
-
- 2 edited
- 2 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/guestctrl/UIGuestControlTreeItem.cpp
r71037 r71038 21 21 22 22 /* GUI includes: */ 23 # include "UIGuestSessionTreeItem.h" 23 # include "UIExtraDataManager.h" 24 # include "UIGuestControlTreeItem.h" 24 25 # include "VBoxGlobal.h" 25 26 26 27 /* COM includes: */ 27 28 # include "CGuest.h" 28 29 # include "CEventSource.h" 29 30 #endif /* !VBOX_WITH_PRECOMPILED_HEADERS */ 30 31 31 32 UIGuestSessionTreeItem::UIGuestSessionTreeItem(QITreeWidget *pTreeWidget, 33 GuestSessionTreeItemType itemType) 34 :QITreeWidgetItem(pTreeWidget) 35 , m_eItemType(itemType) 36 { 37 } 38 39 UIGuestSessionTreeItem::UIGuestSessionTreeItem(UIGuestSessionTreeItem *pTreeWidgetItem, 40 GuestSessionTreeItemType itemType) 41 :QITreeWidgetItem(pTreeWidgetItem) 42 , m_eItemType(itemType) 43 { 44 } 45 46 UIGuestSessionTreeItem::UIGuestSessionTreeItem(QITreeWidget *pTreeWidget, 47 const QStringList &strings, GuestSessionTreeItemType itemType) 48 :QITreeWidgetItem(pTreeWidget, strings) 49 , m_eItemType(itemType) 50 { 51 } 52 53 UIGuestSessionTreeItem::UIGuestSessionTreeItem(UIGuestSessionTreeItem *pTreeWidgetItem, 54 const QStringList &strings, GuestSessionTreeItemType itemType) 32 /********************************************************************************************************************************* 33 * UIGuestControlTreeItem implementation. * 34 *********************************************************************************************************************************/ 35 36 UIGuestControlTreeItem::UIGuestControlTreeItem(QITreeWidget *pTreeWidget, const QStringList &strings /* = QStringList() */) 37 :QITreeWidgetItem(pTreeWidget,strings) 38 { 39 } 40 41 UIGuestControlTreeItem::UIGuestControlTreeItem(UIGuestControlTreeItem *pTreeWidgetItem, 42 const QStringList &strings/* = QStringList() */) 55 43 :QITreeWidgetItem(pTreeWidgetItem, strings) 56 , m_eItemType(itemType) 57 { 58 } 44 { 45 46 } 47 48 UIGuestControlTreeItem::~UIGuestControlTreeItem() 49 { 50 } 51 52 void UIGuestControlTreeItem::prepare() 53 { 54 prepareConnections(); 55 prepareConnections(); 56 } 57 58 void UIGuestControlTreeItem::prepareListener(CEventSource comEventSource, QVector<KVBoxEventType>& eventTypes) 59 { 60 AssertWrapperOk(comEventSource); 61 62 /* Create event listener instance: */ 63 m_pQtListener.createObject(); 64 m_pQtListener->init(new UIMainEventListener, this); 65 m_comEventListener = CEventListener(m_pQtListener); 66 67 /* Register event listener for CProgress event source: */ 68 comEventSource.RegisterListener(m_comEventListener, eventTypes, 69 gEDataManager->eventHandlingType() == EventHandlingType_Active ? TRUE : FALSE); 70 AssertWrapperOk(comEventSource); 71 72 /* If event listener registered as passive one: */ 73 if (gEDataManager->eventHandlingType() == EventHandlingType_Passive) 74 { 75 /* Register event sources in their listeners as well: */ 76 m_pQtListener->getWrapped()->registerSource(comEventSource, m_comEventListener); 77 } 78 } 79 80 void UIGuestControlTreeItem::cleanupListener(CEventSource comEventSource) 81 { 82 AssertWrapperOk(comEventSource); 83 /* If event listener registered as passive one: */ 84 if (gEDataManager->eventHandlingType() == EventHandlingType_Passive) 85 { 86 /* Unregister everything: */ 87 m_pQtListener->getWrapped()->unregisterSources(); 88 } 89 90 /* Make sure VBoxSVC is available: */ 91 if (!vboxGlobal().isVBoxSVCAvailable()) 92 return; 93 94 /* Unregister event listener for CProgress event source: */ 95 comEventSource.UnregisterListener(m_comEventListener); 96 } 97 98 /********************************************************************************************************************************* 99 * UIGuestSessionTreeItem implementation. * 100 *********************************************************************************************************************************/ 101 102 UIGuestSessionTreeItem::UIGuestSessionTreeItem(QITreeWidget *pTreeWidget, CGuestSession& guestSession, 103 const QStringList &strings /* = QStringList() */) 104 :UIGuestControlTreeItem(pTreeWidget, strings) 105 , m_comGuestSession(guestSession) 106 { 107 prepare(); 108 } 109 110 UIGuestSessionTreeItem::UIGuestSessionTreeItem(UIGuestControlTreeItem *pTreeWidgetItem, CGuestSession& guestSession, 111 const QStringList &strings /* = QStringList() */) 112 :UIGuestControlTreeItem(pTreeWidgetItem, strings) 113 , m_comGuestSession(guestSession) 114 { 115 prepare(); 116 } 117 118 UIGuestSessionTreeItem::~UIGuestSessionTreeItem() 119 { 120 cleanupListener(); 121 } 122 123 void UIGuestSessionTreeItem::prepareConnections() 124 { 125 connect(m_pQtListener->getWrapped(), &UIMainEventListener::sigGuestSessionStatedChanged, 126 this, &UIGuestSessionTreeItem::sltGuestSessionUpdated); 127 connect(m_pQtListener->getWrapped(), &UIMainEventListener::sigGuestProcessRegistered, 128 this, &UIGuestSessionTreeItem::sltGuestProcessRegistered); 129 connect(m_pQtListener->getWrapped(), &UIMainEventListener::sigGuestProcessUnregistered, 130 this, &UIGuestSessionTreeItem::sltGuestProcessUnregistered); 131 } 132 133 void UIGuestSessionTreeItem::prepareListener() 134 { 135 QVector<KVBoxEventType> eventTypes; 136 eventTypes << KVBoxEventType_OnGuestSessionStateChanged 137 << KVBoxEventType_OnGuestProcessRegistered; 138 139 UIGuestControlTreeItem::prepareListener(m_comGuestSession.GetEventSource(), eventTypes); 140 } 141 142 void UIGuestSessionTreeItem::cleanupListener() 143 { 144 UIGuestControlTreeItem::cleanupListener(m_comGuestSession.GetEventSource()); 145 } 146 147 void UIGuestSessionTreeItem::sltGuestSessionUpdated() 148 { 149 } 150 151 void UIGuestSessionTreeItem::sltGuestProcessRegistered(CGuestProcess guestProcess) 152 { 153 154 } 155 156 void UIGuestSessionTreeItem::sltGuestProcessUnregistered(CGuestProcess guestProcess) 157 { 158 } 159 160 /********************************************************************************************************************************* 161 * UIGuestProcessTreeItem implementation. * 162 *********************************************************************************************************************************/ 163 UIGuestProcessTreeItem::UIGuestProcessTreeItem(QITreeWidget *pTreeWidget, CGuestProcess& guestProcess, 164 const QStringList &strings /* = QStringList() */) 165 :UIGuestControlTreeItem(pTreeWidget, strings) 166 , m_comGuestProcess(guestProcess) 167 { 168 prepare(); 169 } 170 171 UIGuestProcessTreeItem::UIGuestProcessTreeItem(UIGuestControlTreeItem *pTreeWidgetItem, CGuestProcess& guestProcess, 172 const QStringList &strings /* = QStringList() */) 173 :UIGuestControlTreeItem(pTreeWidgetItem, strings) 174 , m_comGuestProcess(guestProcess) 175 { 176 prepare(); 177 } 178 179 void UIGuestProcessTreeItem::prepareConnections() 180 { 181 connect(m_pQtListener->getWrapped(), &UIMainEventListener::sigGuestProcessStateChanged, 182 this, &UIGuestProcessTreeItem::sltGuestProcessUpdated); 183 } 184 185 UIGuestProcessTreeItem::~UIGuestProcessTreeItem() 186 { 187 cleanupListener(); 188 } 189 190 void UIGuestProcessTreeItem::prepareListener() 191 { 192 QVector<KVBoxEventType> eventTypes; 193 eventTypes << KVBoxEventType_OnGuestProcessStateChanged 194 << KVBoxEventType_OnGuestProcessInputNotify 195 << KVBoxEventType_OnGuestProcessOutput; 196 UIGuestControlTreeItem::prepareListener(m_comGuestProcess.GetEventSource(), eventTypes); 197 } 198 199 200 void UIGuestProcessTreeItem::cleanupListener() 201 { 202 UIGuestControlTreeItem::cleanupListener(m_comGuestProcess.GetEventSource()); 203 } 204 205 void UIGuestProcessTreeItem::sltGuestProcessUpdated() 206 { 207 } -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/guestctrl/UIGuestControlTreeItem.h
r71037 r71038 1 1 /* $Id$ */ 2 2 /** @file 3 * VBox Qt GUI - UIGuest SessionTreeItem class declaration.3 * VBox Qt GUI - UIGuestControlTreeItem class declaration. 4 4 */ 5 5 … … 16 16 */ 17 17 18 #ifndef ___UIGuest SessionTreeItem_h___19 #define ___UIGuest SessionTreeItem_h___18 #ifndef ___UIGuestControlTreeItem_h___ 19 #define ___UIGuestControlTreeItem_h___ 20 20 21 21 /* GUI includes: */ 22 # include "QITreeWidget.h" 22 #include "QITreeWidget.h" 23 #include "UIMainEventListener.h" 23 24 25 /* COM includes: */ 26 #include "CEventListener.h" 27 #include "CGuestSession.h" 24 28 25 29 /* Forward declarations: */ 30 class CEventSource; 26 31 27 28 class UIGuestSessionTreeItem : public QITreeWidgetItem 32 class UIGuestControlTreeItem : public QITreeWidgetItem 29 33 { 30 34 … … 35 39 public: 36 40 37 enum GuestSessionTreeItemType{38 SessionTreeItem = 0,39 ProcessTreeItem,40 GuestSessionItemTypeMax41 };42 41 43 44 /** Constructs item passing @a pTreeWidget into the base-class. */ 45 UIGuestSessionTreeItem(QITreeWidget *pTreeWidget, GuestSessionTreeItemType itemType); 46 /** Constructs item passing @a pTreeWidgetItem into the base-class. */ 47 UIGuestSessionTreeItem(UIGuestSessionTreeItem *pTreeWidgetItem, GuestSessionTreeItemType itemType); 48 /** Constructs item passing @a pTreeWidget and @a strings into the base-class. */ 49 UIGuestSessionTreeItem(QITreeWidget *pTreeWidget, const QStringList &strings, GuestSessionTreeItemType itemType); 50 /** Constructs item passing @a pTreeWidgetItem and @a strings into the base-class. */ 51 UIGuestSessionTreeItem(UIGuestSessionTreeItem *pTreeWidgetItem, 52 const QStringList &strings, GuestSessionTreeItemType itemType); 42 UIGuestControlTreeItem(QITreeWidget *pTreeWidget, const QStringList &strings = QStringList()); 43 UIGuestControlTreeItem(UIGuestControlTreeItem *pTreeWidgetItem, const QStringList &strings = QStringList()); 44 virtual ~UIGuestControlTreeItem(); 53 45 54 46 private slots: 55 47 48 protected: 49 50 void prepareListener(CEventSource comEventSource, QVector<KVBoxEventType>& eventTypes); 51 void cleanupListener(CEventSource comEventSource); 52 void prepare(); 53 54 ComObjPtr<UIMainEventListenerImpl> m_pQtListener; 56 55 57 56 private: 58 GuestSessionTreeItemType m_eItemType; 57 58 virtual void prepareListener() = 0; 59 virtual void prepareConnections() = 0; 60 virtual void cleanupListener() = 0; 61 62 /** Holds the COM event listener instance. */ 63 CEventListener m_comEventListener; 59 64 60 65 }; 61 66 62 #endif /* !___UIGuestSessionTreeItem_h___ */ 67 class UIGuestSessionTreeItem : public UIGuestControlTreeItem 68 { 69 Q_OBJECT; 70 71 public: 72 73 UIGuestSessionTreeItem(QITreeWidget *pTreeWidget, CGuestSession& guestSession, const QStringList &strings = QStringList()); 74 UIGuestSessionTreeItem(UIGuestControlTreeItem *pTreeWidgetItem, CGuestSession& guestSession, const QStringList &strings = QStringList()); 75 virtual ~UIGuestSessionTreeItem(); 76 77 protected: 78 79 void prepareListener(CEventSource comEventSource, QVector<KVBoxEventType>& eventTypes); 80 void cleanupListener(CEventSource comEventSource); 81 82 private slots: 83 84 void sltGuestSessionUpdated(); 85 void sltGuestProcessRegistered(CGuestProcess guestProcess); 86 void sltGuestProcessUnregistered(CGuestProcess guestProcess); 87 88 private: 89 90 virtual void prepareListener() /* override */; 91 virtual void prepareConnections() /* override */; 92 virtual void cleanupListener() /* override */; 93 94 CGuestSession m_comGuestSession; 95 96 }; 97 98 class UIGuestProcessTreeItem : public UIGuestControlTreeItem 99 { 100 Q_OBJECT; 101 102 public: 103 104 UIGuestProcessTreeItem(QITreeWidget *pTreeWidget, CGuestProcess& guestProcess, const QStringList &strings = QStringList()); 105 UIGuestProcessTreeItem(UIGuestControlTreeItem *pTreeWidgetItem, CGuestProcess& guestProcess, const QStringList &strings = QStringList()); 106 virtual ~UIGuestProcessTreeItem(); 107 108 109 protected: 110 111 void prepareListener(CEventSource comEventSource, QVector<KVBoxEventType>& eventTypes); 112 void cleanupListener(CEventSource comEventSource); 113 114 private slots: 115 116 void sltGuestProcessUpdated(); 117 118 private: 119 120 virtual void prepareListener() /* override */; 121 virtual void prepareConnections() /* override */; 122 virtual void cleanupListener() /* override */; 123 124 CGuestProcess m_comGuestProcess; 125 }; 126 127 #endif /* !___UIGuestControlTreeItem_h___ */ -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/guestctrl/UIInformationGuestSession.cpp
r71037 r71038 30 30 # include "UIGuestControlConsole.h" 31 31 # include "UIGuestControlInterface.h" 32 # include "UIGuest SessionTreeItem.h"32 # include "UIGuestControlTreeItem.h" 33 33 # include "UIInformationGuestSession.h" 34 34 … … 197 197 if (!guestSession.isOk()) 198 198 return; 199 200 new UIGuestSessionTreeItem(m_pTreeWidget, guestSession); 199 201 //printf("sltGuestSessionRegistered \n"); 200 202 // addGuestSession(guestSession); -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/guestctrl/UIInformationGuestSession.h
r71037 r71038 75 75 UIGuestControlInterface *m_pControlInterface; 76 76 77 77 /** Holds the Qt event listener instance. */ 78 78 ComObjPtr<UIMainEventListenerImpl> m_pQtListener; 79 79 /** Holds the COM event listener instance. */
Note:
See TracChangeset
for help on using the changeset viewer.