-
Notifications
You must be signed in to change notification settings - Fork 15
/
FsPreviewWidget.cpp
107 lines (94 loc) · 3.27 KB
/
FsPreviewWidget.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
/****************************************************************************
** Deling Final Fantasy VIII Field Editor
** Copyright (C) 2009-2012 Arzel Jérôme <[email protected]>
**
** This program is free software: you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, either version 3 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
#include "FsPreviewWidget.h"
#include "BGPreview2.h"
FsPreviewWidget::FsPreviewWidget(QWidget *parent) :
QStackedWidget(parent)
{
addWidget(new QWidget(this));
addWidget(imageWidget());
addWidget(textWidget());
clearPreview();
}
QWidget *FsPreviewWidget::imageWidget()
{
QWidget *ret = new QWidget(this);
imageSelect = new QComboBox(ret);
palSelect = new QComboBox(ret);
scrollArea = new QScrollArea(ret);
scrollArea->setAlignment(Qt::AlignCenter);
scrollArea->setFrameShape(QFrame::NoFrame);
QVBoxLayout *layout = new QVBoxLayout(ret);
layout->setContentsMargins(QMargins());
layout->addWidget(imageSelect, 0, Qt::AlignCenter);
layout->addWidget(palSelect, 0, Qt::AlignCenter);
layout->addWidget(scrollArea);
connect(imageSelect, SIGNAL(currentIndexChanged(int)), SIGNAL(currentImageChanged(int)));
connect(palSelect, SIGNAL(currentIndexChanged(int)), SIGNAL(currentPaletteChanged(int)));
return ret;
}
QWidget *FsPreviewWidget::textWidget()
{
QPlainTextEdit *textEdit = new QPlainTextEdit(this);
textEdit->setReadOnly(true);
textEdit->setFrameShape(QFrame::NoFrame);
return textEdit;
}
void FsPreviewWidget::clearPreview()
{
setCurrentIndex(EmptyPage);
}
void FsPreviewWidget::imagePreview(const QPixmap &image, const QString &name,
int palID, int palCount, int imageID,
int imageCount)
{
setCurrentIndex(ImagePage);
BGPreview2 *lbl = new BGPreview2();
lbl->setPixmap(image);
lbl->setName(name);
scrollArea->setWidget(lbl);
imageSelect->blockSignals(true);
imageSelect->clear();
if(imageCount > 1) {
imageSelect->setVisible(true);
for(int i=0 ; i<imageCount ; ++i) {
imageSelect->addItem(tr("Image %1").arg(i));
}
imageSelect->setCurrentIndex(imageID);
} else {
imageSelect->setVisible(false);
}
imageSelect->blockSignals(false);
palSelect->blockSignals(true);
palSelect->clear();
if(palCount > 1) {
palSelect->setVisible(true);
for(int i=0 ; i<palCount ; ++i) {
palSelect->addItem(tr("Palette %1").arg(i));
}
palSelect->setCurrentIndex(palID);
} else {
palSelect->setVisible(false);
}
palSelect->blockSignals(false);
}
void FsPreviewWidget::textPreview(const QString &text)
{
setCurrentIndex(TextPage);
((QPlainTextEdit *)currentWidget())->setPlainText(text);
}