-
Notifications
You must be signed in to change notification settings - Fork 0
/
mainwindow.cpp
103 lines (81 loc) · 2.68 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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QFileDialog"
#include "nspsplitter.h"
#include "nsp.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->progressBar->setVisible(false);
}
MainWindow::~MainWindow()
{
delete ui;
}
/* get and display source Filepath, calculate and display estimated no. of parts */
void MainWindow::on_pushButton_clicked()
{
QFileDialog dialog(this);
dialog.setFileMode(QFileDialog::ExistingFile);
QString fileName = dialog.getOpenFileName(this,tr("Open NSP Source File"),
"",
"*.nsp");
ui->lineEdit->setText(fileName);
QString fileDir = fileName.left(fileName.lastIndexOf('/'));
ui->lineEdit_2->setText(fileDir);
NSPSplitter splitter;
NSP nsp(ui->lineEdit->text());
size_t filesize = nsp.size();
int parts = splitter.nspCalcParts(filesize);
QString no_of_parts = tr("Filesize: ") + QString::number(filesize/1024/1024) + "MB " +
tr("Estimated Number of Parts: ") + QString::number(parts);
ui->label_3->setText(no_of_parts);
}
void MainWindow::on_pushButton_3_clicked()
{
QString dir = QFileDialog::getExistingDirectory(this, tr("Select Save Directory"),
"",
QFileDialog::ShowDirsOnly |
QFileDialog::DontResolveSymlinks);
ui->lineEdit_2->setText(dir);
}
void MainWindow::on_pushButton_2_clicked()
{
NSPSplitter splitter;
QObject::connect(&splitter, &NSPSplitter::progress,
ui->progressBar, &QProgressBar::valueChanged);
NSP nsp;
if(nsp.setPath(ui->lineEdit->text())){
QMessageBox msgBox;
msgBox.setText(tr("Not a valid File selected!"));
msgBox.exec();
return;
}
if(splitter.setSavePath(ui->lineEdit_2->text())){
QMessageBox msgBox;
msgBox.setText(tr("Not a valid Save Path!"));
msgBox.exec();
return;
}
if(splitter.nspSplit(&nsp)){
QMessageBox msgBox;
msgBox.setText(tr(".nsp File too small - splitting not necessary!"));
msgBox.exec();
return;
}
}
void MainWindow::on_progressBar_valueChanged(int value)
{
if(ui->progressBar->isVisible() && (value < 100)){
ui->progressBar->setValue(value);
}
else if(!ui->progressBar->isVisible() && (value < 100) ){
ui->progressBar->setVisible(true);
}
else{
ui->progressBar->setVisible(false);
ui->progressBar->setValue(0);
}
}