Ticket #2240: 2240-v1.patch

File 2240-v1.patch, 6.9 KB (added by danielk, 19 years ago)
  • libs/libmythtv/channeleditor.cpp

     
    1919
    2020#include "scanwizard.h"
    2121
    22 ChannelWizard::ChannelWizard(int id)
     22ChannelWizard::ChannelWizard(int id, int default_sourceid)
    2323             : ConfigurationWizard() {
    2424    setLabel(QObject::tr("Channel Options"));
    2525
    2626    // Must be first.
    2727    addChild(cid = new ChannelID());
    2828    cid->setValue(id);
    29        
    30     ChannelOptionsCommon* common = new ChannelOptionsCommon(*cid);
     29
     30    ChannelOptionsCommon *common =
     31        new ChannelOptionsCommon(*cid, default_sourceid);
    3132    addChild(common);
    3233
    3334    int cardtypes = countCardtypes();
     
    336337void ChannelEditor::edit()
    337338{
    338339    id = list->getValue().toInt();
    339     ChannelWizard cw(id);
     340    ChannelWizard cw(id, source->getValue().toUInt());
    340341    cw.exec();
    341342
    342343    list->fillSelections();
  • libs/libmythtv/channeleditor.h

     
    3838class ChannelWizard: public ConfigurationWizard {
    3939    Q_OBJECT
    4040public:
    41     ChannelWizard(int id);
     41    ChannelWizard(int id, int default_sourceid);
    4242    QString getCardtype();
    4343    bool cardTypesInclude(const QString& cardtype);
    4444    int countCardtypes();
  • libs/libmythtv/channelsettings.cpp

     
    4242    };
    4343};
    4444
    45 class Source: public ComboBoxSetting, public CSetting {
    46 public:
    47     Source(const ChannelID& id):
    48         ComboBoxSetting(), CSetting(id, "sourceid") {
     45class Source: public ComboBoxSetting, public CSetting
     46{
     47  public:
     48    Source(const ChannelID &id, uint _default_sourceid) :
     49        ComboBoxSetting(), CSetting(id, "sourceid"),
     50        default_sourceid(_default_sourceid)
     51    {
    4952        setLabel(QObject::tr("Video Source"));
    5053    };
    5154
    52     void load() {
     55    void load(void)
     56    {
    5357        fillSelections();
    5458        CSetting::load();
     59
     60        if (default_sourceid && !getValue().toUInt())
     61        {
     62            uint which = sourceid_to_index[default_sourceid];
     63            if (which)
     64                setValue(which);
     65        }
    5566    };
    5667
    57     void fillSelections()
     68    void fillSelections(void)
    5869    {
    5970        addSelection(QObject::tr("[Not Selected]"), "0");
    6071
    6172        MSqlQuery query(MSqlQuery::InitCon());
    62         query.prepare("SELECT name, sourceid FROM videosource");
     73        query.prepare("SELECT name, sourceid "
     74                      "FROM videosource "
     75                      "ORDER BY sourceid");
    6376       
    64         if (query.exec() && query.isActive() && query.size() > 0)
    65             while(query.next())
     77        if (!query.exec() || !query.isActive())
     78        {
     79            MythContext::DBError("Source::fillSelections", query);
     80        }
     81        else
     82        {
     83            for (uint i = 1; query.next(); i++)
     84            {
     85                sourceid_to_index[query.value(1).toUInt()] = i;
    6686                addSelection(query.value(0).toString(),
    6787                             query.value(1).toString());
     88            }
     89        }
     90
     91        sourceid_to_index[0] = 0; // Not selected entry.
    6892    };
     93
     94  private:
     95    uint            default_sourceid;
     96    QMap<uint,uint> sourceid_to_index;
    6997};
    7098
    7199class Callsign: public LineEditSetting, public CSetting {
     
    265293    };
    266294};
    267295
    268 ChannelOptionsCommon::ChannelOptionsCommon(const ChannelID& id) :
    269     ConfigurationGroup(false, true, false, false),
     296ChannelOptionsCommon::ChannelOptionsCommon(const ChannelID &id,
     297                                           uint default_sourceid) :
     298    ConfigurationGroup(        false, true, false, false),
    270299    VerticalConfigurationGroup(false, true, false, false)
    271300{
    272301    setLabel(QObject::tr("Channel Options - Common"));
     
    274303
    275304    addChild(new Name(id));
    276305
    277     Source *source;
     306    Source *source = new Source(id, default_sourceid);
    278307
    279     HorizontalConfigurationGroup* group1 = new HorizontalConfigurationGroup(false,true);
     308    HorizontalConfigurationGroup *group1 =
     309        new HorizontalConfigurationGroup(false, true);
     310    HorizontalConfigurationGroup *lefthoz =
     311        new HorizontalConfigurationGroup(false, true);
     312    HorizontalConfigurationGroup *bottomhoz =
     313        new HorizontalConfigurationGroup(false, true);
     314    VerticalConfigurationGroup *left =
     315        new VerticalConfigurationGroup(false, true);
     316    VerticalConfigurationGroup *right =
     317        new VerticalConfigurationGroup(false, true);
    280318
    281     VerticalConfigurationGroup* left = new VerticalConfigurationGroup(false,true);
     319    lefthoz->addChild(new Visible(id));
     320    lefthoz->addChild(new CommFree(id));
     321
    282322    left->addChild(new Channum(id));
    283323    left->addChild(new Callsign(id));
    284 
    285     HorizontalConfigurationGroup *lefthoz = new HorizontalConfigurationGroup(false,true);
    286 
    287     lefthoz->addChild(new Visible(id));
    288     lefthoz->addChild(new CommFree(id));
    289324    left->addChild(lefthoz);
    290     group1->addChild(left);
    291325
    292     VerticalConfigurationGroup* right = new VerticalConfigurationGroup(false, true);
    293     right->addChild(source = new Source(id));
     326    right->addChild(source);
    294327    right->addChild(new ChannelTVFormat(id));
    295328    right->addChild(new Priority(id));
     329
     330    group1->addChild(left);
    296331    group1->addChild(right);
    297332
     333    bottomhoz->addChild(onairguide = new OnAirGuide(id));
     334    bottomhoz->addChild(xmltvID = new XmltvID(id));
     335    bottomhoz->addChild(new TimeOffset(id));
     336
    298337    addChild(group1);
    299 
    300338    addChild(new Icon(id));
    301339    addChild(new VideoFilters(id));
    302340    addChild(new OutputFilters(id));
    303 
    304     HorizontalConfigurationGroup *bottomhoz =
    305         new HorizontalConfigurationGroup(false, true);
    306 
    307     bottomhoz->addChild(onairguide = new OnAirGuide(id));
    308     bottomhoz->addChild(xmltvID = new XmltvID(id));
    309     bottomhoz->addChild(new TimeOffset(id));
    310341    addChild(bottomhoz);
    311342
    312343    connect(onairguide, SIGNAL(valueChanged(     bool)),
  • libs/libmythtv/channelsettings.h

     
    106106class OnAirGuide;
    107107class XmltvID;
    108108
    109 class ChannelOptionsCommon: public VerticalConfigurationGroup {
     109class ChannelOptionsCommon: public VerticalConfigurationGroup
     110{
    110111    Q_OBJECT
    111 public:
    112     ChannelOptionsCommon(const ChannelID& id);
    113     void load();
    114 public slots:
     112
     113  public:
     114    ChannelOptionsCommon(const ChannelID &id, uint default_sourceid);
     115    void load(void);
     116
     117  public slots:
    115118    void onAirGuideChanged(bool);
    116119    void sourceChanged(const QString&);
    117120
    118 protected:
     121  protected:
    119122    OnAirGuide *onairguide;
    120123    XmltvID    *xmltvID;
    121124};