-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathinjectdialog.cpp
77 lines (69 loc) · 2.15 KB
/
injectdialog.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
#include <QGraphicsScene>
#include "graphicspalettecoloritem.h"
#include "injectdialog.h"
#include "pngexportimport.h"
#include "ui_injectdialog.h"
#include <QDebug>
void createPaletteScene(QGraphicsScene* palScene, SNESPalette pal)
{
unsigned int j = 0;
unsigned int i = 0;
unsigned colPos = 0;
palScene->setBackgroundBrush(Qt::black);
foreach(SNESColor col, pal.colors)
{
GraphicsPaletteColorItem *newItem = new GraphicsPaletteColorItem();
newItem->color = col.rgb;
newItem->iColor = colPos;
newItem->setPos(i * newItem->boundingRect().width() + i, j * newItem->boundingRect().width() + j);
palScene->addItem(newItem);
i++;
colPos++;
if (i % 8 == 0) {
j++;
i = 0;
}
}
}
InjectDialog::InjectDialog(QWidget *parent, QString imgFile, const SNESPalette& originPal) :
QDialog(parent),
ui(new Ui::InjectDialog)
{
ui->setupUi(this);
ui->imageNameLabel->setText(imgFile);
/*QImage img(imgFile);*/
QPixmap pix;
pix.load(imgFile);
SNESPalette pal = paletteFromPNG(imgFile);
QGraphicsScene* imgPaletteScene = new QGraphicsScene(this);
QGraphicsScene* originalPaletteScene = new QGraphicsScene(this);
createPaletteScene(imgPaletteScene, pal);
createPaletteScene(originalPaletteScene, originPal);
QGraphicsScene* imgScene = new QGraphicsScene(this);
imgScene->addPixmap(pix);
imgScene->setSceneRect(pix.rect());
qDebug() << pix.rect();
ui->imageGraphicsView->setScene(imgScene);
ui->originalPaletteGraphicsView->setScene(originalPaletteScene);
ui->imagePalettegraphicsView->setScene(imgPaletteScene);
ui->imageGraphicsView->scale(3, 3);
ui->imageGraphicsView->centerOn(0, 0);
}
InjectDialog::~InjectDialog()
{
delete ui;
}
void InjectDialog::setCopyRomString(const QString &file)
{
ui->copyCheckBox->setText(tr("Work on a copy of the rom file : ") + file);
}
void InjectDialog::on_buttonBox_accepted()
{
useImagePalette = ui->replacePaletteCheckBox->isChecked();
copyRom = ui->copyCheckBox->isChecked();
accept();
}
void InjectDialog::on_buttonBox_rejected()
{
reject();
}