VirtualBox

Ignore:
Timestamp:
Jun 10, 2021 1:11:03 PM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
145043
Message:

FE/Qt: bugref:9930. Allow closing log tabs

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

Legend:

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

    r89594 r89599  
    121121void UITabBar::paintEvent(QPaintEvent *pEvent)
    122122{
    123 
    124123    Q_UNUSED(pEvent);
    125124    QStylePainter painter(this);
    126 
    127125    for (int i = 0; i < count(); i++)
    128126    {
     
    629627    if (machineId.isNull())
    630628        return;
    631 
     629    QVector<QUuid> machineList;
     630    machineList << machineId;
     631    removeLogViewerPages(machineList);
    632632}
    633633
     
    925925}
    926926
    927 QVector<UIVMLogPage*> UIVMLogViewerWidget::logPages()
    928 {
    929     QVector<UIVMLogPage*> pages;
     927QVector<UIVMLogTab*> UIVMLogViewerWidget::logTabs()
     928{
     929    QVector<UIVMLogTab*> tabs;
    930930    if (m_pTabWidget)
    931         return pages;
     931        return tabs;
    932932    for (int i = 0; i < m_pTabWidget->count(); ++i)
    933933    {
    934         UIVMLogPage *pPage = logPage(i);
     934        UIVMLogTab *pPage = logTab(i);
    935935        if (pPage)
    936             pages << pPage;
    937     }
    938     return pages;
     936            tabs << pPage;
     937    }
     938    return tabs;
    939939}
    940940
     
    984984        return 0;
    985985    return qobject_cast<UIVMLogPage*>(m_pTabWidget->currentWidget());
     986}
     987
     988UIVMLogTab *UIVMLogViewerWidget::logTab(int iIndex)
     989{
     990    if (!m_pTabWidget)
     991        return 0;
     992    return qobject_cast<UIVMLogTab*>(m_pTabWidget->widget(iIndex));
    986993}
    987994
     
    10441051    if (machineList.isEmpty() || !m_pTabWidget)
    10451052        return;
     1053
     1054    QVector<QUuid> currentMachineList(m_machines);
     1055    /* Make sure that we remove the machine(s) from our machine list: */
     1056    foreach (const QUuid &id, machineList)
     1057        currentMachineList.removeAll(id);
     1058    if (currentMachineList.isEmpty())
     1059        return;
     1060    m_machines = currentMachineList;
     1061
    10461062    m_pTabWidget->blockSignals(true);
    10471063    /* Cache log page pointers and tab titles: */
     
    10491065    for (int i = 0; i < m_pTabWidget->count(); ++i)
    10501066    {
    1051         UIVMLogTab *pTab = logPage(i);
     1067        UIVMLogTab *pTab = logTab(i);
    10521068        if (pTab)
    10531069            logTabs << QPair<UIVMLogTab*, QString>(pTab, m_pTabWidget->tabText(i));
     
    10711087    qDeleteAll(pagesToRemove.begin(), pagesToRemove.end());
    10721088    m_pTabWidget->blockSignals(false);
     1089    labelTabHandler();
     1090    markLabelTabs();
    10731091}
    10741092
  • trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerWidget.h

    r89594 r89599  
    4949class UIVirtualMachineItem;
    5050class UIVMLogPage;
     51class UIVMLogTab;
    5152class UIVMLogViewerBookmarksPanel;
    5253class UIVMLogViewerFilterPanel;
     
    183184    const UIVMLogPage *currentLogPage() const;
    184185    UIVMLogPage *currentLogPage();
    185     /** Returns the log page at tab with iIndex if it contains a log page. Return 0 otherwise. */
     186    /** Returns the log tab at tab with iIndex if it contains a log page. Return 0 otherwise. */
     187    UIVMLogTab *logTab(int iIndex);
    186188    UIVMLogPage *logPage(int iIndex);
    187189    /** Returns a vector of all the log pages of the tab widget. */
    188     QVector<UIVMLogPage*> logPages();
     190    QVector<UIVMLogTab*> logTabs();
    189191
    190192    void createLogViewerPages(const QVector<QUuid> &machineList);
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