VirtualBox

Changeset 75425 in vbox


Ignore:
Timestamp:
Nov 13, 2018 4:16:17 PM (6 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:6699. Working on file operation panel. Not even close to be complete

Location:
trunk/src/VBox/Frontends/VirtualBox/src/guestctrl
Files:
28 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIGuestControlConsole.cpp

    r71639 r75425  
    55
    66/*
    7  * Copyright (C) 2016-2017 Oracle Corporation
     7 * Copyright (C) 2016-2018 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIGuestControlConsole.h

    r71639 r75425  
    55
    66/*
    7  * Copyright (C) 2016-2017 Oracle Corporation
     7 * Copyright (C) 2016-2018 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIGuestControlFileManager.cpp

    r75309 r75425  
    55
    66/*
    7  * Copyright (C) 2016-2017 Oracle Corporation
     7 * Copyright (C) 2016-2018 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    132132                                                     const CGuest &comGuest, QWidget *pParent, bool fShowToolbar /* = true */)
    133133    : QIWithRetranslateUI<QWidget>(pParent)
    134     , m_iMaxRecursionDepth(1)
    135134    , m_comGuest(comGuest)
    136135    , m_pMainLayout(0)
     
    249248            connect(m_pGuestFileTable, &UIGuestFileTable::sigLogOutput,
    250249                    this, &UIGuestControlFileManager::sltReceieveLogOutput);
     250            connect(m_pGuestFileTable, &UIGuestFileTable::sigNewFileOperation,
     251                    this, &UIGuestControlFileManager::sltReceieveNewFileOperation);
     252
    251253            pFileTableContainerLayout->addWidget(m_pGuestFileTable);
    252254        }
     
    330332
    331333    connect(m_pActionPool->action(UIActionIndex_M_GuestControlFileManager_S_CopyToHost), &QAction::triggered,
    332             this, &UIGuestControlFileManager::sltCopyHostToGuest);
     334            this, &UIGuestControlFileManager::sltCopyGuestToHost);
    333335    connect(m_pActionPool->action(UIActionIndex_M_GuestControlFileManager_S_CopyToGuest), &QAction::triggered,
    334              this, &UIGuestControlFileManager::sltCopyGuestToHost);
     336             this, &UIGuestControlFileManager::sltCopyHostToGuest);
    335337
    336338    layout ->addWidget(m_pToolBar);
     
    510512}
    511513
     514void UIGuestControlFileManager::sltReceieveNewFileOperation(const CProgress &comProgress)
     515{
     516    if (m_pOperationsPanel)
     517        m_pOperationsPanel->addNewProgress(comProgress);
     518}
     519
    512520void UIGuestControlFileManager::initFileTable()
    513521{
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIGuestControlFileManager.h

    r75295 r75425  
    55
    66/*
    7  * Copyright (C) 2016-2017 Oracle Corporation
     7 * Copyright (C) 2016-2018 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    111111    void sltPanelActionToggled(bool fChecked);
    112112    void sltListDirectoriesBeforeChanged();
     113    void sltReceieveNewFileOperation(const CProgress &comProgress);
    113114
    114115private:
     
    131132
    132133    void initFileTable();
    133     void postSessionCreated();
    134     void postSessionClosed();
     134    /** @name Perform operations needed after creating/ending a guest control session
     135      * @{ */
     136        void postSessionCreated();
     137        void postSessionClosed();
     138    /** @} */
     139
    135140    void saveSettings();
    136141    void loadSettings();
     
    147152    QStringList               getFsObjInfoStringList(const T &fsObjectInfo) const;
    148153    void                      appendLog(const QString &strLog, FileManagerLogType eLogType);
    149     const int                 m_iMaxRecursionDepth;
    150154    CGuest                    m_comGuest;
    151155    CGuestSession             m_comGuestSession;
     
    154158    UIToolBar                *m_pToolBar;
    155159
    156     //QTableView               *m_pFileOperationsTable;
    157160    UIGuestControlConsole    *m_pConsole;
    158161    UIGuestControlInterface  *m_pControlInterface;
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIGuestControlFileManagerLogPanel.cpp

    r75290 r75425  
    55
    66/*
    7  * Copyright (C) 2010-2017 Oracle Corporation
     7 * Copyright (C) 2010-2018 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIGuestControlFileManagerLogPanel.h

    r75295 r75425  
    55
    66/*
    7  * Copyright (C) 2010-2017 Oracle Corporation
     7 * Copyright (C) 2010-2018 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIGuestControlFileManagerOperationsPanel.cpp

    r75295 r75425  
    55
    66/*
    7  * Copyright (C) 2010-2017 Oracle Corporation
     7 * Copyright (C) 2010-2018 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    2222/* Qt includes: */
    2323# include <QHBoxLayout>
     24# include <QLabel>
    2425# include <QTableWidget>
    2526
     
    2728# include "UIGuestControlFileManager.h"
    2829# include "UIGuestControlFileManagerOperationsPanel.h"
     30# include "UIProgressEventHandler.h"
     31
     32/* COM includes: */
     33# include "CProgress.h"
     34
    2935
    3036#endif /* !VBOX_WITH_PRECOMPILED_HEADERS */
     
    4248public:
    4349
    44     UIFileOperationProgressWidget(QWidget *pParent = 0);
     50    UIFileOperationProgressWidget(const CProgress &comProgress, QWidget *pParent = 0);
     51    ~UIFileOperationProgressWidget();
    4552
     53private slots:
     54
     55    void sltHandleProgressPercentageChange(const QUuid &uProgressId, const int iPercent);
     56    void sltHandleProgressTaskComplete(const QUuid &uProgressId);
     57
     58private:
     59
     60    void prepare();
     61    void prepareWidgets();
     62    void prepareEventHandler();
     63    void cleanupEventHandler();
     64
     65    CProgress               m_comProgress;
     66    UIProgressEventHandler *m_pEventHandler;
     67    QHBoxLayout            *m_pMainLayout;
     68    QLabel                 *m_pPercentageLabel;
    4669};
    4770
     
    5174*********************************************************************************************************************************/
    5275
    53 UIFileOperationProgressWidget::UIFileOperationProgressWidget(QWidget *pParent /* = 0 */)
     76UIFileOperationProgressWidget::UIFileOperationProgressWidget(const CProgress &comProgress, QWidget *pParent /* = 0 */)
    5477    :QWidget(pParent)
     78    , m_comProgress(comProgress)
     79    , m_pEventHandler(0)
     80    , m_pMainLayout(0)
     81    , m_pPercentageLabel(0)
    5582{
     83    prepare();
     84}
     85
     86UIFileOperationProgressWidget::~UIFileOperationProgressWidget()
     87{
     88    cleanupEventHandler();
     89}
     90
     91void UIFileOperationProgressWidget::prepare()
     92{
     93    prepareWidgets();
     94    prepareEventHandler();
     95}
     96
     97void UIFileOperationProgressWidget::prepareWidgets()
     98{
     99    m_pMainLayout = new QHBoxLayout;
     100    if (m_pMainLayout)
     101    {
     102        m_pPercentageLabel = new QLabel;
     103        m_pPercentageLabel->setText("0asdsad");
     104        m_pMainLayout->addWidget(m_pPercentageLabel);
     105    }
     106    setLayout(m_pMainLayout);
     107}
     108
     109void UIFileOperationProgressWidget::prepareEventHandler()
     110{
     111    m_pEventHandler = new UIProgressEventHandler(this, m_comProgress);
     112    connect(m_pEventHandler, &UIProgressEventHandler::sigProgressPercentageChange,
     113            this, &UIFileOperationProgressWidget::sltHandleProgressPercentageChange);
     114    connect(m_pEventHandler, &UIProgressEventHandler::sigProgressTaskComplete,
     115            this, &UIFileOperationProgressWidget::sltHandleProgressTaskComplete);
     116}
     117
     118void UIFileOperationProgressWidget::cleanupEventHandler()
     119{
     120    delete m_pEventHandler;
     121    m_pEventHandler = 0;
     122}
     123
     124void UIFileOperationProgressWidget::sltHandleProgressPercentageChange(const QUuid &uProgressId, const int iPercent)
     125{
     126    Q_UNUSED(uProgressId);
     127    Q_UNUSED(iPercent);
     128}
     129
     130void UIFileOperationProgressWidget::sltHandleProgressTaskComplete(const QUuid &uProgressId)
     131{
     132    Q_UNUSED(uProgressId);
    56133}
    57134
     
    61138*********************************************************************************************************************************/
    62139
    63 UIGuestControlFileManagerOperationsPanel::UIGuestControlFileManagerOperationsPanel(UIGuestControlFileManager *pManagerWidget, QWidget *pParent)
     140UIGuestControlFileManagerOperationsPanel::UIGuestControlFileManagerOperationsPanel(UIGuestControlFileManager *pManagerWidget,
     141                                                                                   QWidget *pParent)
    64142    : UIGuestControlFileManagerPanel(pManagerWidget, pParent)
    65143    , m_pTableWidget(0)
     144    , m_pOperationsWidget(0)
    66145{
    67146    prepare();
    68147}
    69148
     149void UIGuestControlFileManagerOperationsPanel::addNewProgress(const CProgress &comProgress)
     150{
     151    if (!m_pTableWidget)
     152        return;
     153
     154    m_pTableWidget->setRowCount(m_pTableWidget->rowCount() + 1);
     155    m_pTableWidget->setCellWidget(m_pTableWidget->rowCount() - 1, 0, new UIFileOperationProgressWidget(comProgress));
     156}
    70157
    71158QString UIGuestControlFileManagerOperationsPanel::panelName() const
     
    78165    if (!mainLayout())
    79166        return;
    80     m_pTableWidget = new QTableWidget;
     167    m_pTableWidget = new QTableWidget();
     168
    81169    if (m_pTableWidget)
    82170    {
     171        m_pTableWidget->setColumnCount(1);
    83172        mainLayout()->addWidget(m_pTableWidget);
    84173    }
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIGuestControlFileManagerOperationsPanel.h

    r75295 r75425  
    55
    66/*
    7  * Copyright (C) 2010-2017 Oracle Corporation
     7 * Copyright (C) 2010-2018 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    2424
    2525/* Forward declarations: */
     26class CProgress;
    2627class QTableWidget;
     28class UIFileOperationProgressWidget;
    2729class UIGuestControlFileManager;
    2830
    29 /** UIVMLogViewerPanel extension providing GUI to manage logviewer settings. */
     31
     32/** UIVMLogViewerPanel extension hosting a QTableWidget which in turn has a special QWidget extension
     33  * to manage multiple CProgress instances. This is particulary used in monitoring file operations. */
    3034class UIGuestControlFileManagerOperationsPanel : public UIGuestControlFileManagerPanel
    3135{
     
    3640    UIGuestControlFileManagerOperationsPanel(UIGuestControlFileManager *pManagerWidget, QWidget *pParent);
    3741    virtual QString panelName() const /* override */;
    38 
    39 signals:
     42    void addNewProgress(const CProgress &comProgress);
    4043
    4144protected:
    4245
    43     virtual void prepareWidgets() /* override */;
    44     virtual void prepareConnections() /* override */;
     46    /** @name Preparation specific functions.
     47      * @{ */
     48        virtual void prepareWidgets() /* override */;
     49        virtual void prepareConnections() /* override */;
     50    /** @} */
    4551
    4652    /** Handles the translation event. */
     
    5157
    5258private:
    53     QTableWidget *m_pTableWidget;
     59
     60    /** @name Member variables.
     61      * @{ */
     62        QTableWidget *m_pTableWidget;
     63        UIFileOperationProgressWidget *m_pOperationsWidget;
     64    /** @} */
    5465
    5566};
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIGuestControlFileManagerPanel.cpp

    r75220 r75425  
    55
    66/*
    7  * Copyright (C) 2010-2017 Oracle Corporation
     7 * Copyright (C) 2010-2018 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIGuestControlFileManagerPanel.h

    r75224 r75425  
    55
    66/*
    7  * Copyright (C) 2010-2017 Oracle Corporation
     7 * Copyright (C) 2010-2018 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIGuestControlFileManagerSessionPanel.cpp

    r75224 r75425  
    55
    66/*
    7  * Copyright (C) 2010-2017 Oracle Corporation
     7 * Copyright (C) 2010-2018 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIGuestControlFileManagerSessionPanel.h

    r75224 r75425  
    55
    66/*
    7  * Copyright (C) 2010-2017 Oracle Corporation
     7 * Copyright (C) 2010-2018 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIGuestControlFileManagerSettingsPanel.cpp

    r75224 r75425  
    55
    66/*
    7  * Copyright (C) 2010-2017 Oracle Corporation
     7 * Copyright (C) 2010-2018 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIGuestControlFileManagerSettingsPanel.h

    r75224 r75425  
    55
    66/*
    7  * Copyright (C) 2010-2017 Oracle Corporation
     7 * Copyright (C) 2010-2018 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIGuestControlFileModel.cpp

    r75284 r75425  
    55
    66/*
    7  * Copyright (C) 2016-2017 Oracle Corporation
     7 * Copyright (C) 2016-2018 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIGuestControlFileModel.h

    r74947 r75425  
    55
    66/*
    7  * Copyright (C) 2016-2017 Oracle Corporation
     7 * Copyright (C) 2016-2018 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIGuestControlFileTable.cpp

    r75284 r75425  
    55
    66/*
    7  * Copyright (C) 2016-2017 Oracle Corporation
     7 * Copyright (C) 2016-2018 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIGuestControlFileTable.h

    r75284 r75425  
    55
    66/*
    7  * Copyright (C) 2016-2017 Oracle Corporation
     7 * Copyright (C) 2016-2018 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIGuestControlInterface.cpp

    r71639 r75425  
    55
    66/*
    7  * Copyright (C) 2016-2017 Oracle Corporation
     7 * Copyright (C) 2016-2018 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIGuestControlInterface.h

    r71639 r75425  
    55
    66/*
    7  * Copyright (C) 2016-2017 Oracle Corporation
     7 * Copyright (C) 2016-2018 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIGuestControlTreeItem.cpp

    r71639 r75425  
    55
    66/*
    7  * Copyright (C) 2016-2017 Oracle Corporation
     7 * Copyright (C) 2016-2018 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIGuestControlTreeItem.h

    r71639 r75425  
    55
    66/*
    7  * Copyright (C) 2016-2017 Oracle Corporation
     7 * Copyright (C) 2016-2018 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIGuestFileTable.cpp

    r75284 r75425  
    55
    66/*
    7  * Copyright (C) 2016-2017 Oracle Corporation
     7 * Copyright (C) 2016-2018 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    315315    QVector<QString>  aFilters;
    316316    QVector<QString>  aFlags;
    317     CProgress progress = m_comGuestSession.CopyToGuest(sourcePaths, aFilters, aFlags, currentDirectoryPath());
     317    QString strDestinationPath = currentDirectoryPath();
     318    if (strDestinationPath.isEmpty())
     319    {
     320        emit sigLogOutput("No destination for copy operation", FileManagerLogType_Error);
     321        return;
     322    }
     323    if (hostSourcePathList.empty())
     324    {
     325        emit sigLogOutput("No source for copy operation", FileManagerLogType_Error);
     326        return;
     327    }
     328
     329    CProgress progress = m_comGuestSession.CopyToGuest(sourcePaths, aFilters, aFlags, strDestinationPath);
    318330    if (!m_comGuestSession.isOk())
    319331    {
     
    322334        return;
    323335    }
    324 
    325     msgCenter().showModalProgressDialog(progress, "copying", ":/progress_delete_90px.png");
    326     if (!progress.isOk() || progress.GetResultCode() != 0)
    327     {
    328         emit sigLogOutput(UIErrorString::formatErrorInfo(progress), FileManagerLogType_Error);
    329         return;
    330     }
    331 
    332     else
     336    //emit sigNewFileOperation(progress);
     337    // msgCenter().showModalProgressDialog(progress, "copying", ":/progress_delete_90px.png");
     338    // if (!progress.isOk() || progress.GetResultCode() != 0)
     339    // {
     340    //     emit sigLogOutput(UIErrorString::formatErrorInfo(progress), FileManagerLogType_Error);
     341    //     return;
     342    // }
     343
     344    // else
    333345        refresh();
    334346}
     
    339351    QVector<QString>  aFilters;
    340352    QVector<QString>  aFlags;
     353
     354    if (hostDestinationPath.isEmpty())
     355    {
     356        emit sigLogOutput("No destination for copy operation", FileManagerLogType_Error);
     357        return;
     358    }
     359    if (sourcePaths.empty())
     360    {
     361        emit sigLogOutput("No source for copy operation", FileManagerLogType_Error);
     362        return;
     363    }
    341364
    342365    CProgress progress = m_comGuestSession.CopyFromGuest(sourcePaths, aFilters, aFlags, hostDestinationPath);
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIGuestFileTable.h

    r75202 r75425  
    55
    66/*
    7  * Copyright (C) 2016-2017 Oracle Corporation
     7 * Copyright (C) 2016-2018 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    4242    void copyHostToGuest(const QStringList &hostSourcePathList);
    4343
     44signals:
     45
     46    void sigNewFileOperation(const CProgress &comProgress);
     47
    4448protected:
    4549
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIGuestProcessControlWidget.cpp

    r75220 r75425  
    55
    66/*
    7  * Copyright (C) 2016-2017 Oracle Corporation
     7 * Copyright (C) 2016-2018 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIGuestProcessControlWidget.h

    r75220 r75425  
    55
    66/*
    7  * Copyright (C) 2016-2017 Oracle Corporation
     7 * Copyright (C) 2016-2018 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIHostFileTable.cpp

    r75289 r75425  
    55
    66/*
    7  * Copyright (C) 2016-2017 Oracle Corporation
     7 * Copyright (C) 2016-2018 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIHostFileTable.h

    r75202 r75425  
    55
    66/*
    7  * Copyright (C) 2016-2017 Oracle Corporation
     7 * Copyright (C) 2016-2018 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
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