From 3cf815c995738d86cc58a3529c23c16aad6bbb40 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Sat, 4 May 2024 20:19:23 +0300 Subject: [PATCH] generic: adjust to KMimeType changes Signed-off-by: Ivailo Monev --- ark/kerfuffle/archive.cpp | 15 +----------- ark/part/archivemodel.cpp | 2 +- ark/part/arkviewer.cpp | 5 ++-- ark/part/infopanel.cpp | 4 ++-- gwenview/lib/document/loadingdocumentimpl.cpp | 6 ++--- ksnapshot/ksnapshotobject.cpp | 2 +- okular/core/document.cpp | 24 +++++-------------- okular/generators/comicbook/document.cpp | 2 +- okular/part.cpp | 6 ++--- okular/tests/addremoveannotationtest.cpp | 2 +- okular/tests/annotationstest.cpp | 2 +- okular/tests/documenttest.cpp | 2 +- okular/tests/editannotationcontentstest.cpp | 2 +- okular/tests/editformstest.cpp | 2 +- .../tests/modifyannotationpropertiestest.cpp | 2 +- okular/tests/searchtest.cpp | 2 +- okular/tests/translateannotationtest.cpp | 2 +- okular/ui/annotationwidgets.cpp | 2 +- okular/ui/embeddedfilesdialog.cpp | 2 +- thumbnailers/audio/AudioThumbs.cpp | 2 +- 20 files changed, 32 insertions(+), 56 deletions(-) diff --git a/ark/kerfuffle/archive.cpp b/ark/kerfuffle/archive.cpp index a84808a3..053f601b 100644 --- a/ark/kerfuffle/archive.cpp +++ b/ark/kerfuffle/archive.cpp @@ -45,24 +45,11 @@ static bool comparePlugins(const KService::Ptr &p1, const KService::Ptr &p2) return (p1->property(QLatin1String( "X-KDE-Priority" )).toInt()) > (p2->property(QLatin1String( "X-KDE-Priority" )).toInt()); } -static QString determineMimeType(const QString& filename) -{ - if (!QFile::exists(filename)) { - return KMimeType::findByPath(filename)->name(); - } - - QFile file(filename); - if (!file.open(QIODevice::ReadOnly)) { - return QString(); - } - return KMimeType::findByNameAndContent(filename, &file)->name(); -} - static KService::List findPluginOffers(const QString& filename, const QString& fixedMimeType) { KService::List offers; - const QString mimeType = fixedMimeType.isEmpty() ? determineMimeType(filename) : fixedMimeType; + const QString mimeType = fixedMimeType.isEmpty() ? KMimeType::findByUrl(KUrl(filename))->name() : fixedMimeType; if (!mimeType.isEmpty()) { offers = KMimeTypeTrader::self()->query(mimeType, QLatin1String( "Kerfuffle/Plugin" ), QLatin1String( "(exist Library)" )); diff --git a/ark/part/archivemodel.cpp b/ark/part/archivemodel.cpp index c0142076..17534300 100644 --- a/ark/part/archivemodel.cpp +++ b/ark/part/archivemodel.cpp @@ -80,7 +80,7 @@ public: if (entry[IsDirectory].toBool()) { m_icon = KIconLoader::global()->loadMimeTypeIcon(KMimeType::mimeType(QLatin1String("inode/directory"))->iconName(), KIconLoader::Small); } else { - const KMimeType::Ptr mimeType = KMimeType::findByPath(m_entry[FileName].toString(), 0, true); + const KMimeType::Ptr mimeType = KMimeType::findByUrl(KUrl(m_entry[FileName].toString())); m_icon = KIconLoader::global()->loadMimeTypeIcon(mimeType->iconName(), KIconLoader::Small); } } diff --git a/ark/part/arkviewer.cpp b/ark/part/arkviewer.cpp index af2c18d7..cad95af6 100644 --- a/ark/part/arkviewer.cpp +++ b/ark/part/arkviewer.cpp @@ -88,7 +88,8 @@ void ArkViewer::dialogClosed() void ArkViewer::view(const QString& fileName, QWidget *parent) { - KMimeType::Ptr mimeType = KMimeType::findByPath(fileName); + const KUrl fileNameUrl = KUrl(fileName); + KMimeType::Ptr mimeType = KMimeType::findByUrl(fileNameUrl); kDebug() << "MIME type" << mimeType->name(); KService::Ptr viewer = ArkViewer::getViewer(mimeType); @@ -99,7 +100,7 @@ void ArkViewer::view(const QString& fileName, QWidget *parent) // So there is no point in using KRun::runUrl() which would need // to do the same again. - const KUrl::List fileUrlList = KUrl(fileName); + const KUrl::List fileUrlList = fileNameUrl; // The last argument (tempFiles) set to true means that the temporary // file will be removed when the viewer application exits. KRun::run(*viewer, fileUrlList, parent, true); diff --git a/ark/part/infopanel.cpp b/ark/part/infopanel.cpp index c69505bb..3a8c4307 100644 --- a/ark/part/infopanel.cpp +++ b/ark/part/infopanel.cpp @@ -104,7 +104,7 @@ void InfoPanel::setIndex(const QModelIndex& index) if (entry[ IsDirectory ].toBool()) { mimeType = KMimeType::mimeType(QLatin1String( "inode/directory" )); } else { - mimeType = KMimeType::findByPath(entry[ FileName ].toString(), 0, true); + mimeType = KMimeType::findByUrl(KUrl(entry[ FileName ].toString())); } iconWidget->setPixmap(getMimeIcon(mimeType->iconName())); @@ -186,7 +186,7 @@ QString InfoPanel::metadataTextFor(const QModelIndex &index) if (entry[ IsDirectory ].toBool()) { mimeType = KMimeType::mimeType(QLatin1String( "inode/directory" )); } else { - mimeType = KMimeType::findByPath(entry[ FileName ].toString(), 0, true); + mimeType = KMimeType::findByUrl(KUrl(entry[ FileName ].toString())); } text += i18n("Type: %1
", mimeType->comment()); diff --git a/gwenview/lib/document/loadingdocumentimpl.cpp b/gwenview/lib/document/loadingdocumentimpl.cpp index 7b0f32ef..0928ce93 100644 --- a/gwenview/lib/document/loadingdocumentimpl.cpp +++ b/gwenview/lib/document/loadingdocumentimpl.cpp @@ -87,10 +87,10 @@ struct LoadingDocumentImplPrivate { QString mimeType; const KUrl& url = q->document()->url(); - if (KProtocolInfo::determineMimetypeFromExtension(url.protocol())) { - mimeType = KMimeType::findByNameAndContent(url.fileName(), mData)->name(); - } else { + if (!mData.isEmpty()) { mimeType = KMimeType::findByContent(mData)->name(); + } else { + mimeType = KMimeType::findByUrl(url)->name(); } MimeTypeUtils::Kind kind = MimeTypeUtils::mimeTypeKind(mimeType); kDebug() << "mimeType:" << mimeType << ", kind:" << kind; diff --git a/ksnapshot/ksnapshotobject.cpp b/ksnapshot/ksnapshotobject.cpp index 3b61fdbf..3dd5714d 100644 --- a/ksnapshot/ksnapshotobject.cpp +++ b/ksnapshot/ksnapshotobject.cpp @@ -128,7 +128,7 @@ bool KSnapshotObject::save( const KUrl& url, QWidget *widget ) bool KSnapshotObject::saveEqual( const KUrl& url,QWidget *widget ) { QByteArray type = "PNG"; - QString mime = KMimeType::findByUrl( url.fileName(), 0, url.isLocalFile(), true )->name(); + QString mime = KMimeType::findByUrl( url )->name(); const QString formatType = KImageIO::typeForMime(mime, KImageIO::Writing); if ( !formatType.isEmpty() ) type = formatType.toLatin1(); diff --git a/okular/core/document.cpp b/okular/core/document.cpp index 63a1874c..4d5b490b 100644 --- a/okular/core/document.cpp +++ b/okular/core/document.cpp @@ -1994,25 +1994,13 @@ Document::OpenResult Document::openDocument( const QString & docFile, const KUrl KService::List offers = KMimeTypeTrader::self()->query(mime->name(),"okular/Generator",constraint); if ( offers.isEmpty() && !triedMimeFromFileContent ) { - KMimeType::Ptr newmime = KMimeType::findByFileContent( docFile ); triedMimeFromFileContent = true; + KMimeType::Ptr newmime = KMimeType::findByUrl( docFile ); if ( newmime->name() != mime->name() ) { mime = newmime; offers = KMimeTypeTrader::self()->query( mime->name(), "okular/Generator", constraint ); } - if ( offers.isEmpty() ) - { - // There's still no offers, do a final mime search based on the filename - // We need this because sometimes (e.g. when downloading from a webserver) the mimetype we - // use is the one fed by the server, that may be wrong - newmime = KMimeType::findByUrl( docFile ); - if ( newmime->name() != mime->name() ) - { - mime = newmime; - offers = KMimeTypeTrader::self()->query( mime->name(), "okular/Generator", constraint ); - } - } } if (offers.isEmpty()) { @@ -2050,7 +2038,7 @@ Document::OpenResult Document::openDocument( const QString & docFile, const KUrl OpenResult openResult = d->openDocumentInternal( offer, isstdin, docFile, filedata, password ); if ( openResult == OpenError && !triedMimeFromFileContent ) { - KMimeType::Ptr newmime = KMimeType::findByFileContent( docFile ); + KMimeType::Ptr newmime = KMimeType::findByUrl( docFile ); triedMimeFromFileContent = true; if ( newmime->name() != mime->name() ) { @@ -3407,7 +3395,7 @@ void Document::processAction( const Action * action ) // Albert: the only pdf i have that has that kind of link don't define // an application and use the fileName as the file to open fileName = d->giveAbsolutePath( fileName ); - KMimeType::Ptr mime = KMimeType::findByPath( fileName ); + KMimeType::Ptr mime = KMimeType::findByUrl( KUrl(fileName) ); // Check executables if ( KRun::isExecutableFile( fileName, mime->name() ) ) { @@ -3415,7 +3403,7 @@ void Document::processAction( const Action * action ) if ( !exe->parameters().isEmpty() ) { fileName = d->giveAbsolutePath( exe->parameters() ); - mime = KMimeType::findByPath( fileName ); + mime = KMimeType::findByUrl( KUrl(fileName) ); if ( KRun::isExecutableFile( fileName, mime->name() ) ) { // this case is a link pointing to an executable with a parameter @@ -3840,7 +3828,7 @@ QByteArray Document::fontData(const FontInfo &font) const Document::OpenResult Document::openDocumentArchive( const QString & docFile, const KUrl & url, const QString & password ) { - const KMimeType::Ptr mime = KMimeType::findByPath( docFile, 0, false /* content too */ ); + const KMimeType::Ptr mime = KMimeType::findByUrl( KUrl(docFile) ); if ( !mime->is( "application/vnd.kde.okular-archive" ) ) return OpenError; @@ -3908,7 +3896,7 @@ Document::OpenResult Document::openDocumentArchive( const QString & docFile, con } } - const KMimeType::Ptr docMime = KMimeType::findByPath( tempFileName, 0, true /* local file */ ); + const KMimeType::Ptr docMime = KMimeType::findByUrl( KUrl(tempFileName) ); d->m_archiveData = archiveData.get(); d->m_archivedFileName = documentFileName; const OpenResult ret = openDocument( tempFileName, url, docMime, password ); diff --git a/okular/generators/comicbook/document.cpp b/okular/generators/comicbook/document.cpp index b570d118..05fc9df3 100644 --- a/okular/generators/comicbook/document.cpp +++ b/okular/generators/comicbook/document.cpp @@ -56,7 +56,7 @@ bool Document::open( const QString &fileName ) { close(); - const KMimeType::Ptr mime = KMimeType::findByFileContent( fileName ); + const KMimeType::Ptr mime = KMimeType::findByUrl( KUrl(fileName) ); // qDebug() << Q_FUNC_INFO << mime->name(); /** diff --git a/okular/part.cpp b/okular/part.cpp index 5552545a..31034cee 100644 --- a/okular/part.cpp +++ b/okular/part.cpp @@ -1138,7 +1138,7 @@ Document::OpenResult Part::doOpenFile( const KMimeType::Ptr &mimeA, const QStrin { *isCompressedFile = true; uncompressOk = handleCompressed( fileNameToOpen, localFilePath(), compressedMime ); - mime = KMimeType::findByPath( fileNameToOpen ); + mime = KMimeType::findByUrl( KUrl(fileNameToOpen) ); } else { @@ -1238,7 +1238,7 @@ bool Part::openFile() const QFileInfo fileInfo( fileNameToOpen ); if ( !isstdin && !fileInfo.exists() ) return false; - KMimeType::Ptr pathMime = KMimeType::findByPath( fileNameToOpen ); + KMimeType::Ptr pathMime = KMimeType::findByUrl( KUrl(fileNameToOpen) ); if ( !arguments().mimeType().isEmpty() ) { KMimeType::Ptr argMime = KMimeType::mimeType( arguments().mimeType() ); @@ -1260,7 +1260,7 @@ bool Part::openFile() } if (mimes[0]->name() == "text/plain") { - KMimeType::Ptr contentMime = KMimeType::findByFileContent( fileNameToOpen ); + KMimeType::Ptr contentMime = KMimeType::findByUrl( KUrl(fileNameToOpen) ); mimes.prepend( contentMime ); } } diff --git a/okular/tests/addremoveannotationtest.cpp b/okular/tests/addremoveannotationtest.cpp index 79ed80d9..99fda690 100644 --- a/okular/tests/addremoveannotationtest.cpp +++ b/okular/tests/addremoveannotationtest.cpp @@ -45,7 +45,7 @@ void AddRemoveAnnotationTest::initTestCase() void AddRemoveAnnotationTest::init() { const QString testFile = KDESRCDIR "data/file1.pdf"; - const KMimeType::Ptr mime = KMimeType::findByPath( testFile ); + const KMimeType::Ptr mime = KMimeType::findByUrl( KUrl(testFile) ); m_document->openDocument(testFile, KUrl(), mime); } diff --git a/okular/tests/annotationstest.cpp b/okular/tests/annotationstest.cpp index a5f0d92c..725f0179 100644 --- a/okular/tests/annotationstest.cpp +++ b/okular/tests/annotationstest.cpp @@ -47,7 +47,7 @@ void AnnotationTest::initTestCase() cg.writeEntry("annotExportAsArchive", false); const QString testFile = KDESRCDIR "data/file1.pdf"; - const KMimeType::Ptr mime = KMimeType::findByPath( testFile ); + const KMimeType::Ptr mime = KMimeType::findByUrl( KUrl(testFile) ); m_document->openDocument(testFile, KUrl(), mime); } diff --git a/okular/tests/documenttest.cpp b/okular/tests/documenttest.cpp index e38d22ae..4862ad09 100644 --- a/okular/tests/documenttest.cpp +++ b/okular/tests/documenttest.cpp @@ -33,7 +33,7 @@ void DocumentTest::testCloseDuringRotationJob() Okular::SettingsCore::instance( "documenttest" ); Okular::Document *m_document = new Okular::Document( 0 ); const QString testFile = KDESRCDIR "data/file1.pdf"; - const KMimeType::Ptr mime = KMimeType::findByPath( testFile ); + const KMimeType::Ptr mime = KMimeType::findByUrl( KUrl(testFile) ); Okular::DocumentObserver *dummyDocumentObserver = new Okular::DocumentObserver(); m_document->addObserver( dummyDocumentObserver ); diff --git a/okular/tests/editannotationcontentstest.cpp b/okular/tests/editannotationcontentstest.cpp index 20fc7834..aa0232af 100644 --- a/okular/tests/editannotationcontentstest.cpp +++ b/okular/tests/editannotationcontentstest.cpp @@ -109,7 +109,7 @@ void EditAnnotationContentsTest::cleanupTestCase() void EditAnnotationContentsTest::init() { const QString testFile = KDESRCDIR "data/file1.pdf"; - const KMimeType::Ptr mime = KMimeType::findByPath( testFile ); + const KMimeType::Ptr mime = KMimeType::findByUrl( KUrl(testFile) ); m_document->openDocument(testFile, KUrl(), mime); // Undo and Redo should be unavailable when docuemnt is first opened. diff --git a/okular/tests/editformstest.cpp b/okular/tests/editformstest.cpp index 8bb09902..b1e0236d 100644 --- a/okular/tests/editformstest.cpp +++ b/okular/tests/editformstest.cpp @@ -64,7 +64,7 @@ void EditFormsTest::cleanupTestCase() void EditFormsTest::init() { const QString testFile = KDESRCDIR "data/formSamples.pdf"; - const KMimeType::Ptr mime = KMimeType::findByPath( testFile ); + const KMimeType::Ptr mime = KMimeType::findByUrl( KUrl(testFile) ); m_document->openDocument( testFile, KUrl(), mime ); // Undo and Redo should be unavailable when docuemnt is first opened. diff --git a/okular/tests/modifyannotationpropertiestest.cpp b/okular/tests/modifyannotationpropertiestest.cpp index 8928814b..9a4d5281 100644 --- a/okular/tests/modifyannotationpropertiestest.cpp +++ b/okular/tests/modifyannotationpropertiestest.cpp @@ -55,7 +55,7 @@ void ModifyAnnotationPropertiesTest::cleanupTestCase() void ModifyAnnotationPropertiesTest::init() { const QString testFile = KDESRCDIR "data/file1.pdf"; - const KMimeType::Ptr mime = KMimeType::findByPath( testFile ); + const KMimeType::Ptr mime = KMimeType::findByUrl( KUrl(testFile) ); m_document->openDocument(testFile, KUrl(), mime); // Undo and Redo should be unavailable when docuemnt is first opened. diff --git a/okular/tests/searchtest.cpp b/okular/tests/searchtest.cpp index 49f852df..c4079a94 100644 --- a/okular/tests/searchtest.cpp +++ b/okular/tests/searchtest.cpp @@ -173,7 +173,7 @@ void SearchTest::test311232() QObject::connect(&d, SIGNAL(searchFinished(int,Okular::Document::SearchStatus)), &receiver, SLOT(searchFinished(int,Okular::Document::SearchStatus))); const QString testFile = KDESRCDIR "data/file1.pdf"; - const KMimeType::Ptr mime = KMimeType::findByPath( testFile ); + const KMimeType::Ptr mime = KMimeType::findByUrl( KUrl(testFile) ); d.openDocument(testFile, KUrl(), mime); const int searchId = 0; diff --git a/okular/tests/translateannotationtest.cpp b/okular/tests/translateannotationtest.cpp index b2a5ea6d..bc5bd8b2 100644 --- a/okular/tests/translateannotationtest.cpp +++ b/okular/tests/translateannotationtest.cpp @@ -111,7 +111,7 @@ void TranslateAnnotationTest::cleanupTestCase() void TranslateAnnotationTest::init() { const QString testFile = KDESRCDIR "data/file1.pdf"; - const KMimeType::Ptr mime = KMimeType::findByPath( testFile ); + const KMimeType::Ptr mime = KMimeType::findByUrl( KUrl(testFile) ); m_document->openDocument(testFile, KUrl(), mime); // Undo and Redo should be unavailable when docuemnt is first opened. diff --git a/okular/ui/annotationwidgets.cpp b/okular/ui/annotationwidgets.cpp index 78d519e8..29f63ec9 100644 --- a/okular/ui/annotationwidgets.cpp +++ b/okular/ui/annotationwidgets.cpp @@ -685,7 +685,7 @@ QWidget * FileAttachmentAnnotationWidget::createExtraWidget() tmplabel->setTextInteractionFlags( Qt::TextSelectableByMouse ); lay->addWidget( tmplabel, 3, 0, 1, 2 ); - KMimeType::Ptr mime = KMimeType::findByPath( ef->name(), 0, true ); + KMimeType::Ptr mime = KMimeType::findByUrl( KUrl(ef->name()) ); if ( mime ) { tmplabel = new QLabel( widget ); diff --git a/okular/ui/embeddedfilesdialog.cpp b/okular/ui/embeddedfilesdialog.cpp index 08160a0e..66d27317 100644 --- a/okular/ui/embeddedfilesdialog.cpp +++ b/okular/ui/embeddedfilesdialog.cpp @@ -60,7 +60,7 @@ EmbeddedFilesDialog::EmbeddedFilesDialog(QWidget *parent, const Okular::Document { QTreeWidgetItem *twi = new QTreeWidgetItem(); twi->setText(0, ef->name()); - KMimeType::Ptr mime = KMimeType::findByPath( ef->name(), 0, true ); + KMimeType::Ptr mime = KMimeType::findByUrl( KUrl(ef->name()) ); if (mime) { twi->setIcon(0, KIcon(mime->iconName())); diff --git a/thumbnailers/audio/AudioThumbs.cpp b/thumbnailers/audio/AudioThumbs.cpp index c22f72f3..7537f824 100644 --- a/thumbnailers/audio/AudioThumbs.cpp +++ b/thumbnailers/audio/AudioThumbs.cpp @@ -60,7 +60,7 @@ bool ATCreator::create(const QString &path, int /*w*/, int /*h*/, QImage &img) { bool bRet = false; - KMimeType::Ptr type = KMimeType::findByPath(path, 0, true); + KMimeType::Ptr type = KMimeType::findByUrl(KUrl(path)); if (type->is("audio/mpeg")) { TagLib::MPEG::File mp3File(path.toUtf8());