Commit Graph

668 Commits

Author SHA1 Message Date
sawinglogz
d6e4e42f2a Clean up PRS1Import::ParseEvents to remove dead code.
Also reinstate some warnings now that parsers are all working.

No change in functionality.
2019-10-24 11:07:47 -04:00
sawinglogz
2df3325a52 Merge PRS1 F0, F3 and F5 event importers into ImportEvents since they're now identical.
No change in functionality.
2019-10-23 21:10:56 -04:00
sawinglogz
c50d037a54 Reconcile PRS1 F0, F3, F5 importers to remove their remaining differences.
F3 TB gain changes to 0.1 in the imported data, but this has no effect
on how OSCAR handles it.

No other change in functionality.
2019-10-23 16:26:25 -04:00
sawinglogz
3c6996f19b Add unintentional leak calculation to F3 importer, where it is never needed.
This resolves a regression in 4c55f9a4 that broke F3 imports, but has
no other effect.
2019-10-22 14:48:34 -04:00
sawinglogz
2c7ae6fc99 Move default F0 single-channel handlers into the default case.
Also update the F5 importer to remove some redundancy and make it closer to F0.

No change in functionality.
2019-10-22 13:26:41 -04:00
sawinglogz
8cbdb49e68 Migrate PRS1 F0 importer to PRS1Import::AddEvent.
The only change in functionality is that F0 sessions won't
have empty channels for PP when there are no PP events.
2019-10-22 12:30:42 -04:00
sawinglogz
4c55f9a484 Move default F5 single-channel handlers into the default case.
Also update the leak calculation logic to depend on the set of reported
events rather than hard-coding it based on machine family and version.

No change in functionality.
2019-10-22 10:40:14 -04:00
sawinglogz
b80c5ef114 Migrate PRS1 F5 importer to PRS1Import::AddEvent.
The only change in functionality is that F5V2 sessions won't have
empty channels for CA, VS, and LL, since they're not yet supported
by the parser.
2019-10-22 10:24:40 -04:00
sawinglogz
79b2af140c Merge PRS1 F3 event importers into ImportEventsF3V36 since they're now identical.
No change in functionality.
2019-10-20 21:58:36 -04:00
sawinglogz
fdecab709d Clean up PRS1 F3 importers to remove their remaining differences.
No change in functionality.
2019-10-20 21:50:32 -04:00
sawinglogz
b0e2db4446 Move default F3V3 and F3V6 single-channel and non-imported handlers into the default case.
Also remove the explicit pressure GAIN set in the importers, since now the parser's gain
is passed through automatically.

No change in functionality.
2019-10-20 21:41:36 -04:00
sawinglogz
26c88cd713 Coalesce switch cases in F3V3 and F3V6 event importers.
No change in functionality.
2019-10-20 21:22:49 -04:00
sawinglogz
ed608e3b17 Convert F3V3 and F3V6 parsers to use PRS1Import::AddEvent entirely.
This is again confirmed not to change import results, but is still
very duplicative.
2019-10-20 21:09:34 -04:00
sawinglogz
ada3bbe891 Add infrastructure to allow import of parsed PRS1 events to be unified.
This commit adds a mapping from PRS1 events to the OSCAR channels that
should receive the data, along with the necessary supporting code to
allow for generic handling of PRS1 events as a result.

The F3V6 importer has minimal changes to partially use the new
plumbing, enough to make sure that it works and causes no change in
the imported data.
2019-10-20 17:46:18 -04:00
sawinglogz
fd9c73f79f Clean up PRS1 F3 (ST and AVAPS) importers to minimize their differences.
Also add the beginnings of a per-model list of parsed/supported events.
2019-10-19 17:35:45 -04:00
sawinglogz
9bd7a4942b Calculate PS for PRS1 F3 machines (S/T and AVAPS models). 2019-10-10 20:13:39 -04:00
sawinglogz
75fca0c951 Merge PRS1 F5 event importers into ImportEventsF5V0123 since they're now identical.
No change in functionality.
2019-10-10 18:11:02 -04:00
sawinglogz
86cc4fa210 Clean up PRS1 F5 importers to remove their remaining differences.
No change in functionality.
2019-10-10 17:55:27 -04:00
sawinglogz
abb7ddd9cb Don't calculate unintentional leak for PRS1 autoSV 60-series machines, which report it.
This fixes 960P-960T, which was importing both values at each interval, presumably
trampling each other. 950P didn't report it, and DreamStation never calculated it.

