Changeset 14046 in vbox
- Timestamp:
- Nov 10, 2008 10:40:32 PM (17 years ago)
- svn:sync-xref-src-repo-rev:
- 39102
- Location:
- trunk/src/VBox/Frontends/VirtualBox4
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox4/include/VBoxDefs.h
r13580 r14046 24 24 #define __VBoxDefs_h__ 25 25 26 /* Qt includes */ 26 27 #include <qevent.h> 28 #include <QUuid> 27 29 28 30 #define LOG_GROUP LOG_GROUP_GUI … … 65 67 #if defined (VBOX_GUI_DEBUG) 66 68 69 #include <QThread> 70 #include <QDateTime> 71 67 72 #include <VBox/types.h> // for uint64_t type 68 69 #include <qthread.h>70 #include <qdatetime.h>71 73 72 74 /** … … 104 106 #endif // VBOX_GUI_DEBUG 105 107 106 /* A common namespace for all enums */ 108 /** Null UUID constant to be used as a default value for reference parameters */ 109 extern const QUuid QUuid_null; 110 111 /** Common namespace for all enums */ 107 112 struct VBoxDefs 108 113 { -
trunk/src/VBox/Frontends/VirtualBox4/include/VBoxSelectorWnd.h
r14022 r14046 36 36 #include <QSystemTrayIcon> 37 37 #endif 38 #include <QUuid>39 38 40 39 class VBoxSnapshotsWgt; … … 70 69 71 70 void fileMediaMgr(); 72 VBoxVMItem* getSelectedItem();73 #ifdef VBOX_GUI_WITH_SYSTRAY74 void iconActivated (QSystemTrayIcon::ActivationReason aReason);75 void showWindow();76 #endif77 71 void fileSettings(); 78 72 void fileExit(); … … 81 75 void vmSettings (const QString &aCategory = QString::null, 82 76 const QString &aControl = QString::null, 83 const QUuid & aMachineId = QUuid());84 void vmDelete (const QUuid & aMachineId = QUuid());85 void vmStart (const QUuid & aMachineId = QUuid());86 void vmDiscard (const QUuid & aMachineId = QUuid());87 void vmPause (bool, const QUuid & aMachineId = QUuid());88 void vmRefresh (const QUuid & aMachineId = QUuid());89 void vmShowLogs (const QUuid & aMachineId = QUuid());77 const QUuid & = QUuid_null); 78 void vmDelete (const QUuid & = QUuid_null); 79 void vmStart (const QUuid & = QUuid_null); 80 void vmDiscard (const QUuid & = QUuid_null); 81 void vmPause (bool, const QUuid & = QUuid_null); 82 void vmRefresh (const QUuid & = QUuid_null); 83 void vmShowLogs (const QUuid & = QUuid_null); 90 84 91 85 #ifdef VBOX_GUI_WITH_SYSTRAY 92 void refreshSysTray (bool a_bRetranslate = false);86 void refreshSysTray (bool aRetranslate = false); 93 87 #endif 88 94 89 void refreshVMList(); 95 90 void refreshVMItem (const QUuid &aID, bool aDetails, … … 98 93 99 94 void showContextMenu (const QPoint &aPoint); 95 96 #ifdef VBOX_GUI_WITH_SYSTRAY 97 void trayIconActivated (QSystemTrayIcon::ActivationReason aReason); 98 void showWindow(); 99 #endif 100 100 101 101 protected: … … 142 142 QAction *fileExitAction; 143 143 QAction *vmNewAction; 144 #ifdef VBOX_GUI_WITH_SYSTRAY145 QAction *trayShowWindowAction;146 QAction *trayExitAction;147 #endif148 144 QAction *vmConfigAction; 149 145 QAction *vmDeleteAction; … … 154 150 QAction *vmShowLogsAction; 155 151 152 #ifdef VBOX_GUI_WITH_SYSTRAY 153 QAction *mTrayShowWindowAction; 154 QAction *mTrayExitAction; 155 #endif 156 156 157 VBoxHelpActions mHelpActions; 157 158 158 159 #ifdef VBOX_GUI_WITH_SYSTRAY 159 160 /* The systray icon */ 160 QSystemTrayIcon * trayIcon;161 QMenu * trayIconMenu;161 QSystemTrayIcon *mTrayIcon; 162 QMenu *mTrayIconMenu; 162 163 #endif 163 164 -
trunk/src/VBox/Frontends/VirtualBox4/src/VBoxDefs.cpp
r12286 r14046 23 23 #include <VBoxDefs.h> 24 24 25 const QUuid QUuid_null; 26 25 27 const char* VBoxDefs::GUI_LastWindowPosition = "GUI/LastWindowPostion"; 26 28 const char* VBoxDefs::GUI_LastWindowPosition_Max = "max"; -
trunk/src/VBox/Frontends/VirtualBox4/src/VBoxSelectorWnd.cpp
r14022 r14046 408 408 fileExitAction->setMenuRole (QAction::QuitRole); 409 409 fileExitAction->setIcon (VBoxGlobal::iconSet (":/exit_16px.png")); 410 411 #ifdef VBOX_GUI_WITH_SYSTRAY412 trayShowWindowAction = new QAction (this);413 trayShowWindowAction->setIcon (VBoxGlobal::iconSet (":/VirtualBox_16px.png"));414 trayShowWindowAction->setText (tr ("Sun xVM VirtualBox"));415 416 trayExitAction = new QAction (this);417 trayExitAction->setMenuRole (QAction::QuitRole);418 trayExitAction->setIcon (VBoxGlobal::iconSet (":/exit_16px.png"));419 #endif420 410 421 411 vmNewAction = new QAction (this); … … 460 450 ":/vm_show_logs_disabled_32px.png", ":/show_logs_disabled_16px.png")); 461 451 452 #ifdef VBOX_GUI_WITH_SYSTRAY 453 mTrayShowWindowAction = new QAction (this); 454 mTrayShowWindowAction->setIcon (VBoxGlobal::iconSet (":/VirtualBox_16px.png")); 455 mTrayShowWindowAction->setText (tr ("Sun xVM VirtualBox")); 456 457 mTrayExitAction = new QAction (this); 458 mTrayExitAction->setMenuRole (QAction::QuitRole); 459 mTrayExitAction->setIcon (VBoxGlobal::iconSet (":/exit_16px.png")); 460 #endif 461 462 462 mHelpActions.setup (this); 463 463 … … 466 466 { 467 467 /* tray menu */ 468 trayIconMenu = new QMenu(this);468 mTrayIconMenu = new QMenu (this); 469 469 470 470 /* tray icon */ 471 trayIcon = new QSystemTrayIcon(this);472 trayIcon->setIcon(QIcon (":/VirtualBox_16px.png"));473 trayIcon->setContextMenu (trayIconMenu);474 475 connect (trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)),476 this, SLOT (iconActivated(QSystemTrayIcon::ActivationReason)));471 mTrayIcon = new QSystemTrayIcon (this); 472 mTrayIcon->setIcon (QIcon (":/VirtualBox_16px.png")); 473 mTrayIcon->setContextMenu (mTrayIconMenu); 474 475 connect (mTrayIcon, SIGNAL (activated (QSystemTrayIcon::ActivationReason)), 476 this, SLOT (trayIconActivated (QSystemTrayIcon::ActivationReason))); 477 477 } 478 478 #endif … … 665 665 666 666 #ifdef VBOX_GUI_WITH_SYSTRAY 667 connect ( trayShowWindowAction, SIGNAL (triggered()), this, SLOT(showWindow()));667 connect (mTrayShowWindowAction, SIGNAL (triggered()), this, SLOT (showWindow())); 668 668 #endif 669 669 … … 719 719 /* Save vm selector position */ 720 720 { 721 VBoxVMItem *item = getSelectedItem();721 VBoxVMItem *item = mVMListView->selectedItem(); 722 722 QString curVMId = item ? 723 723 QString (item->id()) : … … 732 732 // Public slots 733 733 ///////////////////////////////////////////////////////////////////////////// 734 735 #ifdef VBOX_GUI_WITH_SYSTRAY736 void VBoxSelectorWnd::iconActivated(QSystemTrayIcon::ActivationReason aReason)737 {738 switch (aReason)739 {740 741 case QSystemTrayIcon::Context:742 743 refreshSysTray();744 break;745 746 case QSystemTrayIcon::Trigger:747 break;748 749 case QSystemTrayIcon::DoubleClick:750 751 showWindow();752 break;753 754 case QSystemTrayIcon::MiddleClick:755 break;756 757 default:758 break;759 }760 }761 #endif762 763 VBoxVMItem* VBoxSelectorWnd::getSelectedItem()764 {765 VBoxVMItem* pItem = NULL;766 767 if (NULL == pItem)768 pItem = mVMListView->selectedItem();769 770 /* pItem can be NULL here, so don't assert. */771 return pItem;772 }773 774 #ifdef VBOX_GUI_WITH_SYSTRAY775 void VBoxSelectorWnd::showWindow()776 {777 showNormal();778 setFocus();779 }780 #endif781 734 782 735 void VBoxSelectorWnd::fileMediaMgr() … … 836 789 * Opens the VM settings dialog. 837 790 */ 838 void VBoxSelectorWnd::vmSettings (const QString &aCategory, const QString &aControl, const QUuid& aUuid) 791 void VBoxSelectorWnd::vmSettings (const QString &aCategory, const QString &aControl, 792 const QUuid &aUuid /*= QUuid_null*/) 839 793 { 840 794 if (!aCategory.isEmpty() && aCategory [0] != '#') … … 845 799 } 846 800 847 VBoxVMItem *item = mVMModel->itemById (aUuid); 848 if (NULL == item) 849 item = getSelectedItem(); 801 VBoxVMItem *item = aUuid.isNull() ? mVMListView->selectedItem() : 802 mVMModel->itemById (aUuid); 850 803 851 804 AssertMsgReturnVoid (item, ("Item must be always selected here")); … … 888 841 } 889 842 890 void VBoxSelectorWnd::vmDelete (const QUuid& aUuid) 891 { 892 VBoxVMItem *item = mVMModel->itemById (aUuid); 893 if (NULL == item) 894 item = getSelectedItem(); 843 void VBoxSelectorWnd::vmDelete (const QUuid &aUuid /*= QUuid_null*/) 844 { 845 VBoxVMItem *item = aUuid.isNull() ? mVMListView->selectedItem() : 846 mVMModel->itemById (aUuid); 895 847 896 848 AssertMsgReturnVoid (item, ("Item must be always selected here")); … … 950 902 } 951 903 952 void VBoxSelectorWnd::vmStart (const QUuid& aUuid) 953 { 954 VBoxVMItem *item = mVMModel->itemById (aUuid); 955 if (NULL == item) 956 item = getSelectedItem(); 957 958 AssertMsgReturn (item, ("Item must be always selected here"), (void) 0); 904 void VBoxSelectorWnd::vmStart (const QUuid &aUuid /*= QUuid_null*/) 905 { 906 VBoxVMItem *item = aUuid.isNull() ? mVMListView->selectedItem() : 907 mVMModel->itemById (aUuid); 908 909 AssertMsgReturnVoid (item, ("Item must be always selected here")); 959 910 960 911 /* we always get here when mVMListView emits the activated() signal, … … 1029 980 } 1030 981 1031 void VBoxSelectorWnd::vmDiscard (const QUuid& aUuid) 1032 { 1033 VBoxVMItem *item = mVMModel->itemById (aUuid); 1034 if (NULL == item) 1035 item = getSelectedItem(); 1036 1037 AssertMsgReturn (item, ("Item must be always selected here"), (void) 0); 982 void VBoxSelectorWnd::vmDiscard (const QUuid &aUuid /*= QUuid_null*/) 983 { 984 VBoxVMItem *item = aUuid.isNull() ? mVMListView->selectedItem() : 985 mVMModel->itemById (aUuid); 986 987 AssertMsgReturnVoid (item, ("Item must be always selected here")); 1038 988 1039 989 if (!vboxProblem().confirmDiscardSavedState (item->machine())) … … 1065 1015 } 1066 1016 1067 void VBoxSelectorWnd::vmPause (bool aPause, const QUuid& aUuid) 1068 { 1069 VBoxVMItem *item = mVMModel->itemById (aUuid); 1070 if (NULL == item) 1071 item = getSelectedItem(); 1072 1073 AssertMsgReturn (item, ("Item must be always selected here"), (void) 0); 1017 void VBoxSelectorWnd::vmPause (bool aPause, const QUuid &aUuid /*= QUuid_null*/) 1018 { 1019 VBoxVMItem *item = aUuid.isNull() ? mVMListView->selectedItem() : 1020 mVMModel->itemById (aUuid); 1021 1022 AssertMsgReturnVoid (item, ("Item must be always selected here")); 1074 1023 1075 1024 CSession session = vboxGlobal().openExistingSession (item->id()); … … 1098 1047 } 1099 1048 1100 void VBoxSelectorWnd::vmRefresh (const QUuid& aUuid) 1101 { 1102 VBoxVMItem *item = mVMModel->itemById (aUuid); 1103 if (NULL == item) 1104 item = getSelectedItem(); 1105 1106 AssertMsgReturn (item, ("Item must be always selected here"), (void) 0); 1049 void VBoxSelectorWnd::vmRefresh (const QUuid &aUuid /*= QUuid_null*/) 1050 { 1051 VBoxVMItem *item = aUuid.isNull() ? mVMListView->selectedItem() : 1052 mVMModel->itemById (aUuid); 1053 1054 AssertMsgReturnVoid (item, ("Item must be always selected here")); 1107 1055 1108 1056 refreshVMItem (item->id(), … … 1112 1060 } 1113 1061 1114 void VBoxSelectorWnd::vmShowLogs (const QUuid& aUuid) 1115 { 1116 VBoxVMItem *item = mVMModel->itemById (aUuid); 1117 if (NULL == item) 1118 item = getSelectedItem(); 1062 void VBoxSelectorWnd::vmShowLogs (const QUuid &aUuid /*= QUuid_null*/) 1063 { 1064 VBoxVMItem *item = aUuid.isNull() ? mVMListView->selectedItem() : 1065 mVMModel->itemById (aUuid); 1066 1067 AssertMsgReturnVoid (item, ("Item must be always selected here")); 1119 1068 1120 1069 CMachine machine = item->machine(); … … 1123 1072 1124 1073 #ifdef VBOX_GUI_WITH_SYSTRAY 1125 void VBoxSelectorWnd::refreshSysTray(bool a_bRetranslate) 1074 1075 void VBoxSelectorWnd::refreshSysTray (bool aRetranslate) 1126 1076 { 1127 1077 if (false == QSystemTrayIcon::isSystemTrayAvailable()) 1128 1078 return; 1129 1079 1130 Assert (trayIcon);1131 Assert (trayIconMenu);1132 1133 if (!a _bRetranslate)1134 { 1135 trayIcon->setVisible (true);1136 trayIconMenu->clear();1137 trayIconMenu->addAction (trayExitAction);1138 trayIconMenu->addSeparator();1080 AssertReturnVoid (mTrayIcon); 1081 AssertReturnVoid (mTrayIconMenu); 1082 1083 if (!aRetranslate) 1084 { 1085 mTrayIcon->setVisible (true); 1086 mTrayIconMenu->clear(); 1087 mTrayIconMenu->addAction (mTrayExitAction); 1088 mTrayIconMenu->addSeparator(); 1139 1089 } 1140 1090 1141 1091 VBoxVMItem* pItem = NULL; 1142 QMenu* pCurMenu = trayIconMenu;1092 QMenu* pCurMenu = mTrayIconMenu; 1143 1093 QMenu* pSubMenu = NULL; 1144 Assert(pCurMenu);1145 1094 1146 1095 int iCurItemCount = 0; … … 1151 1100 Assert(pItem); 1152 1101 1153 if (a _bRetranslate)1102 if (aRetranslate) 1154 1103 { 1155 1104 pItem->retranslateUi(); … … 1158 1107 else 1159 1108 { 1160 if (iCurItemCount > 1 4) /* 15machines per sub menu. */1109 if (iCurItemCount > 10) /* 10 machines per sub menu. */ 1161 1110 { 1162 pSubMenu = new QMenu (tr ("Next 15 machines ..."));1111 pSubMenu = new QMenu (tr ("&Other Machines...", "tray menu")); 1163 1112 Assert(pSubMenu); 1164 1113 pCurMenu->addMenu (pSubMenu); … … 1195 1144 } 1196 1145 1197 if (!a _bRetranslate)1198 { 1199 trayIconMenu->addSeparator();1200 trayIconMenu->addAction (fileExitAction);1201 } 1202 1203 } 1204 #endif 1146 if (!aRetranslate) 1147 { 1148 mTrayIconMenu->addSeparator(); 1149 mTrayIconMenu->addAction (fileExitAction); 1150 } 1151 } 1152 1153 #endif /* #ifdef VBOX_GUI_WITH_SYSTRAY */ 1205 1154 1206 1155 void VBoxSelectorWnd::refreshVMList() … … 1242 1191 mVMCtxtMenu->exec (mVMListView->mapToGlobal (aPoint)); 1243 1192 } 1193 1194 #ifdef VBOX_GUI_WITH_SYSTRAY 1195 1196 void VBoxSelectorWnd::trayIconActivated (QSystemTrayIcon::ActivationReason aReason) 1197 { 1198 switch (aReason) 1199 { 1200 case QSystemTrayIcon::Context: 1201 1202 refreshSysTray(); 1203 break; 1204 1205 case QSystemTrayIcon::Trigger: 1206 break; 1207 1208 case QSystemTrayIcon::DoubleClick: 1209 1210 showWindow(); 1211 break; 1212 1213 case QSystemTrayIcon::MiddleClick: 1214 break; 1215 1216 default: 1217 break; 1218 } 1219 } 1220 1221 void VBoxSelectorWnd::showWindow() 1222 { 1223 showNormal(); 1224 setFocus(); 1225 } 1226 1227 #endif /* #ifdef VBOX_GUI_WITH_SYSTRAY */ 1244 1228 1245 1229 // Protected members … … 1426 1410 bool aRefreshDescription) 1427 1411 { 1428 VBoxVMItem *item = getSelectedItem();1412 VBoxVMItem *item = mVMListView->selectedItem(); 1429 1413 1430 1414 if (item && item->accessible())
Note:
See TracChangeset
for help on using the changeset viewer.