insilmaril@181: #include insilmaril@181: insilmaril@181: #include "exportoofiledialog.h" insilmaril@181: insilmaril@181: ExportOOFileDialog::ExportOOFileDialog():QFileDialog() insilmaril@181: { insilmaril@181: init(); insilmaril@181: } insilmaril@181: insilmaril@181: ExportOOFileDialog::ExportOOFileDialog (QWidget * parent, const char* name, bool modal):QFileDialog(parent, name,modal) insilmaril@181: { insilmaril@181: init(); insilmaril@181: } insilmaril@181: insilmaril@181: QString ExportOOFileDialog::selectedConfig() insilmaril@181: { insilmaril@181: QStringList::Iterator itpath=configPaths.begin(); insilmaril@181: QStringList::Iterator itf=filters.begin(); insilmaril@181: while (itf != filters.end()) insilmaril@181: { insilmaril@181: if (*itf==lastFilter) return *itpath; insilmaril@181: itpath++; insilmaril@181: itf++; insilmaril@181: } insilmaril@181: qWarning ("ExportOOFileDialog::selectedConfig No filter found!"); insilmaril@181: return ""; insilmaril@181: } insilmaril@181: insilmaril@181: void ExportOOFileDialog::newConfigPath(const QString &s) insilmaril@181: { insilmaril@181: lastFilter=s; insilmaril@181: } insilmaril@181: insilmaril@181: QString ExportOOFileDialog::selectedFile() insilmaril@181: { insilmaril@181: return QFileDialog::selectedFile(); insilmaril@181: } insilmaril@181: insilmaril@181: insilmaril@181: void ExportOOFileDialog::addFilter(const QString &f) insilmaril@181: { insilmaril@181: lastFilter=f; insilmaril@181: filters.append (f); insilmaril@181: QFileDialog::addFilter (f); insilmaril@181: } insilmaril@181: insilmaril@181: void ExportOOFileDialog::init() insilmaril@181: { insilmaril@198: setMode( QFileDialog::AnyFile ); insilmaril@181: QDir d; insilmaril@181: d.setPath ("/usr/share/vym/exports"); insilmaril@181: scanExportConfigs(d); insilmaril@196: d.setPath (d.homeDirPath()+"/.vym/exports"); insilmaril@181: scanExportConfigs(d); insilmaril@181: d.setPath ("exports"); insilmaril@181: scanExportConfigs(d); insilmaril@181: insilmaril@181: connect ( insilmaril@181: this,SIGNAL (filterSelected(const QString&)), insilmaril@181: this, SLOT( newConfigPath(const QString &))); insilmaril@181: } insilmaril@181: insilmaril@181: void ExportOOFileDialog::scanExportConfigs(QDir d) insilmaril@181: { insilmaril@181: // Scan existing export configurations insilmaril@181: SimpleSettings set; insilmaril@181: QFile f; insilmaril@181: if (d.exists()) insilmaril@181: { insilmaril@181: // Traverse files insilmaril@181: d.setFilter( QDir::Files| QDir::Hidden | QDir::NoSymLinks ); insilmaril@181: const QFileInfoList *filelist = d.entryInfoList(); insilmaril@181: QFileInfoListIterator itfile( *filelist ); insilmaril@181: QFileInfo *fi; insilmaril@181: insilmaril@181: while ( (fi = itfile.current()) != 0 ) insilmaril@181: { insilmaril@181: if (fi->fileName().endsWith(".conf") ) insilmaril@181: { insilmaril@181: configPaths.append (fi->absFilePath()); insilmaril@181: set.clear(); insilmaril@181: set.readSettings (fi->absFilePath()); insilmaril@181: addFilter (set.readEntry("Name") + " (*.odp)"); insilmaril@181: } insilmaril@181: ++itfile; insilmaril@181: } insilmaril@181: } insilmaril@181: }