00001 #include "themedialog.h"
00002
00003 #include <qdir.h>
00004 #include <qlabel.h>
00005 #include <qpe/qpeapplication.h>
00006
00007
00008 ThemeDialog::ThemeDialog(QWidget* parent,const char* name,bool modal,WFlags f)
00009 :QDialog(parent,name,modal,f)
00010 {
00011 setCaption("Theme Dialog");
00012 QLabel* labelname=new QLabel("name",this);
00013 labelname->setGeometry(0,5,40,20);
00014 lineName=new QLineEdit("user",this);
00015 lineName->setGeometry(40,5,195,20);
00016
00017 QLabel* labelboard=new QLabel("board",this);
00018 labelboard->setGeometry(0,30,40,20);
00019 boxboard=new QComboBox(this,"");
00020 boxboard->setGeometry(40,30,195,20);
00021 fillBox("boards",boxboard);
00022
00023 QLabel* labelpiecesA=new QLabel("pieces1",this);
00024 labelpiecesA->setGeometry(0,70,40,20);
00025 boxpiecesA=new QComboBox(this);
00026 boxpiecesA->setGeometry(40,70,195,20);
00027 fillBox("pieces",boxpiecesA);
00028
00029 QLabel* labelpiecesB=new QLabel("pieces2",this);
00030 labelpiecesB->setGeometry(0,95,40,20);
00031 boxpiecesB=new QComboBox(this);
00032 boxpiecesB->setGeometry(40,95,195,20);
00033 fillBox("pieces",boxpiecesB);
00034
00035 QLabel* labeldiceA=new QLabel("dice1",this);
00036 labeldiceA->setGeometry(0,135,40,20);
00037 boxdiceA=new QComboBox(this);
00038 boxdiceA->setGeometry(40,135,195,20);
00039 fillBox("dice",boxdiceA);
00040
00041 QLabel* labeldiceB=new QLabel("dice2",this);
00042 labeldiceB->setGeometry(0,160,40,20);
00043 boxdiceB=new QComboBox(this);
00044 boxdiceB->setGeometry(40,160,195,20);
00045 fillBox("dice",boxdiceB);
00046
00047 QLabel* labelodds=new QLabel("odds",this);
00048 labelodds->setGeometry(0,200,40,20);
00049 boxodds=new QComboBox(this);
00050 boxodds->setGeometry(40,200,195,20);
00051 fillBox("odds",boxodds);
00052 boxodds->setEnabled(false);
00053
00054 QLabel* labeltable=new QLabel("table",this);
00055 labeltable->setGeometry(0,225,40,20);
00056 boxtable=new QComboBox(this);
00057 boxtable->setGeometry(40,225,195,20);
00058 fillBox("table",boxtable);
00059
00060 QPEApplication::showDialog( this );
00061 }
00062
00063 ThemeDialog::~ThemeDialog()
00064 {}
00065
00066
00067 ImageNames ThemeDialog::getNames()
00068 {
00069 ImageNames names;
00070 names.theme=lineName->text();
00071 names.board=boxboard->currentText();
00072 names.pieces1=boxpiecesA->currentText();
00073 names.pieces2=boxpiecesB->currentText();
00074 names.dice1=boxdiceA->currentText();
00075 names.dice2=boxdiceB->currentText();
00076 names.odds=boxodds->currentText();
00077 names.table=boxtable->currentText();
00078 return names;
00079 }
00080
00081 void ThemeDialog::setCurrent(const ImageNames& current)
00082 {
00083 int a=0;
00084 lineName->setText(current.theme);
00085 for(a=0;a<boxboard->count();a++)
00086 {
00087 if(boxboard->text(a)==current.board)
00088 {
00089 boxboard->setCurrentItem(a);
00090 break;
00091 }
00092 }
00093 for(a=0;a<boxpiecesA->count();a++)
00094 {
00095 if(boxpiecesA->text(a)==current.pieces1)
00096 {
00097 boxpiecesA->setCurrentItem(a);
00098 break;
00099 }
00100 }
00101 for(a=0;a<boxpiecesB->count();a++)
00102 {
00103 if(boxpiecesB->text(a)==current.pieces2)
00104 {
00105 boxpiecesB->setCurrentItem(a);
00106 break;
00107 }
00108 }
00109 for(a=0;a<boxdiceA->count();a++)
00110 {
00111 if(boxdiceA->text(a)==current.dice1)
00112 {
00113 boxdiceA->setCurrentItem(a);
00114 break;
00115 }
00116 }
00117 for(a=0;a<boxdiceB->count();a++)
00118 {
00119 if(boxdiceB->text(a)==current.dice2)
00120 {
00121 boxdiceB->setCurrentItem(a);
00122 break;
00123 }
00124 }
00125 for(a=0;a<boxodds->count();a++)
00126 {
00127 if(boxodds->text(a)==current.odds)
00128 {
00129 boxodds->setCurrentItem(a);
00130 break;
00131 }
00132 }
00133 for(a=0;a<boxtable->count();a++)
00134 {
00135 if(boxtable->text(a)==current.table)
00136 {
00137 boxtable->setCurrentItem(a);
00138 break;
00139 }
00140 }
00141 }
00142
00143 void ThemeDialog::fillBox(QString dirname,QComboBox* thebox)
00144 {
00145 thebox->clear();
00146 QDir dir(QPEApplication::qpeDir()+"pics/backgammon/"+dirname);
00147 dir.setFilter(QDir::Dirs | QDir::Files);
00148 QFileInfoListIterator it(*(dir.entryInfoList()));
00149 QFileInfo* fi;
00150
00151 while((fi=it.current()))
00152 {
00153 QString file=fi->fileName();
00154 if(file.right(4)==".png")
00155 {
00156 thebox->insertItem(file.left(file.find(".png")));
00157 }
00158 ++it;
00159 }
00160 delete fi;
00161 }