summaryrefslogtreecommitdiffstats
path: root/src/kile/kileextensions.h
blob: 1f1807e2f99da45592941466a9377711b5e3cf11 (plain)
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
/***************************************************************************
    begin                : Mar 12 2007
    copyright            : 2007 by Holger Danielsson
    email                : holger.danielsson@versanet.de
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 ***************************************************************************/

#ifndef KILEEXTENSIONS_H
#define KILEEXTENSIONS_H

#include "kileconstants.h"

#include <qstring.h>
#include <qstringlist.h>

#include <kurl.h>

namespace KileDocument 
{

class Extensions
{
public:
	Extensions();
	~Extensions() {}

	enum { LATEX_EXT_DOC=1,  LATEX_EXT_PKG=2,  LATEX_EXT_BIB=4, LATEX_EXT_IMG=8,  LATEX_EXT_MP=16, LATEX_EXT_JS=32, LATEX_EXT_PROJ=64 };

	QString latexDocuments() { return m_documents; }
	QString latexPackages() { return m_packages; }
	QString bibtex() { return m_bibtex; }
	QString images() { return m_images; }
	QString metapost() { return m_metapost; }

	QString latexDocumentDefault() { return m_latexDefault; }
	QString bibtexDefault() { return m_bibtexDefault; }
	QString metapostDefault() { return m_metapostDefault; }

	QString latexDocumentFileFilter() { return fileFilter(LATEX_EXT_DOC); }
	QString latexPackageFileFilter() { return fileFilter(LATEX_EXT_PKG); }
	QString bibtexFileFilter() { return fileFilter(LATEX_EXT_BIB); }
	QString imageFileFilter() { return fileFilter(LATEX_EXT_IMG); }
	QString metapostFileFilter() { return fileFilter(LATEX_EXT_MP); }
	QString scriptFileFilter() { return fileFilter(LATEX_EXT_JS); }
	QString projectFileFilter() { return fileFilter(LATEX_EXT_PROJ); }
	
	bool isTexFile(const QString &fileName) const;
	bool isTexFile(const KURL &url) const { return isTexFile(url.fileName()); }
	bool isBibFile(const QString &fileName) const;	
	bool isBibFile(const KURL &url) const { return isBibFile(url.fileName()); }
	bool isScriptFile(const QString &fileName) const;
	bool isScriptFile(const KURL & url) const { return isScriptFile(url.fileName()); }
	bool isProjectFile(const QString &fileName) const;
	bool isProjectFile(const KURL &url) const { return isProjectFile(url.fileName()); }
	
	bool isLatexDocument(const QString &ext) const { return validExtension(ext,m_documents); }
	bool isLatexPackage(const QString &ext) const { return validExtension(ext,m_packages); }
	bool isImage(const QString &ext) const { return validExtension(ext,m_images); }

	KileDocument::Type determineDocumentType(const KURL &url) const;
	QString defaultExtensionForDocumentType(KileDocument::Type type) const;

private:
	QString m_documents, m_packages;
	QString m_bibtex, m_metapost;
	QString m_images, m_script;
	QString m_project;

	QString m_latexDefault, m_bibtexDefault;
	QString m_metapostDefault, m_scriptDefault;
	QString m_projectDefault;

	bool isBibtex(const QString &ext) const { return validExtension(ext,m_bibtex); }
	bool isMetapost(const QString &ext) const { return validExtension(ext,m_metapost); }
	bool isScript(const QString &ext) const { return validExtension(ext,m_script); }
	bool isProject(const QString &ext) const { return validExtension(ext,m_project); }
	bool validExtension(const QString &ext, const QString &extensions) const;

	QString fileFilter(uint type);
};

}

#endif