[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kstars/filtermanager] kstars/auxiliary: Update database table for filters
From:       Jasem Mutlaq <null () kde ! org>
Date:       2017-09-30 19:55:50
Message-ID: E1dyNra-0002Vj-W9 () code ! kde ! org
[Download RAW message or body]

Git commit 7745ac0418c038072bda4eb4c24e0290357678eb by Jasem Mutlaq.
Committed on 30/09/2017 at 19:48.
Pushed by mutlaqja into branch 'filtermanager'.

Update database table for filters

M  +51   -58   kstars/auxiliary/ksuserdb.cpp
M  +4    -4    kstars/auxiliary/ksuserdb.h

https://commits.kde.org/kstars/7745ac0418c038072bda4eb4c24e0290357678eb

diff --git a/kstars/auxiliary/ksuserdb.cpp b/kstars/auxiliary/ksuserdb.cpp
index aefcfa2ef..b0886699c 100644
--- a/kstars/auxiliary/ksuserdb.cpp
+++ b/kstars/auxiliary/ksuserdb.cpp
@@ -259,48 +259,24 @@ bool KSUserDB::Initialize()
                 }
             }
 
-            // If prior to 2.8.3 drop filters if invalid
-            if (currentDBVersion < "2.8.3")
-            {
-                QSqlQuery query(userdb_);
-                if (!query.exec("PRAGMA table_info(filter)"))
-                    qCWarning(KSTARS) << query.lastError();
-                else
-                {
-                    bool validTable = false;
-                    while (query.next())
-                    {
-                        if (query.value(1) == "Exposure")
-                        {
-                            validTable = true;
-                            break;
-                        }
-                    }
-
-                    if (validTable == false)
-                    {
-                        qCWarning(KSTARS) << "Detected invalid filter table, \
                re-creating...";
-                        if (!query.exec("DROP table filter"))
-                            qCWarning(KSTARS) << query.lastError();
-                        if (!query.exec("CREATE TABLE filter ( "
-                                   "id INTEGER DEFAULT NULL PRIMARY KEY \
                AUTOINCREMENT, "
-                                   "Vendor TEXT DEFAULT NULL, "
-                                   "Model TEXT DEFAULT NULL, "
-                                   "Type TEXT DEFAULT NULL, "
-                                   "Offset TEXT DEFAULT NULL, "
-                                   "Color TEXT DEFAULT NULL,"
-                                   "Exposure TEXT DEFAULT '1')"))
-                            qCWarning(KSTARS) << query.lastError();
-                    }
-                }
-            }
-
             // If prior to 2.8.5 extend filters table
             if (currentDBVersion < "2.8.5")
             {
                 QSqlQuery query(userdb_);
 
-                if (query.exec("ALTER TABLE filter ADD COLUMN LockedFilter TEXT \
DEFAULT '--', UseAutoFocus INTEGER DEFAULT 0")) +                qCWarning(KSTARS) << \
"Detected old format filter table, re-creating..."; +                if \
(!query.exec("DROP table filter")) +                    qCWarning(KSTARS) << \
query.lastError(); +                if (!query.exec("CREATE TABLE filter ( "
+                           "id INTEGER DEFAULT NULL PRIMARY KEY AUTOINCREMENT, "
+                           "Vendor TEXT DEFAULT NULL, "
+                           "Model TEXT DEFAULT NULL, "
+                           "Type TEXT DEFAULT NULL, "
+                           "Color TEXT DEFAULT NULL,"
+                           "Exposure REAL DEFAULT 1.0,"
+                           "Offset INTEGER DEFAULT 0,"
+                           "UseAutoFocus INTEGER DEFAULT 0,"
+                           "LockedFilter TEXT DEFAULT '--')"))
                     qCWarning(KSTARS) << query.lastError();
             }
         }
@@ -1036,16 +1012,30 @@ void KSUserDB::GetAllLenses(QList<OAL::Lens *> &lens_list)
 /*
  *  filter section
  */
