-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathmainwindow.cpp
62 lines (51 loc) · 2.01 KB
/
mainwindow.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QCommonStyle>
#include <QDesktopWidget>
#include <QDir>
#include <QFileDialog>
#include <QFileInfo>
#include <QMessageBox>
main_window::main_window(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
setGeometry(QStyle::alignedRect(Qt::LeftToRight, Qt::AlignCenter, size(), qApp->desktop()->availableGeometry()));
ui->treeWidget->header()->setSectionResizeMode(0, QHeaderView::Stretch);
ui->treeWidget->header()->setSectionResizeMode(1, QHeaderView::ResizeToContents);
QCommonStyle style;
ui->actionScan_Directory->setIcon(style.standardIcon(QCommonStyle::SP_DialogOpenButton));
ui->actionExit->setIcon(style.standardIcon(QCommonStyle::SP_DialogCloseButton));
ui->actionAbout->setIcon(style.standardIcon(QCommonStyle::SP_DialogHelpButton));
connect(ui->actionScan_Directory, &QAction::triggered, this, &main_window::select_directory);
connect(ui->actionExit, &QAction::triggered, this, &QWidget::close);
connect(ui->actionAbout, &QAction::triggered, this, &main_window::show_about_dialog);
scan_directory(QDir::homePath());
}
main_window::~main_window()
{}
void main_window::select_directory()
{
QString dir = QFileDialog::getExistingDirectory(this, "Select Directory for Scanning",
QString(), QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
scan_directory(dir);
}
void main_window::scan_directory(QString const& dir)
{
ui->treeWidget->clear();
setWindowTitle(QString("Directory Content - %1").arg(dir));
QDir d(dir);
QFileInfoList list = d.entryInfoList();
for (QFileInfo file_info : list)
{
QTreeWidgetItem* item = new QTreeWidgetItem(ui->treeWidget);
item->setText(0, file_info.fileName());
item->setText(1, QString::number(file_info.size()));
ui->treeWidget->addTopLevelItem(item);
}
}
void main_window::show_about_dialog()
{
QMessageBox::aboutQt(this);
}