Compare commits

..

No commits in common. "master" and "v1.3.0" have entirely different histories.

368 changed files with 113125 additions and 214766 deletions

Binary file not shown.

View File

@ -5,44 +5,17 @@ is in Photshop Notes.xlsm, an Excel worksheet.
Smaller icons require manual editing for best appearance.
For Windows-----------
Windows .ico file should contain 16x16, 32x32, 48x48, and 256x256 images. We
also include 24x24 for Windows XP compatibility.
A .ico file can be built at the website icoconvert.com.
For macOS -----------
MacOS .icns file should contain:
macOS naming conventions for icons:
icon_64x64.png (for standard resolution)
icon_64x64@2x.png (for hi-res Retina icons)
Icon size (@1x) Icon size (@2x)
512px × 512px (512pt × 512pt @1x) 1024px × 1024px (512pt × 512pt @2x)
256px × 256px (256pt × 256pt @1x) 512px × 512px (256pt × 256pt @2x)
128px × 128px (128pt × 128pt @1x) 256px × 256px (128pt × 128pt @2x)
32px × 32px (32pt × 32pt @1x) 64px × 64px (32pt × 32pt @2x)
16px × 16px (16pt × 16pt @1x) 32px × 32px (16pt × 16pt @2x)
The macOS hi-res icons are double the size of the standard icons.
ex. the icon_128x128@2x is actually a 256x256 image. Mac automatically
selects the correct one based on the type of display.
macOS defaults to using pt (point) instead of px (pixel) for image size. Set the image DPI to 72 px for the
original image and it should not cause any sizing issues if using px.
Mac has a native command line tool, "iconutil", for creating *.icns file.
Create the images, listed below, in a folder named oscar-icons.iconset (note the extension on a folder)
For more information check "man iconutil" or the Mac Developer documentation at:
https://developer.apple.com/library/archive/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Optimizing/Optimizing.html
macOS .icns file should contain:
(Icon size in px)
icon_16x16.png
icon_16x16@2x.png (32x32 image)
icon_32x32.png
icon_32x32@2x.png (64x64 image)
icon_128x128.png
icon_128x128@2x.png (256x256 image)
icon_256x256.png
icon_256x256@2x.png (512x512 image)
icon_512x512.png
icon_512x512@2x.png (1024x1024 image)
The macOS *.icns file can also be edited on Windows using the Greenfish Icon Editor.
The .icns file can be edited on Windows using the Greenfish Icon Editor.

View File

@ -17,7 +17,7 @@ After installing the required packages:
$ mkdir OSCAR
$ cd OSCAR
$ git clone https://gitlab.com/CrimsonNape/OSCAR-code.git
$ git clone https://gitlab.com/pholy/OSCAR-code.git
$ mkdir build
$ cd build
$ qmake ../OSCAR-code/OSCAR_QT.pro.

View File

@ -1,9 +0,0 @@
#! /bin/bash
set -e
#
# delete all the folder not deleted by the purge command
# at the beginning, there was
# application name
appli_name="OSCAR_beta"

View File

@ -1,7 +0,0 @@
#
# delete all the folder not deleted by the purge command
# now, application name
appli_name="OSCAR-test"

View File

@ -1,16 +0,0 @@
# begin common script shell
# delete all the folder not deleted by the purge command
echo "appli_name=${appli_name}"
list=$(find /usr -name ${appli_name} 2>/dev/null)
for folder in $list
do
echo "to delete : '$folder'"
rm -r $folder
done
# end common script shell

View File

@ -4,15 +4,12 @@
echo "appli_name=${appli_name}"
list=$(find /usr/share -name ${appli_name} 2>/dev/null)
list=$(find /usr -name ${appli_name} 2>/dev/null)
for folder in $list
do
if [ $folder != '/usr/share/OSCAR' ]
then
echo "to delete : '$folder'"
rm -r $folder
fi
done
# end common script shell

View File

@ -1,10 +0,0 @@
#! /bin/bash
set -e
#
# modify by untoutseul05 to search local name for Desktop Folder
# the package now suits the fhs
# application name
appli_name="OSCAR-test"

View File

@ -93,7 +93,7 @@ if [[ ${VERSION} == *-* ]]; then
if [[ ${PRERELEASE} == *rc* ]]; then
RC=1
fi
VERSION="${VERSION}-${PRERELEASE}"
VERSION="${VERSION}~${PRERELEASE}"
fi
GIT_REVISION=`awk '/#define GIT_REVISION / { gsub(/"/, "", $3); print $3 }' ${SRC}/git_info.h`
echo Version: ${VERSION}
@ -112,7 +112,7 @@ if [[ -n ${PRERELEASE} && -z ${RC} ]] ; then
post_rem="clean_rm-result-NN-test.sh"
else
post_inst="ln_usrbin-result-NN.sh"
pre_rem="rm_usrbin-result-NN.sh"
pre_rem="rm_usrbin-result.sh"
post_rem="clean_rm-result-NN.sh"
fi
@ -142,15 +142,14 @@ if [ -f "./$deb_file" ]; then
exit
fi
## retrieve packages version for the dependencies
# retrieve packages version for the dependencies
getPkg libqt5core
qtver=$PKGVERS
corePkg=$PKGNAME
getPkg libdouble
dblPkg=$PKGNAME
echo "QT name version " $corePkg $qtver
echo "QT version " $qtver
echo "DblConv package " $dblPkg
# clean folders need to create the package
@ -242,7 +241,7 @@ fpm --input-type dir --output-type deb \
--depends $dblPkg \
--depends libpcre16-3 \
--depends qttranslations5-l10n \
--depends "${corePkg} >= ${qtver}" \
--depends "libqt5core5a >= 5.9" \
--depends libqt5serialport5 \
--depends libqt5xml5 \
--depends libqt5network5 \

View File

@ -47,7 +47,7 @@ if [[ ${VERSION} == *-* ]]; then
if [[ ${PRERELEASE} == *rc* ]]; then
RC=1
fi
VERSION="${VERSION}-${PRERELEASE}"
VERSION="${VERSION}~${PRERELEASE}"
fi
GIT_REVISION=`awk '/#define GIT_REVISION / { gsub(/"/, "", $3); print $3 }' ${SRC}/git_info.h`
echo Version: ${VERSION}

View File

@ -1,9 +0,0 @@
#! /bin/bash
#
# no error is permitted
set -e
# application name
appli_name="OSCAR-test"

View File

@ -52,7 +52,7 @@ NOTE: Official builds are currently made with [macOS 10.14 Mojave] and Command-L
1. Build OSCAR:
git clone https://gitlab.com/CrimsonNape/OSCAR-code.git
git clone https://gitlab.com/pholy/OSCAR-code.git
cd OSCAR-code
mkdir build
cd build

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 110 KiB

View File