Also fix timed breath gain for pre-DreamStation autoSV.
2019-10-10 17:23:07 -04:00
sawinglogz
6715e05f61 Clean up PRS1 F5 (autoSV) importers to minimize their differences.
Timed breaths durations are now fixed for 950P-961P, and
960T pressures are now imported correctly.
2019-10-10 16:47:52 -04:00
sawinglogz
a1e66d1c62 Merge PRS1 F0 event importers into ImportEventsF0V2346 since they're now identical. 2019-10-10 14:38:18 -04:00
sawinglogz
e948a45baa Clean up PRS1 F0 importers to minimize their differences.
450P through 960P no longer report the snore count in parentheses
in their VS2 flags.
2019-10-10 14:18:39 -04:00
sawinglogz
a41debc57b Fix PB and LL start times for PRS1 450P through 960P. 2019-10-10 13:23:20 -04:00
sawinglogz
964ddc855a Clean up PRS1 importers to reveal any significant differences between them.
F3V6 now reports its snore count flags as VS2 in order to be consistent
with all other models. It doesn't seem to  report individual VS events.
2019-10-10 12:46:47 -04:00
sawinglogz
42948b2d3c Check duplicate PRS1 chunks on import to confirm that they are identical, warn if not. 2019-10-10 10:34:36 -04:00
sawinglogz
6ee83576b2 Clean up F3V3 summary and event parsing.
F3V3 is unusual. Its events are recorded at fixed intervals like a waveform.
Its summary is recorded with absolute timestamps. Slices are each given their
own chunks in the event file.

This last oddity isn't yet handled.

While examining this, a few other importing issues have been cleaned up:
PRS1DataChunk::ParseEvents no longer needs the mode passed in as an argument,
F5V012 importers should quietly eat the newly parsed pressure
adjustment events until we can import both those and average pressure
statistics, and F5V012 importers should handle real VS events and treat
VS statistics like the other importers do.
2019-10-09 13:35:02 -04:00
sawinglogz
f01ea9b165 Improve PRS1 F3V3 (1061T, 1160P) parsing.
Import is still not working correctly, but the parsing now seems
correct, as far as we can verify it at this point.
2019-10-09 10:24:29 -04:00
sawinglogz
a8df58b1ef Clean up ParseEventsF5V2 switch statement based on sample data.
This is very incomplete since we currently have only limited sample
data for F5V2. The events that have been verified will parse
correctly, and the rest will result in a parsing error.

There are some very strange changes in the event numbers compared
to F5V1 and F5V3, it's unclear why.

Note that F5V2 uses a gain of 0.125 like F5V3 instead of 0.1 like F5V1.
2019-10-08 16:49:29 -04:00
sawinglogz
1946be162c Add support for 16-bit timestamps in F5V1 events. 2019-10-08 11:20:51 -04:00
sawinglogz
5872a9519e Clean up ParseEventsF5V1 switch statement based on sample data.
F5V1 introduces a new Hypopnea variant (event 8) with 2 data bytes.
This was previously seen in F5V3, and it's unclear how this is
different from the usual Hypopnea event (event 7, 1 data byte).
Parsing used to stop when it encountered this event, but now it
can continue through the end of the session.

F5V1 also adds a leak value in its periodic stats, also previously
seen in F5V3. PB start time and duration are now correct.

As with F5V0, now VS, LL, and EPAP adjustment are correctly parsed,
and timestamps and durations are now accurate.

