本文整理汇总了C++中QMimeDatabase::mimeTypeForData方法的典型用法代码示例。如果您正苦于以下问题:C++ QMimeDatabase::mimeTypeForData方法的具体用法?C++ QMimeDatabase::mimeTypeForData怎么用?C++ QMimeDatabase::mimeTypeForData使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QMimeDatabase
的用法示例。
在下文中一共展示了QMimeDatabase::mimeTypeForData方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: uploadFileData
QNetworkReply* Parse::uploadFileData(QByteArray data, QString name)
{
if (!isReady() || data.isEmpty()) return NULL;
if (name.isEmpty()) {
// compute name from content
}
setEndPoint( "files/"+name);
QMimeDatabase db;
QMimeType mime = db.mimeTypeForData(data);
initHeaders();
setHeader(QNetworkRequest::ContentTypeHeader, mime.name().toUtf8());
m_conn = connect(this, &BaaS::replyFinished, [=]( QJsonDocument json){
disconnect(m_conn);
if ( getHttpCode() == 201 ){
currentObject = json.object();
// Create fileLit object
QString mainObj = "{\"url\": \""+currentObject.value("url").toString()+
"\",\"file\": {\"name\": \""+currentObject.value("name").toString()+
",\"__type\": \"File\"}}";
setEndPoint("classes/FilesList");
create( mainObj);
emit fileUploaded( currentObject);
}
} );
return request( BaaS::POST, data );
}
示例2: magicSetType
void NodeHelper::magicSetType(KMime::Content *node, bool aAutoDecode)
{
const QByteArray body = (aAutoDecode) ? node->decodedContent() : node->body();
QMimeDatabase db;
QMimeType mime = db.mimeTypeForData(body);
QString mimetype = mime.name();
node->contentType()->setMimeType(mimetype.toLatin1());
}
示例3: save
void ImageEffect::save(KoXmlWriter &writer)
{
writer.startElement(ImageEffectId);
saveCommonAttributes(writer);
QByteArray ba;
QBuffer buffer(&ba);
buffer.open(QIODevice::WriteOnly);
if (m_image.save(&buffer, "PNG")) {
QMimeDatabase db;
const QString mimeType(db.mimeTypeForData(ba).name());
writer.addAttribute("xlink:href", "data:" + mimeType + ";base64," + ba.toBase64());
}
writer.endElement();
}
示例4: createDevice
// Only called when a filename was given
bool KTar::createDevice(QIODevice::OpenMode mode)
{
if (d->mimetype.isEmpty()) {
// Find out mimetype manually
QMimeDatabase db;
QMimeType mime;
if (mode != QIODevice::WriteOnly && QFile::exists(fileName())) {
// Give priority to file contents: if someone renames a .tar.bz2 to .tar.gz,
// we can still do the right thing here.
QFile f(fileName());
if (f.open(QIODevice::ReadOnly)) {
mime = db.mimeTypeForData(&f);
}
if (!mime.isValid()) {
// Unable to determine mimetype from contents, get it from file name
mime = db.mimeTypeForFile(fileName(), QMimeDatabase::MatchExtension);
}
} else {
mime = db.mimeTypeForFile(fileName(), QMimeDatabase::MatchExtension);
}
//qDebug() << mode << mime->name();
if (mime.inherits(QString::fromLatin1("application/x-compressed-tar")) || mime.inherits(QString::fromLatin1(application_gzip))) {
// gzipped tar file (with possibly invalid file name), ask for gzip filter
d->mimetype = QString::fromLatin1(application_gzip);
} else if (mime.inherits(QString::fromLatin1("application/x-bzip-compressed-tar")) || mime.inherits(QString::fromLatin1(application_bzip))) {
// bzipped2 tar file (with possibly invalid file name), ask for bz2 filter
d->mimetype = QString::fromLatin1(application_bzip);
} else if (mime.inherits(QString::fromLatin1("application/x-lzma-compressed-tar")) || mime.inherits(QString::fromLatin1(application_lzma))) {
// lzma compressed tar file (with possibly invalid file name), ask for xz filter
d->mimetype = QString::fromLatin1(application_lzma);
} else if (mime.inherits(QString::fromLatin1("application/x-xz-compressed-tar")) || mime.inherits(QString::fromLatin1(application_xz))) {
// xz compressed tar file (with possibly invalid name), ask for xz filter
d->mimetype = QString::fromLatin1(application_xz);
}
}
if (d->mimetype == QLatin1String("application/x-tar")) {
return KArchive::createDevice(mode);
} else if (mode == QIODevice::WriteOnly) {
if (!KArchive::createDevice(mode))
return false;
if (!d->mimetype.isEmpty()) {
// Create a compression filter on top of the QSaveFile device that KArchive created.
//qDebug() << "creating KFilterDev for" << d->mimetype;
KCompressionDevice::CompressionType type = KFilterDev::compressionTypeForMimeType(d->mimetype);
KCompressionDevice* compressionDevice = new KCompressionDevice(device(), true, type);
setDevice(compressionDevice);
}
return true;
} else {
// The compression filters are very slow with random access.
// So instead of applying the filter to the device,
// the file is completely extracted instead,
// and we work on the extracted tar file.
// This improves the extraction speed by the tar ioslave dramatically,
// if the archive file contains many files.
// This is because the tar ioslave extracts one file after the other and normally
// has to walk through the decompression filter each time.
// Which is in fact nearly as slow as a complete decompression for each file.
Q_ASSERT(!d->tmpFile);
d->tmpFile = new QTemporaryFile();
d->tmpFile->setFileTemplate(QLatin1String("ktar-XXXXXX.tar"));
d->tmpFile->open();
//qDebug() << "creating tempfile:" << d->tmpFile->fileName();
setDevice(d->tmpFile);
return true;
}
}
示例5: request
/*!
* \internal
*/
QGeometry *MeshLoaderFunctor::operator()()
{
if (m_sourcePath.isEmpty()) {
qCWarning(Render::Jobs) << Q_FUNC_INFO << "Mesh is empty, nothing to load";
return nullptr;
}
QStringList ext;
if (!Qt3DCore::QDownloadHelperService::isLocal(m_sourcePath)) {
if (m_sourceData.isEmpty()) {
if (m_mesh) {
// Output a warning in the case a user is calling the functor directly
// in the frontend
if (m_nodeManagers == nullptr || m_downloaderService == nullptr) {
qWarning() << "Mesh source points to a remote URL. Remotes meshes can only be loaded if the geometry is processed by the Qt3DRender backend";
return nullptr;
}
Qt3DCore::QDownloadRequestPtr request(new MeshDownloadRequest(m_mesh, m_sourcePath, m_nodeManagers));
m_downloaderService->submitRequest(request);
}
return nullptr;
}
QMimeDatabase db;
QMimeType mtype = db.mimeTypeForData(m_sourceData);
if (mtype.isValid()) {
ext = mtype.suffixes();
}
QFileInfo finfo(m_sourcePath.path());
ext << finfo.suffix();
ext.removeAll(QLatin1String(""));
if (!ext.contains(QLatin1String("obj")))
ext << QLatin1String("obj");
} else {
QString filePath = Qt3DRender::QUrlHelper::urlToLocalFileOrQrc(m_sourcePath);
QFileInfo finfo(filePath);
if (finfo.suffix().isEmpty())
ext << QLatin1String("obj");
else
ext << finfo.suffix();
}
QScopedPointer<QGeometryLoaderInterface> loader;
for (const QString &e: qAsConst(ext)) {
loader.reset(qLoadPlugin<QGeometryLoaderInterface, QGeometryLoaderFactory>(geometryLoader(), e));
if (loader)
break;
}
if (!loader) {
qCWarning(Render::Jobs, "unsupported format encountered (%s)", qPrintable(ext.join(QLatin1String(", "))));
return nullptr;
}
if (m_sourceData.isEmpty()) {
QString filePath = Qt3DRender::QUrlHelper::urlToLocalFileOrQrc(m_sourcePath);
QFile file(filePath);
if (!file.open(QIODevice::ReadOnly)) {
qCDebug(Render::Jobs) << "Could not open file" << filePath << "for reading";
return nullptr;
}
if (loader->load(&file, m_meshName))
return loader->geometry();
qCWarning(Render::Jobs) << Q_FUNC_INFO << "Mesh loading failure for:" << filePath;
} else {
QT_PREPEND_NAMESPACE(QBuffer) buffer(&m_sourceData);
if (!buffer.open(QIODevice::ReadOnly)) {
return nullptr;
}
if (loader->load(&buffer, m_meshName))
return loader->geometry();
qCWarning(Render::Jobs) << Q_FUNC_INFO << "Mesh loading failure for:" << m_sourcePath;
}
return nullptr;
}