From 16cb50cbb2d1f799c39a80c19171e3f53404875c Mon Sep 17 00:00:00 2001
From: Mark Watkins <jedimark@users.sourceforge.net>
Date: Fri, 18 Nov 2011 19:05:22 +1000
Subject: [PATCH] Changed Updates in Preferences to General, Reordered some
 stuff, Added Skip Login Screen option in General.

---
 main.cpp              |  20 ++++-
 preferencesdialog.cpp |   5 ++
 preferencesdialog.ui  | 197 +++++++++++++++++++++---------------------
 3 files changed, 120 insertions(+), 102 deletions(-)

diff --git a/main.cpp b/main.cpp
index e22ac762..41b409d0 100644
--- a/main.cpp
+++ b/main.cpp
@@ -79,7 +79,14 @@ int main(int argc, char *argv[])
 #endif
     QGL::setPreferredPaintEngine(QPaintEngine::OpenGL);
 
+    bool force_login_screen=false;
     QApplication a(argc, argv);
+    QStringList args=QCoreApplication::arguments();
+
+    for (int i=1;i<args.size();i++) {
+        if (args[i]=="-l") force_login_screen=true;
+    }
+
     a.setApplicationName("SleepyHead");
     initialize();
 
@@ -89,7 +96,7 @@ int main(int argc, char *argv[])
     ResmedLoader::Register();
     Profiles::Scan();
     PREF["AppName"]="SleepyHead";
-
+    bool skip_login=(!PREF.ExistsAndTrue("SkipLoginScreen")) || force_login_screen;
 
     QString Version=QString("%1.%2.%3").arg(major_version).arg(minor_version).arg(revision_number);
 
@@ -132,9 +139,14 @@ int main(int argc, char *argv[])
                 check_updates=false;
             }
         }
-        ProfileSelect profsel(0);
-        if (profsel.exec()==ProfileSelect::Rejected) {
-            exit(1);
+        if (skip_login) {
+            p_profile=Profiles::Get(PREF["Profile"].toString());
+        } else p_profile=NULL;
+        if (p_profile) {
+            ProfileSelect profsel(0);
+            if (profsel.exec()==ProfileSelect::Rejected) {
+                exit(1);
+            }
         }
     }
     PREF["VersionString"]=Version;
diff --git a/preferencesdialog.cpp b/preferencesdialog.cpp
index 7a78a4d2..2db64e7a 100644
--- a/preferencesdialog.cpp
+++ b/preferencesdialog.cpp
@@ -81,6 +81,9 @@ PreferencesDialog::PreferencesDialog(QWidget *parent,Profile * _profile) :
     if (!PREF.Exists("Updates_AutoCheck")) PREF["Updates_AutoCheck"]=true;
     ui->automaticallyCheckUpdates->setChecked(PREF["Updates_AutoCheck"].toBool());
 
