Bug 117670 - Printing is awfully slow
Summary: Printing is awfully slow
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Plugin-Generic-PrintCreator (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-12-04 19:30 UTC by Anders Lund
Modified: 2017-07-22 16:01 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In: 5.7.0
Sentry Crash Report:


Attachments
patch to fix this issue (558 bytes, patch)
2005-12-04 19:32 UTC, Anders Lund
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Anders Lund 2005-12-04 19:30:02 UTC
Version:            (using KDE KDE 3.5.0)
Installed from:    Compiled From Sources
Compiler:          gcc 3.3.4 
OS:                Linux

Printing using the KIPI printing wizard is nearly impossible on my system, printing a 1600x1200 image makes my system go into infinite swapping.
Comment 1 Anders Lund 2005-12-04 19:32:20 UTC
Created attachment 13769 [details]
patch to fix this issue

This patch fixes the problem by using the proper form of drawImage() in the
printing code
Comment 2 Tom Albers 2005-12-30 23:49:45 UTC
SVN commit 492745 by toma:

Patch from Anders Lund for bug: Printing using the KIPI printing wizard is nearly impossible on my system, printing a 1600x1200 image makes my system go into infinite swapping.
BUG:117670


 M  +1 -3      tphoto.cpp  


--- trunk/extragear/libs/kipi-plugins/printwizard/tphoto.cpp #492744:492745
@@ -195,9 +195,7 @@
     int w  = NINT((double)layout->width() * xRatio);
     int h  = NINT((double)layout->height() * yRatio);
 
-    // We can use scaleFree because the crop frame should have the proper dimensions.
-    img = img.smoothScale(w, h, QImage::ScaleFree);
-    p.drawImage(x1 + left, y1 + top, img);
+    p.drawImage( QRect(x1 + left, y1 + top, w, h), img );
 
     if (captionType > 0)
     {
Comment 3 caulier.gilles 2017-07-12 13:33:53 UTC
Git commit a286d2d6db9998c2c46deec1c030d8773fe90029 by Gilles Caulier.
Committed on 12/07/2017 at 13:29.
Pushed by cgilles into branch 'master'.

Print Creator : Use a separated thread to process all final printing operations.
This will prevent to block GUI for a while and permit to use another CPU core to compute printing.
Related: bug 127476, bug 116149
FIXED-IN: 5.7.0

M  +13   -5    utilities/assistants/printcreator/manager/advprinttask.cpp
M  +12   -12   utilities/assistants/printcreator/manager/advprinttask.h
M  +1    -1    utilities/assistants/printcreator/manager/advprintthread.cpp
M  +1    -1    utilities/assistants/printcreator/manager/advprintthread.h
M  +72   -505  utilities/assistants/printcreator/wizard/advprintfinalpage.cpp
M  +4    -20   utilities/assistants/printcreator/wizard/advprintfinalpage.h
M  +99   -137  utilities/assistants/printcreator/wizard/advprintwizard.cpp
M  +2    -6    utilities/assistants/printcreator/wizard/advprintwizard.h

https://commits.kde.org/digikam/a286d2d6db9998c2c46deec1c030d8773fe90029
Comment 4 caulier.gilles 2017-07-13 10:51:58 UTC
Git commit c6b8d64836622a71812448c13849d7bd46ce49a1 by Gilles Caulier.
Committed on 13/07/2017 at 10:49.
Pushed by cgilles into branch 'master'.

use a separated thread to render layout page preview.
This will speed up preview rendering when page layout contains many image to print.
This will not freeze GUI will rendering, of course.
Related: bug 127476

M  +2    -2    utilities/assistants/printcreator/manager/advprintsettings.cpp
M  +2    -1    utilities/assistants/printcreator/manager/advprintsettings.h
M  +55   -13   utilities/assistants/printcreator/manager/advprinttask.cpp
M  +26   -13   utilities/assistants/printcreator/manager/advprinttask.h
M  +24   -1    utilities/assistants/printcreator/manager/advprintthread.cpp
M  +2    -0    utilities/assistants/printcreator/manager/advprintthread.h
M  +2    -1    utilities/assistants/printcreator/tools/templateicon.cpp
M  +3    -0    utilities/assistants/printcreator/wizard/advprintfinalpage.cpp
M  +6    -2    utilities/assistants/printcreator/wizard/advprintphotopage.cpp
M  +34   -26   utilities/assistants/printcreator/wizard/advprintwizard.cpp
M  +6    -5    utilities/assistants/printcreator/wizard/advprintwizard.h

https://commits.kde.org/digikam/c6b8d64836622a71812448c13849d7bd46ce49a1
Comment 5 caulier.gilles 2017-07-17 20:52:28 UTC
Git commit eb552cedb1f2f47bcc47c5ed5172d2643c89bcb4 by Gilles Caulier.
Committed on 17/07/2017 at 20:39.
Pushed by cgilles into branch 'master'.

Crop Frame : move image loading outside the widget init to speed up computation. This divide processing time by 10
Related: bug 127476

M  +7    -20   utilities/assistants/printcreator/tools/advprintphoto.cpp
M  +2    -1    utilities/assistants/printcreator/tools/advprintphoto.h
M  +23   -94   utilities/assistants/printcreator/wizard/advprintcropframe.cpp
M  +1    -0    utilities/assistants/printcreator/wizard/advprintcropframe.h

https://commits.kde.org/digikam/eb552cedb1f2f47bcc47c5ed5172d2643c89bcb4
Comment 6 caulier.gilles 2017-07-22 16:01:21 UTC
Git commit a50822aae8d685c28a254afd2b77309cc471e521 by Gilles Caulier.
Committed on 22/07/2017 at 15:59.
Pushed by cgilles into branch 'master'.

fork images pre-processing before to print in a separated thread to not block GUI.
Related: bug 127476

M  +16   -0    utilities/assistants/printcreator/manager/advprintsettings.cpp
M  +3    -2    utilities/assistants/printcreator/manager/advprintsettings.h
M  +57   -7    utilities/assistants/printcreator/manager/advprinttask.cpp
M  +5    -2    utilities/assistants/printcreator/manager/advprinttask.h
M  +28   -2    utilities/assistants/printcreator/manager/advprintthread.cpp
M  +1    -0    utilities/assistants/printcreator/manager/advprintthread.h
M  +161  -20   utilities/assistants/printcreator/wizard/advprintfinalpage.cpp
M  +7    -0    utilities/assistants/printcreator/wizard/advprintfinalpage.h
M  +0    -15   utilities/assistants/printcreator/wizard/advprintphotopage.cpp
M  +0    -1    utilities/assistants/printcreator/wizard/advprintphotopage.h
M  +3    -133  utilities/assistants/printcreator/wizard/advprintwizard.cpp
M  +0    -2    utilities/assistants/printcreator/wizard/advprintwizard.h

https://commits.kde.org/digikam/a50822aae8d685c28a254afd2b77309cc471e521