Merge pull request #14 from digarok/v0.5pre

V0.5pre to master
This commit is contained in:
Dagen Brock 2020-07-17 12:18:37 -05:00 committed by GitHub
commit 7bba4985bb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
24 changed files with 731 additions and 439 deletions

161
.github/workflows/release.yml vendored Normal file
View File

@ -0,0 +1,161 @@
name: Release Builds
on: push
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
jobs:
build-and-store-artifact:
name: Build
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-16.04, ubuntu-latest, macos-latest, windows-latest ]
steps:
# I DO NOT LIKE THIS, BUT WE CREATE THE RELEASE BEFORE BUILD IS SUCCESSFUL
# BECAUSE OF SERIOUS LIMITATIONS IN GITHUB ACTIONS
- name: Create Release
id: create_release
if: startsWith(github.ref, 'refs/tags/v') && matrix.os == 'ubuntu-latest'
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
# SAVE RELEASE URL ARTIFACT SO OTHER PLATFORMS CAN FIND WHERE TO UPLOAD RELEASES
- name: Output Release URL File
if: startsWith(github.ref, 'refs/tags/v') && matrix.os == 'ubuntu-latest'
run: echo "${{ steps.create_release.outputs.upload_url }}" > release_url.txt
- name: Save release URL file for later
if: startsWith(github.ref, 'refs/tags/v') && matrix.os == 'ubuntu-latest'
uses: actions/upload-artifact@v1
with:
name: release_url
path: release_url.txt
- uses: actions/checkout@v1
- uses: ilammy/msvc-dev-cmd@v1
- uses: jurplel/install-qt-action@v2
- name: Make GNU
if: matrix.os != 'windows-latest'
working-directory: ./buckshot
run: |
qmake
make
# - name: Mac debug
# if: matrix.os == 'macos-latest'
# working-directory: ./buckshot
# run: |
# ls
# ls -al buckshot.app
# ls -al buckshot.app/Contents
# ls -al buckshot.app/Contents/MacOS
- name: Prep Windows (Ico)
if: matrix.os == 'windows-latest'
shell: bash
run: |
cp assets/icon.ico buckshot
echo "RC_ICONS = icon.ico" >> buckshot.pro
- name: Make Windows
if: matrix.os == 'windows-latest'
working-directory: ./buckshot
run: |
qmake
nmake
# PACKAGING POST BUILD
- name: Package OSX
if: matrix.os == 'macos-latest'
run: |
./package_mac.sh
pip3 install dmgbuild
dmgbuild -s dmg-settings.json "buckshot" buckshot.dmg
- name: Package Linux
if: startsWith(matrix.os, 'ubuntu')
run: |
./package_linux.sh
- name: Package Windows
if: matrix.os == 'windows-latest'
working-directory: ./buckshot
run: |
mkdir buckshot
cp release\buckshot.exe buckshot
windeployqt buckshot
cp ../README.md buckshot
cp ../LICENSE.txt buckshot
cp ../assets/examples/* buckshot
$url = "https://github.com/digarok/b2d/releases/download/v1.4/b2d-windows-latest-v1.4.zip"
Invoke-WebRequest -Uri $url -OutFile b2d.zip
7z.exe x b2d.zip
cp b2d.exe buckshot
$url = "https://github.com/digarok/cadius/releases/download/0.0.0/cadius-windows-latest-0.0.0.zip"
Invoke-WebRequest -Uri $url -OutFile cadius.zip
7z.exe x cadius.zip
cp build/Src/Debug/Cadius.exe buckshot
7z.exe a buckshot.zip buckshot\*
mv buckshot.zip ..
# EVERYTHING BELOW IS ONLY WHEN VERSION TAGS PUSHED (i.e. tag like "v0.1")
# LOAD THE RELEASE URL FOR ALL PLATFORMS
- name: Load Release URL from artifact
if: startsWith(github.ref, 'refs/tags/v')
uses: actions/download-artifact@v1
with:
name: release_url
- name: Set upload_url
if: startsWith(github.ref, 'refs/tags/v')
shell: bash
id: release_info
run: |
value=`cat release_url/release_url.txt`
echo ::set-output name=upload_url::$value
# UPLOAD RELEASES
- name: Upload Mac Release
if: startsWith(github.ref, 'refs/tags/v') && matrix.os == 'macos-latest'
uses: actions/upload-release-asset@v1.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.release_info.outputs.upload_url }}
asset_path: ./buckshot.dmg
asset_name: buckshot.dmg
asset_content_type: application/octet-stream
- name: Upload Ubuntu Latest Release
if: startsWith(github.ref, 'refs/tags/v') && startsWith(matrix.os, 'ubuntu')
uses: actions/upload-release-asset@v1.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.release_info.outputs.upload_url }}
asset_path: ./buckshot-linux.zip
asset_name: buckshot-${{ matrix.os }}.zip
asset_content_type: application/octet-stream
- name: Upload Windows Release
if: startsWith(github.ref, 'refs/tags/v') && startsWith(matrix.os, 'windows')
id: upload-release-asset
uses: actions/upload-release-asset@v1.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.release_info.outputs.upload_url }}
asset_path: ./buckshot.zip
asset_name: buckshot-${{ matrix.os }}.zip
asset_content_type: application/zip

2
.gitignore vendored
View File

@ -1,3 +1,5 @@
.DS_Store
Makefile
build-buckshot-Desktop*
*.o

View File

@ -24,6 +24,10 @@ This project is written in C++ using the Qt framework. It calls out to two exte
You can build and run the project without it, but it won't be able to generate previews or save to ProDOS volumes without those 3rd-party binaries. The authors of those projects are not involved with this project, but have graciously encouraged my integration attempts with this software.
sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install qt5
You will need to copy the binaries of those two programs for your platform to the build directory you are running.
Example for Mac OSX "Release" build:

9
assets/buckshot.desktop Normal file
View File

@ -0,0 +1,9 @@
[Desktop Entry]
Version=1.0
Type=Application
Name=buckshot
Comment=Convert modern image formats to Apple II formats
Terminal=false
Categories=Utility;
Exec=AppRun %F
Icon=buckshot.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

BIN
assets/icon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

4
assets/make_ico.sh Executable file
View File

@ -0,0 +1,4 @@
#!/bin/bash
convert icon16.png icon32.png icon256.png icon.ico

7
buckshot/assets.qrc Normal file
View File

@ -0,0 +1,7 @@
<RCC>
<qresource prefix="/icons">
<file>resources/binary.png</file>
<file>resources/disk.png</file>
<file>resources/image.png</file>
</qresource>
</RCC>

View File

@ -26,5 +26,14 @@ HEADERS += mainwindow.h
FORMS += mainwindow.ui
DISTFILES += \
../b2d
#@todo: integrate
#DISTFILES += \
# ../b2d
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.8
RESOURCES += \
assets.qrc
# For issues of launching from Ubuntu desktops
QMAKE_LFLAGS += -no-pie

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.8.0, 2018-12-27T23:10:19. -->
<!-- Written by QtCreator 4.11.0, 2020-07-17T12:09:53. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
<value type="QByteArray">{30a1729f-a912-4116-992a-f04331cbb1d0}</value>
<value type="QByteArray">{23d26f48-d306-494e-9a6a-e70e7fc9f87a}</value>
</data>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
@ -57,29 +57,22 @@
<valuemap type="QVariantMap">
<valuelist type="QVariantList" key="ClangCodeModel.CustomCommandLineKey"/>
<value type="bool" key="ClangCodeModel.UseGlobalConfig">true</value>
<value type="bool" key="ClangTools.BuildBeforeAnalysis">false</value>
<valuelist type="QVariantList" key="ClangTools.SelectedDirs"/>
<valuelist type="QVariantList" key="ClangTools.SelectedFiles"/>
<valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/>
<value type="bool" key="ClangTools.UseGlobalSettings">true</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.12.0 clang 64bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.12.0 clang 64bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5120.clang_64_kit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.12.5 clang 64bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.12.5 clang 64bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5125.clang_64_kit</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/Users/dbrock/Google Drive/appleiigs/buckshot/build-buckshot-Desktop_Qt_5_12_0_clang_64bit-Debug</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/Users/dbrock/GDrive/appleiigs/buckshot/build-buckshot-Desktop_Qt_5_12_5_clang_64bit-Debug</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
@ -89,8 +82,6 @@
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
@ -100,14 +91,12 @@
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
@ -117,25 +106,21 @@
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/Users/dbrock/Google Drive/appleiigs/buckshot/build-buckshot-Desktop_Qt_5_12_0_clang_64bit-Release</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/Users/dbrock/Google Drive/appleiigs/buckshot/build-buckshot-Desktop_Qt_5_12_5_clang_64bit-Release</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
@ -145,8 +130,6 @@
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
@ -156,14 +139,12 @@
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
@ -173,25 +154,21 @@
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/Users/dbrock/Google Drive/appleiigs/buckshot/build-buckshot-Desktop_Qt_5_12_0_clang_64bit-Profile</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/Users/dbrock/Google Drive/appleiigs/buckshot/build-buckshot-Desktop_Qt_5_12_5_clang_64bit-Profile</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
@ -201,8 +178,6 @@
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
@ -212,14 +187,12 @@
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
@ -229,34 +202,47 @@
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Profile</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy Configuration</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="QString" key="Analyzer.Perf.CallgraphMode">dwarf</value>
<valuelist type="QVariantList" key="Analyzer.Perf.Events">
<value type="QString">cpu-cycles</value>
</valuelist>
<valuelist type="QVariantList" key="Analyzer.Perf.ExtraArguments"/>
<value type="int" key="Analyzer.Perf.Frequency">250</value>
<valuelist type="QVariantList" key="Analyzer.Perf.RecordArguments">
<value type="QString">-e</value>
<value type="QString">cpu-cycles</value>
<value type="QString">--call-graph</value>
<value type="QString">dwarf,4096</value>
<value type="QString">-F</value>
<value type="QString">250</value>
</valuelist>
<value type="QString" key="Analyzer.Perf.SampleMode">-F</value>
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Perf.StackSize">4096</value>
<value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
<value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
<value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
@ -271,6 +257,7 @@
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
<value type="QString" key="Analyzer.Valgrind.KCachegrindExecutable">kcachegrind</value>
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
@ -298,12 +285,12 @@
</valuelist>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">buckshot</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/Users/dbrock/Google Drive/appleiigs/buckshot/buckshot/buckshot.pro</value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">buckshot.pro</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">buckshot2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/Users/dbrock/GDrive/appleiigs/buckshot/buckshot/buckshot.pro</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">/Users/dbrock/GDrive/appleiigs/buckshot/buckshot/buckshot.pro</value>
<value type="QString" key="RunConfiguration.Arguments"></value>
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
<value type="bool" key="RunConfiguration.Arguments.multi">false</value>
<value type="QString" key="RunConfiguration.OverrideDebuggerStartup"></value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseDyldImageSuffix">false</value>
@ -312,7 +299,7 @@
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory"></value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">/Users/dbrock/Google Drive/appleiigs/buckshot/build-buckshot-Desktop_Qt_5_12_0_clang_64bit-Debug/buckshot.app/Contents/MacOS</value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">/Users/dbrock/GDrive/appleiigs/buckshot/build-buckshot-Desktop_Qt_5_12_5_clang_64bit-Debug/buckshot.app/Contents/MacOS</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
@ -323,10 +310,10 @@
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">20</value>
<value type="int">22</value>
</data>
<data>
<variable>Version</variable>
<value type="int">20</value>
<value type="int">22</value>
</data>
</qtcreator>

View File

@ -3,6 +3,8 @@
int main(int argc, char *argv[])
{
QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QApplication a(argc, argv);
MainWindow w;
w.show();

View File

@ -9,7 +9,7 @@
#include "qformlayout.h"
#include "qdialogbuttonbox.h"
const QString MainWindow::programName = QString("buckshot");
const QString MainWindow::version = QString("0.04");
const QString MainWindow::version = QString("0.05");
const QString MainWindow::imageName = QString("saved");
MainWindow::MainWindow(QWidget *parent) :
@ -93,6 +93,8 @@ MainWindow::MainWindow(QWidget *parent) :
updateNeeded = false;
previewTimer = new QTimer(this);
connect(previewTimer, SIGNAL(timeout()), this, SLOT(previewTimerTimeout()));
// decided to enable by checking in the form and calling this.
on_checkBox_livePreview_stateChanged(1);
}
@ -292,9 +294,6 @@ void MainWindow::on_pushButton_preview_clicked()
break;
}
QString tempDir = "/tmp";
QString converterPath = "/Users/dbrock/appleiigs/grlib/b2d";
converterPath = QString("%1/b2d").arg(QCoreApplication::applicationDirPath());
@ -302,6 +301,9 @@ void MainWindow::on_pushButton_preview_clicked()
QStringList args;
args << inputImgPath; // "/tmp/saved.bmp"
args << outputFormat;
if (outputFormat == "DL" || outputFormat == "L") {
args << "N";
}
if (ui->horizontalSlider_crossHatch->value() > 0) {
QString crossHatchArg = QString("Z%1").arg(ui->horizontalSlider_crossHatch->value());
@ -330,7 +332,7 @@ void MainWindow::on_pushButton_preview_clicked()
process.waitForFinished(); // BLOCKS!!!
QString commandString = QString("%1 %2").arg(converterPath, args.join(" "));
qDebug() << commandString;
//qDebug() << commandString;
ui->plainTextEdit_lastCmd->document()->setPlainText(commandString);
// ALL DONE SO TRY TO LOAD PREVIEW
@ -340,13 +342,13 @@ void MainWindow::on_pushButton_preview_clicked()
int scale = 3;
realScale = scale;
previewPix = previewPix.scaled(80*scale, 48*scale);
qDebug() << "W80";
//qDebug() << "W80";
}
if (previewPix.width() == 560) {
float scale = 0.5f;
realScale = scale;
previewPix = previewPix.scaled(qRound(560*scale),qRound(384*scale), Qt::KeepAspectRatio,Qt::SmoothTransformation);
qDebug() << "W560";
//qDebug() << "W560";
}
ui->label_preview->setPixmap(previewPix);
ui->groupBox_preview->setTitle(QString("Preview - Scale %1").arg(qRound(realScale)));
@ -424,7 +426,7 @@ 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-2019 Dagen Brock *\n\n\n * bmp2dhr is by Bill Buckels and CADIUS is by Brutal Deluxe.");
"(c)2016-2020 Dagen Brock *\n\n\n * bmp2dhr is by Bill Buckels and CADIUS is by Brutal Deluxe.");
msgBox.exec();
}
@ -479,11 +481,11 @@ void MainWindow::on_pushButton_saveToProdos_clicked()
{
if (!check_canSave()) return;
QString cadiusPath = "/Users/dbrock/appleiigs/tools/Cadius";
cadiusPath = QString("%1/Cadius").arg(QCoreApplication::applicationDirPath());
QString cadiusPath = "/Users/dbrock/appleiigs/cadius/cadius"; // Dev mode
cadiusPath = QString("%1/cadius").arg(QCoreApplication::applicationDirPath());
// KSYNTHED=Type(06),AuxType(2000),VersionCreate(70),MinVersion(BE),Access(E3),FolderInfo1(000000000000000000000000000000000000),FolderInfo2(000000000000000000000000000000000000)
// MYPICBIN=Type(06),AuxType(2000),VersionCreate(70),MinVersion(BE),Access(E3),FolderInfo1(000000000000000000000000000000000000),FolderInfo2(000000000000000000000000000000000000)
QString filetype = "06";
QString auxtype = "2000";
@ -518,6 +520,7 @@ void MainWindow::on_pushButton_saveToProdos_clicked()
msgBox.addButton(tr("Cancel"), QMessageBox::NoRole);
QAbstractButton* pButton140 = msgBox.addButton(tr("140KB"), QMessageBox::ApplyRole);
QAbstractButton* pButton800 = msgBox.addButton(tr("800KB"), QMessageBox::ApplyRole);
QAbstractButton* pButton32768 = msgBox.addButton(tr("32MB"), QMessageBox::ApplyRole);
msgBox.setDefaultButton(QMessageBox::Yes);
msgBox.exec();
@ -526,6 +529,8 @@ void MainWindow::on_pushButton_saveToProdos_clicked()
// set above, nothing to do
} else if (msgBox.clickedButton()==pButton800) {
imageSize = "800KB";
} else if (msgBox.clickedButton()==pButton32768) {
imageSize = "32MB";
} else {
return; // cancelled
}

View File

@ -6,10 +6,28 @@
<rect>
<x>0</x>
<y>0</y>
<width>671</width>
<height>576</height>
<width>682</width>
<height>612</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>682</width>
<height>612</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>682</width>
<height>612</height>
</size>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
@ -17,10 +35,10 @@
<widget class="QGroupBox" name="groupBox_source">
<property name="geometry">
<rect>
<x>20</x>
<y>40</y>
<x>30</x>
<y>34</y>
<width>311</width>
<height>211</height>
<height>220</height>
</rect>
</property>
<property name="title">
@ -46,10 +64,10 @@
<widget class="QGroupBox" name="groupBox_preview">
<property name="geometry">
<rect>
<x>362</x>
<y>40</y>
<x>364</x>
<y>34</y>
<width>301</width>
<height>221</height>
<height>220</height>
</rect>
</property>
<property name="title">
@ -59,7 +77,7 @@
<property name="geometry">
<rect>
<x>11</x>
<y>24</y>
<y>20</y>
<width>280</width>
<height>192</height>
</rect>
@ -98,223 +116,13 @@
</item>
</layout>
</widget>
<widget class="QLabel" name="label_crossHatch">
<property name="geometry">
<rect>
<x>310</x>
<y>385</y>
<width>31</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>Off</string>
</property>
</widget>
<widget class="QLabel" name="label_colorBleed">
<property name="geometry">
<rect>
<x>310</x>
<y>415</y>
<width>31</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>Off</string>
</property>
</widget>
<widget class="QCheckBox" name="checkBox_livePreview">
<property name="geometry">
<rect>
<x>380</x>
<y>265</y>
<width>101</width>
<height>30</height>
</rect>
</property>
<property name="text">
<string>Live Preview</string>
</property>
</widget>
<widget class="QSlider" name="horizontalSlider_colorBleed">
<property name="geometry">
<rect>
<x>147</x>
<y>415</y>
<width>161</width>
<height>22</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
<widget class="QLabel" name="label_6">
<property name="geometry">
<rect>
<x>10</x>
<y>265</y>
<width>134</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>Apple ][ Display Mode</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
<widget class="QComboBox" name="comboBox_outputFormat">
<property name="geometry">
<rect>
<x>147</x>
<y>265</y>
<width>191</width>
<height>26</height>
</rect>
</property>
</widget>
<widget class="QLabel" name="label_5">
<property name="geometry">
<rect>
<x>0</x>
<y>415</y>
<width>140</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>Color Bleed Reduction</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>101</x>
<y>355</y>
<width>37</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>Scale</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
<widget class="QLabel" name="label_4">
<property name="geometry">
<rect>
<x>0</x>
<y>385</y>
<width>140</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>Crosshatch Threshold</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>28</x>
<y>295</y>
<width>114</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>Source Resolution:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
<widget class="QComboBox" name="comboBox_inputResolution">
<property name="geometry">
<rect>
<x>147</x>
<y>325</y>
<width>191</width>
<height>26</height>
</rect>
</property>
</widget>
<widget class="QSlider" name="horizontalSlider_crossHatch">
<property name="geometry">
<rect>
<x>147</x>
<y>385</y>
<width>161</width>
<height>22</height>
</rect>
</property>
<property name="maximum">
<number>50</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
<widget class="QLabel" name="label_sourceResolution">
<property name="geometry">
<rect>
<x>155</x>
<y>295</y>
<width>161</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>10x10</string>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>21</x>
<y>325</y>
<width>121</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>Scale to Resolution</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
<widget class="QLabel" name="label_scaleFactor">
<property name="geometry">
<rect>
<x>155</x>
<y>355</y>
<width>171</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>1</string>
</property>
</widget>
<widget class="QPlainTextEdit" name="plainTextEdit_lastCmd">
<property name="geometry">
<rect>
<x>360</x>
<y>370</y>
<width>291</width>
<height>71</height>
<x>10</x>
<y>540</y>
<width>661</width>
<height>41</height>
</rect>
</property>
<property name="font">
@ -326,161 +134,367 @@
<string>This box shows the last conversion command run.</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_saveImage">
<widget class="QFrame" name="frame">
<property name="geometry">
<rect>
<x>370</x>
<y>480</y>
<width>141</width>
<height>32</height>
<x>10</x>
<y>260</y>
<width>341</width>
<height>271</height>
</rect>
</property>
<property name="text">
<string>Save Binary Image</string>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QWidget" name="formLayoutWidget">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>321</width>
<height>231</height>
</rect>
</property>
<layout class="QFormLayout" name="formLayout">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
</property>
<property name="horizontalSpacing">
<number>-1</number>
</property>
<property name="verticalSpacing">
<number>-1</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
<string>Apple ][ Display Mode</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="comboBox_outputFormat">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>1</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Source Resolution</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="label_sourceResolution">
<property name="text">
<string>10x10</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Scale to Resolution</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="comboBox_inputResolution"/>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Scale</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLabel" name="label_scaleFactor">
<property name="text">
<string>1</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Crosshatch Threshold</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="4" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_10">
<item>
<widget class="QSlider" name="horizontalSlider_crossHatch">
<property name="maximum">
<number>50</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_crossHatch">
<property name="text">
<string>Off</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="5" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Color Bleed Reduction</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="5" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_11">
<item>
<widget class="QSlider" name="horizontalSlider_colorBleed">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_colorBleed">
<property name="text">
<string>Off</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="6" column="0">
<widget class="QLabel" name="label_8">
<property name="text">
<string>Dithering</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QComboBox" name="comboBox_dithering">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
<widget class="Line" name="line">
<property name="geometry">
<rect>
<x>340</x>
<y>270</y>
<width>20</width>
<height>201</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
<widget class="QPushButton" name="pushButton_saveToProdos">
<property name="geometry">
<rect>
<x>510</x>
<y>480</y>
<width>141</width>
<height>32</height>
</rect>
</property>
<property name="text">
<string>Save to ProDOS</string>
</property>
</widget>
<widget class="QLabel" name="label_8">
<property name="geometry">
<rect>
<x>20</x>
<y>445</y>
<width>121</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>Dithering</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
<widget class="QComboBox" name="comboBox_dithering">
<property name="geometry">
<rect>
<x>147</x>
<y>445</y>
<width>191</width>
<height>26</height>
</rect>
</property>
</widget>
<widget class="QLineEdit" name="lineEdit_addArgs">
<widget class="QFrame" name="frame_2">
<property name="geometry">
<rect>
<x>360</x>
<y>340</y>
<width>131</width>
<height>21</height>
<y>260</y>
<width>311</width>
<height>271</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QWidget" name="formLayoutWidget_2">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>291</width>
<height>101</height>
</rect>
</property>
<layout class="QFormLayout" name="formLayout_2">
<item row="0" column="1">
<widget class="QPushButton" name="pushButton_preview">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Manual Preview</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_9">
<property name="text">
<string>Preview Palette</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="comboBox_previewPalette"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_10">
<property name="text">
<string>Additional arguments</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="lineEdit_addArgs">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QCheckBox" name="checkBox_livePreview">
<property name="text">
<string>Live Preview</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="verticalLayoutWidget">
<property name="geometry">
<rect>
<x>10</x>
<y>120</y>
<width>291</width>
<height>148</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QPushButton" name="pushButton_savePreview">
<property name="layoutDirection">
<enum>Qt::RightToLeft</enum>
</property>
<property name="styleSheet">
<string notr="true">text-align:left;</string>
</property>
<property name="text">
<string>Save preview as PNG/BMP</string>
</property>
<property name="icon">
<iconset resource="assets.qrc">
<normaloff>:/icons/resources/image.png</normaloff>:/icons/resources/image.png</iconset>
</property>
<property name="iconSize">
<size>
<width>36</width>
<height>32</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_saveImage">
<property name="layoutDirection">
<enum>Qt::RightToLeft</enum>
</property>
<property name="styleSheet">
<string notr="true">text-align:left;</string>
</property>
<property name="text">
<string>Save output as local binary</string>
</property>
<property name="icon">
<iconset resource="assets.qrc">
<normaloff>:/icons/resources/binary.png</normaloff>:/icons/resources/binary.png</iconset>
</property>
<property name="iconSize">
<size>
<width>36</width>
<height>32</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_saveToProdos">
<property name="layoutDirection">
<enum>Qt::RightToLeft</enum>
</property>
<property name="styleSheet">
<string notr="true">text-align:left;</string>
</property>
<property name="text">
<string>Save output on ProDOS image</string>
</property>
<property name="icon">
<iconset resource="assets.qrc">
<normaloff>:/icons/resources/disk.png</normaloff>:/icons/resources/disk.png</iconset>
</property>
<property name="iconSize">
<size>
<width>36</width>
<height>32</height>
</size>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
<widget class="QLabel" name="label_9">
<property name="geometry">
<rect>
<x>390</x>
<y>295</y>
<width>101</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>Preview Palette:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
<widget class="QComboBox" name="comboBox_previewPalette">
<property name="geometry">
<rect>
<x>500</x>
<y>295</y>
<width>161</width>
<height>26</height>
</rect>
</property>
</widget>
<widget class="QLabel" name="label_10">
<property name="geometry">
<rect>
<x>490</x>
<y>340</y>
<width>141</width>
<height>20</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>&lt;- additional arguments</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
<widget class="QPushButton" name="pushButton_preview">
<property name="geometry">
<rect>
<x>500</x>
<y>265</y>
<width>161</width>
<height>32</height>
</rect>
</property>
<property name="text">
<string>Preview</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_savePreview">
<property name="geometry">
<rect>
<x>370</x>
<y>450</y>
<width>281</width>
<height>32</height>
</rect>
</property>
<property name="text">
<string>Save preview as PNG/BMP</string>
</property>
</widget>
<zorder>frame_2</zorder>
<zorder>frame</zorder>
<zorder>groupBox_source</zorder>
<zorder>groupBox_preview</zorder>
<zorder>horizontalLayoutWidget</zorder>
<zorder>plainTextEdit_lastCmd</zorder>
</widget>
<widget class="QMenuBar" name="menuBar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>671</width>
<width>682</width>
<height>22</height>
</rect>
</property>
@ -492,15 +506,6 @@
</widget>
<addaction name="menuAbout"/>
</widget>
<widget class="QToolBar" name="mainToolBar">
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
<bool>false</bool>
</attribute>
</widget>
<widget class="QStatusBar" name="statusBar"/>
<action name="actionWhat_is_this">
<property name="text">
<string>What is this?</string>
@ -508,6 +513,8 @@
</action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<resources>
<include location="assets.qrc"/>
</resources>
<connections/>
</ui>

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 B

BIN
buckshot/resources/disk.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 368 B

15
dmg-settings.json Normal file
View File

@ -0,0 +1,15 @@
{
"title": "Buckshot",
"background": "assets/buckshot_dmg_bg_600x500.png",
"format": "UDZO",
"compression-level": 9,
"icon": "assets/icons.icns",
"window": { "position": { "x": 200, "y": 120 },
"size": { "width": 600, "height": 500 } },
"contents": [
{ "x": 410, "y": 130, "type": "link", "path": "/Applications" },
{ "x": 184, "y": 130, "type": "file", "path": "buckshot-package-osx/buckshot.app" },
{ "x": 184, "y": 330, "type": "file", "path": "buckshot-package-osx/README.txt" },
{ "x": 410, "y": 330, "type": "file", "path": "buckshot-package-osx/LICENSE.txt" }
]
}

0
make_dist_linux.sh Executable file → Normal file
View File

View File

@ -29,7 +29,7 @@ cp README.md $DEXTRAS/README.txt
cp LICENSE.txt $DEXTRAS
# COPY BINARIES FROM EXTERNAL PROJECTS
cp ../b2d $DDIR/Contents/MacOS
cp ../tools/Cadius $DDIR/Contents/MacOS
cp ../buckshot-bins/mac/b2d $DDIR/Contents/MacOS
cp ../buckshot-bins/mac/cadius $DDIR/Contents/MacOS
# packaging now in DMG script

40
package_linux.sh Executable file
View File

@ -0,0 +1,40 @@
PACKAGEDIR=buckshot-package-ubuntu
APP=buckshot/buckshot
CONTENTDIR=${PACKAGEDIR}/buckshot.app/Contents
ASSETDIR=assets
ID=${0##*/}
echo "${ID}: MKDIR PACKAGEDIR"
mkdir -p $PACKAGEDIR
echo "${ID}: COPY APP -> PACKAGEDIR"
cp -r $APP $PACKAGEDIR
echo "${ID}: COPY EXTRA COMMON FILES"
cp README.md $PACKAGEDIR/README.txt
cp LICENSE.txt $PACKAGEDIR
cp assets/buckshot.desktop $PACKAGEDIR
cp assets/icon256.png $PACKAGEDIR/buckshot.png
cp assets/examples/* $PACKAGEDIR/
echo "${ID}: DOWNLOAD UTILITY BINARIES"
curl -s -L -o cadius.zip https://github.com/digarok/cadius/releases/download/0.0.0/cadius-ubuntu-latest-0.0.0.zip
curl -s -L -o b2d.zip https://github.com/digarok/b2d/releases/download/v1.4/b2d-ubuntu-latest-v1.4.zip
unzip -o cadius.zip -d cadius
unzip -o b2d.zip -d b2d
echo "${ID}: COPY UTILITY BINARIES"
chmod +x b2d/b2d # @TODO: Fix me
cp b2d/b2d $PACKAGEDIR
cp cadius/cadius $PACKAGEDIR
echo "${ID}: INSTALL EXTRA DEV PACKAGES"
sudo apt-get install -y libxkbcommon-x11-0
echo "${ID}: RUN DEPLOY BUILD"
wget -nv https://github.com/probonopd/linuxdeployqt/releases/download/5/linuxdeployqt-5-x86_64.AppImage
chmod +x linuxdeployqt-5-x86_64.AppImage
./linuxdeployqt-5-x86_64.AppImage $PACKAGEDIR/buckshot -appimage -bundle-non-qt-libs -verbose=2
zip -r buckshot-linux.zip $PACKAGEDIR

40
package_mac.sh Executable file
View File

@ -0,0 +1,40 @@
PACKAGEDIR=buckshot-package-osx
APPBUILDDIR=buckshot/buckshot.app
CONTENTDIR=${PACKAGEDIR}/buckshot.app/Contents
ASSETDIR=assets
ID=${0##*/}
# SET PATH
#echo "${ID}: SET QT ENV"
#. qt-env.sh
echo "${ID}: RUN macdeployqt"
macdeployqt $APPBUILDDIR
echo "${ID}: MKDIR PACKAGEDIR"
mkdir -p $PACKAGEDIR
echo "${ID}: COPY APPBUILDDIR -> PACKAGEDIR"
cp -r $APPBUILDDIR $PACKAGEDIR
echo "${ID}: COPY EXTRA FILES"
mkdir -p $CONTENTDIR/MacOS
mkdir -p $CONTENTDIR/Resources
cp $ASSETDIR/Info.plist $CONTENTDIR
cp $ASSETDIR/icons.icns $CONTENTDIR/Resources
cp README.md $PACKAGEDIR/README.txt
cp LICENSE.txt $PACKAGEDIR
cp $ASSETDIR/examples/* $PACKAGEDIR
echo "${ID}: DOWNLOAD UTILITY BINARIES"
curl -s -L -o cadius.zip https://github.com/digarok/cadius/releases/download/0.0.0/cadius-macos-latest-0.0.0.zip
curl -s -L -o b2d.zip https://github.com/digarok/b2d/releases/download/v1.4/b2d-macos-latest-v1.4.zip
unzip -o cadius.zip -d cadius
unzip -o b2d.zip -d b2d
chmod +x b2d/b2d # @TODO: Fix me
cp b2d/b2d $CONTENTDIR/MacOS
cp cadius/cadius $CONTENTDIR/MacOS

0
platform/linux/buckshot.sh Executable file → Normal file
View File