QTfrontend/pages.cpp
changeset 1252 2e2719c0a397
parent 1249 b6670a6ea2d0
child 1282 76533d0e76e3
equal deleted inserted replaced
1251:1f545d9a10ca 1252:2e2719c0a397
    30 #include <QTextEdit>
    30 #include <QTextEdit>
    31 #include <QRadioButton>
    31 #include <QRadioButton>
    32 #include <QTableView>
    32 #include <QTableView>
    33 #include <QMessageBox>
    33 #include <QMessageBox>
    34 #include <QHeaderView>
    34 #include <QHeaderView>
       
    35 #include <QTabWidget>
    35 
    36 
    36 #include "pages.h"
    37 #include "pages.h"
    37 #include "sdlkeys.h"
    38 #include "sdlkeys.h"
    38 #include "hwconsts.h"
    39 #include "hwconsts.h"
    39 #include "gamecfgwidget.h"
    40 #include "gamecfgwidget.h"
    87 
    88 
    88 PageEditTeam::PageEditTeam(QWidget* parent) :
    89 PageEditTeam::PageEditTeam(QWidget* parent) :
    89   AbstractPage(parent)
    90   AbstractPage(parent)
    90 {
    91 {
    91 	QGridLayout * pageLayout = new QGridLayout(this);
    92 	QGridLayout * pageLayout = new QGridLayout(this);
    92 	pageLayout->setColumnStretch(0, 1);
    93 	QTabWidget * tbw = new QTabWidget(this);
    93 	pageLayout->setColumnMinimumWidth(0, 180);
    94 	QWidget * page1 = new QWidget();
    94 	pageLayout->setColumnStretch(1, 100);
    95 	QWidget * page2 = new QWidget();
    95 	pageLayout->setColumnMinimumWidth(1, 210);
    96 	tbw->addTab(page1, tr("General"));
    96 	pageLayout->setColumnStretch(2, 75);
    97 	tbw->addTab(page2, tr("Advanced"));
    97 	pageLayout->setColumnMinimumWidth(2, 110);
    98 	pageLayout->addWidget(tbw, 0, 0, 1, 3);
    98 	pageLayout->setColumnStretch(3, 75);
    99 	BtnTeamDiscard = addButton(":/res/Exit.png", pageLayout, 1, 0, true);
    99 	pageLayout->setColumnMinimumWidth(3, 110);
   100 	BtnTeamSave = addButton(":/res/Save.png", pageLayout, 1, 2, true);;
   100 
   101 
       
   102 	QHBoxLayout * page1Layout = new QHBoxLayout(page1);
       
   103 	page1Layout->setAlignment(Qt::AlignTop);
       
   104 	QGridLayout * page2Layout = new QGridLayout(page2);
       
   105 
       
   106 // ====== Page 1 ======
       
   107 	QVBoxLayout * vbox1 = new QVBoxLayout();
       
   108 	QVBoxLayout * vbox2 = new QVBoxLayout();
       
   109 	QVBoxLayout * vbox3 = new QVBoxLayout();
       
   110 	page1Layout->addLayout(vbox1);
       
   111 	page1Layout->addLayout(vbox2);
       
   112 	page1Layout->addLayout(vbox3);
       
   113 	
   101 	GBoxTeam = new QGroupBox(this);
   114 	GBoxTeam = new QGroupBox(this);
   102 	GBoxTeam->setTitle(QGroupBox::tr("Team"));
   115 	GBoxTeam->setTitle(QGroupBox::tr("Team"));
   103 	GBoxTeam->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
   116 	GBoxTeam->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
   104 	QGridLayout * GBTLayout = new QGridLayout(GBoxTeam);
   117 	QGridLayout * GBTLayout = new QGridLayout(GBoxTeam);
   105 	TeamNameEdit = new QLineEdit(GBoxTeam);
   118 	TeamNameEdit = new QLineEdit(GBoxTeam);
   106 	TeamNameEdit->setMaxLength(64);
   119 	TeamNameEdit->setMaxLength(64);
   107 	GBTLayout->addWidget(TeamNameEdit, 0, 0, 1, 0);
   120 	GBTLayout->addWidget(TeamNameEdit, 0, 0, 1, 0);
   108 
   121 	vbox1->addWidget(GBoxTeam);
   109 	pageLayout->addWidget(GBoxTeam, 0, 0);
       
   110 
   122 
   111 	GBoxHedgehogs = new QGroupBox(this);
   123 	GBoxHedgehogs = new QGroupBox(this);
   112 	GBoxHedgehogs->setTitle(QGroupBox::tr("Team Members"));
   124 	GBoxHedgehogs->setTitle(QGroupBox::tr("Team Members"));
   113 	GBoxHedgehogs->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
   125 	GBoxHedgehogs->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
   114 	QGridLayout * GBHLayout = new QGridLayout(GBoxHedgehogs);
   126 	QGridLayout * GBHLayout = new QGridLayout(GBoxHedgehogs);
   125 		HHHats[i]->setModel(hatsModel);
   137 		HHHats[i]->setModel(hatsModel);
   126 		//HHHats[i]->setModelColumn(1);
   138 		//HHHats[i]->setModelColumn(1);
   127 		//HHHats[i]->setMinimumWidth(132);
   139 		//HHHats[i]->setMinimumWidth(132);
   128 		GBHLayout->addWidget(HHHats[i], i, 1);
   140 		GBHLayout->addWidget(HHHats[i], i, 1);
   129 	}
   141 	}
   130 	pageLayout->addWidget(GBoxHedgehogs, 1, 0, 2, 1);
   142 	vbox1->addWidget(GBoxHedgehogs);
   131 
   143 
   132 	BtnTeamDiscard = addButton(":/res/Exit.png", pageLayout, 4, 0, true);
   144 
   133 
   145 	GBoxGrave = new QGroupBox(this);
       
   146 	GBoxGrave->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
       
   147 	GBoxGrave->setTitle(QGroupBox::tr("Grave"));
       
   148 	QGridLayout * GBGLayout = new QGridLayout(GBoxGrave);
       
   149 	CBGrave = new QComboBox(GBoxGrave);
       
   150 	CBGrave->setMaxCount(65535);
       
   151 	GBGLayout->addWidget(CBGrave, 0, 0, 1, 3);
       
   152 	GravePreview = new QLabel(GBoxGrave);
       
   153 	GravePreview->setScaledContents(false);
       
   154 	GBGLayout->addWidget(GravePreview, 1, 1);
       
   155 	vbox2->addWidget(GBoxGrave);
       
   156 	
       
   157 	//page1Layout->addWidget(new QWidget(), 3, 1, 1, 1);
       
   158 
       
   159 	GBoxTeamLvl = new QGroupBox(this);
       
   160 	GBoxTeamLvl->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
       
   161 	GBoxTeamLvl->setTitle(QGroupBox::tr("Team level"));
       
   162 	QGridLayout * GBTLLayout = new QGridLayout(GBoxTeamLvl);
       
   163 	CBTeamLvl = new QComboBox(GBoxTeamLvl);
       
   164 	CBTeamLvl->addItem(QComboBox::tr("Human"));
       
   165 	CBTeamLvl->addItem(QComboBox::tr("Level 5"));
       
   166 	CBTeamLvl->addItem(QComboBox::tr("Level 4"));
       
   167 	CBTeamLvl->addItem(QComboBox::tr("Level 3"));
       
   168 	CBTeamLvl->addItem(QComboBox::tr("Level 2"));
       
   169 	CBTeamLvl->addItem(QComboBox::tr("Level 1"));
       
   170 	CBTeamLvl->setMaxCount(6);
       
   171 	GBTLLayout->addWidget(CBTeamLvl, 0, 0, 1, 3);
       
   172 	LevelPict = new QLabel(GBoxTeamLvl);
       
   173 	LevelPict->setScaledContents(false);
       
   174 	LevelPict->setFixedSize(32, 32);
       
   175 	GBTLLayout->addWidget(LevelPict, 1, 1);
       
   176 	vbox2->addWidget(GBoxTeamLvl);
       
   177 
       
   178 	GBoxFort = new QGroupBox(this);
       
   179 	GBoxFort->setTitle(QGroupBox::tr("Fort"));
       
   180 	QGridLayout * GBFLayout = new QGridLayout(GBoxFort);
       
   181 	CBFort = new QComboBox(GBoxFort);
       
   182 	CBFort->setMaxCount(65535);
       
   183 	GBFLayout->addWidget(CBFort, 0, 0);
       
   184 	FortPreview = new SquareLabel(GBoxFort);
       
   185 	FortPreview->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
       
   186 	FortPreview->setPixmap(QPixmap());
       
   187 	GBFLayout->addWidget(FortPreview, 1, 0);
       
   188 	vbox3->addWidget(GBoxFort);
       
   189 
       
   190 	QDir tmpdir;
       
   191 	tmpdir.cd(datadir->absolutePath());
       
   192 	tmpdir.cd("Forts");
       
   193 	tmpdir.setFilter(QDir::Files);
       
   194 
       
   195 	CBFort->addItems(tmpdir.entryList(QStringList("*L.png")).replaceInStrings(QRegExp("^(.*)L\\.png"), "\\1"));
       
   196 	tmpdir.cd("../Graphics/Graves");
       
   197 	QStringList list = tmpdir.entryList(QStringList("*.png"));
       
   198 	for (QStringList::Iterator it = list.begin(); it != list.end(); ++it )
       
   199 	{
       
   200 		CBGrave->addItem((*it).replace(QRegExp("^(.*)\\.png"), "\\1"));
       
   201 	}
       
   202 
       
   203 	connect(CBGrave, SIGNAL(activated(const QString &)), this, SLOT(CBGrave_activated(const QString &)));
       
   204 	connect(CBTeamLvl, SIGNAL(activated(int)), this, SLOT(CBTeamLvl_activated(int)));
       
   205 	connect(CBFort, SIGNAL(activated(const QString &)), this, SLOT(CBFort_activated(const QString &)));
       
   206 
       
   207 	vbox1->addStretch();
       
   208 	vbox2->addStretch();
       
   209 //	vbox3->addStretch();
       
   210 
       
   211 // ====== Page 2 ======
   134 	GBoxBinds = new QGroupBox(this);
   212 	GBoxBinds = new QGroupBox(this);
   135 	GBoxBinds->setTitle(QGroupBox::tr("Key binds"));
   213 	GBoxBinds->setTitle(QGroupBox::tr("Key binds"));
   136 	QGridLayout * GBBLayout = new QGridLayout(GBoxBinds);
   214 	QGridLayout * GBBLayout = new QGridLayout(GBoxBinds);
   137 	BindsBox = new QToolBox(GBoxBinds);
   215 	BindsBox = new QToolBox(GBoxBinds);
   138 	BindsBox->setLineWidth(0);
   216 	BindsBox->setLineWidth(0);
   143 	BindsBox->addItem(page_W, QToolBox::tr("Weapons"));
   221 	BindsBox->addItem(page_W, QToolBox::tr("Weapons"));
   144 	page_WP = new QWidget();
   222 	page_WP = new QWidget();
   145 	BindsBox->addItem(page_WP, QToolBox::tr("Weapon properties"));
   223 	BindsBox->addItem(page_WP, QToolBox::tr("Weapon properties"));
   146 	page_O = new QWidget();
   224 	page_O = new QWidget();
   147 	BindsBox->addItem(page_O, QToolBox::tr("Other"));
   225 	BindsBox->addItem(page_O, QToolBox::tr("Other"));
   148 	pageLayout->addWidget(GBoxBinds, 0, 1, 5, 1);
   226 	page2Layout->addWidget(GBoxBinds, 0, 0);
   149 
   227 
   150 	QStringList binds;
   228 	QStringList binds;
   151 	for(int i = 0; strlen(sdlkeys[i][1]) > 0; i++)
   229 	for(int i = 0; strlen(sdlkeys[i][1]) > 0; i++)
   152 	{
   230 	{
   153 		binds << sdlkeys[i][1];
   231 		binds << sdlkeys[i][1];
   168 			num++;
   246 			num++;
   169 		} while (!cbinds[i++].chwidget);
   247 		} while (!cbinds[i++].chwidget);
   170 		pagelayout->addWidget(new QWidget(BindsBox->widget(widind)), num, 0, 1, 2);
   248 		pagelayout->addWidget(new QWidget(BindsBox->widget(widind)), num, 0, 1, 2);
   171 		widind++;
   249 		widind++;
   172 	}
   250 	}
   173 
       
   174 	GBoxGrave = new QGroupBox(this);
       
   175 	GBoxGrave->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
       
   176 	GBoxGrave->setTitle(QGroupBox::tr("Grave"));
       
   177 	QGridLayout * GBGLayout = new QGridLayout(GBoxGrave);
       
   178 	CBGrave = new QComboBox(GBoxGrave);
       
   179 	CBGrave->setMaxCount(65535);
       
   180 	GBGLayout->addWidget(CBGrave, 0, 0, 1, 3);
       
   181 	GravePreview = new QLabel(GBoxGrave);
       
   182 	GravePreview->setScaledContents(false);
       
   183 	pageLayout->addWidget(GBoxGrave, 0, 3, 2, 1);
       
   184 	GBGLayout->addWidget(GravePreview, 1, 1);
       
   185 
       
   186 	GBoxTeamLvl = new QGroupBox(this);
       
   187 	GBoxTeamLvl->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
       
   188 	GBoxTeamLvl->setTitle(QGroupBox::tr("Team level"));
       
   189 	QGridLayout * GBTLLayout = new QGridLayout(GBoxTeamLvl);
       
   190 	CBTeamLvl = new QComboBox(GBoxTeamLvl);
       
   191 	CBTeamLvl->addItem(QComboBox::tr("Human"));
       
   192 	CBTeamLvl->addItem(QComboBox::tr("Level 5"));
       
   193 	CBTeamLvl->addItem(QComboBox::tr("Level 4"));
       
   194 	CBTeamLvl->addItem(QComboBox::tr("Level 3"));
       
   195 	CBTeamLvl->addItem(QComboBox::tr("Level 2"));
       
   196 	CBTeamLvl->addItem(QComboBox::tr("Level 1"));
       
   197 	CBTeamLvl->setMaxCount(6);
       
   198 	GBTLLayout->addWidget(CBTeamLvl, 0, 0, 1, 3);
       
   199 	LevelPict = new QLabel(GBoxTeamLvl);
       
   200 	LevelPict->setScaledContents(false);
       
   201 	LevelPict->setFixedSize(32, 32);
       
   202 	pageLayout->addWidget(GBoxTeamLvl, 0, 2, 2, 1);
       
   203 	GBTLLayout->addWidget(LevelPict, 1, 1);
       
   204 
       
   205 	GBoxFort = new QGroupBox(this);
       
   206 	GBoxFort->setTitle(QGroupBox::tr("Fort"));
       
   207 	QGridLayout * GBFLayout = new QGridLayout(GBoxFort);
       
   208 	CBFort = new QComboBox(GBoxFort);
       
   209 	CBFort->setMaxCount(65535);
       
   210 	GBFLayout->addWidget(CBFort, 0, 0);
       
   211 	FortPreview = new SquareLabel(GBoxFort);
       
   212 	FortPreview->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
       
   213 	FortPreview->setPixmap(QPixmap());
       
   214 	GBFLayout->addWidget(FortPreview, 1, 0);
       
   215 	pageLayout->addWidget(GBoxFort, 2, 2, 1, 2);
       
   216 
       
   217 	BtnTeamSave = addButton(":/res/Save.png", pageLayout, 4, 3, true);;
       
   218 
       
   219 	QDir tmpdir;
       
   220 	tmpdir.cd(datadir->absolutePath());
       
   221 	tmpdir.cd("Forts");
       
   222 	tmpdir.setFilter(QDir::Files);
       
   223 
       
   224 	CBFort->addItems(tmpdir.entryList(QStringList("*L.png")).replaceInStrings(QRegExp("^(.*)L\\.png"), "\\1"));
       
   225 	tmpdir.cd("../Graphics/Graves");
       
   226 	QStringList list = tmpdir.entryList(QStringList("*.png"));
       
   227 	for (QStringList::Iterator it = list.begin(); it != list.end(); ++it )
       
   228 	{
       
   229 		CBGrave->addItem((*it).replace(QRegExp("^(.*)\\.png"), "\\1"));
       
   230 	}
       
   231 
       
   232 	connect(CBGrave, SIGNAL(activated(const QString &)), this, SLOT(CBGrave_activated(const QString &)));
       
   233 	connect(CBTeamLvl, SIGNAL(activated(int)), this, SLOT(CBTeamLvl_activated(int)));
       
   234 	connect(CBFort, SIGNAL(activated(const QString &)), this, SLOT(CBFort_activated(const QString &)));
       
   235 }
   251 }
   236 
   252 
   237 void PageEditTeam::CBGrave_activated(const QString & gravename)
   253 void PageEditTeam::CBGrave_activated(const QString & gravename)
   238 {
   254 {
   239 	QPixmap pix(datadir->absolutePath() + "/Graphics/Graves/" + gravename + ".png");
   255 	QPixmap pix(datadir->absolutePath() + "/Graphics/Graves/" + gravename + ".png");
   596 
   612 
   597 PageSinglePlayer::PageSinglePlayer(QWidget* parent) : AbstractPage(parent)
   613 PageSinglePlayer::PageSinglePlayer(QWidget* parent) : AbstractPage(parent)
   598 {
   614 {
   599 	QFont * font14 = new QFont("MS Shell Dlg", 14);
   615 	QFont * font14 = new QFont("MS Shell Dlg", 14);
   600 	QGridLayout * pageLayout = new QGridLayout(this);
   616 	QGridLayout * pageLayout = new QGridLayout(this);
   601 	pageLayout->setColumnStretch(0, 1);
   617 //	pageLayout->setColumnStretch(0, 1);
   602 	pageLayout->setColumnStretch(1, 2);
   618 //	pageLayout->setColumnStretch(1, 2);
   603 	pageLayout->setColumnStretch(2, 1);
   619 //	pageLayout->setColumnStretch(2, 1);
   604 	pageLayout->setRowStretch(0, 1);
   620 	pageLayout->setRowStretch(0, 1);
   605 	pageLayout->setRowStretch(6, 1);
   621 	pageLayout->setRowStretch(6, 1);
   606 
   622 
   607 	BtnSimpleGamePage = addButton(tr("Simple Game"), pageLayout, 1, 1);
   623 	BtnSimpleGamePage = addButton(tr("Simple Game"), pageLayout, 1, 1);
   608 	BtnTrainPage = addButton(tr("Training"), pageLayout, 2, 1);
   624 	BtnTrainPage = addButton(tr("Training"), pageLayout, 2, 1);