#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==selectedNameFilter()) return *itpath;
itpath++;
itf++;
}
qWarning ("ExportOOFileDialog::selectedConfig No filter found!");
return "";
}
void ExportOOFileDialog::newConfigPath(const QString &s)
{
lastFilter=s;
}
void ExportOOFileDialog::show()
{
setNameFilters (filters);
QFileDialog::show();
}
void ExportOOFileDialog::init()
{
setFileMode( QFileDialog::AnyFile );
QDir d;
d.setPath ("/usr/share/vym/exports");
scanExportConfigs(d);
d.setPath (d.homePath()+"/.vym/exports");
scanExportConfigs(d);
d.setPath (d.currentPath()+"/exports");
scanExportConfigs(d);
setNameFilters (filters);
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.absoluteFilePath());
set.clear();
set.readSettings (fi.absoluteFilePath());
addFilter (set.value (QString("Name")) + " (*.odp)");
}
}
}
}