From c8686e222e74debe315ef407f99e35d44c1ece55 Mon Sep 17 00:00:00 2001 From: mjbudd77 Date: Tue, 27 Jul 2021 05:56:28 -0400 Subject: [PATCH] Save PPU viewer color preferences. --- src/drivers/Qt/config.cpp | 4 ++ src/drivers/Qt/ppuViewer.cpp | 76 +++++++++++++----------------------- src/drivers/Qt/ppuViewer.h | 9 ++--- 3 files changed, 34 insertions(+), 55 deletions(-) diff --git a/src/drivers/Qt/config.cpp b/src/drivers/Qt/config.cpp index 2cdf6259..2e20e473 100644 --- a/src/drivers/Qt/config.cpp +++ b/src/drivers/Qt/config.cpp @@ -709,6 +709,10 @@ InitConfig() config->addOption("SDL.NT_DrawAttrbView", 0); config->addOption("SDL.NT_IgnoreHidePal", 0); 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 config->addOption("4buttonexit", "SDL.ABStartSelectExit", 0); diff --git a/src/drivers/Qt/ppuViewer.cpp b/src/drivers/Qt/ppuViewer.cpp index dd343593..b315acd3 100644 --- a/src/drivers/Qt/ppuViewer.cpp +++ b/src/drivers/Qt/ppuViewer.cpp @@ -56,6 +56,7 @@ #include "Qt/ConsoleWindow.h" #include "Qt/ConsoleUtilities.h" #include "Qt/PaletteEditor.h" +#include "Qt/ColorMenu.h" #define PATTERNWIDTH 128 #define PATTERNHEIGHT 128 @@ -212,6 +213,7 @@ ppuViewerDialog_t::ppuViewerDialog_t(QWidget *parent) QAction *act; //char stmp[64]; int useNativeMenuBar; + ColorMenuItem *tileSelColorAct[2], *tileGridColorAct[2]; ppuViewWindow = this; @@ -373,20 +375,16 @@ ppuViewerDialog_t::ppuViewerDialog_t(QWidget *parent) colorMenu = viewMenu->addMenu(tr("&Colors")); // View1 -> Colors -> Tile Selector - act = new QAction(tr("Tile &Selector"), this); - //act->setShortcut(QKeySequence::Open); - act->setStatusTip(tr("Tile Selector")); - connect(act, SIGNAL(triggered()), patternView[0], SLOT(setTileSelectorColor()) ); + tileSelColorAct[0] = new ColorMenuItem(tr("Tile &Selector"), "SDL.PPU_TileSelColor0", this); + tileSelColorAct[0]->connectColor( &patternView[0]->selTileColor ); - colorMenu->addAction(act); + colorMenu->addAction(tileSelColorAct[0]); // View1 -> Colors -> Tile Grid - act = new QAction(tr("Tile &Grid"), this); - //act->setShortcut(QKeySequence::Open); - act->setStatusTip(tr("Tile Grid")); - connect(act, SIGNAL(triggered()), patternView[0], SLOT(setTileGridColor()) ); + tileGridColorAct[0] = new ColorMenuItem(tr("Tile &Grid"), "SDL.PPU_TileGridColor0", this); + tileGridColorAct[0]->connectColor( &patternView[0]->gridColor ); - colorMenu->addAction(act); + colorMenu->addAction(tileGridColorAct[0]); // View2 viewMenu = menuBar->addMenu(tr("View&2")); @@ -405,20 +403,16 @@ ppuViewerDialog_t::ppuViewerDialog_t(QWidget *parent) colorMenu = viewMenu->addMenu(tr("&Colors")); // View2 -> Colors -> Tile Selector - act = new QAction(tr("Tile &Selector"), this); - //act->setShortcut(QKeySequence::Open); - act->setStatusTip(tr("Tile Selector")); - connect(act, SIGNAL(triggered()), patternView[1], SLOT(setTileSelectorColor()) ); + tileSelColorAct[1] = new ColorMenuItem(tr("Tile &Selector"), "SDL.PPU_TileSelColor1", this); + tileSelColorAct[1]->connectColor( &patternView[1]->selTileColor ); - colorMenu->addAction(act); + colorMenu->addAction(tileSelColorAct[1]); // View2 -> Colors -> Tile Grid - act = new QAction(tr("Tile &Grid"), this); - //act->setShortcut(QKeySequence::Open); - act->setStatusTip(tr("Tile Grid")); - connect(act, SIGNAL(triggered()), patternView[1], SLOT(setTileGridColor()) ); + tileGridColorAct[1] = new ColorMenuItem(tr("Tile &Grid"), "SDL.PPU_TileGridColor1", this); + tileGridColorAct[1]->connectColor( &patternView[1]->gridColor ); - colorMenu->addAction(act); + colorMenu->addAction(tileGridColorAct[1]); // Options optMenu = menuBar->addMenu(tr("&Options")); @@ -453,6 +447,8 @@ ppuViewerDialog_t::ppuViewerDialog_t(QWidget *parent) updateTimer->start( 33 ); // 30hz 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.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 ); } //---------------------------------------------------- @@ -599,35 +606,6 @@ void ppuPatternView_t::setTileCoord( int x, int y ) 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 ) diff --git a/src/drivers/Qt/ppuViewer.h b/src/drivers/Qt/ppuViewer.h index 6464ec8e..554a1f8f 100644 --- a/src/drivers/Qt/ppuViewer.h +++ b/src/drivers/Qt/ppuViewer.h @@ -60,6 +60,9 @@ class ppuPatternView_t : public QWidget bool getHoverFocus(void){ return hover2Focus; }; bool getDrawTileGrid(void){ return drawTileGrid; }; + + QColor selTileColor; + QColor gridColor; protected: void paintEvent(QPaintEvent *event); void resizeEvent(QResizeEvent *event); @@ -68,8 +71,6 @@ class ppuPatternView_t : public QWidget void mousePressEvent(QMouseEvent * event); void contextMenuEvent(QContextMenuEvent *event); - void openColorPicker( QColor *c ); - int patternIndex; int viewWidth; int viewHeight; @@ -79,13 +80,9 @@ class ppuPatternView_t : public QWidget bool hover2Focus; QLabel *tileLabel; QPoint selTile; - QColor selTileColor; - QColor gridColor; ppuPatternTable_t *pattern; public slots: void toggleTileGridLines(void); - void setTileSelectorColor(void); - void setTileGridColor(void); private slots: void showTileMode(void); void exitTileMode(void);