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@365: ExportOOFileDialog::ExportOOFileDialog (QWidget * parent, const QString &caption ):QFileDialog(parent, caption) insilmaril@181: { insilmaril@181: init(); insilmaril@181: } insilmaril@181: insilmaril@357: bool ExportOOFileDialog::foundConfig() insilmaril@357: { insilmaril@357: return !filters.isEmpty(); insilmaril@357: } insilmaril@357: insilmaril@365: 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@365: if (*itf==selectedFilter()) 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@365: void ExportOOFileDialog::show() insilmaril@181: { insilmaril@365: setFilters (filters); insilmaril@365: QFileDialog::show(); 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@365: d.setPath (d.currentPath()+"/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@365: void ExportOOFileDialog::addFilter(const QString &f) insilmaril@365: { insilmaril@365: lastFilter=f; insilmaril@365: filters.append (f); insilmaril@365: } insilmaril@365: insilmaril@365: void ExportOOFileDialog::scanExportConfigs(QDir dir) insilmaril@181: { insilmaril@181: // Scan existing export configurations insilmaril@181: SimpleSettings set; insilmaril@181: QFile f; insilmaril@365: if (dir.exists()) insilmaril@181: { insilmaril@181: // Traverse files insilmaril@365: dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks); insilmaril@181: insilmaril@365: QFileInfoList list = dir.entryInfoList(); insilmaril@365: for (int i = 0; i < list.size(); ++i) { insilmaril@365: QFileInfo fi = list.at(i); insilmaril@365: insilmaril@365: if (fi.fileName().endsWith(".conf") ) insilmaril@181: { insilmaril@365: configPaths.append (fi.absFilePath()); insilmaril@181: set.clear(); insilmaril@365: set.readSettings (fi.absFilePath()); insilmaril@365: addFilter (set.readEntry(QString("Name")) + " (*.odp)"); insilmaril@181: } insilmaril@365: } insilmaril@181: } insilmaril@181: }