@ -1,5 +1,5 @@
{\rtf1\ansi\ansicpg1252\cocoartf2639
\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica-Bold;\f1\fswiss\fcharset0 Helvetica;}
{\rtf1\ansi\ansicpg1252\cocoartf1504\cocoasubrtf840
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;\red28\green28\blue28;\red255\green255\blue255;\red9\green47\blue157;
\red10\green0\blue109;\red0\green0\blue0;}
{\*\expandedcolortbl;;\cssrgb\c14510\c14510\c14510;\cssrgb\c100000\c100000\c100000;\cssrgb\c2353\c27059\c67843;
@ -17,76 +17,81 @@ System requirements\
\cf0 \cb1 \
\pard\tx220\tx720\pardeftab720\li720\fi-720\partightenfactor0
\ls1\ilvl0
\f1\b0\fs28 \cf2 \cb3 \kerning1\expnd0\expndtw0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0
MacOSX 10.13 or later.\cb1 \
\b0\fs28 \cf2 \cb3 \kerning1\expnd0\expndtw0 {\listtext \'95 }\expnd0\expndtw0\kerning0
MacOSX 10.12 or later.\cb1 \
\pard\pardeftab720\partightenfactor0
\f0\b\fs33\fsmilli16800 \cf2 \cb3 \
\b\fs33\fsmilli16800 \cf2 \cb3 \
\
Installation\
\pard\pardeftab720\partightenfactor0
\f1\b0\fs28 \cf2 \cb1 \
\b0\fs28 \cf2 \cb1 \
\pard\tx220\tx720\pardeftab720\li720\fi-720\partightenfactor0
\ls2\ilvl0\cf2 \cb3 \kerning1\expnd0\expndtw0 {\listtext 1. }\expnd0\expndtw0\kerning0
To install OSCAR, you need to copy it to the Applications folder on your computer. To do so:\uc0\u8232 \cb1 \
\pard\tx940\tx1440\pardeftab720\li1440\fi-1440\partightenfactor0
\ls2\ilvl1\cf2 \cb3 \kerning1\expnd0\expndtw0 {\listtext A. }\expnd0\expndtw0\kerning0
Click on the OSCAR icon and drag it onto the Applications folder icon. Note the green "+" cursor indicating that it will be copied to this location when you unclick:\uc0\u8232 \cf4 \cb1 {{\NeXTGraphic Oscar-mac-4-click.jpg \width15040 \height12440 \noorient \appleattachmentpadding0 \appleembedtype0 \appleaqc
}¬}\cf2 \uc0\u8232 \cf4 {{\NeXTGraphic Oscar-mac-5-drag.jpg \width15040 \height12440 \noorient \appleattachmentpadding0 \appleembedtype0 \appleaqc
Open the Applications folder in Finder by selecting the "Go" menu and then "Applications": \uc0\u8232 \u8232 \cf4 \cb1 {{\NeXTGraphic Oscar-mac-2-open-applications-folder.jpg \width9620 \height8140 \noorient
}¬}\cf2 \uc0\u8232 \u8232 \cf4 {{\NeXTGraphic Oscar-mac-3-opened-applications-folder.jpg \width17640 \height10960 \noorient
}¬}\cf2 \uc0\u8232 \
\ls2\ilvl1\cb3 \kerning1\expnd0\expndtw0 {\listtext B. }\expnd0\expndtw0\kerning0
Arrange the windows so that you can see the OSCAR icon and the Applications folder, as shown below.\uc0\u8232 \cb1 \
\ls2\ilvl1\cb3 \kerning1\expnd0\expndtw0 {\listtext C. }\expnd0\expndtw0\kerning0
Click on the OSCAR icon and drag it into the Applications window. Note the green "+" cursor indicating that it will be copied to this location when you unclick: \cf4 \cb1 {{\NeXTGraphic Oscar-mac-4-click.jpg \width18520 \height12920 \noorient
}¬}\cf2 \uc0\u8232 \u8232 \cf4 {{\NeXTGraphic Oscar-mac-5-drag.jpg \width18520 \height12920 \noorient
}¬}\cf2 \uc0\u8232 \
\pard\tx220\tx720\pardeftab720\li720\fi-720\partightenfactor0
\ls2\ilvl0\cf2 \cb3 \kerning1\expnd0\expndtw0 {\listtext 2. }\expnd0\expndtw0\kerning0
To launch OSCAR for the first time, you will need to grant it permission, otherwise you will receive an error that it "can't be opened because it is from an unidentified developer." To grant OSCAR permission to run:\uc0\u8232 \cb1 \
\pard\tx940\tx1440\pardeftab720\li1440\fi-1440\partightenfactor0
\ls2\ilvl1\cf2 \cb3 \kerning1\expnd0\expndtw0 {\listtext A. }Double-click the Applications folder icon and find the new OSCAR icon in the Applications folder.\uc0\u8232 \
{\listtext B. }\expnd0\expndtw0\kerning0
Hold down the "control" key on your keyboard and click on the new OSCAR icon in the Applications folder. Select "open" from the menu that will appear: \cf4 \cb1 {{\NeXTGraphic Oscar-mac-6-right-click-open.jpg \width17320 \height11180 \noorient \appleattachmentpadding0 \appleembedtype0 \appleaqc
\ls2\ilvl1\cf2 \cb3 \kerning1\expnd0\expndtw0 {\listtext A. }\expnd0\expndtw0\kerning0
Hold down the "control" key on your keyboard and click on the new OSCAR icon in the Applications folder. Select "open" from the menu that will appear: \cf4 \cb1 {{\NeXTGraphic Oscar-mac-6-right-click-open.jpg \width18520 \height13460 \noorient
}¬}\cf2 \uc0\u8232 \
\ls2\ilvl1\cb3 \kerning1\expnd0\expndtw0 {\listtext C. }\expnd0\expndtw0\kerning0
A window will appear advising you that "OSCAR is from an unidentified developer" and asking if you want to run it. Click "Open" to grant it permission: \uc0\u8232 \cf5 \cb1 {{\NeXTGraphic Oscar-mac-7-open-confirm-with-cursor.jpg \width10640 \height6220 \noorient \appleattachmentpadding0 \appleembedtype0 \appleaqc
}¬}\cf2 \uc0\u8232 \u8232 \cb3 On macOS Catalina or later, you may first get a window without an "Open" button, so you may need to attempt this twice. You will only need to do this the first time you run OSCAR after installing any new version.\uc0\u8232 \
\ls2\ilvl1\cb3 \kerning1\expnd0\expndtw0 {\listtext B. }\expnd0\expndtw0\kerning0
A window will appear advising you that "OSCAR is from an unidentified developer" and asking if you want to run it. Click "Open" to grant it permission: \uc0\u8232 \cf5 \cb1 {{\NeXTGraphic Oscar-mac-7-open-confirm-with-cursor.jpg \width10640 \height6220 \noorient
}¬}\cf2 \uc0\u8232 \u8232 \cb3 On macOS Catalina, you may first get a window without an "Open" button, so you may need to attempt this twice. You will only need to do this the first time you run OSCAR after installing any new version.\uc0\u8232 \
\pard\tx220\tx720\tx1440\pardeftab720\li720\fi-720\partightenfactor0
\ls2\ilvl0\cf2 \cb1 \kerning1\expnd0\expndtw0 {\listtext 3. }
\f0\b \cb3 \expnd0\expndtw0\kerning0
On macOS Catalina or later
\f1\b0 , the first time you import CPAP data from an SD card you will see the following prompt:\uc0\u8232 \cf4 \cb1 {{\NeXTGraphic Oscar-mac-7b-catalina-permissions.jpg \width10640 \height5360 \noorient \appleattachmentpadding0 \appleembedtype0 \appleaqc
\b \cb3 \expnd0\expndtw0\kerning0
On macOS Catalina
\b0 , the first time you import CPAP data from an SD card you will see the following prompt:\uc0\u8232 \cf4 \cb1 {{\NeXTGraphic Oscar-mac-7b-catalina-permissions.jpg \width10640 \height5360 \noorient
}¬}\uc0\u8232 \cf2 \cb3 Click "OK" to grant OSCAR permission to read your SD cards.\cb1 \
\pard\pardeftab720\partightenfactor0
\f0\b\fs33\fsmilli16800 \cf2 \cb3 \
\b\fs33\fsmilli16800 \cf2 \cb3 \
\
Troubleshooting\
\cf0 \cb1 \
\pard\tx220\tx720\pardeftab720\li720\fi-720\partightenfactor0
\ls3\ilvl0
\f1\b0\fs28 \cf2 \cb3 \kerning1\expnd0\expndtw0 {\listtext \uc0\u8226 }
\f0\b \expnd0\expndtw0\kerning0
\b0\fs28 \cf2 \cb3 \kerning1\expnd0\expndtw0 {\listtext \'95 }
\b \expnd0\expndtw0\kerning0
Help, I'm getting the following error!
\f1\b0 \uc0\u8232 \cf5 \cb1 {{\NeXTGraphic Oscar-mac-8-open-error.jpg \width10640 \height6220 \noorient \appleattachmentpadding0 \appleembedtype0 \appleaqc
\b0 \uc0\u8232 \cf5 \cb1 {{\NeXTGraphic Oscar-mac-8-open-error.jpg \width10640 \height6220 \noorient
}¬}\cf2 \uc0\u8232 \u8232 \cf6 \cb3 This can happen after installing a new version of OSCAR. Open the Applications folder as shown in step 1 above and then see step 2 above to grant OSCAR permission to run.\uc0\u8232 \
\ls3\ilvl0\cf2 \kerning1\expnd0\expndtw0 {\listtext \uc0\u8226 }
\f0\b \expnd0\expndtw0\kerning0
Help, I'm running macOS Catalina or later and I'm getting the following warning about malware when I try to open OSCAR!
\f1\b0 \cf4 \cb1 {{\NeXTGraphic Oscar-mac-9-catalina-open-1.jpg \width10640 \height6180 \noorient \appleattachmentpadding0 \appleembedtype0 \appleaqc
}¬}\cf2 \uc0\u8232 \u8232 \cb3 This is simply an extra step in Catalina and later versions of macOS. Click "Cancel" and then try step 2 again to grant OSCAR permission to run.\uc0\u8232 \cb1 \
\ls3\ilvl0\cb3 \kerning1\expnd0\expndtw0 {\listtext \uc0\u8226 }
\f0\b \expnd0\expndtw0\kerning0
Help, I'm running macOS Catalina or later and OSCAR won't import anything from my SD card!
\f1\b0 \cb1 \uc0\u8232 \u8232 \cb3 You may have accidentally clicked "Don't Allow" at the prompt shown in step 3 above. To fix this, open
\f0\b System Preferences
\f1\b0 , select
\f0\b Security & Privacy
\f1\b0 , and select the
\f0\b Privacy
\f1\b0 tab. Scroll down and select
\f0\b Files & Folders
\f1\b0 from the list on the left and then check the
\f0\b Removable Volumes
\f1\b0 box under OSCAR as shown: \cf4 \cb1 {{\NeXTGraphic Oscar-mac-10-catalina-fix-permissions.jpg \width15600 \height13700 \noorient \appleattachmentpadding0 \appleembedtype0 \appleaqc
\ls3\ilvl0\cf2 \kerning1\expnd0\expndtw0 {\listtext \'95 }
\b \expnd0\expndtw0\kerning0
Help, I'm running macOS Catalina and I'm getting the following warning about malware when I try to open OSCAR!
\b0 \cf4 \cb1 {{\NeXTGraphic Oscar-mac-9-catalina-open-1.jpg \width10640 \height6180 \noorient
}¬}\cf2 \uc0\u8232 \u8232 \cb3 This is simply an extra step in Catalina. Click "Cancel" and then try step 2 again to grant OSCAR permission to run.\uc0\u8232 \cb1 \
\ls3\ilvl0\cb3 \kerning1\expnd0\expndtw0 {\listtext \'95 }
\b \expnd0\expndtw0\kerning0
Help, I'm running macOS Catalina and OSCAR won't import anything from my SD card!
\b0 \cb1 \uc0\u8232 \u8232 \cb3 You may have accidentally clicked "Don't Allow" at the prompt shown in step 3 above. To fix this, open
\b System Preferences
\b0 , select
\b Security & Privacy
\b0 , and select the
\b Privacy
\b0 tab. Scroll down and select
\b Files & Folders
\b0 from the list on the left and then check the
\b Removable Volumes
\b0 box under OSCAR as shown: \cf4 \cb1 {{\NeXTGraphic Oscar-mac-10-catalina-fix-permissions.jpg \width15600 \height13700 \noorient
}¬}\cf2 \uc0\u8232 \u8232 \cb3 You may first need to click on the lock in the bottom-left corner and enter your password in order to make this change.\uc0\u8232 \
\ls3\ilvl0\kerning1\expnd0\expndtw0 {\listtext \uc0\u8226 }
\f0\b I still have questions!
\f1\b0 \uc0\u8232 \u8232 \expnd0\expndtw0\kerning0
\ls3\ilvl0\kerning1\expnd0\expndtw0 {\listtext \'95 }
\b I still have questions!
\b0 \uc0\u8232 \u8232 \expnd0\expndtw0\kerning0
The most up-to-date version of these instructions can be found at {\field{\*\fldinst{HYPERLINK "http://www.apneaboard.com/wiki/index.php/OSCAR_Installation:_Apple_Mac"}}{\fldrslt http://www.apneaboard.com/wiki/index.php/OSCAR_Installation:_Apple_Mac}}.\
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

View File

@ -1,6 +1,8 @@
#!/bin/bash
# Usage: create_dmg target_name file1 [file2...]
# TODO: add background image and symlink to /Applications, once we have a signed app and no longer need the README
STAGING_DIR="./Staging"
# Extract the target name
@ -9,11 +11,9 @@ shift
# Look for the .app in the files to be added to the .dmg
APP=""
BACKGROUND_IMG=""
for src in "$@"
do
[[ "$src" == *.app ]] && APP="$src"
[[ "$src" == *background.png ]] && BACKGROUND_IMG="$src"
done
if [[ ${APP} != "" ]]; then
@ -52,69 +52,7 @@ do
cp -a "$src" "${STAGING_DIR}/."
done
VOL_NAME="${TARGET} ${VERSION} Installer"
echo "Creating .dmg"
if [[ ${BACKGROUND_IMG} == "" ]]; then
hdiutil create -srcfolder "${STAGING_DIR}" -volname "${VOL_NAME}" -fs HFS+ -fsargs "-c c=64,a=16,e=16" -format UDZO -imagekey zlib-level=9 -o "${TARGET}-${VERSION}.dmg" -ov
else
# Arrange the files needed for a custom Finder display.
pushd "${STAGING_DIR}" > /dev/null
# Add a link to /Applications
echo "Add link to /Applications"
ln -s /Applications
# Add a hidden .background folder and move the png to it
echo "Move background.png into position"
mkdir .background
mv background.png .background/background.png
popd > /dev/null
# Create a temporary image then mount it so we can tell Finder how to display it.
TARGET_TMP="${TARGET}-${VERSION}-tmp.dmg"
hdiutil create -srcfolder "${STAGING_DIR}" -volname "${VOL_NAME}" -fs HFS+ -fsargs "-c c=64,a=16,e=16" -format UDRW "${TARGET_TMP}" -ov
DEVICE=$(hdiutil attach "${TARGET_TMP}" | egrep '^/dev/' | sed 1q | awk '{print $1}')
sleep 2
# tell Finder to resize the window, set the background,
# change the icon size, place the icons in the right position, etc.
echo '
tell application "Finder"
tell disk "'${VOL_NAME}'"
open
set current view of container window to icon view
set toolbar visible of container window to false
set statusbar visible of container window to false
set the bounds of container window to {400, 100, 1040, 610}
set viewOptions to the icon view options of container window
set arrangement of viewOptions to not arranged
set icon size of viewOptions to 72
set background picture of viewOptions to file ".background:background.png"
set position of item "'${APP}'" of container window to {210, 350}
set position of item "Applications" of container window to {430, 350}
set position of item "README.rtfd" of container window to {210, 220}
close
open
update without registering applications
delay 2
end tell
end tell
' | osascript
sync
# unmount it
hdiutil detach "${DEVICE}"
# now make the final image for distribution
echo "Creating compressed image"
hdiutil convert "${TARGET_TMP}" -format UDZO -imagekey zlib-level=9 -o "${TARGET}-${VERSION}.dmg" -ov
rm -rf "${TARGET_TMP}"
fi
hdiutil create -srcfolder "${STAGING_DIR}" -volname "${TARGET}" -fs HFS+ -fsargs "-c c=64,a=16,e=16" -format UDZO -imagekey zlib-level=9 -o "${TARGET}-${VERSION}.dmg" -ov
rm -rf "${STAGING_DIR}"

View File

@ -5,25 +5,16 @@ This document is intended to be a brief description of how to install the necess
On my computers, I have QT installed in E:\\QT and the OSCAR code base in E:\\oscar\\oscar-code. On another computer, they are on the F: drive. All references in the deploy.bat file are relative, so it should run with Oscar-code installed at any location.
The deploy.bat file is required to build release and install versions of Oscar using QtCreator or with buildall.bat. The buildall.bat compiles , builds Oscar and calls deploy.bat to create release and install version of Oscar.
There are three sections to this documentation.
1) Required Programs
2) Start Developing using batch files
3) Start Developing using QtCreator
## Required Programs
**Required Programs**
The following programs and files are required to create Windows installers:
- Inno Setup 6.0.3 from <http://www.jrsoftware.org/isdl.php>.
Download and install innosetup-qsp-6.0.3.exe.
- GIT for windows, from <https://gitforwindows.org/>.
GIT for Windows adds itself to your path.
- Gawk is required.
You can use the version included with Git for Windows or install Gawk for Windows from <http://gnuwin32.sourceforge.net/packages/gawk.htm>. The deployment batch file will use the Git for Windows version if gawk.exe is not in your PATH.
- QT Open Source edition from <https://www.qt.io/download>.
I use the latest patch version in the 5.12 LTS series -- version 5.12.8 at the date this was last updated. More recent versions in the 5.12 series should also work.
- Inno Setup 6.0.3 from <http://www.jrsoftware.org/isdl.php>. Download and install innosetup-qsp-6.0.3.exe.
- GIT for windows, from <https://gitforwindows.org/>. GIT for Windows adds itself to your path.
- QT Open Source edition from <https://www.qt.io/download>. I use the latest patch version in the 5.12 LTS series -- version 5.12.8 at the date this was last updated. More recent versions in the 5.12 series should also work.
**Installing Inno Setup 6**
@ -49,10 +40,6 @@ GIT for Windows adds itself to your path.
Create SSH key and upload to GitLab--See https://docs.gitlab.com/ce/ssh/README.html.
**Installing Gawk (if Git for Windows gawk is not used)**
From <http://gnuwin32.sourceforge.net/packages/gawk.htm>, download setup for “Complete package, except sources”. When downloaded, run the setup program. Accept default options and location. The deployment batch file assumes that gawk.exe is in your PATH, so either add c:\\Program Files (x86)\\gnuwin32\\bin to your PATH or copy the executables to some other directory already in your PATH.
**Installing QT**
Go to QT at <https://www.qt.io/download> and download the Open Source edition of the Windows online installer, qt-unified-windows-x86-3.1.1-online.exe. Run the installer:
@ -81,107 +68,9 @@ Go to QT at <https://www.qt.io/download> and download the Open Source edition of
And complete the installation (this also takes a while).
## Start Developing using batch files
**Getting Started Developing Oscar in QT Creator**
- Requires Qt , Git and Inno setup described in above section.
- Batch files buildall.bat and deploy.bat are used.
- buildall.bat creates a build folder, compiles and executes deploy.bat
- Supports both 32 and 64 bit version with an option to build brokenGl
- Supports Qt 5.9.x 5.12.x 5.15.x
- Auto detection for which compiler to use.
- buildall.bat supports command Line options
- deploy.bat creates a release version and an install version.
- deploy.bat is also used by QtCreator
- The release folder contains OSCAR.exe and all other files necessary to run OSCAR
- The install folder contains the installable version of OSCAR...exe
- Lists the release and install versions of OSCAR in the build folder.
#### Validate the installed software.
- Verify Qt
- \<QtVersion\> will be in the form N.N.N example 5.15.2
- For example: if Qt is installed at D:\\Qt then
- The \<QtFolder\> must contain the following folders: \<QtVersion\> Tools
- - \<QtFolder\> is D:\\Qt
- Verify Git and Inno are installed
- Note: Inno is used to create the Install version of OSCAR
- Git for windows provides GAWK.
#### Examples use the following assumptions
Except for Inno, Git, Qt, and OSCAR may be located in different locations.
- Inno installed:
- "C:\\Program Files (x86)\\Inno Setup 6"
- Git installed:
- "C:\\Program Files\\Git"
- Qtinstalled:
- "D:\\Qt"
- OSCAR installed:
- "D:\\OSCAR"
#### Building Commands
- Build install version for OSCAR for 32 and 64 bit versions
- D:\\OSCAR\OSCAR-code\\Building\\Windows\buildall.bat D:\\Qt
- Build install version for OSCAR for 64 bit version
- D:\\OSCAR\OSCAR-code\\Building\\Windows\buildall.bat D:\\Qt 64
- Build Just release version for OSCAR for 64 bit version
- D:\\OSCAR\OSCAR-code\\Building\\Windows\buildall.bat D:\\Qt 64 skipInstall
- Build release version for OSCAR for 64 bit version - without deleting build folder first
- D:\\OSCAR\OSCAR-code\\Building\\Windows\buildall.bat D:\\Qt 64 skipInstall remake
- The current folder is not used by the buildall.bat
- There is a pause when the build completes.
- This insure that the user has a chance to read the build results.
- Allows using windows shortcuts to build OSCAR and see results.
Note: The default folder of Qt is C:\\Qt
If the Qt is located at the default folder then the \<QtFolder\> is not required as a command line option.
#### Windows Shortcuts
- Windows shortcuts can be used to execute the build commands or run OSCAR.
- Create shortcut to buildall.bat
- rename shortcut to indicate its function
- edit the short cut property and add options to the Target
- Create a shortcut to release version of OSCAR.exe
- For offical OSCAR release should not use remake or skipInsall options
- Should add skipInstall options for developement, testing, verification
- Suggestion is to create the following shortcut example.
- use options \<qtfolder\> 64 skipInstall
- - shortcut name: "OSCAR Fresh build"
- use options \<qtfolder\> 64 skipInstall remake
- - shortcut name: "OSCAR quick rebuild"
- Create Shortcut to release version of OSCAR.exe (not the install version)
- - shortcut name: "RUN OSCAR"
#### Buildall.bat options.
- A full list of options can be displayed using the help option.
**32** Build 32 bit versions
**64** Build 64 bit versions
32 and 64 bit version are built if both 32 and 64 are used or both not used
**brokenGL** (special option) to build brokenGL version
**make** The default option. removes and re-creates the build folder.
**remake** Execute Make in the existing build folder. Does not re-create the Makefile. Should not be used for Offical OSCAR release
**skipInstall** skips creating the Install version saving both time and disk space
**skipDeploy** skips executing the deploy.bat script. just compiles oscar.
There is a pause when the build completes. This insure that the user has a chance to read the build results.
This also allows building using windows shortcuts.
1) create a shortcut to buildall.bat
edit shortcut's property add the necessary options: D:\\Qt 64 remake skipInstall
2) create and shortcut for the make option.
3) create a shortcut to the **release** version of OSCAR.exe
## Start Developing Oscar in Qt Creator
In browser, log into your account at gitlab.com. Select the Oscar project at https://gitlab.com/CrimsonNape/OSCAR-code. Clone a copy of the repository to a location on your computer.
In browser, log into your account at gitlab.com. Select the Oscar project at https://gitlab.com/pholy/OSCAR-code. Clone a copy of the repository to a location on your computer.
Start QT. There are two QT Oscar project files: OSCAR_QT.pro in the Oscar-code directory, and Oscar.pro in the Oscar-code\\oscar directory. You may use *either* project file. Both will create a running version of Oscar. I find building with Oscar.pro in the Oscar-code\\oscar directory to be very slightly faster, but the difference is negligible.

View File

@ -1,66 +0,0 @@
setlocal
:::@echo off
::: You must set these paths to your QT configuration
set qtpath=C:\Qt
set qtVersion=5.15.2
::: This file has been updated to work with Qt 5.15.2 and mingw 8.1.0
:::
::: Build 32- and 64-bit versions of OSCAR for Windows.
::: Includes code to build BrokenGL (LegacyGFX) versions, but that option is not currently used
::: Uses Timer 4.0 - Command Line Timer - www.Gammadyne.com - to show time it takes to compile. This could be removed.
::: timer /nologo
:::call :buildone 32 brokengl
call :buildone 64
call :buildone 32
:::call :buildone 64 brokengl
::: timer /s /nologo
goto :eof
::: Subroutine to build one version
:buildone
setlocal
::: timer /nologo
set QTDIR=%qtpath%\%qtversion%\mingw81_%1
echo QTDIR is %qtdir%
set PATH=%qtpath%\Tools\mingw810_%1\bin;%qtpath%\%qtVersion%\mingw81_%1\bin;%PATH%
::: echo %PATH%
set savedir=%cd%
: Construct name of our build directory
set dirname=build-oscar-win_%1_bit
if "%2"=="brokengl" (
set dirname=%dirname%-LegacyGFX
set extraparams=DEFINES+=BrokenGL
)
echo Build directory is %dirname%
set basedir=..\..
if exist %basedir%\%dirname%\nul rmdir /s /q %basedir%\%dirname%
mkdir %basedir%\%dirname%
cd %basedir%\%dirname%
%qtpath%\%qtVersion%\mingw81_%1\bin\qmake.exe ..\oscar\oscar.pro -spec win32-g++ %extraparams% >qmake.log 2>&1 && %qtpath%\Tools\mingw810_%1\bin\mingw32-make.exe qmake_all >>qmake.log 2>&1
%qtpath%\Tools\mingw810_%1\bin\mingw32-make.exe -j8 >make.log 2>&1 || goto :makefail
call ..\Building\Windows\deploy.bat
::: timer /s /nologo
echo === MAKE %1 %2 SUCCESSFUL ===
cd %savedir%
endlocal
exit /b
:makefail
endlocal
::: timer /s /nologo
echo *** MAKE %1 %2 FAILED ***
pause
exit /b

View File

@ -1,392 +1,60 @@
@echo off
setlocal
:: todo add help / descriptions
::: This script assumes that it resides OSCAR-data/Building/Windows
::: You must defined the path to QT configuration or passit as a parameter
::: The version is detected based on the path
::: The compiler to use is based on the qt verson.
:::@echo off
::: CONFIGURATION SECTION
::: You must set these paths to your QT configuration
set qtpath=E:\Qt
set qtVersion=5.12.8
set QtPath=C:\Qt
::: END CONFIGURATION SECTION
:::============================================
:::
::: START INITIALIZATIO SECTION
echo Command line: %0 %*
call :parse %*
if NOT %ERRORLEVEL%==0 goto :endProgram
::: Build 32- and 64-bit versions of OSCAR for Windows.
::: Includes code to build BrokenGL (LegacyGFX) versions, but that option is not currently used
::: Uses Timer 4.0 - Command Line Timer - www.Gammadyne.com - to show time it takes to compile. This could be removed.
timer /nologo
set buildErrorLevel=0
:::call :buildone 32 brokengl
::: basedir is OSCAR-code folder - contains folders Building , oscar , ...
::: parentdir is the folder that contains OSCAR-code.
::: change relative paths into absolute paths
::: Get path to this script. then cd parent folder. %cd% retunrs absolute pathname.
cd %~dp0 & cd ../../../
set parentdir=%cd%
set basedir=%parentdir%\OSCAR-code
IF NOT "%basedir%"=="%basedir: =%" (
call :configError absolute path of OSCAR-code contains a space - not handled by Qt.
echo %basedir%
goto :endProgram)
IF NOT exist "%basedir%\Building" (
call :notfound2 OSCAR-code: "%basedir%"
goto :endProgram)
set baseBuildName=%basedir%\build-oscar-win
set OSCARPRO=%basedir%\oscar\oscar.pro
set requiredOutSideOscar=
IF %doOutSide%==1 (
set baseBuildName=%parentdir%\build-oscar-win
set OSCARPRO=%basedir%\OSCAR_QT.pro
set requiredOutSideOscar=oscar\
)
::: Construct name of our build directory
::: Build Directory can be based on the directories the QtCreator uses for either OSCAR_QT.pro or oscar.pro
::: For OSCAR_QT.pro is at parentDir\OSCAR-code\OCASR_QT.pro the build will be at parentDir\BuildDir
::: For oscar.pro is at OSCAR-code\oscar\oscar.pro the build will be at OSCAR-code\BuildDir
call :buildone 64
:: check if QtPath from parameters list
set defaultQtPath=%QtPath%
if NOT "%requestQtPath%"=="" (set QtPath=%requestQtPath%)
call :buildone 32
:: check valid qt folder to find version and tool folders
IF NOT exist %QtPath%\nul (
call :configError InvalidPath to Qt. QtPath:%QtPath%
echo The QtPath can be added as a parameter to %~nx0
call :helpInfo
goto :endProgram
)
set foundQtVersion=
set foundQtToolsDir=
set foundQtVersionDir=
for /d %%i in (%QtPath%\*) do (call :parseQtVersion %%i)
if "%foundQtVersion%"=="" (
echo :configError %QtPath% is not a valid Qt folder. Must contain version 5.xx.xx or 6.xx.xx folder
echo Please enter a valid Qt Path as a parameter
call :helpInfo
goto :endProgram
)
if "%foundQtToolsDir%"=="" (
. echo :configError %QtPath% is not a valid Qt folder. Must contain a Tools folder
echo Please enter a valid Qt Path as a parameter
call :helpInfo
goto :endProgram
)
echo Using QtVersion %foundQtVersion%
set qtVersion=%foundQtVersion%
set QtVersionDir=%QtPath%\%qtVersion%
set QtToolsDir=%QtPath%\Tools
::: Compiler Tools for creating Makefile (linux qmake features)
if "5.15."=="%qtVersion:~0,5%" (
:: For qt release 5.15
set mingwQmakeVersion=mingw81
set mingwQmakeTools=mingw810
) else (
:: For qt previous releases
set mingwQmakeVersion=mingw73
set mingwQmakeTools=mingw730
)
::: END INITIALIZATIO SECTION
:::============================================
:main
::: Start BUILDING ON WINDOWS
call :startTimer "Start Time is"
if %do32%==1 (
call :buildone 32 || goto :finished
if %doBrokenGl%==1 (
call :elapseTime "Elapse Time is"
call :buildone 32 brokengl || goto :finished
)
)
if %do64%==1 (
if %do32%==1 (call :elapseTime "Elapse Time is")
call :buildone 64 || goto :finished
if %doBrokenGl%==1 (
call :elapseTime "Elapse Time is"
call :buildone 64 brokengl || goto :finished
)
)
:finished
:: this does work. dir %baseBuildName%*_bit\Installer\OSCAR*.exe
echo Start Time is %saveStartTime%
call :endTimer "End Time is"
FOR /D %%j in ("%baseBuildName%*") do (call :sub1 %%j)
goto :endProgram
::: return to caller
:endProgram
pause
exit /b
:::============================================
:sub1
FOR /F %%i in ("%1\%requiredOutSideOscar%Installer\") do (call :sub2 %%i )
FOR /F %%i in ("%1\%requiredOutSideOscar%Release\") do (call :sub2 %%i )
goto :eof
:sub2
:: echo PLACE 2 %1
FOR %%k in ("%1*.exe") do (call :sub3 %%k )
goto :eof
:sub3
echo %~t1 %1
:::call :buildone 64 brokengl
timer /s /nologo
goto :eof
:parseQtVersion
set tmpf=%~nx1
if "5."=="%tmpf:~0,2%" call :gotVersion %1 %tmpf% & goto :eof
if "6."=="%tmpf:~0,2%" call :gotVersion %1 %tmpf% & goto :eof
if "Tools"=="%tmpf%" call :gotTools %1 %tmpf% & goto :eof
goto :eof
:gotTools
:: if NOT "%foundQtToolsDir%"=="" (echo Duplicate Qt Versions %1 and %foundQtToolsDir% Error & exit /b 101)
set foundQtToolsDir=%1
:: echo Found QtTools %1
goto :eof
:gotVersion
:: if NOT "%foundQtVersion%"=="" (echo Duplicate Qt Versions %1 and %foundQtVersion% Error & exit /b 101)
set foundQtVersion=%2
set foundQtVersionDir=%1
:: echo Found QtVersion %foundQtVersion%
goto :eof
:::============================================
:parse
set do32=0
set do64=0
set doBrokenGl=0
set doOutSide=1
set useExistingBuild=0
set skipCompile=0
set skipDeploy=0
set requestQtPath=
set toggleEcho="off"
set skipInstallCommand=
:parseLoop
IF "%1"=="" GOTO :exitParseLoop
set arg=%1
::: echo ^<%arg%^>
IF "%arg%"=="32" (set do32=1 & GOTO :endLoop )
IF "%arg%"=="64" (set do64=1 & GOTO :endLoop )
IF /I "%arg:~0,2%"=="br" (set doBrokenGl=1 & GOTO :endLoop )
IF /I "%arg:~0,5%"=="SKIPD" (set skipDeploy=1 & GOTO :endLoop )
IF /I "%arg:~0,5%"=="SKIPC" (
set useExistingBuild=1
set skipCompile=1
GOTO :endLoop )
IF /I "%arg:~0,2%"=="OU" (set doOutSide=1 & GOTO :endLoop )
echo windows cmd.exe workaround 1>nul
IF /I "%arg:~0,5%"=="SKIPI" (
set skipInstallCommand=skipInstall
GOTO :endLoop )
IF /I "%arg:~0,2%"=="re" (set useExistingBuild=1 & GOTO :endLoop )
IF /I "%arg:~0,2%"=="ve" ( echo on & GOTO :endLoop )
IF exist %arg%\Tools\nul IF exist %arg%\Licenses\nul (
set requestQtPath=%arg%
GOTO :endLoop)
IF NOT "%arg:~0,2%"=="he" (
echo _
echo Invalid argument '%arg%'
) else (
echo _
)
call :helpInfo
exit /b 123
:endLoop
SHIFT
GOTO :parseLoop
:exitParseLoop
:: echo requestQtPath ^<%requestQtPath%^>
set /a sum=%do32%+%do64%
if %sum% == 0 (set do32=1 & set do64=1 )
goto :eof
:::============================================
::: Timer functions
::: Allows personalization of timer functions.
::: defaults displaying the curr ent time
::: Could Use Timer 4.0 - Command Line Timer - www.Gammadyne.com - to show time it takes to compile.
:startTimer
set saveStartTime=%TIME%
:: timer.exe /nologo
echo %~1 %saveStartTime%
goto :eof
:elapseTime
:: timer.exe /r /nologo
echo %~1 %TIME%
goto :eof
:endTimer
:: timer.exe /s /et /nologo
echo %~1 %TIME%
goto :eof
:::===============================================================================
:configError
set buildErrorLevel=24
echo *** CONFIGURATION ERROR ***
echo %*
goto :eof
:notfound
echo *** CONFIGURATION ERROR ***
set buildErrorLevel=25
echo NotFound %*
goto :eof
:::===============================================================================
:: Subroutine to "build one" version
:buildOne
setLocal
set bitSize=%1
set brokenGL=%2
echo Building %1 %2
::: echo do not remove this line - batch bug? 1>nul:::
set QtVersionCompilerDir=%qtVersionDir%\%mingwQmakeVersion%_%bitSize%
if NOT exist %QtVersionCompilerDir%\nul (
call :buildOneError 21 notfound QtCompiler: %QtVersionCompilerDir%
goto :endBuildOne
)
set QtToolsCompilerDir=%QtToolsDir%\%mingwQmakeTools%_%bitSize%
if NOT exist %QtToolsCompilerDir% (
call :buildOneError 22 notfound QTToolCompiler: %QtToolsCompilerDir%
goto :endBuildOne
)
set path=%QtToolsCompilerDir%\bin;%QtVersionCompilerDir%\bin;%PATH%
:: echo ===================================
:: echo %path%
:: echo ===================================
:::goto :eof
::: Verify all configuration parameters
::: Subroutine to build one version
:buildone
setlocal
timer /nologo
set QTDIR=%qtpath%\%qtversion%\mingw73_%1
echo QTDIR is %qtdir%
set path=%qtpath%\Tools\mingw730_%1\bin;%qtpath%\%qtversion%\mingw73_%1\bin;%qtpath%\Tools\mingw730_%1\bin;%PATH%
set savedir=%cd%
set dirname=%baseBuildName%
if "%brokenGL%"=="brokengl" (
: Construct name of our build directory
set dirname=build-oscar-win_%1_bit
if "%2"=="brokengl" (
set dirname=%dirname%-LegacyGFX
set extraparams=DEFINES+=BrokenGL
)
set buildDir=%dirname%_%bitSize%_bit
echo Build directory is %dirname%
set basedir=..\..
if exist %basedir%\%dirname%\nul rmdir /s /q %basedir%\%dirname%
mkdir %basedir%\%dirname%
cd %basedir%\%dirname%
:: allow rebuild without removing build when a parameter is "SKIP"
if NOT exist %buildDir%\nul goto :makeBuildDir
if %useExistingBuild%==1 goto :skipBuildDir
rmdir /s /q %buildDir%
IF NOT %ERRORLEVEL%==0 (
call :buildOneError %ERRORLEVEL% error removing Build Folder: %buildDir%
GOTO :endBuildOne )
:makeBuildDir
mkdir %buildDir% || (
call :buildOneError 23 mkdir %buildDir% failed %ERRORLEVEL%
goto :endBuildOne )
echo created %buildDir%
:skipBuildDir
cd %buildDir%
if %skipCompile%==1 goto :doDeploy
if NOT exist %buildDir%\Makefile goto :createMakefile
if %useExistingBuild%==1 goto :skipMakefile
if NOT exist %OSCARPRO% {
call :buildOneError 24 notfound oscar.pro is not found.
goto :endBuildOne)
:createMakefile
echo Creating Oscar's Makefile
%QtVersionCompilerDir%\bin\qmake.exe %OSCARPRO% -spec win32-g++ %extraparams% >qmake.log 2>&1 || (
call :buildOneError 25 Failed to create Makefile part1
type qmake.log
goto :endBuildOne)
%QtToolsCompilerDir%/bin/mingw32-make.exe qmake_all >>qmake.log 2>&1 || (
call :buildOneError 26 Failed to create Makefile part2
type qmake.log
goto :endBuildOne)
:skipMakefile
:: Always compile build
echo Compiling Oscar
mingw32-make.exe -j8 >make.log 2>&1 || (
call :buildOneError 27 Make Failed
type qmake.log
goto :endbuildOne
)
::: echo skipDeploy: %skipDeploy%
:doDeploy
if %skipDeploy%==1 goto :endBuildOne
echo Deploying and Creating Installation Exec in %cd%
call "%~dp0\deploy.bat" %skipInstallCommand%
set buildErrorLevel=%ERRORLEVEL%
if %buildErrorLevel% == 0 (
echo === MAKE %bitSize% %brokenGL% SUCCESSFUL ===
goto :endBuildOne
) else (
call :buildOneError %buildErrorLevel% DEPLOY FAILED
goto :endBuildOne
)
:buildOneError
echo *** MAKE %bitSize% %brokenGL% FAILED ***
echo %*
exit /b %1
:endBuildOne
cd %savedir% 1>nul 2>nul
endLocal
exit /b %buildErrorLevel%
:::============================================
:helpInfo
echo _
echo The %~nx0 script file creates Release and Install 32 and 64 bit versions of Oscar.
echo The %~nx0 has parameters to configure the default options.
echo %~nx0 can be executed from the File Manager
echo Parameter can be added using a short cut and adding parameters to the shortcut's target.
echo _
echo OPTIONS DESCRIPTION
echo br[okenGl] Builds the brokenGL versions of OSCAR
echo 32 Builds just 32 bit versions
echo 64 Builds just 64 bit versions
echo ^<QtPath^> Overrides the default path (C:\Qt) to QT's installation - contains Tools, License, ... folders
echo ou[tside] Default: Build is located outside of git repository. Same as building with OSCAR_QT.pro
echo in[side] Build is located inside of git repository. Same as building with oscar.pro
echo he[lp] Display this help message
echo _
echo The offical builds of OSCAR should not use the following options. These facilate development and testing
echo re[make] Skips recreating Makefile, but executes make in existing build folder
echo skipC[ompile] Skips all compiling. Leaves build folder untouched.
echo skipD[eploy] Skip calling deploy.bat. Does not create Release or install versions.
echo ve[rbose] Start verbose logging
echo _
echo ^<Anything^> Displays invalid parameter message and help message then exits.
goto :eof
%qtpath%\%qtversion%\mingw73_%1\bin\qmake.exe ..\oscar\OSCAR.pro -spec win32-g++ %extraparams% >qmake.log 2>&1 && %qtpath%/Tools/mingw730_%1/bin/mingw32-make.exe qmake_all >>qmake.log 2>&1
mingw32-make.exe -j8 >make.log 2>&1 || goto :makefail
call ..\Building\Windows\deploy.bat
timer /s /nologo
echo === MAKE %1 %2 SUCCESSFUL ===
cd %savedir%
endlocal
exit /b
:makefail
endlocal
timer /s /nologo
echo *** MAKE %1 %2 FAILED ***
pause
exit /b

View File

@ -1,100 +0,0 @@
:::
::: Build Release and Installer subdirectories of the current shadow build directory.
::: The Release directory contains everything needed to run OSCAR.
::: The Installer directory contains a single executable -- the OSCAR installer.
:::
::: DEPLOY.BAT should be run as the last step of a QT Build Release kit.
::: QT Shadow build should be specified (this is the QT default).
::: A command line parameter is optional. Any text on the command line will be appended
::: to the file name of the installer.
:::
::: Requirements:
::: Inno Setup 6 - http://www.jrsoftware.org/isinfo.php, installed to default Program Files (x86) location
::: gawk - somewhere in the PATH or in Git for Windows installed in its default lolcation
:::
::: Deploy.bat resides in .../OSCAR-code/Nuilding/Windows, along with
::: buildinstall.iss -- script for Inno Setup to create installer
::: getBuildInfo.awk -- gawk script for extracting version fields from various files
::: setup.ico -- Icon to be used for the installer.
:::
::: When building a release version in QT, QT will start this batch file which will prepare
::: additional files, run WinDeployQt, and create an installer.
:::
@echo off
setlocal
::: toolDir is where the Windows install/deploy tools are located
set toolDir=%~dp0
:::echo tooldir is %toolDir%
::: Set shadowBuildDir and sourceDir for oscar_qt.pro vs oscar\oscar.pro projects
if exist ..\oscar-code\oscar\oscar.pro (
::: oscar_QT.pro
set sourceDir=..\oscar-code\oscar
set shadowBuildDir=%cd%\oscar
) else (
::: oscar\oscar.pro
set sourceDir=..\oscar
set shadowBuildDir=%cd%
)
echo sourceDir is %sourceDir%
echo shadowBuildDir is %shadowBuildDir%
::: Now copy the base installation control file
copy %toolDir%buildInstall.iss %shadowBuildDir% || exit 45
copy %toolDir%setup.ico %shadowBuildDir% || exit 46
:::copy %toolDir%use*.reg %shadowBuildDir% || exit 47
:::
::: If gawk.exe is in the PATH, use it. If not, add Git mingw tools (awk) to path. They cannot
::: be added to global path as they break CMD.exe (find etc.)
where /q gawk.exe || set PATH=%PATH%;%ProgramW6432%\Git\usr\bin
::: Create and copy installer control files
::: Create file with all version numbers etc. ready for use by buildinstall.iss
::: Extract the version info from various header files using gawk and
::: #define fields for each data item in buildinfo.iss which will be
::: used by the installer script.
where /q gawk.exe || set PATH=%PATH%;%ProgramW6432%\Git\usr\bin
echo ; This script auto-generated by DEPLOY.BAT >%shadowBuildDir%\buildinfo.iss
gawk -f %toolDir%getBuildInfo.awk %sourcedir%\VERSION >>%shadowBuildDir%\buildInfo.iss || exit 60
gawk -f %toolDir%getBuildInfo.awk %sourcedir%\git_info.h >>%shadowBuildDir%\buildInfo.iss || exit 62
echo %shadowBuildDir% | gawk -f %toolDir%getBuildInfo.awk >>%shadowBuildDir%\buildInfo.iss || exit 63
echo #define MySuffix "%1" >>%shadowBuildDir%\buildinfo.iss || exit 64
:::echo #define MySourceDir "%sourcedir%" >>%shadowBuildDir%\buildinfo.iss
::: Create Release directory and subdirectories
if exist %shadowBuildDir%\Release\*.* rmdir /s /q %shadowBuildDir%\Release
mkdir %shadowBuildDir%\Release
cd %shadowBuildDir%\Release
copy %shadowBuildDir%\oscar.exe . || exit 71
:::copy %shadowBuildDir%\use*.reg . || exit 72
::: Now in Release subdirectory
::: If QT created a help directory, copy it. But it might not have if "helpless" option was set
if exist Help\*.* rmdir /s /q Help
mkdir Help
if exist ..\help\*.qch copy ..\help Help
if exist Html\*.* rmdir /s /q Html
mkdir Html
copy ..\html html || exit 80
if exist Translations\*.* rmdir /s /q Translations
mkdir Translations
copy ..\translations Translations || exit 84
::: Run deployment tool
windeployqt.exe --force --compiler-runtime --no-translations --verbose 1 OSCAR.exe || exit 87
::: Clean up unwanted translation files
:::For unknown reasons, Win64 build copies the .ts files into the release directory, while Win32 does not
if exist Translations\*.ts del /q Translations\*.ts
::: Create installer
cd ..
:::"%ProgramFiles(x86)%\Inno Setup 6\compil32" /cc BuildInstall.iss
"%ProgramFiles(x86)%\Inno Setup 6\iscc" /Q BuildInstall.iss
endlocal

View File

@ -9,10 +9,10 @@
::: to the file name of the installer.
:::
::: Requirements:
::: Inno Setup 6 - http://www.jrsoftware.org/isinfo.php, installed to default Program Files (x86) location:%ProgramFiles(x86)%
::: gawk - somewhere in the PATH or in Git for Windows installed with Git\cmd in the path
::: Inno Setup 6 - http://www.jrsoftware.org/isinfo.php, installed to default Program Files (x86) location
::: gawk - somewhere in the PATH or in Git for Windows installed in its default lolcation
:::
::: Deploy.bat resides in ...\OSCAR-code\Building\Windows, along with
::: Deploy.bat resides in .../OSCAR-code/Nuilding/Windows, along with
::: buildinstall.iss -- script for Inno Setup to create installer
::: getBuildInfo.awk -- gawk script for extracting version fields from various files
::: setup.ico -- Icon to be used for the installer.
@ -21,190 +21,78 @@
::: additional files, run WinDeployQt, and create an installer.
:::
@echo off
echo Executing %~nx0 %*
setlocal
set doSkipInstall=0
set suffixParam=%1
if "%1"=="skipInstall" (
set doSkipInstall=1
set suffixParam=%2
::: toolDir is where the Windows install/deploy tools are located
set toolDir=%~dp0
:::echo tooldir is %toolDir%
::: Set shadowBuildDir and sourceDir for oscar_qt.pro vs oscar\oscar.pro projects
if exist ..\oscar-code\oscar\oscar.pro (
::: oscar_QT.pro
set sourceDir=..\oscar-code\oscar
set shadowBuildDir=%cd%\oscar
) else (
if "%2"=="skipInstall" set doSkipInstall=1
)
echo doSkipInstall = %doSkipInstall%
set errDescription=
set errvalue=0
::: Current Directory is the shadowBuildDir
::: oscar\oscar.pro
set sourceDir=..\oscar
set shadowBuildDir=%cd%
::: toolDir is where the Window install\deploy tools are located
cd %~dp0 && cd ..\..\..
set parentDir=%cd%
if exist %shadowBuildDir%\oscar\nul set shadowBuildDir=%shadowBuildDir%\oscar
cd %shadowBuildDir%
set toolDir=%parentDir%\OSCAR-code\Building\Windows
::: Calculate directory where OSCAR-code is located.
set sourceDir=%parentDir%\OSCAR-code\oscar
echo tooldir is %toolDir%
::echo parentDir is %parentDir%
:: echo sourceDir is %sourceDir%
)
echo sourceDir is %sourceDir%
echo shadowBuildDir is %shadowBuildDir%
if NOT exist %shadowBuildDir%\OSCAR.exe (
call :err 41 %shadowBuildDir%\OSCAR.exe does not exist
goto :endProgram
)
call :cleanFolder
if exist %shadowBuildDir%\buildInfo.iss del /q %shadowBuildDir%\buildInfo.iss || (call :err 42 & goto :endProgram)
if exist %shadowBuildDir%\buildInstall.iss del /q %shadowBuildDir%\buildInstall.iss || (call :err 43 & goto :endProgram)
if exist %shadowBuildDir%\setup.ico del /q %shadowBuildDir%\setup.ico || (call :err 44 & goto :endProgram)
call :getGawk
::: Now have gawk. -- do not delete this line.
::: Now copy the base installation control file
copy %toolDir%\buildInstall.iss %shadowBuildDir% 1>nul
if NOT %ERRORLEVEL%==0 (
call :err 45 %ERRORLEVEL% failure to copy %toolDir%\buildInstall.iss to %shadowBuildDir%
goto :endProgram
)
copy %toolDir%\setup.ico %shadowBuildDir% 1>nul
if NOT %ERRORLEVEL%==0 (
call :err failure to copy %toolDir%\setup.ico to %shadowBuildDir%
goto :endProgram
)
:::copy %toolDir%\use*.reg %shadowBuildDir% || call :err 47 & goto :endProgram
copy %toolDir%buildInstall.iss %shadowBuildDir% || exit 45
copy %toolDir%setup.ico %shadowBuildDir% || exit 46
:::copy %toolDir%use*.reg %shadowBuildDir% || exit 47
:::
::: If gawk.exe is in the PATH, use it. If not, add Git mingw tools (awk) to path. They cannot
::: be added to global path as they break CMD.exe (find etc.)
where /q gawk.exe || set PATH=%PATH%;%ProgramW6432%\Git\usr\bin
::: Create and copy installer control files
::: Create file with all version numbers etc. ready for use by buildinstall.iss
::: Extract the version info from various header files using gawk and
::: #define fields for each data item in buildinfo.iss which will be
::: used by the installer script.
where /q gawk.exe || set PATH=%PATH%;%ProgramW6432%\Git\usr\bin
echo ; This script auto-generated by DEPLOY.BAT >%shadowBuildDir%\buildinfo.iss
gawk -f %toolDir%\getBuildInfo.awk %sourcedir%\VERSION >>%shadowBuildDir%\buildInfo.iss
if NOT %ERRORLEVEL%==0 (
call :err 60 & goto :endProgram)
gawk -f %toolDir%\getBuildInfo.awk %sourcedir%\git_info.h >>%shadowBuildDir%\buildInfo.iss
if NOT %ERRORLEVEL%==0 (
call :err 62 & goto :endProgram)
echo %shadowBuildDir% | gawk -f %toolDir%\getBuildInfo.awk >>%shadowBuildDir%\buildInfo.iss
if NOT %ERRORLEVEL%==0 (
call :err 63 & goto :endProgram)
echo #define MySuffix "%suffixParam%" >>%shadowBuildDir%\buildinfo.iss
if NOT %ERRORLEVEL%==0 (
call :err 64 & goto :endProgram)
gawk -f %toolDir%getBuildInfo.awk %sourcedir%\VERSION >>%shadowBuildDir%\buildInfo.iss || exit 60
gawk -f %toolDir%getBuildInfo.awk %sourcedir%\git_info.h >>%shadowBuildDir%\buildInfo.iss || exit 62
echo %shadowBuildDir% | gawk -f %toolDir%getBuildInfo.awk >>%shadowBuildDir%\buildInfo.iss || exit 63
echo #define MySuffix "%1" >>%shadowBuildDir%\buildinfo.iss || exit 64
:::echo #define MySourceDir "%sourcedir%" >>%shadowBuildDir%\buildinfo.iss
set releaseDir=%shadowBuildDir%\Release
::: Create Release directory and subdirectories
::: if exist %shadowBuildDir%\Release\*.* rmdir /s /q %shadowBuildDir%\Release
mkdir %releaseDir%
if exist %shadowBuildDir%\Release\*.* rmdir /s /q %shadowBuildDir%\Release
mkdir %shadowBuildDir%\Release
cd %shadowBuildDir%\Release
copy %shadowBuildDir%\oscar.exe . 1>nul
if NOT %ERRORLEVEL%==0 (
call :err 71 & goto :endProgram)
:::copy %shadowBuildDir%\use*.reg . || call :err 72 & goto :endProgram
::: if exist %shadowBuildDir%\Installer\*.* rmdir /s /q %shadowBuildDir%\Installer (call :err 73 & goto :endProgram)
copy %shadowBuildDir%\oscar.exe . || exit 71
:::copy %shadowBuildDir%\use*.reg . || exit 72
::: starting to copy files
::: Now in Release subdirectory
::: If QT created a help directory, copy it. But it might not have if "helpless" option was set
::: if exist Help\*.* rmdir /s /q Help
if exist Help\*.* rmdir /s /q Help
mkdir Help
if exist %shadowBuildDir%\help\*.qch copy %shadowBuildDir%\help %releaseDir%\Help 1>nul || (call :err 80 & goto :endProgram)
if exist ..\help\*.qch copy ..\help Help
::: if exist Html\*.* rmdir /s /q Html
if exist Html\*.* rmdir /s /q Html
mkdir Html
copy %shadowBuildDir%\html %releaseDir%\html 1>nul || (call :err 81 & goto :endProgram)
copy ..\html html || exit 80
::: if exist Translations\*.* rmdir /s /q Translations
if exist Translations\*.* rmdir /s /q Translations
mkdir Translations
copy %shadowBuildDir%\translations %releaseDir%\Translations 1>nul || (call :err 84 & goto :endProgram)
copy ..\translations Translations || exit 84
::: Run deployment tool
echo Running Qt Deployment tool
windeployqt.exe --release --force --compiler-runtime --no-translations --verbose 1 OSCAR.exe 1>nul 2>nul
if %errorlevel% == 0 goto :cleanup
::: echo windeployqt error = %errorlevel% executing next version
::: Post mingw 8.0 --release Must not be used.
windeployqt.exe --force --compiler-runtime --no-translations --verbose 1 OSCAR.exe 1>nul || (call :err 87 & goto :endProgram)
windeployqt.exe --release --force --compiler-runtime --no-translations --verbose 1 OSCAR.exe || exit 87
:cleanup
::: Clean up unwanted translation files
::::For unknown reasons, Win64 build copies the .ts files into the release dir/ectory, while Win32 does not
:::For unknown reasons, Win64 build copies the .ts files into the release directory, while Win32 does not
if exist Translations\*.ts del /q Translations\*.ts
::: Create installer
cd ..
IF %doSkipInstall%==1 goto :endProgram
echo Creating OSCAR Installation Exec
"%ProgramFiles(x86)%\Inno Setup 6\iscc" /Q BuildInstall.iss || (call :err 88 & goto :endProgram)
if NOT exist %shadowBuildDir%\Installer\OSCAR*.exe (call :err 89 & goto :endProgram)
:endProgram
echo Finished %~nx0 %errDescription%
exit /b %errvalue%
:::: =======================
:err
set errvalue=%1
set errDescription=%*
echo %~nx0 detected error: %*
exit /b %errvalue%
::: =====================================================================================
:getGawk
:: check if gawk is already available.
where gawk > temp.txt 2>nul
set er=%errorlevel%
set gawk=<temp.txt
if %er%==0 (
del temp.txt
goto :eof)
:: get location of Git command - then find where Git was downloaded.
where Git > temp.txt 2>nul
set er=%errorlevel%
set /p git=<temp.txt
del temp.txt
if NOT %er%==0 (echo git command not found && exit /b 33)
::: found the location of GIT. because git has gawk
:: have fullpath of git.exe which is in Git\cmd\git.exe need Git\usr\bin\gawk
FOR %%i IN ("%git%") DO (set git=%%~dpi)
:: get rid of trailing \ for above command to decend one level
FOR %%i IN ("%git:~0,-1%") DO (set git=%%~dpi)
set path=%git:~0,-1%\usr\bin;%path%
echo %path%
goto :eof
::: =====================================================================================
:cleanFolder
for /d %%i in (%shadowBuildDir%\*) do (
call :handClean %%i
)
goto :eof
:handClean
::: Qt adds hidden files to build folder for glang compiler. .qtc_clangd (for windows builds)
::: This results is no file name, however it does exist in the full path name %1
set xpath=%1
set fname=%~n1
:: if fname is empty then directory is hidden and is in xpath
::: if "%fname%"=="" goto :endhandClean:::
if /I "%fname%"=="Help" goto :endhandClean
if /I "%fname%"=="Html" goto :endhandClean
if /I "%fname%"=="Translations" goto :endhandClean
if /I "%fname%"=="Release" goto :cleanDir
if /I "%fname%"=="Installer" goto :cleanDir
echo Folder %fname% was not cleaned
goto :endhandClean
:cleanDir
echo Cleaning %xpath%
rmdir /Q /S %xpath%
:endhandClean
goto :eof
:::"%ProgramFiles(x86)%\Inno Setup 6\compil32" /cc BuildInstall.iss
"%ProgramFiles(x86)%\Inno Setup 6\iscc" /Q BuildInstall.iss

View File

@ -22,7 +22,7 @@ Setting aside the religious wars that can arise over any development methodology
### How Do I Develop in a Branch?
0. Create your own fork of the repo and configure it to stay up-to-date with the upstream repo.
* Go to https://gitlab.com/CrimsonNape/OSCAR-code and click on **Fork** in the top right of the project page.
* Go to https://gitlab.com/pholy/OSCAR-code and click on **Fork** in the top right of the project page.
* In your fork's sidebar, go to **Settings > Repository** then click on **Expand** for "Mirroring repositories".
* Enter "https://gitlab.com/pholy/OSCAR-code.git" for the repository **URL**, make sure the mirror is set to **Pull** and then click **Mirror repository**.

0
Htmldocs/about-af.html Executable file → Normal file
View File

0
Htmldocs/about-ar.html Executable file → Normal file
View File

0
Htmldocs/about-bg.html Executable file → Normal file
View File

0
Htmldocs/about-da.html Executable file → Normal file
View File

0
Htmldocs/about-de.html Executable file → Normal file
View File

0
Htmldocs/about-el.html Executable file → Normal file
View File

0
Htmldocs/about-es.html Executable file → Normal file
View File

0
Htmldocs/about-fi.html Executable file → Normal file
View File

View File

@ -1,54 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="ph">
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type" >
<title>about-ph</title>
<meta content="The OSCAR Team" name="author" >
<meta content="Translation copyright 2020 by The OSCAR Translation Team" name="description" >
</head>
<body>
<div style="text-align: center;">
<h1>Maligayang pagdating sa OSCAR,
<br>ang
<u>O</u>pen
<u>S</u>ource
<u>C</u>PAP
<u>A</u>nalysis
<u>R</u>eporter</h1>Ang software na ito ay idinisenyo upang matulungan ka sa pagsuri ng data na ginawa ng iyong mga aparato ng CPAP at mga kaugnay na kagamitan.
<br>
<br>Isinalin ito ng mga boluntaryo sa maraming wika. I-click ang tab na Tulong upang baguhin ang ipinakitang wika.
<br>
<br>
<i>Ang anumang browser na nakabase sa Chromium tulad ng
<b>Google Chrome</b> o
<b>Microsoft Edge Chromium</b> ay kasalukuyang nag-aalok ng pinakamahusay na
<u>awtomatikong pagpipilian sa pagsasalin</u>.</i>
<br>Makakakita ka ng malawak na tulong sa OSCAR Wiki. Buksan ang
<a href="https://translate.google.com/translate?hl=ph&amp;sl=en&amp;tl=tl&amp;u=http://www.apneaboard.com/wiki/index.php/OSCAR_help">http://www.apneaboard.com/wiki/index.php/OSCAR_help</a>.
<br>
<br>Para sa mga katanungan bisitahin ang
<a href="https://translate.google.com/translate?hl=ph&amp;sl=en&amp;tl=tl&amp;u=httpi://www.apneaboard.com">http://www.apneaboard.com</a> o isang lokal na forum ng apnea.
<br>
<hr style="width: 100%; height: 2px;" >
<h1 style="color: red;">MANGYARING MABASA NG MABUTI</h1>
<hr style="width: 100%; height: 2px;" >Ang
<b>OSCAR</b> ay
<b>HINDI</b> isang kapalit para sa karampatang medikal na gabay mula sa iyong Doktor.
<br>
<br>Dahil sa kakulangan ng dokumentasyon na inilabas ng mga tagagawa tungkol sa mga format ng file, ang kawastuhan ng data na ipinapakita sa OSCAR ay hindi maaaring garantisado.
<br>
<br>Ang lahat ng mga ulat na nabuo ay para sa
<b>PERSONAL GAMIT LAMANG</b> at inilaan na maging tumpak hangga&#39;t maaari.
<br>
<br>Ang mga ulat ng OSCAR ay batay sa data na naiulat ng makina ng CPAP. Ang pagtanggap ng data na ito para sa pagsunod o iba pang mga layunin ay napapailalim sa pagpapasya sa pag-apruba ng ahensya ng pagsusuri.
<br>Ang paggamit ng software na ito ay ganap na nasa iyong sariling peligro. Ang mga may-akda ay hindi gaganapin mananagot para sa anumang bagay na may kaugnayan sa paggamit o maling paggamit ng software na ito.
<br>
<hr style="width: 100%; height: 2px;" >Ang OSCAR ay libre (tulad ng sa kalayaan) na software, na inilabas sa ilalim ng GNU Public Lisensya v3, at walang warranty, at walang ANUMANG nagsasabing fitness para sa anumang layunin.
<br>
<br>Ang OSCAR ay © 2019-2022 Ang OSCAR Team: isang pangkat ng mga nag-develop ng boluntaryo mula sa Apnea Community at mga miyembro ng maraming mga forum at iba&#39;t ibang nasyonalidad.
<br>
<br>Ang OSCAR ay isang hinango sa programa ng SleepyHead na may copyright © 2011-2018, Mark Watkins.
<br></div>
</body>
</html>

0
Htmldocs/about-fr.html Executable file → Normal file
View File

0
Htmldocs/about-he.html Executable file → Normal file
View File

0
Htmldocs/about-hu.html Executable file → Normal file
View File

0
Htmldocs/about-it.html Executable file → Normal file
View File

0
Htmldocs/about-nl.html Executable file → Normal file
View File

0
Htmldocs/about-no.html Executable file → Normal file
View File

0
Htmldocs/about-ph.html Executable file → Normal file
View File

0
Htmldocs/about-pl.html Executable file → Normal file
View File

0
Htmldocs/about-pt.html Executable file → Normal file
View File

0
Htmldocs/about-pt_BR.html Executable file → Normal file
View File

12
Htmldocs/about-ro.html Executable file → Normal file
View File

@ -10,7 +10,7 @@
<body>
<div style="text-align: center;">
<h1>Bine ați venit la OSCAR,
<br>Reporter de analiză CPAP Open Source</h1>Acest software a fost conceput pentru a vă ajuta să vizualizați datele produse de dispozitivele dvs. CPAP și echipamentele aferente.
<br>Reporter de analiză CPAP Open Source</h1>Acest software a fost conceput pentru a vă ajuta să revizuiți datele produse de dispozitivele dvs. CPAP și echipamentele aferente.
<br>
<br>Voluntarii au tradus-o în mai multe limbi. Faceți clic pe fila Ajutor pentru a schimba limba afișată.
<br>
@ -32,14 +32,14 @@
<br>Din cauza lipsei documentației lansate de producători cu privire la formatele de fișiere, acuratețea datelor afișate în OSCAR nu poate fi în niciun fel garantată.
<br>
<br>Toate rapoartele generate sunt
<b>DOAR PENTRU UTILIZARE PERSONALĂ</b> și ne straduim continuu să fie cât mai precise.
<b>DOAR PENTRU UTILIZARE PERSONALĂ</b> și sunt destinate să fie cât mai precise.
<br>
<br>Rapoartele OSCAR se bazează pe datele raportate de aparatul CPAP. Utilizarea lor în alte scopuri este la latitudinea dvs.
<br>Utilizarea acestui software este pe riscul dvs. Autorii nu pot și nu vor fi responsabili pentru nimic legat de utilizarea sau utilizarea corectă sau greșită a acestui software.
<br>Rapoartele OSCAR se bazează pe datele raportate de aparatul CPAP. Acceptarea acestor date în conformitate cu alte scopuri este supusă discreției agenției de examinare.
<br>Utilizarea acestui software este pe riscul dvs. Autorii nu vor fi responsabili pentru nimic legat de utilizarea sau utilizarea greșită a acestui software.
<br>
<hr style="width: 100%; height: 2px;" >OSCAR este un software gratuit (ca și în libertate), lansat sub licența publică GNU v3 și nu are nicio garanție și fără NICIO pretenție de calitate pentru niciun scop.
<hr style="width: 100%; height: 2px;" >OSCAR este un software gratuit (ca și în libertate), lansat sub licența publică GNU v3 și nu are nicio garanție și fără NICIUNE pretenții de fitness pentru niciun scop.
<br>
<br>OSCAR este Copyright © 2019-2020 Echipa OSCAR: un grup de dezvoltatori voluntari din comunitatea Apnea și membri ai mai multor forumuri și diferite naționalități.
<br>OSCAR este © 2019-2020 Echipa OSCAR: un grup de dezvoltatori voluntari din comunitatea Apnea și membri ai mai multor forumuri și diferite naționalități.
<br>
<br>OSCAR este un derivat al programului SleepyHead care este protejat de drepturi de autor © 2011-2018, Mark Watkins.
<br></div>

View File

@ -1,54 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type" >
<title>about</title>
<meta content="The OSCAR Team" name="author" >
</head>
<body>
<h1 style="text-align: center;">Welcome to OSCAR,
<br>the
<u>O</u>pen
<u>S</u>ource
<u>C</u>PAP
<u>A</u>nalysis
<u>R</u>eporter</h1>
<div style="text-align: center;">This software has been designed to assist you in reviewing the data produced by your CPAP devices and related equipment.
<br>
<br>Volunteers translated it into many languages. Click the Help tab to change the displayed language.
<br>
<br>Any Chromium-based browser like
<b>Google Chrome</b> or
<b>Microsoft Edge Chromium</b> currently offers the best
<u>automatic translation</u> options.
<br>You will find extensive help in the OSCAR Wiki. Open
<a href="http://www.apneaboard.com/wiki/index.php/OSCAR_Help" >http://www.apneaboard.com/wiki/index.php/OSCAR_Help</a>.
<br>
<br>For questions visit
<a href="http://www.apneaboard.com" >http://www.apneaboard.com</a> or a local apnea forum.
<br></div>
<hr style="width: 100%; height: 2px;" >
<h1 align="center">
<font color="red">PLEASE READ CAREFULLY</font>
</h1>
<hr style="width: 100%; height: 2px;" >
<div style="text-align: center;">OSCAR is
<b>NOT</b> a substitute for competent medical guidance from your Doctor.
<br>
<br>Due to the lack of documentation released by manufacturers regarding file formats, the accuracy of data displayed in OSCAR can not in any way be guaranteed.
<br>
<br>All reports generated are for
<b>PERSONAL USE ONLY</b> and are intended to be as accurate as possible.
<br>
<br>OSCAR reports are based on data reported by the CPAP machine. Acceptance of this data for compliance or other purposes is subject to the approval discretion of the reviewing agency.
<br>The use of this software is entirely at your own risk. The authors will not be held liable for
<u>anything</u> related to the use or misuse of this software.
<br>
<hr style="width: 100%; height: 2px;" >OSCAR is free (as in freedom) software, released under the GNU Public License v3, and comes with no warranty, and without ANY claims to fitness for any purpose.
<br>
<br>OSCAR is © 2019-2022 The OSCAR Team: a group of volunteer developers from the Apnea Community and members of multiple forums and various nationalities.
<br>
<br>OSCAR is a derivative of the SleepyHead program which is copyright © 2011-2018, Mark Watkins.</div>
</body>
</html>

View File

@ -1,55 +0,0 @@
Welcome to OSCAR,
the Open Source CPAP Analysis Reporter
This software has been designed to assist you in reviewing the data produced by your CPAP devices and related equipment.
Volunteers translated it into many languages. Click the Help tab to change the displayed language.
Any Chromium-based browser like Google Chrome or Microsoft Edge Chromium currently offers the best automatic translation options.
You will find extensive help in the OSCAR Wiki. Open http://www.apneaboard.com/wiki/index.php/OSCAR_Help.
For questions visit http://www.apneaboard.com or a local apnea forum.
=========================================================================================================================================
PLEASE READ CAREFULLY
=========================================================================================================================================
OSCAR is NOT a substitute for competent medical guidance from your Doctor.
Due to the lack of documentation released by manufacturers regarding file formats, the accuracy of data displayed in OSCAR can not in any way be guaranteed.
All reports generated are for PERSONAL USE ONLY and are intended to be as accurate as possible.
OSCAR reports are based on data reported by the CPAP machine. Acceptance of this data for compliance or other purposes is subject to the approval discretion of the reviewing agency.
The use of this software is entirely at your own risk. The authors will not be held liable for anything related to the use or misuse of this software.
=========================================================================================================================================
OSCAR is free (as in freedom) software, released under the GNU Public License v3, and comes with no warranty, and without ANY claims to fitness for any purpose.
OSCAR is © 2019-2022 The OSCAR Team: a group of volunteer developers from the Apnea Community and members of multiple forums and various nationalities.
OSCAR is a derivative of the SleepyHead program which is copyright © 2011-2018, Mark Watkins.
----------------------------------------------------------------------------------------------------------------------------------------
Добро пожаловать в OSCAR,
Open Source CPAP Analysis Reporter
Это программное обеспечение было разработано для того, чтобы помочь вам в анализе данных, получаемых вашими CPAP-аппаратами и сопутствующим оборудованием.
Добровольцы перевели его на многие языки. Перейдите на вкладку "Справка", чтобы изменить отображаемый язык.
Любой браузер на базе Chromium, например Google Chrome или Microsoft Edge Chromium в настоящее время предлагает лучшие возможности автоматического перевода.
Вы найдете обширную помощь в OSCAR Wiki. Откройте http://www.apneaboard.com/wiki/index.php/OSCAR_Help.
Для получения ответов на вопросы посетите http://www.apneaboard.com или местный форум по апноэ.
=========================================================================================================================================
ПОЖАЛУЙСТА, ВНИМАТЕЛЬНО ПРОЧИТАЙТЕ
=========================================================================================================================================
OSCAR НЕ является заменой компетентному медицинскому руководству вашего врача.
Из-за отсутствия документации, выпущенной производителями в отношении форматов файлов, точность данных, отображаемых в OSCAR, не может быть гарантирована.
Все создаваемые отчеты предназначены ТОЛЬКО ДЛЯ ЛИЧНОГО ИСПОЛЬЗОВАНИЯ и должны быть максимально точными.
Отчеты OSCAR основаны на данных, сообщаемых CPAP-аппаратом. Принятие этих данных для соответствия требованиям или других целей зависит от усмотрения проверяющей организации.
Использование данного программного обеспечения осуществляется исключительно на ваш страх и риск. Авторы не несут ответственности за что-либо, связанное с использованием или неправильным использованием данного программного обеспечения.
========================================================================================================================================
OSCAR является свободным (в смысле свободы) программным обеспечением, выпускается под GNU Public License v3, поставляется без гарантий и без ЛЮБЫХ претензий на пригодность для любых целей.
OSCAR - это © 2019-2022 The OSCAR Team: группа разработчиков-добровольцев из сообщества Apnea и членов многочисленных форумов и различных национальностей.
OSCAR является производной от программы SleepyHead, авторские права на которую © 2011-2018, Марк Уоткинс.

0
Htmldocs/about-sv.html Executable file → Normal file
View File

0
Htmldocs/about-th.html Executable file → Normal file
View File

0
Htmldocs/about-tr.html Executable file → Normal file
View File

0
Htmldocs/about-zh.html Executable file → Normal file
View File

2
Htmldocs/about.html Executable file → Normal file
View File

@ -47,7 +47,7 @@
<br>
<hr style="width: 100%; height: 2px;" >OSCAR is free (as in freedom) software, released under the GNU Public License v3, and comes with no warranty, and without ANY claims to fitness for any purpose.
<br>
<br>OSCAR is © 2019-2024 The OSCAR Team: a group of volunteer developers from the Apnea Community and members of multiple forums and various nationalities.
<br>OSCAR is © 2019-2020 The OSCAR Team: a group of volunteer developers from the Apnea Community and members of multiple forums and various nationalities.
<br>
<br>OSCAR is a derivative of the SleepyHead program which is copyright © 2011-2018, Mark Watkins.</div>
</body>

View File

@ -8,7 +8,7 @@
</head>
<body>
<p>
<b>This page in other languages:</b>
<b>For other languages, go to:</b>
<br><a href=http://www.apneaboard.com/wiki/index.php/OSCAR_Credits>http://www.apneaboard.com/wiki/index.php/OSCAR_Credits</a></p>
<h1>Credits</h1>
<hr style="width: 100%; height: 2px;" >
@ -17,7 +17,7 @@
<p>
<b>OpenSource Libraries</b>
<br>OSCAR uses the OpenSource version of the Qt cross-platform toolkit available from
<a href="http://qt.io" >https://qt.io</a> which itself draws from many smaller open source libraries. You can read the individual licensing for many of these components that are used under the hood of OSCAR at
<a href="http://qt.io" >http://qt.io</a> which itself draws from many smaller open source libraries. You can read the individual licensing for many of these components that are used under the hood of OSCAR at
<a href="https://doc.qt.io/qt-5/licenses-used-in-qt.html" >https://doc.qt.io/qt-5/licenses-used-in-qt.html</a></p>
<p>
<b>Data formats</b>
@ -30,21 +30,22 @@
<p>
<b>Developers</b>
<br>
Phil Olynyk (pholynyk) (<i>Lead Developer</i>), GuyScharf, sawinglogz, Ray Elliott (LoudSnorer), sgearhart (Crimson Nape), untoutseul05</p>
Phil Olynyk (pholynyk) (<i>Lead Developer</i>), GuyScharf, sawinglogz</p>
<p>
<b>Reporters</b>
<br>palerider, TechieHusband</p>
<br>AlanE, BrandonA, Crimson Nape, foxfire, Heyns, jeremieb, jaswilliams, palerider, patl</p>
<p>
<b>Testers</b>
<br>
Fred Bonjour (Gideon) (<i>Lead Tester</i>), ARBatteiger, ArcherNeedsSleep, bollar, c137jayde, cberistain, coldfeet7, dohm, Expat31, fishfinderG, Frankiboy, geraldbergeron, Gooffy44, Gralli, GuyScharf, Homerec130, JJJ, johnnyb00, jr3586, minderbinder, motorsrunnin, NicoFR, pilothaz, ronfario, Ruud J, ScottZZZ, Shnorky, silverdr, Sleepy Quixote, SleepyHenry, SleepyJoseph, stbrown3rd, Tdragone, TechieHippie, TechieHusband, tedpearson, unidee, untoutseul05</p>
Fred Bonjour (Gideon) (<i>Lead Tester</i>), Beej, DeepBreathing, Fastlane, GuyScharf, JJJ, LookingForward, Pollcat, Ruth Catrin, SarcasticDave94,
unidee</p>
<p>
<b>Advisors</b>
<br>Sleeprider, srlevine1, harre, rhashimoto </p>
<br>aviB, SkepticDoc, Sleeprider, SleepyProgrammer, srlevine1, LunaFerret, harre, mdhamptom, mitchcampbell, rtannerf</p>
<p>
<b>Translators</b>
<br>
Arie Klerk (A KLERK) (<i>Translations Team Coordinator, Dutch</i>), 1st.qwerty (<i>Polish</i>), ApneaHero (<i>Czech</i>), C Chan (<i>Chinese Trad</i>), delta (<i>Romanian</i>), dolceitalia (<i>Italian</i>), dprenerov (<i>Bulgarian</i>), drmaestro (<i>Turkish</i>), drol (<i>French</i>), eddyDee (<i>Hebrew</i>), FaureCourtet (<i>French</i>), GregK (<i>Russian/Hebrew</i>), hearsay73 (<i>Filipino</i>), Heyns (<i>Afrikaans</i>), hisaotsu (<i>Japanese</i>), Hypoxic (<i>Greek</i>), k2boys (<i>Korean</i>), Lazer1234 (<i>Swedish</i>), mazingas65 (<i>Italian</i>), Ppja (<i>Spanish</i>), pstrjds (<i>Bulgarian</i>), refurbished (<i>Polish</i>), Ristraus (<i>Brazilian/Portugese</i>), rlabs (<i>Russian</i>), ShaunBlake (<i>British</i>), steffenreitz (<i>German</i>), tolnaiz (<i>Hungarian</i>), torp56 (<i>Danish</i>), unidee (<i>Finnish</i>), untoutseul05 (<i>French</i>), yrnkrn (<i>Hebrew</i>), zellem (<i>Chinese Simplified</i>) <br>
Arie Klerk (A KLERK) (<i>Translations Team Coordinator, Dutch</i>), 1st.qwerty (<i>Polish</i>), C Chan (<i>Trad.Chinese)</i>, Caniss (<i>Swedish</i>), delta (<i>Romanian</i>), dolceitalia (<i>Italian</i>), drmaestro (<i>Turkish</i>), drol (<i>French</i>), FaureCourtet (<i>French</i>), GregK (<i>Russian, Hebrew</i>), hearsay73 (<i>Filipino</i>), Heyns (<i>African</i>), Hypoxic (<i>Greek</i>), jaswilliams (<i>British</i>), johanh (<i>Finnish</i>), k2boys (<i>Korean</i>), Lazer1234 (<i>Swedish</i>), Mac_Sheepcounter (<i>German</i>), mazingas65 (<i>Italian</i>), Ppja (<i>Spanish</i>), pstrjds (<i>Bulgarian</i>), refurbished (<i>Polish</i>), Ristraus (<i>Brazilian Portugese</i>), rlabs (<i>Russian</i>), ShaunBlake (<i>British</i>), steffenreitz (<i>German</i>), tolnaiz (<i>Hungarian</i>), unidee (<i>Finnish</i>), untoutseul05 (<i>French</i>), yrnkrn (<i>Hebrew</i>), N-A-N (<i>Thai</i>). <br>
<b>Thank you all very much for your continuous effort!</b></p>
<p>
<b>OSCAR is always looking for help: programmers, testers, or translators. If you are interested, please PM &#39;Gideon&#39; on the Apnea Board Forum.</b>
@ -53,48 +54,5 @@
<p>A special mention to the ApneaBoard for providing a development forum for OSCAR and for providing the primary download site for OSCAR at
<a href="https://sleepfiles.com/OSCAR" >https://sleepfiles.com/OSCAR</a>.</p>
<p>Also acknowledging ApneaBoard for their support of software for CPAP users for many years.</p>
<hr style="width: 100%; height: 2px;" >
<p><b>Third-Party Libraries:</b></p>
<p><b>Botan</b><br />
Copyright (C) 1999-2020 The Botan Authors<br />
All rights reserved.</p>
<p>Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:</p>
<p>1. Redistributions of source code must retain the above copyright notice,
this list of conditions, and the following disclaimer.</p>
<p>2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions, and the following disclaimer in the
documentation and/or other materials provided with the distribution.</p>
<p>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.</p>
<p><b>miniz</b><br />
Copyright 2013-2014 RAD Game Tools and Valve Software<br />
Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC<br />
All Rights Reserved.</p>
<p>Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:</p>
<p>The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.</p>
<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.</p>
</body>
</html>

View File

@ -8,160 +8,9 @@
</head>
<body>
<p>
<b>This page in other languages:</b>
<b>For other languages, go to:</b>
<br><a href=http://www.apneaboard.com/wiki/index.php/OSCAR_Release_Notes>http://www.apneaboard.com/wiki/index.php/OSCAR_Release_Notes</a></p>
<p>
<p>
<b>Changes and fixes in OSCAR v1.5.3</b>
<br>Portions of OSCAR are &copy; 2019-2024 by
<i>The OSCAR Team</i></p>
<ul>
<li>[fix] No name in user profile - user unable to access data.</li>
<li>[fix] Daily Search: Add search at first imstall.</li>
<li>[fix] Statstics: Prevent Data Range from listing future dates.</li>
<li>[fix] Correct validation for Lanuage and Help files.</li>
<li>[added] Daily Search Item: Searh for any Journal item (notes,bookmarks,weight,feelings).</li>
<li>[added] Import(restore) Journal.</li>
<li>[added] Confgurable Daily Left Side Bar.</li>
<li>[update] Credits.html - Member updates. </li>
</ul>
<b>Changes and fixes in OSCAR v1.5.2</b>
<br>Portions of OSCAR are &copy; 2019-2024 by
<i>The OSCAR Team</i></p>
<ul>
<li>[fix] VHigh Resolution Control File Location. Now in Oscar Data Folder.</li>
<li>[fix] Statistics: Add configuration of alternating colored lines background.</li>
<li>[fix] Viatom/Wellue file extension (.dat) was preventing the name from changing the start time</li>
<li>[fix] Time display issues encountered when summer time is changed to winter time.</li>
<li>[fix] Statistics display mode is now restored when Oscar starts.</li>
<li>[fix] Change Language.</li>
<li>[fix] iBreeze loader - Various fixes.</li>
<li>[fix] Snore Events were lost when sessions had a single snore event.</li>
<li>[fix] Graphs were dropped when Oscar was restarted after import.</li>
<li>[fix] Prisma pressure settings in the Daily screen now display whole numbers.</li>
<li>[fix] OSCAR - automatic reload when parameter changes encountered.</li>
<li>[added] Allow renaming of a user profile.</li>
<li>[added] Graphs hints at bottom of Daily and Overview Tabs.</li>
<li>[added] Statistics:added alternating light green/white background colors for rows.</li>
<li>[added] Enhanced and Fixed html zoom in/out feature.</li>
<li>[update] Biometrics settings.</li>
<li>[update] iBreeze loader: Added progress bar.</li>
<li>[update] Statistics Screen - Various improvements.</li>
</ul>
<p>
<b>Changes and fixes in OSCAR v1.5.1</b>
<br>Portions of OSCAR are &copy; 2019-2023 by
<i>The OSCAR Team</i></p>
<ul>
<li>[new] Added DS Go Auto 500G150 model</li>
<li>[fix] Re-enabled biometrics</li>
<li>[fix] Disabled pixmap caching</li>
<li>[fix] High Resolution display issue</li>
<ul><li> Setting added to Preferences > Appearance to enable/disable High Resolution mode</li>
<li> Setting is disabled by default</li></ul>
<li>[fix] Checkupdates fixed</li>
</ul>
<p>
<p>
<b>Changes and fixes in OSCAR v1.5.0</b>
<br>Portions of OSCAR are © 2019-2023 by
<i>The OSCAR Team</i></p>
<ul>
<li>[new] Added Support for Resmed AirSense 11 models 39483 and 39517</li>
<li>[new] Added Clinical and Permissive mode for compliance</li>
<li>[new] Added Clinical tab to preferences</li>
<li>[new] New CPAP session bar (experimental)</li>
<li>[new] Additional settings reported for ResMed bilevel machines</li>
<li>[new] Red zero line for flow rate on by default</li>
<li>[new] Added dynamic resizing of daily graphs by double clicking graph name</li>
<li>[new] Hoffrichter Point 3 machines now supported</li>
<li>[new] Resvent machines now supported</li>
<li>[new] F&P Sleepstyle now reports Obstructive and Central separately</li>
<li>[new] Added Shift+click to zoom into 3 minute window</li>
<li>[new] Search function added to Daily Screen left panel</li>
<li>[new] Event Flags graph automatically resizes to event types selected</li>
<li>[new] Added warning dialog when a session is disabled</li>
<li>[new] Added Backup feature for daily/overview graph settings</li>
<li>[fix] Fix high resolution display issues</li>
<li>[fix] Improved support for PrismaLine bilevel modes</li>
<li>[fix] Selected event not showing in PRS1 devicess</li>
<li>[fix] Updated wording for View > Reset Graphs</li>
<li>[fix] Crash on View > Reset Graphs</li>
<li>[fix] Viatom now imports files with .dat extension</li>
<li>[fix] Graph combo box updated</li>
<li>[fix] Allow Graph and Event combo boxes to remain open after changes.</li>
<li>[fix] Overview display of ResMed Oximeter events now works.</li>
</ul>
<p>
<b>Changes and fixes in OSCAR v1.4.0</b>
<br>Portions of OSCAR are © 2019-2022 by
<i>The OSCAR Team</i></p>
<ul>
<li>[new] Support for Philips Respironics DreamStation 2:
<ul>
<li>DreamStation 2 CPAP (410X150C)</li>
<li>DreamStation 2 Advanced CPAP (420X150C)</li>
<li>DreamStation 2 Auto CPAP Advanced (520X110C, 520X130C, 520X150C)</li>
<li>DreamStation 2 Auto CPAP Advanced with P-Flex (521X120C, 521X140C)</li>
</ul>
</li>
<li>[new] Additional Philips Respironics devices tested and fully supported:
<ul>
<li>BiPAP Auto (System One 60 Series) (761P)</li>
<li>BiPAP autoSV Advanced 30 (System One 60 Series) (961TCA)</li>
<li>REMstar Auto (System One) (552P)</li>
</ul>
</li>
<li>[new] For AutoSet 11, two models were added to the tested list: 39421 and 39485.</li>
<li>[fix] Added support for pressure pulse, CA, and VS on BiPAP autoSV Advanced 30 (System One 60 Series) (960T).</li>
<li>[fix] Fixed pressure settings scale on BiPAP autoSV Advanced 30 (System One 60 Series) (960T).</li>
<li>[fix] For all ResMed devices, square plot (no smoothing) has been forced on all 2 second pressure graphs.</li>
<li>[fix] File Export Sessions now exports statistics session data properly.</li>
<li>[fix] Fixed a rare crash on import when encountering corrupted Philips Respironics directories.</li>
<li>[fix] Fixed an incorrect warning message when importing some CheckMe O2 Max data.</li>
</ul>
<p>
<b>Changes and fixes in OSCAR v1.3.1</b>
<br>Portions of OSCAR are © 2019-2022 by
<i>The OSCAR Team</i></p>
<ul>
<li>[new] Additional Philips Respironics devices tested and fully supported:
<ul>
<li>REMstar Plus (System One 60 Series) (261P) <i>provides only limited information</i></li>
<li>REMstar Pro (System One 60 Series) (460PBT)</li>
<li>DreamStation CPAP Pro with Auto-Trial (401X150)</li>
</ul>
</li>
<li>[new] Choose AS11 data instead of AS10 data if both are present on the SD card.</li>
<li>[new] Add support for new settings codes in recently manufactured 700X110 DreamStations.</li>
<li>[new] Add 95% flow limitation to Therapy Efficacy section on Statistics page.</li>
<li>[new] Add date range option to Statistics page.</li>
<li>[new] Improve appearance and operation of event types and graphs comboboxes on Daily and Overview pages.</li>
<li>[new] Skip first 20 seconds of TiVol, RR, and MinVent in ResMed loader.</li>
<li>[new] Add ResMed 39423 Canadian Autoset to tested list.</li>
<li>[new] Show channel description when hovering over index name on Daily page.</li>
<li>[new] Add full support for Wellue CheckMe O2 Max.</li>
<li>[fix] Fix pressure values for AutoForHer mode on AS1x.</li>
<li>[fix] Fix missing oximetry and motion waveforms on Overview pages.</li>
<li>[fix] Fix rare problem of minimum pressure shown as zero on Overview and Statistics pages.</li>
<li>[fix] Update Statistics page after editing profile.</li>
<li>[fix] Correct selection of CPAP and AutoForHer modes for ResMed AS11 modes.</li>
<li>{fix} Skip first 10 seconds of pressure data for ResMed grapths and statistics.</li>
<li>[fix] Correct SleepStyle machines sometimes identified as Icon machines.</li>
<li>[fix] Improve event flag position in flow graph for DV6 machines.</li>
<li>[fix] --datadir option now allows fully qualified paths on Mac and Linux.</li>
<li>[fix] Correct value display on exact data points, and near session boundaries with drift.</li>
<li>[fix] Link to translations in Credits and Release Notes html is now translated to selected language.</li>
<li>[fix] Continue to import DreamStation 1 data even if there is (unsupported) DreamStation 2 data on the SD card.</li>
<li>[fix] Automatic Oximetry Cleanup no longer drops samples or supplemental oximeter channels such as movement.</li>
<li>[fix] Replace BRICK! message with better wording.</li>
<li>[fix] Add footer to first page of printed Statistics report.</li>
<li>[fix] Work around a Qt bug on Fedora 35 that caused hangs when selecting files.</li>
<li>[fix] Update copyright notices in html files.</li>
</ul>
<p>
<b>Changes and fixes in OSCAR v1.3.0</b>
<br>Portions of OSCAR are © 2019-2021 by
<i>The OSCAR Team</i></p>

6
README
View File

@ -8,9 +8,9 @@ under the GPL version 3 license. See the file COPYING for those details.
SleepyHead was written by Mark Watkins (aka Jedimark), an Australian software developer afflicted with sleep apnea.
SleepyHead was copyright (C) 2011-2018 by Mark Watkins
SleepyHead was copyright (C) 2011-2018 by Mark Watkins <mark@jedimark.net>
Portions of OSCAR are copyright (c) 2019-2022 The OSCAR Team <oscar@oscar-team.org>
Portions of OSCAR are copyright (c) 2019, 2020 by The OSCAR Team <oscar@oscar-team.org>
Minimum Requirements:
-------------------
@ -39,7 +39,7 @@ is incredibly un-motivational, and incredibly disrespectful of all the work he p
If you plan on reselling any derivatives of SleepyHead, I specifically request that you give due credit and
link back, mentioning clearly in your advertising material, software installer and about screens that your
derivative "is based on the free and open-source software SleepyHead ,
derivative "is based on the free and open-source software SleepyHead available from http://sleepyhead.jedimark.net,
developed and copyright by Mark Watkins (C) 2011-2018."
It is not enough to reference that your derivative "is based on GPL software".

View File

@ -1,371 +0,0 @@
#!/usr/bin/env python3
"""
Copyright (c) 2023-2024 The OSCAR Team
Find text files with the word "Copyright" ending with a year (4 digits) range like 2019-2022 and then
followed by a string containing OSCAR. The script changes the 2 year to the current year.
This script will search all files in the folder where the script is run:
1) From the Git top-level folder. The script will also access the translation files and Build file.
2) From the oscar folder (that contains oscar.pro). The script will also access the code files.
"""
import os
import re
import subprocess
import time
import filecmp
import inspect
import sys
current_year = time.localtime().tm_year
top_dir = subprocess.check_output(['git', 'rev-parse', '--show-toplevel']).decode('utf-8').strip()
relative_sync_dir = os.path.join(top_dir, '..')
verbose = False
changed = False
list = False
list_ignored = False
testExecution = False
debug = False
single = True
def validStr(str) :
if str is None: return False
tmp = not str
return not tmp
def validYear(year) :
if year is None: return False
try:
tmp = int(year)
except ValueError:
return False
tmp = int(year)
return ((tmp > 2000) and (tmp < 2099) )
class Stats:
def __init__(self, field1 , field2 , field3 , field4 , field5 ):
self.files_date_changed = field1
self.files_date_already_changed = field2
self.files_needing_inspection = field3
self.files_ignored = field4
self.files_total = field5
statistics = Stats(0,0,0,0,0)
class LineInfo:
def __init__(self, field1 , field2 , field3 , field4 , field5 , field6 , field7 , field8):
self.lineNumber = field1 ## read only
self.line = field2
self.baseName = field3 ## read only
self.fileModified = field4 ## numberlines Modified
self.lineModified = field5 ## True if line changed
self.validSignature = field6 ## only set to true
self.needReview = field7 ## only set to true
self.countUpdated = field8 ## only set to true
def processLine(lineInfo):
lineInfo.lineModified = False;
baseNameLine = f"{lineInfo.baseName}[{lineInfo.lineNumber}]"
baseNameLineJ = baseNameLine.ljust(30)
## read only properties
global relative_sync_dir, current_year, verbose , list , debug , statstics
#{ limit processing line
## where * is any string
## SOURCE: * Copyright (c) YEAR - YEAR The OSCAR Team *
## Modifiable: * Copyright * YEAR - YEAR The OSCAR Team *
## Modifiable: * YEAR - YEAR The OSCAR Team *
## Modifiable: * YEAR - YEAR OSCAR Team *
## Modifiable/WARNING: * YEAR - YEAR OSCAR *
## WARNING: * YEAR OSCAR *
## WARNING: * copyright * OSCAR *
## find copyright or year
next = 0;
pattern = r'copyright'
copyright = False
match = re.search(pattern,lineInfo.line,re.IGNORECASE)
if (match) :
copyright = True
###next = match.end()
pattern = r'(^.*?)((\d{4})\s*(-)?\s*)(\d{4})?(\s*(The)?\s*(OSCAR)\s*(Team)?\b)(.*$)' #works
match = re.search(pattern,lineInfo.line,re.IGNORECASE)
if match : ## match
## match of oscar copyright signature
#{
before = match.group(1)
year1dash = match.group(2)
year1 = match.group(3)
dash = match.group(4)
year2 = match.group(5)
theoscarteam = match.group(6)
the = match.group(7)
oscar = match.group(8)
team = match.group(9)
after = match.group(10)
if debug :
sum = f"""
before 1 {before}
year1dash 2 {year1dash}
year1 3 {year1}
dash 4 {dash}
year2 5 {year2}
TheOscarTeam 6 {theoscarteam}
The 7 {the}
OSCAR 8 {oscar}
Team 9 {team}
after 10 {after}
"""
print(sum);
newCopyright = f"{year1dash}{current_year}{theoscarteam}"
newLine = f"{before}{newCopyright}{after}\n"
# Note OSCAR is always valid and is assumed to be true
validOscarCopyright = validYear(year1) and validStr(dash) and validYear(year2)
if (validOscarCopyright) :
if not lineInfo.needReview : lineInfo.needReview = not ( copyright or validStr(the) or validStr(team) )
fileValidOscarCopyright = True
if (str(year2)==str(current_year)) :
if not lineInfo.countUpdated :
statistics.files_date_already_changed += 1
lineInfo.countUpdated = True
if verbose : print(f" Already Modified: {baseNameLineJ}")
return;
else : ## need to modify date
if not lineInfo.countUpdated :
statistics.files_date_changed += 1
lineInfo.countUpdated = True
if verbose : print(f" File Modified: {baseNameLineJ}{newLine}",end='')
lineInfo.lineModified = True;
lineInfo.fileModified += 1;
if debug :
print(lineInfo.line)
print(newLine)
lineInfo.line = newLine
return;
#} end match of oscar copyright signature
#} End limit processing line
def processFile(filename):
"""
Process the file to update the copyright year if necessary.
Args:
filename: name of the file to be processed
"""
global relative_sync_dir, current_year, verbose , list , debug , statistics
statistics.files_total = statistics.files_total +1
relativeFileName = os.path.relpath(filename, relative_sync_dir)
baseName = os.path.basename(filename)
lines = []
lineNumber = 0;
fileValidOscarCopyright = False
needReview = False
##if debug : print(f" processFile {baseName}")
lineInfo = LineInfo(0 , "" , baseName , 0 , False , False ,False , False);
codeFile = baseName.endswith(".cpp") or baseName.endswith(".h")
try:
#{ try loop
## skip files not be changed.
## only do .h and .cpp files and not third party software or auto generated files.
if (
## Folder that should be excluded
("thirdparty" in filename.split(os.path.sep)) or ("tests" in filename.split(os.path.sep)) or ("git_info.h" == baseName )
## file types that should be excluded
or (not codeFile)
## for test or (not ("aboutdialog.h" == baseName or "newprofile.cpp" == baseName) )
) :
statistics.files_ignored += 1
lineInfo.countUpdated = True ## insure a file is counted only once.
if verbose or list_ignored: print(f" Ignored: {relativeFileName}")
return;
## Common encodings to try: utf-8 , latin-1 , iso-8859-1 , cp1252 , utf-16 , big5 , gb18030 .
if debug : print(f" processFile {baseName}")
with open(filename, 'r+' , encoding="latin-1") as file_handle: ## latin-1 works utf-8 fails
#{ start of processing all lines
## only search until 1st signature is found. except newprofile where copyright is displayed
single = not ( "newprofile.cpp" == baseName )
if (list) :
print(f" Opened {relativeFileName}")
elif (not single or lineInfo.fileModified == 0) :
for line in file_handle:
#{ start of processing line
lineNumber += 1
lineInfo.lineModified = False
lineInfo.lineNumber = lineNumber;
lineInfo.line = line;
processLine(lineInfo);
if lineInfo.lineModified :
lines.append(lineInfo.line)
else :
lines.append(line)
#} end processing line
if ( lineInfo.needReview or (codeFile and not lineInfo.countUpdated) ) :
print(f" Copyright Check {relativeFileName}")
if not lineInfo.countUpdated :
statistics.files_needing_inspection += 1
lineInfo.countUpdated = True
if lineInfo.fileModified == 0:
if not lineInfo.countUpdated : ## already modified is excluded here.
statistics.files_ignored += 1
lineInfo.countUpdated = True
if verbose or list_ignored: print(f" Ignored: {relativeFileName}")
return;
if testExecution : return
file_handle.seek(0)
file_handle.truncate()
file_handle.write(''.join(lines))
file_handle.flush()
os.fsync(file_handle.fileno())
return
#} end of processing all lines
except IOError as e:
print(f" File Open Error: {relativeFileName}")
#} try loop
def isBinaryFile(file_path):
with open(file_path, 'rb') as f:
for block in f:
if b'\0' in block:
return True
return False
"""
def xisBinaryFile(file_path):
result = subprocess.run(['file', '--mime-encoding', file_path], capture_output=True, text=True)
return 'binary' in result.stdout
"""
def handleFile(file_path):
"""
Process the file if it is a text file.
Args:
file_path (str): The path of the file to be processed.
"""
if os.path.isfile(file_path) :
if not isBinaryFile(file_path):
processFile(file_path)
def help_menu():
"""
Display the help menu.
"""
help_msg = """
Help Menu
{}
# uses the current year to modifed files with copyright.
# This script modifies the first line with the following signature (case insensative).
YYYY and ZZZZ are sequences of 4 digits representing year
asterisk " means any sequence of charaters.
# signature: * YYYY-ZZZZ * OSCAR *
# The script will only change ZZZZ to the current year. No file size change.
# No other lines will be modfied.
--help displays help message
--execute allows script to execute
-v --verbose displays status for each file accessed
--changed displays each line modified
--list displays filenames to be search and exits
--ignored List files that are ignored.
--test Execute code but skips the actual file write
--year <year> Overrides system year
--code starts working at OSCAR-code/oscar
--base starts working at OSCAR-code
<folderName> starts working at OSCAR-code/folderName
defaultFolder starts working at the current folder
""".format(__file__)
print(help_msg)
exit()
####################################################################################################
start_dir = os.getcwd().rstrip('\n')
options = ""
execute = None
verbose = False
list = False
while len(sys.argv) > 1:
arg = sys.argv.pop(1)
options += " " + arg
if arg == '--help':
help_menu()
elif arg == '--debug' or arg == '-d':
debug = True
elif arg == '--verbose' or arg == '-v':
verbose = True
elif arg == '--changed':
changed = True
elif arg == '--year':
year = 0;
if len(sys.argv) > 1:
tmp = sys.argv.pop(1)
try:
year = int(tmp)
if not validYear(year) :
print("Invalid year: " + tmp)
help_menu()
current_year = year;
except ValueError:
year =0
print("Invalid year: " + tmp)
help_menu()
elif arg == '--test':
testExecution = True
elif arg == '--list':
list = True
elif arg == '--ignored':
list_ignored = True
elif arg == '--code':
## starts form topLevelFolder/oscar
start_dir = os.path.join(top_dir, 'oscar')
elif arg == '--execute':
execute = True
elif arg == '--base':
start_dir = top_dir
else:
tmp_dir = os.path.join(top_dir, arg)
if os.path.isdir(tmp_dir):
start_dir = tmp_dir
else:
print("Invalid Parameter: " + arg)
help_menu()
relativeStartDir = os.path.relpath(start_dir, relative_sync_dir)
if execute is None:
print("Requires --execute parameter to execute script")
help_menu()
exit()
# Call the walk function to process all files recursively
for root, dirs, files in os.walk(start_dir):
for file in files:
filename=os.path.join(root, file)
if os.path.isfile(filename) and not isBinaryFile(filename):
processFile(filename)
print(f"{os.path.basename(__file__)} {relativeStartDir} {options}")
if list : exit()
summary = f"""
Summary of Text Files searched {statistics.files_total}
Number of files with date modified: {statistics.files_date_changed}
Number of files with date already modified: {statistics.files_date_already_changed}
Number of files with Copyright Check: {statistics.files_needing_inspection}
Number of files ignored {statistics.files_ignored}
"""
print(summary)

8097
Translations/Afrikaans.af.ts Executable file → Normal file

File diff suppressed because it is too large Load Diff

7342
Translations/Arabic.ar.ts Executable file → Normal file

File diff suppressed because it is too large Load Diff

7508
Translations/Bulgarian.bg.ts Executable file → Normal file

File diff suppressed because it is too large Load Diff

7581
Translations/Chinese.zh_CN.ts Executable file → Normal file

File diff suppressed because it is too large Load Diff

8411
Translations/Chinese.zh_TW.ts Executable file → Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

15675
Translations/Dansk.da.ts Executable file → Normal file

File diff suppressed because it is too large Load Diff

7475
Translations/Deutsch.de.ts Executable file → Normal file

File diff suppressed because it is too large Load Diff

14493
Translations/English.en_UK.ts Executable file → Normal file

File diff suppressed because it is too large Load Diff

8242
Translations/Espaniol.es.ts Executable file → Normal file

File diff suppressed because it is too large Load Diff

7646
Translations/Espaniol.es_MX.ts Executable file → Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

8298
Translations/Francais.fr.ts Executable file → Normal file

File diff suppressed because it is too large Load Diff

8196
Translations/Greek.el.ts Executable file → Normal file

File diff suppressed because it is too large Load Diff

9564
Translations/Hebrew.he.ts Executable file → Normal file

File diff suppressed because it is too large Load Diff

7993
Translations/Italiano.it.ts Executable file → Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

8019
Translations/Korean.ko.ts Executable file → Normal file

File diff suppressed because it is too large Load Diff

8629
Translations/Magyar.hu.ts Executable file → Normal file

File diff suppressed because it is too large Load Diff

7891
Translations/Nederlands.nl.ts Executable file → Normal file

File diff suppressed because it is too large Load Diff

7484
Translations/Norsk.no.ts Executable file → Normal file

File diff suppressed because it is too large Load Diff

8240
Translations/Polski.pl.ts Executable file → Normal file

File diff suppressed because it is too large Load Diff

8810
Translations/Portugues.pt.ts Executable file → Normal file

File diff suppressed because it is too large Load Diff

7571
Translations/Portugues.pt_BR.ts Executable file → Normal file

File diff suppressed because it is too large Load Diff

7551
Translations/Romanian.ro.ts Executable file → Normal file

File diff suppressed because it is too large Load Diff

8182
Translations/Russkiy.ru.ts Executable file → Normal file

File diff suppressed because it is too large Load Diff

7443
Translations/Suomi.fi.ts Executable file → Normal file

File diff suppressed because it is too large Load Diff

8366
Translations/Svenska.sv.ts Executable file → Normal file

File diff suppressed because it is too large Load Diff

8829
Translations/Thai.th.ts Executable file → Normal file

File diff suppressed because it is too large Load Diff

8161
Translations/Turkish.tr.ts Executable file → Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,90 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="af_ZA" sourcelanguage="en">
<context>
<name>QShortcut</name>
<message>
<source>No</source>
<translation>Nee</translation>
</message>
<message>
<source>Yes</source>
<translation>Ja</translation>
</message>
</context>
<context>
<name>QPlatformTheme</name>
<message>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
<source>&amp;No</source>
<translation>&amp;Nee</translation>
</message>
<message>
<source>&amp;Yes</source>
<translation>&amp;Ja</translation>
</message>
<message>
<source>Help</source>
<translation>Hulp</translation>
</message>
<message>
<source>Open</source>
<translation>Oopmaak</translation>
</message>
<message>
<source>Save</source>
<translation>Stoor</translation>
</message>
<message>
<source>Abort</source>
<translation>Afbreek</translation>
</message>
<message>
<source>Apply</source>
<translation>Toepas</translation>
</message>
<message>
<source>Close</source>
<translation>Sluit</translation>
</message>
<message>
<source>Reset</source>
<translation>Herstel</translation>
</message>
<message>
<source>Retry</source>
<translation>Weer</translation>
</message>
<message>
<source>Restore Defaults</source>
<translation>Herstel verstek</translation>
</message>
<message>
<source>Cancel</source>
<translation>Kanselleer</translation>
</message>
<message>
<source>Ignore</source>
<translation>Ignoreer</translation>
</message>
<message>
<source>N&amp;o to All</source>
<translation>N&amp;ee vir almal</translation>
</message>
<message>
<source>Save All</source>
<translation>Spaar alles</translation>
</message>
<message>
<source>Discard</source>
<translation>Weggooi</translation>
</message>
<message>
<source>Yes to &amp;All</source>
<translation>Ja vir &amp;alles</translation>
</message>
</context>
</TS>

View File

@ -0,0 +1,90 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="ar">
<context>
<name>QShortcut</name>
<message>
<source>No</source>
<translation>لا</translation>
</message>
<message>
<source>Yes</source>
<translation>نعم</translation>
</message>
</context>
<context>
<name>QPlatformTheme</name>
<message>
<source>OK</source>
<translation>حسنًا</translation>
</message>
<message>
<source>&amp;No</source>
<translation>&amp;لا</translation>
</message>
<message>
<source>&amp;Yes</source>
<translation>&amp;نعم</translation>
</message>
<message>
<source>Help</source>
<translation>مساعدة</translation>
</message>
<message>
<source>Open</source>
<translation>افتح</translation>
</message>
<message>
<source>Save</source>
<translation>احفظ</translation>
</message>
<message>
<source>Abort</source>
<translation>أجهض</translation>
</message>
<message>
<source>Apply</source>
<translation>طبّق</translation>
</message>
<message>
<source>Close</source>
<translation>أغلق</translation>
</message>
<message>
<source>Reset</source>
<translation>صفّر</translation>
</message>
<message>
<source>Retry</source>
<translation>حاول مجدّدًا</translation>
</message>
<message>
<source>Restore Defaults</source>
<translation>استعد الافتراضيّات</translation>
</message>
<message>
<source>Cancel</source>
<translation>ألغِ</translation>
</message>
<message>
<source>Ignore</source>
<translation>تجاهل</translation>
</message>
<message>
<source>N&amp;o to All</source>
<translation>لا لل&amp;كلّ</translation>
</message>
<message>
<source>Save All</source>
<translation>احفظ الكلّ</translation>
</message>
<message>
<source>Discard</source>
<translation>ارفض</translation>
</message>
<message>
<source>Yes to &amp;All</source>
<translation>ن&amp;عم للكلّ</translation>
</message>
</context>
</TS>

View File

@ -0,0 +1,90 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="bg">
<context>
<name>QShortcut</name>
<message>
<source>No</source>
<translation>Не</translation>
</message>
<message>
<source>Yes</source>
<translation>Да</translation>
</message>
</context>
<context>
<name>QPlatformTheme</name>
<message>
<source>OK</source>
<translation>Добре</translation>
</message>
<message>
<source>&amp;No</source>
<translation>&amp;Не</translation>
</message>
<message>
<source>&amp;Yes</source>
<translation>&amp;Да</translation>
</message>
<message>
<source>Help</source>
<translation>Помощ</translation>
</message>
<message>
<source>Open</source>
<translation>Отваряне</translation>
</message>
<message>
<source>Save</source>
<translation>Запазване</translation>
</message>
<message>
<source>Abort</source>
<translation>Прекъсване</translation>
</message>
<message>
<source>Apply</source>
<translation>Прилагане</translation>
</message>
<message>
<source>Close</source>
<translation>Затваряне</translation>
</message>
<message>
<source>Reset</source>
<translation>Нулиране</translation>
</message>
<message>
<source>Retry</source>
<translation>Повторен опит</translation>
</message>
<message>
<source>Restore Defaults</source>
<translation>По подразбиране</translation>
</message>
<message>
<source>Cancel</source>
<translation>Отказ</translation>
</message>
<message>
<source>Ignore</source>
<translation>Пренебрегване</translation>
</message>
<message>
<source>N&amp;o to All</source>
<translation>Н&amp;е за всички</translation>
</message>
<message>
<source>Save All</source>
<translation>Запазване на всичко</translation>
</message>
<message>
<source>Discard</source>
<translation>Отхвърляне</translation>
</message>
<message>
<source>Yes to &amp;All</source>
<translation>Да за &amp;всички</translation>
</message>
</context>
</TS>

View File

@ -0,0 +1,90 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="da">
<context>
<name>QShortcut</name>
<message>
<source>No</source>
<translation>Ingen</translation>
</message>
<message>
<source>Yes</source>
<translation>Ja</translation>
</message>
</context>
<context>
<name>QPlatformTheme</name>
<message>
<source>OK</source>
<translation>Okay</translation>
</message>
<message>
<source>&amp;No</source>
<translation>&amp;Ingen</translation>
</message>
<message>
<source>&amp;Yes</source>
<translation>&amp;Ja</translation>
</message>
<message>
<source>Help</source>
<translation>Hjælp</translation>
</message>
<message>
<source>Open</source>
<translation>Åben</translation>
</message>
<message>
<source>Save</source>
<translation>Gemme</translation>
</message>
<message>
<source>Abort</source>
<translation>Abort</translation>
</message>
<message>
<source>Apply</source>
<translation>Ansøge</translation>
</message>
<message>
<source>Close</source>
<translation>Tæt</translation>
</message>
<message>
<source>Reset</source>
<translation>Nulstil</translation>
</message>
<message>
<source>Retry</source>
<translation>Prøve igen</translation>
</message>
<message>
<source>Restore Defaults</source>
<translation>Gendanne standardindstillingerne</translation>
</message>
<message>
<source>Cancel</source>
<translation>Afbestille</translation>
</message>
<message>
<source>Ignore</source>
<translation>Ignorere</translation>
</message>
<message>
<source>N&amp;o to All</source>
<translation>&amp;Ingen for alle</translation>
</message>
<message>
<source>Save All</source>
<translation>Gem alle</translation>
</message>
<message>
<source>Discard</source>
<translation>Kassér</translation>
</message>
<message>
<source>Yes to &amp;All</source>
<translation>Ja til &amp;alle</translation>
</message>
</context>
</TS>

View File

@ -0,0 +1,90 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="de">
<context>
<name>QShortcut</name>
<message>
<source>No</source>
<translation>Nein</translation>
</message>
<message>
<source>Yes</source>
<translation>Ja</translation>
</message>
</context>
<context>
<name>QPlatformTheme</name>
<message>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
<source>&amp;No</source>
<translation>&amp;Nein</translation>
</message>
<message>
<source>&amp;Yes</source>
<translation>&amp;Ja</translation>
</message>
<message>
<source>Help</source>
<translation>Hilfe</translation>
</message>
<message>
<source>Open</source>
<translation>Öffnen</translation>
</message>
<message>
<source>Save</source>
<translation>Speichern</translation>
</message>
<message>
<source>Abort</source>
<translation>Abbrechen</translation>
</message>
<message>
<source>Apply</source>
<translation>Anwenden</translation>
</message>
<message>
<source>Close</source>
<translation>Schließen</translation>
</message>
<message>
<source>Reset</source>
<translation>Zurücksetzen</translation>
</message>
<message>
<source>Retry</source>
<translation>Wiederholen</translation>
</message>
<message>
<source>Restore Defaults</source>
<translation>Voreinstellungen</translation>
</message>
<message>
<source>Cancel</source>
<translation>Abbrechen</translation>
</message>
<message>
<source>Ignore</source>
<translation>Ignorieren</translation>
</message>
<message>
<source>N&amp;o to All</source>
<translation>N&amp;ein, keine</translation>
</message>
<message>
<source>Save All</source>
<translation>Alles speichern</translation>
</message>
<message>
<source>Discard</source>
<translation>Verwerfen</translation>
</message>
<message>
<source>Yes to &amp;All</source>
<translation>Ja, &amp;alle</translation>
</message>
</context>
</TS>

View File

@ -0,0 +1,90 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="el_GR">
<context>
<name>QShortcut</name>
<message>
<source>No</source>
<translation>Οχι</translation>
</message>
<message>
<source>Yes</source>
<translation>Ναί</translation>
</message>
</context>
<context>
<name>QPlatformTheme</name>
<message>
<source>OK</source>
<translation>Εντάξει</translation>
</message>
<message>
<source>&amp;No</source>
<translation>&amp;Οχι</translation>
</message>
<message>
<source>&amp;Yes</source>
<translation>&amp;Ναί</translation>
</message>
<message>
<source>Help</source>
<translation>Βοήθεια</translation>
</message>
<message>
<source>Open</source>
<translation>Ανοιξε</translation>
</message>
<message>
<source>Save</source>
<translation>Σώσει</translation>
</message>
<message>
<source>Abort</source>
<translation>Αποβάλλω</translation>
</message>
<message>
<source>Apply</source>
<translation>Ισχύουν</translation>
</message>
<message>
<source>Close</source>
<translation>Κλείσε</translation>
</message>
<message>
<source>Reset</source>
<translation>Επαναφορά</translation>
</message>
<message>
<source>Retry</source>
<translation>Προσπαθησε ξανα</translation>
</message>
<message>
<source>Restore Defaults</source>
<translation>Επαναφέρετε τις προεπιλογές</translation>
</message>
<message>
<source>Cancel</source>
<translation>Ματαίωση</translation>
</message>
<message>
<source>Ignore</source>
<translation>Αγνοώ</translation>
</message>
<message>
<source>N&amp;o to All</source>
<translation>N&amp;o σε όλους</translation>
</message>
<message>
<source>Save All</source>
<translation>Αποθήκευση όλων</translation>
</message>
<message>
<source>Discard</source>
<translation>Απορρίπτω</translation>
</message>
<message>
<source>Yes to &amp;All</source>
<translation>Ν&amp;αι σε όλα</translation>
</message>
</context>
</TS>

Some files were not shown because too many files have changed in this diff Show More