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 } |