Save PPU viewer color preferences.

This commit is contained in:
mjbudd77 2021-07-27 05:56:28 -04:00
parent a08a824ad7
commit c8686e222e
3 changed files with 34 additions and 55 deletions

View File

@ -709,6 +709,10 @@ InitConfig()
config->addOption("SDL.NT_DrawAttrbView", 0); config->addOption("SDL.NT_DrawAttrbView", 0);
config->addOption("SDL.NT_IgnoreHidePal", 0); config->addOption("SDL.NT_IgnoreHidePal", 0);
config->addOption("SDL.NT_RefreshFrames", 1); config->addOption("SDL.NT_RefreshFrames", 1);
config->addOption("SDL.PPU_TileSelColor0", "#FFFFFF");
config->addOption("SDL.PPU_TileGridColor0", "#7F7F7F");
config->addOption("SDL.PPU_TileSelColor1", "#FFFFFF");
config->addOption("SDL.PPU_TileGridColor1", "#7F7F7F");
// quit when a+b+select+start is pressed // quit when a+b+select+start is pressed
config->addOption("4buttonexit", "SDL.ABStartSelectExit", 0); config->addOption("4buttonexit", "SDL.ABStartSelectExit", 0);

View File

@ -56,6 +56,7 @@
#include "Qt/ConsoleWindow.h" #include "Qt/ConsoleWindow.h"
#include "Qt/ConsoleUtilities.h" #include "Qt/ConsoleUtilities.h"
#include "Qt/PaletteEditor.h" #include "Qt/PaletteEditor.h"
#include "Qt/ColorMenu.h"
#define PATTERNWIDTH 128 #define PATTERNWIDTH 128
#define PATTERNHEIGHT 128 #define PATTERNHEIGHT 128
@ -212,6 +213,7 @@ ppuViewerDialog_t::ppuViewerDialog_t(QWidget *parent)
QAction *act; QAction *act;
//char stmp[64]; //char stmp[64];
int useNativeMenuBar; int useNativeMenuBar;
ColorMenuItem *tileSelColorAct[2], *tileGridColorAct[2];
ppuViewWindow = this; ppuViewWindow = this;
@ -373,20 +375,16 @@ ppuViewerDialog_t::ppuViewerDialog_t(QWidget *parent)
colorMenu = viewMenu->addMenu(tr("&Colors")); colorMenu = viewMenu->addMenu(tr("&Colors"));
// View1 -> Colors -> Tile Selector // View1 -> Colors -> Tile Selector
act = new QAction(tr("Tile &Selector"), this); tileSelColorAct[0] = new ColorMenuItem(tr("Tile &Selector"), "SDL.PPU_TileSelColor0", this);
//act->setShortcut(QKeySequence::Open); tileSelColorAct[0]->connectColor( &patternView[0]->selTileColor );
act->setStatusTip(tr("Tile Selector"));
connect(act, SIGNAL(triggered()), patternView[0], SLOT(setTileSelectorColor()) );
colorMenu->addAction(act); colorMenu->addAction(tileSelColorAct[0]);
// View1 -> Colors -> Tile Grid // View1 -> Colors -> Tile Grid
act = new QAction(tr("Tile &Grid"), this); tileGridColorAct[0] = new ColorMenuItem(tr("Tile &Grid"), "SDL.PPU_TileGridColor0", this);
//act->setShortcut(QKeySequence::Open); tileGridColorAct[0]->connectColor( &patternView[0]->gridColor );
act->setStatusTip(tr("Tile Grid"));
connect(act, SIGNAL(triggered()), patternView[0], SLOT(setTileGridColor()) );
colorMenu->addAction(act); colorMenu->addAction(tileGridColorAct[0]);
// View2 // View2
viewMenu = menuBar->addMenu(tr("View&2")); viewMenu = menuBar->addMenu(tr("View&2"));
@ -405,20 +403,16 @@ ppuViewerDialog_t::ppuViewerDialog_t(QWidget *parent)
colorMenu = viewMenu->addMenu(tr("&Colors")); colorMenu = viewMenu->addMenu(tr("&Colors"));
// View2 -> Colors -> Tile Selector // View2 -> Colors -> Tile Selector
act = new QAction(tr("Tile &Selector"), this); tileSelColorAct[1] = new ColorMenuItem(tr("Tile &Selector"), "SDL.PPU_TileSelColor1", this);
//act->setShortcut(QKeySequence::Open); tileSelColorAct[1]->connectColor( &patternView[1]->selTileColor );
act->setStatusTip(tr("Tile Selector"));
connect(act, SIGNAL(triggered()), patternView[1], SLOT(setTileSelectorColor()) );
colorMenu->addAction(act); colorMenu->addAction(tileSelColorAct[1]);
// View2 -> Colors -> Tile Grid // View2 -> Colors -> Tile Grid
act = new QAction(tr("Tile &Grid"), this); tileGridColorAct[1] = new ColorMenuItem(tr("Tile &Grid"), "SDL.PPU_TileGridColor1", this);
//act->setShortcut(QKeySequence::Open); tileGridColorAct[1]->connectColor( &patternView[1]->gridColor );
act->setStatusTip(tr("Tile Grid"));
connect(act, SIGNAL(triggered()), patternView[1], SLOT(setTileGridColor()) );
colorMenu->addAction(act); colorMenu->addAction(tileGridColorAct[1]);
// Options // Options
optMenu = menuBar->addMenu(tr("&Options")); optMenu = menuBar->addMenu(tr("&Options"));
@ -453,6 +447,8 @@ ppuViewerDialog_t::ppuViewerDialog_t(QWidget *parent)
updateTimer->start( 33 ); // 30hz updateTimer->start( 33 ); // 30hz
restoreGeometry(settings.value("ppuViewer/geometry").toByteArray()); restoreGeometry(settings.value("ppuViewer/geometry").toByteArray());
connect( this, SIGNAL(rejected(void)), this, SLOT(deleteLater(void)));
} }
//---------------------------------------------------- //----------------------------------------------------
@ -569,6 +565,17 @@ ppuPatternView_t::ppuPatternView_t( int patternIndexID, QWidget *parent)
selTile.setX(-1); selTile.setX(-1);
selTile.setY(-1); selTile.setY(-1);
if ( patternIndexID )
{
fceuLoadConfigColor("SDL.PPU_TileSelColor1" , &selTileColor );
fceuLoadConfigColor("SDL.PPU_TileGridColor1" , &gridColor );
}
else
{
fceuLoadConfigColor("SDL.PPU_TileSelColor0" , &selTileColor );
fceuLoadConfigColor("SDL.PPU_TileGridColor0" , &gridColor );
}
g_config->getOption("SDL.PPU_TileFocusPolicy", &hover2Focus ); g_config->getOption("SDL.PPU_TileFocusPolicy", &hover2Focus );
} }
//---------------------------------------------------- //----------------------------------------------------
@ -599,35 +606,6 @@ void ppuPatternView_t::setTileCoord( int x, int y )
ppuPatternView_t::~ppuPatternView_t(void) ppuPatternView_t::~ppuPatternView_t(void)
{ {
}
//----------------------------------------------------
void ppuPatternView_t::openColorPicker( QColor *c )
{
int ret;
QColorDialog dialog( this );
dialog.setCurrentColor( *c );
dialog.setOption( QColorDialog::DontUseNativeDialog, true );
ret = dialog.exec();
if ( ret == QDialog::Accepted )
{
//QString colorText;
//colorText = dialog.selectedColor().name();
//printf("FG Color string '%s'\n", colorText.toStdString().c_str() );
//g_config->setOption("SDL.HexEditFgColor", colorText.toStdString().c_str() );
*c = dialog.selectedColor();
}
}
//----------------------------------------------------
void ppuPatternView_t::setTileSelectorColor(void)
{
openColorPicker( &selTileColor );
}
//----------------------------------------------------
void ppuPatternView_t::setTileGridColor(void)
{
openColorPicker( &gridColor );
} }
//---------------------------------------------------- //----------------------------------------------------
QPoint ppuPatternView_t::convPixToTile( QPoint p ) QPoint ppuPatternView_t::convPixToTile( QPoint p )

