Diffstat (limited to 'noncore/games/backgammon/filedialog.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/games/backgammon/filedialog.cpp | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/noncore/games/backgammon/filedialog.cpp b/noncore/games/backgammon/filedialog.cpp new file mode 100644 index 0000000..6c858a2 --- a/dev/null +++ b/noncore/games/backgammon/filedialog.cpp @@ -0,0 +1,64 @@ +#include "filedialog.h" + +#include <qdir.h> +#include <qfileinfo.h> +#include <qmessagebox.h> +#include <qpixmap.h> +#include <qpushbutton.h> +#include <qpe/qpeapplication.h> + +FileDialog::FileDialog(QWidget* parent,QString header,QString extension,const char* name,bool modal,WFlags f) + :QDialog(parent,name,modal,f) +{ + setCaption(header); + ext=extension; + dirselector=new QListView(this); + dirselector->setGeometry(1,10,235,200); + dirselector->addColumn("Files"); + connect(dirselector,SIGNAL(clicked(QListViewItem*)),this,SLOT(selectorclicked(QListViewItem*))); + + getCurrentDir(); + + file_name="user"; + fileinput=new QLineEdit(file_name,this); + fileinput->setGeometry(1,220,235,20); + showMaximized(); +} + +FileDialog::~FileDialog() +{} + + +void FileDialog::selectorclicked(QListViewItem* entry) +{ + if(entry==NULL) + return; + file_name=entry->text(0); + fileinput->setText(file_name); +} + +void FileDialog::getCurrentDir() +{ + dirselector->clear(); + QDir dir(QPEApplication::qpeDir()+"/backgammon"); + dir.setFilter(QDir::Files); + QFileInfoListIterator it(*(dir.entryInfoList())); + QFileInfo* fi; + + int ext_length=ext.length(); + while((fi=it.current())) // go through all file and subdirs + { + QString file=fi->fileName(); + if(file.right(ext_length)==ext && file) + { + file=file.left(file.length()-ext_length); + new QListViewItem(dirselector,file); + } + ++it; + } +} + +QString FileDialog::filename() +{ + return file_name; +} |