VirtualBox

Changeset 89586 in vbox


Ignore:
Timestamp:
Jun 9, 2021 4:53:46 PM (3 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:9930. Adding a context menu to logviewer tabbar

Location:
trunk/src/VBox/Frontends/VirtualBox/src/logviewer
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogPage.cpp

    r89011 r89586  
    3535*********************************************************************************************************************************/
    3636
    37 UIVMLogTab::UIVMLogTab(QWidget *pParent, const QUuid &uMachineId)
     37UIVMLogTab::UIVMLogTab(QWidget *pParent, const QUuid &uMachineId, const QString &strMachineName)
    3838    : QIWithRetranslateUI<QWidget>(pParent)
    3939    , m_uMachineId(uMachineId)
     40    , m_strMachineName(strMachineName)
    4041{
    4142}
     
    4344{
    4445    return m_uMachineId;
     46}
     47
     48const QString UIVMLogTab::machineName() const
     49{
     50    return m_strMachineName;
    4551}
    4652
     
    4955*********************************************************************************************************************************/
    5056
    51 UIVMLogPage::UIVMLogPage(QWidget *pParent, const QUuid &uMachineId)
    52     : UIVMLogTab(pParent, uMachineId)
     57UIVMLogPage::UIVMLogPage(QWidget *pParent, const QUuid &uMachineId, const QString &strMachineName)
     58    : UIVMLogTab(pParent, uMachineId, strMachineName)
    5359    , m_pMainLayout(0)
    5460    , m_pTextEdit(0)
  • trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogPage.h

    r89011 r89586  
    4949public:
    5050
    51     UIVMLogTab(QWidget *pParent, const QUuid &uMachineId);
     51    UIVMLogTab(QWidget *pParent, const QUuid &uMachineId, const QString &strMachineName);
    5252    const QUuid &machineId() const;
     53    const QString machineName() const;
    5354
    5455private:
    5556
    5657    QUuid m_uMachineId;
     58    QString m_strMachineName;
    5759};
    5860
     
    7072public:
    7173
    72     UIVMLogPage(QWidget *pParent, const QUuid &uMachineId);
     74    UIVMLogPage(QWidget *pParent, const QUuid &uMachineId, const QString &strMachineName);
    7375    ~UIVMLogPage();
    7476
  • trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerWidget.cpp

    r89585 r89586  
    6767public:
    6868
    69     UILabelTab(QWidget *pParent, const QUuid &uMachineId)
    70         : UIVMLogPage(pParent, uMachineId)
     69    UILabelTab(QWidget *pParent, const QUuid &uMachineId, const QString &strMachineName)
     70        : UIVMLogPage(pParent, uMachineId, strMachineName)
    7171    {
    7272    }
     
    113113    :QTabBar(pParent)
    114114{
     115    setContextMenuPolicy(Qt::CustomContextMenu);
    115116}
    116117
     
    598599}
    599600
     601void UIVMLogViewerWidget::sltShowTabBarContextMenu(const QPoint &pos)
     602{
     603    if (m_pTabWidget && m_pTabWidget->tabBar())
     604    {
     605        QMenu menu;
     606        menu.addAction(tr("Close Other Tabs"));
     607        menu.exec(m_pTabWidget->tabBar()->mapToGlobal(pos));
     608    }
     609}
     610
    600611void UIVMLogViewerWidget::prepare()
    601612{
     
    668679            m_pMainLayout->addWidget(m_pTabWidget);
    669680            connect(m_pTabWidget, &QITabWidget::currentChanged, this, &UIVMLogViewerWidget::sltCurrentTabChanged);
     681            connect(m_pTabWidget->tabBar(), &QTabBar::customContextMenuRequested,
     682                    this, &UIVMLogViewerWidget::sltShowTabBarContextMenu);
    670683        }
    671684
     
    904917
    905918void UIVMLogViewerWidget::createLogPage(const QString &strFileName,
     919                                        const QString &strMachineName,
    906920                                        const QUuid &machineId, int iLogFileId,
    907921                                        const QString &strLogContent, bool noLogsToShow)
     
    911925
    912926    /* Create page-container: */
    913     UIVMLogPage* pLogPage = new UIVMLogPage(this, machineId);
     927    UIVMLogPage* pLogPage = new UIVMLogPage(this, machineId, strMachineName);
    914928    if (pLogPage)
    915929    {
     
    974988
    975989        if (uiCommon().uiType() == UICommon::UIType_SelectorUI)
    976             m_pTabWidget->addTab(new UILabelTab(this, uMachineId), strMachineName);
     990            m_pTabWidget->addTab(new UILabelTab(this, uMachineId, strMachineName), strMachineName);
    977991
    978992        bool fNoLogFileForMachine = true;
     
    984998                fNoLogFileForMachine = false;
    985999                createLogPage(comMachine.QueryLogFilename(iLogFileId),
     1000                              strMachineName,
    9861001                              uMachineId, iLogFileId,
    9871002                              strLogContent, false);
     
    9941009                                                 "<nobr><b>%2</b></nobr>.</p>")
    9951010                                              .arg(strMachineName).arg(comMachine.GetLogFolder()));
    996             createLogPage(tr("NoLogFile"), uMachineId, -1 /* iLogFileId */, strDummyTabText, true);
     1011            createLogPage(tr("NoLogFile"), strMachineName, uMachineId, -1 /* iLogFileId */, strDummyTabText, true);
    9971012        }
    9981013    }
  • trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerWidget.h

    r89585 r89586  
    141141        void sltResetOptionsToDefault();
    142142    /** @} */
     143    void sltShowTabBarContextMenu(const QPoint &pos);
    143144
    144145private:
     
    175176    /** Returns the newly created log-page using @a strPage filename. */
    176177    void createLogPage(const QString &strFileName,
     178                       const QString &strMachineName,
    177179                       const QUuid &machineId, int iLogFileId,
    178180                       const QString &strLogContent, bool noLogsToShow);
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