128 // I started handing this down to each place it touches, but it was getting ridiculous |
128 // I started handing this down to each place it touches, but it was getting ridiculous |
129 // and this one flag does not warrant a static class |
129 // and this one flag does not warrant a static class |
130 bool frontendEffects = true; |
130 bool frontendEffects = true; |
131 QString playerHash; |
131 QString playerHash; |
132 |
132 |
|
133 QIcon finishedIcon; |
133 GameUIConfig* HWForm::config = NULL; |
134 GameUIConfig* HWForm::config = NULL; |
134 |
135 |
135 HWForm::HWForm(QWidget *parent, QString styleSheet) |
136 HWForm::HWForm(QWidget *parent, QString styleSheet) |
136 : QMainWindow(parent) |
137 : QMainWindow(parent) |
137 , game(0) |
138 , game(0) |
165 |
166 |
166 config = new GameUIConfig(this, DataManager::instance().settingsFileName()); |
167 config = new GameUIConfig(this, DataManager::instance().settingsFileName()); |
167 frontendEffects = config->value("frontend/effects", true).toBool(); |
168 frontendEffects = config->value("frontend/effects", true).toBool(); |
168 playerHash = QString(QCryptographicHash::hash(config->value("net/nick",tr("Guest")+QString("%1").arg(rand())).toString().toUtf8(), QCryptographicHash::Md5).toHex()); |
169 playerHash = QString(QCryptographicHash::hash(config->value("net/nick",tr("Guest")+QString("%1").arg(rand())).toString().toUtf8(), QCryptographicHash::Md5).toHex()); |
169 |
170 |
|
171 finishedIcon.addFile(":/res/missionFinished.png", QSize(), QIcon::Normal, QIcon::On); |
|
172 finishedIcon.addFile(":/res/missionFinishedSelected.png", QSize(), QIcon::Selected, QIcon::On); |
|
173 |
170 ui.pageRoomsList->setSettings(config); |
174 ui.pageRoomsList->setSettings(config); |
171 ui.pageNetGame->setSettings(config); |
175 ui.pageNetGame->setSettings(config); |
172 ui.pageNetGame->chatWidget->setSettings(config); |
176 ui.pageNetGame->chatWidget->setSettings(config); |
173 ui.pageRoomsList->chatWidget->setSettings(config); |
177 ui.pageRoomsList->chatWidget->setSettings(config); |
174 ui.pageOptions->setConfig(config); |
178 ui.pageOptions->setConfig(config); |
206 previousCampaignName = ""; |
210 previousCampaignName = ""; |
207 previousTeamName = ""; |
211 previousTeamName = ""; |
208 UpdateTeamsLists(); |
212 UpdateTeamsLists(); |
209 InitCampaignPage(); |
213 InitCampaignPage(); |
210 UpdateCampaignPage(0); |
214 UpdateCampaignPage(0); |
|
215 UpdateCampaignPageTeam(0); |
211 UpdateCampaignPageMission(0); |
216 UpdateCampaignPageMission(0); |
212 UpdateWeapons(); |
217 UpdateWeapons(); |
213 |
218 |
214 // connect all goBack signals |
219 // connect all goBack signals |
215 int nPages = ui.Pages->count(); |
220 int nPages = ui.Pages->count(); |
316 connect(ui.pageTraining, SIGNAL(startMission(const QString&)), this, SLOT(startTraining(const QString&))); |
321 connect(ui.pageTraining, SIGNAL(startMission(const QString&)), this, SLOT(startTraining(const QString&))); |
317 |
322 |
318 connect(ui.pageCampaign->BtnStartCampaign, SIGNAL(clicked()), this, SLOT(StartCampaign())); |
323 connect(ui.pageCampaign->BtnStartCampaign, SIGNAL(clicked()), this, SLOT(StartCampaign())); |
319 connect(ui.pageCampaign->btnPreview, SIGNAL(clicked()), this, SLOT(StartCampaign())); |
324 connect(ui.pageCampaign->btnPreview, SIGNAL(clicked()), this, SLOT(StartCampaign())); |
320 connect(ui.pageCampaign->CBTeam, SIGNAL(currentIndexChanged(int)), this, SLOT(UpdateCampaignPage(int))); |
325 connect(ui.pageCampaign->CBTeam, SIGNAL(currentIndexChanged(int)), this, SLOT(UpdateCampaignPage(int))); |
|
326 connect(ui.pageCampaign->CBTeam, SIGNAL(currentIndexChanged(int)), this, SLOT(UpdateCampaignPageTeam(int))); |
321 connect(ui.pageCampaign->CBCampaign, SIGNAL(currentIndexChanged(int)), this, SLOT(UpdateCampaignPage(int))); |
327 connect(ui.pageCampaign->CBCampaign, SIGNAL(currentIndexChanged(int)), this, SLOT(UpdateCampaignPage(int))); |
322 connect(ui.pageCampaign->CBMission, SIGNAL(currentIndexChanged(int)), this, SLOT(UpdateCampaignPageMission(int))); |
328 connect(ui.pageCampaign->CBMission, SIGNAL(currentIndexChanged(int)), this, SLOT(UpdateCampaignPageMission(int))); |
323 |
329 |
324 connect(ui.pageSelectWeapon->BtnDelete, SIGNAL(clicked()), |
330 connect(ui.pageSelectWeapon->BtnDelete, SIGNAL(clicked()), |
325 ui.pageSelectWeapon->pWeapons, SLOT(deleteWeaponsName())); // executed first |
331 ui.pageSelectWeapon->pWeapons, SLOT(deleteWeaponsName())); // executed first |
1854 QStringList("[^\\.]*") |
1860 QStringList("[^\\.]*") |
1855 ); |
1861 ); |
1856 |
1862 |
1857 unsigned int n = entries.count(); |
1863 unsigned int n = entries.count(); |
1858 |
1864 |
1859 QIcon finishedIcon; |
|
1860 finishedIcon.addFile(":/res/missionFinished.png", QSize(), QIcon::Normal, QIcon::On); |
|
1861 finishedIcon.addFile(":/res/missionFinishedSelected.png", QSize(), QIcon::Selected, QIcon::On); |
|
1862 for(unsigned int i = 0; i < n; i++) |
1865 for(unsigned int i = 0; i < n; i++) |
1863 { |
1866 { |
1864 QString campaignNameUnderscores= QString(entries[i]).replace(QString(" "),QString("_")); |
1867 QString campaignName = QString(entries[i]).replace(QString("_"),QString(" ")); |
1865 QString campaignNameSpaces = QString(entries[i]).replace(QString("_"),QString(" ")); |
|
1866 QString tName = team.name(); |
1868 QString tName = team.name(); |
1867 ui.pageCampaign->CBCampaign->addItem(campaignNameSpaces, campaignNameSpaces); |
1869 ui.pageCampaign->CBCampaign->addItem(campaignName, campaignName); |
1868 if(isCampWon(campaignNameUnderscores, tName)) |
|
1869 ui.pageCampaign->CBCampaign->setItemIcon(i, finishedIcon); |
|
1870 } |
1870 } |
1871 } |
1871 } |
1872 |
1872 |
1873 void HWForm::UpdateCampaignPage(int index) |
1873 void HWForm::UpdateCampaignPage(int index) |
1874 { |
1874 { |
1881 ui.pageCampaign->CBMission->clear(); |
1881 ui.pageCampaign->CBMission->clear(); |
1882 |
1882 |
1883 for(int i=0;i<campaignMissionInfo.size();i++) |
1883 for(int i=0;i<campaignMissionInfo.size();i++) |
1884 { |
1884 { |
1885 ui.pageCampaign->CBMission->addItem(QString(campaignMissionInfo[i].name), QString(campaignMissionInfo[i].name)); |
1885 ui.pageCampaign->CBMission->addItem(QString(campaignMissionInfo[i].name), QString(campaignMissionInfo[i].name)); |
|
1886 } |
|
1887 } |
|
1888 |
|
1889 void HWForm::UpdateCampaignPageTeam(int index) |
|
1890 { |
|
1891 Q_UNUSED(index); |
|
1892 HWTeam team(ui.pageCampaign->CBTeam->currentText()); |
|
1893 QString tName = team.name(); |
|
1894 |
|
1895 QStringList entries = DataManager::instance().entryList( |
|
1896 "Missions/Campaign", |
|
1897 QDir::Dirs, |
|
1898 QStringList("[^\\.]*") |
|
1899 ); |
|
1900 |
|
1901 unsigned int n = entries.count(); |
|
1902 |
|
1903 for(unsigned int i = 0; i < n; i++) |
|
1904 { |
|
1905 QString campaignName = QString(entries[i]).replace(QString(" "),QString("_")); |
|
1906 if(isCampWon(campaignName, tName)) |
|
1907 ui.pageCampaign->CBCampaign->setItemIcon(i, finishedIcon); |
|
1908 else |
|
1909 ui.pageCampaign->CBCampaign->setItemIcon(i, QIcon()); |
1886 } |
1910 } |
1887 } |
1911 } |
1888 |
1912 |
1889 void HWForm::UpdateCampaignPageMission(int index) |
1913 void HWForm::UpdateCampaignPageMission(int index) |
1890 { |
1914 { |