# HG changeset patch # User displacer # Date 1157288173 0 # Node ID 2d0f404cdf050d538d8602a2fcd134683863e435 # Parent 482f78c595ec2efc6921170fdc42a1ed40980285 first hedgehogs number selection added diff -r 482f78c595ec -r 2d0f404cdf05 QTfrontend/frameTeam.cpp --- a/QTfrontend/frameTeam.cpp Mon Aug 28 19:02:57 2006 +0000 +++ b/QTfrontend/frameTeam.cpp Sun Sep 03 12:56:13 2006 +0000 @@ -11,9 +11,9 @@ { } -void FrameTeams::addTeam(HWTeam team) +void FrameTeams::addTeam(HWTeam team, bool willPlay) { - TeamShowWidget* pTeamShowWidget =new TeamShowWidget(team, this); + TeamShowWidget* pTeamShowWidget =new TeamShowWidget(team, willPlay, this); // int hght=teamToWidget.empty() ? 0 : teamToWidget.begin()->second->size().height(); teamToWidget.insert(make_pair(team, pTeamShowWidget)); mainLayout.addWidget(pTeamShowWidget); diff -r 482f78c595ec -r 2d0f404cdf05 QTfrontend/frameTeam.h --- a/QTfrontend/frameTeam.h Mon Aug 28 19:02:57 2006 +0000 +++ b/QTfrontend/frameTeam.h Sun Sep 03 12:56:13 2006 +0000 @@ -15,7 +15,7 @@ QWidget* getTeamWidget(HWTeam team); public slots: - void addTeam(HWTeam team); + void addTeam(HWTeam team, bool willPlay); void removeTeam(HWTeam team); private: diff -r 482f78c595ec -r 2d0f404cdf05 QTfrontend/hedgehogerWidget.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/QTfrontend/hedgehogerWidget.cpp Sun Sep 03 12:56:13 2006 +0000 @@ -0,0 +1,37 @@ +#include "hedgehogerWidget.h" + +#include +#include + +CHedgehogerWidget::CHedgehogerWidget(QWidget * parent) : + QWidget(parent), numHedgedogs(3) +{ +} + +void CHedgehogerWidget::mousePressEvent ( QMouseEvent * event ) +{ + if(event->button()==Qt::LeftButton) { + event->accept(); + numHedgedogs++; + } else if (event->button()==Qt::RightButton) { + event->accept(); + if(numHedgedogs!=0) numHedgedogs--; + } else { + event->ignore(); + return; + } + repaint(); +} + +void CHedgehogerWidget::paintEvent(QPaintEvent* event) +{ + QRectF source(0.0, 0.0, 32.0, 32.0); + QImage image("../share/hedgewars/Data/Graphics/Hedgehog.png"); + + QPainter painter(this); + + for(int i=0; i + +class CHedgehogerWidget : public QWidget +{ + Q_OBJECT + + public: + CHedgehogerWidget(QWidget * parent = 0); + + protected: + virtual void paintEvent(QPaintEvent* event); + virtual void mousePressEvent ( QMouseEvent * event ); + + private: + unsigned char numHedgedogs; +}; + +#endif // _HEDGEHOGER_WIDGET diff -r 482f78c595ec -r 2d0f404cdf05 QTfrontend/hedgewars.pro --- a/QTfrontend/hedgewars.pro Mon Aug 28 19:02:57 2006 +0000 +++ b/QTfrontend/hedgewars.pro Sun Sep 03 12:56:13 2006 +0000 @@ -25,7 +25,8 @@ gamecfgwidget.h \ predefteams.h \ pages.h \ - SquareLabel.h + SquareLabel.h \ + hedgehogerWidget.h SOURCES += game.cpp \ main.cpp \ @@ -40,7 +41,8 @@ ui_hwform.cpp \ gamecfgwidget.cpp \ pages.cpp \ - SquareLabel.cpp + SquareLabel.cpp \ + hedgehogerWidget.cpp TRANSLATIONS += translations/hedgewars_ru.ts diff -r 482f78c595ec -r 2d0f404cdf05 QTfrontend/teamselect.cpp --- a/QTfrontend/teamselect.cpp Mon Aug 28 19:02:57 2006 +0000 +++ b/QTfrontend/teamselect.cpp Sun Sep 03 12:56:13 2006 +0000 @@ -11,7 +11,7 @@ void TeamSelWidget::addTeam(HWTeam team) { - frameDontPlaying->addTeam(team); + frameDontPlaying->addTeam(team, false); curDontPlayingTeams.push_back(team); QObject::connect(frameDontPlaying->getTeamWidget(team), SIGNAL(teamStatusChanged(HWTeam)), this, SLOT(changeTeamStatus(HWTeam))); @@ -27,7 +27,9 @@ list::iterator itDontPlay=std::find(curDontPlayingTeams.begin(), curDontPlayingTeams.end(), team); list::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team); - if(itDontPlay==curDontPlayingTeams.end()) { + bool willBePlaying=itDontPlay!=curDontPlayingTeams.end(); + + if(!willBePlaying) { // playing team => dont playing curDontPlayingTeams.push_back(*itPlay); curPlayingTeams.erase(itPlay); @@ -39,7 +41,7 @@ FrameTeams* pRemoveTeams; FrameTeams* pAddTeams; - if(itDontPlay==curDontPlayingTeams.end()) { + if(!willBePlaying) { pRemoveTeams=framePlaying; pAddTeams=frameDontPlaying; } else { @@ -47,7 +49,7 @@ pAddTeams=framePlaying; } - pAddTeams->addTeam(team); + pAddTeams->addTeam(team, willBePlaying); pRemoveTeams->removeTeam(team); QObject::connect(pAddTeams->getTeamWidget(team), SIGNAL(teamStatusChanged(HWTeam)), this, SLOT(changeTeamStatus(HWTeam))); diff -r 482f78c595ec -r 2d0f404cdf05 QTfrontend/teamselhelper.cpp --- a/QTfrontend/teamselhelper.cpp Mon Aug 28 19:02:57 2006 +0000 +++ b/QTfrontend/teamselhelper.cpp Sun Sep 03 12:56:13 2006 +0000 @@ -1,16 +1,19 @@ #include "teamselhelper.h" +#include "hwconsts.h" #include #include -#include "hwconsts.h" +#include + +#include "hedgehogerWidget.h" void TeamLabel::teamButtonClicked() { emit teamActivated(text()); } -TeamShowWidget::TeamShowWidget(HWTeam team, QWidget * parent) : - QWidget(parent), mainLayout(this), m_team(team) +TeamShowWidget::TeamShowWidget(HWTeam team, bool isPlaying, QWidget * parent) : + QWidget(parent), mainLayout(this), m_team(team), m_isPlaying(isPlaying) { this->setMaximumHeight(40); QPixmap* px=new QPixmap(QPixmap(datadir->absolutePath() + "/Forts/" + m_team.Fort + "L.png").scaled(40, 40)); @@ -29,6 +32,11 @@ bText->setFlat(true); mainLayout.addWidget(bText); + if(m_isPlaying) { + CHedgehogerWidget* phhoger=new CHedgehogerWidget(this); + mainLayout.addWidget(phhoger); + } + QObject::connect(butt, SIGNAL(clicked()), this, SLOT(activateTeam())); QObject::connect(bText, SIGNAL(clicked()), this, SLOT(activateTeam())); } diff -r 482f78c595ec -r 2d0f404cdf05 QTfrontend/teamselhelper.h --- a/QTfrontend/teamselhelper.h Mon Aug 28 19:02:57 2006 +0000 +++ b/QTfrontend/teamselhelper.h Sun Sep 03 12:56:13 2006 +0000 @@ -30,11 +30,13 @@ void activateTeam(); public: - TeamShowWidget(HWTeam team, QWidget * parent = 0); + TeamShowWidget(HWTeam team, bool isPlaying, QWidget * parent = 0); + void setPlaying(bool isPlaying); private: QHBoxLayout mainLayout; HWTeam m_team; + bool m_isPlaying; signals: void teamStatusChanged(HWTeam team);