-
Notifications
You must be signed in to change notification settings - Fork 1
/
mainwindow.cpp
121 lines (111 loc) · 2.49 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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
index = 0;
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_directory_button_clicked()
{
directory = QFileDialog::getExistingDirectory(this, tr("Open Directory"),
"/",
QFileDialog::ShowDirsOnly
| QFileDialog::DontResolveSymlinks);
if (directory != "")
ui->directory_input->setText(directory);
setup();
}
void MainWindow::on_save_button_clicked()
{
}
void MainWindow::on_back_button_clicked()
{
if (index != 0)
{
index--;
update();
}
}
void MainWindow::on_forward_button_clicked()
{
if (index < files.size() - 1)
{
index++;
update();
}
}
void MainWindow::setup()
{
index = 0;
directory = ui->directory_input->text();
QDir f(directory);
filters << "*.png" << "*.jpg" << "*.gif";
f.setNameFilters(filters);
files = f.entryList();
qDebug() << files;
if (files.size() > 0)
update();
}
void MainWindow::update()
{
QString txt = QString::number(files.size()) + " files to sort";
ui->image_count_label->setText(txt);
scene = new QGraphicsScene(this);
oimage = new QImage();
ui->image_view->setScene(scene);
oimage->load(directory + "/" + files.at(index));
if (files.at(index).endsWith(".gif"))
{
QLabel *gif_anim = new QLabel();
QMovie *movie = new QMovie(directory + "/" + files.at(index));
gif_anim->setMovie(movie);
movie->start();
QGraphicsProxyWidget *proxy = scene->addWidget(gif_anim);
ui->current_file_label->setText(files.at(index));
}
else if (oimage)
{
image = QPixmap::fromImage(*oimage);
scene->addPixmap(image);
scene->setSceneRect(image.rect());
ui->current_file_label->setText(files.at(index));
}
}
int MainWindow::show_question_box(QString message, QString omessage)
{
QMessageBox qbox;
qbox.setText(message);
qbox.setInformativeText(omessage);
qbox.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);
qbox.setDefaultButton(QMessageBox::Cancel);
return qbox.exec();
}
void MainWindow::on_delete_button_clicked()
{
if (files.size() > 0)
{
QString msg = "Are you sure you want to delete " + directory + "/" + files.at(index) + "?";
int ret = show_question_box(msg, "This process cannot be reverted.");
switch (ret)
{
case QMessageBox::Ok:
{
QFile::remove(directory + "/" + files.at(index));
setup();
break;
}
case QMessageBox::Cancel:
qDebug() << "cancelled";
break;
default:
qDebug() << "unknown";
break;
}
}
}