Commit Graph

47 Commits

Author SHA1 Message Date
LoudSnorer
2cac1da0a3 FIX OSCAR Login: User can not access data after upgrade to 1.5.2 2024-03-25 20:04:37 -04:00
LoudSnorer
e9ae1198d6 removed URLs to sleepyhead or it's author 2024-01-31 19:14:19 -05:00
LoudSnorer
d5d77647d3 Copyright date updated on OSCAR's *.h and *.cpp files 2024-01-13 15:27:48 -05:00
LoudSnorer
b2156d64d6 Improved error handing for renaming profile name 2023-12-02 09:23:56 -05:00
LoudSnorer
514ade9848 Fix Command Lines renaming Profile. add Detection of non-profile folders in Profiles 2023-12-01 10:31:04 -05:00
LoudSnorer
925a621f20 iBreeze trigger: added days to cpap usage section 2023-11-10 13:54:49 -05:00
LoudSnorer
000caca665 profiles.xml and user/chanels.xml are never used. commented out respective code 2023-09-08 05:22:12 -04:00
LoudSnorer
e7c690925e obsolete Methods - complete 2023-02-18 09:22:34 -05:00
LoudSnorer
ce29a834e2 add Reset Default Button To Preference Oximetry Tab 2023-01-26 20:05:18 -05:00
LoudSnorer
71373d38b5 channels Updated With Preferences - allows oxi preferences flagPulseAbove/Below and flagSPO2 to work. 2023-01-26 07:48:25 -05:00
LoudSnorer
3f11dd6e18 COnidtionally compiled BMI, Weight and Zombie out. Easily turned on. added tooltip if on. 2022-11-16 20:46:30 -05:00
ArieKlerk
1c45e852c9 The second series of updates, everything in SleepLib, but not yet the loader_plugins. They will come next time. 2022-02-27 17:01:46 +01:00
Jeff Norman
59e1b2817b Updated copyright year to 2022 for OSCAR files 2021-11-02 16:34:12 -04:00
sawinglogz
a4fdb03c49 Move Machine properties into MachineInfo.
This will help loaders be less tied to the Machine data structure.
Since Machine contains a MachineInfo, this changes no functionality.
2021-10-26 14:59:41 -04:00
sawinglogz
4bfe062ae9 Initialize ImportContext for non-CPAP devices.
Now the loaders imported via the Data menu have access to the
unsupported/untested/brick signals and CHECK_VALUE and UNEXPECTED_VALUE
macros.

Now only devices imported via the oximetry wizard are left out,
since we need to revisit that entire workflow.

Also removed the unused Profile::Import() method.
2021-10-26 10:28:29 -04:00
Guy Scharf
ade32fa914 Change Profiles page and Daily Records box in right sidebar to show data for most recently used machine.
- Changed Profile::GetMachine() to find machine with latest lastImportDate when there were multiple machines in a profile.
- Previously, OSCAR would shown the "first" machine in its list, without clarity about how a machine was designated "first".
2020-09-12 22:07:40 +00:00
Guy Scharf
e39adbd41e Avoid data loss when destroying a profile that's just an empty directory; Release notes for v1.2.0-beta-2
- If trying to delete a profile folder with no contents, now displays an error message and doesn't delete it.
- Folders with no contents are no longer listed on the Profiles page.
- Release Notes updated with the fixes for beta-2.
2020-09-09 22:03:32 -07:00
Guy Scharf
6406545c33 Correct percentile calculation for multiple days
- Previously, would stop and return 0 if any day in range was suumary only
- Now, just ignores summary-only days if there are days with data
- Re-indentation makes change look bigger than it is
2020-09-08 19:54:56 -07:00
Guy Scharf
ce18739d14 ResMed and Oximetry loader enhancements
- Oximetry loader from file now remembers last directory data was imported from.
- ResMed loader loads from last day or oldest purge date if a day was purged since last import.
  purgeDate added to MachineInfo to implement this.  Purge date set when a day is purged and cleared after an import.
2020-08-23 15:30:38 -07:00
Guy Scharf
1aba6e4e51 File error checking Phase I: check all file.open() operations are successful.
file.open() checked everywhere except in loaders.
    qWarning() message written to debug log, with error number and text.
    We may want to exit OSCAR with a message in many situations, but that is not implemented yet.
    Set number of debug logs to be kept for Release version to 4.
