Ticket #6457: SG-Preferences.diff

File SG-Preferences.diff, 4.2 KB (added by robert.mcnamara@…, 16 years ago)

Patch for SG Directory Preferences

  • mythtv/libs/libmythtv/dbcheck.cpp

     
    1818#define MINIMUM_DBMS_VERSION 5,0,15
    1919
    2020/// This is the DB schema version expected by the running MythTV instance.
    21 const QString currentDatabaseVersion = "1232";
     21const QString currentDatabaseVersion = "1233";
    2222
    2323static bool UpdateDBVersionNumber(const QString &newnumber);
    2424static bool performActualUpdate(
     
    44584458        if (!performActualUpdate(updates, "1232", dbver)) 
    44594459            return false; 
    44604460    }   
     4461    if (dbver == "1232")
     4462    {
     4463        const char *updates[] = {
     4464"CREATE TABLE storagemetadata ("
     4465"  groupname VARCHAR( 32 ) NOT NULL ,"
     4466"  dirname VARCHAR( 255 ) NOT NULL ,"
     4467"  subdir VARCHAR( 255 ) NOT NULL ,"
     4468"  value VARCHAR( 255 ) NOT NULL ,"
     4469"  data TEXT NOT NULL"
     4470");",
     4471NULL
     4472};
     4473        if (!performActualUpdate(updates, "1233", dbver))
     4474            return false;
     4475    }
    44614476
    44624477    return true;
    44634478}
  • mythtv/libs/libmyth/storagegroup.cpp

     
    464464    return groups;
    465465}
    466466
     467QString StorageGroup::getSGSetting(QString groupname, QString dirname,
     468                                QString value, QString subdir = "")
     469{
     470    QString ret;
    467471
     472    MSqlQuery query(MSqlQuery::InitCon());
     473
     474    QString sql = QString("SELECT data FROM storagemetadata "
     475                  "WHERE groupname = :GROUPNAME AND "
     476                  "dirname = :DIRNAME AND "
     477                  "subdir = :SUBDIR AND "
     478                  "value = :VALUE");
     479
     480    query.prepare(sql);
     481    query.bindValue(":GROUPNAME", groupname);
     482    query.bindValue(":DIRNAME", dirname);
     483    query.bindValue(":SUBDIR", subdir);
     484    query.bindValue(":VALUE", value);
     485
     486    if (query.exec() && query.isActive() && query.size() > 0)
     487        ret = query.value(0).toString();
     488
     489    return ret;
     490}
     491
     492void StorageGroup::setSGSetting(QString groupname, QString dirname,
     493                                   QString value, QString data,
     494                                   QString subdir = "")
     495{
     496
     497    QString drop = QString("DELETE FROM storagemetadata WHERE "
     498                   "groupname = :GROUPNAME AND "
     499                   "dirname = :DIRNAME AND "
     500                   "subdir = :SUBDIR AND "
     501                   "value = :VALUE");
     502
     503    MSqlQuery remove(MSqlQuery::InitCon());
     504
     505    remove.prepare(drop);
     506    remove.bindValue(":GROUPNAME", groupname);
     507    remove.bindValue(":DIRNAME", dirname);
     508    remove.bindValue(":SUBDIR", subdir);
     509    remove.bindValue(":VALUE", value);
     510
     511    if (!remove.exec())
     512        MythDB::DBError("StorageGroup::setSGSetting", remove);
     513
     514    MSqlQuery query(MSqlQuery::InitCon());
     515
     516    QString sql = QString("INSERT INTO storagemetadata "
     517                  "(groupname, dirname, subdir, value, data) "
     518                  "VALUES (:GROUPNAME, :DIRNAME, :SUBDIR, "
     519                  ":VALUE, :DATA)");
     520
     521    query.prepare(sql);
     522    query.bindValue(":GROUPNAME", groupname);
     523    query.bindValue(":DIRNAME", dirname);
     524    query.bindValue(":SUBDIR", subdir);
     525    query.bindValue(":VALUE", value);
     526    query.bindValue(":DATA", data);
     527
     528    if (!query.exec())
     529        MythDB::DBError("StorageGroup::setSGSetting", query);
     530}
     531
    468532/****************************************************************************/
    469533typedef enum {
    470534    SGPopup_OK = 0,
  • mythtv/libs/libmyth/storagegroup.h

     
    3636
    3737    static QStringList getRecordingsGroups(void);
    3838    static QStringList getGroupDirs(QString groupname, QString host);
     39    QString getSGSetting(QString groupname, QString dirname,
     40                         QString value, QString subdir);
     41    void setSGSetting(QString groupname, QString dirname,
     42                      QString value, QString data,
     43                      QString subdir);
    3944
     45
    4046  private:
    4147    QString      m_groupname;
    4248    QString      m_hostname;