+    if (!PREF.Exists("SkipLoginScreen")) PREF["SkipLoginScreen"]=false;
+    ui->skipLoginScreen->setChecked(PREF["SkipLoginScreen"].toBool());
+
     if (!PREF.Exists("Updates_CheckFrequency")) PREF["Updates_CheckFrequency"]=3;
     ui->updateCheckEvery->setValue(PREF["Updates_CheckFrequency"].toInt());
     if (PREF.Exists("Updates_LastChecked")) {
@@ -213,6 +216,8 @@ void PreferencesDialog::Save()
     (*profile)["SyncOximetry"]=ui->oximetrySync->isChecked();
     (*profile)["OximeterType"]=ui->oximetryType->currentText();
 
+    PREF["SkipLoginScreen"]=ui->skipLoginScreen->isChecked();
+
     (*profile)["EventWindowSize"]=ui->eventWindowSlider->value();
 
     if (ui->squareWavePlots->isChecked() != (*profile)["SquareWavePlots"].toBool()) {
diff --git a/preferencesdialog.ui b/preferencesdialog.ui
index e4d9fe5d..4932c955 100644
--- a/preferencesdialog.ui
+++ b/preferencesdialog.ui
@@ -9,7 +9,7 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>500</width>
+    <width>599</width>
     <height>330</height>
    </rect>
   </property>
@@ -179,40 +179,6 @@ This takes extra space, and has been known to cause problems on certain computer
          </property>
         </widget>
        </item>
-       <item row="9" column="2">
-        <widget class="QCheckBox" name="useMultithreading">
-         <property name="sizePolicy">
-          <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-           <horstretch>0</horstretch>
-           <verstretch>0</verstretch>
-          </sizepolicy>
-         </property>
-         <property name="toolTip">
-          <string>You may need to disable this if your experiencing crashes.
-It has no effect on single cpu machines.</string>
-         </property>
-         <property name="text">
-          <string>Use Multi-Threading</string>
-         </property>
-        </widget>
-       </item>
-       <item row="10" column="2">
-        <widget class="QCheckBox" name="skipEmptyDays">
-         <property name="toolTip">
-          <string>Skip empty days with Prev &amp; Next buttons above daily view calendar</string>
-         </property>
-         <property name="text">
-          <string>Skip Empty Days</string>
-         </property>
-        </widget>
-       </item>
-       <item row="11" column="2">
-        <widget class="QCheckBox" name="squareWavePlots">
-         <property name="text">
-          <string>Square Wave Plots</string>
-         </property>
-        </widget>
-       </item>
        <item row="2" column="0">
         <widget class="QLabel" name="label_24">
          <property name="text">
@@ -265,6 +231,23 @@ It has no effect on single cpu machines.</string>
          </item>
         </layout>
        </item>
+       <item row="9" column="2">
+        <widget class="QCheckBox" name="squareWavePlots">
+         <property name="text">
+          <string>Square Wave Plots</string>
+         </property>
+        </widget>
+       </item>
+       <item row="12" column="2">
+        <widget class="QCheckBox" name="skipEmptyDays">
+         <property name="toolTip">
+          <string>Skip empty days with Prev &amp; Next buttons above daily view calendar</string>
+         </property>
+         <property name="text">
+          <string>Skip Empty Days</string>
+         </property>
+        </widget>
+       </item>
       </layout>
      </widget>
      <widget class="QWidget" name="sessionTab">
@@ -648,19 +631,6 @@ p, li { white-space: pre-wrap; }
             </property>
            </widget>
           </item>
-          <item row="2" column="0">
-           <widget class="QLabel" name="label_11">
-            <property name="sizePolicy">
-             <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
-              <horstretch>0</horstretch>
-              <verstretch>0</verstretch>
-             </sizepolicy>
-            </property>
-            <property name="text">
-             <string>Graph Text</string>
-            </property>
-           </widget>
-          </item>
           <item row="2" column="1">
            <widget class="QFontComboBox" name="graphFont"/>
           </item>
@@ -677,19 +647,6 @@ p, li { white-space: pre-wrap; }
             </property>
            </widget>
           </item>
-          <item row="3" column="0">
-           <widget class="QLabel" name="label_12">
-            <property name="sizePolicy">
-             <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
-              <horstretch>0</horstretch>
-              <verstretch>0</verstretch>
-             </sizepolicy>
-            </property>
-            <property name="text">
-             <string>Graph Titles</string>
-            </property>
-           </widget>
-          </item>
           <item row="3" column="1">
            <widget class="QFontComboBox" name="titleFont"/>
           </item>
@@ -706,29 +663,9 @@ p, li { white-space: pre-wrap; }
             </property>
            </widget>
           </item>
-          <item row="4" column="0">
-           <widget class="QLabel" name="label_13">
-            <property name="text">
-             <string>Big  Text</string>
-            </property>
-           </widget>
-          </item>
           <item row="4" column="1">
            <widget class="QFontComboBox" name="bigFont"/>
           </item>
-          <item row="4" column="2">
-           <widget class="QSpinBox" name="bigFontSize">
-            <property name="minimum">
-             <number>6</number>
-            </property>
-            <property name="maximum">
-             <number>72</number>
-            </property>
-            <property name="value">
-             <number>18</number>
-            </property>
-           </widget>
-          </item>
           <item row="1" column="4">
            <widget class="QCheckBox" name="applicationFontItalic">
             <property name="sizePolicy">
@@ -917,6 +854,52 @@ p, li { white-space: pre-wrap; }
             </property>
            </widget>
           </item>
+          <item row="2" column="0">
+           <widget class="QLabel" name="label_11">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="text">
+             <string>Graph Text</string>
+            </property>
+           </widget>
+          </item>
+          <item row="3" column="0">
+           <widget class="QLabel" name="label_12">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="text">
+             <string>Graph Titles</string>
+            </property>
+           </widget>
+          </item>
+          <item row="4" column="0">
+           <widget class="QLabel" name="label_13">
+            <property name="text">
+             <string>Big  Text</string>
+            </property>
+           </widget>
+          </item>
+          <item row="4" column="2">
+           <widget class="QSpinBox" name="bigFontSize">
+            <property name="minimum">
+             <number>6</number>
+            </property>
+            <property name="maximum">
+             <number>72</number>
+            </property>
+            <property name="value">
+             <number>18</number>
+            </property>
+           </widget>
+          </item>
          </layout>
         </widget>
        </item>
@@ -1015,26 +998,11 @@ p, li { white-space: pre-wrap; }
        </item>
       </layout>
      </widget>
-     <widget class="QWidget" name="tab">
+     <widget class="QWidget" name="updatesTab">
       <attribute name="title">
-       <string>&amp;Updates</string>
+       <string>&amp;General</string>
       </attribute>
       <layout class="QVBoxLayout" name="verticalLayout_7">
-       <property name="spacing">
-        <number>0</number>
-       </property>
-       <property name="leftMargin">
-        <number>4</number>
-       </property>
-       <property name="topMargin">
-        <number>0</number>
-       </property>
-       <property name="rightMargin">
-        <number>0</number>
-       </property>
-       <property name="bottomMargin">
-        <number>0</number>
-       </property>
        <item>
         <widget class="QGroupBox" name="automaticallyCheckUpdates">
          <property name="sizePolicy">
@@ -1200,6 +1168,39 @@ p, li { white-space: pre-wrap; }
          </property>
         </widget>
        </item>
+       <item>
+        <widget class="QGroupBox" name="groupBox_2">
+         <property name="title">
+          <string>General Preferences</string>
+         </property>
+         <layout class="QVBoxLayout" name="verticalLayout_8">
+          <item>
+           <widget class="QCheckBox" name="useMultithreading">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="toolTip">
+             <string>You may need to disable this if your experiencing crashes.
+It has no effect on single cpu machines.</string>
+            </property>
+            <property name="text">
+             <string>Use Multi-Threading</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QCheckBox" name="skipLoginScreen">
+            <property name="text">
+             <string>Skip Login Screen</string>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </widget>
+       </item>
        <item>
         <spacer name="verticalSpacer_3">
          <property name="orientation">