The handlers were essentially copied from F5V3 and F5V0 for
consistency and cross-checking.
2019-10-08 10:44:18 -04:00
sawinglogz
15f7dacbab Clean up ParseEventsF5V0 switch statement based on sample data.
This fixes a lot of issues with event parsing. Now VS, LL, and EPAP
adjustment events are now correctly parsed.

And as a result the timestamps for events and overall session durations
are now accurate.

The handlers were essentially copied from F5V3 and F0V12 for
consistency and cross-checking.
2019-10-05 20:52:34 -04:00
sawinglogz
4119a57278 Comment out unused familyVersion logic in split F5V0, F5V1, F5V2 event parsers.
No change in functionality.
2019-10-04 20:51:24 -04:00
sawinglogz
380c9d4071 Split ParseEventsF5V012 into separate functions for F5V0, F5V1, and F5V2.
No functional changes.

There's a lot of duplication, but that can be cleaned up once the parsers
work correctly.
2019-10-04 20:10:35 -04:00
sawinglogz
07aec55d80 Migrate F5V012 event loop logic to match F0V4.
No changes were intended in the imported data, but the parsers
were fantastically broken, so touching anything in the code
results in lots of differences in the output.

As a result, the imported data for F5V012 is now unstable.

On the plus side, the parser no longer bails on event 8 for F5V1.

This will almost certainly need to be split into 3 separate
functions.
2019-10-04 19:55:18 -04:00
sawinglogz
6992a2f1a9 Update ParseEventsF0V4 with event handlers from F0V23 and F0V6 after verifying them against sample F0V4 data.
F0V4 is unsurprisingly a midpoint between the two. PB/LL durations are
doubled as in F0V6 and, in fact, the contents of all events seem
identical between F0V4 and F0V6, apart from the new hypopnea events 0x14
and 0x15 in F0V6. We haven't encountered event 0 in F0V4 or F0V6 data
yet, but it would be an interesting comparison to F0V23.

It's now clear that PRS1PressureAverageEvent can't just be the average
overall pressure, at least not for CPAP: it's too low. This needs
further study.

Import changes:
- As with F0V23, apneas/hypopneas now have a (correct) duration of 0.
- PB/LL will now be drawn at the correct time, instead of starting when
  they end. This was already fixed previously in F0V23.
- The EPAP graph is removed from CPAP data until we understand what
  the underlying data is.
2019-10-04 18:53:10 -04:00
sawinglogz
027f82e0bb Migrate F0V4 event loop logic to match F0V23, no change in functionality. 2019-10-04 15:10:08 -04:00
sawinglogz
1d805fd9bc Fix warnings about unknown duration events for F0V23.
We should eventually import and graph these, even if we don't yet understand them.
2019-10-04 13:12:24 -04:00
sawinglogz
9f8f9224ab Add DreamStation BiPAP AVAPS 30 AE (1131X150) to the list of tested/recognized machines. 2019-10-04 12:20:18 -04:00
sawinglogz
a95429763d Update ParseEventsF0V23 for unknown event 0.
It also turns out that every sample machine that claims to be F0V3 in its
property file contains only F0V2 data, so there appears to be nothing
additional to test, but now there are more warnings in case we ever do
actually encounter F0V3 data.

Also warn if we ever encounter oximetry.
2019-10-04 12:08:16 -04:00
sawinglogz
460959dd78 Update ParseEventsF0V23 with event handlers from F0V6 after verifying them against sample F0V2 data.
The only difference so far is the lack of doubled duration for PB/LL, slightly rearranged
events 0-3, and the absence of events 0x14 and 0x15 in F0V2 (so far).

The only change in import functionality is that apneas/hypopneas now have a (correct)
duration of 0.

