Change sprite viewer layout to be more compact.
This commit is contained in:
parent
b8cb24499f
commit
867ad36a2d
|
@ -139,7 +139,7 @@ ppuViewerDialog_t::ppuViewerDialog_t(QWidget *parent)
|
||||||
QActionGroup *group;
|
QActionGroup *group;
|
||||||
QMenu *fileMenu, *viewMenu, *colorMenu, *optMenu, *subMenu;
|
QMenu *fileMenu, *viewMenu, *colorMenu, *optMenu, *subMenu;
|
||||||
QAction *act;
|
QAction *act;
|
||||||
char stmp[64];
|
//char stmp[64];
|
||||||
int useNativeMenuBar;
|
int useNativeMenuBar;
|
||||||
|
|
||||||
ppuViewWindow = this;
|
ppuViewWindow = this;
|
||||||
|
@ -211,7 +211,7 @@ ppuViewerDialog_t::ppuViewerDialog_t(QWidget *parent)
|
||||||
grid->addLayout( hbox, 0, 1, Qt::AlignRight );
|
grid->addLayout( hbox, 0, 1, Qt::AlignRight );
|
||||||
|
|
||||||
hbox = new QHBoxLayout();
|
hbox = new QHBoxLayout();
|
||||||
scanLineEdit = new QLineEdit();
|
scanLineEdit = new QSpinBox();
|
||||||
hbox->addWidget( new QLabel( tr("Display on Scanline:") ) );
|
hbox->addWidget( new QLabel( tr("Display on Scanline:") ) );
|
||||||
hbox->addWidget( scanLineEdit );
|
hbox->addWidget( scanLineEdit );
|
||||||
grid->addLayout( hbox, 1, 1, Qt::AlignRight );
|
grid->addLayout( hbox, 1, 1, Qt::AlignRight );
|
||||||
|
@ -231,12 +231,10 @@ ppuViewerDialog_t::ppuViewerDialog_t(QWidget *parent)
|
||||||
patternView[1]->setTileLabel( tileLabel[1] );
|
patternView[1]->setTileLabel( tileLabel[1] );
|
||||||
paletteView->setTileLabel( paletteFrame );
|
paletteView->setTileLabel( paletteFrame );
|
||||||
|
|
||||||
scanLineEdit->setMaxLength( 3 );
|
scanLineEdit->setRange( 0, 256 );
|
||||||
scanLineEdit->setInputMask( ">900;" );
|
scanLineEdit->setValue( PPUViewScanline );
|
||||||
sprintf( stmp, "%i", PPUViewScanline );
|
|
||||||
scanLineEdit->setText( tr(stmp) );
|
|
||||||
|
|
||||||
connect( scanLineEdit, SIGNAL(textEdited(const QString &)), this, SLOT(scanLineChanged(const QString &)));
|
connect( scanLineEdit, SIGNAL(valueChanged(int)), this, SLOT(scanLineChanged(int)));
|
||||||
|
|
||||||
refreshSlider->setMinimum( 0);
|
refreshSlider->setMinimum( 0);
|
||||||
refreshSlider->setMaximum(25);
|
refreshSlider->setMaximum(25);
|
||||||
|
@ -395,19 +393,17 @@ void ppuViewerDialog_t::periodicUpdate(void)
|
||||||
}
|
}
|
||||||
patternView[0]->updateCycleCounter();
|
patternView[0]->updateCycleCounter();
|
||||||
patternView[1]->updateCycleCounter();
|
patternView[1]->updateCycleCounter();
|
||||||
|
|
||||||
|
if ( scanLineEdit->value() != PPUViewScanline )
|
||||||
|
{
|
||||||
|
scanLineEdit->setValue( PPUViewScanline );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//----------------------------------------------------
|
//----------------------------------------------------
|
||||||
void ppuViewerDialog_t::scanLineChanged( const QString &txt )
|
void ppuViewerDialog_t::scanLineChanged(int value)
|
||||||
{
|
{
|
||||||
std::string s;
|
PPUViewScanline = value;
|
||||||
|
//printf("ScanLine: %i\n", PPUViewScanline );
|
||||||
s = txt.toStdString();
|
|
||||||
|
|
||||||
if ( s.size() > 0 )
|
|
||||||
{
|
|
||||||
PPUViewScanline = strtoul( s.c_str(), NULL, 10 );
|
|
||||||
}
|
|
||||||
//printf("ScanLine: '%s' %i\n", s.c_str(), PPUViewScanline );
|
|
||||||
}
|
}
|
||||||
//----------------------------------------------------
|
//----------------------------------------------------
|
||||||
void ppuViewerDialog_t::sprite8x16Changed0(int state)
|
void ppuViewerDialog_t::sprite8x16Changed0(int state)
|
||||||
|
@ -2536,9 +2532,9 @@ spriteViewerDialog_t::spriteViewerDialog_t(QWidget *parent)
|
||||||
: QDialog(parent, Qt::Window)
|
: QDialog(parent, Qt::Window)
|
||||||
{
|
{
|
||||||
QMenuBar *menuBar;
|
QMenuBar *menuBar;
|
||||||
QVBoxLayout *mainLayout, *vbox, *vbox1, *vbox2, *vbox3, *vbox4;
|
QVBoxLayout *mainLayout, *vbox, *vbox1, *vbox2, *vbox3;
|
||||||
QHBoxLayout *hbox, *hbox1, *hbox2;
|
QHBoxLayout *hbox, *hbox1, *hbox2;
|
||||||
QGridLayout *infoGrid;
|
QGridLayout *grid;
|
||||||
QGroupBox *frame;
|
QGroupBox *frame;
|
||||||
QLabel *lbl;
|
QLabel *lbl;
|
||||||
QActionGroup *group;
|
QActionGroup *group;
|
||||||
|
@ -2583,32 +2579,32 @@ spriteViewerDialog_t::spriteViewerDialog_t(QWidget *parent)
|
||||||
viewMenu->addAction(act);
|
viewMenu->addAction(act);
|
||||||
|
|
||||||
// View -> Show Preview
|
// View -> Show Preview
|
||||||
act = new QAction(tr("Show &Preview"), this);
|
//act = new QAction(tr("Show &Preview"), this);
|
||||||
//act->setShortcut(QKeySequence::Close);
|
//act->setShortcut(QKeySequence::Close);
|
||||||
act->setCheckable(true);
|
//act->setCheckable(true);
|
||||||
act->setStatusTip(tr("Show Preview Area"));
|
//act->setStatusTip(tr("Show Preview Area"));
|
||||||
connect(act, SIGNAL(triggered(bool)), this, SLOT(togglePreviewVis(bool)) );
|
//connect(act, SIGNAL(triggered(bool)), this, SLOT(togglePreviewVis(bool)) );
|
||||||
|
//
|
||||||
viewMenu->addAction(act);
|
//viewMenu->addAction(act);
|
||||||
|
|
||||||
// View -> Preview Size
|
// View -> Preview Size
|
||||||
subMenu = viewMenu->addMenu(tr("Preview &Size"));
|
//subMenu = viewMenu->addMenu(tr("Preview &Size"));
|
||||||
group = new QActionGroup(this);
|
//group = new QActionGroup(this);
|
||||||
group->setExclusive(true);
|
//group->setExclusive(true);
|
||||||
|
|
||||||
act = new QAction(tr("&1x"), this);
|
//act = new QAction(tr("&1x"), this);
|
||||||
act->setCheckable(true);
|
//act->setCheckable(true);
|
||||||
act->setChecked(true);
|
//act->setChecked(true);
|
||||||
group->addAction(act);
|
//group->addAction(act);
|
||||||
subMenu->addAction(act);
|
//subMenu->addAction(act);
|
||||||
connect(act, SIGNAL(triggered()), this, SLOT(setPreviewSize1x(void)) );
|
//connect(act, SIGNAL(triggered()), this, SLOT(setPreviewSize1x(void)) );
|
||||||
|
|
||||||
act = new QAction(tr("&2x"), this);
|
//act = new QAction(tr("&2x"), this);
|
||||||
act->setCheckable(true);
|
//act->setCheckable(true);
|
||||||
act->setChecked(false);
|
//act->setChecked(false);
|
||||||
group->addAction(act);
|
//group->addAction(act);
|
||||||
subMenu->addAction(act);
|
//subMenu->addAction(act);
|
||||||
connect(act, SIGNAL(triggered()), this, SLOT(setPreviewSize2x(void)) );
|
//connect(act, SIGNAL(triggered()), this, SLOT(setPreviewSize2x(void)) );
|
||||||
|
|
||||||
// Focus Policy
|
// Focus Policy
|
||||||
optMenu = menuBar->addMenu(tr("&Options"));
|
optMenu = menuBar->addMenu(tr("&Options"));
|
||||||
|
@ -2656,141 +2652,152 @@ spriteViewerDialog_t::spriteViewerDialog_t(QWidget *parent)
|
||||||
|
|
||||||
setLayout( mainLayout );
|
setLayout( mainLayout );
|
||||||
|
|
||||||
oamView = new oamPatternView_t(this);
|
oamView = new oamPatternView_t(this);
|
||||||
|
tileView = new oamTileView_t(this);
|
||||||
hbox1 = new QHBoxLayout();
|
palView = new oamPaletteView_t(this);
|
||||||
hbox1->addWidget( oamView );
|
preView = new oamPreview_t(this);
|
||||||
|
|
||||||
mainLayout->addLayout( hbox1 );
|
|
||||||
|
|
||||||
vbox1 = new QVBoxLayout();
|
|
||||||
vbox2 = new QVBoxLayout();
|
|
||||||
hbox1->addLayout( vbox1, 1);
|
|
||||||
|
|
||||||
hbox = new QHBoxLayout();
|
|
||||||
vbox1->addLayout( hbox );
|
|
||||||
|
|
||||||
useSprRam = new QRadioButton( tr("Sprite RAM") );
|
useSprRam = new QRadioButton( tr("Sprite RAM") );
|
||||||
useCpuPag = new QRadioButton( tr("CPU Page #") );
|
useCpuPag = new QRadioButton( tr("CPU Page #") );
|
||||||
cpuPagIdx = new QSpinBox(this);
|
cpuPagIdx = new QSpinBox(this);
|
||||||
|
|
||||||
|
scanLineEdit = new QSpinBox(this);
|
||||||
|
scanLineEdit->setRange( 0, 256 );
|
||||||
|
scanLineEdit->setValue( PPUViewScanline );
|
||||||
|
|
||||||
|
connect( scanLineEdit, SIGNAL(valueChanged(int)), this, SLOT(scanLineChanged(int)));
|
||||||
|
|
||||||
useSprRam->setChecked(true);
|
useSprRam->setChecked(true);
|
||||||
useSprRam->setEnabled(false); // TODO Implement CPU paging option
|
useSprRam->setEnabled(false); // TODO Implement CPU paging option
|
||||||
cpuPagIdx->setEnabled(false);
|
cpuPagIdx->setEnabled(false);
|
||||||
useCpuPag->setEnabled(false);
|
useCpuPag->setEnabled(false);
|
||||||
|
|
||||||
|
hFlipBox = new QCheckBox( tr("Horizontal Flip") );
|
||||||
|
hFlipBox->setFocusPolicy(Qt::NoFocus);
|
||||||
|
|
||||||
|
vFlipBox = new QCheckBox( tr("Vertical Flip") );
|
||||||
|
vFlipBox->setFocusPolicy(Qt::NoFocus);
|
||||||
|
|
||||||
|
bgPrioBox = new QCheckBox( tr("Background Priority") );
|
||||||
|
bgPrioBox->setFocusPolicy(Qt::NoFocus);
|
||||||
|
|
||||||
|
spriteIndexBox = new QLineEdit();
|
||||||
|
spriteIndexBox->setFont(font);
|
||||||
|
spriteIndexBox->setReadOnly(true);
|
||||||
|
spriteIndexBox->setMinimumWidth( 4 * pxCharWidth );
|
||||||
|
|
||||||
|
tileAddrBox = new QLineEdit();
|
||||||
|
tileAddrBox->setFont(font);
|
||||||
|
tileAddrBox->setReadOnly(true);
|
||||||
|
tileAddrBox->setMinimumWidth( 6 * pxCharWidth );
|
||||||
|
|
||||||
|
tileIndexBox = new QLineEdit();
|
||||||
|
tileIndexBox->setFont(font);
|
||||||
|
tileIndexBox->setReadOnly(true);
|
||||||
|
tileIndexBox->setMinimumWidth( 4 * pxCharWidth );
|
||||||
|
|
||||||
|
palAddrBox = new QLineEdit();
|
||||||
|
palAddrBox->setFont(font);
|
||||||
|
palAddrBox->setReadOnly(true);
|
||||||
|
palAddrBox->setMinimumWidth( 6 * pxCharWidth );
|
||||||
|
|
||||||
|
posBox = new QLineEdit();
|
||||||
|
posBox->setFont(font);
|
||||||
|
posBox->setReadOnly(true);
|
||||||
|
posBox->setMinimumWidth( 10 * pxCharWidth );
|
||||||
|
|
||||||
|
showPosHex = new QCheckBox( tr("Show Position in Hex") );
|
||||||
|
|
||||||
|
hbox1 = new QHBoxLayout();
|
||||||
|
vbox3 = new QVBoxLayout();
|
||||||
|
hbox = new QHBoxLayout();
|
||||||
|
hbox1->addLayout( vbox3 );
|
||||||
|
vbox3->addWidget( oamView );
|
||||||
|
vbox3->addLayout( hbox );
|
||||||
|
hbox->addWidget( new QLabel( tr("Display on Scan Line:") ), 1 );
|
||||||
|
hbox->addWidget( scanLineEdit, 1 );
|
||||||
|
hbox->addStretch(5);
|
||||||
|
|
||||||
|
mainLayout->addLayout( hbox1 );
|
||||||
|
|
||||||
|
vbox1 = new QVBoxLayout();
|
||||||
|
hbox1->addLayout( vbox1);
|
||||||
|
|
||||||
|
vbox2 = new QVBoxLayout();
|
||||||
|
|
||||||
|
hbox = new QHBoxLayout();
|
||||||
|
vbox1->addLayout( hbox, 1 );
|
||||||
|
|
||||||
hbox->addWidget( new QLabel( tr("Data Source:") ) );
|
hbox->addWidget( new QLabel( tr("Data Source:") ) );
|
||||||
hbox->addWidget( useSprRam );
|
hbox->addWidget( useSprRam );
|
||||||
hbox->addWidget( useCpuPag );
|
hbox->addWidget( useCpuPag );
|
||||||
hbox->addWidget( cpuPagIdx );
|
hbox->addWidget( cpuPagIdx );
|
||||||
|
|
||||||
frame = new QGroupBox( tr("Sprite Info") );
|
frame = new QGroupBox( tr("Sprite Info") );
|
||||||
infoGrid = new QGridLayout();
|
grid = new QGridLayout();
|
||||||
vbox1->addWidget( frame );
|
vbox1->addWidget( frame, 1 );
|
||||||
frame->setLayout( vbox2 );
|
frame->setLayout( vbox2 );
|
||||||
//vbox2->addLayout( infoGrid );
|
|
||||||
|
|
||||||
lbl = new QLabel( tr("Sprite Index:") );
|
|
||||||
spriteIndexBox = new QLineEdit();
|
|
||||||
spriteIndexBox->setFont(font);
|
|
||||||
spriteIndexBox->setReadOnly(true);
|
|
||||||
spriteIndexBox->setMinimumWidth( 4 * pxCharWidth );
|
|
||||||
infoGrid->addWidget( lbl, 0, 0 );
|
|
||||||
infoGrid->addWidget( spriteIndexBox, 0, 1 );
|
|
||||||
|
|
||||||
lbl = new QLabel( tr("Tile Address:") );
|
|
||||||
tileAddrBox = new QLineEdit();
|
|
||||||
tileAddrBox->setFont(font);
|
|
||||||
tileAddrBox->setReadOnly(true);
|
|
||||||
tileAddrBox->setMinimumWidth( 6 * pxCharWidth );
|
|
||||||
infoGrid->addWidget( lbl, 1, 0 );
|
|
||||||
infoGrid->addWidget( tileAddrBox, 1, 1 );
|
|
||||||
|
|
||||||
lbl = new QLabel( tr("Tile Index:") );
|
|
||||||
tileIndexBox = new QLineEdit();
|
|
||||||
tileIndexBox->setFont(font);
|
|
||||||
tileIndexBox->setReadOnly(true);
|
|
||||||
tileIndexBox->setMinimumWidth( 4 * pxCharWidth );
|
|
||||||
infoGrid->addWidget( lbl, 2, 0 );
|
|
||||||
infoGrid->addWidget( tileIndexBox, 2, 1 );
|
|
||||||
|
|
||||||
lbl = new QLabel( tr("Palette Address:") );
|
|
||||||
palAddrBox = new QLineEdit();
|
|
||||||
palAddrBox->setFont(font);
|
|
||||||
palAddrBox->setReadOnly(true);
|
|
||||||
palAddrBox->setMinimumWidth( 6 * pxCharWidth );
|
|
||||||
infoGrid->addWidget( lbl, 3, 0 );
|
|
||||||
infoGrid->addWidget( palAddrBox, 3, 1 );
|
|
||||||
|
|
||||||
hbox2 = new QHBoxLayout();
|
hbox2 = new QHBoxLayout();
|
||||||
vbox3 = new QVBoxLayout();
|
|
||||||
frame = new QGroupBox( tr("Tile:") );
|
frame = new QGroupBox( tr("Tile:") );
|
||||||
vbox = new QVBoxLayout();
|
hbox = new QHBoxLayout();
|
||||||
tileView = new oamTileView_t(this);
|
frame->setLayout( hbox );
|
||||||
frame->setLayout( vbox );
|
hbox->addWidget( tileView );
|
||||||
vbox->addWidget( tileView );
|
|
||||||
vbox2->addLayout( hbox2 );
|
vbox2->addLayout( hbox2 );
|
||||||
vbox3->addWidget( frame, 4 );
|
hbox2->addWidget( frame );
|
||||||
hbox2->addLayout( vbox3, 1 );
|
hbox2->addLayout( grid );
|
||||||
|
|
||||||
frame = new QGroupBox( tr("Palette:") );
|
|
||||||
vbox = new QVBoxLayout();
|
vbox = new QVBoxLayout();
|
||||||
vbox4 = new QVBoxLayout();
|
hbox->addLayout( vbox );
|
||||||
vbox4->addLayout( infoGrid );
|
|
||||||
hbox2->addLayout( vbox4, 1 );
|
|
||||||
frame->setLayout( vbox );
|
|
||||||
palView = new oamPaletteView_t(this);
|
|
||||||
vbox->addWidget( palView );
|
|
||||||
vbox3->addWidget( frame, 1 );
|
|
||||||
|
|
||||||
lbl = new QLabel( tr("Position (X,Y):") );
|
|
||||||
posBox = new QLineEdit();
|
|
||||||
posBox->setFont(font);
|
|
||||||
posBox->setReadOnly(true);
|
|
||||||
posBox->setMinimumWidth( 10 * pxCharWidth );
|
|
||||||
infoGrid->addWidget( lbl, 4, 0 );
|
|
||||||
infoGrid->addWidget( posBox, 4, 1 );
|
|
||||||
|
|
||||||
showPosHex = new QCheckBox( tr("Show Position in Hex") );
|
vbox->addWidget( hFlipBox );
|
||||||
vbox4->addWidget( showPosHex, 1 );
|
|
||||||
|
|
||||||
hFlipBox = new QCheckBox( tr("Horizontal Flip") );
|
vbox->addWidget( vFlipBox );
|
||||||
hFlipBox->setFocusPolicy(Qt::NoFocus);
|
|
||||||
vbox4->addWidget( hFlipBox, 1 );
|
|
||||||
|
|
||||||
vFlipBox = new QCheckBox( tr("Vertical Flip") );
|
vbox->addWidget( bgPrioBox );
|
||||||
vFlipBox->setFocusPolicy(Qt::NoFocus);
|
|
||||||
vbox4->addWidget( vFlipBox, 1 );
|
|
||||||
|
|
||||||
bgPrioBox = new QCheckBox( tr("Background Priority") );
|
frame = new QGroupBox( tr("Palette:") );
|
||||||
bgPrioBox->setFocusPolicy(Qt::NoFocus);
|
hbox = new QHBoxLayout();
|
||||||
vbox4->addWidget( bgPrioBox, 1 );
|
hbox->addWidget( palView );
|
||||||
|
frame->setLayout( hbox );
|
||||||
vbox4->addStretch(10);
|
vbox->addWidget( frame );
|
||||||
|
|
||||||
frame = new QGroupBox( tr("Preview:") );
|
frame = new QGroupBox( tr("Preview:") );
|
||||||
vbox = new QVBoxLayout();
|
vbox = new QVBoxLayout();
|
||||||
preView = new oamPreview_t(this);
|
|
||||||
frame->setLayout( vbox );
|
|
||||||
hbox1->addWidget( frame );
|
|
||||||
vbox->addWidget( preView );
|
vbox->addWidget( preView );
|
||||||
previewFrame = frame;
|
frame->setLayout( vbox );
|
||||||
previewFrame->setMaximumWidth(0);
|
vbox1->addWidget( frame, 10 );
|
||||||
|
|
||||||
previewAnimation = new QPropertyAnimation( previewFrame, "maximumWidth", this);
|
|
||||||
previewAnimation->setDuration(500);
|
|
||||||
previewAnimation->setStartValue(0);
|
|
||||||
previewAnimation->setEndValue(600);
|
|
||||||
previewAnimation->setEasingCurve( QEasingCurve::InOutCirc );
|
|
||||||
|
|
||||||
connect( previewAnimation, SIGNAL(valueChanged(const QVariant &)), this, SLOT(previewAnimWidthChange(const QVariant &)));
|
lbl = new QLabel( tr("Sprite Index:") );
|
||||||
connect( previewAnimation, SIGNAL(finished(void)), this, SLOT(previewAnimResizeDone(void)) );
|
grid->addWidget( lbl, 0, 0 );
|
||||||
|
grid->addWidget( spriteIndexBox, 0, 1 );
|
||||||
|
|
||||||
|
lbl = new QLabel( tr("Tile Address:") );
|
||||||
|
grid->addWidget( lbl, 1, 0 );
|
||||||
|
grid->addWidget( tileAddrBox, 1, 1 );
|
||||||
|
|
||||||
|
lbl = new QLabel( tr("Tile Index:") );
|
||||||
|
grid->addWidget( lbl, 2, 0 );
|
||||||
|
grid->addWidget( tileIndexBox, 2, 1 );
|
||||||
|
|
||||||
|
lbl = new QLabel( tr("Palette Address:") );
|
||||||
|
grid->addWidget( lbl, 3, 0 );
|
||||||
|
grid->addWidget( palAddrBox, 3, 1 );
|
||||||
|
|
||||||
|
lbl = new QLabel( tr("Position (X,Y):") );
|
||||||
|
grid->addWidget( lbl, 4, 0 );
|
||||||
|
grid->addWidget( posBox, 4, 1 );
|
||||||
|
|
||||||
|
grid->addWidget( showPosHex, 5, 0, 1, 2 );
|
||||||
|
|
||||||
updateTimer = new QTimer( this );
|
updateTimer = new QTimer( this );
|
||||||
|
|
||||||
connect( updateTimer, &QTimer::timeout, this, &spriteViewerDialog_t::periodicUpdate );
|
connect( updateTimer, &QTimer::timeout, this, &spriteViewerDialog_t::periodicUpdate );
|
||||||
|
|
||||||
updateTimer->start( 33 ); // 30hz
|
updateTimer->start( 33 ); // 30hz
|
||||||
|
|
||||||
|
resize( minimumSizeHint() );
|
||||||
}
|
}
|
||||||
//----------------------------------------------------
|
//----------------------------------------------------
|
||||||
spriteViewerDialog_t::~spriteViewerDialog_t(void)
|
spriteViewerDialog_t::~spriteViewerDialog_t(void)
|
||||||
|
@ -2831,54 +2838,10 @@ void spriteViewerDialog_t::toggleGridVis(void)
|
||||||
oamView->setGridVisibility( !oamView->getGridVisibility() );
|
oamView->setGridVisibility( !oamView->getGridVisibility() );
|
||||||
}
|
}
|
||||||
//----------------------------------------------------
|
//----------------------------------------------------
|
||||||
void spriteViewerDialog_t::setPreviewSize1x(void)
|
void spriteViewerDialog_t::scanLineChanged(int value)
|
||||||
{
|
{
|
||||||
preView->setMinScale(1);
|
PPUViewScanline = value;
|
||||||
|
//printf("ScanLine: %i\n", PPUViewScanline );
|
||||||
if ( previewFrame->width() > 300 )
|
|
||||||
{
|
|
||||||
previewAnimation->setStartValue( previewFrame->width() );
|
|
||||||
previewAnimation->setEndValue(300);
|
|
||||||
previewAnimation->start();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//----------------------------------------------------
|
|
||||||
void spriteViewerDialog_t::setPreviewSize2x(void)
|
|
||||||
{
|
|
||||||
preView->setMinScale(2);
|
|
||||||
|
|
||||||
if ( (previewFrame->width() > 100) && (previewFrame->width() < 600) )
|
|
||||||
{
|
|
||||||
previewAnimation->setStartValue( previewFrame->width() );
|
|
||||||
previewAnimation->setEndValue(600);
|
|
||||||
previewAnimation->start();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//----------------------------------------------------
|
|
||||||
void spriteViewerDialog_t::togglePreviewVis(bool state)
|
|
||||||
{
|
|
||||||
if ( state )
|
|
||||||
{
|
|
||||||
previewAnimation->setStartValue(0);
|
|
||||||
previewAnimation->setEndValue(600);
|
|
||||||
previewAnimation->start();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
previewAnimation->setStartValue( previewFrame->width() );
|
|
||||||
previewAnimation->setEndValue(0);
|
|
||||||
previewAnimation->start();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//----------------------------------------------------
|
|
||||||
void spriteViewerDialog_t::previewAnimWidthChange(const QVariant &value)
|
|
||||||
{
|
|
||||||
resize( minimumSizeHint() );
|
|
||||||
}
|
|
||||||
//----------------------------------------------------
|
|
||||||
void spriteViewerDialog_t::previewAnimResizeDone(void)
|
|
||||||
{
|
|
||||||
resize( minimumSizeHint() );
|
|
||||||
}
|
}
|
||||||
//----------------------------------------------------
|
//----------------------------------------------------
|
||||||
void spriteViewerDialog_t::periodicUpdate(void)
|
void spriteViewerDialog_t::periodicUpdate(void)
|
||||||
|
@ -2886,6 +2849,8 @@ void spriteViewerDialog_t::periodicUpdate(void)
|
||||||
int idx;
|
int idx;
|
||||||
char stmp[32];
|
char stmp[32];
|
||||||
|
|
||||||
|
//return;
|
||||||
|
|
||||||
idx = oamView->getSpriteIndex();
|
idx = oamView->getSpriteIndex();
|
||||||
|
|
||||||
sprintf( stmp, "$%02X", idx );
|
sprintf( stmp, "$%02X", idx );
|
||||||
|
@ -2910,6 +2875,11 @@ void spriteViewerDialog_t::periodicUpdate(void)
|
||||||
}
|
}
|
||||||
posBox->setText( tr(stmp) );
|
posBox->setText( tr(stmp) );
|
||||||
|
|
||||||
|
if ( scanLineEdit->value() != PPUViewScanline )
|
||||||
|
{
|
||||||
|
scanLineEdit->setValue( PPUViewScanline );
|
||||||
|
}
|
||||||
|
|
||||||
hFlipBox->setChecked( oamPattern.sprite[idx].hFlip );
|
hFlipBox->setChecked( oamPattern.sprite[idx].hFlip );
|
||||||
vFlipBox->setChecked( oamPattern.sprite[idx].vFlip );
|
vFlipBox->setChecked( oamPattern.sprite[idx].vFlip );
|
||||||
bgPrioBox->setChecked( oamPattern.sprite[idx].pri );
|
bgPrioBox->setChecked( oamPattern.sprite[idx].pri );
|
||||||
|
@ -2964,6 +2934,21 @@ int oamPatternView_t::heightForWidth(int w) const
|
||||||
return 2*w;
|
return 2*w;
|
||||||
}
|
}
|
||||||
//----------------------------------------------------
|
//----------------------------------------------------
|
||||||
|
QSize oamPatternView_t::minimumSizeHint(void) const
|
||||||
|
{
|
||||||
|
return QSize(256,512);
|
||||||
|
}
|
||||||
|
//----------------------------------------------------
|
||||||
|
QSize oamPatternView_t::maximumSizeHint(void) const
|
||||||
|
{
|
||||||
|
return QSize(512,1024);
|
||||||
|
}
|
||||||
|
//----------------------------------------------------
|
||||||
|
QSize oamPatternView_t::sizeHint(void) const
|
||||||
|
{
|
||||||
|
return QSize(384,768);
|
||||||
|
}
|
||||||
|
//----------------------------------------------------
|
||||||
void oamPatternView_t::openTilePpuViewer(void)
|
void oamPatternView_t::openTilePpuViewer(void)
|
||||||
{
|
{
|
||||||
int pTable,x,y,tileAddr;
|
int pTable,x,y,tileAddr;
|
||||||
|
@ -3228,8 +3213,8 @@ oamTileView_t::oamTileView_t(QWidget *parent)
|
||||||
: QWidget(parent)
|
: QWidget(parent)
|
||||||
{
|
{
|
||||||
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
||||||
viewWidth = 8;
|
viewWidth = 80;
|
||||||
viewHeight = 16;
|
viewHeight = 160;
|
||||||
setMinimumWidth( viewWidth );
|
setMinimumWidth( viewWidth );
|
||||||
setMinimumHeight( viewHeight );
|
setMinimumHeight( viewHeight );
|
||||||
|
|
||||||
|
@ -3251,6 +3236,21 @@ int oamTileView_t::heightForWidth(int w) const
|
||||||
return 2*w;
|
return 2*w;
|
||||||
}
|
}
|
||||||
//----------------------------------------------------
|
//----------------------------------------------------
|
||||||
|
QSize oamTileView_t::minimumSizeHint(void) const
|
||||||
|
{
|
||||||
|
return QSize(8,16);
|
||||||
|
}
|
||||||
|
//----------------------------------------------------
|
||||||
|
QSize oamTileView_t::maximumSizeHint(void) const
|
||||||
|
{
|
||||||
|
return QSize(128,256);
|
||||||
|
}
|
||||||
|
//----------------------------------------------------
|
||||||
|
QSize oamTileView_t::sizeHint(void) const
|
||||||
|
{
|
||||||
|
return QSize(64,128);
|
||||||
|
}
|
||||||
|
//----------------------------------------------------
|
||||||
void oamTileView_t::resizeEvent(QResizeEvent *event)
|
void oamTileView_t::resizeEvent(QResizeEvent *event)
|
||||||
{
|
{
|
||||||
viewWidth = event->size().width();
|
viewWidth = event->size().width();
|
||||||
|
@ -3327,6 +3327,21 @@ int oamPaletteView_t::heightForWidth(int w) const
|
||||||
return w/4;
|
return w/4;
|
||||||
}
|
}
|
||||||
//----------------------------------------------------
|
//----------------------------------------------------
|
||||||
|
QSize oamPaletteView_t::minimumSizeHint(void) const
|
||||||
|
{
|
||||||
|
return QSize(48,12);
|
||||||
|
}
|
||||||
|
//----------------------------------------------------
|
||||||
|
QSize oamPaletteView_t::maximumSizeHint(void) const
|
||||||
|
{
|
||||||
|
return QSize(256,64);
|
||||||
|
}
|
||||||
|
//----------------------------------------------------
|
||||||
|
QSize oamPaletteView_t::sizeHint(void) const
|
||||||
|
{
|
||||||
|
return QSize(128,32);
|
||||||
|
}
|
||||||
|
//----------------------------------------------------
|
||||||
void oamPaletteView_t::resizeEvent(QResizeEvent *event)
|
void oamPaletteView_t::resizeEvent(QResizeEvent *event)
|
||||||
{
|
{
|
||||||
viewWidth = event->size().width();
|
viewWidth = event->size().width();
|
||||||
|
@ -3385,6 +3400,8 @@ oamPreview_t::oamPreview_t(QWidget *parent)
|
||||||
viewWidth = 256;
|
viewWidth = 256;
|
||||||
setMinimumWidth( viewWidth );
|
setMinimumWidth( viewWidth );
|
||||||
setMinimumHeight( viewHeight );
|
setMinimumHeight( viewHeight );
|
||||||
|
selSprite = 0;
|
||||||
|
cx = cy = 0;
|
||||||
}
|
}
|
||||||
//----------------------------------------------------
|
//----------------------------------------------------
|
||||||
oamPreview_t::~oamPreview_t(void)
|
oamPreview_t::~oamPreview_t(void)
|
||||||
|
@ -3414,6 +3431,16 @@ int oamPreview_t::heightForWidth(int w) const
|
||||||
return ((w*256)/240);
|
return ((w*256)/240);
|
||||||
}
|
}
|
||||||
//----------------------------------------------------
|
//----------------------------------------------------
|
||||||
|
QSize oamPreview_t::minimumSizeHint(void) const
|
||||||
|
{
|
||||||
|
return QSize(256,240);
|
||||||
|
}
|
||||||
|
//----------------------------------------------------
|
||||||
|
QSize oamPreview_t::maximumSizeHint(void) const
|
||||||
|
{
|
||||||
|
return QSize(512,480);
|
||||||
|
}
|
||||||
|
//----------------------------------------------------
|
||||||
QSize oamPreview_t::sizeHint(void) const
|
QSize oamPreview_t::sizeHint(void) const
|
||||||
{
|
{
|
||||||
return QSize(512,480);
|
return QSize(512,480);
|
||||||
|
@ -3453,6 +3480,9 @@ void oamPreview_t::paintEvent(QPaintEvent *event)
|
||||||
w = h;
|
w = h;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cx = (viewWidth - (256*w)) / 2;
|
||||||
|
cy = (viewHeight - (240*h)) / 2;
|
||||||
|
|
||||||
if ( palo != NULL )
|
if ( palo != NULL )
|
||||||
{
|
{
|
||||||
int p = palcache[0];
|
int p = palcache[0];
|
||||||
|
@ -3461,7 +3491,7 @@ void oamPreview_t::paintEvent(QPaintEvent *event)
|
||||||
bgColor.setGreen( palo[p].g );
|
bgColor.setGreen( palo[p].g );
|
||||||
bgColor.setBlue( palo[p].b );
|
bgColor.setBlue( palo[p].b );
|
||||||
}
|
}
|
||||||
painter.fillRect( 0, 0, w*256, h*240, bgColor );
|
painter.fillRect( cx, cy, w*256, h*240, bgColor );
|
||||||
|
|
||||||
nt = ( oamPattern.mode8x16 ) ? 2 : 1;
|
nt = ( oamPattern.mode8x16 ) ? 2 : 1;
|
||||||
|
|
||||||
|
@ -3478,13 +3508,13 @@ void oamPreview_t::paintEvent(QPaintEvent *event)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
yy = spr->y * h;
|
yy = (spr->y * h) + cy;
|
||||||
|
|
||||||
for (j=0; j<nt; j++)
|
for (j=0; j<nt; j++)
|
||||||
{
|
{
|
||||||
for (y=0; y<8; y++)
|
for (y=0; y<8; y++)
|
||||||
{
|
{
|
||||||
xx = spr->x * w;
|
xx = (spr->x * w) + cx;
|
||||||
|
|
||||||
for (x=0; x < 8; x++)
|
for (x=0; x < 8; x++)
|
||||||
{
|
{
|
||||||
|
@ -3505,8 +3535,8 @@ void oamPreview_t::paintEvent(QPaintEvent *event)
|
||||||
pen.setColor( QColor(128,128,128) );
|
pen.setColor( QColor(128,128,128) );
|
||||||
painter.setPen( pen );
|
painter.setPen( pen );
|
||||||
|
|
||||||
yy = spr->y * h;
|
yy = (spr->y * h) + cy;
|
||||||
xx = spr->x * w;
|
xx = (spr->x * w) + cx;
|
||||||
|
|
||||||
painter.drawRect( xx, yy, w*8, h*nt*8 );
|
painter.drawRect( xx, yy, w*8, h*nt*8 );
|
||||||
}
|
}
|
||||||
|
|
|
@ -266,7 +266,7 @@ class ppuViewerDialog_t : public QDialog
|
||||||
QCheckBox *maskUnusedCbox;
|
QCheckBox *maskUnusedCbox;
|
||||||
QCheckBox *invertMaskCbox;
|
QCheckBox *invertMaskCbox;
|
||||||
QSlider *refreshSlider;
|
QSlider *refreshSlider;
|
||||||
QLineEdit *scanLineEdit;
|
QSpinBox *scanLineEdit;
|
||||||
QTimer *updateTimer;
|
QTimer *updateTimer;
|
||||||
|
|
||||||
int cycleCount;
|
int cycleCount;
|
||||||
|
@ -278,7 +278,7 @@ class ppuViewerDialog_t : public QDialog
|
||||||
void sprite8x16Changed0(int state);
|
void sprite8x16Changed0(int state);
|
||||||
void sprite8x16Changed1(int state);
|
void sprite8x16Changed1(int state);
|
||||||
void refreshSliderChanged(int value);
|
void refreshSliderChanged(int value);
|
||||||
void scanLineChanged( const QString &s );
|
void scanLineChanged(int value);
|
||||||
void setClickFocus(void);
|
void setClickFocus(void);
|
||||||
void setHoverFocus(void);
|
void setHoverFocus(void);
|
||||||
};
|
};
|
||||||
|
@ -338,6 +338,9 @@ class oamPatternView_t : public QWidget
|
||||||
void mousePressEvent(QMouseEvent * event);
|
void mousePressEvent(QMouseEvent * event);
|
||||||
void contextMenuEvent(QContextMenuEvent *event);
|
void contextMenuEvent(QContextMenuEvent *event);
|
||||||
int heightForWidth(int w) const;
|
int heightForWidth(int w) const;
|
||||||
|
QSize minimumSizeHint(void) const;
|
||||||
|
QSize maximumSizeHint(void) const;
|
||||||
|
QSize sizeHint(void) const;
|
||||||
|
|
||||||
int viewWidth;
|
int viewWidth;
|
||||||
int viewHeight;
|
int viewHeight;
|
||||||
|
@ -368,6 +371,9 @@ class oamTileView_t : public QWidget
|
||||||
void paintEvent(QPaintEvent *event);
|
void paintEvent(QPaintEvent *event);
|
||||||
void resizeEvent(QResizeEvent *event);
|
void resizeEvent(QResizeEvent *event);
|
||||||
int heightForWidth(int w) const;
|
int heightForWidth(int w) const;
|
||||||
|
QSize minimumSizeHint(void) const;
|
||||||
|
QSize maximumSizeHint(void) const;
|
||||||
|
QSize sizeHint(void) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int viewWidth;
|
int viewWidth;
|
||||||
|
@ -388,6 +394,9 @@ class oamPaletteView_t : public QWidget
|
||||||
void paintEvent(QPaintEvent *event);
|
void paintEvent(QPaintEvent *event);
|
||||||
void resizeEvent(QResizeEvent *event);
|
void resizeEvent(QResizeEvent *event);
|
||||||
int heightForWidth(int w) const;
|
int heightForWidth(int w) const;
|
||||||
|
QSize minimumSizeHint(void) const;
|
||||||
|
QSize maximumSizeHint(void) const;
|
||||||
|
QSize sizeHint(void) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int viewWidth;
|
int viewWidth;
|
||||||
|
@ -409,12 +418,16 @@ class oamPreview_t : public QWidget
|
||||||
void paintEvent(QPaintEvent *event);
|
void paintEvent(QPaintEvent *event);
|
||||||
void resizeEvent(QResizeEvent *event);
|
void resizeEvent(QResizeEvent *event);
|
||||||
int heightForWidth(int w) const;
|
int heightForWidth(int w) const;
|
||||||
|
QSize minimumSizeHint(void) const;
|
||||||
|
QSize maximumSizeHint(void) const;
|
||||||
QSize sizeHint(void) const;
|
QSize sizeHint(void) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int viewWidth;
|
int viewWidth;
|
||||||
int viewHeight;
|
int viewHeight;
|
||||||
int selSprite;
|
int selSprite;
|
||||||
|
int cx;
|
||||||
|
int cy;
|
||||||
};
|
};
|
||||||
|
|
||||||
class spriteViewerDialog_t : public QDialog
|
class spriteViewerDialog_t : public QDialog
|
||||||
|
@ -438,6 +451,7 @@ class spriteViewerDialog_t : public QDialog
|
||||||
QRadioButton *useSprRam;
|
QRadioButton *useSprRam;
|
||||||
QRadioButton *useCpuPag;
|
QRadioButton *useCpuPag;
|
||||||
QSpinBox *cpuPagIdx;
|
QSpinBox *cpuPagIdx;
|
||||||
|
QSpinBox *scanLineEdit;
|
||||||
QLineEdit *spriteIndexBox;
|
QLineEdit *spriteIndexBox;
|
||||||
QLineEdit *tileIndexBox;
|
QLineEdit *tileIndexBox;
|
||||||
QLineEdit *tileAddrBox;
|
QLineEdit *tileAddrBox;
|
||||||
|
@ -448,7 +462,6 @@ class spriteViewerDialog_t : public QDialog
|
||||||
QCheckBox *bgPrioBox;
|
QCheckBox *bgPrioBox;
|
||||||
QCheckBox *showPosHex;
|
QCheckBox *showPosHex;
|
||||||
QGroupBox *previewFrame;
|
QGroupBox *previewFrame;
|
||||||
QPropertyAnimation *previewAnimation;
|
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void closeWindow(void);
|
void closeWindow(void);
|
||||||
|
@ -457,11 +470,7 @@ class spriteViewerDialog_t : public QDialog
|
||||||
void setClickFocus(void);
|
void setClickFocus(void);
|
||||||
void setHoverFocus(void);
|
void setHoverFocus(void);
|
||||||
void toggleGridVis(void);
|
void toggleGridVis(void);
|
||||||
void togglePreviewVis(bool);
|
void scanLineChanged(int value);
|
||||||
void setPreviewSize1x(void);
|
|
||||||
void setPreviewSize2x(void);
|
|
||||||
void previewAnimWidthChange(const QVariant &);
|
|
||||||
void previewAnimResizeDone(void);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
int openPPUViewWindow( QWidget *parent );
|
int openPPUViewWindow( QWidget *parent );
|
||||||
|
|
Loading…
Reference in New Issue