VirtualBox

Changeset 99275 in vbox for trunk/src


Ignore:
Timestamp:
Apr 4, 2023 6:56:38 AM (22 months ago)
Author:
vboxsync
Message:

Guest Control/VBoxManage: Added display percentage used for a guest filesystem; made the layout a bit more compact. bugref:10414

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageGuestCtrl.cpp

    r99266 r99275  
    24412441
    24422442    /* Stay within 80 characters width by default. */
    2443     unsigned const cwFileSys     = 12;
    2444     unsigned const cwSize        = 16;
     2443    unsigned const cwFileSys     = 10;
     2444    /* When displaying human-readable sizes, we need less space for a column. */
     2445    unsigned const cwSize        = fHumanReadable ? 10 : 14;
    24452446    unsigned const cwSizeTotal   = cwSize;
    24462447    unsigned const cwSizeUsed    = cwSize;
    24472448    unsigned const cwSizeAvail   = cwSize;
    2448     unsigned const cwPathSpacing = 6; /* Spacing between last value and actual path. */
    2449 
    2450     RTPrintf("%-*s%*s%*s%*s%*s%s\n",
     2449    unsigned const cwUsePercent  = 6;
     2450    unsigned const cwPathSpacing = 3; /* Spacing between last value and actual path. */
     2451
     2452    RTPrintf("%-*s%*s%*s%*s%*s%*s%s\n",
    24512453             cwFileSys, GuestCtrl::tr("Filesystem"),
    2452              cwSizeTotal, GuestCtrl::tr("Total"), cwSizeUsed, GuestCtrl::tr("Used"), cwSizeAvail, GuestCtrl::tr("Available"),
     2454             cwSizeTotal, GuestCtrl::tr("Total"), cwSizeUsed, GuestCtrl::tr("Used"), cwSizeAvail, GuestCtrl::tr("Avail"),
     2455             cwUsePercent, GuestCtrl::tr("Use%"),
    24532456             cwPathSpacing, "",
    24542457             GuestCtrl::tr("Path"));
     
    24712474            CHECK_ERROR2I(pFsInfo, COMGETTER(Type)(bstr.asOutParam()));
    24722475            /** @todo Add label and mount point once we return this. */
    2473             LONG64 u64, u64_2;
    2474             CHECK_ERROR2I(pFsInfo, COMGETTER(TotalSize)(&u64));
    2475             CHECK_ERROR2I(pFsInfo, COMGETTER(FreeSize)(&u64_2));
     2476            LONG64 cbTotal, cbFree;
     2477            CHECK_ERROR2I(pFsInfo, COMGETTER(TotalSize)(&cbTotal));
     2478            CHECK_ERROR2I(pFsInfo, COMGETTER(FreeSize)(&cbFree));
     2479            uint8_t const uPercentUsed = (cbTotal - cbFree) * 100 / cbTotal;
    24762480            if (fHumanReadable)
    24772481            {
    2478                 RTPrintf("%-*ls%*Rhcb%*Rhcb%*Rhcb%*s%s",
    2479                          cwFileSys, bstr.raw(),               /* Filesystem */
    2480                          cwSizeTotal, u64,                    /* Total */
    2481                          cwSizeUsed,  u64 - u64_2,            /* Used */
    2482                          cwSizeAvail, u64_2,                  /* Available */
     2482                RTPrintf("%-*ls%*Rhcb%*Rhcb%*Rhcb%*RU8%%%*s%s",
     2483                         cwFileSys, bstr.raw(),                                 /* Filesystem */
     2484                         cwSizeTotal, cbTotal,                                  /* Total */
     2485                         cwSizeUsed,  cbTotal - cbFree,                         /* Used */
     2486                         cwSizeAvail, cbFree,                                   /* Available */
     2487                         cwUsePercent - 1 /* For percent sign */, uPercentUsed, /* Percent */
    24832488                         cwPathSpacing, "",
    2484                          ValueUnion.psz);                     /* Path */
     2489                         ValueUnion.psz);                                       /* Path */
    24852490            }
    24862491            else
    24872492            {
    2488                 RTPrintf("%-*ls%*RU64%*RU64%*RU64%*s%s",
    2489                          cwFileSys, bstr.raw(),               /* Filesystem */
    2490                          cwSizeTotal, u64,                    /* Total */
    2491                          cwSizeUsed,  u64 - u64_2,            /* Used */
    2492                          cwSizeAvail, u64_2,                  /* Available */
     2493                RTPrintf("%-*ls%*RU64%*RU64%*RU64%*RU8%%%*s%s",
     2494                         cwFileSys, bstr.raw(),                                 /* Filesystem */
     2495                         cwSizeTotal, cbTotal,                                  /* Total */
     2496                         cwSizeUsed,  cbTotal - cbFree,                         /* Used */
     2497                         cwSizeAvail, cbFree,                                   /* Available */
     2498                         cwUsePercent - 1 /* For percent sign */, uPercentUsed, /* Percent */
    24932499                         cwPathSpacing, "",
    2494                          ValueUnion.psz);                     /* Path */
     2500                         ValueUnion.psz);                                       /* Path */
    24952501            }
    24962502
    24972503            if (fShowTotal)
    24982504            {
    2499                 cbTotalSize += u64;
    2500                 cbTotalFree += u64_2;
     2505                cbTotalSize += cbTotal;
     2506                cbTotalFree += cbFree;
    25012507            }
    2502 
    25032508            RTPrintf("\n");
    25042509        }
     
    25102515    if (fShowTotal)
    25112516    {
     2517        uint8_t const uPercentUsed = (cbTotalSize - cbTotalFree) * 100 / cbTotalSize;
     2518
    25122519        if (fHumanReadable)
    25132520        {
    2514             RTPrintf("%-*s%*Rhcb%*Rhcb%*Rhcb%*s%s",
     2521            RTPrintf("%-*s%*Rhcb%*Rhcb%*Rhcb%*RU8%%%*s%s",
    25152522                     cwFileSys, "total",
    2516                      cwSizeTotal, cbTotalSize,                /* Total */
    2517                      cwSizeUsed,  cbTotalSize - cbTotalFree,  /* Used */
    2518                      cwSizeAvail, cbTotalFree,                /* Available */
     2523                     cwSizeTotal, cbTotalSize,                                  /* Total */
     2524                     cwSizeUsed,  cbTotalSize - cbTotalFree,                    /* Used */
     2525                     cwSizeAvail, cbTotalFree,                                  /* Available */
     2526                     cwUsePercent - 1 /* For percent sign */, uPercentUsed,     /* Percent */
    25192527                     cwPathSpacing, "",
    2520                      "-");                                    /* Path */
     2528                     "-");                                                      /* Path */
    25212529        }
    25222530        else
    25232531        {
    2524             RTPrintf("%-*s%*RU64%*RU64%*RU64%*s%s",
    2525                      cwFileSys, "total",                      /* Filesystem */
    2526                      cwSizeTotal, cbTotalSize,                /* Total */
    2527                      cwSizeUsed,  cbTotalSize - cbTotalFree,  /* Used */
    2528                      cwSizeAvail, cbTotalFree,                /* Available */
     2532            RTPrintf("%-*s%*RU64%*RU64%*RU64%*RU8%%%*s%s",
     2533                     cwFileSys, "total",                                        /* Filesystem */
     2534                     cwSizeTotal, cbTotalSize,                                  /* Total */
     2535                     cwSizeUsed,  cbTotalSize - cbTotalFree,                    /* Used */
     2536                     cwSizeAvail, cbTotalFree,                                  /* Available */
     2537                     cwUsePercent - 1 /* For percent sign */, uPercentUsed,     /* Percent */
    25292538                     cwPathSpacing, "",
    25302539                     "-");                                    /* Path */
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