Next step is to test against more samples and particularly F0V3 samples.
2019-10-04 12:07:06 -04:00
sawinglogz
b2b62256d5 Migrate F0V23 event loop logic to match F0V6, still no change in functionality. 2019-10-03 19:42:28 -04:00
sawinglogz
2f46036a01 Remove F0V4 logic from F0V23 event parser and vice versa. No change in functionality. 2019-10-03 19:06:06 -04:00
sawinglogz
06098b9033 Split ParseEventsF0V234 into F0V23 and F0V4, no change in functionality. 2019-10-03 16:50:59 -04:00
sawinglogz
81a2945d0e Clean up F3V3 settings parsing. It turns out its humidifier settings are different from F0V4 and F5V012. 2019-10-03 12:33:28 -04:00
sawinglogz
445c74a70e First pass at F3V3 summary and settings parsing based on 3 sample sessions. 2019-10-02 20:21:43 -04:00
sawinglogz
d87dd6a0aa Fix ParseFlexSetting for F5V012 rise time.
ParseFlexSetting is largely untouched, but as a result also untested.
We should double-check it for all families and versions.
2019-10-02 19:14:24 -04:00
sawinglogz
6e5c751dd5 Finish cleaning up F5V012 settings from sample data. 2019-10-02 18:57:42 -04:00
sawinglogz
16caab4ce5 Add missing events to ParseSummaryF5V012, identify additional settings. 2019-10-02 11:55:44 -04:00
sawinglogz
fd7b5f8be0 Initial pass at ParseSummaryF5V012 based on F0V4.
It turns out each familyVersion has records of different sizes, including
the first one containing the settings. It may make more sense to split
summary and/or settings parsing into multiple familyVersion-specific functions.

Also it looks like the F0V4 humidifier settings are actually 60 Series
settings, and the "V2" settings are original System One settings, not
all fileVersion 2 machines.
2019-10-01 18:30:32 -04:00
sawinglogz
fe6c1ec2fa Split settings from summary parsing for F5V012 and F3V3. 2019-10-01 11:38:16 -04:00
sawinglogz
346d0a8e60 Identify common F0V4 summary statistics. 2019-10-01 11:29:31 -04:00
sawinglogz
166ada843b Add "support" for clock adjustment event ParseSummaryF0V4 and cleared event in ParseSummaryF0V23.
"Support" in this instance means that it will quietly ignore the events, since there's really
nothing to import. But this means that parsing will correctly continue past the events, even
though so far they're the only events in a session. There are diagnostics to log if that
assumption turns out not to be correct.
2019-09-30 15:46:26 -04:00
sawinglogz
4b5cdb8192 Add support for new Time Elapsed event in ParseSummaryF0V4.
Still trying to figure out timestamp event.

Other summary parsers will need review, since there was an initial
filter that was dropping sessions that began with event 5 or 6,
now commented out.
2019-09-30 10:23:28 -04:00
Seeker4
2e1069b8d0 Allow user to select graph order when resetting -- Standard or Advanced 2019-09-28 20:15:16 -07:00
Seeker4
f1e4face7f Update refresh button on Profile selector page. Code to implement this feature was apparently never written. 2019-09-28 20:13:50 -07:00
sawinglogz
e264a86164 First pass at ParseSummaryF0V4, needs testing.
Based on the F0V23 loop and F0V6 switch statement, along with manual review of
several sample files to determine record length.

