insilmaril@2: #include insilmaril@2: insilmaril@2: #include "exportoofiledialog.h" insilmaril@2: insilmaril@9: ExportOOFileDialog::ExportOOFileDialog():QFileDialog() insilmaril@2: { insilmaril@2: init(); insilmaril@2: } insilmaril@2: insilmaril@9: ExportOOFileDialog::ExportOOFileDialog (QWidget * parent, const QString &caption ):QFileDialog(parent, caption) insilmaril@2: { insilmaril@2: init(); insilmaril@2: } insilmaril@2: insilmaril@11: bool ExportOOFileDialog::foundConfig() insilmaril@11: { insilmaril@11: return !filters.isEmpty(); insilmaril@11: } insilmaril@11: insilmaril@11: insilmaril@2: QString ExportOOFileDialog::selectedConfig() insilmaril@2: { insilmaril@2: QStringList::Iterator itpath=configPaths.begin(); insilmaril@2: QStringList::Iterator itf=filters.begin(); insilmaril@2: while (itf != filters.end()) insilmaril@2: { insilmaril@9: if (*itf==selectedFilter()) return *itpath; insilmaril@2: itpath++; insilmaril@2: itf++; insilmaril@2: } insilmaril@2: qWarning ("ExportOOFileDialog::selectedConfig No filter found!"); insilmaril@2: return ""; insilmaril@2: } insilmaril@2: insilmaril@2: void ExportOOFileDialog::newConfigPath(const QString &s) insilmaril@2: { insilmaril@2: lastFilter=s; insilmaril@2: } insilmaril@2: insilmaril@2: QString ExportOOFileDialog::selectedFile() insilmaril@2: { insilmaril@9: return QFileDialog::selectedFile(); insilmaril@2: } insilmaril@2: insilmaril@2: insilmaril@9: void ExportOOFileDialog::show() insilmaril@9: { insilmaril@9: setFilters (filters); insilmaril@9: QFileDialog::show(); insilmaril@9: } insilmaril@9: insilmaril@9: void ExportOOFileDialog::init() insilmaril@9: { insilmaril@9: setMode( QFileDialog::AnyFile ); insilmaril@9: QDir d; insilmaril@9: d.setPath ("/usr/share/vym/exports"); insilmaril@9: scanExportConfigs(d); insilmaril@9: d.setPath (d.homeDirPath()+"/.vym/exports"); insilmaril@9: scanExportConfigs(d); insilmaril@9: d.setPath (d.currentPath()+"/exports"); insilmaril@9: scanExportConfigs(d); insilmaril@9: insilmaril@9: connect ( insilmaril@9: this,SIGNAL (filterSelected(const QString&)), insilmaril@9: this, SLOT( newConfigPath(const QString &))); insilmaril@9: } insilmaril@9: insilmaril@2: void ExportOOFileDialog::addFilter(const QString &f) insilmaril@2: { insilmaril@2: lastFilter=f; insilmaril@2: filters.append (f); insilmaril@2: } insilmaril@2: insilmaril@2: void ExportOOFileDialog::scanExportConfigs(QDir dir) insilmaril@2: { insilmaril@2: // Scan existing export configurations insilmaril@2: SimpleSettings set; insilmaril@2: QFile f; insilmaril@2: if (dir.exists()) insilmaril@2: { insilmaril@2: // Traverse files insilmaril@2: dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks); insilmaril@2: insilmaril@2: QFileInfoList list = dir.entryInfoList(); insilmaril@2: for (int i = 0; i < list.size(); ++i) { insilmaril@2: QFileInfo fi = list.at(i); insilmaril@2: insilmaril@2: if (fi.fileName().endsWith(".conf") ) insilmaril@2: { insilmaril@2: configPaths.append (fi.absFilePath()); insilmaril@2: set.clear(); insilmaril@2: set.readSettings (fi.absFilePath()); insilmaril@2: addFilter (set.readEntry("Name") + " (*.odp)"); insilmaril@2: } insilmaril@2: } insilmaril@2: } insilmaril@2: }