Commit Graph

331 Commits

Author SHA1 Message Date
sawinglogz
092d46be33 Add debug messages for exceptional events in PRS1Import::ParseSession.
Lots of new warnings that were being silently eaten!
2019-06-05 10:24:32 -04:00
sawinglogz
8fa5df5f89 Fix PRS1 typo, resolve use of multiple event lists and refine warning. 2019-06-05 10:00:11 -04:00
sawinglogz
44d134dee5 Fix a sign error and don't consider 1-second gaps to be BND events in PRS1.
Presumably due to clock drift, there are occasionally 1-second discontinuities
in waveform data, in either direction. These will need to be addressed.
2019-06-05 08:34:36 -04:00
sawinglogz
c2b8699ee9 Chase down all unusual values in F0V23 summary sample data.
Chunk parsing is now a lot quieter, and PS for non-auto bilevel has been fixed.
2019-06-04 23:19:35 -04:00
sawinglogz
d80426af5e Add slices to PRS1 F0V23 summaries.
This doesn't have much observable effect, other than reducing a
day's total usage time if there are periods with no breathing
detected. Most of the shortcomings were obscured by information
gleaned from the events and waveform files.
2019-06-04 20:26:43 -04:00
sawinglogz
5ac6745eef Fix PRS1 F0V23 PB parsing bug that triggered unordered data warnings.
A PB event obviously can't start so late that its duration ends in the future!
The fix hasn't been applied to F0V4 or F0V6 yet, since those haven't been
tested yet.

Also fix a sign bug in EventList::AddEvent when there *is* unordered data.
2019-06-04 20:11:50 -04:00
sawinglogz
2021e91426 Fix parsing PRS1 F0V2 settings and add value checks based on a few sample sessions. 2019-06-04 12:18:20 -04:00
sawinglogz
27c169e61e Report parsing failure when PRS1 sanity checks fail.
Remarkably, this resulted in nearly no changes to the test output.
Only one session with 0 duration had its start/end times reset to 0,
since it will no longer get imported.
2019-06-03 22:01:02 -04:00
sawinglogz
26f6e15a75 Add YAML output for session slices. 2019-06-03 20:56:40 -04:00
sawinglogz
1a0a4bbf52 Convert compliance "slices" to events with a starting delta.
Also fix the related enums and add more value checks.
Also add YAML output of the cumulative mask-on slice time.
2019-06-03 20:12:17 -04:00
sawinglogz
a6455b6b05 Add sanity check for presumed humidifier setting in compliance.
Also suppress "untested" user alerts for a known bogus model number.
2019-06-03 14:21:06 -04:00
sawinglogz
66585d939e Chase down all unusual values in 251P compliance sample data.
The big discovery is that slices aren't slices with durations,
they're events with a starting delta.
2019-06-02 21:50:45 -04:00
Seeker4
8dd04397cc Show hours/day that defines compliance on Statistics screen. Update Welcome message to show usage in red if hours less than profile setting (was less than 4). 2019-06-02 17:48:27 -07:00
Seeker4
269daffaac Merge branch 'master' into titlebar 2019-06-02 10:31:21 -07:00
Seeker4
f4f1a4a002 Clearly separate build data from run-time data. 2019-06-02 10:24:17 -07:00
Norman Heino
af31b87889 Graph combo box: always adjust size to contents
Fixes 0000021
2019-06-02 07:51:11 +02:00
Seeker4
59270e00c6 Add Help/System Information to display full build information, active graphics engine, and data directory. 2019-06-01 19:51:18 -07:00
Seeker4
9561e56ad9 Make xxxBuildInfo functions to create and return build information. 2019-06-01 15:12:38 -07:00
Seeker4
86d0c11ddd Remove GIT revision and graphics engine from titlebar (info remains in debug log). Retain [Branch] and [LegacyGFX] for a BrokenGL build. 2019-06-01 07:57:28 -07:00
Seeker4
91bf0d097e Write build and other identifying information to the beginning of the debug log. 2019-05-31 21:15:56 -07:00
sawinglogz
5fee567066 Fix PRS1 loader bug where chunks could be incorrectly skipped.
This doesn't fix the bigger bug where files are skipped based on
their filename rather than the actual chunk session IDs. That's
a trickier challenge for another day.
2019-05-31 21:47:28 -04:00
sawinglogz
264c41379b Fix PRS1 compliance parsing based on 251P data, check for any unexpected values.
Also get rid of a premature parsing check in ScanFiles.
2019-05-31 21:00:35 -04:00
Seeker4
a2232d4b61 Merge branch 'master' into Legacy 2019-05-31 16:04:33 -07:00
Seeker4
98df2c9a46 Force use of Software graphics engine (aka LegacyGFX) if shift key held down during program start or --legacy command line parameter present. 2019-05-31 15:50:16 -07:00
sawinglogz
a327a7ed1c Add logging of unexpected data to ParseCompliance, disable broken 200X compliance. 2019-05-31 16:58:58 -04:00
sawinglogz
bc3b93cf9c Merge branch 'master' into prs1-split-parsing 2019-05-30 16:33:55 -04:00
sawinglogz
f62d99bb31 Add machines to tested PRS1 list, alert user if their machine is untested.
This introduces a very slight change UI behavior, where the user
will receive an alert if their machine has a supported family/version
but is a model number for which we don't have any test data.

