Commit graph

46 commits

Author SHA1 Message Date
Ivailo Monev
010a2f9054 kio: check only the major poppler version in poppler metadata plugin
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-17 04:19:08 +02:00
Ivailo Monev
998d57874d kio: use QString instead of KUrl as argument for KFileMetaDataPlugin::metaData()
for performance reasons (to not convert KUrl to QString from each plugin)

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-08-21 00:34:54 +03:00
Ivailo Monev
2280f55199 kio: localize the date and time obtained from kfilemetadata_exiv2 plugin
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-08-08 21:59:25 +03:00
Ivailo Monev
410d0cdd30 kio: handle compressed PDF documents in kfilemetadata_poppler plugin
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-08-01 04:08:36 +00:00
Ivailo Monev
58145187d6 kio: return empty QString from getTime() function for invalid poppler time
QDateTime::fromTime_t() should probably check for such

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-08-01 03:46:52 +00:00
Ivailo Monev
1a45508306 kdecore: reimplement KLocale
by using QLocale in KLocale and separating the date, time and numbers
conversion from translation KLocale actually gets extended locale
support from QLocale (which uses CLDR data v43 currently). translation
remains unaffected. for comparison here is the result of two function
calls the result of which should explain the whole change:
KLocale::allLanguagesList().size() = 669
KLocale::installedLanguages().size() = 68

the first number is locales Katie supports, the second being the
number of languages Katana is translated into

KSwitchLanguageDialog needs a rewrite but that is on the TODO

also copyrighting KCatalog to me because I rewrote it, for reference:
881b47b8ea

