VirtualBox

Changeset 11344 in vbox for trunk/src


Ignore:
Timestamp:
Aug 11, 2008 6:08:17 PM (16 years ago)
Author:
vboxsync
Message:

Fe/Qt4: Changes for Virtual Disk Manager including: tab-stop fixing, some tool-tip fixing, shortcuts fixing, reworking info pane to be directly included in *.ui file, little code changes according coding style.

Location:
trunk/src/VBox/Frontends/VirtualBox4
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox4/Makefile.kmk

    r11162 r11344  
    498498# Sources containing local definitions of classes that use the Q_OBJECT macro.
    499499VirtualBox4_QT_MOCSRCS = \
    500         src/VBoxSelectorWnd.cpp
     500        src/VBoxSelectorWnd.cpp \
     501        src/VBoxDiskImageManagerDlg.cpp
    501502ifdef VBOX_WITH_XPCOM
    502503 VirtualBox4_QT_MOCSRCS += \
  • trunk/src/VBox/Frontends/VirtualBox4/include/VBoxDiskImageManagerDlg.h

    r10999 r11344  
    3333class DiskImageItem;
    3434class VBoxToolBar;
    35 class InfoPaneLabel;
    3635class VBoxProgressBar;
    3736
     
    4140    Q_OBJECT;
    4241
    43     enum TabIndex { HDTab = 0,
    44                     CDTab,
    45                     FDTab };
     42    enum TabIndex { HDTab = 0, CDTab, FDTab };
    4643
    4744public:
    4845
    49     VBoxDiskImageManagerDlg (QWidget *aParent = NULL, Qt::WindowFlags aFlags = Qt::Dialog);
     46    VBoxDiskImageManagerDlg (QWidget *aParent = 0,
     47                             Qt::WindowFlags aFlags = Qt::Dialog);
    5048
    51     void setup (int aType, bool aDoSelect, const QUuid &aTargetVMId = QUuid(), bool aRefresh = true, CMachine aMachine = NULL, const QUuid &aHdId = QUuid(), const QUuid &aCdId = QUuid(), const QUuid &aFdId = QUuid());
     49    void setup (int aType, bool aDoSelect, const QUuid &aTargetVMId = QUuid(),
     50                bool aRefresh = true, CMachine aMachine = 0,
     51                const QUuid &aHdId = QUuid(),
     52                const QUuid &aCdId = QUuid(),
     53                const QUuid &aFdId = QUuid());
    5254
    5355    static void showModeless (bool aRefresh = true);
     
    5658    QString selectedPath() const;
    5759
    58     static QString composeHdToolTip (CHardDisk &aHd, VBoxMedia::Status aStatus, DiskImageItem *aItem = NULL);
    59     static QString composeCdToolTip (CDVDImage &aCd, VBoxMedia::Status aStatus, DiskImageItem *aItem = NULL);
    60     static QString composeFdToolTip (CFloppyImage &aFd, VBoxMedia::Status aStatus, DiskImageItem *aItem = NULL);
     60    static QString composeHdToolTip (CHardDisk &aHd, VBoxMedia::Status aStatus,
     61                                     DiskImageItem *aItem = 0);
     62    static QString composeCdToolTip (CDVDImage &aCd, VBoxMedia::Status aStatus,
     63                                     DiskImageItem *aItem = 0);
     64    static QString composeFdToolTip (CFloppyImage &aFd, VBoxMedia::Status aStatus,
     65                                     DiskImageItem *aItem = 0);
    6166
    6267public slots:
     
    6974    virtual void closeEvent (QCloseEvent *aEvent);
    7075    virtual bool eventFilter (QObject *aObject, QEvent *aEvent);
    71     /* @todo: Currently not used (Ported from Qt3): */
    72     virtual void machineStateChanged (const VBoxMachineStateChangeEvent &aEvent);
    7376
    7477private slots:
     
    8790    void releaseImage();
    8891
    89     void releaseDisk (const QUuid &aMachineId, const QUuid &aItemId, VBoxDefs::DiskType aDiskType);
     92    void releaseDisk (const QUuid &aMachineId, const QUuid &aItemId,
     93                      VBoxDefs::DiskType aDiskType);
    9094
    9195    void processCurrentChanged (int index = -1);
    92     void processCurrentChanged (QTreeWidgetItem *aItem, QTreeWidgetItem *aPrevItem = NULL);
     96    void processCurrentChanged (QTreeWidgetItem *aItem, QTreeWidgetItem *aPrevItem = 0);
    9397    void processDoubleClick (QTreeWidgetItem *aItem, int aColumn);
    9498    void showContextMenu (const QPoint &aPos);
     
    100104    QTreeWidget* currentTreeWidget() const;
    101105
    102     QTreeWidgetItem *selectedItem (const QTreeWidget *aTree) const;
    103     DiskImageItem *toDiskImageItem (QTreeWidgetItem *aItem) const;
     106    QTreeWidgetItem* selectedItem (const QTreeWidget *aTree) const;
     107    DiskImageItem* toDiskImageItem (QTreeWidgetItem *aItem) const;
    104108
    105109    void setCurrentItem (QTreeWidget *aTree, QTreeWidgetItem *aItem);
    106110
    107111    void addImageToList (const QString &aSource, VBoxDefs::DiskType aDiskType);
    108     DiskImageItem* createImageNode (QTreeWidget *aTree, DiskImageItem *aRoot, const VBoxMedia &aMedia) const;
     112    DiskImageItem* createImageNode (QTreeWidget *aTree, DiskImageItem *aRoot,
     113                                    const VBoxMedia &aMedia) const;
    109114
    110115    DiskImageItem* createHdItem (QTreeWidget *aTree, const VBoxMedia &aMedia) const;
     
    126131    void clearInfoPanes();
    127132    void prepareToRefresh (int aTotal = 0);
    128     void createInfoString (InfoPaneLabel *&aInfo, QWidget* aRoot, bool aLeftRightMargin, int aRow, int aCol, int aRowSpan = 1, int aColSpan = 1) const;
    129133
    130     void makeWarningMark (DiskImageItem *aItem, VBoxMedia::Status aStatus, VBoxDefs::DiskType aType) const;
     134    void makeWarningMark (DiskImageItem *aItem, VBoxMedia::Status aStatus,
     135                          VBoxDefs::DiskType aType) const;
    131136
    132137    static QString DVDImageUsage (const QUuid &aId, QString &aSnapshotUsage);
     
    165170    QAction     *mRefreshAction;
    166171
    167     /* The grid entries in the various information panels */
    168     InfoPaneLabel *mHdsPane1;
    169     InfoPaneLabel *mHdsPane2;
    170     InfoPaneLabel *mHdsPane3;
    171     InfoPaneLabel *mHdsPane4;
    172     InfoPaneLabel *mHdsPane5;
    173     InfoPaneLabel *mHdsPane6;
    174     InfoPaneLabel *mHdsPane7;
    175     InfoPaneLabel *mCdsPane1;
    176     InfoPaneLabel *mCdsPane2;
    177     InfoPaneLabel *mFdsPane1;
    178     InfoPaneLabel *mFdsPane2;
    179 
    180172    /* Machine */
    181173    CMachine mMachine;
  • trunk/src/VBox/Frontends/VirtualBox4/src/VBoxDiskImageManagerDlg.cpp

    r10999 r11344  
    2828
    2929/* Qt includes */
    30 #include <QLabel>
    3130#include <QDir>
    3231#include <QFileInfo>
     
    3736#include <QProgressBar>
    3837
     38
    3939class AddVDMUrlsEvent: public QEvent
    4040{
     
    109109    {
    110110        mToolTip = aToolTip;
    111         for (int i=0; i < treeWidget()->columnCount(); ++i)
     111        for (int i = 0; i < treeWidget()->columnCount(); ++ i)
    112112            QTreeWidgetItem::setToolTip (i, mToolTip);
    113113    }
     
    170170};
    171171
     172
    172173class DiskImageItemIterator : public QTreeWidgetItemIterator
    173174{
     
    181182        QTreeWidgetItem *item = QTreeWidgetItemIterator::operator*();
    182183        return item && item->type() == QITreeWidget::BasicItemType ?
    183             static_cast<DiskImageItem*> (item) : NULL;
     184            static_cast<DiskImageItem*> (item) : 0;
    184185    }
    185186
     
    190191};
    191192
    192 class InfoPaneLabel : public QILabel
    193 {
    194 public:
    195 
    196     InfoPaneLabel (QWidget *aParent, QLabel *aLabel = 0)
    197         : QILabel (aParent), mLabel (aLabel) {}
    198 
    199     QLabel* label() const { return mLabel; }
    200 
    201 private:
    202 
    203     /* Private member vars */
    204     QLabel *mLabel;
    205 };
    206193
    207194class VBoxProgressBar: public QWidget
    208195{
     196    Q_OBJECT;
     197
    209198public:
    210199
     
    212201        : QWidget (aParent)
    213202    {
     203        mText = new QLabel (this);
     204        mProgressBar = new QProgressBar (this);
     205        mProgressBar->setTextVisible (false);
     206
    214207        QHBoxLayout *layout = new QHBoxLayout (this);
    215208        VBoxGlobal::setLayoutMargin (layout, 0);
    216         mText = new QLabel ();
    217209        layout->addWidget (mText);
    218         mProgressBar = new QProgressBar;
    219         /* The text is provided by our own label */
    220         mProgressBar->setTextVisible (false);
    221210        layout->addWidget (mProgressBar);
    222211    }
    223212
    224 public slots:
    225 
    226     void setText (const QString& aText) { mText->setText (aText); }
     213    void setText (const QString &aText) { mText->setText (aText); }
    227214    void setValue (int aValue) { mProgressBar->setValue (aValue); }
    228     void setMinimum (int aValue) { mProgressBar->setMinimum (aValue); }
    229215    void setMaximum (int aValue) { mProgressBar->setMaximum (aValue); }
    230     void setRange (int aMin, int aMax) { mProgressBar->setRange (aMin, aMax); }
    231 
    232     QLabel *label() const { return mText; }
    233     QProgressBar *progressBar() const { return mProgressBar; }
    234216
    235217private:
    236218
    237     /* Private member vars */
    238     QLabel       *mText;
     219    QLabel *mText;
    239220    QProgressBar *mProgressBar;
    240221};
    241222
    242 VBoxDiskImageManagerDlg *VBoxDiskImageManagerDlg::mModelessDialog = NULL;
    243 
    244 VBoxDiskImageManagerDlg::VBoxDiskImageManagerDlg (QWidget *aParent /* = NULL */,  Qt::WindowFlags aFlags /* = 0 */)
     223
     224VBoxDiskImageManagerDlg* VBoxDiskImageManagerDlg::mModelessDialog = 0;
     225
     226VBoxDiskImageManagerDlg::VBoxDiskImageManagerDlg (QWidget *aParent /* = 0 */,
     227                                                  Qt::WindowFlags aFlags /* = 0 */)
    245228    : QIWithRetranslateUI2<QIMainDialog> (aParent, aFlags)
    246229    , mType (VBoxDefs::InvalidType)
     
    261244
    262245    /* Setup tab widget icons */
    263     twImages->setTabIcon (HDTab, mIconHD);
    264     twImages->setTabIcon (CDTab, mIconCD);
    265     twImages->setTabIcon (FDTab, mIconFD);
    266 
    267     connect (twImages, SIGNAL (currentChanged (int)),
     246    mTwImages->setTabIcon (HDTab, mIconHD);
     247    mTwImages->setTabIcon (CDTab, mIconCD);
     248    mTwImages->setTabIcon (FDTab, mIconFD);
     249
     250    connect (mTwImages, SIGNAL (currentChanged (int)),
    268251             this, SLOT (processCurrentChanged (int)));
    269252
     
    272255    mHdsTree->header()->setResizeMode (1, QHeaderView::ResizeToContents);
    273256    mHdsTree->header()->setResizeMode (2, QHeaderView::ResizeToContents);
    274     mHdsTree->setSortingEnabled(true);
     257    mHdsTree->setSortingEnabled (true);
    275258    mHdsTree->setSupportedDropActions (Qt::LinkAction);
    276259    mHdsTree->installEventFilter (this);
     
    284267    mCdsTree->header()->setResizeMode (0, QHeaderView::Stretch);
    285268    mCdsTree->header()->setResizeMode (1, QHeaderView::ResizeToContents);
    286     mCdsTree->setSortingEnabled(true);
     269    mCdsTree->setSortingEnabled (true);
    287270    mCdsTree->setSupportedDropActions (Qt::LinkAction);
    288271    mCdsTree->installEventFilter (this);
     
    296279    mFdsTree->header()->setResizeMode (0, QHeaderView::Stretch);
    297280    mFdsTree->header()->setResizeMode (1, QHeaderView::ResizeToContents);
    298     mFdsTree->setSortingEnabled(true);
     281    mFdsTree->setSortingEnabled (true);
    299282    mFdsTree->setSupportedDropActions (Qt::LinkAction);
    300283    mFdsTree->installEventFilter (this);
     
    346329        ":/refresh_disabled_22px.png", ":/refresh_disabled_16px.png"));
    347330
    348 //    mActionsMenu->addAction (mEditAction);
     331    // mActionsMenu->addAction (mEditAction);
    349332    mActionsContextMenu->addAction (mRemoveAction);
    350333    mActionsContextMenu->addAction (mReleaseAction);
     
    382365    mActionsToolBar->addAction (mAddAction);
    383366    mActionsToolBar->addSeparator();
    384 //    mActionsToolBar->addAction (mEditAction);
     367    // mActionsToolBar->addAction (mEditAction);
    385368    mActionsToolBar->addAction (mRemoveAction);
    386369    mActionsToolBar->addAction (mReleaseAction);
     
    393376    mActionsMenu->addAction (mAddAction);
    394377    mActionsMenu->addSeparator();
    395 //    mActionsMenu->addAction (mEditAction);
     378    // mActionsMenu->addAction (mEditAction);
    396379    mActionsMenu->addAction (mRemoveAction);
    397380    mActionsMenu->addAction (mReleaseAction);
     
    399382    mActionsMenu->addAction (mRefreshAction);
    400383
    401 //    qApp->installEventFilter (this);
    402 
    403     /* Setup information pane layouts */
    404     QGridLayout *hdsContainerLayout = new QGridLayout (mHdsContainer);
    405     VBoxGlobal::setLayoutMargin (hdsContainerLayout, 5);
    406     hdsContainerLayout->setSpacing (0);
    407     QGridLayout *cdsContainerLayout = new QGridLayout (mCdsContainer);
    408     VBoxGlobal::setLayoutMargin (cdsContainerLayout, 5);
    409     cdsContainerLayout->setSpacing (0);
    410     QGridLayout *fdsContainerLayout = new QGridLayout (mFdsContainer);
    411     VBoxGlobal::setLayoutMargin (fdsContainerLayout, 5);
    412     fdsContainerLayout->setSpacing (0);
    413     /* Create info-pane for hd list-view */
    414     createInfoString (mHdsPane1, mHdsContainer, false, 0, 0, 1, 3);
    415     createInfoString (mHdsPane2, mHdsContainer,  true, 1, 0);
    416     createInfoString (mHdsPane3, mHdsContainer, false, 1, 2);
    417     createInfoString (mHdsPane4, mHdsContainer,  true, 2, 0);
    418     createInfoString (mHdsPane5, mHdsContainer, false, 2, 2);
    419     /* Create info-pane for cd list-view */
    420     createInfoString (mCdsPane1, mCdsContainer, false, 0, 0);
    421     createInfoString (mCdsPane2, mCdsContainer, false, 1, 0);
    422     /* Create info-pane for fd list-view */
    423     createInfoString (mFdsPane1, mFdsContainer, false, 0, 0);
    424     createInfoString (mFdsPane2, mFdsContainer, false, 1, 0);
     384    /* Setup information pane */
     385    QList<QILabel*> paneList = findChildren<QILabel*>();
     386    foreach (QILabel *infoPane, paneList)
     387        infoPane->setFullSizeSelection (true);
    425388
    426389    /* Enumeration progressbar creation */
     
    441404    connect (mButtonBox, SIGNAL (helpRequested()),
    442405             &vboxProblem(), SLOT (showHelpHelpDialog()));
    443 
    444     /* Applying language settings */
    445     retranslateUi();
    446406}
    447407
    448408void VBoxDiskImageManagerDlg::setup (int aType, bool aDoSelect,
    449                                      const QUuid &aTargetVMId /* = NULL */,
     409                                     const QUuid &aTargetVMId /* = 0 */,
    450410                                     bool aRefresh /* = true */,
    451                                      CMachine aMachine /* = NULL */,
     411                                     CMachine aMachine /* = 0 */,
    452412                                     const QUuid &aHdId,
    453413                                     const QUuid &aCdId,
     
    460420
    461421    mType = aType;
    462     twImages->setTabEnabled (HDTab, mType & VBoxDefs::HD);
    463     twImages->setTabEnabled (CDTab, mType & VBoxDefs::CD);
    464     twImages->setTabEnabled (FDTab, mType & VBoxDefs::FD);
     422    mTwImages->setTabEnabled (HDTab, mType & VBoxDefs::HD);
     423    mTwImages->setTabEnabled (CDTab, mType & VBoxDefs::CD);
     424    mTwImages->setTabEnabled (FDTab, mType & VBoxDefs::FD);
    465425
    466426    mDoSelect = aDoSelect;
     
    468428        mTargetVMId = aTargetVMId;
    469429
    470     if (mDoSelect)
    471         mButtonBox->button (QDialogButtonBox::Ok)->setText (tr ("&Select"));
    472     else
    473         mButtonBox->button (QDialogButtonBox::Cancel)->setVisible (false);
     430    mButtonBox->button (QDialogButtonBox::Cancel)->setVisible (mDoSelect);
    474431
    475432    /* Listen to "media enumeration started" signals */
     
    527484        if (QTreeWidgetItem *item = mFdsTree->topLevelItem (0))
    528485            setCurrentItem (mFdsTree, item);
     486
     487    /* Applying language settings */
     488    retranslateUi();
    529489}
    530490
     
    535495    {
    536496        mModelessDialog =
    537             new VBoxDiskImageManagerDlg (NULL, Qt::Window);
     497            new VBoxDiskImageManagerDlg (0, Qt::Window);
    538498        mModelessDialog->setAttribute (Qt::WA_DeleteOnClose);
    539499        mModelessDialog->setup (VBoxDefs::HD | VBoxDefs::CD | VBoxDefs::FD,
    540                                 false, NULL, aRefresh);
     500                                false, 0, aRefresh);
    541501
    542502        /* listen to events that may change the media status and refresh
     
    648608        case VBoxMedia::Error:
    649609        {
    650             /// @todo (r=dmik) paass a complete VBoxMedia instance here
    651             //  to get the result of blabla.GetAccessible() call form CUnknown
     610            /// @todo (r=dmik) pass a complete VBoxMedia instance here
     611            //  to get the result of blabla.GetAccessible() call from CUnknown
    652612            tip = tr ("<nobr><b>%1</b></nobr><br>"
    653613                      "Error checking media accessibility", "HDD")
     
    713673        case VBoxMedia::Error:
    714674        {
    715             /// @todo (r=dmik) paass a complete VBoxMedia instance here
    716             //  to get the result of blabla.GetAccessible() call form CUnknown
     675            /// @todo (r=dmik) pass a complete VBoxMedia instance here
     676            //  to get the result of blabla.GetAccessible() call from CUnknown
    717677            tip = tr ("<nobr><b>%1</b></nobr><br>"
    718678                      "Error checking media accessibility", "CD/DVD/Floppy")
     
    780740        case VBoxMedia::Error:
    781741        {
    782             /// @todo (r=dmik) paass a complete VBoxMedia instance here
    783             //  to get the result of blabla.GetAccessible() call form CUnknown
     742            /// @todo (r=dmik) pass a complete VBoxMedia instance here
     743            //  to get the result of blabla.GetAccessible() call from CUnknown
    784744            tip = tr ("<nobr><b>%1</b></nobr><br>"
    785745                      "Error checking media accessibility", "CD/DVD/Floppy")
     
    837797    mRefreshAction->setStatusTip (tr ("Refresh the media list"));
    838798
    839     mHdsPane1->label()->setText (QString ("<nobr>%1:</nobr>").arg (tr ("Location")));
    840     mHdsPane2->label()->setText (QString ("<nobr>%1:</nobr>").arg (tr ("Disk Type")));
    841     mHdsPane3->label()->setText (QString ("<nobr>&nbsp;&nbsp;%1:</nobr>").arg (tr ("Storage Type")));
    842     mHdsPane4->label()->setText (QString ("<nobr>%1:</nobr>").arg (tr ("Attached to")));
    843     mHdsPane5->label()->setText (QString ("<nobr>&nbsp;&nbsp;%1:</nobr>").arg (tr ("Snapshot")));
    844     mCdsPane1->label()->setText (QString ("<nobr>%1:</nobr>").arg (tr ("Location")));
    845     mCdsPane2->label()->setText (QString ("<nobr>%1:</nobr>").arg (tr ("Attached to")));
    846     mFdsPane1->label()->setText (QString ("<nobr>%1:</nobr>").arg (tr ("Location")));
    847     mFdsPane2->label()->setText (QString ("<nobr>%1:</nobr>").arg (tr ("Attached to")));
     799    mNewAction->setToolTip (mNewAction->text().remove ('&') +
     800        QString (" (%1)").arg (mNewAction->shortcut().toString()));
     801    mAddAction->setToolTip (mAddAction->text().remove ('&') +
     802        QString (" (%1)").arg (mAddAction->shortcut().toString()));
     803    // mEditAction->setToolTip (mEditAction->text().remove ('&') +
     804    //     QString (" (%1)").arg (mEditAction->shortcut().toString()));
     805    mRemoveAction->setToolTip (mRemoveAction->text().remove ('&') +
     806        QString (" (%1)").arg (mRemoveAction->shortcut().toString()));
     807    mReleaseAction->setToolTip (mReleaseAction->text().remove ('&') +
     808        QString (" (%1)").arg (mReleaseAction->shortcut().toString()));
     809    mRefreshAction->setToolTip (mRefreshAction->text().remove ('&') +
     810        QString (" (%1)").arg (mRefreshAction->shortcut().toString()));
    848811
    849812    mProgressBar->setText (tr ("Checking accessibility"));
     
    856819#endif
    857820
     821    if (mDoSelect)
     822        mButtonBox->button (QDialogButtonBox::Ok)->setText (tr ("&Select"));
     823
    858824    if (mHdsTree->model()->rowCount() || mCdsTree->model()->rowCount() || mFdsTree->model()->rowCount())
    859825        refreshAll();
     
    862828void VBoxDiskImageManagerDlg::closeEvent (QCloseEvent *aEvent)
    863829{
    864     mModelessDialog = NULL;
     830    mModelessDialog = 0;
    865831    aEvent->accept();
    866832}
     
    871837    {
    872838        case QEvent::DragEnter:
     839        {
     840            QDragEnterEvent *deEvent = static_cast<QDragEnterEvent*> (aEvent);
     841            if (deEvent->mimeData()->hasUrls())
    873842            {
    874                 QDragEnterEvent *deEvent = static_cast<QDragEnterEvent*> (aEvent);
    875                 if (deEvent->mimeData()->hasUrls())
     843                QList<QUrl> urls = deEvent->mimeData()->urls();
     844                /* Sometimes urls has an empty Url entry. Filter them out. */
     845                urls.removeAll (QUrl());
     846                if (checkDndUrls (urls))
    876847                {
    877                     QList<QUrl> urls = deEvent->mimeData()->urls();
    878                     /* Sometimes urls has an empty Url entry. Filter them out. */
    879                     urls.removeAll (QUrl());
    880                     if (checkDndUrls (urls))
    881                     {
    882                         deEvent->setDropAction (Qt::LinkAction);
    883                         deEvent->acceptProposedAction();
    884                     }
     848                    deEvent->setDropAction (Qt::LinkAction);
     849                    deEvent->acceptProposedAction();
    885850                }
    886                 return true;
    887                 break;
    888851            }
     852            return true;
     853            break;
     854        }
    889855        case QEvent::Drop:
     856        {
     857            QDropEvent *dEvent = static_cast<QDropEvent*> (aEvent);
     858            if (dEvent->mimeData()->hasUrls())
    890859            {
    891                 QDropEvent *dEvent = static_cast<QDropEvent*> (aEvent);
    892                 if (dEvent->mimeData()->hasUrls())
    893                 {
    894                     QList<QUrl> urls = dEvent->mimeData()->urls();
    895                     /* Sometimes urls has an empty Url entry. Filter them out. */
    896                     urls.removeAll (QUrl());
    897                     AddVDMUrlsEvent *event = new AddVDMUrlsEvent (urls);
    898                     QApplication::postEvent (currentTreeWidget(), event);
    899                     dEvent->acceptProposedAction();
    900                 }
    901                 return true;
    902                 break;
     860                QList<QUrl> urls = dEvent->mimeData()->urls();
     861                /* Sometimes urls has an empty Url entry. Filter them out. */
     862                urls.removeAll (QUrl());
     863                AddVDMUrlsEvent *event = new AddVDMUrlsEvent (urls);
     864                QApplication::postEvent (currentTreeWidget(), event);
     865                dEvent->acceptProposedAction();
    903866            }
     867            return true;
     868            break;
     869        }
    904870        case VBoxDefs::AddVDMUrlsEventType:
    905871        {
     
    918884}
    919885
    920 /* @todo: Currently not used (Ported from Qt3): */
    921 void VBoxDiskImageManagerDlg::machineStateChanged (const VBoxMachineStateChangeEvent &aEvent)
    922 {
    923     /// @todo (r=dmik) IVirtualBoxCallback::OnMachineStateChange
    924     //  must also expose the old state! In this case we won't need to cache
    925     //  the state value in every class in GUI that uses this signal.
    926 
    927     switch (aEvent.state)
    928     {
    929         case KMachineState_PoweredOff:
    930         case KMachineState_Aborted:
    931         case KMachineState_Saved:
    932         case KMachineState_Starting:
    933         case KMachineState_Restoring:
    934         {
    935             refreshAll();
    936             break;
    937         }
    938         default:
    939             break;
    940     }
    941 }
    942 
    943886void VBoxDiskImageManagerDlg::mediaAdded (const VBoxMedia &aMedia)
    944887{
     
    947890        return;
    948891
    949     DiskImageItem *item = NULL;
     892    DiskImageItem *item = 0;
    950893    switch (aMedia.type)
    951894    {
     
    993936        return;
    994937
    995     DiskImageItem *item = NULL;
     938    DiskImageItem *item = 0;
    996939    switch (aMedia.type)
    997940    {
     
    1048991                           aType == VBoxDefs::CD ? mIconCD :
    1049992                           aType == VBoxDefs::FD ? mIconFD : QIcon();
    1050         Assert (index != -1 && !set.isNull()); /* atype should be the correct one */
    1051         twImages->setTabIcon (index, set);
     993        Assert (index != -1 && !set.isNull()); /* aType should be the correct one */
     994        mTwImages->setTabIcon (index, set);
    1052995    }
    1053996}
     
    1056999{
    10571000    /* Load default tab icons */
    1058     twImages->setTabIcon (HDTab, mIconHD);
    1059     twImages->setTabIcon (CDTab, mIconCD);
    1060     twImages->setTabIcon (FDTab, mIconFD);
     1001    mTwImages->setTabIcon (HDTab, mIconHD);
     1002    mTwImages->setTabIcon (CDTab, mIconCD);
     1003    mTwImages->setTabIcon (FDTab, mIconFD);
    10611004
    10621005    /* Load current media list */
     
    11441087    {
    11451088        case VBoxDefs::HD:
    1146             {
    1147                 filter = tr ("All hard disk images (*.vdi *.vmdk);;"
    1148                              "Virtual Disk images (*.vdi);;"
    1149                              "VMDK images (*.vmdk);;"
    1150                              "All files (*)");
    1151                 title = tr ("Select a hard disk image file");
    1152                 break;
    1153             }
     1089        {
     1090            filter = tr ("All hard disk images (*.vdi *.vmdk);;"
     1091                         "Virtual Disk images (*.vdi);;"
     1092                         "VMDK images (*.vmdk);;"
     1093                         "All files (*)");
     1094            title = tr ("Select a hard disk image file");
     1095            break;
     1096        }
    11541097        case VBoxDefs::CD:
    1155             {
    1156                 filter = tr ("CD/DVD-ROM images (*.iso);;"
    1157                              "All files (*)");
    1158                 title = tr ("Select a CD/DVD-ROM disk image file");
    1159                 break;
    1160             }
     1098        {
     1099            filter = tr ("CD/DVD-ROM images (*.iso);;"
     1100                         "All files (*)");
     1101            title = tr ("Select a CD/DVD-ROM disk image file");
     1102            break;
     1103        }
    11611104        case VBoxDefs::FD:
    1162             {
    1163                 filter = tr ("Floppy images (*.img);;"
    1164                              "All files (*)");
    1165                 title = tr ("Select a floppy disk image file");
    1166                 break;
    1167             }
     1105        {
     1106            filter = tr ("Floppy images (*.img);;"
     1107                         "All files (*)");
     1108            title = tr ("Select a floppy disk image file");
     1109            break;
     1110        }
    11681111        default:
    11691112            AssertMsgFailed (("Selected tree should be equal to one item in VBoxDefs::DiskType.\n"));
     
    11941137    {
    11951138        case VBoxDefs::HD:
     1139        {
     1140            bool deleteImage = false;
     1141
     1142            /// @todo When creation of VMDK is implemented, we should
     1143            /// enable image deletion for  them as well (use
     1144            /// GetStorageType() to define the correct cast).
     1145            CHardDisk disk = item->media().disk;
     1146            if (disk.GetStorageType() == KHardDiskStorageType_VirtualDiskImage &&
     1147                disk.GetParent().isNull() && /* must not be differencing (see below) */
     1148                item->status() == VBoxMedia::Ok)
    11961149            {
    1197                 bool deleteImage = false;
    1198 
     1150                int rc = vboxProblem().confirmHardDiskImageDeletion (this, src);
     1151                if (rc == QIMessageBox::Cancel)
     1152                    return;
     1153                deleteImage = rc == QIMessageBox::Yes;
     1154            }
     1155            else
     1156            {
     1157                /// @todo note that differencing images are always automatically
     1158                /// deleted when unregistered, but the following message box
     1159                /// doesn't mention it. I keep it as is for now because
     1160                /// implementing the portability feature will most likely change
     1161                /// this behavior (we'll update the message afterwards).
     1162                if (!vboxProblem().confirmHardDiskUnregister (this, src))
     1163                    return;
     1164            }
     1165
     1166            CHardDisk hd = mVBox.UnregisterHardDisk (uuid);
     1167            if (!mVBox.isOk())
     1168                vboxProblem().cannotUnregisterMedia (this, mVBox, type, src);
     1169            else if (deleteImage)
     1170            {
    11991171                /// @todo When creation of VMDK is implemented, we should
    12001172                /// enable image deletion for  them as well (use
    12011173                /// GetStorageType() to define the correct cast).
    1202                 CHardDisk disk = item->media().disk;
    1203                 if (disk.GetStorageType() == KHardDiskStorageType_VirtualDiskImage &&
    1204                     disk.GetParent().isNull() && /* must not be differencing (see below) */
    1205                     item->status() == VBoxMedia::Ok)
    1206                 {
    1207                     int rc = vboxProblem().confirmHardDiskImageDeletion (this, src);
    1208                     if (rc == QIMessageBox::Cancel)
    1209                         return;
    1210                     deleteImage = rc == QIMessageBox::Yes;
    1211                 }
    1212                 else
    1213                 {
    1214                     /// @todo note that differencing images are always automatically
    1215                     /// deleted when unregistered, but the following message box
    1216                     /// doesn't mention it. I keep it as is for now because
    1217                     /// implementing the portability feature will most likely change
    1218                     /// this behavior (we'll update the message afterwards).
    1219                     if (!vboxProblem().confirmHardDiskUnregister (this, src))
    1220                         return;
    1221                 }
    1222 
    1223                 CHardDisk hd = mVBox.UnregisterHardDisk (uuid);
    1224                 if (!mVBox.isOk())
    1225                     vboxProblem().cannotUnregisterMedia (this, mVBox, type, src);
    1226                 else if (deleteImage)
    1227                 {
    1228                     /// @todo When creation of VMDK is implemented, we should
    1229                     /// enable image deletion for  them as well (use
    1230                     /// GetStorageType() to define the correct cast).
    1231                     CVirtualDiskImage vdi = CUnknown (hd);
    1232                     if (vdi.isOk())
    1233                         vdi.DeleteImage();
    1234                     if (!vdi.isOk())
    1235                         vboxProblem().cannotDeleteHardDiskImage (this, vdi);
    1236                 }
    1237                 break;
     1174                CVirtualDiskImage vdi = CUnknown (hd);
     1175                if (vdi.isOk())
     1176                    vdi.DeleteImage();
     1177                if (!vdi.isOk())
     1178                    vboxProblem().cannotDeleteHardDiskImage (this, vdi);
    12381179            }
     1180            break;
     1181        }
    12391182        case VBoxDefs::CD:
    12401183            mVBox.UnregisterDVDImage (uuid);
     
    12671210        /* If it is a hard disk sub-item: */
    12681211        case VBoxDefs::HD:
     1212        {
     1213            CHardDisk hd = item->media().disk;
     1214            QUuid machineId = hd.GetMachineId();
     1215            if (vboxProblem().confirmReleaseImage (this,
     1216                mVBox.GetMachine (machineId).GetName()))
    12691217            {
    1270                 CHardDisk hd = item->media().disk;
    1271                 QUuid machineId = hd.GetMachineId();
    1272                 if (vboxProblem().confirmReleaseImage (this,
    1273                                                        mVBox.GetMachine (machineId).GetName()))
    1274                 {
    1275                     releaseDisk (machineId, itemId, VBoxDefs::HD);
    1276                     VBoxMedia media (item->media());
    1277                     media.status = hd.GetAccessible() ? VBoxMedia::Ok :
    1278                         hd.isOk() ? VBoxMedia::Inaccessible :
    1279                         VBoxMedia::Error;
    1280                     vboxGlobal().updateMedia (media);
    1281                 }
    1282                 break;
     1218                releaseDisk (machineId, itemId, VBoxDefs::HD);
     1219                VBoxMedia media (item->media());
     1220                media.status = hd.GetAccessible() ? VBoxMedia::Ok :
     1221                    hd.isOk() ? VBoxMedia::Inaccessible :
     1222                    VBoxMedia::Error;
     1223                vboxGlobal().updateMedia (media);
    12831224            }
     1225            break;
     1226        }
    12841227        /* If it is a cd/dvd sub-item: */
    12851228        case VBoxDefs::CD:
     1229        {
     1230            QString usage = item->totalUsage();
     1231            if (vboxProblem().confirmReleaseImage (this, usage))
    12861232            {
    1287                 QString usage = item->totalUsage();
    1288                 if (vboxProblem().confirmReleaseImage (this, usage))
    1289                 {
    1290                     QStringList permMachines =
    1291                         mVBox.GetDVDImageUsage (itemId,
    1292                                                KResourceUsage_Permanent).split (' ', QString::SkipEmptyParts);
    1293                     for (QStringList::Iterator it = permMachines.begin();
    1294                          it != permMachines.end(); ++it)
    1295                         releaseDisk (QUuid (*it), itemId, VBoxDefs::CD);
    1296 
    1297                     CDVDImage cd = mVBox.GetDVDImage (itemId);
    1298                     VBoxMedia media (item->media());
    1299                     media.status = cd.GetAccessible() ? VBoxMedia::Ok :
    1300                         cd.isOk() ? VBoxMedia::Inaccessible :
    1301                         VBoxMedia::Error;
    1302                     vboxGlobal().updateMedia (media);
    1303                 }
     1233                QStringList permMachines =
     1234                    mVBox.GetDVDImageUsage (itemId,
     1235                                           KResourceUsage_Permanent).split (' ', QString::SkipEmptyParts);
     1236                for (QStringList::Iterator it = permMachines.begin();
     1237                     it != permMachines.end(); ++it)
     1238                    releaseDisk (QUuid (*it), itemId, VBoxDefs::CD);
     1239
     1240                CDVDImage cd = mVBox.GetDVDImage (itemId);
     1241                VBoxMedia media (item->media());
     1242                media.status = cd.GetAccessible() ? VBoxMedia::Ok :
     1243                    cd.isOk() ? VBoxMedia::Inaccessible :
     1244                    VBoxMedia::Error;
     1245                vboxGlobal().updateMedia (media);
    13041246            }
     1247        }
    13051248        /* If it is a floppy sub-item: */
    13061249        case VBoxDefs::FD:
     1250        {
     1251            QString usage = item->totalUsage();
     1252            if (vboxProblem().confirmReleaseImage (this, usage))
    13071253            {
    1308                 QString usage = item->totalUsage();
    1309                 if (vboxProblem().confirmReleaseImage (this, usage))
    1310                 {
    1311                     QStringList permMachines =
    1312                         mVBox.GetFloppyImageUsage (itemId,
    1313                                                   KResourceUsage_Permanent).split (' ', QString::SkipEmptyParts);
    1314                     for (QStringList::Iterator it = permMachines.begin();
    1315                          it != permMachines.end(); ++it)
    1316                         releaseDisk (QUuid (*it), itemId, VBoxDefs::FD);
    1317 
    1318                     CFloppyImage fd = mVBox.GetFloppyImage (itemId);
    1319                     VBoxMedia media (item->media());
    1320                     media.status = fd.GetAccessible() ? VBoxMedia::Ok :
    1321                         fd.isOk() ? VBoxMedia::Inaccessible :
    1322                         VBoxMedia::Error;
    1323                     vboxGlobal().updateMedia (media);
    1324                 }
     1254                QStringList permMachines =
     1255                    mVBox.GetFloppyImageUsage (itemId,
     1256                                              KResourceUsage_Permanent).split (' ', QString::SkipEmptyParts);
     1257                for (QStringList::Iterator it = permMachines.begin();
     1258                     it != permMachines.end(); ++it)
     1259                    releaseDisk (QUuid (*it), itemId, VBoxDefs::FD);
     1260
     1261                CFloppyImage fd = mVBox.GetFloppyImage (itemId);
     1262                VBoxMedia media (item->media());
     1263                media.status = fd.GetAccessible() ? VBoxMedia::Ok :
     1264                    fd.isOk() ? VBoxMedia::Inaccessible :
     1265                    VBoxMedia::Error;
     1266                vboxGlobal().updateMedia (media);
    13251267            }
     1268        }
    13261269        default:
    13271270            AssertMsgFailed (("Selected tree should be equal to one item in VBoxDefs::DiskType.\n"));
     
    13961339QTreeWidget* VBoxDiskImageManagerDlg::treeWidget (VBoxDefs::DiskType aType) const
    13971340{
    1398     QTreeWidget* tree = NULL;
     1341    QTreeWidget* tree = 0;
    13991342    switch (aType)
    14001343    {
     
    14181361{
    14191362    VBoxDefs::DiskType type = VBoxDefs::InvalidType;
    1420     switch (twImages->currentIndex ())
     1363    switch (mTwImages->currentIndex ())
    14211364    {
    14221365        case HDTab:
     
    14301373            break;
    14311374        default:
    1432             AssertMsgFailed (("Page type %d unknown!\n", twImages->currentIndex ()));
     1375            AssertMsgFailed (("Page type %d unknown!\n", mTwImages->currentIndex ()));
    14331376            break;
    14341377    }
     
    14501393        return selItems.first();
    14511394    else
    1452         return NULL;
     1395        return 0;
    14531396}
    14541397
     
    14571400{
    14581401    /* Convert the QTreeWidgetItem to a DiskImageItem if it is valid. */
    1459     DiskImageItem *item = NULL;
     1402    DiskImageItem *item = 0;
    14601403    if (aItem &&
    14611404        aItem->type() == QITreeWidget::BasicItemType)
    1462         item = static_cast <DiskImageItem *> (aItem);
     1405        item = static_cast <DiskImageItem*> (aItem);
    14631406
    14641407    return item;
     
    14801423    QTreeWidget *tree = currentTreeWidget();
    14811424    tree->setFocus();
    1482 
    1483     /* Tab stop setup */
    1484     setTabOrder (mHdsTree, mHdsPane1);
    1485     setTabOrder (mHdsPane1, mHdsPane2);
    1486     setTabOrder (mHdsPane2, mHdsPane3);
    1487     setTabOrder (mHdsPane3, mHdsPane4);
    1488     setTabOrder (mHdsPane4, mHdsPane5);
    1489 
    1490     setTabOrder (mCdsTree, mCdsPane1);
    1491     setTabOrder (mCdsPane1, mCdsPane2);
    1492 
    1493     setTabOrder (mFdsTree, mFdsPane1);
    1494     setTabOrder (mFdsPane1, mFdsPane2);
    1495 
    14961425    processCurrentChanged (tree->currentItem());
    14971426}
    14981427
    1499 void VBoxDiskImageManagerDlg::processCurrentChanged (QTreeWidgetItem *aItem, QTreeWidgetItem *aPrevItem /* = NULL */)
     1428void VBoxDiskImageManagerDlg::processCurrentChanged (QTreeWidgetItem *aItem,
     1429                                                     QTreeWidgetItem *aPrevItem /* = 0 */)
    15001430{
    15011431    DiskImageItem *item = toDiskImageItem (aItem);
     
    15691499    else
    15701500        clearInfoPanes();
     1501
     1502    mHdsContainer->setEnabled (item);
     1503    mCdsContainer->setEnabled (item);
     1504    mFdsContainer->setEnabled (item);
    15711505}
    15721506
     
    16631597                                                         const VBoxMedia &aMedia) const
    16641598{
    1665     Assert (!(aTree == NULL && aRoot == NULL));
    1666 
    1667     DiskImageItem *item = NULL;
     1599    Assert (!(aTree == 0 && aRoot == 0));
     1600
     1601    DiskImageItem *item = 0;
    16681602
    16691603    if (aRoot)
     
    18221756{
    18231757    if (aId.isNull())
    1824         return NULL;
     1758        return 0;
    18251759
    18261760    DiskImageItemIterator iterator (aTree);
     
    18291763        if ((*iterator)->uuid() == aId)
    18301764            return *iterator;
    1831         ++iterator;
    1832     }
    1833     return NULL;
     1765        ++ iterator;
     1766    }
     1767    return 0;
    18341768}
    18351769
     
    18421776        if ((*iterator)->status() == aStatus)
    18431777            return *iterator;
    1844         ++iterator;
    1845     }
    1846     return NULL;
     1778        ++ iterator;
     1779    }
     1780    return 0;
    18471781}
    18481782
     
    18561790    {
    18571791        case VBoxDefs::HD:
    1858             {
    1859                 CHardDisk hd = aItem->media().disk;
    1860                 QUuid machineId = hd.GetMachineId();
    1861                 if (machineId.isNull() ||
    1862                     (mVBox.GetMachine (machineId).GetState() != KMachineState_PoweredOff &&
    1863                      mVBox.GetMachine (machineId).GetState() != KMachineState_Aborted))
     1792        {
     1793            CHardDisk hd = aItem->media().disk;
     1794            QUuid machineId = hd.GetMachineId();
     1795            if (machineId.isNull() ||
     1796                (mVBox.GetMachine (machineId).GetState() != KMachineState_PoweredOff &&
     1797                 mVBox.GetMachine (machineId).GetState() != KMachineState_Aborted))
     1798                return false;
     1799            break;
     1800        }
     1801        case VBoxDefs::CD:
     1802        {
     1803            /* Check if there is temporary usage: */
     1804            QStringList tempMachines =
     1805                mVBox.GetDVDImageUsage (itemId,
     1806                                       KResourceUsage_Temporary).split (' ', QString::SkipEmptyParts);
     1807            if (!tempMachines.isEmpty())
     1808                return false;
     1809            /* Only permanently mounted .iso could be released */
     1810            QStringList permMachines =
     1811                mVBox.GetDVDImageUsage (itemId,
     1812                                       KResourceUsage_Permanent).split (' ', QString::SkipEmptyParts);
     1813            for (QStringList::Iterator it = permMachines.begin();
     1814                 it != permMachines.end(); ++it)
     1815                if (mVBox.GetMachine(QUuid (*it)).GetState() != KMachineState_PoweredOff &&
     1816                    mVBox.GetMachine(QUuid (*it)).GetState() != KMachineState_Aborted)
    18641817                    return false;
    1865                 break;
    1866             }
    1867         case VBoxDefs::CD:
    1868             {
    1869                 /* Check if there is temporary usage: */
    1870                 QStringList tempMachines =
    1871                     mVBox.GetDVDImageUsage (itemId,
    1872                                            KResourceUsage_Temporary).split (' ', QString::SkipEmptyParts);
    1873                 if (!tempMachines.isEmpty())
     1818            break;
     1819        }
     1820        case VBoxDefs::FD:
     1821        {
     1822            /* Check if there is temporary usage: */
     1823            QStringList tempMachines =
     1824                mVBox.GetFloppyImageUsage (itemId,
     1825                                          KResourceUsage_Temporary).split (' ', QString::SkipEmptyParts);
     1826            if (!tempMachines.isEmpty())
     1827                return false;
     1828            /* Only permanently mounted floppies could be released */
     1829            QStringList permMachines =
     1830                mVBox.GetFloppyImageUsage (itemId,
     1831                                          KResourceUsage_Permanent).split (' ', QString::SkipEmptyParts);
     1832            for (QStringList::Iterator it = permMachines.begin();
     1833                 it != permMachines.end(); ++it)
     1834                if (mVBox.GetMachine(QUuid (*it)).GetState() != KMachineState_PoweredOff &&
     1835                    mVBox.GetMachine(QUuid (*it)).GetState() != KMachineState_Aborted)
    18741836                    return false;
    1875                 /* Only permanently mounted .iso could be released */
    1876                 QStringList permMachines =
    1877                     mVBox.GetDVDImageUsage (itemId,
    1878                                            KResourceUsage_Permanent).split (' ', QString::SkipEmptyParts);
    1879                 for (QStringList::Iterator it = permMachines.begin();
    1880                      it != permMachines.end(); ++it)
    1881                     if (mVBox.GetMachine(QUuid (*it)).GetState() != KMachineState_PoweredOff &&
    1882                         mVBox.GetMachine(QUuid (*it)).GetState() != KMachineState_Aborted)
    1883                         return false;
    1884                 break;
    1885             }
    1886         case VBoxDefs::FD:
    1887             {
    1888                 /* Check if there is temporary usage: */
    1889                 QStringList tempMachines =
    1890                     mVBox.GetFloppyImageUsage (itemId,
    1891                                               KResourceUsage_Temporary).split (' ', QString::SkipEmptyParts);
    1892                 if (!tempMachines.isEmpty())
    1893                     return false;
    1894                 /* Only permanently mounted floppies could be released */
    1895                 QStringList permMachines =
    1896                     mVBox.GetFloppyImageUsage (itemId,
    1897                                               KResourceUsage_Permanent).split (' ', QString::SkipEmptyParts);
    1898                 for (QStringList::Iterator it = permMachines.begin();
    1899                      it != permMachines.end(); ++it)
    1900                     if (mVBox.GetMachine(QUuid (*it)).GetState() != KMachineState_PoweredOff &&
    1901                         mVBox.GetMachine(QUuid (*it)).GetState() != KMachineState_Aborted)
    1902                         return false;
    1903                 break;
    1904             }
     1837            break;
     1838        }
    19051839        default:
    1906             {
    1907                 return false;
    1908                 break;
    1909             }
     1840        {
     1841            return false;
     1842            break;
     1843        }
    19101844    }
    19111845    return true;
     
    20011935}
    20021936
    2003 void VBoxDiskImageManagerDlg::createInfoString (InfoPaneLabel *&aInfo,
    2004                                                 QWidget *aRoot,
    2005                                                 bool aLeftRightMargin,
    2006                                                 int aRow, int aCol,
    2007                                                 int aRowSpan /* = 1 */, int aColSpan /* = 1 */) const
    2008 {
    2009     /* Create the label & the info pane itself */
    2010     QLabel *nameLabel = new QLabel (aRoot);
    2011     aInfo = new InfoPaneLabel (aRoot, nameLabel);
    2012 
    2013     /* We would the full size selection mode */
    2014     aInfo->setFullSizeSelection (true);
    2015 
    2016     /* Prevent the name columns from being expanded */
    2017     nameLabel->setSizePolicy (QSizePolicy::Fixed, QSizePolicy::Fixed);
    2018 
    2019     QGridLayout *rootLayout = qobject_cast<QGridLayout*> (aRoot->layout());
    2020     Assert (VALID_PTR (rootLayout));
    2021 
    2022     /* Add the two widgets */
    2023     rootLayout->addWidget (nameLabel, aRow, aCol, 1, 1);
    2024     int margin = aInfo->style()->pixelMetric (QStyle::PM_LayoutHorizontalSpacing);
    2025 #if QT_VERSION >= 0x040300
    2026     if (margin == -1)
    2027         margin = aInfo->style()->layoutSpacing (QSizePolicy::Label, QSizePolicy::Label, Qt::Horizontal);
    2028 #endif /* QT_VERSION >= 0x040300 */
    2029     if (aLeftRightMargin)
    2030         aInfo->setContentsMargins (margin, 0, margin, 0);
    2031     else
    2032         aInfo->setContentsMargins (margin, 0, 0, 0);
    2033     rootLayout->addWidget (aInfo, aRow, aCol + 1, aRowSpan, aColSpan);
    2034 }
    2035 
    20361937void VBoxDiskImageManagerDlg::makeWarningMark (DiskImageItem *aItem,
    20371938                                               VBoxMedia::Status aStatus,
     
    20491950                    aType == VBoxDefs::FD ? FDTab : -1;
    20501951        Assert (index != -1); /* aType should be correct */
    2051         twImages->setTabIcon (index, icon);
     1952        mTwImages->setTabIcon (index, icon);
    20521953        aItem->treeWidget()->scrollToItem (aItem, QAbstractItemView::EnsureVisible);
    20531954    }
     
    20671968
    20681969    for (QStringList::Iterator it = permMachines.begin();
    2069          it != permMachines.end();
    2070          ++it)
     1970         it != permMachines.end(); ++ it)
    20711971    {
    20721972        if (!usage.isEmpty())
     
    20801980
    20811981    for (QStringList::Iterator it = tempMachines.begin();
    2082          it != tempMachines.end();
    2083          ++it)
     1982         it != tempMachines.end(); ++ it)
    20841983    {
    20851984        /* Skip IDs that are in the permanent list */
     
    21142013
    21152014    for (QStringList::Iterator it = permMachines.begin();
    2116          it != permMachines.end();
    2117          ++it)
     2015         it != permMachines.end(); ++ it)
    21182016    {
    21192017        if (!usage.isEmpty())
     
    21272025
    21282026    for (QStringList::Iterator it = tempMachines.begin();
    2129          it != tempMachines.end();
    2130          ++it)
     2027         it != tempMachines.end(); ++ it)
    21312028    {
    21322029        /* Skip IDs that are in the permanent list */
     
    21862083}
    21872084
     2085#include "VBoxDiskImageManagerDlg.moc"
     2086
  • trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxDiskImageManagerDlg.ui

    r9868 r11344  
    3939   <iconset resource="../VirtualBox.qrc" >:/diskim_16px.png</iconset>
    4040  </property>
    41   <widget class="QWidget" name="centralwidget" >
     41  <widget class="QWidget" name="mCentralWidget" >
    4242   <layout class="QHBoxLayout" >
    4343    <item>
    4444     <layout class="QVBoxLayout" >
    4545      <item>
    46        <widget class="QTabWidget" name="twImages" >
     46       <widget class="QTabWidget" name="mTwImages" >
    4747        <property name="sizePolicy" >
    4848         <sizepolicy vsizetype="Expanding" hsizetype="Preferred" >
     
    5454         <number>0</number>
    5555        </property>
    56         <widget class="QWidget" name="tbHardDisk" >
     56        <widget class="QWidget" name="mTbHD" >
    5757         <attribute name="title" >
    58           <string>&amp;Hard Disks</string>
     58          <string>Hard &amp;Disks</string>
    5959         </attribute>
    6060         <layout class="QVBoxLayout" >
     
    101101             <enum>QFrame::Sunken</enum>
    102102            </property>
     103            <layout class="QGridLayout" >
     104             <property name="leftMargin" >
     105              <number>5</number>
     106             </property>
     107             <property name="topMargin" >
     108              <number>5</number>
     109             </property>
     110             <property name="rightMargin" >
     111              <number>5</number>
     112             </property>
     113             <property name="bottomMargin" >
     114              <number>5</number>
     115             </property>
     116             <property name="verticalSpacing" >
     117              <number>0</number>
     118             </property>
     119             <item row="0" column="0" >
     120              <widget class="QLabel" name="mLbHD1" >
     121               <property name="text" >
     122                <string>&lt;nobr>Location:&lt;/nobr></string>
     123               </property>
     124              </widget>
     125             </item>
     126             <item row="0" column="1" colspan="3" >
     127              <widget class="QILabel" name="mHdsPane1" >
     128               <property name="sizePolicy" >
     129                <sizepolicy vsizetype="Preferred" hsizetype="MinimumExpanding" >
     130                 <horstretch>0</horstretch>
     131                 <verstretch>0</verstretch>
     132                </sizepolicy>
     133               </property>
     134              </widget>
     135             </item>
     136             <item row="1" column="0" >
     137              <widget class="QLabel" name="mLbHD2" >
     138               <property name="text" >
     139                <string>&lt;nobr>Disk Type:&lt;/nobr></string>
     140               </property>
     141              </widget>
     142             </item>
     143             <item row="1" column="1" >
     144              <widget class="QILabel" name="mHdsPane2" >
     145               <property name="sizePolicy" >
     146                <sizepolicy vsizetype="Preferred" hsizetype="MinimumExpanding" >
     147                 <horstretch>0</horstretch>
     148                 <verstretch>0</verstretch>
     149                </sizepolicy>
     150               </property>
     151              </widget>
     152             </item>
     153             <item row="1" column="2" >
     154              <widget class="QLabel" name="mLbHD3" >
     155               <property name="text" >
     156                <string>&lt;nobr>&amp;nbsp;&amp;nbsp;Storage Type:&lt;/nobr></string>
     157               </property>
     158              </widget>
     159             </item>
     160             <item row="1" column="3" >
     161              <widget class="QILabel" name="mHdsPane3" >
     162               <property name="sizePolicy" >
     163                <sizepolicy vsizetype="Preferred" hsizetype="MinimumExpanding" >
     164                 <horstretch>0</horstretch>
     165                 <verstretch>0</verstretch>
     166                </sizepolicy>
     167               </property>
     168              </widget>
     169             </item>
     170             <item row="2" column="0" >
     171              <widget class="QLabel" name="mLbHD4" >
     172               <property name="text" >
     173                <string>&lt;nobr>Attached to:&lt;/nobr></string>
     174               </property>
     175              </widget>
     176             </item>
     177             <item row="2" column="1" >
     178              <widget class="QILabel" name="mHdsPane4" >
     179               <property name="sizePolicy" >
     180                <sizepolicy vsizetype="Preferred" hsizetype="MinimumExpanding" >
     181                 <horstretch>0</horstretch>
     182                 <verstretch>0</verstretch>
     183                </sizepolicy>
     184               </property>
     185              </widget>
     186             </item>
     187             <item row="2" column="2" >
     188              <widget class="QLabel" name="mLbHD5" >
     189               <property name="text" >
     190                <string>&lt;nobr>&amp;nbsp;&amp;nbsp;Snapshot:&lt;/nobr></string>
     191               </property>
     192              </widget>
     193             </item>
     194             <item row="2" column="3" >
     195              <widget class="QILabel" name="mHdsPane5" >
     196               <property name="sizePolicy" >
     197                <sizepolicy vsizetype="Preferred" hsizetype="MinimumExpanding" >
     198                 <horstretch>0</horstretch>
     199                 <verstretch>0</verstretch>
     200                </sizepolicy>
     201               </property>
     202              </widget>
     203             </item>
     204            </layout>
    103205           </widget>
    104206          </item>
    105207         </layout>
    106208        </widget>
    107         <widget class="QWidget" name="tbCD" >
     209        <widget class="QWidget" name="mTbCD" >
    108210         <attribute name="title" >
    109211          <string>&amp;CD/DVD Images</string>
     
    147249             <enum>QFrame::Sunken</enum>
    148250            </property>
     251            <layout class="QGridLayout" >
     252             <property name="leftMargin" >
     253              <number>5</number>
     254             </property>
     255             <property name="topMargin" >
     256              <number>5</number>
     257             </property>
     258             <property name="rightMargin" >
     259              <number>5</number>
     260             </property>
     261             <property name="bottomMargin" >
     262              <number>5</number>
     263             </property>
     264             <property name="verticalSpacing" >
     265              <number>0</number>
     266             </property>
     267             <item row="0" column="0" >
     268              <widget class="QLabel" name="mLbCD1" >
     269               <property name="text" >
     270                <string>&lt;nobr>Location:&lt;/nobr></string>
     271               </property>
     272              </widget>
     273             </item>
     274             <item row="0" column="1" >
     275              <widget class="QILabel" name="mCdsPane1" >
     276               <property name="sizePolicy" >
     277                <sizepolicy vsizetype="Preferred" hsizetype="MinimumExpanding" >
     278                 <horstretch>0</horstretch>
     279                 <verstretch>0</verstretch>
     280                </sizepolicy>
     281               </property>
     282              </widget>
     283             </item>
     284             <item row="1" column="0" >
     285              <widget class="QLabel" name="mLbCD2" >
     286               <property name="text" >
     287                <string>&lt;nobr>Attached to:&lt;/nobr></string>
     288               </property>
     289              </widget>
     290             </item>
     291             <item row="1" column="1" >
     292              <widget class="QILabel" name="mCdsPane2" >
     293               <property name="sizePolicy" >
     294                <sizepolicy vsizetype="Preferred" hsizetype="MinimumExpanding" >
     295                 <horstretch>0</horstretch>
     296                 <verstretch>0</verstretch>
     297                </sizepolicy>
     298               </property>
     299              </widget>
     300             </item>
     301            </layout>
    149302           </widget>
    150303          </item>
    151304         </layout>
    152305        </widget>
    153         <widget class="QWidget" name="tbFloppy" >
     306        <widget class="QWidget" name="mTbFD" >
    154307         <attribute name="title" >
    155308          <string>&amp;Floppy Images</string>
     
    193346             <enum>QFrame::Sunken</enum>
    194347            </property>
     348            <layout class="QGridLayout" >
     349             <property name="leftMargin" >
     350              <number>5</number>
     351             </property>
     352             <property name="topMargin" >
     353              <number>5</number>
     354             </property>
     355             <property name="rightMargin" >
     356              <number>5</number>
     357             </property>
     358             <property name="bottomMargin" >
     359              <number>5</number>
     360             </property>
     361             <property name="horizontalSpacing" >
     362              <number>-1</number>
     363             </property>
     364             <property name="verticalSpacing" >
     365              <number>0</number>
     366             </property>
     367             <item row="0" column="0" >
     368              <widget class="QLabel" name="mLbFD1" >
     369               <property name="text" >
     370                <string>&lt;nobr>Location:&lt;/nobr></string>
     371               </property>
     372              </widget>
     373             </item>
     374             <item row="0" column="1" >
     375              <widget class="QILabel" name="mFdsPane1" >
     376               <property name="sizePolicy" >
     377                <sizepolicy vsizetype="Preferred" hsizetype="MinimumExpanding" >
     378                 <horstretch>0</horstretch>
     379                 <verstretch>0</verstretch>
     380                </sizepolicy>
     381               </property>
     382              </widget>
     383             </item>
     384             <item row="1" column="0" >
     385              <widget class="QLabel" name="mLbFD2" >
     386               <property name="text" >
     387                <string>&lt;nobr>Attached to:&lt;/nobr></string>
     388               </property>
     389              </widget>
     390             </item>
     391             <item row="1" column="1" >
     392              <widget class="QILabel" name="mFdsPane2" >
     393               <property name="sizePolicy" >
     394                <sizepolicy vsizetype="Preferred" hsizetype="MinimumExpanding" >
     395                 <horstretch>0</horstretch>
     396                 <verstretch>0</verstretch>
     397                </sizepolicy>
     398               </property>
     399              </widget>
     400             </item>
     401            </layout>
    195402           </widget>
    196403          </item>
     
    210417   </layout>
    211418  </widget>
    212   <widget class="QStatusBar" name="statusBar" />
     419  <widget class="QStatusBar" name="mStatusBar" />
    213420 </widget>
    214421 <customwidgets>
     
    223430   <header>QITreeWidget.h</header>
    224431  </customwidget>
     432  <customwidget>
     433   <class>QILabel</class>
     434   <extends>QLabel</extends>
     435   <header>QILabel.h</header>
     436  </customwidget>
    225437 </customwidgets>
    226438 <resources>
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