diff -r 000000000000 -r 0da9dd0b3911 exportoofiledialog.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/exportoofiledialog.cpp Wed Jul 22 19:56:29 2009 +0000 @@ -0,0 +1,95 @@ +#include + +#include "exportoofiledialog.h" + +ExportOOFileDialog::ExportOOFileDialog():QFileDialog() +{ + init(); +} + +ExportOOFileDialog::ExportOOFileDialog (QWidget * parent, const QString &caption ):QFileDialog(parent, caption) +{ + init(); +} + +bool ExportOOFileDialog::foundConfig() +{ + return !filters.isEmpty(); +} + + +QString ExportOOFileDialog::selectedConfig() +{ + QStringList::Iterator itpath=configPaths.begin(); + QStringList::Iterator itf=filters.begin(); + while (itf != filters.end()) + { + if (*itf==selectedFilter()) 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::show() +{ + setFilters (filters); + QFileDialog::show(); +} + +void ExportOOFileDialog::init() +{ + setMode( QFileDialog::AnyFile ); + QDir d; + d.setPath (vymBaseDir.path()+"/exports"); + scanExportConfigs(d); + d.setPath (d.homeDirPath()+"/.vym/exports"); + scanExportConfigs(d); + + connect ( + this,SIGNAL (filterSelected(const QString&)), + this, SLOT( newConfigPath(const QString &))); +} + +void ExportOOFileDialog::addFilter(const QString &f) +{ + lastFilter=f; + filters.append (f); +} + +void ExportOOFileDialog::scanExportConfigs(QDir dir) +{ + // Scan existing export configurations + SimpleSettings set; + QFile f; + if (dir.exists()) + { + // Traverse files + dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks); + + QFileInfoList list = dir.entryInfoList(); + for (int i = 0; i < list.size(); ++i) { + QFileInfo fi = list.at(i); + + if (fi.fileName().endsWith(".conf") ) + { + configPaths.append (fi.absFilePath()); + set.clear(); + set.readSettings (fi.absFilePath()); + addFilter (set.readEntry(QString("Name")) + " (*.odp)"); + } + } + } +}