This commit is contained in:
Arie Klerk 2016-03-18 08:25:06 +01:00
commit 88fa34af9f
16 changed files with 473 additions and 352 deletions

View File

@ -221,6 +221,7 @@ void MinutesAtPressure::paint(QPainter &painter, gGraph &graph, const QRegion &r
double p0, p1, p2, p3; double p0, p1, p2, p3;
QString label; QString label;
double s2;
int widest_YAxis = 0; int widest_YAxis = 0;
int mouseOverKey = 0; int mouseOverKey = 0;
@ -280,7 +281,7 @@ void MinutesAtPressure::paint(QPainter &painter, gGraph &graph, const QRegion &r
} else { } else {
str.chop(1);// +=QObject::tr("No Data Here"); str.chop(1);// +=QObject::tr("No Data Here");
} }
graph.ToolTip(str, mouse.x(), mouse.y(), TT_AlignLeft); graph.ToolTip(str, mouse.x(), mouse.y(), TT_AlignRight);
} }
@ -314,14 +315,17 @@ void MinutesAtPressure::paint(QPainter &painter, gGraph &graph, const QRegion &r
// Plot IPAP Time at Pressure // Plot IPAP Time at Pressure
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
xp=left; xp=left;
double lastyp = bottom - (double(ipap.times[min-1]) * ystep); s2 = double(ipap.times[qMax(0, min-1)]/60.0);
if (s2 < 0) s2=0;
double lastyp = bottom - (s2 * ystep);
for (int i=min; i<max; ++i) { for (int i=min; i<max; ++i) {
p0 = ipap.times[i-1] / 60.0; p0 = ipap.times[i-1] / 60.0;
p1 = ipap.times[i]/ 60.0; p1 = ipap.times[i]/ 60.0;
p2 = ipap.times[i+1]/ 60.0; p2 = ipap.times[i+1]/ 60.0;
p3 = ipap.times[i+2]/ 60.0; p3 = ipap.times[i+2]/ 60.0;
yp = bottom - (double(p1) * ystep); yp = bottom - qMax((double(p1) * ystep),0.0);
if (i == mouseOverKey) { if (i == mouseOverKey) {
painter.setPen(QPen(Qt::black)); painter.setPen(QPen(Qt::black));
@ -332,7 +336,7 @@ void MinutesAtPressure::paint(QPainter &painter, gGraph &graph, const QRegion &r
painter.drawLine(xp, lastyp, xp+xstep, yp); painter.drawLine(xp, lastyp, xp+xstep, yp);
lastyp = yp; lastyp = yp;
xp += xstep; xp += xstep;
double s2 = qMax(CatmullRomSpline(p0, p1, p2, p3, 0.2),0.0f); s2 = qMax(CatmullRomSpline(p0, p1, p2, p3, 0.2), 0.0f);
yp = qMax(double(bottom-height), (bottom - (s2 * ystep))); yp = qMax(double(bottom-height), (bottom - (s2 * ystep)));
painter.drawLine(xp, lastyp, xp+xstep, yp); painter.drawLine(xp, lastyp, xp+xstep, yp);
@ -351,6 +355,7 @@ void MinutesAtPressure::paint(QPainter &painter, gGraph &graph, const QRegion &r
lastyp = yp; lastyp = yp;
s2 = qMax(CatmullRomSpline(p0, p1, p2, p3, 0.8), 0.0f); s2 = qMax(CatmullRomSpline(p0, p1, p2, p3, 0.8), 0.0f);
if (s2 < 0) s2=0;
yp = qMax(double(bottom-height), (bottom - (s2 * ystep))); yp = qMax(double(bottom-height), (bottom - (s2 * ystep)));
painter.drawLine(xp, lastyp, xp+xstep, yp); painter.drawLine(xp, lastyp, xp+xstep, yp);
xp+=xstep; xp+=xstep;
@ -412,18 +417,19 @@ void MinutesAtPressure::paint(QPainter &painter, gGraph &graph, const QRegion &r
xp = left; xp = left;
lastyp = bottom - (double(ipap.events[ch][min-1]) * estep); s2 = ipap.events[ch][qMax(min-1,0)];
lastyp = bottom - (s2 * estep);
for (int i=min; i<max; ++i) { for (int i=min; i<max; ++i) {
p0 = ipap.events[ch][i-1]; p0 = ipap.events[ch][i-1];
p1 = ipap.events[ch][i]; p1 = ipap.events[ch][i];
p2 = ipap.events[ch][i+1]; p2 = ipap.events[ch][i+1];
p3 = ipap.events[ch][i+1]; p3 = ipap.events[ch][i+1];
yp = bottom - (double(p1) * estep); yp = bottom - qMax((double(p1) * estep),0.0);
painter.drawLine(xp, lastyp, xp+xstep, yp); painter.drawLine(xp, lastyp, xp+xstep, yp);
lastyp = yp; lastyp = yp;
xp += xstep; xp += xstep;
double s2 = qMax(CatmullRomSpline(p0, p1, p2, p3, 0.2),0.0f); s2 = qMax(CatmullRomSpline(p0, p1, p2, p3, 0.2), 0.0f);
yp = qMax(double(bottom-height), double(bottom - (s2 * estep))); yp = qMax(double(bottom-height), double(bottom - (s2 * estep)));
painter.drawLine(xp, lastyp, xp+xstep, yp); painter.drawLine(xp, lastyp, xp+xstep, yp);
@ -477,7 +483,7 @@ void MinutesAtPressure::paint(QPainter &painter, gGraph &graph, const QRegion &r
lastyp = yp; lastyp = yp;
xp += xstep; xp += xstep;
double s2 = qMax(CatmullRomSpline(p0, p1, p2, p3, 0.2),0.0f); s2 = qMax(CatmullRomSpline(p0, p1, p2, p3, 0.2), 0.0f);
yp = qMax(double(bottom-height), (bottom - (s2 * estep))); yp = qMax(double(bottom-height), (bottom - (s2 * estep)));
painter.drawLine(xp, lastyp, xp+xstep, yp); painter.drawLine(xp, lastyp, xp+xstep, yp);
@ -510,7 +516,8 @@ void MinutesAtPressure::paint(QPainter &painter, gGraph &graph, const QRegion &r
if (epap.min_pressure) { if (epap.min_pressure) {
painter.setPen(QPen(echan.defaultColor(), p_profile->appearance->lineThickness())); painter.setPen(QPen(echan.defaultColor(), p_profile->appearance->lineThickness()));
xp=left, lastyp = bottom - (double(epap.times[min]) * ystep); s2 = double(epap.times[qMax(min,0)]/60.0);
xp=left, lastyp = bottom - (s2 * ystep);
for (int i=min; i<max; ++i) { for (int i=min; i<max; ++i) {
p0 = epap.times[i-1]/60.0; p0 = epap.times[i-1]/60.0;
p1 = epap.times[i]/60.0; p1 = epap.times[i]/60.0;
@ -523,12 +530,12 @@ void MinutesAtPressure::paint(QPainter &painter, gGraph &graph, const QRegion &r
painter.setPen(QPen(echan.defaultColor(), p_profile->appearance->lineThickness())); painter.setPen(QPen(echan.defaultColor(), p_profile->appearance->lineThickness()));
} }
yp = bottom - (double(p1) * ystep); yp = bottom - qMax((double(p1) * ystep), 0.0);
painter.drawLine(xp, lastyp, xp+xstep, yp); painter.drawLine(xp, lastyp, xp+xstep, yp);
lastyp = yp; lastyp = yp;
xp += xstep; xp += xstep;
double s2 = qMax(CatmullRomSpline(p0, p1, p2, p3, 0.2),0.0f); s2 = qMax(CatmullRomSpline(p0, p1, p2, p3, 0.2), 0.0f);
yp = qMax(double(bottom-height), (bottom - (s2 * ystep))); yp = qMax(double(bottom-height), (bottom - (s2 * ystep)));
painter.drawLine(xp, lastyp, xp+xstep, yp); painter.drawLine(xp, lastyp, xp+xstep, yp);

View File

@ -482,6 +482,6 @@ int gXAxisPressure::minimumHeight()
#endif #endif
} }
void gXAxisPressure::paint(QPainter &painter, gGraph &graph, const QRegion &region) void gXAxisPressure::paint(QPainter & /*painter*/, gGraph &/*graph*/, const QRegion &/*region*/)
{ {
} }

View File

@ -129,6 +129,10 @@ QString STR_UNIT_CMH2O;
QString STR_UNIT_Hours; QString STR_UNIT_Hours;
QString STR_UNIT_Minutes; QString STR_UNIT_Minutes;
QString STR_UNIT_Seconds; QString STR_UNIT_Seconds;
QString STR_UNIT_h;
QString STR_UNIT_m;
QString STR_UNIT_s;
QString STR_UNIT_ms;
QString STR_UNIT_BPM; // Beats per Minute QString STR_UNIT_BPM; // Beats per Minute
QString STR_UNIT_LPM; // Litres per Minute QString STR_UNIT_LPM; // Litres per Minute
QString STR_UNIT_ml; // MilliLitres QString STR_UNIT_ml; // MilliLitres
@ -325,6 +329,10 @@ void initializeStrings()
STR_UNIT_Hours = QObject::tr("Hours"); STR_UNIT_Hours = QObject::tr("Hours");
STR_UNIT_Minutes = QObject::tr("Minutes"); STR_UNIT_Minutes = QObject::tr("Minutes");
STR_UNIT_Seconds = QObject::tr("Seconds"); STR_UNIT_Seconds = QObject::tr("Seconds");
STR_UNIT_h = QObject::tr("h"); // hours shortform
STR_UNIT_m = QObject::tr("m"); // minutes shortform
STR_UNIT_s = QObject::tr("s"); // seconds shortform
STR_UNIT_ms = QObject::tr("ms"); // milliseconds
STR_UNIT_EventsPerHour = QObject::tr("Events/hr"); // Events per hour STR_UNIT_EventsPerHour = QObject::tr("Events/hr"); // Events per hour
STR_UNIT_Percentage = QObject::tr("%"); STR_UNIT_Percentage = QObject::tr("%");
STR_UNIT_Hz = QObject::tr("Hz"); // Hertz STR_UNIT_Hz = QObject::tr("Hz"); // Hertz

View File

@ -123,7 +123,6 @@ const QString STR_GEN_UpdatesAutoCheck = "Updates_AutoCheck";
const QString STR_GEN_UpdateCheckFrequency = "Updates_CheckFrequency"; const QString STR_GEN_UpdateCheckFrequency = "Updates_CheckFrequency";
const QString STR_GEN_DataFolder = "DataFolder"; const QString STR_GEN_DataFolder = "DataFolder";
const QString STR_PREF_AllowEventRenaming = "AllowEventRenaming";
const QString STR_PREF_AllowEarlyUpdates = "AllowEarlyUpdates"; const QString STR_PREF_AllowEarlyUpdates = "AllowEarlyUpdates";
const QString STR_PREF_ReimportBackup = "ReimportBackup"; const QString STR_PREF_ReimportBackup = "ReimportBackup";
const QString STR_PREF_LastCPAPPath = "LastCPAPPath"; const QString STR_PREF_LastCPAPPath = "LastCPAPPath";
@ -159,6 +158,10 @@ extern QString STR_UNIT_CMH2O;
extern QString STR_UNIT_Hours; extern QString STR_UNIT_Hours;
extern QString STR_UNIT_Minutes; extern QString STR_UNIT_Minutes;
extern QString STR_UNIT_Seconds; extern QString STR_UNIT_Seconds;
extern QString STR_UNIT_h; // (h)ours, (m)inutes, (s)econds
extern QString STR_UNIT_m;
extern QString STR_UNIT_s;
extern QString STR_UNIT_ms;
extern QString STR_UNIT_BPM; // Beats per Minute extern QString STR_UNIT_BPM; // Beats per Minute
extern QString STR_UNIT_LPM; // Litres per Minute extern QString STR_UNIT_LPM; // Litres per Minute
extern QString STR_UNIT_ml; // millilitres extern QString STR_UNIT_ml; // millilitres

View File

@ -2102,6 +2102,8 @@ bool PRS1Import::ParseSummaryF5V2()
CPAPMode cpapmode = MODE_UNKNOWN; CPAPMode cpapmode = MODE_UNKNOWN;
summary_duration = data[0x18] | data[0x19] << 8; summary_duration = data[0x18] | data[0x19] << 8;
return true;
} }
bool PRS1Import::ParseSummaryF0V6() bool PRS1Import::ParseSummaryF0V6()

View File

@ -3340,8 +3340,6 @@ void ResmedLoader::initChannels()
chan->addOption(10, QObject::tr("???")); chan->addOption(10, QObject::tr("???"));
chan->addOption(11, QObject::tr("Auto for Her")); chan->addOption(11, QObject::tr("Auto for Her"));
channel.add(GRP_CPAP, chan = new Channel(RMS9_EPR = 0xe201, SETTING, MT_CPAP, SESSION, channel.add(GRP_CPAP, chan = new Channel(RMS9_EPR = 0xe201, SETTING, MT_CPAP, SESSION,
"EPR", QObject::tr("EPR"), "EPR", QObject::tr("EPR"),
QObject::tr("ResMed Exhale Pressure Relief"), QObject::tr("ResMed Exhale Pressure Relief"),

View File

@ -174,6 +174,8 @@ extern ChannelID POS_Orientation, POS_Inclination;
const QString GRP_CPAP = "CPAP"; const QString GRP_CPAP = "CPAP";
const QString GRP_POS = "POS"; const QString GRP_POS = "POS";
const QString GRP_OXI = "OXI"; const QString GRP_OXI = "OXI";
const QString GRP_JOURNAL = "JOURNAL";
const QString GRP_SLEEP = "SLEEP";
#endif // MACHINE_COMMON_H #endif // MACHINE_COMMON_H

View File

@ -106,6 +106,7 @@ void init()
DataTypes["datetime"] = DATETIME; DataTypes["datetime"] = DATETIME;
DataTypes["time"] = TIME; DataTypes["time"] = TIME;
// Note: Old channel names stored in channels.xml are not translatable.. they need to be moved to be defined AFTER here instead
if (!schema::channel.Load(":/docs/channels.xml")) { if (!schema::channel.Load(":/docs/channels.xml")) {
QMessageBox::critical(0, STR_MessageBox_Error, QMessageBox::critical(0, STR_MessageBox_Error,
QObject::tr("Couldn't parse Channels.xml, this build is seriously borked, no choice but to abort!!"), QObject::tr("Couldn't parse Channels.xml, this build is seriously borked, no choice but to abort!!"),
@ -472,6 +473,136 @@ void init()
ch->addOption(7, QObject::tr("ASV (Variable EPAP)")); ch->addOption(7, QObject::tr("ASV (Variable EPAP)"));
ch->addOption(8, QObject::tr("AVAPS")); ch->addOption(8, QObject::tr("AVAPS"));
// <channel id="0x0800" class="data" name="BPSys" details="Blood Pressure Systolic" label="BPS" unit="mmHg" color="red"/>
// <channel id="0x0801" class="data" name="BPDia" details="Blood Pressure Diastolic" label="BPD" unit="mmHg" color="blue"/>
// <channel id="0x0802" class="data" name="Glucose" details="Blood Glucose" label="BGL" unit="mmol/L" color="black"/>
// <channel id="0x0803" class="data" scope="!day" name="Weight" details="Weight" label="Weight" unit="Kg" color="black"/>
schema::channel.add(GRP_JOURNAL, ch = new Channel(Journal_Weight = 0x0803, DATA, MT_JOURNAL, DAY,
"Weight", QObject::tr("Weight"),
QObject::tr("Weight"),
QObject::tr("Weight"), STR_UNIT_KG,
DOUBLE, Qt::black));
// Kids grow... but that adds a whole nother layer of complexity.
// <channel id="0x0804" class="data" scope="!day" name="Height" details="Height" label="Height" unit="cm" color="blue"/>
schema::channel.add(GRP_JOURNAL, ch = new Channel(0x0804, DATA, MT_JOURNAL, DAY,
"Height", QObject::tr("Height"),
QObject::tr("Physical Height"),
QObject::tr("Height"), STR_UNIT_CM,
DOUBLE, Qt::black));
// <channel id="0x0805" class="data" name="BookmarkNotes" details="Session Bookmark Notes" label="Bookmark Notes" unit="text" color="orange"/>
schema::channel.add(GRP_JOURNAL, ch = new Channel(0x0805, DATA, MT_JOURNAL, DAY,
"BookmarkNotes", QObject::tr("Notes"),
QObject::tr("Bookmark Notes"),
QObject::tr("Notes"), QString(),
STRING, Qt::black));
// <channel id="0x0806" class="data" name="BMI" details="Body Mass Index" label="BMI" unit="kg/m2" color="orange"/>
schema::channel.add(GRP_JOURNAL, ch = new Channel(Journal_BMI = 0x0806, DATA, MT_JOURNAL, DAY,
"BMI", QObject::tr("BMI"),
QObject::tr("Body Mass Index"),
QObject::tr("BMI"), QString(),
DOUBLE, Qt::black));
// <channel id="0x0807" class="data" name="ZombieMeter" details="How good you feel." label="Alive" unit="0-10" color="orange"/>
schema::channel.add(GRP_JOURNAL, ch = new Channel(Journal_ZombieMeter = 0x0807, DATA, MT_JOURNAL, DAY,
"ZombieMeter", QObject::tr("Zombie"),
QObject::tr("How you feel (0 = like crap, 10 = unstoppable)"),
QObject::tr("Zombie"), QString(),
DOUBLE, Qt::black));
// <channel id="0x0808" class="data" name="BookmarkStart" details="Session Bookmark Start" label="Bookmark Start" unit="duration" color="orange"/>
schema::channel.add(GRP_JOURNAL, ch = new Channel(0x0808, DATA, MT_JOURNAL, DAY,
"BookmarkStart", QObject::tr("Start"),
QObject::tr("Bookmark Start"),
QObject::tr("Start"), QString(),
INTEGER, Qt::black));
// <channel id="0x0809" class="data" name="BookmarkEnd" details="Session Bookmark End" label="Bookmark End" unit="duration" color="orange"/>
schema::channel.add(GRP_JOURNAL, ch = new Channel(0x0809, DATA, MT_JOURNAL, DAY,
"BookmarkEnd", QObject::tr("End"),
QObject::tr("Bookmark End"),
QObject::tr("End"), QString(),
DOUBLE, Qt::black));
// <channel id="0x080a" class="data" scope="!day" name="LastUpdated" details="Last Updated" label="Last Updated" unit="timestamp" color="orange"/>
schema::channel.add(GRP_JOURNAL, ch = new Channel(0x080a, DATA, MT_JOURNAL, DAY,
"LastUpdated", QObject::tr("Last Updated"),
QObject::tr("Last Updated"),
QObject::tr("Last Updated"), QString(),
DATETIME, Qt::black));
// <channel id="0xd000" class="data" scope="!day" unique="true" name="Journal" details="Journal Notes" label="Journal" type="richtext"/>
schema::channel.add(GRP_JOURNAL, ch = new Channel(Journal_Notes = 0xd000, DATA, MT_JOURNAL, DAY,
"Journal", QObject::tr("Journal Notes"),
QObject::tr("Journal Notes"),
QObject::tr("Journal"), QString(),
RICHTEXT, Qt::black));
// <channel id="0x2000" class="data" name="SleepStage" details="Sleep Stage" label="Sleep Stage" unit="1=Awake 2=REM 3=Light Sleep 4=Deep Sleep" color="dark grey"/>
schema::channel.add(GRP_SLEEP, ch = new Channel(ZEO_SleepStage = 0x2000, WAVEFORM, MT_SLEEPSTAGE, SESSION,
"SleepStage", QObject::tr("Sleep Stage"),
QObject::tr("1=Awake 2=REM 3=Light Sleep 4=Deep Sleep"),
QObject::tr("Sleep Stage"), QString(),
INTEGER, Qt::darkGray));
// <channel id="0x2001" class="data" name="ZeoBW" details="Zeo Brainwave" label="ZeoWave" color="black"/>
schema::channel.add(GRP_SLEEP, ch = new Channel(0x2001, WAVEFORM, MT_SLEEPSTAGE, SESSION,
"ZeoBW", QObject::tr("Brain Wave"),
QObject::tr("Brain Wave"),
QObject::tr("BrainWave"), QString(),
INTEGER, Qt::black));
// <channel id="0x2002" class="data" name="Awakenings" details="Awakenings" label="Awakenings" color="black"/>
schema::channel.add(GRP_SLEEP, ch = new Channel(ZEO_Awakenings = 0x2002, DATA, MT_SLEEPSTAGE, SESSION,
"Awakenings", QObject::tr("Awakenings"),
QObject::tr("Number of Awakenings"),
QObject::tr("Awakenings"), QString(),
INTEGER, Qt::black));
// <channel id="0x2003" class="data" name="MorningFeel" details="ZEO Morning Feel" label="Morning Feel" color="black"/>
schema::channel.add(GRP_SLEEP, ch = new Channel(ZEO_MorningFeel= 0x2003, DATA, MT_SLEEPSTAGE, SESSION,
"MorningFeel", QObject::tr("Morning Feel"),
QObject::tr("How you felt in the morning"),
QObject::tr("Morning Feel"), QString(),
INTEGER, Qt::black));
// <channel id="0x2004" class="data" name="TimeInWake" details="Time In Wake" label="Time In Wake" color="red"/>
schema::channel.add(GRP_SLEEP, ch = new Channel(ZEO_TimeInWake = 0x2004, DATA, MT_SLEEPSTAGE, SESSION,
"TimeInWake", QObject::tr("Time Awake"),
QObject::tr("Time spent awake"),
QObject::tr("Time Awake"), STR_UNIT_Minutes,
INTEGER, Qt::black));
// <channel id="0x2005" class="data" name="TimeInREM" details="Time In REM Sleep" label="Time In REM" color="green"/>
schema::channel.add(GRP_SLEEP, ch = new Channel(ZEO_TimeInREM = 0x2005, DATA, MT_SLEEPSTAGE, SESSION,
"TimeInREM", QObject::tr("Time In REM Sleep"),
QObject::tr("Time spent in REM Sleep"),
QObject::tr("Time in REM Sleep"), STR_UNIT_Minutes,
INTEGER, Qt::black));
// <channel id="0x2006" class="data" name="TimeInLight" details="Time In Light Sleep" label="Time In Light" color="blue"/>
schema::channel.add(GRP_SLEEP, ch = new Channel(ZEO_TimeInLight = 0x2006, DATA, MT_SLEEPSTAGE, SESSION,
"TimeInLight", QObject::tr("Time In Light Sleep"),
QObject::tr("Time spent in light sleep"),
QObject::tr("Time in Light Sleep"), STR_UNIT_Minutes,
INTEGER, Qt::black));
// <channel id="0x2007" class="data" name="TimeInDeep" details="Time In Deep Sleep" label="Time In Deep" color="magenta"/>
schema::channel.add(GRP_SLEEP, ch = new Channel(ZEO_TimeInDeep= 0x2007, DATA, MT_SLEEPSTAGE, SESSION,
"TimeInDeep", QObject::tr("Time In Deep Sleep"),
QObject::tr("Time spent in deep sleep"),
QObject::tr("Time in Deep Sleep"), STR_UNIT_Minutes,
INTEGER, Qt::black));
// <channel id="0x2008" class="data" name="TimeToZ" details="Time To Sleep" label="Time To Z" color="magenta"/>
schema::channel.add(GRP_SLEEP, ch = new Channel(ZEO_TimeInDeep= 0x2008, DATA, MT_SLEEPSTAGE, SESSION,
"TimeToZ", QObject::tr("Time to Sleep"),
QObject::tr("Time taken to get to sleep"),
QObject::tr("Time to Sleep"), STR_UNIT_Minutes,
INTEGER, Qt::black));
// <channel id="0x2009" class="data" name="ZeoZQ" details="ZEO ZQ" label="ZEO ZQ" color="magenta"/>
schema::channel.add(GRP_SLEEP, ch = new Channel(ZEO_ZQ=0x2009, DATA, MT_SLEEPSTAGE, SESSION,
"ZeoZQ", QObject::tr("Zeo ZQ"),
QObject::tr("Zeo sleep quality measurement"),
QObject::tr("ZEO ZQ"), QString(),
INTEGER, Qt::black));
// <channel id="0x1200" class="setting" scope="!session" name="PAPMode" details="PAP Mode" label="PAP Mode" type="integer"> // <channel id="0x1200" class="setting" scope="!session" name="PAPMode" details="PAP Mode" label="PAP Mode" type="integer">
// <option id="0" value="CPAP"/> // <option id="0" value="CPAP"/>
@ -482,6 +613,25 @@ void init()
// <option id="5" value="ASV Auto EPAP"/> // <option id="5" value="ASV Auto EPAP"/>
// </channel> // </channel>
// <channel id="0x1201" class="setting" scope="!session" name="PresRelType" details="Pressure Relief" label="Pres. Relief" type="integer">
// <Option id="0" value=""/>
// <Option id="1" value="None"/>
// <Option id="2" value="C-Flex"/>
// <Option id="3" value="C-Flex+"/>
// <Option id="4" value="A-Flex"/>
// <Option id="5" value="Bi-Flex"/>
// <Option id="6" value="EPR"/>
// <Option id="7" value="SmartFlex"/>
// <Option id="8" value="Easy-Breathe"/>
// </channel>
// <channel id="0x1202" class="setting" scope="!session" name="PresRelMode" details="Pressure Relief Mode" label="Pres. Rel. Mode" type="integer">
// <Option id="0" value=""/>
// <Option id="1" value="Ramp"/>
// <Option id="2" value="Full Time"/>
// </channel>
// <channel id="0x1203" class="setting" scope="!session" name="PresRelSet" details="Pressure Relief Setting" label="Pressure Relief" type="integer"/>
NoChannel = 0; NoChannel = 0;
// CPAP_IPAP=schema::channel["IPAP"].id(); // CPAP_IPAP=schema::channel["IPAP"].id();
@ -549,24 +699,24 @@ void init()
// OXI_Plethy=schema::channel["Plethy"].id(); // OXI_Plethy=schema::channel["Plethy"].id();
// CPAP_AHI=schema::channel["AHI"].id(); // CPAP_AHI=schema::channel["AHI"].id();
// CPAP_RDI=schema::channel["RDI"].id(); // CPAP_RDI=schema::channel["RDI"].id();
Journal_Notes = schema::channel["Journal"].id(); // Journal_Notes = schema::channel["Journal"].id();
Journal_Weight = schema::channel["Weight"].id(); // Journal_Weight = schema::channel["Weight"].id();
Journal_BMI = schema::channel["BMI"].id(); // Journal_BMI = schema::channel["BMI"].id();
Journal_ZombieMeter = schema::channel["ZombieMeter"].id(); // Journal_ZombieMeter = schema::channel["ZombieMeter"].id();
LastUpdated = schema::channel["LastUpdated"].id(); // LastUpdated = schema::channel["LastUpdated"].id();
Bookmark_Start = schema::channel["BookmarkStart"].id(); // Bookmark_Start = schema::channel["BookmarkStart"].id();
Bookmark_End = schema::channel["BookmarkEnd"].id(); // Bookmark_End = schema::channel["BookmarkEnd"].id();
Bookmark_Notes = schema::channel["BookmarkNotes"].id(); // Bookmark_Notes = schema::channel["BookmarkNotes"].id();
ZEO_SleepStage = schema::channel["SleepStage"].id(); // ZEO_SleepStage = schema::channel["SleepStage"].id();
ZEO_ZQ = schema::channel["ZeoZQ"].id(); // ZEO_ZQ = schema::channel["ZeoZQ"].id();
ZEO_Awakenings = schema::channel["Awakenings"].id(); // ZEO_Awakenings = schema::channel["Awakenings"].id();
ZEO_MorningFeel = schema::channel["MorningFeel"].id(); // ZEO_MorningFeel = schema::channel["MorningFeel"].id();
ZEO_TimeInWake = schema::channel["TimeInWake"].id(); // ZEO_TimeInWake = schema::channel["TimeInWake"].id();
ZEO_TimeInREM = schema::channel["TimeInREM"].id(); // ZEO_TimeInREM = schema::channel["TimeInREM"].id();
ZEO_TimeInLight = schema::channel["TimeInLight"].id(); // ZEO_TimeInLight = schema::channel["TimeInLight"].id();
ZEO_TimeInDeep = schema::channel["TimeInDeep"].id(); // ZEO_TimeInDeep = schema::channel["TimeInDeep"].id();
ZEO_TimeToZ = schema::channel["TimeToZ"].id(); // ZEO_TimeToZ = schema::channel["TimeToZ"].id();
schema::channel[CPAP_Leak].setShowInOverview(true); schema::channel[CPAP_Leak].setShowInOverview(true);
schema::channel[CPAP_RespRate].setShowInOverview(true); schema::channel[CPAP_RespRate].setShowInOverview(true);
@ -753,7 +903,7 @@ bool ChannelList::Load(QString filename)
scope = Scopes[scopestr]; scope = Scopes[scopestr];
// if (PREF[STR_PREF_AllowEventRenaming].toBool()) { // if (PREF[STR_PREF_ResetEventNames].toBool()) {
name = e.attribute("name", ""); name = e.attribute("name", "");
details = e.attribute("details", ""); details = e.attribute("details", "");
label = e.attribute("label", ""); label = e.attribute("label", "");
@ -843,17 +993,6 @@ bool ChannelList::Load(QString filename)
return true; return true;
} }
void ChannelList::resetStrings()
{
QHash<ChannelID, Channel *>::iterator it;
QHash<ChannelID, Channel *>::iterator it_end = channels.end();
for (it = channels.begin(); it != it_end; ++it) {
Channel * chan = it.value();
chan->resetStrings();
}
}
void ChannelList::add(QString group, Channel *chan) void ChannelList::add(QString group, Channel *chan)
{ {
Q_ASSERT(chan != nullptr); Q_ASSERT(chan != nullptr);

View File

@ -129,11 +129,6 @@ class Channel
void setOrder(short order) { m_order = order; } void setOrder(short order) { m_order = order; }
void setShowInOverview(bool b) { m_showInOverview = b; } void setShowInOverview(bool b) { m_showInOverview = b; }
void resetStrings() {
m_fullname = default_fullname;
m_label = default_label;
m_description = default_description;
}
QString option(int i) { QString option(int i) {
if (m_options.contains(i)) { if (m_options.contains(i)) {
@ -226,8 +221,6 @@ class ChannelList
} }
} }
void resetStrings();
//! \brief Channel List indexed by integer ID //! \brief Channel List indexed by integer ID
QHash<ChannelID, Channel *> channels; QHash<ChannelID, Channel *> channels;

View File

@ -24,52 +24,13 @@ Important: One id code per item, DO NOT CHANGE ID NUMBERS!!!
<channel id="0x1167" class="data" name="IntUnk1" details="Unknown 1" label="Unknown 1" unit="?" color="dark green"/> <channel id="0x1167" class="data" name="IntUnk1" details="Unknown 1" label="Unknown 1" unit="?" color="dark green"/>
<channel id="0x1168" class="data" name="IntUnk2" details="Unknown 2" label="Unknown 2" unit="?" color="dark green"/> <channel id="0x1168" class="data" name="IntUnk2" details="Unknown 2" label="Unknown 2" unit="?" color="dark green"/>
<channel id="0x1201" class="setting" scope="!session" name="PresRelType" details="Pressure Relief" label="Pres. Relief" type="integer">
<Option id="0" value=""/>
<Option id="1" value="None"/>
<Option id="2" value="C-Flex"/>
<Option id="3" value="C-Flex+"/>
<Option id="4" value="A-Flex"/>
<Option id="5" value="Bi-Flex"/>
<Option id="6" value="EPR"/>
<Option id="7" value="SmartFlex"/>
<Option id="8" value="Easy-Breathe"/>
</channel>
<channel id="0x1202" class="setting" scope="!session" name="PresRelMode" details="Pressure Relief Mode" label="Pres. Rel. Mode" type="integer">
<Option id="0" value=""/>
<Option id="1" value="Ramp"/>
<Option id="2" value="Full Time"/>
</channel>
<channel id="0x1203" class="setting" scope="!session" name="PresRelSet" details="Pressure Relief Setting" label="Pressure Relief" type="integer"/>
</group> </group>
<group name="OXI"> <group name="OXI">
</group> </group>
<group name="SLEEP"> <group name="SLEEP">
<channel id="0x2000" class="data" name="SleepStage" details="Sleep Stage" label="Sleep Stage" unit="1=Awake 2=REM 3=Light Sleep 4=Deep Sleep" color="dark grey"/>
<channel id="0x2001" class="data" name="ZeoBW" details="Zeo Brainwave" label="ZeoWave" color="black"/>
<channel id="0x2002" class="data" name="Awakenings" details="Awakenings" label="Awakenings" color="black"/>
<channel id="0x2003" class="data" name="MorningFeel" details="ZEO Morning Feel" label="Morning Feel" color="black"/>
<channel id="0x2004" class="data" name="TimeInWake" details="Time In Wake" label="Time In Wake" color="red"/>
<channel id="0x2005" class="data" name="TimeInREM" details="Time In REM Sleep" label="Time In REM" color="green"/>
<channel id="0x2006" class="data" name="TimeInLight" details="Time In Light Sleep" label="Time In Light" color="blue"/>
<channel id="0x2007" class="data" name="TimeInDeep" details="Time In Deep Sleep" label="Time In Deep" color="magenta"/>
<channel id="0x2008" class="data" name="TimeToZ" details="Time To Sleep" label="Time To Z" color="magenta"/>
<channel id="0x2009" class="data" name="ZeoZQ" details="ZEO ZQ" label="ZEO ZQ" color="magenta"/>
</group> </group>
<group name="GENERAL"> <group name="GENERAL">
<channel id="0x0800" class="data" name="BPSys" details="Blood Pressure Systolic" label="BPS" unit="mmHg" color="red"/>
<channel id="0x0801" class="data" name="BPDia" details="Blood Pressure Diastolic" label="BPD" unit="mmHg" color="blue"/>
<channel id="0x0802" class="data" name="Glucose" details="Blood Glucose" label="BGL" unit="mmol/L" color="black"/>
<channel id="0x0803" class="data" scope="!day" name="Weight" details="Weight" label="Weight" unit="Kg" color="black"/>
<channel id="0x0804" class="data" scope="!day" name="Height" details="Height" label="Height" unit="cm" color="blue"/>
<channel id="0x0805" class="data" name="BookmarkNotes" details="Session Bookmark Notes" label="Bookmark Notes" unit="text" color="orange"/>
<channel id="0x0806" class="data" name="BMI" details="Body Mass Index" label="BMI" unit="kg/m2" color="orange"/>
<channel id="0x0807" class="data" name="ZombieMeter" details="How good you feel." label="Alive" unit="0-10" color="orange"/>
<channel id="0x0808" class="data" name="BookmarkStart" details="Session Bookmark Start" label="Bookmark Start" unit="duration" color="orange"/>
<channel id="0x0809" class="data" name="BookmarkEnd" details="Session Bookmark End" label="Bookmark End" unit="duration" color="orange"/>
<channel id="0x080a" class="data" scope="!day" name="LastUpdated" details="Last Updated" label="Last Updated" unit="timestamp" color="orange"/>
<channel id="0xd000" class="data" scope="!day" unique="true" name="Journal" details="Journal Notes" label="Journal" type="richtext"/>
</group> </group>
<group name="PRS1"> <group name="PRS1">
<!-- PRS1 Settings --> <!-- PRS1 Settings -->

View File

@ -224,10 +224,12 @@ int main(int argc, char *argv[])
initializeStrings(); // Important, call this AFTER translator is installed. initializeStrings(); // Important, call this AFTER translator is installed.
a.setApplicationName(STR_TR_SleepyHead); a.setApplicationName(STR_TR_SleepyHead);
if (settings.value(LangSetting, "").toString() == lastlanguage) {
// don't reset if they selected the same language again // Do reset strings if they selected the same langauge again..
changing_language = false; // if (settings.value(LangSetting, "").toString() == lastlanguage) {
} // // don't reset if they selected the same language again
// changing_language = false;
// }
//////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////
// OpenGL Detection // OpenGL Detection
@ -402,8 +404,6 @@ retry_directory:
PREF.init(STR_GEN_UpdateCheckFrequency, 7); // days PREF.init(STR_GEN_UpdateCheckFrequency, 7); // days
PREF.init(STR_PREF_AllowEarlyUpdates, false); PREF.init(STR_PREF_AllowEarlyUpdates, false);
PREF.init(STR_PREF_AllowEventRenaming, true);
//////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////
// Check when last checked for updates.. // Check when last checked for updates..
//////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////
@ -502,13 +502,7 @@ retry_directory:
MainWindow w; MainWindow w;
mainwin = &w; mainwin = &w;
loadChannels(); loadChannels(changing_language);
if (changing_language) {
qDebug() << "Resetting Channel strings to defaults for language change";
schema::channel.resetStrings();
}
// if (check_updates) { mainwin->CheckForUpdates(); } // if (check_updates) { mainwin->CheckForUpdates(); }

View File

@ -403,7 +403,7 @@ void saveChannels()
} }
void loadChannels() void loadChannels(bool changing_language)
{ {
QString filename = p_profile->Get("{DataFolder}/") + "channels.dat"; QString filename = p_profile->Get("{DataFolder}/") + "channels.dat";
QFile f(filename); QFile f(filename);
@ -478,7 +478,9 @@ void loadChannels()
chan->setDefaultColor(color); chan->setDefaultColor(color);
// Don't import channel descriptions if event renaming is turned off. (helps pick up new translations) // Don't import channel descriptions if event renaming is turned off. (helps pick up new translations)
if (PREF[STR_PREF_AllowEventRenaming].toBool()) { if (changing_language) {
// Nothing
} else {
chan->setFullname(fullname); chan->setFullname(fullname);
chan->setLabel(label); chan->setLabel(label);
chan->setDescription(description); chan->setDescription(description);
@ -2567,9 +2569,12 @@ void MainWindow::on_actionHelp_Support_SleepyHead_Development_triggered()
void MainWindow::on_actionChange_Language_triggered() void MainWindow::on_actionChange_Language_triggered()
{ {
//QSettings *settings = new QSettings(getDeveloperName(), getAppName()); // Pop up a message box asking if you would like to reset Channel event/waveform names
//settings->remove("Settings/Language"); // Sorry Translators who frequently language hop, this is an extra step, but this one is for the users. :/
//delete settings; if (QMessageBox::question(this,STR_MessageBox_Warning,tr("Changing the language will reset custom Event and Waveform names/labels/descriptions.")+"\n\n"+tr("Are you sure you want to do this?"), QMessageBox::Yes, QMessageBox::No) == QMessageBox::No) {
return;
}
p_profile->Save(); p_profile->Save();
PREF.Save(); PREF.Save();

View File

@ -66,7 +66,7 @@ class Daily;
class Report; class Report;
class Overview; class Overview;
void loadChannels(); void loadChannels(bool changing_language=false);
void saveChannels(); void saveChannels();

View File

@ -864,7 +864,7 @@
</font> </font>
</property> </property>
<property name="text"> <property name="text">
<string>TextLabel</string> <string/>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignCenter</set> <set>Qt::AlignCenter</set>

View File

@ -173,14 +173,12 @@ PreferencesDialog::PreferencesDialog(QWidget *parent, Profile *_profile) :
float f = profile->general->prefCalcPercentile(); float f = profile->general->prefCalcPercentile();
ui->prefCalcPercentile->setValue(f); ui->prefCalcPercentile->setValue(f);
ui->tooltipTimeoutSlider->setValue(profile->general->tooltipTimeout() / 50); ui->tooltipTimeoutSlider->setValue(profile->general->tooltipTimeout());
ui->tooltipMS->display(profile->general->tooltipTimeout()); on_tooltipTimeoutSlider_valueChanged(ui->tooltipTimeoutSlider->value());
//ui->tooltipMS->display(profile->general->tooltipTimeout());
ui->scrollDampeningSlider->setValue(profile->general->scrollDampening() / 10); ui->scrollDampeningSlider->setValue(profile->general->scrollDampening() / 10);
on_scrollDampeningSlider_valueChanged(ui->scrollDampeningSlider->value());
if (profile->general->scrollDampening() > 0) {
ui->scrollDampDisplay->display(profile->general->scrollDampening());
} else { ui->scrollDampDisplay->display(STR_TR_Off); }
bool bcd = profile->session->backupCardData(); bool bcd = profile->session->backupCardData();
ui->createSDBackups->setChecked(bcd); ui->createSDBackups->setChecked(bcd);
@ -201,8 +199,6 @@ PreferencesDialog::PreferencesDialog(QWidget *parent, Profile *_profile) :
RefreshLastChecked(); RefreshLastChecked();
} else { ui->updateLastChecked->setText("Never"); } } else { ui->updateLastChecked->setText("Never"); }
ui->allowEventRenaming->setChecked(PREF[STR_PREF_AllowEventRenaming].toBool());
ui->overlayFlagsCombo->setCurrentIndex(profile->appearance->overlayType()); ui->overlayFlagsCombo->setCurrentIndex(profile->appearance->overlayType());
ui->overviewLinecharts->setCurrentIndex(profile->appearance->overviewLinechartMode()); ui->overviewLinecharts->setCurrentIndex(profile->appearance->overviewLinechartMode());
@ -725,7 +721,7 @@ bool PreferencesDialog::Save()
profile->general->setSkipEmptyDays(ui->skipEmptyDays->isChecked()); profile->general->setSkipEmptyDays(ui->skipEmptyDays->isChecked());
profile->general->setTooltipTimeout(ui->tooltipTimeoutSlider->value() * 50); profile->general->setTooltipTimeout(ui->tooltipTimeoutSlider->value());
profile->general->setScrollDampening(ui->scrollDampeningSlider->value() * 10); profile->general->setScrollDampening(ui->scrollDampeningSlider->value() * 10);
profile->general->setShowUnknownFlags(ui->showUnknownFlags->isChecked()); profile->general->setShowUnknownFlags(ui->showUnknownFlags->isChecked());
@ -805,7 +801,6 @@ bool PreferencesDialog::Save()
PREF[STR_GEN_UpdatesAutoCheck] = ui->automaticallyCheckUpdates->isChecked(); PREF[STR_GEN_UpdatesAutoCheck] = ui->automaticallyCheckUpdates->isChecked();
PREF[STR_GEN_UpdateCheckFrequency] = ui->updateCheckEvery->value(); PREF[STR_GEN_UpdateCheckFrequency] = ui->updateCheckEvery->value();
PREF[STR_PREF_AllowEarlyUpdates] = ui->allowEarlyUpdates->isChecked(); PREF[STR_PREF_AllowEarlyUpdates] = ui->allowEarlyUpdates->isChecked();
PREF[STR_PREF_AllowEventRenaming] = ui->allowEventRenaming->isChecked();
PREF["Fonts_Application_Name"] = ui->applicationFont->currentText(); PREF["Fonts_Application_Name"] = ui->applicationFont->currentText();
@ -1071,13 +1066,13 @@ void PreferencesDialog::on_okButton_clicked()
void PreferencesDialog::on_scrollDampeningSlider_valueChanged(int value) void PreferencesDialog::on_scrollDampeningSlider_valueChanged(int value)
{ {
if (value > 0) { if (value > 0) {
ui->scrollDampDisplay->display(value * 10); ui->scrollDampDisplay->setText(QString("%1%2").arg(value * 10).arg(STR_UNIT_ms));
} else { ui->scrollDampDisplay->display(STR_TR_Off); } } else { ui->scrollDampDisplay->setText(STR_TR_Off); }
} }
void PreferencesDialog::on_tooltipTimeoutSlider_valueChanged(int value) void PreferencesDialog::on_tooltipTimeoutSlider_valueChanged(int value)
{ {
ui->tooltipMS->display(value * 50); ui->tooltipTimeoutDisplay->setText(QString("%1%2").arg(double(value)/1000.0,0,'f',1).arg(STR_UNIT_s));
} }
void PreferencesDialog::on_resetChannelDefaults_clicked() void PreferencesDialog::on_resetChannelDefaults_clicked()

View File

@ -57,7 +57,7 @@
</sizepolicy> </sizepolicy>
</property> </property>
<property name="currentIndex"> <property name="currentIndex">
<number>4</number> <number>6</number>
</property> </property>
<widget class="QWidget" name="importTab"> <widget class="QWidget" name="importTab">
<attribute name="title"> <attribute name="title">
@ -1244,13 +1244,6 @@ Defaults to 60 minutes.. Highly recommend it's left at this value.</string>
</item> </item>
</widget> </widget>
</item> </item>
<item row="3" column="2" colspan="2">
<widget class="QCheckBox" name="allowEventRenaming">
<property name="text">
<string>Allow Event Renaming</string>
</property>
</widget>
</item>
</layout> </layout>
</widget> </widget>
</item> </item>
@ -2153,215 +2146,6 @@ p, li { white-space: pre-wrap; }
<string>Graph Settings</string> <string>Graph Settings</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout_5"> <layout class="QGridLayout" name="gridLayout_5">
<item row="2" column="1" colspan="2">
<widget class="QComboBox" name="overviewLinecharts">
<item>
<property name="text">
<string>Bar Tops</string>
</property>
</item>
<item>
<property name="text">
<string>Line Chart</string>
</property>
</item>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_47">
<property name="text">
<string>Overview Linecharts</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="7" column="1">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="6" column="1" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout_16">
<item>
<widget class="QSlider" name="scrollDampeningSlider">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;This makes scrolling when zoomed in easier on sensitive bidirectional TouchPads&lt;/p&gt;&lt;p&gt;50ms is recommended value.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="maximum">
<number>25</number>
</property>
<property name="singleStep">
<number>1</number>
</property>
<property name="pageStep">
<number>5</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="invertedAppearance">
<bool>false</bool>
</property>
<property name="tickPosition">
<enum>QSlider::TicksBelow</enum>
</property>
<property name="tickInterval">
<number>1</number>
</property>
</widget>
</item>
<item>
<widget class="QLCDNumber" name="scrollDampDisplay">
<property name="toolTip">
<string>milliseconds</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="digitCount">
<number>3</number>
</property>
<property name="segmentStyle">
<enum>QLCDNumber::Flat</enum>
</property>
</widget>
</item>
</layout>
</item>
<item row="5" column="1" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout_17">
<item>
<widget class="QSlider" name="tooltipTimeoutSlider">
<property name="toolTip">
<string>How long you want the tooltips to stay visible.</string>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>150</number>
</property>
<property name="singleStep">
<number>10</number>
</property>
<property name="pageStep">
<number>50</number>
</property>
<property name="value">
<number>1</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="tickPosition">
<enum>QSlider::TicksBelow</enum>
</property>
<property name="tickInterval">
<number>10</number>
</property>
</widget>
</item>
<item>
<widget class="QLCDNumber" name="tooltipMS">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="digitCount">
<number>5</number>
</property>
<property name="segmentStyle">
<enum>QLCDNumber::Flat</enum>
</property>
</widget>
</item>
</layout>
</item>
<item row="6" column="0">
<widget class="QLabel" name="label_46">
<property name="text">
<string>Scroll Dampening</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="label_45">
<property name="text">
<string>Tooltip Timeout</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QSpinBox" name="graphHeight">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>Default display height of graphs in pixels</string>
</property>
<property name="minimum">
<number>50</number>
</property>
<property name="maximum">
<number>600</number>
</property>
<property name="singleStep">
<number>10</number>
</property>
<property name="value">
<number>180</number>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QCheckBox" name="graphTooltips">
<property name="text">
<string>Graph Tooltips</string>
</property>
</widget>
</item>
<item row="0" column="1" colspan="2">
<widget class="QComboBox" name="overlayFlagsCombo">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>The visual method of displaying waveform overlay flags.
</string>
</property>
<item>
<property name="text">
<string>Standard Bars</string>
</property>
</item>
<item>
<property name="text">
<string>Top Markers</string>
</property>
</item>
</widget>
</item>
<item row="3" column="0"> <item row="3" column="0">
<widget class="QLabel" name="label_26"> <widget class="QLabel" name="label_26">
<property name="text"> <property name="text">
@ -2398,6 +2182,30 @@ p, li { white-space: pre-wrap; }
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="1" colspan="2">
<widget class="QComboBox" name="overlayFlagsCombo">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>The visual method of displaying waveform overlay flags.
</string>
</property>
<item>
<property name="text">
<string>Standard Bars</string>
</property>
</item>
<item>
<property name="text">
<string>Top Markers</string>
</property>
</item>
</widget>
</item>
<item row="4" column="1" colspan="2"> <item row="4" column="1" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout_10"> <layout class="QHBoxLayout" name="horizontalLayout_10">
<item> <item>
@ -2424,6 +2232,212 @@ p, li { white-space: pre-wrap; }
</item> </item>
</layout> </layout>
</item> </item>
<item row="6" column="0">
<widget class="QLabel" name="label_46">
<property name="text">
<string>Scroll Dampening</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="5" column="1" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout_17">
<item>
<widget class="QSlider" name="tooltipTimeoutSlider">
<property name="toolTip">
<string>How long you want the tooltips to stay visible.</string>
</property>
<property name="minimum">
<number>1000</number>
</property>
<property name="maximum">
<number>30000</number>
</property>
<property name="singleStep">
<number>100</number>
</property>
<property name="pageStep">
<number>500</number>
</property>
<property name="value">
<number>5000</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="tickPosition">
<enum>QSlider::TicksBelow</enum>
</property>
<property name="tickInterval">
<number>1000</number>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="tooltipTimeoutDisplay">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>60</width>
<height>0</height>
</size>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="text">
<string notr="true">TextLabel</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</item>
<item row="5" column="0">
<widget class="QLabel" name="label_45">
<property name="text">
<string>Tooltip Timeout</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="6" column="1" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout_16">
<item>
<widget class="QSlider" name="scrollDampeningSlider">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;This makes scrolling when zoomed in easier on sensitive bidirectional TouchPads&lt;/p&gt;&lt;p&gt;50ms is recommended value.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="maximum">
<number>25</number>
</property>
<property name="singleStep">
<number>1</number>
</property>
<property name="pageStep">
<number>5</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="invertedAppearance">
<bool>false</bool>
</property>
<property name="tickPosition">
<enum>QSlider::TicksBelow</enum>
</property>
<property name="tickInterval">
<number>1</number>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="scrollDampDisplay">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>60</width>
<height>0</height>
</size>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="text">
<string notr="true">TextLabel</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</item>
<item row="3" column="1">
<widget class="QSpinBox" name="graphHeight">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>Default display height of graphs in pixels</string>
</property>
<property name="minimum">
<number>50</number>
</property>
<property name="maximum">
<number>600</number>
</property>
<property name="singleStep">
<number>10</number>
</property>
<property name="value">
<number>180</number>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QCheckBox" name="graphTooltips">
<property name="text">
<string>Graph Tooltips</string>
</property>
</widget>
</item>
<item row="2" column="1" colspan="2">
<widget class="QComboBox" name="overviewLinecharts">
<item>
<property name="text">
<string>Bar Tops</string>
</property>
</item>
<item>
<property name="text">
<string>Line Chart</string>
</property>
</item>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_47">
<property name="text">
<string>Overview Linecharts</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="7" column="1">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout> </layout>
</widget> </widget>
</item> </item>