VirtualBox

Changeset 100546 in vbox for trunk/src/VBox/Additions


Ignore:
Timestamp:
Jul 12, 2023 12:03:22 PM (19 months ago)
Author:
vboxsync
Message:

Shared Clipboard: Made transfers errors more visible via balloon tooltips when VBoxTray is running verbose mode. bugref:9437

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxClipboard.cpp

    r100541 r100546  
    192192
    193193/**
    194  * @copydoc SharedClipboardWinDataObject::CALLBACKS::pfnTransferEnd
    195  *
    196  * Called by SharedClipboardWinDataObject when the assigned transfer has been ended.
    197  *
    198  * @thread  Clipboard main thread.
    199  */
    200 static DECLCALLBACK(int) vbtrShClDataObjectTransferEndCallback(SharedClipboardWinDataObject::PCALLBACKCTX pCbCtx,
    201                                                                PSHCLTRANSFER pTransfer, int rcTransfer)
    202 {
    203     LogFlowFuncEnter();
    204 
    205     PSHCLCONTEXT pCtx = (PSHCLCONTEXT)pCbCtx->pvUser;
    206     AssertPtr(pCtx);
    207 
    208     SHCLTRANSFERSTATUS enmSts;
    209 
    210     switch (rcTransfer)
    211     {
    212         case VERR_CANCELLED:
    213             enmSts = SHCLTRANSFERSTATUS_CANCELED;
    214             break;
    215 
    216         default:
    217             enmSts =   RT_SUCCESS(rcTransfer)
    218                      ? SHCLTRANSFERSTATUS_UNINITIALIZED : SHCLTRANSFERSTATUS_ERROR;
    219             break;
    220     }
    221 
    222     int rc = VbglR3ClipboardTransferStatusReply(&pCtx->CmdCtx, pTransfer, enmSts,
    223                                                 enmSts == SHCLTRANSFERSTATUS_ERROR ? rcTransfer : VINF_SUCCESS);
    224     LogFlowFuncLeaveRC(rc);
    225     return rc;
    226 }
    227 
    228 /**
    229194 * @copydoc SHCLTRANSFERCALLBACKS::pfnOnCreated
    230195 *
     
    393358    AssertPtr(pCtx);
    394359
     360    LogFlowFunc(("rcCompletion=%Rrc\n", rcCompletion));
     361
    395362    LogRel2(("Shared Clipboard: Transfer %RU16 %s\n",
    396363             ShClTransferGetID(pCbCtx->pTransfer), rcCompletion == VERR_CANCELLED ? "canceled" : "complete"));
     364
     365    SHCLTRANSFERSTATUS enmSts;
     366
     367    switch (rcCompletion)
     368    {
     369        case VERR_CANCELLED:
     370            enmSts = SHCLTRANSFERSTATUS_CANCELED;
     371            break;
     372
     373        case VINF_SUCCESS:
     374            enmSts = SHCLTRANSFERSTATUS_STOPPED;
     375            break;
     376
     377        default:
     378            AssertFailedStmt(enmSts = SHCLTRANSFERSTATUS_ERROR);
     379            break;
     380    }
     381
     382    int rc = VbglR3ClipboardTransferStatusReply(&pCtx->CmdCtx, pCbCtx->pTransfer, enmSts, rcCompletion);
     383    LogFlowFuncLeaveRC(rc);
    397384}
    398385
     
    404391
    405392    LogRel(("Shared Clipboard: Transfer %RU16 failed with %Rrc\n", ShClTransferGetID(pCbCtx->pTransfer), rcError));
    406 }
    407 
     393
     394    if (g_cVerbosity) /* Only show this in verbose mode. */
     395    {
     396        char szMsg  [256]; /* Sizes according to MSDN. */
     397        char szTitle[64];
     398
     399        /** @todo Add some translation macros here. */
     400        RTStrPrintf(szTitle, sizeof(szTitle), "VirtualBox Shared Clipboard");
     401        RTStrPrintf(szMsg, sizeof(szMsg),
     402                    "Transfer %RU16 failed with %Rrc", ShClTransferGetID(pCbCtx->pTransfer), rcError);
     403
     404        hlpShowBalloonTip(g_hInstance, g_hwndToolWindow, ID_TRAYICON,
     405                          szMsg, szTitle,
     406                          5000 /* Time to display in msec */, NIIF_INFO);
     407    }
     408
     409    int rc = VbglR3ClipboardTransferStatusReply(&pCtx->CmdCtx, pCbCtx->pTransfer, SHCLTRANSFERSTATUS_ERROR, rcError);
     410    LogFlowFuncLeaveRC(rc);
     411}
    408412#endif /* VBOX_WITH_SHARED_CLIPBOARD_TRANSFERS */
    409413
     
    751755                    RT_ZERO(Callbacks);
    752756                    Callbacks.pfnTransferBegin = vbtrShClDataObjectTransferBeginCallback;
    753                     Callbacks.pfnTransferEnd   = vbtrShClDataObjectTransferEndCallback;
    754757
    755758                    rc = SharedClipboardWinTransferCreateAndSetDataObject(pWinCtx, pCtx, &Callbacks);
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette