diff -r 60e2297bab39 -r bd530b01f77f exportoofiledialog.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/exportoofiledialog.cpp Tue Jan 24 15:09:48 2006 +0000 @@ -0,0 +1,87 @@ +#include + +#include "exportoofiledialog.h" + +ExportOOFileDialog::ExportOOFileDialog():QFileDialog() +{ + init(); +} + +ExportOOFileDialog::ExportOOFileDialog (QWidget * parent, const char* name, bool modal):QFileDialog(parent, name,modal) +{ + init(); +} + +QString ExportOOFileDialog::selectedConfig() +{ + QStringList::Iterator itpath=configPaths.begin(); + QStringList::Iterator itf=filters.begin(); + while (itf != filters.end()) + { + if (*itf==lastFilter) return *itpath; + itpath++; + itf++; + } + qWarning ("ExportOOFileDialog::selectedConfig No filter found!"); + return ""; +} + +void ExportOOFileDialog::newConfigPath(const QString &s) +{ + lastFilter=s; +} + +QString ExportOOFileDialog::selectedFile() +{ + return QFileDialog::selectedFile(); +} + + +void ExportOOFileDialog::addFilter(const QString &f) +{ + lastFilter=f; + filters.append (f); + QFileDialog::addFilter (f); +} + +void ExportOOFileDialog::init() +{ + QDir d; + d.setPath ("/usr/share/vym/exports"); + scanExportConfigs(d); + d.setPath (d.homeDirPath()+"/exports"); + scanExportConfigs(d); + d.setPath ("exports"); + scanExportConfigs(d); + + connect ( + this,SIGNAL (filterSelected(const QString&)), + this, SLOT( newConfigPath(const QString &))); +} + +void ExportOOFileDialog::scanExportConfigs(QDir d) +{ + // Scan existing export configurations + SimpleSettings set; + QFile f; + if (d.exists()) + { + // Traverse files + d.setFilter( QDir::Files| QDir::Hidden | QDir::NoSymLinks ); + const QFileInfoList *filelist = d.entryInfoList(); + QFileInfoListIterator itfile( *filelist ); + QFileInfo *fi; + + while ( (fi = itfile.current()) != 0 ) + { + if (fi->fileName().endsWith(".conf") ) + { + configPaths.append (fi->absFilePath()); + set.clear(); + set.readSettings (fi->absFilePath()); + addFilter (set.readEntry("Name") + " (*.odp)"); + } + ++itfile; + } + } +}