diff --git a/buckshot/buckshot.pro b/buckshot/buckshot.pro
index 1783ee9..f81f020 100644
--- a/buckshot/buckshot.pro
+++ b/buckshot/buckshot.pro
@@ -11,6 +11,13 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = buckshot
TEMPLATE = app
+# The following define makes your compiler emit warnings if you use
+# any feature of Qt which has been marked as deprecated (the exact warnings
+# depend on your compiler). Please consult the documentation of the
+# deprecated API in order to know how to port your code away from it.
+DEFINES += QT_DEPRECATED_WARNINGS
+
+CONFIG += c++11
SOURCES += main.cpp\
mainwindow.cpp
diff --git a/buckshot/buckshot.pro.user b/buckshot/buckshot.pro.user
index 76653a2..1735e71 100644
--- a/buckshot/buckshot.pro.user
+++ b/buckshot/buckshot.pro.user
@@ -1,10 +1,10 @@
-
+
EnvironmentId
- {604923ac-6650-4c69-8172-ab5bd4c4d88b}
+ {30a1729f-a912-4116-992a-f04331cbb1d0}
ProjectExplorer.Project.ActiveTarget
@@ -54,19 +54,27 @@
ProjectExplorer.Project.PluginSettings
-
+
+
+ true
+ false
+
+
+
+ true
+
ProjectExplorer.Project.Target.0
- Desktop Qt 5.7.0 clang 64bit
- Desktop Qt 5.7.0 clang 64bit
- qt.57.clang_64_kit
- 1
+ Desktop Qt 5.12.0 clang 64bit
+ Desktop Qt 5.12.0 clang 64bit
+ qt.qt5.5120.clang_64_kit
+ 0
0
0
- /Users/dbrock/Google Drive/appleiigs/buckshot/build-buckshot-Desktop_Qt_5_7_0_clang_64bit-Debug
+ /Users/dbrock/Google Drive/appleiigs/buckshot/build-buckshot-Desktop_Qt_5_12_0_clang_64bit-Debug
true
@@ -84,13 +92,11 @@
Make
Qt4ProjectManager.MakeStep
-
- -w
- -r
-
+
false
+ false
2
Build
@@ -103,13 +109,11 @@
Make
Qt4ProjectManager.MakeStep
-
- -w
- -r
-
+
true
clean
+ false
1
Clean
@@ -120,13 +124,13 @@
false
Debug
-
+ Debug
Qt4ProjectManager.Qt4BuildConfiguration
2
true
- /Users/dbrock/Google Drive/appleiigs/buckshot/build-buckshot-Desktop_Qt_5_7_0_clang_64bit-Release
+ /Users/dbrock/Google Drive/appleiigs/buckshot/build-buckshot-Desktop_Qt_5_12_0_clang_64bit-Release
true
@@ -137,20 +141,18 @@
false
false
- false
+ true
true
Make
Qt4ProjectManager.MakeStep
-
- -w
- -r
-
+
false
+ false
2
Build
@@ -163,13 +165,11 @@
Make
Qt4ProjectManager.MakeStep
-
- -w
- -r
-
+
true
clean
+ false
1
Clean
@@ -180,13 +180,13 @@
false
Release
-
+ Release
Qt4ProjectManager.Qt4BuildConfiguration
0
true
- /Users/dbrock/Google Drive/appleiigs/buckshot/build-buckshot-Desktop_Qt_5_7_0_clang_64bit-Profile
+ /Users/dbrock/Google Drive/appleiigs/buckshot/build-buckshot-Desktop_Qt_5_12_0_clang_64bit-Profile
true
@@ -197,20 +197,18 @@
false
true
- false
+ true
true
Make
Qt4ProjectManager.MakeStep
-
- -w
- -r
-
+
false
+ false
2
Build
@@ -223,13 +221,11 @@
Make
Qt4ProjectManager.MakeStep
-
- -w
- -r
-
+
true
clean
+ false
1
Clean
@@ -240,7 +236,7 @@
false
Profile
-
+ Profile
Qt4ProjectManager.Qt4BuildConfiguration
0
true
@@ -254,7 +250,7 @@
ProjectExplorer.BuildSteps.Deploy
1
- Deploy locally
+ Deploy Configuration
ProjectExplorer.DefaultDeployConfiguration
@@ -305,18 +301,18 @@
buckshot
Qt4ProjectManager.Qt4RunConfiguration:/Users/dbrock/Google Drive/appleiigs/buckshot/buckshot/buckshot.pro
- true
-
buckshot.pro
- false
-
- /Users/dbrock/Google Drive/appleiigs/buckshot/build-buckshot-Desktop_Qt_5_7_0_clang_64bit-Release/buckshot.app/Contents/MacOS
+
3768
false
true
+ false
+ true
false
false
true
+
+ /Users/dbrock/Google Drive/appleiigs/buckshot/build-buckshot-Desktop_Qt_5_12_0_clang_64bit-Debug/buckshot.app/Contents/MacOS
1
@@ -327,10 +323,10 @@
ProjectExplorer.Project.Updater.FileVersion
- 18
+ 20
Version
- 18
+ 20
diff --git a/buckshot/mainwindow.cpp b/buckshot/mainwindow.cpp
index f25259a..0fae832 100644
--- a/buckshot/mainwindow.cpp
+++ b/buckshot/mainwindow.cpp
@@ -64,6 +64,28 @@ MainWindow::MainWindow(QWidget *parent) :
<< "9- Buckels";
ui->comboBox_dithering->addItems(ditheringAlgorithms);
+
+ // POPULATE PALETTE COMBOBOX
+ QStringList previewPalettes;
+ previewPalettes << "Kegs32 RGB"
+ << "CiderPress RGB"
+ << "Old AppleWin NTSC"
+ << "New AppleWin NTSC"
+ << "Wikipedia NTSC"
+ << "tohgr NTSC DHGR"
+ << " (N/A) -- Imported"
+ << "Legacy Canvas"
+ << "Legacy Win16"
+ << "Legacy Win32"
+ << "Legacy VGA BIOS"
+ << "Legacy VGA PCX"
+ << "Super Convert RGB"
+ << "Jace NTSC"
+ << "Cybernesto-Munafo NTSC"
+ << "Pseudo Palette"
+ << "tohgr NTSC HGR";
+ ui->comboBox_previewPalette->addItems(previewPalettes);
+
// HANDLE DISPLAY MODE SELECTION (COMPATIBILITY)
updateDisplayModes();
@@ -73,19 +95,27 @@ MainWindow::MainWindow(QWidget *parent) :
connect(previewTimer, SIGNAL(timeout()), this, SLOT(previewTimerTimeout()));
}
-//---- display modes
-// 0 "40 x 48 - Full Scale LGR (LGR ONLY)"
-// 1 "80 x 48 - Full Scale DLGR (DLGR ONLY)"
-// 2 "140 x 192 - Full Scale (HGR & DHGR)"
-// 3 "280 x 192 - Double Width Scale (HGR & DHGR)"
-// 4 "320 x 200 - Classic Size"
-// 5 "560 x 384 - Quadruple Width, Double Height Scale"
-// 6 "640 x 400 - Classic Size"
-// 7 "640 x 480 - Classic Size";
+
+MainWindow::~MainWindow()
+{
+ delete ui;
+}
+
+
void MainWindow::updateDisplayModes() {
QList disabledList = QList();
+ //---- display modes
+ // 0 "40 x 48 - Full Scale LGR (LGR ONLY)"
+ // 1 "80 x 48 - Full Scale DLGR (DLGR ONLY)"
+ // 2 "140 x 192 - Full Scale (HGR & DHGR)"
+ // 3 "280 x 192 - Double Width Scale (HGR & DHGR)"
+ // 4 "320 x 200 - Classic Size"
+ // 5 "560 x 384 - Quadruple Width, Double Height Scale"
+ // 6 "640 x 400 - Classic Size"
+ // 7 "640 x 480 - Classic Size";
+
// Enable all first
QList enabledList = QList() << 0 << 1 << 2 << 3 << 4 << 5 << 6 << 7;
QListIterator e(enabledList);
@@ -136,17 +166,10 @@ void MainWindow::updateDisplayModes() {
}
}
-
-MainWindow::~MainWindow()
-{
- delete ui;
-}
-
-
void MainWindow::on_pushButton_sourceFilename_clicked()
{
QString filename = QFileDialog::getOpenFileName();
- if (filename != NULL) {
+ if (filename != nullptr) {
ui->lineEdit_sourceFilename->setText(filename);
QPixmap mypix(filename);
ui->label_source->setPixmap(mypix);
@@ -199,8 +222,8 @@ void MainWindow::updateInputSize()
}
QSize sourceSize = ui->label_source->pixmap()->size();
- double sx = (double)inputWidth / sourceSize.width();
- double sy = (double)inputHeight / sourceSize.height();
+ double sx = static_cast(inputWidth) / sourceSize.width();
+ double sy = static_cast(inputHeight) / sourceSize.height();
QString scaleString = QString("%1 x %2").arg(sx).arg(sy);
ui->label_scaleFactor->setText(scaleString);
}
@@ -214,10 +237,13 @@ void MainWindow::livePreview()
// This is the actual preview generation/main logic function
+
void MainWindow::on_pushButton_preview_clicked()
{
- if (ui->label_source->pixmap() == NULL) {
- ui->plainTextEdit_lastCmd->document()->setPlainText("Please open a source image first!");
+ if (ui->label_source->pixmap() == nullptr) {
+ QString noImage = "Please open a source image first";
+ ui->plainTextEdit_lastCmd->setPlainText(noImage);
+ repaint();
return;
}
// GET SCALE FACTOR
@@ -272,13 +298,20 @@ void MainWindow::on_pushButton_preview_clicked()
args << ditherArg;
}
- args << "V"; // MUST HAVE! V FLAG GENERATES OUR PREVIEW IMAGE
+ // MUST ALWAYS HAVE A "V" FLAG TO GENERATE OUR PREVIEW IMAGE
+ if (ui->comboBox_previewPalette->currentIndex() > -1) {
+ QString ppalArg = QString("V%1").arg(ui->comboBox_previewPalette->currentIndex());
+ args << ppalArg;
+ }
+
+ args << ui->lineEdit_addArgs->text();
// RUN THE CONVERTER SCRIPT
process.start(converterPath,args);
process.waitForFinished(); // BLOCKS!!!
QString commandString = QString("%1 %2").arg(converterPath, args.join(" "));
+ qDebug() << commandString;
ui->plainTextEdit_lastCmd->document()->setPlainText(commandString);
// ALL DONE SO TRY TO LOAD PREVIEW
@@ -288,16 +321,20 @@ void MainWindow::on_pushButton_preview_clicked()
int scale = 3;
realScale = scale;
previewPix = previewPix.scaled(80*scale, 48*scale);
+ qDebug() << "W80";
}
if (previewPix.width() == 560) {
float scale = 0.5f;
realScale = scale;
- previewPix = previewPix.scaled((int)(560*scale),(int)(384*scale), Qt::KeepAspectRatio,Qt::SmoothTransformation);
+ previewPix = previewPix.scaled(qRound(560*scale),qRound(384*scale), Qt::KeepAspectRatio,Qt::SmoothTransformation);
+ qDebug() << "W560";
}
ui->label_preview->setPixmap(previewPix);
- ui->groupBox_preview->setTitle(QString("Preview - Scale %1").arg(realScale));
+ ui->groupBox_preview->setTitle(QString("Preview - Scale %1").arg(qRound(realScale)));
+ repaint();
}
+
// When this timer is running, it checks to see if a
// preview update has been requested, and handles it if so.
void MainWindow::previewTimerTimeout()
@@ -329,14 +366,14 @@ void MainWindow::on_horizontalSlider_colorBleed_valueChanged(int value)
updateNeeded = 1;
}
-void MainWindow::on_comboBox_outputFormat_currentIndexChanged(int index)
+void MainWindow::on_comboBox_outputFormat_currentIndexChanged(int /*unused*/)
{
updateNeeded = 1;
updateDisplayModes();
}
-void MainWindow::on_comboBox_inputResolution_currentIndexChanged(int index)
+void MainWindow::on_comboBox_inputResolution_currentIndexChanged(int /*unused*/)
{
updateNeeded = 1;
}
@@ -366,13 +403,13 @@ void MainWindow::on_actionWhat_is_this_triggered()
"Once you are satisfied with your conversion settings, click \"Save Image File\" to save in one of the Apple ][ image formats based on the display mode. "
"If you want to save that image file directly to a ProDOS volume, that is now supported via the \"Save To ProDOS\" function!\n\n"
"Then you can load it up in your favorite emulator, or transfer it to real disks/flash storage to view on glorious vintage hardware.\n\n"
- "(c)2016-2017 Dagen Brock *\n\n\n * bmp2dhr is by Bill Buckels and CADIUS is by Brutal Deluxe.");
+ "(c)2016-2019 Dagen Brock *\n\n\n * bmp2dhr is by Bill Buckels and CADIUS is by Brutal Deluxe.");
msgBox.exec();
}
void MainWindow::on_pushButton_saveImage_clicked()
{
- if (ui->label_preview->pixmap() == NULL) {
+ if (ui->label_preview->pixmap() == nullptr) {
ui->plainTextEdit_lastCmd->document()->setPlainText("Please open a source image and run a preview first!");
return;
}
@@ -404,7 +441,7 @@ void MainWindow::on_pushButton_saveImage_clicked()
}
// PROMPT FOR SAVE FILENAME AND COPY (HOPEFULLY) TO SAVE FILENAME
- QString saveFile = QFileDialog::getSaveFileName(0, "Save file", QDir::currentPath(), filters, &defaultFilter);
+ QString saveFile = QFileDialog::getSaveFileName(nullptr, "Save file", QDir::currentPath(), filters, &defaultFilter);
if (QFile::exists(saveFile)) {
QFile::remove(saveFile);
}
@@ -422,7 +459,7 @@ void MainWindow::on_pushButton_saveToProdos_clicked()
{
// @Todo: This isn't appropriate when someone changes res/source and has
// a previous preview pixmap, it will think we are all OK.
- if (ui->label_preview->pixmap() == NULL) {
+ if (ui->label_preview->pixmap() == nullptr) {
ui->plainTextEdit_lastCmd->document()->setPlainText("Please open a source image and run a preview first!");
return;
}
@@ -442,7 +479,7 @@ void MainWindow::on_pushButton_saveToProdos_clicked()
// PROMPT FOR SAVE FILENAME AND COPY (HOPEFULLY) TO SAVE FILENAME
- QString prodosImageFile = QFileDialog::getSaveFileName(0, "Choose ProDOS Image to Save to", QDir::currentPath(), filters, &defaultFilter, QFileDialog::DontConfirmOverwrite);
+ QString prodosImageFile = QFileDialog::getSaveFileName(nullptr, "Choose ProDOS Image to Save to", QDir::currentPath(), filters, &defaultFilter, QFileDialog::DontConfirmOverwrite);
// ALSO GENERATE PRODOS SAFE BASENAME
QFileInfo fi(prodosImageFile);
@@ -493,7 +530,7 @@ void MainWindow::on_pushButton_saveToProdos_clicked()
// NOW CHECK AGAIN TO SEE IF OUR IMAGE FILE GOT CREATED
if (check_file.exists() && check_file.isFile()) {
- qDebug() << "IMAGE FILE CREATED.";
+ // qDebug() << "IMAGE FILE CREATED.";
} else {
ui->plainTextEdit_lastCmd->document()->setPlainText(QString("Failed creating image with command: %1").arg(commandString));
return;
@@ -512,7 +549,7 @@ void MainWindow::on_pushButton_saveToProdos_clicked()
cat_process.start(cadiusPath,cat_args);
cat_process.waitForFinished(); // BLOCKS!!!
QString cat_output = QString(cat_process.readAllStandardOutput());
- qDebug() << "CATALOG OUTPUT (cat_output)\n " << cat_output;
+ //qDebug() << "CATALOG OUTPUT (cat_output)\n " << cat_output;
// regex scanner index
int pos = 0;
@@ -532,7 +569,7 @@ void MainWindow::on_pushButton_saveToProdos_clicked()
while ((pos = rx.indexIn(cat_output, pos)) != -1) {
list << rx.cap(1);
- qDebug() << rx.cap(1);
+ //qDebug() << rx.cap(1);
pos += rx.matchedLength();
}
@@ -628,7 +665,7 @@ void MainWindow::on_pushButton_saveToProdos_clicked()
// GENERATE OUR STUPID _FileInformation.txt in the same directory
QString fileinfo_text = QString("%1=Type(%2),AuxType(%3),VersionCreate(70),MinVersion(BE),Access(E3),FolderInfo1(000000000000000000000000000000000000),FolderInfo2(000000000000000000000000000000000000)").arg(prodosFileName, filetype, auxtype);
QString fileinfo_file = QString("%1/_FileInformation.txt").arg(tmpDirPath);
- qDebug() << "TMP FILE: " << fileinfo_file;
+ //qDebug() << "TMP FILE: " << fileinfo_file;
QFile file( fileinfo_file );
if (file.open(QIODevice::ReadWrite)) {
QTextStream stream( &file );
@@ -654,7 +691,7 @@ void MainWindow::on_pushButton_saveToProdos_clicked()
// ../tools/Cadius DELETEFILE <[2mg|hdv|po]_image_path>
// YES - DELETE
QString deleteFile = QString("%1%2").arg(prodosVolumeName,prodosFileName);
- qDebug() << "DELETEFILE : " <label_preview->pixmap() == NULL) {
+ if (ui->label_preview->pixmap() == nullptr) {
ui->plainTextEdit_lastCmd->document()->setPlainText("Save cancelled because file exists.");
return;
}
@@ -703,7 +740,12 @@ void MainWindow::on_pushButton_saveToProdos_clicked()
return;
}
-void MainWindow::on_comboBox_dithering_currentIndexChanged(int index)
+void MainWindow::on_comboBox_dithering_currentIndexChanged(int /*unused*/)
+{
+ updateNeeded = 1;
+}
+
+void MainWindow::on_comboBox_previewPalette_currentIndexChanged(int /*unused*/)
{
updateNeeded = 1;
}
diff --git a/buckshot/mainwindow.h b/buckshot/mainwindow.h
index b38c65b..6815cff 100644
--- a/buckshot/mainwindow.h
+++ b/buckshot/mainwindow.h
@@ -18,7 +18,7 @@ class MainWindow : public QMainWindow
Q_OBJECT
public:
- explicit MainWindow(QWidget *parent = 0);
+ explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
@@ -28,7 +28,7 @@ private slots:
void on_horizontalSlider_crossHatch_valueChanged(int value);
void on_horizontalSlider_colorBleed_valueChanged(int value);
- void on_comboBox_outputFormat_currentIndexChanged(int index);
+ void on_comboBox_outputFormat_currentIndexChanged(int);
void on_comboBox_inputResolution_currentIndexChanged(int index);
void on_checkBox_livePreview_stateChanged(int arg1);
@@ -40,8 +40,9 @@ private slots:
void on_pushButton_saveImage_clicked();
void on_pushButton_saveToProdos_clicked();
-
void on_comboBox_dithering_currentIndexChanged(int index);
+ void on_comboBox_previewPalette_currentIndexChanged(int index);
+
private:
Ui::MainWindow *ui;
diff --git a/buckshot/mainwindow.ui b/buckshot/mainwindow.ui
index d7a23e2..ce00679 100644
--- a/buckshot/mainwindow.ui
+++ b/buckshot/mainwindow.ui
@@ -7,7 +7,7 @@
0
0
671
- 534
+ 576
@@ -17,10 +17,10 @@
- 10
+ 20
40
311
- 221
+ 211
@@ -32,7 +32,7 @@
10
24
291
- 191
+ 181
@@ -98,24 +98,11 @@
-
-
-
- 530
- 260
- 131
- 32
-
-
-
- Preview
-
-
- 305
- 378
+ 310
+ 385
31
16
@@ -127,8 +114,8 @@
- 305
- 410
+ 310
+ 415
31
16
@@ -140,8 +127,8 @@
- 360
- 260
+ 380
+ 265
101
30
@@ -154,8 +141,8 @@
147
- 408
- 151
+ 415
+ 161
22
@@ -166,8 +153,8 @@
- 8
- 266
+ 10
+ 265
134
20
@@ -183,8 +170,8 @@
147
- 264
- 181
+ 265
+ 191
26
@@ -193,9 +180,9 @@
0
- 408
+ 415
140
- 20
+ 16
@@ -208,14 +195,14 @@
- 105
- 350
+ 101
+ 355
37
16
- Scale:
+ Scale
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
@@ -225,9 +212,9 @@
0
- 370
+ 385
140
- 30
+ 16
@@ -241,7 +228,7 @@
28
- 296
+ 295
114
16
@@ -257,8 +244,8 @@
147
- 318
- 181
+ 325
+ 191
26
@@ -267,8 +254,8 @@
147
- 374
- 151
+ 385
+ 161
22
@@ -282,27 +269,27 @@
- 150
- 296
- 211
+ 155
+ 295
+ 161
16
- Source Resolution:
+ 10x10
21
- 320
+ 325
121
20
- Scale to Resolution:
+ Scale to Resolution
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
@@ -311,38 +298,22 @@
- 150
- 350
- 211
+ 155
+ 355
+ 171
16
- Scale
-
-
-
-
-
- 520
- 360
- 131
- 20
-
-
-
- Last Command Run:
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+ 1
360
- 380
- 301
+ 385
+ 291
79
@@ -351,13 +322,16 @@
10
+
+ This box shows the last conversion command run.
+
- 530
- 290
- 131
+ 410
+ 480
+ 121
32
@@ -368,7 +342,7 @@
- 330
+ 340
270
20
201
@@ -382,8 +356,8 @@
530
- 320
- 131
+ 480
+ 121
32
@@ -395,13 +369,13 @@
20
- 440
+ 445
121
20
- Dithering:
+ Dithering
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
@@ -411,12 +385,82 @@
147
- 440
- 181
+ 445
+ 191
26
+
+
+
+ 360
+ 355
+ 131
+ 21
+
+
+
+
+
+
+ 390
+ 295
+ 101
+ 20
+
+
+
+ Preview Palette:
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+
+
+ 500
+ 295
+ 161
+ 26
+
+
+
+
+
+
+ 490
+ 355
+ 141
+ 20
+
+
+
+
+ 12
+
+
+
+ <- additional arguments
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+
+
+ 500
+ 265
+ 161
+ 32
+
+
+
+ Preview
+
+