Split ParseHumidifierSettingF0V4 out from ParseSettingsF0V4.
2019-09-28 20:47:24 -04:00
sawinglogz
13395d9c35 Finish cleaning up ParseSettingsF0V4. 2019-09-28 19:31:37 -04:00
sawinglogz
8f49633131 Improve F0V4 settings support, especially humidification. 2019-09-28 18:23:18 -04:00
sawinglogz
c24b29c80a Partially parse F0V4 humidification settings, need to review more samples to complete. 2019-09-26 12:37:01 -04:00
sawinglogz
e973109ccc First pass at adding missing settings to F0V4, lots still to find. 2019-09-25 11:17:16 -04:00
sawinglogz
fd23108c3d Refactor ParseSummaryF0V23 to match loop structure of F0V6. No change to imported data. 2019-09-24 21:07:10 -04:00
sawinglogz
55525cdc01 Update ParseComplianceF0V23 to use new ParseSettingsF0V23, since the data format is the same.
This also pushes something that seemed to be settings back into ParseSummaryV023.
2019-09-24 17:00:49 -04:00
sawinglogz
5d40051d70 Split settings parsing out of F0V23 and F0V4 summary parsers. 2019-09-24 16:27:27 -04:00
sawinglogz
9f330b2ec4 Add length checking to PRS1 F0V6 settings. 2019-09-23 14:26:38 -04:00
sawinglogz
bb9cce787c Parse backup breathing settings for DreamStation 900X machines.
No change to imported data.
2019-09-23 14:10:23 -04:00
sawinglogz
2e04755b53 Parse backup breathing settings for DreamStation 1030X-1130X machines.
No change to imported data.
2019-09-23 14:04:22 -04:00
sawinglogz
50d60385bd Add Flex mode setting for DreamStation 900X machines. 2019-09-23 12:56:06 -04:00
sawinglogz
9f28dae627 Add Flex mode setting for DreamStation 1030X-1130X machines. 2019-09-23 12:39:20 -04:00
sawinglogz
21f61d7527 Add Flex mode setting for DreamStation 200X-700X machines. 2019-09-20 15:38:14 -04:00
sawinglogz
3c1a7adaa3 Add support for many DreamStation settings, changes to flex mode require rebuilding all PRS1 databases. 2019-09-20 12:59:14 -04:00
sawinglogz
76a71802ab Rename some internal PRS1 parsing enums to match report terminology.
This affects parser YAML output, but has no effect on imported data.
2019-09-20 00:15:40 -04:00
sawinglogz
adc887c5f8 Import additional DreamStation settings:
- hose diameter
- auto on
- auto off
- mask resist lock (parsed only)
- show optional screens (parsed only)
2019-09-19 21:29:33 -04:00
sawinglogz
ccfce7fd2e Add internal parsing (and YAML output) for known DreamStation events that won't get imported.
These are events that are in the PRS1 files but which OSCAR doesn't know how to present:

- An F0V6 event with duration that looks like PB or LL but doesn't appear on any official reports
- The Auto-CPAP pressure to use at the beginning of a session
- A report of the snores detected at each pressure/EPAP/IPAP
- Apnea alarms on F3V6

Rather than bury the understanding in commented-out sections of the parser, these events
will now be parsed and added to the internal event stream, which allows them to be dumped
to YAML. Whenever OSCAR eventually supports these data, the importer will have ready
access to them.

Again, no change to external behavior.
2019-09-19 16:43:24 -04:00
sawinglogz
95e2baad26 Distinguish between pressure adjustment events and average pressure stats on PRS1.
This only affects the parser at this point, and the importer has been updated so that
there is no externally visible change to the imported data.

