VirtualBox

Changeset 50602 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Feb 26, 2014 12:50:39 PM (11 years ago)
Author:
vboxsync
Message:

DnD: Build fix.

Location:
trunk/src/VBox/Frontends/VirtualBox/src/runtime
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIDnDDataObject_win.cpp

    r50561 r50602  
    4040#include "UIDnDEnumFormat_win.h"
    4141
    42 UIDnDDataObject::UIDnDDataObject(const QStringList &lstFormats,
    43                                  UIDnDDrag *pParent)
    44     : mpParent(pParent),
     42UIDnDDataObject::UIDnDDataObject(CSession &session,
     43                                 const QStringList &lstFormats,
     44                                 QWidget *pParent)
     45    : mSession(session),
     46      mpParent(pParent),
    4547      mStatus(Uninitialized),
    4648      mRefCount(1),
     
    286288        int rc;
    287289        if (!mVaData.isValid())
    288             rc = mpParent->RetrieveData(strMIMEType, vaType, mVaData);
     290        {
     291            rc = UIDnDDrag::RetrieveData(mSession,
     292                                         DropAction::CopyAction,
     293                                         strMIMEType, vaType, mVaData,
     294                                         mpParent);
     295        }
    289296        else
    290297            rc = VINF_SUCCESS; /* Data already retrieved. */
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIDnDDataObject_win.h

    r50561 r50602  
    4545public:
    4646
    47     UIDnDDataObject(const QStringList &lstFormats, UIDnDDrag *pParent);
     47    UIDnDDataObject(CSession &session, const QStringList &lstFormats, QWidget *pParent);
    4848    virtual ~UIDnDDataObject(void);
    4949
     
    8181                        LONG lindex = -1, DWORD dwAspect = DVASPECT_CONTENT, DVTARGETDEVICE *pTargetDevice = NULL);
    8282
    83     UIDnDDrag  *mpParent;
     83    QWidget    *mpParent;
     84    CSession    mSession;
    8485    Status      mStatus;
    8586    LONG        mRefCount;
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIDnDDrag.cpp

    r50595 r50602  
    4444#endif
    4545
    46 UIDnDDrag::UIDnDDrag(CSession &session, const QStringList &lstFormats,
     46UIDnDDrag::UIDnDDrag(CSession &session,
     47                     const QStringList &lstFormats,
    4748                     Qt::DropAction defAction, Qt::DropActions actions,
    48                      QWidget *pParent)
    49     : m_pParent(pParent)
    50     , m_session(session)
     49                     QWidget *pParent /* = NULL */)
     50    : m_session(session)
    5151    , m_lstFormats(lstFormats)
    5252    , m_defAction(defAction)
    5353    , m_actions(actions)
     54    , m_pParent(pParent)
    5455#ifndef RT_OS_WINDOWS
    5556    , pMData(NULL)
     
    7071    int rc = VINF_SUCCESS;
    7172#ifdef RT_OS_WINDOWS
    72     UIDnDDropSource *pDropSource = new UIDnDDropSource(this /* pParent */);
    73     UIDnDDataObject *pDataObject = new UIDnDDataObject(m_lstFormats, this /* pParent */);
     73    UIDnDDropSource *pDropSource = new UIDnDDropSource(m_pParent);
     74    UIDnDDataObject *pDataObject = new UIDnDDataObject(m_session, m_lstFormats, m_pParent);
    7475
    7576    DWORD dwOKEffects = DROPEFFECT_NONE;
     
    9899
    99100    /* pMData is transfered to the QDrag object, so no need for deletion. */
    100     pMData = new UIDnDMimeData(m_session, m_lstFormats,
    101                                m_defAction, m_actions, m_pParent);
     101    pMData = new UIDnDMimeData(m_session,
     102                               m_lstFormats, m_defAction, m_actions,
     103                               m_pParent);
    102104
    103105    /* Inform the MIME data object of any changes in the current action. */
     
    123125}
    124126
    125 int UIDnDDrag::RetrieveData(const QString &strMimeType,
    126                             QVariant::Type vaType, QVariant &vaData)
     127/* static */
     128int UIDnDDrag::RetrieveData(const CSession &session,
     129                            Qt::DropAction dropAction,
     130                            const QString &strMimeType,
     131                            QVariant::Type vaType, QVariant &vaData,
     132                            QWidget *pParent)
    127133{
    128134    LogFlowFunc(("Retrieving data as type=%s (variant type=%ld)\n",
     
    130136
    131137    int rc = VINF_SUCCESS;
    132     CGuest guest = m_session.GetConsole().GetGuest();
     138    CGuest guest = session.GetConsole().GetGuest();
    133139
    134140    /* Start getting the data from the guest. First inform the guest we
    135141     * want the data in the specified MIME type. */
    136142    CProgress progress = guest.DragGHDropped(strMimeType,
    137                                              UIDnDHandler::toVBoxDnDAction(m_defAction));
     143                                             UIDnDHandler::toVBoxDnDAction(dropAction));
    138144    if (guest.isOk())
    139145    {
    140146        msgCenter().showModalProgressDialog(progress,
    141147                                            tr("Retrieving data ..."), ":/progress_dnd_gh_90px.png",
    142                                             m_pParent);
     148                                            pParent);
    143149        if (!progress.GetCanceled())
    144150        {
     
    186192            }
    187193            else
    188                 msgCenter().cannotDropData(progress, m_pParent);
     194                msgCenter().cannotDropData(progress, pParent);
    189195        }
    190196        else
     
    193199    else
    194200    {
    195         msgCenter().cannotDropData(guest, m_pParent);
     201        msgCenter().cannotDropData(guest, pParent);
    196202        rc = VERR_GENERAL_FAILURE; /** @todo Fudge; do a GetResultCode() to rc translation. */
    197203    }
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIDnDDrag.h

    r50593 r50602  
    4545public:
    4646
    47     UIDnDDrag(CSession &session, const QStringList &lstFormats,
    48               Qt::DropAction defAction,
    49               Qt::DropActions actions, QWidget *pParent);
    50 
     47    UIDnDDrag(CSession &session,
     48              const QStringList &lstFormats, Qt::DropAction defAction, Qt::DropActions actions,
     49              QWidget *pParent = NULL);
    5150public:
    5251
    5352    int DoDragDrop(void);
    5453
    55     int RetrieveData(const QString &strMimeType,
    56                      QVariant::Type vaType, QVariant &vaData);
     54public:
     55
     56    static int RetrieveData(const CSession &session, Qt::DropAction dropAction, const QString &strMimeType, QVariant::Type vaType, QVariant &vaData, QWidget *pParent);
    5757
    5858private:
    5959
    60     QWidget          *m_pParent;
    6160    CSession          m_session;
    6261    QStringList       m_lstFormats;
    6362    Qt::DropAction    m_defAction;
    6463    Qt::DropActions   m_actions;
     64    QWidget          *m_pParent;
    6565#ifndef RT_OS_WINDOWS
    6666    UIDnDMimeData    *pMData;
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIDnDDropSource_win.cpp

    r50460 r50602  
    3232#include "UIDnDDropSource_win.h"
    3333
    34 UIDnDDropSource::UIDnDDropSource(UIDnDDrag *pParent)
     34UIDnDDropSource::UIDnDDropSource(QWidget *pParent)
    3535    : mRefCount(1),
    3636      mpParent(pParent),
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIDnDDropSource_win.h

    r50460 r50602  
    2727public:
    2828
    29     UIDnDDropSource(UIDnDDrag *pParent);
     29    UIDnDDropSource(QWidget *pParent);
    3030    virtual ~UIDnDDropSource(void);
    3131
     
    4848
    4949    LONG mRefCount;
    50     UIDnDDrag *mpParent;
     50    QWidget *mpParent;
    5151    DWORD mdwCurEffect;
    5252    Qt::DropActions muCurAction;
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIDnDMIMEData.cpp

    r50595 r50602  
    3838#include "UIMessageCenter.h"
    3939
    40 UIDnDMimeData::UIDnDMimeData(CSession &session, QStringList formats,
     40UIDnDMimeData::UIDnDMimeData(CSession &session,
     41                             QStringList formats,
    4142                             Qt::DropAction defAction, Qt::DropActions actions,
    42                              UIDnDDrag *pParent)
    43     : m_pParent(pParent)
    44     , m_session(session)
     43                             QWidget *pParent)
     44    : m_Session(session)
    4545    , m_lstFormats(formats)
    4646    , m_defAction(defAction)
    4747    , m_actions(actions)
     48    , m_pParent(pParent)
    4849    , m_enmState(Dragging)
    49     , m_data(QVariant::Invalid)
     50    , m_vaData(QVariant::Invalid)
    5051{
    5152    LogFlowThisFuncEnter();
     
    108109
    109110QVariant UIDnDMimeData::retrieveData(const QString &strMIMEType,
    110                                      QVariant::Type type) const
     111                                     QVariant::Type vaType) const
    111112{
    112113    LogFlowFunc(("m_enmState=%d, mimeType=%s, type=%d (%s)\n",
    113114                 m_enmState, strMIMEType.toStdString().c_str(),
    114                  type, QVariant::typeToName(type)));
     115                 vaType, QVariant::typeToName(vaType)));
    115116
    116117    bool fCanDrop = true;
     
    142143        && !(
    143144             /* Plain text. */
    144                 type == QVariant::String
     145                vaType == QVariant::String
    145146             /* Binary data. */
    146              || type == QVariant::ByteArray
     147             || vaType == QVariant::ByteArray
    147148             /* URI list. */
    148              || type == QVariant::List))
     149             || vaType == QVariant::List))
    149150    {
    150151        LogFlowFunc(("Unsupported data type=%d (%s)\n",
    151                      type, QVariant::typeToName(type)));
     152                     vaType, QVariant::typeToName(vaType)));
    152153        fCanDrop = false;
    153154    }
     
    157158        LogFlowFunc(("Skipping request, m_enmState=%d ...\n",
    158159                     m_enmState));
    159         return QMimeData::retrieveData(strMIMEType, type);
     160        return QMimeData::retrieveData(strMIMEType, vaType);
    160161    }
    161162
     
    163164    if (m_enmState == Dropped)
    164165    {
    165         AssertPtr(m_pParent);
    166         rc = m_pParent->RetrieveData(strMIMEType, type, m_data);
     166        rc = UIDnDDrag::RetrieveData(m_Session,
     167                                     m_defAction,
     168                                     strMIMEType, vaType, m_vaData,
     169                                     m_pParent);
    167170        if (RT_SUCCESS(rc))
    168171        {
     
    178181    LogFlowFunc(("Returning rc=%Rrc, m_enmState=%ld\n",
    179182                 rc, m_enmState));
    180     return m_data;
     183    return m_vaData;
    181184}
    182185
     
    236239{
    237240    LogFlowFunc(("mimeType=%s, dataType=%s\n",
    238                  mimeType.toAscii().constData(), m_data.typeName()));
     241                 mimeType.toAscii().constData(), m_vaData.typeName()));
    239242
    240243    int rc = VINF_SUCCESS;
    241244
    242     switch (m_data.type())
     245    switch (m_vaData.type())
    243246    {
    244247        case QVariant::String: /* Plain text. */
    245248        {
    246             QMimeData::setText(m_data.toString());
     249            QMimeData::setText(m_vaData.toString());
    247250            break;
    248251        }
     
    250253        case QVariant::ByteArray: /* Raw byte data. */
    251254        {
    252             QMimeData::setData(mimeType, m_data.toByteArray());
     255            QMimeData::setData(mimeType, m_vaData.toByteArray());
    253256            break;
    254257        }
     
    256259        case QVariant::StringList: /* URI. */
    257260        {
    258             QList<QVariant> lstData = m_data.toList();
     261            QList<QVariant> lstData = m_vaData.toList();
    259262            QList<QUrl> lstURL;
    260263            for (int i = 0; i < lstData.size(); i++)
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIDnDMIMEData.h

    r50595 r50602  
    6161public:
    6262
    63     UIDnDMimeData(CSession &session, QStringList formats,
    64                   Qt::DropAction defAction,
    65                   Qt::DropActions actions, UIDnDDrag *pParent);
     63    UIDnDMimeData(CSession &session, QStringList formats, Qt::DropAction defAction, Qt::DropActions actions, QWidget *pParent);
     64
     65public:
    6666
    6767    int setData(const QString &mimeType);
     
    9595#endif
    9696
    97 protected:
    98 
    99     int retrieveDataInternal(const QString &strMimeType, QVariant::Type vaType, QVariant &vaData) const;
    100 
    10197private:
    10298
    103     UIDnDDrag        *m_pParent;
    104     CSession          m_session;
     99    CSession          m_Session;
    105100    QStringList       m_lstFormats;
    106101    Qt::DropAction    m_defAction;
    107102    Qt::DropActions   m_actions;
     103    QWidget          *m_pParent;
    108104    mutable State     m_enmState;
    109     mutable QVariant  m_data;
     105    mutable QVariant  m_vaData;
    110106};
    111107
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