Also, the user alert for an unsupported machine has been updated
to align with the actual underlying parsing limitations. It's
possible this will create some new warnings, but it doesn't seem
like any such machines would have worked anyway, in which case
an explanatory message is an improvement.

The "untested" alert will happen on import once per launch of OSCAR.
Ideally this would only happen the first time an untested machine is
imported, but that will require figuring out how to serialize an
additional value in the user's machine profile.
2019-05-30 16:32:57 -04:00
Seeker4
76e6f44991 Calculate compliance as number of compliant days / total number of days (instead of days used) so statistics matches overview calculation. 2019-05-29 19:35:19 -07:00
sawinglogz
135ac25c1e Add YAML output for PRS1DataChunks.
Also move a data check from PRS1Import::ImportSummary to PRS1DataChunk::ParseSummary
to prevent crashing in regression tests.
2019-05-29 12:11:53 -04:00
sawinglogz
ea008273ab Add PRS1DataChunk::ParseEvents for testing and future unification. 2019-05-29 11:20:20 -04:00
sawinglogz
d0150d18ef Limit raw data in PRS1/Session YAML to 100 bytes per entry.
This changes the reference output, compared to prior versions, but
it runs much faster and doesn't affect user-observable behavior.
2019-05-28 21:09:17 -04:00
sawinglogz
1892ceda85 Clean PRS1ParsedEvents and reorder PRS1Import::Parse*Events for more consistency, no functional changes. 2019-05-28 18:25:08 -04:00
sawinglogz
7c949fc843 Convert PRS1ParsedEvent enums to static constants, update switch statements. 2019-05-28 16:05:23 -04:00
Seeker4
c438ef3872 Merge branch 'master' into Statistics 2019-05-27 11:24:18 -07:00
Seeker4
020678f2f1 Documentation additions. 2019-05-27 11:22:38 -07:00
sawinglogz
3b4a5b4dd6 Clean up PRS1Import::ParseF*Events functions in preparation for merging, no functional changes. 2019-05-27 12:38:55 -04:00
sawinglogz
685527b993 Remove unused ParseSummaryF* functions, move ParseSummary from PRS1Import to PRS1DataChunk. 2019-05-27 11:14:55 -04:00
sawinglogz
e47c4934ef Merge PRS1Import::ParseSummaryF* functionality into PRS1Import::ImportSummary.
Only PRS1Import::ParseSummaryF0V23 has disappeared, being merged into
ImportSummary. The only change it needed to subsume the functionality of
all other variants was the addition of one extra setting.

