VirtualBox

Changeset 75928 in vbox


Ignore:
Timestamp:
Dec 3, 2018 10:45:39 PM (6 years ago)
Author:
vboxsync
Message:

Fe/QT: Display more file properties.

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

Legend:

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

    r75910 r75928  
    4040# include "QILineEdit.h"
    4141# include "QIMessageBox.h"
     42# include "VBoxGlobal.h"
    4243# include "UIActionPool.h"
    4344# include "UIErrorString.h"
     
    678679*   UIGuestControlFileTable implementation.                                                                                      *
    679680*********************************************************************************************************************************/
    680 const unsigned UIGuestControlFileTable::m_iKiloByte = 1000;
     681const unsigned UIGuestControlFileTable::m_iKiloByte = 1024; /**< Our kilo bytes are a power of two! (bird) */
    681682UIGuestControlFileTable::UIGuestControlFileTable(UIActionPool *pActionPool, QWidget *pParent /* = 0 */)
    682683    :QIWithRetranslateUI<QWidget>(pParent)
     
    14381439{
    14391440    QString strType = UIGuestControlFileManager::tr("Unknown");
    1440     switch(type)
     1441    switch (type)
    14411442    {
    14421443        case FileObjectType_File:
     
    14621463/* static */ QString UIGuestControlFileTable::humanReadableSize(ULONG64 size)
    14631464{
    1464     int i = 0;
    1465     double dSize = size;
    1466     const char* units[] = {" B", " kB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB"};
    1467     while (size > m_iKiloByte) {
    1468         size /= m_iKiloByte;
    1469         dSize /= (double) m_iKiloByte;
    1470         i++;
    1471     }
    1472     if (i > 8)
    1473         return QString();
    1474 
    1475     QString strResult(QString::number(dSize, 'f', 2));
    1476     strResult += units[i];
    1477     return strResult;
     1465    return vboxGlobal().formatSize(size);
    14781466}
    14791467
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIGuestFileTable.cpp

    r75907 r75928  
    430430        }
    431431
    432 
    433432        QStringList propertyStringList;
    434433
    435434        /* Name: */
    436435        propertyStringList << QString("<b>Name:</b> %1<br/>").arg(UIPathOperations::getObjectName(fileInfo.GetName()));
     436
    437437        /* Size: */
    438438        LONG64 size = fileInfo.GetObjectSize();
    439439        propertyStringList << UIGuestControlFileManager::tr("<b>Size:</b> %1 bytes").arg(QString::number(size));
    440440        if (size >= 1024)
    441             propertyStringList << QString(" (%1)").arg(humanReadableSize(size));
     441            propertyStringList << QString(" (%1)<br/>").arg(humanReadableSize(size));
    442442        else
    443443            propertyStringList << QString("<br/>");
     444
     445        /* Allocated size: */
     446        size = fileInfo.GetAllocatedSize();
     447        propertyStringList << UIGuestControlFileManager::tr("<b>Allocated:</b> %1 bytes").arg(QString::number(size));
     448        if (size >= 1024)
     449            propertyStringList << QString(" (%1)<br/>").arg(humanReadableSize(size));
     450        else
     451            propertyStringList << QString("<br/>");
     452
    444453        /* Type: */
    445         propertyStringList <<  UIGuestControlFileManager::tr("<b>Type:</b> %1<br/>").arg(fileTypeString(fileType(fileInfo)));
    446         /* Creation Date: */
    447         propertyStringList << UIGuestControlFileManager::tr("<b>Created:</b> %1<br/>").
    448             arg(QDateTime::fromMSecsSinceEpoch(fileInfo.GetChangeTime()/1000000).toString());
    449         /* Last Modification Date: */
     454        QString str;
     455        switch (fileInfo.GetType())
     456        {
     457            case KFsObjType_Directory:  str = tr("directory"); break;
     458            case KFsObjType_File:       str = tr("file"); break;
     459            case KFsObjType_Symlink:    str = tr("symbolic link"); break;
     460            case KFsObjType_DevChar:    str = tr("character device"); break;
     461            case KFsObjType_DevBlock:   str = tr("block device"); break;
     462            case KFsObjType_Fifo:       str = tr("fifo"); break;
     463            case KFsObjType_Socket:     str = tr("socket"); break;
     464            case KFsObjType_WhiteOut:   str = tr("whiteout"); break;
     465            case KFsObjType_Unknown:    str = tr("unknown"); break;
     466            default:                    str = tr("illegal-value"); break;
     467        }
     468        propertyStringList <<  UIGuestControlFileManager::tr("<b>Type:</b> %1<br/>").arg(str);
     469
     470        /* INode number, device, link count: */
     471        propertyStringList << UIGuestControlFileManager::tr("<b>INode:</b> %1<br/>").arg(fileInfo.GetNodeId());
     472        propertyStringList << UIGuestControlFileManager::tr("<b>Device:</b> %1<br/>").arg(fileInfo.GetNodeIdDevice());  /** @todo hex */
     473        propertyStringList << UIGuestControlFileManager::tr("<b>Hardlinks:</b> %1<br/>").arg(fileInfo.GetHardLinks());
     474
     475        /* Attributes: */
     476        str = fileInfo.GetFileAttributes();
     477        if (!str.isEmpty())
     478        {
     479            int offSpace = str.indexOf(" ");
     480            if (offSpace < 0)
     481                offSpace = str.length();
     482            propertyStringList << UIGuestControlFileManager::tr("<b>Mode:</b> %1<br/>").arg(str.left(offSpace));
     483            propertyStringList << UIGuestControlFileManager::tr("<b>Attributes:</b> %1<br/>").arg(str.right(offSpace).trimmed());
     484        }
     485
     486        /* Character/block device ID: */
     487        ULONG uDeviceNo = fileInfo.GetDeviceNumber();
     488        if (uDeviceNo != 0)
     489            propertyStringList << UIGuestControlFileManager::tr("<b>Device ID:</b> %1<br/>").arg(uDeviceNo); /** @todo hex */
     490
     491        /* Owner: */
     492        propertyStringList << UIGuestControlFileManager::tr("<b>Owner:</b> %1 (%1)<br/>").
     493            arg(fileInfo.GetUserName()).arg(fileInfo.GetUID());
     494        propertyStringList << UIGuestControlFileManager::tr("<b>Group:</b> %1<br/>").
     495            arg(fileInfo.GetGroupName()).arg(fileInfo.GetGID());
     496
     497        /* Timestamps: */
     498        propertyStringList << UIGuestControlFileManager::tr("<b>Birth:</b> %1<br/>").
     499            arg(QDateTime::fromMSecsSinceEpoch(fileInfo.GetBirthTime() / RT_NS_1MS).toString());
     500        propertyStringList << UIGuestControlFileManager::tr("<b>Change:</b> %1<br/>").
     501            arg(QDateTime::fromMSecsSinceEpoch(fileInfo.GetChangeTime() / RT_NS_1MS).toString());
    450502        propertyStringList << UIGuestControlFileManager::tr("<b>Modified:</b> %1<br/>").
    451             arg(QDateTime::fromMSecsSinceEpoch(fileInfo.GetModificationTime()/1000000).toString());
    452         /* Owner: */
    453         propertyStringList << UIGuestControlFileManager::tr("<b>Owner:</b> %1<br/>").arg(fileInfo.GetUserName());
     503            arg(QDateTime::fromMSecsSinceEpoch(fileInfo.GetModificationTime() / RT_NS_1MS).toString());
     504        propertyStringList << UIGuestControlFileManager::tr("<b>Access:</b> %1<br/>").
     505            arg(QDateTime::fromMSecsSinceEpoch(fileInfo.GetAccessTime() / RT_NS_1MS).toString());
     506
    454507        /* Join the list elements into a single string seperated by empty string: */
    455508        return propertyStringList.join(QString());
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