KDECore
kmimetyperepository.cpp
Go to the documentation of this file.
59 KMimeType::Ptr KMimeTypeRepository::findMimeTypeByName(const QString &_name, KMimeType::FindByNameOption options)
81 const QStringList globFiles = KGlobal::dirs()->findAllResources("xdgdata-mime", QLatin1String("globs"));
108 if (pattern[0] == QLatin1Char('*') && pattern.indexOf(QLatin1Char('[')) == -1 && starCount == 1)
135 if (pattern.indexOf(QLatin1Char('[')) == -1 && starCount == 0 && pattern.indexOf(QLatin1Char('?')))
150 KMimeGlobsFileParser::GlobList& patternList = highWeight ? m_globs.m_highWeightGlobs : m_globs.m_lowWeightGlobs;
169 if ( matchFileName( (glob.flags & CaseSensitive) ? fileName : lowerCaseFileName, glob.pattern ) ) {
192 QStringList KMimeTypeRepository::findFromFileName(const QString &fileName, QString *pMatchingExtension)
216 // Can't return yet; *.tar.bz2 has to win over *.bz2, so we need the low-weight mimetypes anyway,
229 KMimeType::Ptr KMimeTypeRepository::findFromContent(QIODevice* device, int* accuracy, QByteArray& beginning)
287 myGroup != QLatin1String("all") && myGroup != QLatin1String("fonts") && myGroup != QLatin1String("print") && myGroup != QLatin1String("uri")
301 const QStringList subclassFiles = KGlobal::dirs()->findAllResources("xdgdata-mime", QLatin1String("subclasses"));
354 const QStringList magicFiles = KGlobal::dirs()->findAllResources("xdgdata-mime", QLatin1String("magic"));
358 while (magicIter.hasPrevious()) { // global first, then local. Turns out it doesn't matter though.
389 QList<KMimeMagicRule> KMimeTypeRepository::parseMagicFile(QIODevice* file, const QString& fileName) const
394 kWarning(servicesDebugArea()) << "Invalid magic file " << fileName << " starts with " << header;
437 kWarning(servicesDebugArea()) << "Invalid magic file " << fileName << " '>' not found, got " << ch << " at pos " << file->pos();
556 const QStringList aliasFiles = KGlobal::dirs()->findAllResources("xdgdata-mime", QLatin1String("aliases"));
578 //kDebug(servicesDebugArea()) << "Ignoring alias" << aliasTypeName << "because also defined as a real mimetype";
613 "Could not find mime types:\n<resource>%2</resource>", _types.count(), _types.join(QLatin1String("</resource>\n<resource>")) ) );
627 // Note that this messagebox is queued, so it will only be shown once getting back to the event loop
631 "Check that shared-mime-info is installed, and that XDG_DATA_DIRS is not set, or includes /usr/share."));
673 const QString pathDefaultMimeType = KGlobal::dirs()->locateLocal("xdgdata-mime", defaultMimeType+QLatin1String(".xml"));
709 const QStringList versionFiles = KGlobal::dirs()->findAllResources("xdgdata-mime", QLatin1String("version"));
716 return KDE_MAKE_VERSION(versionRe.cap(1).toInt(), versionRe.cap(2).toInt(), versionRe.cap(4).toInt());
752 return KDE_MAKE_VERSION(versionRe.cap(1).toInt(), versionRe.cap(2).toInt(), versionRe.cap(4).toInt());
771 QRegExp versionRe(QString::fromLatin1("update-mime-database \\(shared-mime-info\\) (\\d+)\\.(\\d+)(\\.(\\d+))?"));
773 return KDE_MAKE_VERSION(versionRe.cap(1).toInt(), versionRe.cap(2).toInt(), versionRe.cap(4).toInt());
775 kWarning(servicesDebugArea()) << "Unexpected version scheme from update-mime-database -v: got" << out;
void setCodec(QTextCodec *codec)
void lockForWrite()
KMimeType::Ptr defaultMimeTypePtr()
Definition: kmimetyperepository.cpp:662
void message(KMessage::MessageType messageType, const QString &text, const QString &caption=QString())
Display a long message of a certain type.
Definition: kmessage.cpp:92
void setPatternSyntax(PatternSyntax syntax)
#define KDE_MAKE_VERSION(a, b, c)
Make a number from the major, minor and release number of a KDE version.
Definition: kdeversion.h.cmake:75
QString i18n(const char *text)
Returns a localized version of a string.
Definition: klocalizedstring.h:630
void clear()
Definition: kmimetype.h:105
int indexOf(QChar ch, int from, Qt::CaseSensitivity cs) const
Definition: kmimetype.h:105
QString cap(int nth) const
iterator insert(const Key &key, const T &value)
QStringList patternsForMimetype(const QString &mimeType)
Return the patterns (globs) for a given mimetype TEMPORARY method, it will go away once we can requir...
Definition: kmimetyperepository.cpp:599
KMimeType::Ptr findMimeTypeByName(const QString &_name, KMimeType::FindByNameOption options=KMimeType::DontResolveAlias)
Creates a KMimeType.
Definition: kmimetyperepository.cpp:59
virtual bool atEnd() const
QString readLine(qint64 maxlen)
void push_back(const T &value)
virtual bool seek(qint64 pos)
QStringList split(const QString &sep, SplitBehavior behavior, Qt::CaseSensitivity cs) const
QString i18np(const char *sing, const char *plur, const A1 &a1)
Returns a localized version of a string with 1 argument using correct plural form.
Definition: klocalizedstring.h:966
#define mask
#define K_GLOBAL_STATIC(TYPE, NAME)
This macro makes it easy to use non-POD types as global statics.
Definition: kglobal.h:221
static QString locate(const char *type, const QString &filename, const KComponentData &cData=KGlobal::mainComponent())
This function is just for convenience.
Definition: kstandarddirs.cpp:2085
bool isEmpty() const
QString simplified() const
PatternsMap patternsMap() const
Definition: kmimeglobsfileparser.cpp:193
bool startsWith(const QByteArray &ba) const
Definition: kmimemagicrule_p.h:53
QByteArray fromRawData(const char *data, int size)
QString join(const QString &separator) const
bool exists() const
static bool matchFileName(const QString &filename, const QString &pattern)
Definition: kmimetyperepository.cpp:98
virtual qint64 pos() const
int lastIndexOf(QChar ch, int from, Qt::CaseSensitivity cs) const
bool getChar(char *c)
bool match(QIODevice *device, qint64 deviceSize, QByteArray &availableData) const
Definition: kmimemagicrule.cpp:102
void clear()
void resize(int size)
int indexIn(const QString &str, int offset, CaretMode caretMode) const
QStringList parents(const QString &mime)
Returns the list of parents for a given mimetype.
Definition: kmimetyperepository.cpp:294
void unlock()
int count(const T &value) const
QString fromLocal8Bit(const char *str, int size)
GlobList m_highWeightGlobs
Definition: kmimeglobsfileparser_p.h:93
void append(const T &value)
bool atEnd() const
virtual qint64 size() const
bool useFavIcons()
Returns true if KMimeType::favIconForUrl should talk to kded's favicons module.
Definition: kmimetyperepository.cpp:681
Definition: kmimeglobsfileparser_p.h:32
int toInt(bool *ok, int base) const
bool isEmpty() const
bool isEmpty() const
bool startsWith(const QString &s, Qt::CaseSensitivity cs) const
qint64 read(char *data, qint64 maxSize)
bool isOpen() const
T & first()
int sharedMimeInfoVersion()
Definition: kmimetyperepository.cpp:783
QString resolveAlias(const QString &mime)
Check if mime is an alias, and return the canonical name for it if it is, otherwise empty...
Definition: kmimetyperepository.cpp:85
virtual bool open(QFlags< QIODevice::OpenModeFlag > mode)
static void errorMissingMimeTypes(const QStringList &_types)
Definition: kmimetyperepository.cpp:610
QString right(int n) const
iterator end()
QString toLower() const
const T value(const Key &key) const
bool waitForStarted(int msecs)
const QChar * unicode() const
GlobList m_lowWeightGlobs
Definition: kmimeglobsfileparser_p.h:94
QString mid(int position, int n) const
Definition: kmimetyperepository_p.h:36
bool isEmpty() const
static QString locateLocal(const char *type, const QString &filename, const KComponentData &cData=KGlobal::mainComponent())
This function is much like locate.
Definition: kstandarddirs.cpp:2091
static QString fallbackParent(const QString &mimeTypeName)
Definition: kmimetyperepository.cpp:278
static QString defaultMimeType()
Returns the name of the default mimetype.
Definition: kmimetype.cpp:597
int count() const
virtual bool atEnd() const
void checkEssentialMimeTypes()
This function makes sure that vital mime types are installed.
Definition: kmimetyperepository.cpp:616
T & last()
static QString findExe(const QString &appname, const QString &pathstr=QString(), SearchOptions options=NoSearchOptions)
Finds the executable in the system path.
Definition: kstandarddirs.cpp:1328
int length() const
char * data()
QString left(int n) const
QString fromLatin1(const char *str, int size)
static Ptr mimeType(const QString &name, FindByNameOption options=ResolveAliases)
Retrieve a pointer to the mime type name.
Definition: kmimetype.cpp:58
QStringList findAllResources(const char *type, const QString &filter=QString(), SearchOptions options=NoSearchOptions) const
Tries to find all resources with the specified type.
Definition: kstandarddirs.cpp:900
const_iterator constEnd() const
const_iterator constBegin() const
QHash< QString, QStringList > m_fastPatterns
Definition: kmimeglobsfileparser_p.h:92
Definition: kmimemagicrule_p.h:31
static bool isBufferBinaryData(const QByteArray &data)
Returns whether a buffer has an internal format that is not human readable.
Definition: kmimetype.cpp:74
bool exactMatch(const QString &str) const
QString canonicalName(const QString &mime)
Resolve mime if it's an alias, and return it otherwise.
Definition: kmimetyperepository.cpp:90
T readEntry(const QString &key, const T &aDefault) const
Reads the value of an entry specified by pKey in the current group.
Definition: kconfiggroup.h:248
iterator begin()
static char readNumber(qint64 &value, QIODevice *file)
Definition: kmimetyperepository.cpp:368
static bool mimeMagicRuleCompare(const KMimeMagicRule &lhs, const KMimeMagicRule &rhs)
Definition: kmimetyperepository.cpp:347
void start(const QString &program, const QStringList &arguments, QFlags< QIODevice::OpenModeFlag > mode)
QString decodeName(const QByteArray &localFileName)
QByteArray readAllStandardError()
static void addPlatformSpecificPkgConfigPath(QStringList &paths)
Definition: kmimetyperepository.cpp:695
qint64 readLine(char *data, qint64 maxSize)
bool waitForFinished(int msecs)
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:22:11 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:22:11 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.