-
Notifications
You must be signed in to change notification settings - Fork 0
/
MainWindow.cpp
100 lines (74 loc) · 3.26 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
//
// Created by Mirco Ceccarelli on 27/07/17.
//
#include <QDesktopWidget>
#include <QPainter>
#include "MainWindow.h"
MainWindow::MainWindow(LoadResources *resources_, QWidget *parent) : QMainWindow(parent), resources(resources_) {
resources->registerObserver(this);
this->setWindowTitle("Esercizio - Laboratorio di Programmazione - 2017");
this->setFixedSize(QSize(600, 400));
name = new QLabel("Mirco Ceccarelli", this);
name->setGeometry(QRect(QPoint(15, 15), QSize(200, 30)));
name->setAlignment(Qt::AlignLeft);
linkToGitHub = new QLabel("<a href=\"https://github.com/ocrim1996/EsLaboratorio\">Link GitHub</a>", this);
linkToGitHub->setOpenExternalLinks(true);
linkToGitHub->setGeometry(QRect(QPoint(485, 15), QSize(100, 30)));
linkToGitHub->setAlignment(Qt::AlignRight);
title = new QLabel("Classe che carica file di risorse e aggiorna una progress bar (con QT).", this);
title->setGeometry(QRect(QPoint(100, 60), QSize(400, 100)));
title->setWordWrap(true);
title->setAlignment(Qt::AlignCenter);
QFont font = title->font();
font.setPointSize(20);
title->setFont(font);
m_button = new QPushButton("Carica Risorse", this);
m_button->setGeometry(QRect(QPoint(175, 200), QSize(250, 30)));
progressBar = new QProgressBar(this);
progressBar->setGeometry(QRect(QPoint(150, 170), QSize(300, 30)));
text = new QTextEdit(this);
text->setGeometry(QRect(QPoint(50, 240), QSize(500, 140)));
text->setText("---> Pronto per caricare risorse\n");
text->setReadOnly(true);
QTextCursor c = text->textCursor();
c.movePosition(QTextCursor::End);
text->setTextCursor(c);
progressBar->setMinimum(0);
progressBar->setMaximum(1000);
progressBar->setValue(0);
//Associa il bottone alla funzione
connect(m_button, SIGNAL (released()), this, SLOT (loadResources()));
}
void MainWindow::update() {
if (resources->didLoadFile()) {
//Aggiorna Percentuale Progress Bar
progressBar->setValue(progressBar->value() + (1000/resources->getNumberOfResources()));
//Aggiorna Riquadro Testo
QString log = "✅ File '" + QString(resources->getFilename()) + QString("' caricato con successo (") + QString::number(resources->getFilesize()) + QString(" bytes).") + "\n";
text->append(log);
//Aggiorna Testo Bottone
QString percentText = QString::number(progressBar->value() / 10) + QString("% risorse caricate con successo!");
m_button->setText(percentText);
} else {
//Aggiorna Riquadro Testo
QString log = "❌ File '" + resources->getFilename() + QString(" non caricato!\n");
text->append(log);
}
};
void MainWindow::loadResources() {
vector<const char*> filenames;
filenames.push_back("logo.png");
filenames.push_back("ciao.jpg");
filenames.push_back("Jordan.png");
filenames.push_back("Pizza.jpeg");
filenames.push_back("Fiore.jpg");
filenames.push_back("Coldplay.jpg");
filenames.push_back("Canzone.mp3");
filenames.push_back("Firenze.jpg");
filenames.push_back("File.pdf");
filenames.push_back("Python.py");
filenames.push_back("Documento.tex");
filenames.push_back("Tavolo.jpg");
filenames.push_back("Word.docx");
resources->load(filenames);
}