The rest of the now-unused variants will be removed next.
2019-05-27 11:05:34 -04:00
sawinglogz
44e4b25471 Move PRS1Import::ParseSummaryF0V23 in preparation for merge; no changes. 2019-05-27 10:28:14 -04:00
sawinglogz
4d1b947e22 Split PRS1Import::ParseSummary into ImportSummar/ParseSummary. 2019-05-27 10:25:57 -04:00
sawinglogz
e3a4edaca2 Add PRS1ModelInfo to manage the set of supported and tested machines.
Also move an extra unsupported check out of PRSImport::ImportSummary
into CreateMachineFromProperties, where it should intervene before
reaching PRS1Import. Leave a warning debug message in its place.
2019-05-27 10:05:16 -04:00
Norman Heino
d2eccabbc7 Fix disabling dark mode on macOS Mojave 2019-05-27 05:51:44 +02:00
sawinglogz
739ba7d5d5 Clean up ParseSummaryF5V3 to align more closely with all other summary parsers. 2019-05-26 19:02:08 -04:00
sawinglogz
44558e4c06 Merge redundant code into single PRS1DataChunk::ParseHumidifierSetting function. 2019-05-26 18:46:26 -04:00
sawinglogz
d13b417d5b Fix regression from eb758602 that was missed by the initial testing. 2019-05-26 17:43:10 -04:00
sawinglogz
923fb7bf86 Merge redundant code into single PRS1DataChunk::ParseFlexSetting function. 2019-05-26 17:36:12 -04:00
sawinglogz
53f1a881a3 Split parsing from importing for compliance (brick) data.
This isn't fully tested yet, since I don't currently have fileVersion 2 samples.
It has been tested with 200X devices and doesn't change behavior there,
but the slice parsing immediately bails, so it's not really being exercised.

