Commit graph

140 commits

Author SHA1 Message Date
Ivailo Monev
05397d9ddf generic: adjust to kdelibs changes
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-17 18:39:16 +03:00
Ivailo Monev
89dfa766ba gwenview: do not assume some MIME types are supported in Gwenview::MimeTypeUtils::imageMimeTypes() function
I found more intelligent way - image format plugins now have mimeTypes()
method to query the supported MIME types (which is wrapped by
KImageIO::mimeTypes()), so if a plugin is not installed for the MIME types
that were previously hardcoded gwenview will no longer suggest to open such
when opening files via the dialog for example

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-15 23:42:28 +03:00
Ivailo Monev
5449379ca6 gwenview: simplify the save job
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-15 04:26:18 +03:00
Ivailo Monev
984399a1dc gwenview: remove obsolete format hack
the plugin for it accepts only "jpg" as format now and gwenview no longer
has hacks that assume "jpeg", fixes saving of jpg/jpeg images

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-15 03:59:41 +03:00
Ivailo Monev
5d77471e5b gwenview: do not thread document jobs
threading it does not help when an image requires gigabytes of memory to
store to begin with (such as when the image is resized to 30000x20000,
it requires a bit less than 2GB of memory and that's because its ARGB),
the document jobs were not thread-safe either

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-15 03:05:30 +03:00
Ivailo Monev
c33d81a38f gwenview: remove redundant tooltip
shows exactly the same information as the text bellow the image in the
model, see the FIXME in the removed code

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-15 02:18:53 +03:00
Ivailo Monev
714bc7076d gwenview: use the application palette as fullscreen palette
note that besides the config option there was no interface option to
change it

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-15 01:04:55 +03:00
Ivailo Monev
96c709b614 gwenview: merge MIME type functions
also mimeTypeKind() was not checking if the result of rawImageMimeTypes()
contains the MIME type

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-15 00:46:39 +03:00
Ivailo Monev
6f52fa6301 gwenview: remove unused Gwenview::MimeTypeUtils::urlMimeTypeByContent() function
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-15 00:38:45 +03:00
Ivailo Monev
2418a3a6b5 generic: exclude some source files from the unity build
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-12 13:00:24 +03:00
Ivailo Monev
9607e18358 gewnview: adjust to Katie changes
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-05-24 05:06:31 +03:00
Ivailo Monev
ae9dcfe318 gwenview: deep-copy added views in Gwenview::DocumentViewContainer::pretendFadeInFinished()
fixes crash in case animations are disabled

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-01-14 05:12:34 +02:00
Ivailo Monev
658e812f74 gwenview: do not rely on compiler to pick up the correct constructor
KUrl has QVariant operator meaning it should be QVariant from QVariant
(i.e. copy constructor) but the testModel() function (see the history model
test) explicitly converts it to KUrl while the StartMainPage class was
converting it to QUrl (via QVariant::toUrl()).

qVariantFromValue<T>() has type before QVariant specialization

side note, try compiling the following (with proper Makefile):

 #include <qurl.h>
 #include <qvariant.h>
 #include <qdebug.h>
 #include <kurl.h>

int main (int argc, char** argv)
{
    QVariant v(QUrl());
    qDebug() << v.type() << v.userType();

    QVariant v2(KUrl());
    qDebug() << v2.type() << v2.userType();

    return 0;
}

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-30 22:32:43 +02:00
Ivailo Monev
fde94cda1c gwenview: prepare for Katie changes
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-14 02:09:37 +02:00
Ivailo Monev
e52b5a473a generic: use sysconf() to get the total memory
available on non-Linux and non-FreeBSD, getFreeMemory() remains
unimplemented for other platforms tho

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-05 19:18:38 +02:00
Ivailo Monev
a488e15681 gwenview: comment correction
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-19 20:04:22 +03:00
Ivailo Monev
94ff551e89 gwenview: check for Exif date in the same order as the list
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-19 00:11:45 +03:00
Ivailo Monev
810ef2b5af gwenview: skip some Exif/IPTC/XMP properties
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-18 21:10:02 +03:00
Ivailo Monev
2821d36488 gwenview: do not warn if image has no Exif date
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-18 18:54:38 +03:00
Ivailo Monev
e6bbe6f23a gwenview: test animated document loader with WebP image
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-18 18:40:22 +03:00
Ivailo Monev
4b105d8244 gwenview: minor optimizations
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-16 01:04:41 +03:00
Ivailo Monev
0ca5a4530a gwenview: adjust to KExiv2 changes
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-16 00:47:42 +03:00
Ivailo Monev
cac9414148 gwenview: port to KExiv2
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-16 02:33:13 +03:00
Ivailo Monev
6ccf553d1e generic: prepare for Katie changes
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-14 16:21:09 +03:00
Ivailo Monev
4b8cfb62e0 gwenview: remove win support leftovers
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-03 18:41:02 +03:00
Ivailo Monev
0116b2cad6 gwenview: randomize the slideshow URLs via KRandom::randomize()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-09-30 01:55:09 +03:00
Ivailo Monev
63ed0400d5 gwenview: adjust to Katie changes
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-06-09 06:09:20 +03:00
Ivailo Monev
e3912937d8 generic: compiler warnings fixes
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-06-06 15:25:57 +03:00
Ivailo Monev
5b6bfc3935 gwenview: attempt to load all images that are not one of the static MIME types
fixes loading of HEIF images for example which ImageMagick can load but is
not registered from gvpart.desktop and gwenview.desktop

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-27 06:59:16 +03:00
Ivailo Monev
7d6cd5a36e gwenview: execute the move job via KIO::NetAccess::synchronousRun() and set its UI delegate to the document UI delegate
fixes rare hang, there is a bug lurking somewhere - the job progress is
shown only the first time the test is run if not in full session

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-26 17:11:33 +03:00
Ivailo Monev
9d46d64323 gwenview: process all events while waiting for document to be loaded and MIME type to be determined
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-26 15:26:23 +03:00
Ivailo Monev
7027e26278 gwenview: merge URL kind enums for images
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-20 23:54:23 +03:00
Ivailo Monev
c60f0b668f gwenview: remove now unused chrono system header inclusion
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-20 16:00:15 +03:00
Ivailo Monev
b79f94a9fc gwenview: fix HistoryModel items existences check for directories
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-20 04:41:36 +03:00
Ivailo Monev
729b5a7604 gwenview: disable copying of HistoryModel class
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-20 04:40:52 +03:00
Ivailo Monev
c6bdf9491d gwenview: test image scaler with PPM image, skip it if document size is unknown
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-20 03:49:01 +03:00
Ivailo Monev
cc96595607 gwenview: exec the sub-job from the save job to ensure it is not reaped
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-20 02:53:18 +03:00
Ivailo Monev
5f4c2cdcaa gwenview: start loading image data if no image has been loaded yet when metainfo is loaded
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-20 02:28:51 +03:00
Ivailo Monev
0b9943643c gwenview: check for error before adding sub-job from the save job
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-20 02:27:33 +03:00
Ivailo Monev
fe05413b08 gwenview: use threaded document job for the save job
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-20 02:12:42 +03:00
Ivailo Monev
7eb1689025 gwenview: different take on async execution
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-19 23:54:12 +03:00
Ivailo Monev
330867efdf gwenview: reset future watchers pointers once the futures finish
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-19 23:08:38 +03:00
Ivailo Monev
e9d0bf1e52 gwenview: link library to pthread
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-19 20:07:45 +03:00
Ivailo Monev
2903a9b6b6 gwenview: remove now unused QtConcurrentRun header inclusion
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-19 19:40:24 +03:00
Ivailo Monev
07c75837f5 gwenview: comment out code used for tracing
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-19 19:12:52 +03:00
Ivailo Monev
cdfe6fab07 gwenview: reimplement metadata, image data and save job via QThread and std::future<T>
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-19 18:19:37 +03:00
Ivailo Monev
70766dbae0 gwenview: reimplement ThreadedDocumentJob via QThread and std::future<T>
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-19 06:05:18 +03:00
Ivailo Monev
42e3ab6a4d gwenview: save files to temporary files and then move them
fixes saving in some cases

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-19 04:14:19 +03:00
Ivailo Monev
ce5678b0f7 generic: replace deprecated std::auto_ptr<T> with std::unique_ptr<T>
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-24 12:06:58 +03:00
Ivailo Monev
d749238e5e generic: fix and adjust some tests
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-11 20:47:34 +03:00