Added an nes palette export as adobe color table feature to Qt GUI.
This commit is contained in:
parent
25d1002648
commit
2f37a95e75
|
@ -54,7 +54,7 @@ PaletteEditorDialog_t::PaletteEditorDialog_t(QWidget *parent)
|
||||||
{
|
{
|
||||||
QVBoxLayout *mainLayout;
|
QVBoxLayout *mainLayout;
|
||||||
QMenuBar *menuBar;
|
QMenuBar *menuBar;
|
||||||
QMenu *fileMenu, *memMenu;
|
QMenu *fileMenu, *memMenu, *subMenu;
|
||||||
QAction *act;
|
QAction *act;
|
||||||
int useNativeMenuBar;
|
int useNativeMenuBar;
|
||||||
|
|
||||||
|
@ -92,6 +92,18 @@ PaletteEditorDialog_t::PaletteEditorDialog_t(QWidget *parent)
|
||||||
|
|
||||||
fileMenu->addSeparator();
|
fileMenu->addSeparator();
|
||||||
|
|
||||||
|
// File -> Export
|
||||||
|
subMenu = fileMenu->addMenu( tr("E&xport As") );
|
||||||
|
|
||||||
|
act = new QAction(tr("&Adobe Color Table"), this);
|
||||||
|
//act->setShortcut( QKeySequence::Save );
|
||||||
|
act->setStatusTip(tr("Export Palette in ACT Format"));
|
||||||
|
connect(act, SIGNAL(triggered()), this, SLOT(exportPaletteFileDialog(void)) );
|
||||||
|
|
||||||
|
subMenu->addAction(act);
|
||||||
|
|
||||||
|
fileMenu->addSeparator();
|
||||||
|
|
||||||
// File -> Close
|
// File -> Close
|
||||||
act = new QAction(tr("&Close"), this);
|
act = new QAction(tr("&Close"), this);
|
||||||
act->setShortcut( QKeySequence::Close );
|
act->setShortcut( QKeySequence::Close );
|
||||||
|
@ -298,6 +310,56 @@ void PaletteEditorDialog_t::savePaletteFileDialog(void)
|
||||||
palView->saveToFile( filename.toStdString().c_str() );
|
palView->saveToFile( filename.toStdString().c_str() );
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
void PaletteEditorDialog_t::exportPaletteFileDialog(void)
|
||||||
|
{
|
||||||
|
int ret, useNativeFileDialogVal;
|
||||||
|
QString filename;
|
||||||
|
QFileDialog dialog(this, tr("Export Palette To File") );
|
||||||
|
const char *home;
|
||||||
|
|
||||||
|
dialog.setFileMode(QFileDialog::AnyFile);
|
||||||
|
|
||||||
|
dialog.setNameFilter(tr("Adobe Color Table Files (*.act *.ACT) ;; All files (*)"));
|
||||||
|
|
||||||
|
dialog.setViewMode(QFileDialog::List);
|
||||||
|
dialog.setFilter( QDir::AllEntries | QDir::AllDirs | QDir::Hidden );
|
||||||
|
dialog.setLabelText( QFileDialog::Accept, tr("Export") );
|
||||||
|
dialog.setDefaultSuffix( tr(".act") );
|
||||||
|
|
||||||
|
home = ::getenv("HOME");
|
||||||
|
|
||||||
|
if ( home )
|
||||||
|
{
|
||||||
|
dialog.setDirectory( tr(home) );
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check config option to use native file dialog or not
|
||||||
|
g_config->getOption ("SDL.UseNativeFileDialog", &useNativeFileDialogVal);
|
||||||
|
|
||||||
|
dialog.setOption(QFileDialog::DontUseNativeDialog, !useNativeFileDialogVal);
|
||||||
|
|
||||||
|
ret = dialog.exec();
|
||||||
|
|
||||||
|
if ( ret )
|
||||||
|
{
|
||||||
|
QStringList fileList;
|
||||||
|
fileList = dialog.selectedFiles();
|
||||||
|
|
||||||
|
if ( fileList.size() > 0 )
|
||||||
|
{
|
||||||
|
filename = fileList[0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( filename.isNull() )
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
qDebug() << "selected file path : " << filename.toUtf8();
|
||||||
|
|
||||||
|
palView->exportToFileACT( filename.toStdString().c_str() );
|
||||||
|
}
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
//---NES Color Palette Viewer
|
//---NES Color Palette Viewer
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
nesPaletteView::nesPaletteView( QWidget *parent)
|
nesPaletteView::nesPaletteView( QWidget *parent)
|
||||||
|
@ -448,6 +510,41 @@ int nesPaletteView::saveToFile( const char *filepath )
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
int nesPaletteView::exportToFileACT( const char *filepath )
|
||||||
|
{
|
||||||
|
FILE *fp;
|
||||||
|
int i=0, ret = 0, numBytes;
|
||||||
|
unsigned char buf[768];
|
||||||
|
|
||||||
|
fp = ::fopen( filepath, "wb");
|
||||||
|
|
||||||
|
if ( fp == NULL )
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
memset( buf, 0, sizeof(buf) );
|
||||||
|
|
||||||
|
i = 0;
|
||||||
|
|
||||||
|
for (int p=0; p<NUM_COLORS; p++)
|
||||||
|
{
|
||||||
|
buf[i] = color[p].red(); i++;
|
||||||
|
buf[i] = color[p].green(); i++;
|
||||||
|
buf[i] = color[p].blue(); i++;
|
||||||
|
}
|
||||||
|
numBytes = ::fwrite( buf, 1, 768, fp );
|
||||||
|
|
||||||
|
if ( numBytes != 768 )
|
||||||
|
{
|
||||||
|
printf("Error Failed to Export Palette\n");
|
||||||
|
ret = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
::fclose(fp);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
void nesPaletteView::resizeEvent(QResizeEvent *event)
|
void nesPaletteView::resizeEvent(QResizeEvent *event)
|
||||||
{
|
{
|
||||||
//viewWidth = event->size().width();
|
//viewWidth = event->size().width();
|
||||||
|
|
|
@ -65,6 +65,7 @@ class nesPaletteView : public QWidget
|
||||||
void openColorPicker(void);
|
void openColorPicker(void);
|
||||||
int loadFromFile( const char *filepath );
|
int loadFromFile( const char *filepath );
|
||||||
int saveToFile( const char *filepath );
|
int saveToFile( const char *filepath );
|
||||||
|
int exportToFileACT( const char *filepath );
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void paintEvent(QPaintEvent *event);
|
void paintEvent(QPaintEvent *event);
|
||||||
|
@ -108,6 +109,7 @@ class PaletteEditorDialog_t : public QDialog
|
||||||
private slots:
|
private slots:
|
||||||
void openPaletteFileDialog(void);
|
void openPaletteFileDialog(void);
|
||||||
void savePaletteFileDialog(void);
|
void savePaletteFileDialog(void);
|
||||||
|
void exportPaletteFileDialog(void);
|
||||||
void setActivePalette(void);
|
void setActivePalette(void);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue