Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

themedialog.cpp

Go to the documentation of this file.
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())) // go through all file and subdirs
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 }

Generated on Sat Nov 5 16:17:18 2005 for OPIE by  doxygen 1.4.2