QTfrontend/pagetraining.cpp
changeset 6042 8b5345758f62
parent 6009 14f6fc9869f2
child 6048 ae213ef7030a
equal deleted inserted replaced
6040:a740069c21e3 6042:8b5345758f62
    21 #include <QComboBox>
    21 #include <QComboBox>
    22 
    22 
    23 #include "pagetraining.h"
    23 #include "pagetraining.h"
    24 #include "hwconsts.h"
    24 #include "hwconsts.h"
    25 
    25 
    26 PageTraining::PageTraining(QWidget* parent) : AbstractPage(parent)
    26 QLayout * PageTraining::bodyLayoutDefinition()
    27 {
    27 {
    28     QGridLayout * pageLayout = new QGridLayout(this);
    28     QGridLayout * pageLayout = new QGridLayout();
       
    29 
    29     pageLayout->setColumnStretch(0, 1);
    30     pageLayout->setColumnStretch(0, 1);
    30     pageLayout->setColumnStretch(1, 2);
    31     pageLayout->setColumnStretch(1, 2);
    31     pageLayout->setColumnStretch(2, 1);
    32     pageLayout->setColumnStretch(2, 1);
    32     pageLayout->setRowStretch(0, 1);
    33     pageLayout->setRowStretch(0, 1);
    33     pageLayout->setRowStretch(2, 1);
    34     pageLayout->setRowStretch(2, 1);
    34 
    35 
    35     CBSelect = new QComboBox(this);
    36     CBSelect = new QComboBox(this);
    36 
    37 
    37     QDir tmpdir;
       
    38     tmpdir.cd(cfgdir->absolutePath());
       
    39     tmpdir.cd("Data/Missions/Training");
       
    40     tmpdir.setFilter(QDir::Files);
       
    41     QStringList userlist = tmpdir.entryList(QStringList("*.lua")).replaceInStrings(QRegExp("^(.*)\\.lua"), "\\1");
       
    42     CBSelect->addItems(userlist);
       
    43 
       
    44     tmpdir.cd(datadir->absolutePath());
       
    45     tmpdir.cd("Missions/Training");
       
    46     tmpdir.setFilter(QDir::Files);
       
    47     QStringList tmplist = tmpdir.entryList(QStringList("*.lua")).replaceInStrings(QRegExp("^(.*)\\.lua"), "\\1");
       
    48     QStringList datalist;
       
    49     for (QStringList::Iterator it = tmplist.begin(); it != tmplist.end(); ++it)
       
    50         if (!userlist.contains(*it,Qt::CaseInsensitive)) datalist.append(*it);
       
    51     CBSelect->addItems(datalist);
       
    52 
       
    53     for(int i = 0; i < CBSelect->count(); i++)
       
    54     {
       
    55         CBSelect->setItemData(i, CBSelect->itemText(i));
       
    56         CBSelect->setItemText(i, CBSelect->itemText(i).replace("_", " "));
       
    57     }
       
    58 
       
    59     pageLayout->addWidget(CBSelect, 1, 1);
    38     pageLayout->addWidget(CBSelect, 1, 1);
    60     
    39     
    61     BtnStartTrain = new QPushButton(this);
    40     BtnStartTrain = new QPushButton(this);
    62     BtnStartTrain->setFont(*font14);
    41     BtnStartTrain->setFont(*font14);
    63     BtnStartTrain->setText(QPushButton::tr("Go!"));
    42     BtnStartTrain->setText(QPushButton::tr("Go!"));
    64     pageLayout->addWidget(BtnStartTrain, 1, 2);
    43     pageLayout->addWidget(BtnStartTrain, 1, 2);
    65 
    44 
       
    45     return pageLayout;
       
    46 }
    66 
    47 
    67     BtnBack = addButton(":/res/Exit.png", pageLayout, 3, 0, true);
    48 void PageTraining::connectSignals()
    68     connect(BtnBack, SIGNAL(clicked()), this, SIGNAL(goBack()));
    49 {
       
    50     //TODO
    69 }
    51 }
       
    52 
       
    53 PageTraining::PageTraining(QWidget* parent) : AbstractPage(parent)
       
    54 {
       
    55     initPage();
       
    56 
       
    57     QDir tmpdir;
       
    58     tmpdir.cd(cfgdir->absolutePath());
       
    59     tmpdir.cd("Data/Missions/Training");
       
    60     QStringList userlist = scriptList(tmpdir);
       
    61 
       
    62     tmpdir.cd(datadir->absolutePath());
       
    63     tmpdir.cd("Missions/Training");
       
    64     QStringList defaultlist = scriptList(tmpdir);
       
    65 
       
    66     CBSelect->addItems(userlist);
       
    67 
       
    68     // add only default scripts that have names different from detected user scripts
       
    69     foreach (const QString & line, defaultlist)
       
    70     {
       
    71         if (!userlist.contains(line,Qt::CaseInsensitive)) CBSelect->addItem(line);
       
    72     }
       
    73 
       
    74     // replace underscores with spaces in the displayed that
       
    75     for(int i = 0; i < CBSelect->count(); i++)
       
    76     {
       
    77         QString text = CBSelect->itemText(i);
       
    78         CBSelect->setItemData(i, text);
       
    79         CBSelect->setItemText(i, text.replace("_", " "));
       
    80 //        if (userlist.contains(text))
       
    81 //            CBSelect->setItemText(i, text + " (" + AbstractPage::tr("custom") + ")");
       
    82     }
       
    83 }
       
    84 
       
    85 QStringList PageTraining::scriptList(const QDir & scriptDir) const
       
    86 {
       
    87     QDir dir = scriptDir;
       
    88     dir.setFilter(QDir::Files);
       
    89     return dir.entryList(QStringList("*.lua")).replaceInStrings(QRegExp("^(.*)\\.lua"), "\\1");
       
    90 }