-
Notifications
You must be signed in to change notification settings - Fork 0
/
mywidget.cpp
146 lines (131 loc) · 3.9 KB
/
mywidget.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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#include "mywidget.h"
MyWidget::MyWidget(QString sec, QString fts)
{
this->section = sec;
this->fileToSave = fts;
}
Qtype MyWidget::convertType(QString typ)
{
if (QString::compare(typ, "QLineEdit", Qt::CaseInsensitive)) return QLINEEDIT;
else if (QString::compare(typ, "QLabel", Qt::CaseInsensitive)) return QLABEL;
else if (QString::compare(typ, "QComboBox", Qt::CaseInsensitive)) return QCOMBOBOX;
else if (QString::compare(typ, "QSpinBox", Qt::CaseInsensitive)) return QSPINBOX;
else if (QString::compare(typ, "QCheckBox", Qt::CaseInsensitive)) return QCHECKBOX;
else if (QString::compare(typ, "QRadioButton", Qt::CaseInsensitive)) return QRADIOBUTTON;
else if (QString::compare(typ, "QPlainTextEdit", Qt::CaseInsensitive)) return QPLAINTEXTEDIT;
return QLINEEDIT;
}
QString MyWidget::getSection()
{
return this->section;
}
QString MyWidget::getFileToSave()
{
return this->fileToSave;
}
void MyWidget::setSection(QString sec)
{
this->section = sec;
}
void MyWidget::setFileToSave(QString fts)
{
this->fileToSave= fts;
}
void MyWidget::writeInFile(QString filename, QString text)
{
QFile file(filename);
if (file.open(QFile::WriteOnly | QFile::Text)) {
QTextStream out(&file);
out << text;
file.flush();
file.close();
} else {
qDebug() << "couldn't open file " + filename;
}
}
QString MyWidget::findImageWithExtension(QString filename)
{
if (filename.last(1) == "/") {
return "";
}
if (QFile::exists(filename + ".png")) {
return filename + ".png";
} else if (QFile::exists(filename + ".jpg")) {
return filename + ".jpg";
} else if (QFile::exists(filename + ".jpeg")) {
return filename + ".jpeg";
} else if (QFile::exists(filename + ".gif")) {
return filename + ".gif";
} else if (QFile::exists(filename + ".jfif")) {
return filename + ".jfif";
}
return "";
}
void MyWidget::copyFile(QString source, QString destiny)
{
QFile::remove(destiny);
QFile::copy(source, destiny);
updateFileTimestamp(destiny);
return;
}
MyWidget::~MyWidget()
{
return;
}
QString MyWidget::getRandomImageName(QString defaultDir)
{
QDir directory(defaultDir);
QStringList imagesList = directory.entryList(QDir::Files);
int max = imagesList.size();
QRandomGenerator::global()->generate();
if (max > 0) {
int picked = QRandomGenerator::global()->bounded(max);
if (picked > -1) {
return defaultDir + "/" + imagesList.at(picked);
}
}
return "Nenhuma imagem padrão para escolher";
}
void MyWidget::showImageInLabel(QString imageName, QLabel *logo, Qt::AspectRatioMode aspectRatioMode, bool mirrored)
{
QImage image;
bool valid = image.load(imageName);
if (valid) {
image = image.scaled(logo->width(), logo->height(), aspectRatioMode, Qt::SmoothTransformation);
if (mirrored) {
image.mirror(1, 1);
}
logo->setPixmap(QPixmap::fromImage(image));
logo->setScaledContents( true );
} else {
qDebug() << "couldn't load image " + imageName;
}
}
void MyWidget::ignoreAspectInLabel(QString imageName, QLabel *logo, bool mirrored)
{
if (mirrored) {
showImageInLabel(imageName, logo, Qt::IgnoreAspectRatio, mirrored);
} else {
showImageInLabel(imageName, logo, Qt::IgnoreAspectRatio);
}
}
void MyWidget::keepAspectInLabel(QString imageName, QLabel *logo, bool mirrored)
{
if (mirrored) {
showImageInLabel(imageName, logo, Qt::KeepAspectRatio, mirrored);
} else {
showImageInLabel(imageName, logo, Qt::KeepAspectRatio);
}
}
void MyWidget::updateFileTimestamp(QString filePath)
{
QFile file(filePath);
if (!file.open(QIODevice::ReadWrite)) {
return;
}
const quint64 size = file.size();
file.seek(size);
file.write( QByteArray(1, '0') );
file.resize(size);
return;
}