Eventually we'll need to figure out how to display the two differing kinds of
pressures, at which point we'll need to fix the importer to use the right channels,
instead of the inconsistent treatment now.
2019-09-19 14:21:12 -04:00
sawinglogz
5e4a24b237 Add support for F3V6 sessions without ramp, with apnea alarm. 2019-09-19 10:33:23 -04:00
Seeker4
d990ce560a Report pressure when IPAP is missing. This is a preliminary change and will be improved later. 2019-09-16 12:05:47 -07:00
Seeker4
dcf68dac37 Improve diagnostics messages and yet another check for the phantom date 2019-09-16 12:01:30 -07:00
Seeker4
1548a215f6 Document schema better, remove unused definitions 2019-09-16 12:00:14 -07:00
Seeker4
c8c837b50f Sort machines in machine list by first date of use, adjust footer message 2019-09-16 11:56:40 -07:00
Seeker4
ec9985d32e Make sessionbar blue color darker and more distinguishable from white 2019-09-16 11:54:42 -07:00
Seeker4
aaf5627891 Ignore zero-length files and add qWarning messages for ignored files. 2019-09-16 11:53:27 -07:00
sawinglogz
517e6f0d86 Merge branch 'master' into prs1-500g110 2019-09-07 20:11:53 -04:00
sawinglogz
45018f4903 Update PRS1 loader from 500G110 test data. 2019-09-07 15:02:16 -04:00
Seeker4
45814d129c Update release notes, add documentation about graph ordering 2019-09-06 22:16:35 -07:00
Seeker4
67d589f7a4 Change recognition of S9 for SD card warning because of changes to machine naming 2019-09-06 22:15:36 -07:00
Seeker4
a1389ba68a Include date and time at bottom of report pages 2019-09-06 22:14:32 -07:00
Seeker4
10ac30f776 Fix problem with S9 SD card warning incorrectly appearing on Welcome 2019-09-03 21:44:02 -07:00
Seeker4
1b67688b12 Fix problem with advanced graphs. Update release notes. 2019-09-03 12:56:10 -07:00
Seeker4
6158d83935 Clean up code -- eliminate qDebug statements 2019-09-02 22:10:36 -07:00
Seeker4
aeffae09fc Standard and Advanced graphs apparently working, still with lots of diagnostics. 2019-09-01 22:14:36 -07:00
Seeker4
afdcd0bbc4 First step in Daily graphs rework: replace many hard-coded strings as STR_GRAPH_* variables for keys to graphs. 2019-08-31 17:56:53 -07:00
Seeker4
ff37ac0695 Add preferences setting to include machine serial on Statistics page machine settings report, default to off because it is ugly. 2019-08-31 17:06:47 -07:00
Phil Olynyk
efad208143 Adjust epcoh for time zone offset 2019-08-30 14:48:03 -04:00
Seeker4
b53b0a99e0 Fix event count formatting in Daily Events tab 2019-08-29 18:47:25 -07:00
Seeker4
ec3063d083 Merge branch 'master' into graphs 2019-08-29 12:48:05 -07:00
Seeker4
70693bcbec Remove unneeded comment and #include 2019-08-29 12:46:25 -07:00
Seeker4
3cf038cb70 In event list, use only number of digits needed for event count 2019-08-29 07:21:19 -07:00
sawinglogz
384aacc904 Merge branch 'master' into prs1-native-modes 2019-08-28 21:55:56 -04:00
sawinglogz
6b86eb1b11 Fix minor regression for PRS1 F3V6 mode import. 2019-08-28 21:53:50 -04:00
sawinglogz
febf3d2f5b Split PRS1 device mode parsing from imported modes.
This allows the parsing to accurately represent the data, even for modes that
OSCAR doesn't yet support.
2019-08-28 21:30:25 -04:00
Seeker4
c1b4137857 Remove some qDebug statements that aren't needed. 2019-08-28 16:31:56 -07:00
Seeker4
be147fee0a Always allow import cpap and oximetry. Allow Daily, Overview, and Statistics only if there is some data present. 2019-08-28 15:23:13 -07:00
Seeker4
091253f03d Show machine (rx) changes only if there are CPAP machines in this profile. 2019-08-28 15:22:31 -07:00
Seeker4
22a8303836 Trim blanks from user name before checking username is not empty 2019-08-26 23:10:58 -07:00
Seeker4
4fe0869816 On Overview page do not save CUSTOM range selection on exit. (CUSTOM was restoring to a broken state. Now, it is just not saved and default LAST 3 MONTHS applies on restart. 2019-08-26 16:11:09 -07:00
Seeker4
61270ae83e Refactor getRangeString for date line at bottom of Overview page 2019-08-25 07:46:48 -07:00
Seeker4
61142830ae Correct date problems on bottom of Overview page. Remove UTC conversions. Improve date formatting for 1 day and more than a year. 2019-08-24 17:47:22 -07:00
Seeker4
9010ca5ae4 Update release notes for progress bar and overview improvements 2019-08-23 12:44:25 -07:00
Seeker4
d7a4bcc78b Update release notes for this merge 2019-08-23 11:43:43 -07:00
Seeker4
79e34d067a Add a progressbar when opening an overview with a large number of days 2019-08-23 11:41:42 -07:00
Seeker4
36acc7bd2f Fix problem that could cause CProgressBar to hang and not close 2019-08-23 11:40:52 -07:00
Seeker4
a8dc05c3f5 1.1.0-testing-4 plus fix to overview graph 2019-08-22 19:59:51 -07:00
Seeker4
87d4d0f7b2 1.1.0-testing-4 build number and release notes 2019-08-22 15:17:01 -07:00
Seeker4
1613e20d22 Update release notes for Overview changes 2019-08-22 02:37:51 -07:00
Seeker4
842052addb Merge branch 'master' into overview 2019-08-22 02:34:56 -07:00
Seeker4
92136e7a63 Fix problem with overview charts all starting at left edge when they should not. 2019-08-22 02:33:18 -07:00
Seeker4
1c304eb13e Add some documentation to graph modules. 2019-08-22 02:31:33 -07:00
Seeker4
1904e50500 Change green/black and red/black toggle buttons to checkboxes 2019-08-22 02:27:55 -07:00
Seeker4
28326f4ec8 Refactoring overview, add more documentation. 2019-08-22 02:26:33 -07:00
Seeker4
335af79076 Fix spelling error. 2019-08-22 02:24:47 -07:00
Seeker4
ffda65300d Fix spelling errors. 2019-08-22 02:17:44 -07:00
sawinglogz
42f0745666 Improve settings interpretation for F3V6, though still not exactly right.
The next step will be to split parsing from mode interpretation, so that
we can at least accurately identify all of PRS1's modes. Then we can
work on mapping that to OSCAR's notion of modes, which probably then needs
to be augmented.
2019-08-20 12:48:15 -04:00
sawinglogz
ecb71e5706 Calculate PRS1 F3V6 pressure support settings, since we currently display them. 2019-08-20 12:08:24 -04:00
sawinglogz
0c816c7d4c Avoid pos++ in PRS1 DreamStation parsers to that events can be issued independently of parsing order. 2019-08-20 11:38:55 -04:00
sawinglogz
38409f6fbf Merge branch 'master' into fix-stale-translations 2019-08-19 17:02:50 -04:00
sawinglogz
42685cfbb6 Only copy current .qm files during build, rather than everything in the temporary directory. 2019-08-19 17:00:31 -04:00
Seeker4
4e52261439 Fix building of oscar_qt_xx.qm file names to be in lower case. 2019-08-19 13:14:07 -07:00
Seeker4
acd7b04b7b In translations.cpp, add new language names, revise loading of qm files into translator, add debug messages, all qm files are now together in translations directory 2019-08-19 12:36:23 -07:00
Seeker4
9527aadb66 In oscar.pro, add new language files in translations/qt directory. Remove Mac handling for QT files in a different directory. 2019-08-19 12:35:21 -07:00
Seeker4
48c0387125 Release notes for language changes, other minor changes 2019-08-19 12:34:18 -07:00
Seeker4
af2fc6f9c3 Automatically convert IS language code to HE on startup (new code for Hebrew) 2019-08-19 12:32:26 -07:00
sawinglogz
6c85195b39 Remove unused variable that clang missed. 2019-08-19 12:23:45 -04:00
sawinglogz
bed88b1546 Merge branch 'master' into deprecate-series 2019-08-18 17:38:48 -04:00
sawinglogz
65f3f53686 Add model number to printed daily report. 2019-08-18 17:30:52 -04:00
sawinglogz
31fc47a5c5 Remove "series" from display in UI and on reports. 2019-08-18 17:27:21 -04:00
sawinglogz
928e50fcc1 Use actual product names for PRS1 instead of mangled approximations. 2019-08-18 17:03:52 -04:00
sawinglogz
66d9340cbb Don't mangle the model name for ResMed machines. 2019-08-18 16:56:41 -04:00
Seeker4
f3605803e1 Remove languages from translations.qrc. Update release notes for post-1.1.0-testing-3 2019-08-15 23:23:22 -07:00
sawinglogz
ad09695531 Copy QT and OSCAR translation files into Mac .app bundle.
They are stored in two separate locations (Contents/translations
for QT and Contents/Resources/translations) because
QLibraryInfo::location(QLibraryInfo::TranslationsPath) returns
the former only after macdeployqt has run, and returns Qt's
installed location prior to that.

And Contents/Resources/translations is the better location,
so we use it where we can.
2019-08-15 23:07:54 -04:00
sawinglogz
84b900ca90 Remove the m_machopened flag from Profile, which caused newly created profiles
to act differently from profiles after a subsequent application launch.

It was only getting set at the end of Profile::OpenMachines, which was only
called by the Profile constructor, and which wouldn't succeed on a newly created
profile, having no files to open. Therefore, the only way for the flag to be set
was to quit and re-launch the application after creating the profile.

The flag's only remaining use was to make sure that OpenMachines() wasn't
getting called twice and trampling an existing list of machines, so the check
there was changed from looking at a brittle flag to looking at the actual list
of machines.

A critical warning was also added to the check, since OpenMachines() is
only getting called from the Profile constructor and therefore can't
be invoked twice unless a new bug has been introduced.
2019-08-15 16:56:44 -04:00
sawinglogz
e3e67438ea Fix the incomplete cleanup in Profile::UnloadMachineData that was resulting in
duplicate sessions being added when making preference changes to a brand new
profile with existing data.

Preference changes trigger a reload, see PreferencesDialog::Save and
needs_reload, leading to MainWindow::reloadProfile -> MainWindow::CloseProfile
-> Profile::UnloadMachineData.

This is the root cause of the duplicate sessions, but the fact that it only
happened with newly created profiles, rather than on subsequent launches,
demonstrates an inconsistency in state of Profile. It should be identical when
initially created and when loaded via subsequent application launch.
2019-08-15 16:28:07 -04:00
sawinglogz
6f7a49f949 Add a critical warning and skip when attempting to add a duplicate session to a Machine object.
This prevents duplicate sessions from being added to Day during a rebuild, but is still not
the root cause. The next step will be to address the attempted duplication in Machine.
2019-08-15 16:18:23 -04:00
sawinglogz
7d72f71fb4 Add a critical warning when a duplicate session is added to a Day object.
This is one step closer to the root cause of the crash, in which duplicate
sessions were being created during a rebuild.
2019-08-15 16:14:54 -04:00
sawinglogz
6d735a5733 Add Day::removeMachine to detect and clean up dangling references rather than
crashing when rebuilding data.

This doesn't yet address the root cause, but it will prevent crashing if other
similar bugs exist.
2019-08-15 15:49:40 -04:00
Seeker4
7786161a4d Merge branch 'master' into overview 2019-08-14 11:36:18 -07:00
Seeker4
4a7a14c301 Set Windows file version to 0.0.0.0 (make it obviously wrong), improve Windows properties for installer info. 2019-08-14 11:32:08 -07:00
Seeker4
56584bd601 Make 100% zoom work properly on Overview page. 2019-08-14 11:29:26 -07:00
sawinglogz
0b8f89036a Merge branch 'master' into prs1-f0v6 2019-08-14 09:15:39 -04:00
sawinglogz
675f6d4361 Resolve remaining F0V6 event 3 debug messages in sample data. 2019-08-13 23:03:20 -04:00
sawinglogz
cc80a3ef09 Remove F0V6 logic from PRS1DataChunk::ParseEventsF0V234, no functional change. 2019-08-13 21:09:55 -04:00