It seems very weird that "slices", whatever they are, would only show
up on bricks, the least capable devices. This needs more investigation.
2019-05-26 14:17:58 -04:00
Norman Heino
6b7fe4c8f2 Fix use-after-free in Profile::UnloadMachineData 2019-05-26 17:18:42 +02:00
sawinglogz
eb75860221 Split parsing from importing for F0V2 and F0V3 summaries. 2019-05-25 21:57:29 -04:00
sawinglogz
7a153a6516 Split parsing from importing for F0V4 summaries. 2019-05-25 21:25:56 -04:00
sawinglogz
e49c947b6b Split parsing from importing for F0V6 summaries. 2019-05-25 21:08:53 -04:00
sawinglogz
b6c35c7610 Split parsing from importing for F3 (probably V6) summaries.
This looks discouragingly redundant at first glance, but eventually
the import stage will probably be unified across all families, leaving
the parsers the only difference. That'll happen after all summary
importers have been split.
2019-05-25 19:43:35 -04:00
sawinglogz
6b1b7e225c Split parsing from importing for remaining F5 summaries. 2019-05-25 19:21:46 -04:00
sawinglogz
1cd7ac7c14 Merge identical F5V0 and F5V1 and remove unused F5V2 summary parsers. 2019-05-25 18:01:09 -04:00
sawinglogz
0d8e37c94c Split parsing from importing for F0 events. 2019-05-25 17:00:44 -04:00
sawinglogz
abac19bbf1 Split parsing from importing for F3V3 events. 2019-05-24 20:09:53 -04:00
sawinglogz
5a88887cc3 Split parsing from importing for F3V6 events. 2019-05-24 19:41:42 -04:00
sawinglogz
a4612a4f24 Split parsing from importing for F5V0, F5V1, F5V2 events. 2019-05-24 17:08:51 -04:00
Seeker4
704395dbda Initial attempt at recalculation number of periods for annual statistics 2019-05-24 12:43:49 -07:00
Phil Olynyk
f05cc5fbc5 warn empty filename for QT < 5.12 2019-05-24 16:22:44 +00:00
Phil Olynyk
a4cf207bd1 replace QDir.isEmpty() with QDir.count() == 0 for QT < 5.9 2019-05-24 16:22:44 +00:00
Norman Heino
07372487ac Save session info when unloading machine data
Fixes 0000046
2019-05-24 05:28:48 +02:00
sawinglogz
a5b4851583 Remove unused code from PRS1 event parsers.
Also temporarily disable the time-consuming chunk unit test, since
the current work is on conversion from chunk to sessions.
2019-05-23 12:17:21 -04:00
Norman Heino
a2ff7ef95e Perform UI updates in bulk before/after screenshot
Fixes 0000074
2019-05-23 05:10:34 +00:00
Seeker4
498e15c56b Remove some WebKit code (there's lots more to go). 2019-05-22 19:03:59 -07:00
sawinglogz
795e9414be Split parsing from importing for F5V3 summaries.
This looks even uglier than the F5V3 event split for now,
since portions of the fileVersion 3 parsing are still stuck in
PRS1Import, and can't be reasonably moved until all the parsers
are split into PRS1DataChunk.

Also, PRS1ParsedSettingEvent may be the wrong abstraction. That's
a first attempt, so that it can inherit PRS1ParsedEvent's notion
of gain and unit, and because m_parsedData is currently a list
of PRS1ParsedEvent pointers. But it has no notion of time (start=0)
and requires yet another enum to specify which setting it
represents.

This should be revisited once all the parsers have been split
and the summary parsing can be examined in more detail.
2019-05-22 20:11:48 -04:00
sawinglogz
355a85a1fc Tweak Session YAML output to print sane floats instead of full precision. 2019-05-22 19:59:10 -04:00
Seeker4
4697f84ea9 Revise Statistics page heading to use less space. Reformat and correct errors in HTML strings. 2019-05-22 13:49:28 -07:00
sawinglogz
5b959efc37 Split parsing from importing for F5V3 events.
This doesn't look much prettier yet, since it requires double the
switch statements, but the expectation is that once all event
parsers are split out from import, the import routines will be
identical among all machines, and can then be consolidated.

Regardless, it's important to drive a wedge between file parsing
and the internal database structure.
2019-05-22 11:00:45 -04:00
Seeker4
a433b29af1 Change heading from Prescription Settings to Machine Settings 2019-05-21 16:24:21 -07:00
Seeker4
e22f5b87ef Merge branch 'master' into Database 2019-05-21 15:15:52 -07:00
Seeker4
7fc534f75b Format cmH2O properly in machine settings on Daily page. Needed only for ResMed and because formatted data is saved in database at original import. 2019-05-21 15:12:42 -07:00
Seeker4
efc03004a6 Add more method documentation for Doxygen. 2019-05-21 15:11:53 -07:00
Seeker4
811ac9e3a9 Improve documentation about OSCAR for Doxygen use. 2019-05-20 01:27:50 -07:00
Seeker4
d7d1fd3095 Merge branch 'master' into SessionBar 2019-05-19 17:48:34 -07:00
Seeker4
ff2bdf3d01 Session bar now shows "no sessions present" if there are not sessions, instead of showing last days's sessions. 2019-05-19 17:44:10 -07:00
Seeker4
f5e9b2d3da Remove comment about screen capture being broken on Mac. 2019-05-19 11:17:14 -07:00
sawinglogz
f8e4ff754b Add OSCAR version number to PRS1 unit test logs. 2019-05-18 19:46:24 -04:00
sawinglogz
2bfae3531f Merge branch 'master' into prs1-overhaul 2019-05-18 19:28:45 -04:00
sawinglogz
4511ee3677 PRS1 parsing regression test: generate YAML for each parsed chunk.
Each input file's chunks get emitted into a single output YAML file. As parsing
gets separated from conversion/import, this will allow for testing and
examination of the parsed input files before they are transformed into
sessions.
2019-05-18 19:20:36 -04:00
sawinglogz
21adfb7987 Fix header parsing for 1160P event files, fix misconceptions in ReadWaveformHeader.
Now that we check header checksums, it uncovered a problem parsing 1160P event
headers. It turns out that the 1160P uses a "waveform" header for its .002
events files. So we can't use the file extension to decide which header to
parse, but there's a flag in the standard header that seems to reliably indicate
a waveform header. The 1160P events are listed at fixed intervals, as are
waveforms, so the flag has been named "interval" rather than "waveform."

The 1160P event headers have more than 2 signals in the header and an interval
longer than 1sec. This clarified the meaning of multiple waveform header fields
that were previously being parsed incorrectly.
2019-05-18 19:17:55 -04:00
Norman Heino
d0f0aed29d Improve screenshot feature
Limit screenshots to OSCAR's application window under macOS.
Use main window geometry as basis for screen capture rectangle, removing
the need for resizeing hacks.

Tested on:
* macOS 10.14
* Ubuntu 18.04
* Windows 10
2019-05-18 15:30:10 +02:00
Seeker4
c6c11fd4f9 Fix crash when taking screenshot before a profile is open. 2019-05-17 23:44:39 +00:00
Seeker4
e033a5a4ef Tweaking the white rim in the lower right corner of 32x32 icon for taskbar etc. 2019-05-16 22:33:05 -07:00
Seeker4
e80c444475 Round 3 of logo and icon revisions with extensive pixel-level editing of smaller icons. Ruth may make further changes. 2019-05-15 18:01:06 -07:00
sawinglogz
ccafa1f16e Calculate and check PRS1 CRC32 on V3 files, fix memory leak. 2019-05-15 17:41:37 -04:00
sawinglogz
1c564fb296 Calculate and check PRS1 CRC16 on V2 files. 2019-05-15 15:16:14 -04:00
sawinglogz
c8cd66992a Split PRS1DataChunk::ReadHeader into ReadHeader/ReadNormalHeaderV2/ReadNormalHeaderV3. 2019-05-15 12:32:39 -04:00
Seeker4
3e5d3a901b Set window icon to 32x32 rather than 24x24. 2019-05-15 16:13:57 +00:00
Seeker4
d7d1446bfc Second pass at new icons with manual editing of smaller icons. 2019-05-15 16:13:57 +00:00
sawinglogz
d3c6d6445b Split PRS1DataChunk::ReadHeader into ReadHeader/ReadWaveformHeader. 2019-05-15 10:26:31 -04:00
sawinglogz
e07c4ce63c Split PRS1DataChunk::ReadHeader into ReadHeader/ReadData. 2019-05-15 08:36:31 -04:00
Norman Heino
a074cffa5b Fix macOS application menu 2019-05-15 06:49:12 +02:00
Norman Heino
a5c1e8204c Increase mask vent rate ranges 2019-05-15 06:48:18 +02:00
sawinglogz
451963de25 Move chunk parsing into PRS1DataChunk class.
The diff looks messy, but it's mostly chunk -> this search-and-replace.
2019-05-14 22:49:41 -04:00
sawinglogz
7103650023 Move PRS1Loader::ParseChunk variable declarations and V3 header unpacking to the appropriate scope. 2019-05-14 21:49:43 -04:00
sawinglogz
d7cd22c918 Separate checksum reading in PRS1Loader::ParseChunk instead of burying it with other data.
While slightly more verbose, this makes the code more clearly correct.
2019-05-14 20:47:00 -04:00
sawinglogz
d216e677e1 Simplify PRS1Loader::ParseChunk by using a chunk instead of local variables. 2019-05-14 19:57:01 -04:00
sawinglogz
74863e538a Split PRS1Loader::ParseFile in to ParseFile/ParseChunk. 2019-05-14 18:57:04 -04:00
sawinglogz
76053b0469 Check for format change before coalescing PRS1 chunks, move data warnings out of parsing. 2019-05-14 16:20:32 -04:00
sawinglogz
6e12cfea61 Remove spurious warning about weird PRS1 session IDs 2019-05-14 16:17:23 -04:00
sawinglogz
9b3aaad4b0 Move PRS1 waveform chunk coalescing out of parsing and into importing. 2019-05-13 21:23:20 -04:00
sawinglogz
f19ad331c9 Add debugging output to all error handling in PRS1 loader. 2019-05-13 21:23:20 -04:00
sawinglogz
766f08420b Comment out unused constant in CMS50 loader. 2019-05-13 12:15:06 -04:00
Seeker4
350678b48b Remove external flow from 100, 200 sizes for program use. Update icon files. 2019-05-12 09:58:27 -07:00
Seeker4
b375cbbaad New set of icons from Ruth, with outer glow effect. Put work files in new Building/Icons directory. 2019-05-11 23:29:19 -07:00
Seeker4
c427c550a4 Remove win_icon.rc from file list. win_icon.rc pointed to bob image. 2019-05-11 23:28:29 -07:00
Seeker4
b87e700119 Initial code to show ResMed EPR with a space between number and cmH2O 2019-05-10 17:53:09 -07:00
Seeker4
0967b2013e Update language display dialog so it comes to the top of the Windows stack when started. 2019-05-10 01:29:48 +00:00
Phil Olynyk
d57116b1e4 Merge branch 'master' into Fix-oximeterimport
Pick up recent changes to master
2019-05-09 13:14:08 -04:00
Phil Olynyk
258b549967 Clean up oximeter import date/time handling 2019-05-09 13:05:53 -04:00
Phil Olynyk
240f6db3d5 Change UTC to LocalTime for session times 2019-05-09 11:08:59 -04:00
Phil Olynyk
2526b6691d Revert "Change UTC to LocalTime for session times"
This reverts commit 332ea6f159.
It should have been in a branch
2019-05-09 10:43:47 -04:00
Phil Olynyk
332ea6f159 Change UTC to LocalTime for session times 2019-05-09 10:34:34 -04:00
sawinglogz
fb29ce0222 Fix one more warning. setChecked() only takes a boolean, Qt::Checked/Unchecked are only used for tri-state checkboxes. 2019-05-08 17:18:00 -04:00
sawinglogz
e47660e15a Disable broken "ignore" setting for PRS1. Fixes #73. 2019-05-08 17:09:15 -04:00
sawinglogz
6e6bc81be8 Fix session averaging bug discovered when fixing warning. May fix #59. 2019-05-08 17:08:12 -04:00
sawinglogz
e67aae78cf Make warnings fail regression tests, fix warnings. 2019-05-08 17:06:17 -04:00
sawinglogz
609e02b2c5 Fix to update_gitinfo.bat from Guy for the case where no git_info.h exists yet. 2019-05-08 12:01:06 -04:00
sawinglogz
71c05c4625 Change the current working directory instead of using --work-dir.
It was previously working in a false-positive state, where it would behave as
expected if you ran "make" from within a subdirectory of the git repo. If you
ran make anywhere else, at least diff-index would break.
2019-05-07 16:50:58 -04:00
sawinglogz
a458fdfad6 Merge branch 'master' into gitinfo-tweaks 2019-05-07 15:58:01 -04:00
sawinglogz
c42e5d7ef0 update_gitinfo.bat fixes from Guy 2019-05-07 15:56:21 -04:00
sawinglogz
5923325917 Multiple update_gitinfo tweaks.
Change -C to --work-dir to work on earlier versions of git.
Add "+" to the revision number if there are uncommitted changes.
Only rewrite the git_info.h if there are changes, so that make doesn't think the file has changed.
2019-05-07 09:41:51 -04:00
Seeker4
124ac57166 Fix typo in qDebug() statement 2019-05-06 18:29:54 -07:00
Seeker4
c751182aa5 Comment-out obsolete code to create Welcome message. 2019-05-06 18:08:49 -07:00
sawinglogz
545d48afc4 Merge branch 'master' into prs1-refactor-for-testing 2019-05-06 12:25:29 -04:00
Seeker4
3ada6741d9 Preliminary release notes for OSCAR 1.0.2 and version id changes to beta-1. 2019-05-06 02:52:17 +00:00
Seeker4
90b6db3b3f Make titlebar show active graphics engine (Open GL, ANGLE, or LegacyGFX). 2019-05-05 23:18:08 +00:00
sawinglogz
982e7dddaf Merge branch 'master' into prs1-refactor-for-testing 2019-05-05 18:15:49 -04:00
sawinglogz
2a9af3de0a Fix memory leak in PRS1 unit test. Test runs now produce reproducible output.
This fix also seems like it cleans up some of the weird session IDs. It appears
that session IDs were sticking around after each machine, adding those
IDs or sessions to subsequent machines in that run of the test. Since the
test was being run piecemeal while under development, this produced
different behavior when being run with different segments of the data.
2019-05-05 16:59:53 -04:00
sawinglogz
e4082fff22 Add compiler flags and debug messages in search of memory access errors. 2019-05-05 15:50:38 -04:00
sawinglogz
9da60239c8 Fix memory access error in certain summary files.
This currently doesn't make the parsing more complete, it just bails rather than running off the end of memory.
2019-05-05 15:45:50 -04:00
sawinglogz
a603f9e189 First PRS1 loader regression test: walk through a directory of SD cards and generate YAML for each session.
This has already exposed many limitations, and possibly some memory trampling. Before this will work as
a true regression test, we'll need to address both of those, so that this produces reliable, reproducible
output.
2019-05-04 21:53:02 -04:00
sawinglogz
d4b65d8e73 Make Event and Loader/PRS1Loader protected and private members public during unit testing. 2019-05-04 21:50:45 -04:00
sawinglogz
af375af090 Disable GUI widgets in Loader and PRS1Loader when unit testing. 2019-05-04 21:49:50 -04:00
Seeker4
256746b723 Reduce dialog size to fit 1024x768 screen. Dialog looks better with less white space too. 2019-05-03 16:59:53 -07:00
sawinglogz
7c0c13486c More refactoring of PRS1Loader::OpenMachine(). 2019-05-03 16:59:26 -04:00
sawinglogz
02ffeb6c39 Allow a test profile to be created at an arbitrary path.
Currently there is a very messy tangle of dependencies between
loaders, machines, sessions, and profiles. Right now the
simplest way to create a test loader instance is to create
a test profile, under which the machine and session instances
will exist.
2019-05-03 16:36:53 -04:00
sawinglogz
7937b57b5f Split out PRS1Loader::ScanFiles() from PRS1Loader::OpenMachine(). 2019-05-03 15:07:15 -04:00
sawinglogz
4599dd781f Refactor PRS1Import::run() so that parsing can be called separately from saving to the database. 2019-05-03 14:45:21 -04:00
sawinglogz
52338d3e17 Add initial plumbing for unit testing. 2019-05-02 21:51:56 -04:00
Seeker4
463dcee181 Add a space between number and cmH2O in two tooltip messages. 2019-05-01 09:06:10 -07:00
Seeker4
7e9b59bbf6 Change measurement units from metric/arhiac to Metric/English 2019-05-01 09:05:01 -07:00
Seeker4
7f336ea9d4 Offer migration when destination directory is empty as well as when it does not exist 2019-05-01 08:58:20 -07:00
Phil Olynyk
a102a85dbd Update release version, build number, and release notes 2019-04-24 15:18:33 -04:00
Phil Olynyk
bcad3ac9da Disable multitasking to avoid crashes 2019-04-24 15:12:07 -04:00
Phil Olynyk
a58cbe3205 Use large logo scaled down for sharpness 2019-04-21 21:18:43 -04:00
Phil Olynyk
4f234a5a9f Change status to r and reset build number to 1 2019-04-21 16:13:01 -04:00
Phil Olynyk
9d1d0a88ce Updated release notes and Htmldocs, and set build number to 9 2019-04-16 15:10:28 -04:00
Phil Olynyk
c0246470f5 Replace old man Oscar logo with new big O logo 2019-04-16 13:12:26 -04:00