Skip to content

Commit 412f7a1

Browse files
committed
CFileStatsWindow: resizable columns; display scanning time
1 parent 35b16a1 commit 412f7a1

3 files changed

Lines changed: 22 additions & 5 deletions

File tree

qt-app/src/cmainwindow.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
#include "widgets/widgetutils.h"
2323
#include "filesystemhelpers/filestatistics.h"
2424
#include "filesystemhelpers/filesystemhelpers.hpp"
25+
#include "system/ctimeelapsed.h"
2526
#include "tools/CFileStatsWindow.h"
2627
#include "version.h"
2728

@@ -782,11 +783,14 @@ void CMainWindow::calculateStatistics()
782783

783784
const auto hashes = _currentFileList->selectedItemsHashes();
784785
const auto paths = _controller->panel(_currentFileList->panelPosition()).itemPathsByHashes(hashes);
786+
787+
CTimeElapsed timer{ true };
785788
const FileStatistics stats = calculateStatsFor(paths);
789+
const uint64_t elapsedMs = timer.elapsed();
786790
if (stats.empty())
787791
return;
788792

789-
auto* statsWindow = new CFileStatsWindow(this, stats, *_controller);
793+
auto* statsWindow = new CFileStatsWindow(this, stats, *_controller, elapsedMs);
790794
statsWindow->setAttribute(Qt::WA_DeleteOnClose);
791795
WidgetUtils::centerWidgetOnScreen(statsWindow, 0.7);
792796
statsWindow->show();

qt-app/src/tools/CFileStatsWindow.cpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ class SortByDataTreeItem final : public QTreeWidgetItem
4343
}
4444
};
4545

46-
CFileStatsWindow::CFileStatsWindow(QWidget* parent, const FileStatistics& stats, CController& controller) :
46+
CFileStatsWindow::CFileStatsWindow(QWidget* parent, const FileStatistics& stats, CController& controller, uint64_t elapsedMs) :
4747
QMainWindow{ nullptr }
4848
{
4949
setWindowTitle(tr("Statistics"));
@@ -67,13 +67,18 @@ CFileStatsWindow::CFileStatsWindow(QWidget* parent, const FileStatistics& stats
6767
layout->setAlignment(btnClose, Qt::AlignRight);
6868
QObject::connect(btnClose, &QPushButton::clicked, this, &QMainWindow::close);
6969

70+
const QString elapsedText = tr("Scanned in %1 s").arg(elapsedMs * 1e-3f, 0, 'f', 1);
71+
72+
_statusLabel = new QLabel(elapsedText, this);
73+
_statusLabel->setStyleSheet("color: palette(placeholder-text);");
74+
layout->addWidget(_statusLabel);
75+
7076
_list->setHeaderLabels({
7177
tr("Name"),
7278
tr("Size"),
7379
tr("Modification date"),
7480
tr("Folder")
7581
});
76-
_list->header()->setSectionResizeMode(QHeaderView::ResizeToContents);
7782
_list->header()->setStretchLastSection(false);
7883
_list->setSortingEnabled(true);
7984
_list->sortByColumn(columns::Size, Qt::DescendingOrder);
@@ -114,4 +119,7 @@ void CFileStatsWindow::fillFileList(const FileStatistics& stats)
114119
}
115120

116121
_list->addTopLevelItems(items);
122+
123+
for (int col = 0; col < _list->columnCount(); ++col)
124+
_list->resizeColumnToContents(col);
117125
}

qt-app/src/tools/CFileStatsWindow.h

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,23 @@
22

33
#include <QMainWindow>
44

5+
#include <cstdint>
6+
7+
class CController;
58
struct FileStatistics;
9+
10+
class QLabel;
611
class QTreeWidget;
7-
class CController;
812

913
class CFileStatsWindow final : public QMainWindow
1014
{
1115
public:
12-
CFileStatsWindow(QWidget* parent, const FileStatistics& stats, CController& controller);
16+
CFileStatsWindow(QWidget* parent, const FileStatistics& stats, CController& controller, uint64_t elapsedMs);
1317

1418
private:
1519
void fillFileList(const FileStatistics& stats);
1620

1721
private:
1822
QTreeWidget* _list = nullptr;
23+
QLabel* _statusLabel = nullptr;
1924
};

0 commit comments

Comments
 (0)