File indexing completed on 2024-04-14 15:17:35
0001 /***************************************************************************** 0002 * Copyright (C) 2007 by Holger Danielsson (holger.danielsson@versanet.de) * 0003 * (C) 2016-2022 by Michel Ludwig (michel.ludwig@kdemail.net) * 0004 *****************************************************************************/ 0005 0006 /*************************************************************************** 0007 * * 0008 * This program is free software; you can redistribute it and/or modify * 0009 * it under the terms of the GNU General Public License as published by * 0010 * the Free Software Foundation; either version 2 of the License, or * 0011 * (at your option) any later version. * 0012 * * 0013 ***************************************************************************/ 0014 0015 #ifndef KILEEXTENSIONS_H 0016 #define KILEEXTENSIONS_H 0017 0018 #include "kileconstants.h" 0019 0020 #include <QString> 0021 #include <QUrl> 0022 0023 namespace KileDocument 0024 { 0025 0026 class Extensions 0027 { 0028 public: 0029 Extensions(); 0030 ~Extensions() {} 0031 0032 enum ExtensionType { TEX=1, PACKAGES=2, BIB=4, IMG=8, METAPOST=16, JS=32, KILE_PROJECT=64 }; 0033 0034 QString latexDocuments() const { 0035 return m_documents; 0036 } 0037 QString latexPackages() const { 0038 return m_packages; 0039 } 0040 QString bibtex() const { 0041 return m_bibtex; 0042 } 0043 QString images() const { 0044 return m_images; 0045 } 0046 QString metapost() const { 0047 return m_metapost; 0048 } 0049 0050 QString latexDocumentDefault() const { 0051 return m_latexDefault; 0052 } 0053 QString bibtexDefault() const { 0054 return m_bibtexDefault; 0055 } 0056 QString metapostDefault() const { 0057 return m_metapostDefault; 0058 } 0059 0060 // we need two methods as KEncodingFileDialog has no Qt-equivalent yet 0061 QString fileFilterKDEStyle(bool includeAllFiles, const std::list<ExtensionType>& extensions) const; 0062 QString fileFilterQtStyle(bool includeAllFiles, const std::list<ExtensionType>& extensions) const; 0063 0064 bool isTexFile(const QString &fileName) const; 0065 bool isTexFile(const QUrl &url) const { 0066 return isTexFile(url.fileName()); 0067 } 0068 bool isBibFile(const QString &fileName) const; 0069 bool isBibFile(const QUrl &url) const { 0070 return isBibFile(url.fileName()); 0071 } 0072 bool isScriptFile(const QString &fileName) const; 0073 bool isScriptFile(const QUrl &url) const { 0074 return isScriptFile(url.fileName()); 0075 } 0076 bool isProjectFile(const QString &fileName) const; 0077 bool isProjectFile(const QUrl &url) const { 0078 return isProjectFile(url.fileName()); 0079 } 0080 0081 bool isLatexDocument(const QString &ext) const { 0082 return validExtension(ext,m_documents); 0083 } 0084 bool isLatexPackage(const QString &ext) const { 0085 return validExtension(ext,m_packages); 0086 } 0087 bool isImage(const QString &ext) const { 0088 return validExtension(ext,m_images); 0089 } 0090 0091 KileDocument::Type determineDocumentType(const QUrl &url) const; 0092 QString defaultExtensionForDocumentType(KileDocument::Type type) const; 0093 0094 private: 0095 QString m_documents, m_packages; 0096 QString m_bibtex, m_metapost; 0097 QString m_images, m_script; 0098 QString m_project; 0099 0100 QString m_latexDefault, m_bibtexDefault; 0101 QString m_metapostDefault, m_scriptDefault; 0102 QString m_projectDefault; 0103 0104 bool isBibtex(const QString &ext) const { 0105 return validExtension(ext,m_bibtex); 0106 } 0107 bool isMetapost(const QString &ext) const { 0108 return validExtension(ext,m_metapost); 0109 } 0110 bool isScript(const QString &ext) const { 0111 return validExtension(ext,m_script); 0112 } 0113 bool isProject(const QString &ext) const { 0114 return validExtension(ext,m_project); 0115 } 0116 bool validExtension(const QString &ext, const QString &extensions) const; 0117 0118 void fileFilterRaw(ExtensionType type, QString& ext, QString& text) const; 0119 QString fileFilterKDEStyle(ExtensionType type) const; 0120 QString fileFilterQtStyle(ExtensionType type) const; 0121 }; 0122 0123 0124 } 0125 0126 #endif