1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
|
#include <iostream>
#include "exportoofiledialog.h"
ExportOOFileDialog::ExportOOFileDialog():QFileDialog()
{
init();
}
ExportOOFileDialog::ExportOOFileDialog (QWidget * parent, const char* name, bool modal):QFileDialog(parent, name,modal)
{
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==lastFilter) return *itpath;
itpath++;
itf++;
}
qWarning ("ExportOOFileDialog::selectedConfig No filter found!");
return "";
}
void ExportOOFileDialog::newConfigPath(const QString &s)
{
lastFilter=s;
}
QString ExportOOFileDialog::selectedFile()
{
return QFileDialog::selectedFile();
}
void ExportOOFileDialog::addFilter(const QString &f)
{
lastFilter=f;
filters.append (f);
QFileDialog::addFilter (f);
}
void ExportOOFileDialog::init()
{
setMode( QFileDialog::AnyFile );
QDir d;
d.setPath ("/usr/share/vym/exports");
scanExportConfigs(d);
d.setPath (d.homeDirPath()+"/.vym/exports");
scanExportConfigs(d);
d.setPath ("exports");
scanExportConfigs(d);
connect (
this,SIGNAL (filterSelected(const QString&)),
this, SLOT( newConfigPath(const QString &)));
}
void ExportOOFileDialog::scanExportConfigs(QDir d)
{
// Scan existing export configurations
SimpleSettings set;
QFile f;
if (d.exists())
{
// Traverse files
d.setFilter( QDir::Files| QDir::Hidden | QDir::NoSymLinks );
const QFileInfoList *filelist = d.entryInfoList();
QFileInfoListIterator itfile( *filelist );
QFileInfo *fi;
while ( (fi = itfile.current()) != 0 )
{
if (fi->fileName().endsWith(".conf") )
{
configPaths.append (fi->absFilePath());
set.clear();
set.readSettings (fi->absFilePath());
addFilter (set.readEntry("Name") + " (*.odp)");
}
++itfile;
}
}
}
|