KCalendarSystem gets the middle finger - batteries not included for date
and time. extra calendar systems can, but are unlikely to be, supported
in the future

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-07-26 23:50:18 +03:00
Ivailo Monev
4e1fc45705 kio: remove unused KFileMetaInfo flags
when it comes to KFileMetaInfo its bottleneck is determening what plugin to
use for the given URL/path - determening MIME type, matching globs, etc.
and it still is quite fast to the point where the flags are simply
redundant

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-07-18 03:36:06 +03:00
Ivailo Monev
5613e5483c generic: remove redundant build varibles
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-17 20:25:52 +03:00
Ivailo Monev
219bea5656 kio: deprecation warning fix
next time just change the poppler::time_type typedef (less ifdef spaghetti)

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-01-01 21:51:17 +02:00
Ivailo Monev
7b6f2c92d8 kio: poppler metadata extractor optimization
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-21 19:10:17 +02:00
Ivailo Monev
75e5990125 kio: taglib metadata extractor optimization
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-21 18:59:23 +02:00
Ivailo Monev
bba71d3a27 kio: effectively revert db9b369a00
nah, I do not have to care about preferences - I wrote code to filter
duplicate metadata keys (something KIO:PreviewJob lacks - what if
preferred thumbnailer fails but other succeeds?)

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-20 00:22:07 +02:00
Ivailo Monev
db9b369a00 kio: prioritize taglib metadata plugin for audio files
the code for preferences is pretty much the same I wrote for
KIO::PreviewJob (see KIO::PreviewJobPrivate::startPreview())

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-19 21:47:18 +02:00
Ivailo Monev
97b5d53233 kio: free the metadata keys pointer only if it's non-null in KFileMetaDataDjVuLibrePlugin::metaData()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-16 19:00:47 +02:00
Ivailo Monev
fa5db6c506 kio: debug message correction
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-13 07:03:51 +02:00
Ivailo Monev
777e9d8024 kio: new djvulibre metadata extractor
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-13 06:45:19 +02:00
Ivailo Monev
638f54bc2b kio: deprecation warning fix
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-08 14:04:47 +02:00
Ivailo Monev
2b2ac283e8 kio: move metadata plugin keys to the .desktop files
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-04 14:40:57 +02:00
Ivailo Monev
1e982a7e2d kio: move metadata plugin MIME types to the .desktop files
ideally, the keys would also be stored in the .desktop files so that
plugin instances would not have to be created from
KFileMetaInfo::supportedKeys() too

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-04 13:59:00 +02:00
Ivailo Monev
feb0869d29 kio: avoid temporary in kfilematadata_exiv2 plugin
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-16 01:02:53 +03:00
Ivailo Monev
e29151a728 kutils: essentially KExiv2 rewrite
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-16 00:59:16 +03:00
Ivailo Monev
451301f58f kio: implement fonts meta information extractor via Freetype
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-06 20:51:32 +03:00
Ivailo Monev
4a4c85431e kdecore: move K_EXPORT_PLUGIN() macro to kpluginfactory header [ci reset]
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-31 09:06:11 +03:00
Ivailo Monev
e4c7b66490 kdecore: move K_EXPORT_PLUGIN() macro to kpluginloader header
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-30 22:01:35 +03:00
Ivailo Monev
7271414eed kio: set the comment key for metadata extractors
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-13 18:35:10 +03:00
Ivailo Monev
4ccf3f79a6 kio: const-ify variable
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-13 03:11:54 +03:00
Ivailo Monev
48745abc86 kio: implement Postscript meta information extractor via libspectre
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-13 03:02:36 +03:00
Ivailo Monev
f875fea2ef kio: extract page count via Poppler metadata plugin
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-13 02:40:36 +03:00
Ivailo Monev
a70b97b0e2 kio: fix rare ffmpeg metadata extractor crash
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-28 20:56:15 +03:00
Ivailo Monev
69f4e8b329 kio: extract FPS via FFmpeg metadata plugin
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-17 12:15:36 +03:00
Ivailo Monev
05b34e20b5 kio: implement PDF meta information extractor via Poppler
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-17 04:09:12 +03:00
Ivailo Monev
187385a291 kio: assume KMimeType::allMimeTypes() does not have duplicates in FFmpeg metadata plugin
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-16 21:58:59 +03:00
Ivailo Monev
af9a8dbd86 kio: implement EPUB meta information extractor via ebook-tools
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-16 03:38:30 +03:00
Ivailo Monev
b4f5cc99f6 kio: use kio4 catalog in metadata plugins
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-15 05:08:18 +03:00
Ivailo Monev
2485fe0959 kio: mark KFileMetaDataPlugin as stable
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-15 00:04:18 +03:00
Ivailo Monev
256441eb3f kio: extract more metadata via FFmpeg
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-14 23:36:18 +03:00
Ivailo Monev
827cea933d kio: ignore whatever MIME types FFmpeg codecs claim
there is apparently codec for text/x-nfo and video codec meta information
was shown for such files (ansi)

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-14 23:05:52 +03:00
Ivailo Monev
f53ee7d15a kio: extract more metadata via FFmpeg
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-14 22:56:28 +03:00
Ivailo Monev
1d5bd20054 kio: extract duration metadata via FFmpeg
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-14 21:08:24 +03:00
Ivailo Monev
a49685fcf5 kio: extract more metadata via exiv2
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-14 20:03:15 +03:00
Ivailo Monev
e175ca1377 kio: implement option to disable metadata plugins
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-14 12:10:48 +03:00
Ivailo Monev
6197c25884 kio: implement audio and video meta information extractor via TagLib
TODO: elide meta information values or this may happen:
https://ibb.co/MZGv4Vz
2022-04-14 11:09:24 +03:00
Ivailo Monev
5e6e38e9a6 generic: fix build with older versions of FFmpeg by referencing meta-headers
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-14 10:45:27 +03:00
Ivailo Monev
2cc6924ac3 kio: explicitly link to avcodec library
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-14 08:26:13 +03:00
Ivailo Monev
0e2ffeebe9 kio: implement audio and video meta information extractor via FFmpeg 2022-04-14 08:04:46 +03:00
Ivailo Monev
e722b26ea5 kio: reimplement meta information extraction
TODO: plugins for audio and video meta information extraction

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-14 04:45:36 +03:00