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