2020-08-09 10:33:04 -07:00
Phil Olynyk
961fdb13db Clean up formatting, add debug and warnings, fix STR length test to allow multiple daily imports. 2020-08-03 14:01:04 -04:00
Guy Scharf
5cefc90a16 Fix CPAP hours and AHI calculations
Daily page: total hours was elapsed time of all machines, including large blocks that are not CPAP.  Now just MT_CPAP time.
    Welcome page: Same problem with total hours reporting, and AHI was calculated as events/total hours instead of events/CPAP hours.
    Statistics page: Same problems as on Welcome page -- total hours and index calculations.  Changed to using total CPAP hours.
2020-07-24 11:29:19 -07:00
Guy Scharf
47c8ece333 Exclude Journal in calculating last day of Overview graph
This deals with notes that may be entered for future dates
  and which should not affect the Overview graphs.
2020-07-06 11:51:09 -07:00
sawinglogz
d9386a993b Partial fix for database upgrade loop.
Resmed loader still needs to return -1 on error.

Also fixed a crasher in MainWindow::finishCPAPImport.
2020-05-06 13:40:59 -04:00
sawinglogz
90434d5f11 Bump the PRS1 loader version to force a rebuild, update release notes.
Also fix a typo in the rebuild dialog.
2020-03-26 09:54:55 -04:00
Phil Olynyk
bd4918dc30 Remove version update from importCPAP 2020-02-16 21:33:01 -05:00
Phil Olynyk
1a258eae34 Update machine.info.version after upgrade re-import 2020-02-13 20:37:52 -05:00
Phil Olynyk
0afaec53b5 In Preferences, ask if ResMed when no machines; force ResMed prefs when yes. Also in ResMed loader 2020-02-06 21:34:04 -05:00
sawinglogz
cdeba58c5d Fix minor cleanup bugs in the Resmed regression tests that were causing crashes. 2020-02-03 11:43:13 -05:00
sawinglogz
cb576437ab Clean up noise and memory leaks in unit tests. 2020-01-29 09:10:29 -05:00
sawinglogz
2e92107cce Update version display throughout to use the new information and be consistent.
The full version now includes the build/git information embedded within
it as build metadata according to the Semantic Versioning 2.0.0 spec,
for example: "1.1.0-beta-1+branch-name-a1b2c3d".

Now the full version string, with all detail is always displayed
EXCEPT for release versions, in which case just the simple version
number ("1.1.0") is displayed in the primary UI.

- Main window title: simple version for release versions, full version
    string otherwise
- Notifications: same as main window title
- System tray: same as main window title
- About window title: same as main window title
- About window release notes: always include full version string
- Reports: always include full version string
- Under the logo (about dialog, profile selector, new profile
    window): removed, as it is largely redundant and can
    interfere with the window geometry.
- Database upgrade alert: same as main window title
- Database newer alert: same as main window title

The full version string is also included within the preference and
profile .xml files, but because build metadata is ignored in version
comparisons, differences in builds will not cause any spurious
alerts. However, changes in prerelease versions will continue to
be significant, as they should be.
2020-01-16 13:05:55 -05:00
sawinglogz
88957aeb7f Replace VersionString with getVersion() everywhere. 2020-01-15 19:45:46 -05:00
sawinglogz
d898581ca4 Remove version.h dependency from appsettings.h to reduce unnecessary recompiling. 2020-01-15 16:34:28 -05:00
sawinglogz
41579d4919 Reset import warnings when running a new version of OSCAR. 2019-12-30 14:25:37 -06:00
sawinglogz
4976d7077e Fix the missing import progress dialog when forcing a rebuild.
Because opening a profile already had a progress dialog open, the import
process during a forced rebuild wasn't appearing, so it would look like
OSCAR was hanging for as long as the import took.

Temporarily hiding the profile progress dialog resolves the issue.
2019-12-27 22:29:18 -06: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
Seeker4
b943356619 Add some qDebut statements for version mismatch. 2019-06-28 19:50:23 -07: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
Norman Heino
6b7fe4c8f2 Fix use-after-free in Profile::UnloadMachineData 2019-05-26 17:18:42 +02:00
Norman Heino
07372487ac Save session info when unloading machine data
Fixes 0000046
2019-05-24 05:28:48 +02: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
Phil Olynyk
26f5854c6b Delete confusing PREF macro and replace as required 2019-03-25 19:36:41 -04:00
Phil Olynyk
590032e76d Sorry, massive list of small changes - debugging, sleepyhead deleteion, etc 2019-03-10 12:03:19 -04:00
Phil Olynyk
108e0354d9 Change OSCR to OSCAR in cpp, h, ui, and html files 2019-02-23 19:58:25 -05:00
Phil Olynyk
17b53482bd Change folder and file name from oscr to oscar 2019-02-22 19:23:39 -05:00