--- a/QTfrontend/mapContainer.cpp Thu Oct 16 16:29:47 2008 +0000
+++ b/QTfrontend/mapContainer.cpp Thu Oct 16 16:54:44 2008 +0000
@@ -39,30 +39,42 @@
mainLayout(this),
pMap(0)
{
-#if QT_VERSION >= 0x040300
- mainLayout.setContentsMargins(QApplication::style()->pixelMetric(QStyle::PM_LayoutLeftMargin),
- 1,
- QApplication::style()->pixelMetric(QStyle::PM_LayoutRightMargin),
- QApplication::style()->pixelMetric(QStyle::PM_LayoutBottomMargin));
-#endif
- imageButt = new QPushButton(this);
- imageButt->setObjectName("imageButt");
- imageButt->setFixedSize(256 + 6, 128 + 6);
- imageButt->setFlat(true);
- imageButt->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);//QSizePolicy::Minimum, QSizePolicy::Minimum);
- mainLayout.addWidget(imageButt, 0, 0, 1, 2);
- connect(imageButt, SIGNAL(clicked()), this, SLOT(setRandomSeed()));
- connect(imageButt, SIGNAL(clicked()), this, SLOT(setRandomTheme()));
+ mainLayout.setContentsMargins(QApplication::style()->pixelMetric(QStyle::PM_LayoutLeftMargin),
+ 1,
+ QApplication::style()->pixelMetric(QStyle::PM_LayoutRightMargin),
+ QApplication::style()->pixelMetric(QStyle::PM_LayoutBottomMargin));
+ imageButt = new QPushButton(this);
+ imageButt->setObjectName("imageButt");
+ imageButt->setFixedSize(256 + 6, 128 + 6);
+ imageButt->setFlat(true);
+ imageButt->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);//QSizePolicy::Minimum, QSizePolicy::Minimum);
+ mainLayout.addWidget(imageButt, 0, 0, 1, 2);
+ connect(imageButt, SIGNAL(clicked()), this, SLOT(setRandomSeed()));
+ connect(imageButt, SIGNAL(clicked()), this, SLOT(setRandomTheme()));
- chooseMap = new QComboBox(this);
- chooseMap->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
- chooseMap->addItem(QComboBox::tr("generated map..."));
- chooseMap->addItems(*mapList);
- connect(chooseMap, SIGNAL(currentIndexChanged(int)), this, SLOT(mapChanged(int)));
- mainLayout.addWidget(chooseMap, 1, 1);
+ chooseMap = new QComboBox(this);
+ chooseMap->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+ chooseMap->addItem(QComboBox::tr("generated map..."));
+ for (int i = 0; i < mapList->size(); ++i) {
+ QString map = (*mapList)[i];
+ QFile mapCfgFile(
+ QString("%1/Maps/%2/map.cfg")
+ .arg(datadir->absolutePath())
+ .arg(map));
+ if (mapCfgFile.open(QFile::ReadOnly)) {
+ QString theme;
+ QTextStream input(&mapCfgFile);
+ input >> theme;
+ chooseMap->addItem(map, theme);
+ mapCfgFile.close();
+ }
+ }
+
+ connect(chooseMap, SIGNAL(currentIndexChanged(int)), this, SLOT(mapChanged(int)));
+ mainLayout.addWidget(chooseMap, 1, 1);
- QLabel * lblMap = new QLabel(tr("Map"), this);
- mainLayout.addWidget(lblMap, 1, 0);
+ QLabel * lblMap = new QLabel(tr("Map"), this);
+ mainLayout.addWidget(lblMap, 1, 0);
gbThemes = new IconedGroupBox(this);
gbThemes->setTitleTextPadding(60);
@@ -88,62 +100,58 @@
gbTLayout->addWidget(lwThemes);
lwThemes->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Minimum);
- mainLayout.setSizeConstraint(QLayout::SetFixedSize);//SetMinimumSize
+ mainLayout.setSizeConstraint(QLayout::SetFixedSize);//SetMinimumSize
- setRandomSeed();
- setRandomTheme();
+ setRandomSeed();
+ setRandomTheme();
}
void HWMapContainer::setImage(const QImage newImage)
{
- QPixmap px(256, 128);
- QPixmap pxres(256, 128);
- QPainter p(&pxres);
+ QPixmap px(256, 128);
+ QPixmap pxres(256, 128);
+ QPainter p(&pxres);
- px.fill(Qt::yellow);
- QBitmap bm = QBitmap::fromImage(newImage);
- px.setMask(bm);
+ px.fill(Qt::yellow);
+ QBitmap bm = QBitmap::fromImage(newImage);
+ px.setMask(bm);
- QLinearGradient linearGrad(QPoint(128, 0), QPoint(128, 128));
- linearGrad.setColorAt(1, QColor(0, 0, 192));
- linearGrad.setColorAt(0, QColor(66, 115, 225));
- p.fillRect(QRect(0, 0, 256, 128), linearGrad);
- p.drawPixmap(QPoint(0, 0), px);
+ QLinearGradient linearGrad(QPoint(128, 0), QPoint(128, 128));
+ linearGrad.setColorAt(1, QColor(0, 0, 192));
+ linearGrad.setColorAt(0, QColor(66, 115, 225));
+ p.fillRect(QRect(0, 0, 256, 128), linearGrad);
+ p.drawPixmap(QPoint(0, 0), px);
- imageButt->setIcon(pxres);
- imageButt->setIconSize(QSize(256, 128));
- chooseMap->setCurrentIndex(0);
- pMap = 0;
+ imageButt->setIcon(pxres);
+ imageButt->setIconSize(QSize(256, 128));
+ chooseMap->setCurrentIndex(0);
+ pMap = 0;
}
void HWMapContainer::mapChanged(int index)
{
- if(!index) {
- changeImage();
- emit mapChanged("+rnd+");
- return;
- }
-
- loadMap(index);
-
- emit mapChanged(chooseMap->currentText());
+ if(!index) {
+ changeImage();
+ gbThemes->show();
+ emit mapChanged("+rnd+");
+ emit themeChanged(chooseMap->itemData(0).toString());
+ } else
+ {
+ loadMap(index);
+ gbThemes->hide();
+ emit mapChanged(chooseMap->currentText());
+ }
}
void HWMapContainer::loadMap(int index)
{
- QPixmap mapImage;
- if(!mapImage.load(datadir->absolutePath() + "/Maps/" + chooseMap->currentText() + "/preview.png")) {
- changeImage();
- chooseMap->setCurrentIndex(0);
- return;
- }
- imageButt->setIcon(mapImage);
- QFile mapCfgFile(datadir->absolutePath() + "/Maps/" + chooseMap->currentText() + "/map.cfg");
- if (mapCfgFile.open(QFile::ReadOnly)) {
- QTextStream input(&mapCfgFile);
- input >> theme;
- mapCfgFile.close();
- }
+ QPixmap mapImage;
+ if(!mapImage.load(datadir->absolutePath() + "/Maps/" + chooseMap->currentText() + "/preview.png")) {
+ changeImage();
+ chooseMap->setCurrentIndex(0);
+ return;
+ }
+ imageButt->setIcon(mapImage);
}
void HWMapContainer::changeImage()
@@ -155,7 +163,8 @@
void HWMapContainer::themeSelected(int currentRow)
{
- theme = Themes->at(currentRow);
+ QString theme = Themes->at(currentRow);
+ chooseMap->setItemData(0, theme);
gbThemes->setIcon(QIcon(QString("%1/Themes/%2/icon.png").arg(datadir->absolutePath()).arg(theme)));
emit themeChanged(theme);
}
@@ -173,7 +182,7 @@
QString HWMapContainer::getCurrentTheme() const
{
- return theme;
+ return chooseMap->itemData(chooseMap->currentIndex()).toString();
}
void HWMapContainer::resizeEvent ( QResizeEvent * event )