homescreenapp/hsdomainmodel/src/hsdatabase.cpp
changeset 60 30f14686fb04
parent 55 03646e8da489
child 61 2b1b11a301d2
equal deleted inserted replaced
55:03646e8da489 60:30f14686fb04
    47         }
    47         }
    48         return vlist;
    48         return vlist;
    49     }
    49     }
    50 }
    50 }
    51 
    51 
       
    52 
       
    53 /*!
       
    54     \class HsDatabase
       
    55     \ingroup group_hsdomainmodel
       
    56     \brief 
       
    57 */
       
    58 
    52 /*!
    59 /*!
    53     Constructs a new database with the given \a parent object.
    60     Constructs a new database with the given \a parent object.
    54 */
    61 */
    55 HsDatabase::HsDatabase(QObject *parent)
    62 HsDatabase::HsDatabase(QObject *parent)
    56   : QObject(parent)
    63   : QObject(parent)
   183     }
   190     }
   184 
   191 
   185     QSqlQuery query(QSqlDatabase::database(mConnectionName));
   192     QSqlQuery query(QSqlDatabase::database(mConnectionName));
   186 
   193 
   187     QString statement =
   194     QString statement =
   188         "SELECT id, portraitWallpaper, landscapeWallpaper "
   195         "SELECT id "
   189         "FROM Scene";
   196         "FROM Scene";
   190     
   197     
   191     if (query.prepare(statement) && query.exec() && query.next()) {        
   198     if (query.prepare(statement) && query.exec() && query.next()) {        
   192         data.id                  = query.value(0).toInt();
   199         data.id = query.value(0).toInt();        
   193         data.portraitWallpaper   = query.value(1).toString();
       
   194         data.landscapeWallpaper  = query.value(2).toString();
       
   195         return true;
   200         return true;
   196     }
   201     }
   197     
   202     
   198     return false;
   203     return false;    
   199 }
       
   200 
       
   201 /*!
       
   202 
       
   203 */
       
   204 bool HsDatabase::updateScene(const HsSceneData &data)
       
   205 {
       
   206     if (!checkConnection()) {
       
   207         return false;
       
   208     }
       
   209 
       
   210     QSqlQuery query(QSqlDatabase::database(mConnectionName));
       
   211 
       
   212     QString statement =
       
   213         "UPDATE Scene "
       
   214         "SET portraitWallpaper = ?, landscapeWallpaper = ? "
       
   215         "WHERE id = ?";
       
   216 
       
   217     if (query.prepare(statement)) {
       
   218         query.addBindValue(data.portraitWallpaper);
       
   219         query.addBindValue(data.landscapeWallpaper);    
       
   220         query.addBindValue(data.id);
       
   221         return  query.exec();
       
   222     }
       
   223     
       
   224     return false;
       
   225 }
   204 }
   226 
   205 
   227 /*!
   206 /*!
   228 
   207 
   229 */
   208 */
   758     }
   737     }
   759 
   738 
   760     return true;
   739     return true;
   761 }
   740 }
   762 
   741 
   763 /*!
   742 bool HsDatabase::configuration(QVariantHash &configuration)
   764 
   743 {
   765 */
   744     if (!checkConnection()) {
   766 bool HsDatabase::generalConfiguration(HsGeneralConfiguration &data)
   745         return false;
   767 {
   746     }
   768     if (!checkConnection()) {
   747 
   769         return false;
   748     QSqlQuery query(QSqlDatabase::database(mConnectionName));
   770     }
   749 
   771 
   750     QString statement =
   772     QSqlQuery query(QSqlDatabase::database(mConnectionName));
   751         "SELECT key, value "
   773 
   752         "FROM Configuration";
   774     QString statement =
   753 
   775         "SELECT bounceEffect, tapAndHoldDistance, widgetTapAndHoldTimeout, sceneTapAndHoldTimeout, "
   754     if (query.prepare(statement) && query.exec()) {
   776         "pageChangeZoneWidth, "
   755         configuration.clear();
   777         "pageIndicatorSpacing, pageChangeAnimationDuration, pageChangeZoneAnimationDuration, "
   756         while (query.next()) {
   778         "pageChangeZoneReverseAnimationDuration, "
   757             configuration.insert(query.value(0).toString(), 
   779         "pageRemovedAnimationDuration, newPageAddedAnimationDuration, widgetDragEffectDuration, "
   758                                  query.value(1));
   780         "widgetDropEffectDuration, boundaryFeedbackEffectDistance, "
   759         }
   781         "defaultPageId, maximumPageCount, maximumWidgetHeight, maximumWidgetWidth, "
       
   782         "minimumWidgetHeight, minimumWidgetWidth, shortcutLabelsVisible,  "
       
   783         "pageChangePanDistance "
       
   784         "FROM GeneralConfiguration";
       
   785 
       
   786     if (query.prepare(statement) && query.exec() && query.next()) {        
       
   787         data.bounceEffect                           = query.value(0).toInt();
       
   788         data.tapAndHoldDistance                     = query.value(1).toReal();
       
   789         data.widgetTapAndHoldTimeout                = query.value(2).toInt();
       
   790         data.sceneTapAndHoldTimeout                 = query.value(3).toInt();
       
   791         data.pageChangeZoneWidth                    = query.value(4).toReal();
       
   792         data.pageIndicatorSpacing                   = query.value(5).toReal();
       
   793         data.pageChangeAnimationDuration            = query.value(6).toInt();
       
   794         data.pageChangeZoneAnimationDuration        = query.value(7).toInt();
       
   795         data.pageChangeZoneReverseAnimationDuration = query.value(8).toInt();
       
   796         data.pageRemovedAnimationDuration           = query.value(9).toInt();
       
   797         data.newPageAddedAnimationDuration          = query.value(10).toInt();
       
   798         data.widgetDragEffectDuration               = query.value(11).toInt();
       
   799         data.widgetDropEffectDuration               = query.value(12).toInt();
       
   800         data.boundaryFeedbackEffectDistance         = query.value(13).toInt();
       
   801         data.defaultPageId                          = query.value(14).toInt();
       
   802         data.maximumPageCount                       = query.value(15).toInt();
       
   803         data.maximumWidgetHeight                    = query.value(16).toReal();
       
   804         data.maximumWidgetWidth                     = query.value(17).toReal();
       
   805         data.minimumWidgetHeight                    = query.value(18).toReal();
       
   806         data.minimumWidgetWidth                     = query.value(19).toReal();
       
   807         data.shortcutLabelsVisible                  = query.value(20).toBool();
       
   808         data.pageChangePanDistance                  = query.value(21).toReal();
       
   809         return true;
   760         return true;
   810     }
   761     }
   811     
   762 
   812     return false;
       
   813 }
       
   814 
       
   815 /*!
       
   816 
       
   817 */
       
   818 bool HsDatabase::feedbackConfiguration(HsFeedbackConfiguration &data)
       
   819 {
       
   820     if (!checkConnection()) {
       
   821         return false;
       
   822     }
       
   823 
       
   824     QSqlQuery query(QSqlDatabase::database(mConnectionName));
       
   825 
       
   826     QString statement =
       
   827         "SELECT pageChangeFeedbackType, widgetPickFeedbackType, widgetDropFeedbackType,  "
       
   828         "widgetRepositionFeedbackType, widgetOverTrashbinFeedbackType, widgetDropToTrashbinFeedbackType,  "
       
   829         "shortcutWidgetTapFeedbackType, widgetMoveBlockedFeedbackType, clockWidgetTapFeedbackType, "
       
   830         "widgetSnappingFeedbackType "
       
   831         "FROM FeedbackConfiguration";
       
   832 
       
   833     if (query.prepare(statement) && query.exec() && query.next()) {        
       
   834         data.pageChangeFeedbackType           = data.feedbackFromString(query.value(0).toString());
       
   835         data.widgetPickFeedbackType           = data.feedbackFromString(query.value(1).toString());
       
   836         data.widgetDropFeedbackType           = data.feedbackFromString(query.value(2).toString());
       
   837         data.widgetRepositionFeedbackType     = data.feedbackFromString(query.value(3).toString());
       
   838         data.widgetOverTrashbinFeedbackType   = data.feedbackFromString(query.value(4).toString());
       
   839         data.widgetDropToTrashbinFeedbackType = data.feedbackFromString(query.value(5).toString());
       
   840         data.shortcutWidgetTapFeedbackType    = data.feedbackFromString(query.value(6).toString());
       
   841         data.widgetMoveBlockedFeedbackType    = data.feedbackFromString(query.value(7).toString());
       
   842         data.clockWidgetTapFeedbackType       = data.feedbackFromString(query.value(8).toString());
       
   843         data.widgetSnappingFeedbackType       = data.feedbackFromString(query.value(9).toString());
       
   844         return true;
       
   845     }
       
   846     
       
   847     return false;
       
   848 }
       
   849 
       
   850 bool HsDatabase::snapConfiguration(HsSnapConfiguration &data)
       
   851 {   
       
   852     if (!checkConnection()) {
       
   853         return false;
       
   854     }
       
   855 
       
   856     QSqlQuery query(QSqlDatabase::database(mConnectionName));
       
   857 
       
   858     QString statement =
       
   859         "SELECT snappingEnabled, snapForce, snapGap, borderGap, timeout "
       
   860         "FROM SnapConfiguration";
       
   861 
       
   862     if (query.prepare(statement) && query.exec() && query.next()) {
       
   863         data.snappingEnabled = query.value(0).toBool();
       
   864         data.snapForce = query.value(1).toReal();
       
   865         data.snapGap   = query.value(2).toReal();
       
   866         data.borderGap = query.value(3).toReal();
       
   867         data.timeout   = query.value(4).toInt();
       
   868         return true;
       
   869     }
       
   870     return false;
   763     return false;
   871 }
   764 }
   872 
   765 
   873 /*!
   766 /*!
   874     Sets the database instance. The existing instance
   767     Sets the database instance. The existing instance