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