Changeset 71531 in vbox
- Timestamp:
- Mar 28, 2018 7:25:36 AM (7 years ago)
- svn:sync-xref-src-repo-rev:
- 121507
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src/runtime/guestctrl
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/runtime/guestctrl/UIGuestControlFileManager.cpp
r71523 r71531 688 688 return objectInfo; 689 689 690 //objectInfo << QString(UIGuestControlInterface::getFsObjTypeString(fsObjectInfo.GetType()).append("\t"));691 690 objectInfo << fsObjectInfo.GetName(); 692 //objectInfo << QString::number(fsObjectInfo.GetObjectSize());693 694 /* Currently I dont know a way to convert these into a meaningful date/time: */695 // strObjectInfo.append("BirthTime", QString::number(fsObjectInfo.GetBirthTime()));696 // strObjectInfo.append("ChangeTime", QString::number(fsObjectInfo.GetChangeTime()));697 691 698 692 return objectInfo; -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/guestctrl/UIHostFileTable.cpp
r71509 r71531 45 45 signals: 46 46 47 void sigResultUpdated(UIDirectoryStatistics , QString);47 void sigResultUpdated(UIDirectoryStatistics); 48 48 49 49 public: 50 50 51 UIHostDirectoryDiskUsageComputer(QObject *parent, QString strStartPath);51 UIHostDirectoryDiskUsageComputer(QObject *parent, QStringList strStartPath); 52 52 void stopRecursion(); 53 53 … … 58 58 void directoryStatisticsRecursive(const QString &path, UIDirectoryStatistics &statistics); 59 59 void run(); 60 QString m_strStartPath;60 QStringList m_pathList; 61 61 UIDirectoryStatistics m_resultStatistics; 62 62 bool m_bContinueRunning; … … 69 69 *********************************************************************************************************************************/ 70 70 71 UIHostDirectoryDiskUsageComputer::UIHostDirectoryDiskUsageComputer(QObject *parent, QString strStartPath)71 UIHostDirectoryDiskUsageComputer::UIHostDirectoryDiskUsageComputer(QObject *parent, QStringList pathList) 72 72 :QThread(parent) 73 , m_ strStartPath(strStartPath)73 , m_pathList(pathList) 74 74 , m_bContinueRunning(true) 75 75 { … … 78 78 void UIHostDirectoryDiskUsageComputer::run() 79 79 { 80 directoryStatisticsRecursive(m_strStartPath, m_resultStatistics); 80 for (int i = 0; i < m_pathList.size(); ++i) 81 directoryStatisticsRecursive(m_pathList[i], m_resultStatistics); 81 82 } 82 83 … … 84 85 void UIHostDirectoryDiskUsageComputer::directoryStatisticsRecursive(const QString &path, UIDirectoryStatistics &statistics) 85 86 { 87 88 if (!m_bContinueRunning) 89 return; 90 QFileInfo fileInfo(path); 91 if (!fileInfo.exists()) 92 return; 93 /* if the object is a file or a symlink then read the size and return: */ 94 if (fileInfo.isFile()) 95 { 96 statistics.m_totalSize += fileInfo.size(); 97 ++statistics.m_uFileCount; 98 sigResultUpdated(statistics); 99 return; 100 } 101 else if (fileInfo.isSymLink()) 102 { 103 statistics.m_totalSize += fileInfo.size(); 104 ++statistics.m_uSymlinkCount; 105 sigResultUpdated(statistics); 106 return; 107 } 108 109 /* if it is a directory then read the content: */ 86 110 QDir dir(path); 87 111 if (!dir.exists()) 88 112 return; 89 90 if (!m_bContinueRunning)91 return;92 93 sigResultUpdated(statistics, path);94 113 95 114 QFileInfoList entryList = dir.entryInfoList(); … … 110 129 } 111 130 } 131 sigResultUpdated(statistics); 112 132 } 113 133 … … 313 333 propertyString += "<b>Owner:</b> " + fileInfo.owner(); 314 334 315 // if (fileInfo.isDir()) 316 // { 317 // propertyString += "<br/>"; 318 // UIDirectoryStatistics directoryStatistics; 319 // directoryStatisticsRecursive(fileInfo.absoluteFilePath(), directoryStatistics); 320 // propertyString += "<b>Total Size:</b> " + QString::number(directoryStatistics.m_totalSize) + QString(" bytes"); 321 // if (directoryStatistics.m_totalSize >= m_iKiloByte) 322 // propertyString += " (" + humanReadableSize(directoryStatistics.m_totalSize) + ")"; 323 // propertyString += "<br/>"; 324 // propertyString += "<b>File Count:</b> " + QString::number(directoryStatistics.m_uFileCount); 325 // } 335 return propertyString; 336 } 337 else 338 { 339 int fileCount = 0; 340 int directoryCount = 0; 341 ULONG64 totalSize = 0; 342 343 for(int i = 0; i < selectedObjects.size(); ++i) 344 { 345 QFileInfo fileInfo(selectedObjects.at(i)); 346 if (!fileInfo.exists()) 347 continue; 348 if (fileInfo.isFile()) 349 ++fileCount; 350 if (fileInfo.isDir()) 351 ++directoryCount; 352 totalSize += fileInfo.size(); 353 } 354 QString propertyString; 355 propertyString += "<b>Selected:</b> " + QString::number(fileCount) + " files "; 356 propertyString += "and " + QString::number(directoryCount) + " directories"; 357 propertyString += "<br/>"; 358 propertyString += "<b>Size:</b> " + QString::number(totalSize) + QString(" bytes"); 359 if (totalSize >= m_iKiloByte) 360 propertyString += " (" + humanReadableSize(totalSize) + ")"; 361 362 326 363 return propertyString; 327 364 } … … 343 380 344 381 QStringList selectedObjects = selectedItemPathList(); 345 if (selectedObjects.size() == 1) 346 { 347 QFileInfo fileInfo(selectedObjects.at(0)); 348 if (fileInfo.exists() && fileInfo.isDir()) 349 { 350 directoryThread = new UIHostDirectoryDiskUsageComputer(this, fileInfo.absoluteFilePath()); 351 if (directoryThread) 352 { 353 connect(directoryThread, &UIHostDirectoryDiskUsageComputer::sigResultUpdated, 354 this, &UIHostFileTable::sltReceiveDirectoryStatistics/*, Qt::DirectConnection*/); 355 directoryThread->start(); 356 } 357 382 if ((selectedObjects.size() == 1 && QFileInfo(selectedObjects.at(0)).isDir()) 383 || selectedObjects.size() > 1) 384 { 385 directoryThread = new UIHostDirectoryDiskUsageComputer(this, selectedObjects); 386 if (directoryThread) 387 { 388 connect(directoryThread, &UIHostDirectoryDiskUsageComputer::sigResultUpdated, 389 this, &UIHostFileTable::sltReceiveDirectoryStatistics/*, Qt::DirectConnection*/); 390 directoryThread->start(); 358 391 } 359 392 } … … 376 409 } 377 410 378 void UIHostFileTable::sltReceiveDirectoryStatistics(UIDirectoryStatistics statistics , QString path)411 void UIHostFileTable::sltReceiveDirectoryStatistics(UIDirectoryStatistics statistics) 379 412 { 380 413 if (!m_pPropertiesDialog) -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/guestctrl/UIHostFileTable.h
r71505 r71531 46 46 private slots: 47 47 48 void sltReceiveDirectoryStatistics(UIDirectoryStatistics statictics , QString path);48 void sltReceiveDirectoryStatistics(UIDirectoryStatistics statictics); 49 49 50 50 private:
Note:
See TracChangeset
for help on using the changeset viewer.