View File

@ -60,6 +60,9 @@ class ppuPatternView_t : public QWidget
bool getHoverFocus(void){ return hover2Focus; }; bool getHoverFocus(void){ return hover2Focus; };
bool getDrawTileGrid(void){ return drawTileGrid; }; bool getDrawTileGrid(void){ return drawTileGrid; };
QColor selTileColor;
QColor gridColor;
protected: protected:
void paintEvent(QPaintEvent *event); void paintEvent(QPaintEvent *event);
void resizeEvent(QResizeEvent *event); void resizeEvent(QResizeEvent *event);
@ -68,8 +71,6 @@ class ppuPatternView_t : public QWidget
void mousePressEvent(QMouseEvent * event); void mousePressEvent(QMouseEvent * event);
void contextMenuEvent(QContextMenuEvent *event); void contextMenuEvent(QContextMenuEvent *event);
void openColorPicker( QColor *c );
int patternIndex; int patternIndex;
int viewWidth; int viewWidth;
int viewHeight; int viewHeight;
@ -79,13 +80,9 @@ class ppuPatternView_t : public QWidget
bool hover2Focus; bool hover2Focus;
QLabel *tileLabel; QLabel *tileLabel;
QPoint selTile; QPoint selTile;
QColor selTileColor;
QColor gridColor;
ppuPatternTable_t *pattern; ppuPatternTable_t *pattern;
public slots: public slots:
void toggleTileGridLines(void); void toggleTileGridLines(void);
void setTileSelectorColor(void);
void setTileGridColor(void);
private slots: private slots:
void showTileMode(void); void showTileMode(void);
void exitTileMode(void); void exitTileMode(void);