VirtualBox

Changeset 28572 in vbox


Ignore:
Timestamp:
Apr 21, 2010 7:37:32 PM (15 years ago)
Author:
vboxsync
Message:

FE/Qt4: new core: added support for the IP tooltip (r60385)

File:
1 edited

Legend:

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

    r28020 r28572  
    2222 */
    2323
     24/* Global includes */
     25#include <iprt/time.h>
     26#include <QTimer>
     27
    2428/* Local includes */
    2529#include "UIIndicatorsPool.h"
     
    233237      : QIWithRetranslateUI<QIStateIndicator>()
    234238      , m_session(session)
     239      , m_pUpdateTimer(new QTimer(this))
    235240    {
    236241        setStateIcon(KDeviceActivity_Idle, QPixmap(":/nw_16px.png"));
     
    239244        setStateIcon(KDeviceActivity_Null, QPixmap(":/nw_disabled_16px.png"));
    240245
    241         retranslateUi();
    242     }
    243 
    244     void retranslateUi()
    245     {
    246         updateAppearance();
    247     }
    248 
    249     void updateAppearance()
    250     {
    251         const CMachine &machine = m_session.GetMachine();
     246        connect(m_pUpdateTimer, SIGNAL(timeout()), SLOT(sltUpdateNetworkIPs()));
     247        m_pUpdateTimer->start(5000);
     248
     249        retranslateUi();
     250    }
     251
     252    void retranslateUi()
     253    {
     254        updateAppearance();
     255    }
     256
     257    void updateAppearance()
     258    {
     259        CMachine machine = m_session.GetMachine();
    252260
    253261        ulong uMaxCount = vboxGlobal().virtualBox().GetSystemProperties().GetNetworkAdapterCount();
     
    266274            CNetworkAdapter adapter = machine.GetNetworkAdapter(uSlot);
    267275            if (adapter.GetEnabled())
    268                 strFullData += QApplication::translate("VBoxConsoleWnd", "<br><nobr><b>Adapter %1 (%2)</b>: cable %3</nobr>", "Network adapters tooltip")
     276            {
     277                QString strIP;
     278                ULONG64 timestamp;
     279                RTTIMESPEC time;
     280                uint64_t u64Now = RTTimeSpecGetNano(RTTimeNow(&time));
     281                QString strFlags;
     282                machine.GetGuestProperty(QString("/VirtualBox/GuestInfo/Net/%1/V4/IP").arg(uSlot),
     283                                         strIP, timestamp, strFlags);
     284                strFullData += QApplication::translate("VBoxConsoleWnd", "<br><nobr><b>Adapter %1 (%2)</b>: %3 cable %4</nobr>", "Network adapters tooltip")
    269285                    .arg(uSlot + 1)
    270286                    .arg(vboxGlobal().toString(adapter.GetAttachmentType()))
     287                    .arg(strIP.isEmpty() || (u64Now - timestamp > UINT64_C(20000000000)) ? "" : "IP=" + strIP + " - ")
    271288                    .arg(adapter.GetCableConnected() ?
    272289                          QApplication::translate("VBoxConsoleWnd", "connected", "Network adapters tooltip") :
    273290                          QApplication::translate("VBoxConsoleWnd", "disconnected", "Network adapters tooltip"));
     291            }
    274292        }
    275293
     
    279297        setToolTip(strToolTip.arg(strFullData));
    280298    }
    281 
    282 protected:
    283     /* For compatibility reason we do it here, later this should be moved to
    284      * QIStateIndicator. */
    285     CSession &m_session;
     299protected slots:
     300
     301    void sltUpdateNetworkIPs()
     302    {
     303        updateAppearance();
     304    }
     305
     306protected:
     307    /* For compatibility reason we do it here, later this should be moved to
     308     * QIStateIndicator. */
     309    CSession &m_session;
     310    QTimer *m_pUpdateTimer;
    286311};
    287312
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