exportoofiledialog.cpp
author insilmaril
Thu Jul 06 14:47:01 2006 +0000 (2006-07-06)
branchqt4-port
changeset 9 f94317a94db1
parent 2 608f976aa7bb
child 11 b8c547f0fc58
permissions -rw-r--r--
Text Editor now shows states again
     1 #include <iostream>
     2 
     3 #include "exportoofiledialog.h"
     4 
     5 ExportOOFileDialog::ExportOOFileDialog():QFileDialog()
     6 {
     7 	init();
     8 }
     9 
    10 ExportOOFileDialog::ExportOOFileDialog (QWidget * parent, const QString &caption ):QFileDialog(parent, caption)
    11 {
    12 	init();
    13 }
    14 
    15 QString ExportOOFileDialog::selectedConfig()
    16 {
    17 	QStringList::Iterator itpath=configPaths.begin();
    18 	QStringList::Iterator itf=filters.begin();
    19 	while (itf != filters.end()) 
    20 	{
    21 		if (*itf==selectedFilter()) return *itpath;
    22 		itpath++;	
    23 		itf++;
    24     }
    25 	qWarning ("ExportOOFileDialog::selectedConfig  No filter found!");
    26 	return "";
    27 }
    28 
    29 void ExportOOFileDialog::newConfigPath(const QString &s)
    30 {
    31 	lastFilter=s;
    32 }
    33 
    34 QString ExportOOFileDialog::selectedFile()
    35 {
    36 	return QFileDialog::selectedFile();
    37 }
    38 
    39 
    40 void ExportOOFileDialog::show()
    41 {
    42 	setFilters (filters);
    43 	QFileDialog::show();
    44 }
    45 
    46 void ExportOOFileDialog::init()
    47 {
    48 	setMode( QFileDialog::AnyFile );
    49 	QDir d;
    50 	d.setPath ("/usr/share/vym/exports");
    51 	scanExportConfigs(d);
    52 	d.setPath (d.homeDirPath()+"/.vym/exports");
    53 	scanExportConfigs(d);
    54 	d.setPath (d.currentPath()+"/exports");
    55 	scanExportConfigs(d);
    56 
    57 	connect (
    58 		this,SIGNAL (filterSelected(const QString&)),
    59 		this, SLOT( newConfigPath(const QString &)));
    60 }
    61 
    62 void ExportOOFileDialog::addFilter(const QString &f)
    63 {
    64 	lastFilter=f;
    65 	filters.append (f);
    66 }
    67 
    68 void ExportOOFileDialog::scanExportConfigs(QDir dir)
    69 {
    70 	// Scan existing export configurations
    71 	SimpleSettings set;
    72 	QFile f;
    73 	if (dir.exists())
    74 	{
    75 		// Traverse files
    76         dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks);
    77 
    78         QFileInfoList list = dir.entryInfoList();
    79         for (int i = 0; i < list.size(); ++i) {
    80             QFileInfo fi = list.at(i);
    81 
    82 			if (fi.fileName().endsWith(".conf") )
    83 			{
    84 				configPaths.append (fi.absFilePath());
    85 				set.clear();
    86 				set.readSettings (fi.absFilePath());
    87 				addFilter (set.readEntry("Name") + " (*.odp)");
    88 			}		
    89         }
    90 	}		
    91 }