-void KSUserDB::AddFilter(const QString &vendor, const QString &model, const QString \
                &type, const QString &offset,
-                         const QString &color, const QString &exposure, const \
QString &lockedFilter, bool useAutoFocus) +void KSUserDB::AddFilter(const QString \
&vendor, const QString &model, const QString &type, const QString &color, +           \
int offset, double exposure, bool useAutoFocus, const QString &lockedFilter)  {
     userdb_.open();
     QSqlTableModel equip(nullptr, userdb_);
     equip.setTable("filter");
 
-    int row = 0;
+    QSqlRecord record = equip.record();
+    record.setValue("Vendor", vendor);
+    record.setValue("Model", model);
+    record.setValue("Type", type);
+    record.setValue("Color", color);
+    record.setValue("Offset", offset);
+    record.setValue("Exposure", exposure);
+    record.setValue("UseAutoFocus", useAutoFocus ? 1 : 0);
+    record.setValue("LockedFilter", lockedFilter);
+
+    if (equip.insertRecord(-1, record) == false)
+        qCritical() << __FUNCTION__ << equip.lastError();
+
+
+    /*int row = 0;
     equip.insertRows(row, 1);
-    equip.setData(equip.index(row, 1), vendor); // row,0 is autoincerement ID
+    equip.setData(equip.index(row, 1), vendor);
     equip.setData(equip.index(row, 2), model);
     equip.setData(equip.index(row, 3), type);
     equip.setData(equip.index(row, 4), offset);
@@ -1053,6 +1043,7 @@ void KSUserDB::AddFilter(const QString &vendor, const QString \
&model, const QStr  equip.setData(equip.index(row, 6), exposure);
     equip.setData(equip.index(row, 7), lockedFilter);
     equip.setData(equip.index(row, 8), useAutoFocus ? 1 : 0);
+    */
     if (equip.submitAll() == false)
         qCritical() << "AddFilter:" << equip.lastError();
 
@@ -1060,8 +1051,8 @@ void KSUserDB::AddFilter(const QString &vendor, const QString \
&model, const QStr  userdb_.close();
 }
 
-void KSUserDB::AddFilter(const QString &vendor, const QString &model, const QString \
                &type, const QString &offset,
-                         const QString &color, const QString &exposure, const \
QString &lockedFilter, bool useAutoFocus, const QString &id) +void \
KSUserDB::AddFilter(const QString &vendor, const QString &model, const QString &type, \
const QString &color, +                         int offset, double exposure, bool \
useAutoFocus, const QString &lockedFilter, const QString &id)  {
     userdb_.open();
     QSqlTableModel equip(nullptr, userdb_);
@@ -1072,14 +1063,14 @@ void KSUserDB::AddFilter(const QString &vendor, const QString \
&model, const QStr  if (equip.rowCount() > 0)
     {
         QSqlRecord record = equip.record(0);
-        record.setValue(1, vendor);
-        record.setValue(2, model);
-        record.setValue(3, type);
-        record.setValue(4, offset);
-        record.setValue(5, color);
-        record.setValue(6, exposure);
-        record.setValue(7, lockedFilter);
-        record.setValue(8, useAutoFocus ? 1 : 0);
+        record.setValue("Vendor", vendor);
+        record.setValue("Model", model);
+        record.setValue("Type", type);
+        record.setValue("Color", color);
+        record.setValue("Offset", offset);
+        record.setValue("Exposure", exposure);
+        record.setValue("UseAutoFocus", useAutoFocus ? 1 : 0);
+        record.setValue("LockedFilter", lockedFilter);
         equip.setRecord(0, record);
         if (equip.submitAll() == false)
             qCritical() << "AddFilter:" << equip.lastError();
@@ -1104,11 +1095,11 @@ void KSUserDB::GetAllFilters(QList<OAL::Filter *> \
&filter_list)  QString model     = record.value("Model").toString();
         QString type      = record.value("Type").toString();
         QString color     = record.value("Color").toString();
-        QString offset    = record.value("Offset").toString();
-        QString exposure  = record.value("Exposure").toString();
+        int offset        = record.value("Offset").toInt();
+        double exposure   = record.value("Exposure").toDouble();
         QString lockedFilter  = record.value("LockedFilter").toString();
         bool useAutoFocus = record.value("UseAutoFocus").toInt() == 1;
-        OAL::Filter *o    = new OAL::Filter(id, model, vendor, type, offset, color, \
exposure, lockedFilter, useAutoFocus); +        OAL::Filter *o    = new \
OAL::Filter(id, model, vendor, type, color, exposure, offset, useAutoFocus, \
lockedFilter);  filter_list.append(o);
     }
 
@@ -1460,7 +1451,9 @@ void KSUserDB::readLens()
 
 void KSUserDB::readFilter()
 {
-    QString model, vendor, type, offset, color, exposure, lockedFilter;
+    QString model, vendor, type, color, lockedFilter;
+    int offset = 0;
+    double exposure = 1.0;
     bool useAutoFocus;
     while (!reader_->atEnd())
     {
@@ -1485,7 +1478,7 @@ void KSUserDB::readFilter()
             }
             else if (reader_->name() == "offset")
             {
-                offset = reader_->readElementText();
+                offset = reader_->readElementText().toInt();
             }
             else if (reader_->name() == "color")
             {
@@ -1493,7 +1486,7 @@ void KSUserDB::readFilter()
             }
             else if (reader_->name() == "exposure")
             {
-                exposure = reader_->readElementText();
+                exposure = reader_->readElementText().toDouble();
             }
             else if (reader_->name() == "lockedFilter")
             {
@@ -1505,7 +1498,7 @@ void KSUserDB::readFilter()
             }
         }
     }
-    AddFilter(vendor, model, type, offset, color, exposure, lockedFilter, \
useAutoFocus); +    AddFilter(vendor, model, type, color, offset, exposure, \
useAutoFocus, lockedFilter);  }
 
 QList<ArtificialHorizonEntity *> KSUserDB::GetAllHorizons()
diff --git a/kstars/auxiliary/ksuserdb.h b/kstars/auxiliary/ksuserdb.h
index f3088eb27..35a8dcac6 100644
--- a/kstars/auxiliary/ksuserdb.h
+++ b/kstars/auxiliary/ksuserdb.h
@@ -271,15 +271,15 @@ class KSUserDB
      *
      * @return void
      **/
-    void AddFilter(const QString &vendor, const QString &model, const QString &type, \
                const QString &offset,
-                   const QString &color, const QString &exposure, const QString \
&lockedFilter, bool useAutoFocus); +    void AddFilter(const QString &vendor, const \
QString &model, const QString &type, const QString &color, +                          \
int offset, double exposure, bool useAutoFocus, const QString &lockedFilter);  /**
      * @brief Replace a filter at given ID with new content
      *
      * @return void
      **/
-    void AddFilter(const QString &vendor, const QString &model, const QString &type, \
                const QString &offset,
-                   const QString &color, const QString &exposure, const QString \
&lockedFilter, bool useAutoFocus, const QString &id); +    void AddFilter(const \
QString &vendor, const QString &model, const QString &type, const QString &color, +   \
int offset, double exposure, bool useAutoFocus, const QString &lockedFilter, const \
QString &id);  #ifndef KSTARS_LITE
     /**
      * @brief Populate the reference passed with all filters


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic