Changeset 58329 in vbox for trunk/src/VBox/Frontends
- Timestamp:
- Oct 20, 2015 10:05:12 AM (9 years ago)
- svn:sync-xref-src-repo-rev:
- 103528
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src/runtime
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIDnDHandler.cpp
r58212 r58329 75 75 : m_pSession(pSession) 76 76 , m_pParent(pParent) 77 , m_enm Mode(DNDMODE_UNKNOWN)77 , m_enmOpMode(DNDMODE_UNKNOWN) 78 78 , m_fIsPending(false) 79 79 , m_fDataRetrieved(false) … … 99 99 const QMimeData *pMimeData) 100 100 { 101 LogFlowFunc(("enm Mode=%RU32, screenID=%RU32, x=%d, y=%d, action=%ld\n",102 m_enm Mode, screenID, x, y, toVBoxDnDAction(proposedAction)));103 104 if ( m_enm Mode != DNDMODE_UNKNOWN105 && m_enm Mode != DNDMODE_HOSTTOGUEST)101 LogFlowFunc(("enmOpMode=%RU32, screenID=%RU32, x=%d, y=%d, action=%ld\n", 102 m_enmOpMode, screenID, x, y, toVBoxDnDAction(proposedAction))); 103 104 if ( m_enmOpMode != DNDMODE_UNKNOWN 105 && m_enmOpMode != DNDMODE_HOSTTOGUEST) 106 106 return Qt::IgnoreAction; 107 107 … … 114 114 pMimeData->formats().toVector()); 115 115 if (m_dndTarget.isOk()) 116 setMode(DNDMODE_HOSTTOGUEST); 117 118 /* Set the DnD action returned by the guest. */ 119 return toQtDnDAction(result); 116 { 117 setOpMode(DNDMODE_HOSTTOGUEST); 118 return toQtDnDAction(result); 119 } 120 121 msgCenter().cannotDropDataToGuest(m_dndTarget, m_pParent); 122 return Qt::IgnoreAction; 120 123 } 121 124 … … 124 127 const QMimeData *pMimeData) 125 128 { 126 LogFlowFunc(("enm Mode=%RU32, screenID=%RU32, x=%d, y=%d, action=%ld\n",127 m_enm Mode, screenID, x, y, toVBoxDnDAction(proposedAction)));128 129 if (m_enm Mode != DNDMODE_HOSTTOGUEST)129 LogFlowFunc(("enmOpMode=%RU32, screenID=%RU32, x=%d, y=%d, action=%ld\n", 130 m_enmOpMode, screenID, x, y, toVBoxDnDAction(proposedAction))); 131 132 if (m_enmOpMode != DNDMODE_HOSTTOGUEST) 130 133 return Qt::IgnoreAction; 131 134 … … 138 141 toVBoxDnDActions(possibleActions), 139 142 pMimeData->formats().toVector()); 140 /* Set the DnD action returned by the guest. */ 141 return toQtDnDAction(result); 143 if (m_dndTarget.isOk()) 144 return toQtDnDAction(result); 145 146 msgCenter().cannotDropDataToGuest(m_dndTarget, m_pParent); 147 return Qt::IgnoreAction; 142 148 } 143 149 … … 146 152 const QMimeData *pMimeData) 147 153 { 148 LogFlowFunc(("enm Mode=%RU32, screenID=%RU32, x=%d, y=%d, action=%ld\n",149 m_enm Mode, screenID, x, y, toVBoxDnDAction(proposedAction)));150 151 if (m_enm Mode != DNDMODE_HOSTTOGUEST)154 LogFlowFunc(("enmOpMode=%RU32, screenID=%RU32, x=%d, y=%d, action=%ld\n", 155 m_enmOpMode, screenID, x, y, toVBoxDnDAction(proposedAction))); 156 157 if (m_enmOpMode != DNDMODE_HOSTTOGUEST) 152 158 return Qt::IgnoreAction; 153 159 … … 258 264 * mode as well here. 259 265 */ 260 set Mode(DNDMODE_UNKNOWN);266 setOpMode(DNDMODE_UNKNOWN); 261 267 262 268 return toQtDnDAction(enmResult); … … 265 271 void UIDnDHandler::dragLeave(ulong screenID) 266 272 { 267 LogFlowFunc(("enm Mode=%RU32, screenID=%RU32\n", m_enmMode, screenID));268 269 if (m_enm Mode == DNDMODE_HOSTTOGUEST)273 LogFlowFunc(("enmOpMode=%RU32, screenID=%RU32\n", m_enmOpMode, screenID)); 274 275 if (m_enmOpMode == DNDMODE_HOSTTOGUEST) 270 276 { 271 277 m_dndTarget.Leave(screenID); 272 set Mode(DNDMODE_UNKNOWN);278 setOpMode(DNDMODE_UNKNOWN); 273 279 } 274 280 } … … 448 454 #ifdef VBOX_WITH_DRAG_AND_DROP_GH 449 455 450 LogFlowFunc(("enm Mode=%RU32, fIsPending=%RTbool, screenID=%RU32\n", m_enmMode, m_fIsPending, screenID));456 LogFlowFunc(("enmOpMode=%RU32, fIsPending=%RTbool, screenID=%RU32\n", m_enmOpMode, m_fIsPending, screenID)); 451 457 452 458 { 453 459 QMutexLocker AutoReadLock(&m_ReadLock); 454 460 455 if ( m_enm Mode != DNDMODE_UNKNOWN456 && m_enm Mode != DNDMODE_GUESTTOHOST) /* Wrong mode set? */461 if ( m_enmOpMode != DNDMODE_UNKNOWN 462 && m_enmOpMode != DNDMODE_GUESTTOHOST) /* Wrong mode set? */ 457 463 return VINF_SUCCESS; 458 464 … … 548 554 } 549 555 550 set Mode(DNDMODE_GUESTTOHOST);556 setOpMode(DNDMODE_GUESTTOHOST); 551 557 552 558 rc = dragStartInternal(m_dataSource.lstFormats, … … 594 600 m_fIsPending = false; 595 601 596 set Mode(DNDMODE_UNKNOWN);602 setOpMode(DNDMODE_UNKNOWN); 597 603 } 598 604 … … 684 690 /* After we successfully retrieved data from the source we query it from Main. */ 685 691 vecData = m_dndSource.ReceiveData(); /** @todo QVector.size() is "int" only!? */ 686 if (vecData.isEmpty()) 687 rc = VERR_NO_DATA; 692 if (m_dndSource.isOk()) 693 { 694 if (vecData.isEmpty()) 695 rc = VERR_NO_DATA; 696 } 697 else 698 { 699 msgCenter().cannotDropDataToHost(m_dndSource, m_pParent); 700 rc = VERR_GENERAL_FAILURE; /** @todo Fudge; do a GetResultCode() to rc translation. */ 701 } 688 702 } 689 703 else … … 699 713 } 700 714 701 set Mode(DNDMODE_UNKNOWN);715 setOpMode(DNDMODE_UNKNOWN); 702 716 703 717 LogFlowFuncLeaveRC(rc); … … 705 719 } 706 720 707 void UIDnDHandler::set Mode(DNDMODE enmMode)721 void UIDnDHandler::setOpMode(DNDOPMODE enmMode) 708 722 { 709 723 QMutexLocker AutoWriteLock(&m_WriteLock); 710 m_enm Mode = enmMode;711 LogF lowFunc(("Mode is now: %RU32\n", m_enmMode));724 m_enmOpMode = enmMode; 725 LogFunc(("Operation mode is now: %RU32\n", m_enmOpMode)); 712 726 } 713 727 -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIDnDHandler.h
r57288 r58329 49 49 * drag and drop mode. 50 50 */ 51 typedef enum DND MODE51 typedef enum DNDOPMODE 52 52 { 53 53 /** Unknown mode. */ … … 60 60 /** The usual 32-bit type blow up. */ 61 61 DNDMODE_32BIT_HACK = 0x7fffffff 62 } DND MODE;62 } DNDOPMODE; 63 63 64 64 /** … … 125 125 int dragStartInternal(const QStringList &lstFormats, Qt::DropAction defAction, Qt::DropActions actions); 126 126 int retrieveDataInternal(Qt::DropAction dropAction, const QString &strMIMEType, QVector<uint8_t> &vecData); 127 void set Mode(DNDMODE enmMode);127 void setOpMode(DNDOPMODE enmMode); 128 128 129 129 protected: … … 133 133 /** Pointer to parent widget. */ 134 134 QWidget *m_pParent; 135 136 135 /** Drag and drop source instance. */ 137 136 CDnDSource m_dndSource; 138 137 /** Drag and drop target instance. */ 139 138 CDnDTarget m_dndTarget; 140 /** Current transfer direction. */ 141 DNDMODE m_enmMode; 139 /** Current operation mode, indicating the transfer direction. 140 * Note: This is independent of the current drag and drop 141 * mode being set for this VM! */ 142 DNDOPMODE m_enmOpMode; 142 143 /** Current data from the source (if any). 143 144 * At the momenet we only support one source at a time. */
Note:
See TracChangeset
for help on using the changeset viewer.