OSDN Git Service

kde/Katie.git
2 years agolibdeflate port is now available on OpenBSD
Ivailo Monev [Mon, 2 May 2022 18:26:09 +0000 (21:26 +0300)]
libdeflate port is now available on OpenBSD

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoremove default QTableWidget reimplementation and binary compatibility bits [ci reset]
Ivailo Monev [Sun, 1 May 2022 20:53:27 +0000 (23:53 +0300)]
remove default QTableWidget reimplementation and binary compatibility bits [ci reset]

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoMerge branch 'master' of ssh://github.com/fluxer/katie
Ivailo Monev [Tue, 26 Apr 2022 15:41:18 +0000 (18:41 +0300)]
Merge branch 'master' of ssh://github.com/fluxer/katie

2 years agofree decompressor as soon as decompression is done in QKatHandler::read()
Ivailo Monev [Tue, 26 Apr 2022 15:40:59 +0000 (18:40 +0300)]
free decompressor as soon as decompression is done in QKatHandler::read()

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agodo not duplicate the file-descriptor from QDBusUnixFileDescriptor constructor
Ivailo Monev [Thu, 21 Apr 2022 11:13:04 +0000 (14:13 +0300)]
do not duplicate the file-descriptor from QDBusUnixFileDescriptor constructor

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agodo not duplicate the file-descriptor from QDBusUnixFileDescriptor constructor
Ivailo Monev [Thu, 21 Apr 2022 11:13:04 +0000 (14:13 +0300)]
do not duplicate the file-descriptor from QDBusUnixFileDescriptor constructor

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agobuild fix
Ivailo Monev [Mon, 18 Apr 2022 19:32:45 +0000 (22:32 +0300)]
build fix

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agodrop support for using design metrics of fonts
Ivailo Monev [Mon, 18 Apr 2022 19:29:36 +0000 (22:29 +0300)]
drop support for using design metrics of fonts

fixes:
https://github.com/fluxer/katana/issues/29

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agohint monospaced fonts horizontally and vertically
Ivailo Monev [Mon, 18 Apr 2022 08:23:13 +0000 (11:23 +0300)]
hint monospaced fonts horizontally and vertically

this is more of a workaround, there is a bug lurking somewhere in Konsole
probably since there are plenty of hacks related to fonts there

for reference:
https://github.com/fluxer/katana/issues/29

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoeffectively revert 42f9fe4bdf6322843a80fb3b48675b7ac4b006db and partially eac47643065...
Ivailo Monev [Sat, 16 Apr 2022 23:37:50 +0000 (02:37 +0300)]
effectively revert 42f9fe4bdf6322843a80fb3b48675b7ac4b006db and partially eac47643065ea87e0067de398d66abc96d0f4553

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agofix QWidget::fontChange() compatibility and remove unused QWidget compatibility metho...
Ivailo Monev [Sat, 16 Apr 2022 18:53:10 +0000 (21:53 +0300)]
fix QWidget::fontChange() compatibility and remove unused QWidget compatibility methods [ci reset]

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agobuild fix for the case when QT_NO_CONCURRENT is defined [ci reset]
Ivailo Monev [Mon, 11 Apr 2022 18:52:50 +0000 (21:52 +0300)]
build fix for the case when QT_NO_CONCURRENT is defined [ci reset]

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agofix runtime warning when rotating non-mono images
Ivailo Monev [Mon, 11 Apr 2022 17:59:16 +0000 (20:59 +0300)]
fix runtime warning when rotating non-mono images

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agodrop support for video and animation elements in svg component
Ivailo Monev [Sat, 2 Apr 2022 21:26:03 +0000 (00:26 +0300)]
drop support for video and animation elements in svg component

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agosimplify color parsing in resolveColor() function
Ivailo Monev [Sat, 2 Apr 2022 20:49:30 +0000 (23:49 +0300)]
simplify color parsing in resolveColor() function

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agomark warning case in QCompleter::setMaxVisibleItems() as unlikely
Ivailo Monev [Mon, 28 Mar 2022 22:37:27 +0000 (01:37 +0300)]
mark warning case in QCompleter::setMaxVisibleItems() as unlikely

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoadd option to build with external xxHash
Ivailo Monev [Mon, 28 Mar 2022 10:52:21 +0000 (13:52 +0300)]
add option to build with external xxHash

only Debian seems to enable the dispatcher and it does not
make much difference, probably because it ships 0.8.0 while
the latest (and bundled) 0.8.1 claim to provide +40% better
performance.

benchmark result with bundled xxHash:
********* Start testing of tst_qcryptographichash *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS  : tst_qcryptographichash::initTestCase()
RESULT   : tst_qcryptographichash::append():"10 (Md5)":
     2,116.24331 CPU ticks per iteration (total: 423,248,663, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha1)":
     2,327.95652 CPU ticks per iteration (total: 465,591,304, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha256)":
     4,538.58415 CPU ticks per iteration (total: 907,716,831, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha512)":
     3,545.57214 CPU ticks per iteration (total: 709,114,428, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (KAT)":
     1,055.78467 CPU ticks per iteration (total: 211,156,934, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Md5)":
     570.349390 CPU ticks per iteration (total: 114,069,878, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha1)":
     733.596795 CPU ticks per iteration (total: 146,719,359, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha256)":
     926.539030 CPU ticks per iteration (total: 185,307,806, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha512)":
     1,027.45295 CPU ticks per iteration (total: 205,490,590, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (KAT)":
     612.773505 CPU ticks per iteration (total: 122,554,701, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Md5)":
     559.535060 CPU ticks per iteration (total: 111,907,012, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha1)":
     711.052220 CPU ticks per iteration (total: 142,210,444, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha256)":
     867.967635 CPU ticks per iteration (total: 173,593,527, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha512)":
     1,059.37588 CPU ticks per iteration (total: 211,875,177, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (KAT)":
     555.657665 CPU ticks per iteration (total: 111,131,533, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Md5)":
     534.696365 CPU ticks per iteration (total: 106,939,273, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha1)":
     706.683535 CPU ticks per iteration (total: 141,336,707, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha256)":
     860.014285 CPU ticks per iteration (total: 172,002,857, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha512)":
     991.020390 CPU ticks per iteration (total: 198,204,078, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (KAT)":
     530.340170 CPU ticks per iteration (total: 106,068,034, iterations: 200000)
PASS  : tst_qcryptographichash::append()
RESULT   : tst_qcryptographichash::append_once():"Md5":
     1,461.98053 CPU ticks per iteration (total: 292,396,106, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha1":
     1,794.47376 CPU ticks per iteration (total: 358,894,752, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha256":
     4,139.07171 CPU ticks per iteration (total: 827,814,343, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha512":
     3,188.78708 CPU ticks per iteration (total: 637,757,416, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"KAT":
     632.489945 CPU ticks per iteration (total: 126,497,989, iterations: 200000)
PASS  : tst_qcryptographichash::append_once()
RESULT   : tst_qcryptographichash::statichash():"Md5":
     1,386.79875 CPU ticks per iteration (total: 277,359,750, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha1":
     1,676.14551 CPU ticks per iteration (total: 335,229,103, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha256":
     4,063.86235 CPU ticks per iteration (total: 812,772,470, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha512":
     3,084.00755 CPU ticks per iteration (total: 616,801,511, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"KAT":
     617.316465 CPU ticks per iteration (total: 123,463,293, iterations: 200000)
PASS  : tst_qcryptographichash::statichash()
PASS  : tst_qcryptographichash::cleanupTestCase()
Totals: 5 passed, 0 failed, 0 skipped
********* Finished testing of tst_qcryptographichash *********

benchmark result with 0.8.0 and dispatcher:
********* Start testing of tst_qcryptographichash *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS  : tst_qcryptographichash::initTestCase()
RESULT   : tst_qcryptographichash::append():"10 (Md5)":
     1,968.59673 CPU ticks per iteration (total: 393,719,346, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha1)":
     2,199.79145 CPU ticks per iteration (total: 439,958,291, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha256)":
     4,222.34727 CPU ticks per iteration (total: 844,469,454, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha512)":
     3,281.03732 CPU ticks per iteration (total: 656,207,464, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (KAT)":
     994.999260 CPU ticks per iteration (total: 198,999,852, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Md5)":
     553.048500 CPU ticks per iteration (total: 110,609,700, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha1)":
     661.749995 CPU ticks per iteration (total: 132,349,999, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha256)":
     870.448295 CPU ticks per iteration (total: 174,089,659, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha512)":
     984.230055 CPU ticks per iteration (total: 196,846,011, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (KAT)":
     608.326970 CPU ticks per iteration (total: 121,665,394, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Md5)":
     525.601325 CPU ticks per iteration (total: 105,120,265, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha1)":
     678.677495 CPU ticks per iteration (total: 135,735,499, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha256)":
     825.383300 CPU ticks per iteration (total: 165,076,660, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha512)":
     1,051.29365 CPU ticks per iteration (total: 210,258,730, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (KAT)":
     594.351090 CPU ticks per iteration (total: 118,870,218, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Md5)":
     513.894990 CPU ticks per iteration (total: 102,778,998, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha1)":
     682.573800 CPU ticks per iteration (total: 136,514,760, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha256)":
     825.146855 CPU ticks per iteration (total: 165,029,371, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha512)":
     942.555945 CPU ticks per iteration (total: 188,511,189, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (KAT)":
     522.680560 CPU ticks per iteration (total: 104,536,112, iterations: 200000)
PASS  : tst_qcryptographichash::append()
RESULT   : tst_qcryptographichash::append_once():"Md5":
     1,476.90255 CPU ticks per iteration (total: 295,380,511, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha1":
     1,624.12430 CPU ticks per iteration (total: 324,824,860, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha256":
     3,839.11658 CPU ticks per iteration (total: 767,823,317, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha512":
     3,003.13306 CPU ticks per iteration (total: 600,626,612, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"KAT":
     605.017655 CPU ticks per iteration (total: 121,003,531, iterations: 200000)
PASS  : tst_qcryptographichash::append_once()
RESULT   : tst_qcryptographichash::statichash():"Md5":
     1,396.13362 CPU ticks per iteration (total: 279,226,724, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha1":
     1,541.24351 CPU ticks per iteration (total: 308,248,703, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha256":
     3,768.31778 CPU ticks per iteration (total: 753,663,556, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha512":
     2,831.25420 CPU ticks per iteration (total: 566,250,840, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"KAT":
     564.960245 CPU ticks per iteration (total: 112,992,049, iterations: 200000)
PASS  : tst_qcryptographichash::statichash()
PASS  : tst_qcryptographichash::cleanupTestCase()
Totals: 5 passed, 0 failed, 0 skipped
********* Finished testing of tst_qcryptographichash *********

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoadd test case for the previous commit
Ivailo Monev [Sun, 27 Mar 2022 13:17:19 +0000 (16:17 +0300)]
add test case for the previous commit

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoprioritize file entry stat over fd stat
Ivailo Monev [Sun, 27 Mar 2022 12:52:03 +0000 (15:52 +0300)]
prioritize file entry stat over fd stat

fixes QFile::size() for links and consequently QFile::atEnd() for
links, for QFile opened from fd or FILE* it will still report the
size of the link tho since such QFile objects do not have file entry

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agofix QFile::isSequential() for links
Ivailo Monev [Sun, 27 Mar 2022 10:47:51 +0000 (13:47 +0300)]
fix QFile::isSequential() for links

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoremove win leftovers
Ivailo Monev [Wed, 23 Mar 2022 10:59:44 +0000 (12:59 +0200)]
remove win leftovers

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoremove QUuid class leftovers
Ivailo Monev [Wed, 23 Mar 2022 10:58:45 +0000 (12:58 +0200)]
remove QUuid class leftovers

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoupdate URL TLDs table data
Ivailo Monev [Wed, 23 Mar 2022 05:37:48 +0000 (07:37 +0200)]
update URL TLDs table data

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agotranslations update
Ivailo Monev [Wed, 23 Mar 2022 05:36:05 +0000 (07:36 +0200)]
translations update

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agofix hash collision when input data has odd length for Katie's hash algorithm
Ivailo Monev [Tue, 22 Mar 2022 16:48:43 +0000 (18:48 +0200)]
fix hash collision when input data has odd length for Katie's hash algorithm

benchmark result:
********* Start testing of tst_qcryptographichash *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS  : tst_qcryptographichash::initTestCase()
RESULT   : tst_qcryptographichash::append():"10 (Md5)":
     2,836.51288 CPU ticks per iteration (total: 567,302,577, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha1)":
     3,380.76135 CPU ticks per iteration (total: 676,152,271, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha256)":
     4,717.55225 CPU ticks per iteration (total: 943,510,450, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha512)":
     3,633.18907 CPU ticks per iteration (total: 726,637,814, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (KAT)":
     1,379.36299 CPU ticks per iteration (total: 275,872,598, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Md5)":
     659.939485 CPU ticks per iteration (total: 131,987,897, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha1)":
     1,114.46593 CPU ticks per iteration (total: 222,893,186, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha256)":
     951.730590 CPU ticks per iteration (total: 190,346,118, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha512)":
     1,075.35127 CPU ticks per iteration (total: 215,070,254, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (KAT)":
     737.365180 CPU ticks per iteration (total: 147,473,036, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Md5)":
     602.405905 CPU ticks per iteration (total: 120,481,181, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha1)":
     1,365.34060 CPU ticks per iteration (total: 273,068,121, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha256)":
     902.280725 CPU ticks per iteration (total: 180,456,145, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha512)":
     1,023.72560 CPU ticks per iteration (total: 204,745,120, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (KAT)":
     630.126650 CPU ticks per iteration (total: 126,025,330, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Md5)":
     583.649140 CPU ticks per iteration (total: 116,729,828, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha1)":
     1,401.99279 CPU ticks per iteration (total: 280,398,558, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha256)":
     884.796720 CPU ticks per iteration (total: 176,959,344, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha512)":
     1,006.34675 CPU ticks per iteration (total: 201,269,350, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (KAT)":
     614.444045 CPU ticks per iteration (total: 122,888,809, iterations: 200000)
PASS  : tst_qcryptographichash::append()
RESULT   : tst_qcryptographichash::append_once():"Md5":
     1,573.19717 CPU ticks per iteration (total: 314,639,435, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha1":
     2,170.39628 CPU ticks per iteration (total: 434,079,257, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha256":
     4,227.21736 CPU ticks per iteration (total: 845,443,473, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha512":
     3,182.38488 CPU ticks per iteration (total: 636,476,976, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"KAT":
     785.406275 CPU ticks per iteration (total: 157,081,255, iterations: 200000)
PASS  : tst_qcryptographichash::append_once()
RESULT   : tst_qcryptographichash::statichash():"Md5":
     1,492.78744 CPU ticks per iteration (total: 298,557,489, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha1":
     2,078.32221 CPU ticks per iteration (total: 415,664,442, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha256":
     4,147.89762 CPU ticks per iteration (total: 829,579,525, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha512":
     3,076.56835 CPU ticks per iteration (total: 615,313,671, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"KAT":
     746.683995 CPU ticks per iteration (total: 149,336,799, iterations: 200000)
PASS  : tst_qcryptographichash::statichash()
PASS  : tst_qcryptographichash::cleanupTestCase()
Totals: 5 passed, 0 failed, 0 skipped
********* Finished testing of tst_qcryptographichash *********

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agotest QCryptographicHash collisions with short data
Ivailo Monev [Tue, 22 Mar 2022 16:30:06 +0000 (18:30 +0200)]
test QCryptographicHash collisions with short data

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agodrop QUuid class [ci reset]
Ivailo Monev [Tue, 22 Mar 2022 13:30:06 +0000 (15:30 +0200)]
drop QUuid class [ci reset]

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agonew qRandomUuid() function
Ivailo Monev [Tue, 22 Mar 2022 09:39:22 +0000 (11:39 +0200)]
new qRandomUuid() function

benchmark result:
********* Start testing of tst_bench_QUuid *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS  : tst_bench_QUuid::initTestCase()
RESULT   : tst_bench_QUuid::qRandomUuid_vs_createUuid():"qRandomUuid()":
     97.821250 CPU ticks per iteration (total: 19,564,250, iterations: 200000)
RESULT   : tst_bench_QUuid::qRandomUuid_vs_createUuid():"QUuid::createUuid":
     108.41198 CPU ticks per iteration (total: 21,682,396, iterations: 200000)
PASS  : tst_bench_QUuid::qRandomUuid_vs_createUuid()
RESULT   : tst_bench_QUuid::createUuid():
     57.377920 CPU ticks per iteration (total: 11,475,584, iterations: 200000)
PASS  : tst_bench_QUuid::createUuid()
RESULT   : tst_bench_QUuid::fromChar():
     81.606610 CPU ticks per iteration (total: 16,321,322, iterations: 200000)
PASS  : tst_bench_QUuid::fromChar()
RESULT   : tst_bench_QUuid::toString():
     79.527925 CPU ticks per iteration (total: 15,905,585, iterations: 200000)
PASS  : tst_bench_QUuid::toString()
RESULT   : tst_bench_QUuid::fromString():
     78.037890 CPU ticks per iteration (total: 15,607,578, iterations: 200000)
PASS  : tst_bench_QUuid::fromString()
RESULT   : tst_bench_QUuid::toByteArray():
     78.505810 CPU ticks per iteration (total: 15,701,162, iterations: 200000)
PASS  : tst_bench_QUuid::toByteArray()
RESULT   : tst_bench_QUuid::fromByteArray():
     79.680680 CPU ticks per iteration (total: 15,936,136, iterations: 200000)
PASS  : tst_bench_QUuid::fromByteArray()
RESULT   : tst_bench_QUuid::toRfc4122():
     62.749495 CPU ticks per iteration (total: 12,549,899, iterations: 200000)
PASS  : tst_bench_QUuid::toRfc4122()
RESULT   : tst_bench_QUuid::fromRfc4122():
     7.604070 CPU ticks per iteration (total: 1,520,814, iterations: 200000)
PASS  : tst_bench_QUuid::fromRfc4122()
RESULT   : tst_bench_QUuid::toDataStream():
     100.19905 CPU ticks per iteration (total: 20,039,811, iterations: 200000)
PASS  : tst_bench_QUuid::toDataStream()
RESULT   : tst_bench_QUuid::fromDataStream():
     68.303560 CPU ticks per iteration (total: 13,660,712, iterations: 200000)
PASS  : tst_bench_QUuid::fromDataStream()
RESULT   : tst_bench_QUuid::isNull():
     6.075315 CPU ticks per iteration (total: 1,215,063, iterations: 200000)
PASS  : tst_bench_QUuid::isNull()
RESULT   : tst_bench_QUuid::operatorLess():
     18.49353 CPU ticks per iteration (total: 3,698,706, iterations: 200000)
PASS  : tst_bench_QUuid::operatorLess()
RESULT   : tst_bench_QUuid::operatorMore():
     18.51902 CPU ticks per iteration (total: 3,703,804, iterations: 200000)
PASS  : tst_bench_QUuid::operatorMore()
PASS  : tst_bench_QUuid::cleanupTestCase()
Totals: 16 passed, 0 failed, 0 skipped
********* Finished testing of tst_bench_QUuid *********

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agooptimize QByteArray streaming
Ivailo Monev [Mon, 21 Mar 2022 10:47:53 +0000 (12:47 +0200)]
optimize QByteArray streaming

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoupdate link in QUuid documentation
Ivailo Monev [Mon, 21 Mar 2022 10:08:50 +0000 (12:08 +0200)]
update link in QUuid documentation

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoreset Katie's hashing algorithm state before updating it with data in QCryptographicH...
Ivailo Monev [Mon, 21 Mar 2022 10:01:36 +0000 (12:01 +0200)]
reset Katie's hashing algorithm state before updating it with data in QCryptographicHash::hash()

fixes crash, benchmark result:
********* Start testing of tst_qcryptographichash *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS  : tst_qcryptographichash::initTestCase()
RESULT   : tst_qcryptographichash::append():"10 (Md5)":
     1,962.61910 CPU ticks per iteration (total: 392,523,820, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha1)":
     2,168.30099 CPU ticks per iteration (total: 433,660,199, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha256)":
     4,188.51114 CPU ticks per iteration (total: 837,702,228, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha512)":
     3,362.39169 CPU ticks per iteration (total: 672,478,339, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (KAT)":
     1,001.09731 CPU ticks per iteration (total: 200,219,462, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Md5)":
     570.155600 CPU ticks per iteration (total: 114,031,120, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha1)":
     685.569960 CPU ticks per iteration (total: 137,113,992, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha256)":
     868.278515 CPU ticks per iteration (total: 173,655,703, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha512)":
     1,017.23586 CPU ticks per iteration (total: 203,447,172, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (KAT)":
     612.449645 CPU ticks per iteration (total: 122,489,929, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Md5)":
     547.928530 CPU ticks per iteration (total: 109,585,706, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha1)":
     712.295705 CPU ticks per iteration (total: 142,459,141, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha256)":
     835.510590 CPU ticks per iteration (total: 167,102,118, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha512)":
     981.335505 CPU ticks per iteration (total: 196,267,101, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (KAT)":
     563.873905 CPU ticks per iteration (total: 112,774,781, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Md5)":
     537.705295 CPU ticks per iteration (total: 107,541,059, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha1)":
     707.017965 CPU ticks per iteration (total: 141,403,593, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha256)":
     825.497090 CPU ticks per iteration (total: 165,099,418, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha512)":
     977.373200 CPU ticks per iteration (total: 195,474,640, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (KAT)":
     544.470865 CPU ticks per iteration (total: 108,894,173, iterations: 200000)
PASS  : tst_qcryptographichash::append()
RESULT   : tst_qcryptographichash::append_once():"Md5":
     1,446.76005 CPU ticks per iteration (total: 289,352,011, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha1":
     1,688.58841 CPU ticks per iteration (total: 337,717,683, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha256":
     3,855.98617 CPU ticks per iteration (total: 771,197,235, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha512":
     2,929.18580 CPU ticks per iteration (total: 585,837,160, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"KAT":
     648.980665 CPU ticks per iteration (total: 129,796,133, iterations: 200000)
PASS  : tst_qcryptographichash::append_once()
RESULT   : tst_qcryptographichash::statichash():"Md5":
     1,382.87591 CPU ticks per iteration (total: 276,575,182, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha1":
     1,614.76916 CPU ticks per iteration (total: 322,953,833, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha256":
     3,773.65425 CPU ticks per iteration (total: 754,730,850, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha512":
     2,861.40618 CPU ticks per iteration (total: 572,281,237, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"KAT":
     597.525450 CPU ticks per iteration (total: 119,505,090, iterations: 200000)
PASS  : tst_qcryptographichash::statichash()
PASS  : tst_qcryptographichash::cleanupTestCase()
Totals: 5 passed, 0 failed, 0 skipped
********* Finished testing of tst_qcryptographichash *********

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agodisable copying of QKatHash class
Ivailo Monev [Mon, 21 Mar 2022 06:36:13 +0000 (08:36 +0200)]
disable copying of QKatHash class

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoQPluginLoader documentation update
Ivailo Monev [Mon, 21 Mar 2022 06:35:58 +0000 (08:35 +0200)]
QPluginLoader documentation update

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoQLibrary documentaiton update
Ivailo Monev [Sun, 20 Mar 2022 11:46:12 +0000 (13:46 +0200)]
QLibrary documentaiton update

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agode-duplicate QLibrary code
Ivailo Monev [Sun, 20 Mar 2022 11:24:23 +0000 (13:24 +0200)]
de-duplicate QLibrary code

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agooptimize QIcon::fromTheme()
Ivailo Monev [Sun, 20 Mar 2022 11:00:21 +0000 (13:00 +0200)]
optimize QIcon::fromTheme()

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agodo not create private QLibrary data pointer just to return 0 in QPluginLoader::loadHi...
Ivailo Monev [Sun, 20 Mar 2022 10:04:58 +0000 (12:04 +0200)]
do not create private QLibrary data pointer just to return 0 in QPluginLoader::loadHints()

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agorefer to QT_BUFFSIZE in QCryptographicHash documentation
Ivailo Monev [Mon, 14 Mar 2022 02:25:42 +0000 (04:25 +0200)]
refer to QT_BUFFSIZE in QCryptographicHash documentation

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agotypo
Ivailo Monev [Mon, 14 Mar 2022 01:40:45 +0000 (03:40 +0200)]
typo

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoimplement Katie's hash algorithm as class and split input data in two chunks
Ivailo Monev [Mon, 14 Mar 2022 01:25:01 +0000 (03:25 +0200)]
implement Katie's hash algorithm as class and split input data in two chunks

benchmark result:
********* Start testing of tst_qcryptographichash *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS  : tst_qcryptographichash::initTestCase()
RESULT   : tst_qcryptographichash::append():"10 (Md5)":
     2,847.12983 CPU ticks per iteration (total: 569,425,966, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha1)":
     3,370.50678 CPU ticks per iteration (total: 674,101,357, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha256)":
     4,718.83796 CPU ticks per iteration (total: 943,767,592, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha512)":
     3,636.39393 CPU ticks per iteration (total: 727,278,787, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (KAT)":
     1,424.54430 CPU ticks per iteration (total: 284,908,860, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Md5)":
     674.086020 CPU ticks per iteration (total: 134,817,204, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha1)":
     1,133.63370 CPU ticks per iteration (total: 226,726,740, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha256)":
     940.656270 CPU ticks per iteration (total: 188,131,254, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha512)":
     1,092.76190 CPU ticks per iteration (total: 218,552,381, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (KAT)":
     752.884775 CPU ticks per iteration (total: 150,576,955, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Md5)":
     635.722665 CPU ticks per iteration (total: 127,144,533, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha1)":
     1,365.40317 CPU ticks per iteration (total: 273,080,634, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha256)":
     893.019390 CPU ticks per iteration (total: 178,603,878, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha512)":
     1,042.41434 CPU ticks per iteration (total: 208,482,868, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (KAT)":
     647.685440 CPU ticks per iteration (total: 129,537,088, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Md5)":
     613.694575 CPU ticks per iteration (total: 122,738,915, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha1)":
     1,385.37680 CPU ticks per iteration (total: 277,075,361, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha256)":
     875.499705 CPU ticks per iteration (total: 175,099,941, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha512)":
     1,026.35629 CPU ticks per iteration (total: 205,271,259, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (KAT)":
     613.024700 CPU ticks per iteration (total: 122,604,940, iterations: 200000)
PASS  : tst_qcryptographichash::append()
RESULT   : tst_qcryptographichash::append_once():"Md5":
     1,575.48784 CPU ticks per iteration (total: 315,097,569, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha1":
     2,189.54088 CPU ticks per iteration (total: 437,908,176, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha256":
     4,181.71968 CPU ticks per iteration (total: 836,343,936, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha512":
     3,171.89449 CPU ticks per iteration (total: 634,378,899, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"KAT":
     783.837000 CPU ticks per iteration (total: 156,767,400, iterations: 200000)
PASS  : tst_qcryptographichash::append_once()
RESULT   : tst_qcryptographichash::statichash():"Md5":
     1,491.84898 CPU ticks per iteration (total: 298,369,796, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha1":
     2,074.73995 CPU ticks per iteration (total: 414,947,990, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha256":
     4,098.37431 CPU ticks per iteration (total: 819,674,863, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha512":
     3,075.87383 CPU ticks per iteration (total: 615,174,767, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"KAT":
     745.386400 CPU ticks per iteration (total: 149,077,280, iterations: 200000)
PASS  : tst_qcryptographichash::statichash()
PASS  : tst_qcryptographichash::cleanupTestCase()
Totals: 5 passed, 0 failed, 0 skipped
********* Finished testing of tst_qcryptographichash *********

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoadd warning about the custom hash algorithm
Ivailo Monev [Sun, 13 Mar 2022 22:04:32 +0000 (00:04 +0200)]
add warning about the custom hash algorithm

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoQCryptographicHash test to verify incremental and static hashing produce the same...
Ivailo Monev [Sun, 13 Mar 2022 21:58:48 +0000 (23:58 +0200)]
QCryptographicHash test to verify incremental and static hashing produce the same result

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agodrop BLAKE3 in favour of custom hash algorithm
Ivailo Monev [Sun, 13 Mar 2022 20:59:25 +0000 (22:59 +0200)]
drop BLAKE3 in favour of custom hash algorithm

faster than BLAKE3 and the other algorithms with collisions risk
reduced based on the length of the input data, benchmark result:
********* Start testing of tst_qcryptographichash *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS  : tst_qcryptographichash::initTestCase()
RESULT   : tst_qcryptographichash::append():"10 (Md5)":
     0.00280 msecs per iteration (total: 561, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha1)":
     0.00333 msecs per iteration (total: 667, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha256)":
     0.00467 msecs per iteration (total: 934, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha512)":
     0.00361 msecs per iteration (total: 723, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (KAT)":
     0.00219 msecs per iteration (total: 439, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Md5)":
     0.000620 msecs per iteration (total: 124, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha1)":
     0.00109 msecs per iteration (total: 219, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha256)":
     0.000900 msecs per iteration (total: 180, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha512)":
     0.00106 msecs per iteration (total: 212, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (KAT)":
     0.000740 msecs per iteration (total: 148, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Md5)":
     0.000580 msecs per iteration (total: 116, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha1)":
     0.00134 msecs per iteration (total: 268, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha256)":
     0.000845 msecs per iteration (total: 169, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha512)":
     0.00100 msecs per iteration (total: 200, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (KAT)":
     0.000625 msecs per iteration (total: 125, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Md5)":
     0.000550 msecs per iteration (total: 110, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha1)":
     0.00137 msecs per iteration (total: 274, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha256)":
     0.000830 msecs per iteration (total: 166, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha512)":
     0.000985 msecs per iteration (total: 197, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (KAT)":
     0.000575 msecs per iteration (total: 115, iterations: 200000)
PASS  : tst_qcryptographichash::append()
RESULT   : tst_qcryptographichash::append_once():"Md5":
     0.00155 msecs per iteration (total: 310, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha1":
     0.00212 msecs per iteration (total: 424, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha256":
     0.00414 msecs per iteration (total: 828, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha512":
     0.00314 msecs per iteration (total: 629, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"KAT":
     0.000805 msecs per iteration (total: 161, iterations: 200000)
PASS  : tst_qcryptographichash::append_once()
RESULT   : tst_qcryptographichash::statichash():"Md5":
     0.00149 msecs per iteration (total: 298, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha1":
     0.00206 msecs per iteration (total: 413, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha256":
     0.00408 msecs per iteration (total: 817, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha512":
     0.00309 msecs per iteration (total: 618, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"KAT":
     0.000610 msecs per iteration (total: 122, iterations: 200000)
PASS  : tst_qcryptographichash::statichash()
PASS  : tst_qcryptographichash::cleanupTestCase()
Totals: 5 passed, 0 failed, 0 skipped
********* Finished testing of tst_qcryptographichash *********

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agofix possible crash in case null pointer is passed to QCryptographicHash::addData()
Ivailo Monev [Fri, 11 Mar 2022 22:34:27 +0000 (00:34 +0200)]
fix possible crash in case null pointer is passed to QCryptographicHash::addData()

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoread the file in chunks from filehash utility
Ivailo Monev [Fri, 11 Mar 2022 22:16:43 +0000 (00:16 +0200)]
read the file in chunks from filehash utility

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoutility to compute hash sums for files
Ivailo Monev [Fri, 11 Mar 2022 20:05:44 +0000 (22:05 +0200)]
utility to compute hash sums for files

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agodrop BLAKE2b and BLAKE2s in favour of BLAKE3
Ivailo Monev [Fri, 11 Mar 2022 19:11:12 +0000 (21:11 +0200)]
drop BLAKE2b and BLAKE2s in favour of BLAKE3

unfortunetly the reference C implementation
(https://github.com/oconnor663/blake3_reference_impl_c) was slower on
static hash benchmark, faster on incremental hashing tho. while BLAKE2b
and BLAKE2s were faster than SHA-2 on incremental hashing BLAKE3 is
faster on both static and incremental hashing (compared to SHA-256),
benchmark results:

********* Start testing of tst_qcryptographichash *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS  : tst_qcryptographichash::initTestCase()
RESULT   : tst_qcryptographichash::append():"10 (Md5)":
     0.00281 msecs per iteration (total: 563, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha1)":
     0.00334 msecs per iteration (total: 669, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha256)":
     0.00468 msecs per iteration (total: 936, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha512)":
     0.00366 msecs per iteration (total: 732, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (BLAKE3)":
     0.00219 msecs per iteration (total: 438, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Md5)":
     0.000660 msecs per iteration (total: 132, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha1)":
     0.00112 msecs per iteration (total: 224, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha256)":
     0.000935 msecs per iteration (total: 187, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha512)":
     0.00108 msecs per iteration (total: 216, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (BLAKE3)":
     0.000775 msecs per iteration (total: 155, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Md5)":
     0.000590 msecs per iteration (total: 118, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha1)":
     0.00135 msecs per iteration (total: 271, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha256)":
     0.000870 msecs per iteration (total: 174, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha512)":
     0.00101 msecs per iteration (total: 203, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (BLAKE3)":
     0.000655 msecs per iteration (total: 131, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Md5)":
     0.000575 msecs per iteration (total: 115, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha1)":
     0.00138 msecs per iteration (total: 276, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha256)":
     0.000855 msecs per iteration (total: 171, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha512)":
     0.00100 msecs per iteration (total: 200, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (BLAKE3)":
     0.000610 msecs per iteration (total: 122, iterations: 200000)
PASS  : tst_qcryptographichash::append()
RESULT   : tst_qcryptographichash::append_once():"Md5":
     0.00157 msecs per iteration (total: 315, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha1":
     0.00217 msecs per iteration (total: 434, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha256":
     0.00428 msecs per iteration (total: 857, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha512":
     0.00319 msecs per iteration (total: 638, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"BLAKE3":
     0.00164 msecs per iteration (total: 329, iterations: 200000)
PASS  : tst_qcryptographichash::append_once()
RESULT   : tst_qcryptographichash::statichash():"Md5":
     0.00149 msecs per iteration (total: 299, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha1":
     0.00206 msecs per iteration (total: 413, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha256":
     0.00408 msecs per iteration (total: 816, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha512":
     0.00308 msecs per iteration (total: 616, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"BLAKE3":
     0.00137 msecs per iteration (total: 274, iterations: 200000)
PASS  : tst_qcryptographichash::statichash()
PASS  : tst_qcryptographichash::cleanupTestCase()
Totals: 5 passed, 0 failed, 0 skipped
********* Finished testing of tst_qcryptographichash *********

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoQCryptographicHash benchmark review
Ivailo Monev [Fri, 11 Mar 2022 18:13:10 +0000 (20:13 +0200)]
QCryptographicHash benchmark review

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoreplace blake2b_explicit_memset() and blake2s_explicit_memset_impl with memset()...
Ivailo Monev [Fri, 11 Mar 2022 05:07:06 +0000 (07:07 +0200)]
replace blake2b_explicit_memset() and blake2s_explicit_memset_impl with memset() for minor performance gain

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agokeyless BLAKE2b and BLAKE2s hash sums optimization
Ivailo Monev [Fri, 11 Mar 2022 05:02:39 +0000 (07:02 +0200)]
keyless BLAKE2b and BLAKE2s hash sums optimization

minor performance gain, benchmark results:

********* Start testing of tst_qcryptographichash *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS  : tst_qcryptographichash::initTestCase()
RESULT   : tst_qcryptographichash::append():"10 (Md5)":
     0.00278 msecs per iteration (total: 556, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Md5)":
     0.000640 msecs per iteration (total: 128, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Md5)":
     0.000605 msecs per iteration (total: 121, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Md5)":
     0.000560 msecs per iteration (total: 112, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha1)":
     0.00332 msecs per iteration (total: 664, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha1)":
     0.00109 msecs per iteration (total: 218, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha1)":
     0.00133 msecs per iteration (total: 267, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha1)":
     0.00136 msecs per iteration (total: 272, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha256)":
     0.00473 msecs per iteration (total: 946, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha256)":
     0.000945 msecs per iteration (total: 189, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha256)":
     0.000895 msecs per iteration (total: 179, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha256)":
     0.000860 msecs per iteration (total: 172, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha512)":
     0.00361 msecs per iteration (total: 723, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha512)":
     0.00106 msecs per iteration (total: 213, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha512)":
     0.00100 msecs per iteration (total: 201, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha512)":
     0.000995 msecs per iteration (total: 199, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (BLAKE2b)":
     0.00279 msecs per iteration (total: 558, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (BLAKE2b)":
     0.000735 msecs per iteration (total: 147, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (BLAKE2b)":
     0.000690 msecs per iteration (total: 138, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (BLAKE2b)":
     0.000675 msecs per iteration (total: 135, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (BLAKE2s)":
     0.00335 msecs per iteration (total: 671, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (BLAKE2s)":
     0.000665 msecs per iteration (total: 133, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (BLAKE2s)":
     0.000620 msecs per iteration (total: 124, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (BLAKE2s)":
     0.000600 msecs per iteration (total: 120, iterations: 200000)
PASS  : tst_qcryptographichash::append()
RESULT   : tst_qcryptographichash::append_once():"Md5":
     0.00154 msecs per iteration (total: 309, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha1":
     0.00212 msecs per iteration (total: 424, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha256":
     0.00420 msecs per iteration (total: 841, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha512":
     0.00313 msecs per iteration (total: 627, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"BLAKE2b":
     0.00164 msecs per iteration (total: 328, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"BLAKE2s":
     0.00218 msecs per iteration (total: 437, iterations: 200000)
PASS  : tst_qcryptographichash::append_once()
RESULT   : tst_qcryptographichash::statichash():"Md5":
     0.00149 msecs per iteration (total: 299, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha1":
     0.00207 msecs per iteration (total: 415, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha256":
     0.00411 msecs per iteration (total: 822, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha512":
     0.00307 msecs per iteration (total: 615, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"BLAKE2b":
     0.00157 msecs per iteration (total: 314, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"BLAKE2s":
     0.00209 msecs per iteration (total: 419, iterations: 200000)
PASS  : tst_qcryptographichash::statichash()
RESULT   : tst_qcryptographichash::algorithms():"Md5":
     0.00148 msecs per iteration (total: 297, iterations: 200000)
RESULT   : tst_qcryptographichash::algorithms():"Sha1":
     0.00207 msecs per iteration (total: 415, iterations: 200000)
RESULT   : tst_qcryptographichash::algorithms():"Sha256":
     0.00413 msecs per iteration (total: 827, iterations: 200000)
RESULT   : tst_qcryptographichash::algorithms():"Sha512":
     0.00306 msecs per iteration (total: 613, iterations: 200000)
RESULT   : tst_qcryptographichash::algorithms():"BLAKE2b":
     0.00157 msecs per iteration (total: 315, iterations: 200000)
RESULT   : tst_qcryptographichash::algorithms():"BLAKE2s":
     0.00209 msecs per iteration (total: 419, iterations: 200000)
PASS  : tst_qcryptographichash::algorithms()
PASS  : tst_qcryptographichash::cleanupTestCase()
Totals: 6 passed, 0 failed, 0 skipped
********* Finished testing of tst_qcryptographichash *********

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoadd support for BLAKE2b and BLAKE2s hash sums
Ivailo Monev [Fri, 11 Mar 2022 04:22:41 +0000 (06:22 +0200)]
add support for BLAKE2b and BLAKE2s hash sums

benchmark results:
********* Start testing of tst_qcryptographichash *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS  : tst_qcryptographichash::initTestCase()
RESULT   : tst_qcryptographichash::append():"10 (Md5)":
     0.00275 msecs per iteration (total: 551, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Md5)":
     0.000625 msecs per iteration (total: 125, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Md5)":
     0.000570 msecs per iteration (total: 114, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Md5)":
     0.000550 msecs per iteration (total: 110, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha1)":
     0.00327 msecs per iteration (total: 655, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha1)":
     0.00106 msecs per iteration (total: 212, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha1)":
     0.00131 msecs per iteration (total: 262, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha1)":
     0.00133 msecs per iteration (total: 267, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha256)":
     0.00467 msecs per iteration (total: 934, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha256)":
     0.000895 msecs per iteration (total: 179, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha256)":
     0.000850 msecs per iteration (total: 170, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha256)":
     0.000825 msecs per iteration (total: 165, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha512)":
     0.00361 msecs per iteration (total: 723, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha512)":
     0.00105 msecs per iteration (total: 211, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha512)":
     0.000995 msecs per iteration (total: 199, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha512)":
     0.000980 msecs per iteration (total: 196, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (BLAKE2b)":
     0.00278 msecs per iteration (total: 557, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (BLAKE2b)":
     0.000740 msecs per iteration (total: 148, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (BLAKE2b)":
     0.000690 msecs per iteration (total: 138, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (BLAKE2b)":
     0.000650 msecs per iteration (total: 130, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (BLAKE2s)":
     0.00335 msecs per iteration (total: 670, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (BLAKE2s)":
     0.000645 msecs per iteration (total: 129, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (BLAKE2s)":
     0.000600 msecs per iteration (total: 120, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (BLAKE2s)":
     0.000580 msecs per iteration (total: 116, iterations: 200000)
PASS  : tst_qcryptographichash::append()
RESULT   : tst_qcryptographichash::append_once():"Md5":
     0.00154 msecs per iteration (total: 308, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha1":
     0.00211 msecs per iteration (total: 422, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha256":
     0.00415 msecs per iteration (total: 831, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha512":
     0.00314 msecs per iteration (total: 629, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"BLAKE2b":
     0.00164 msecs per iteration (total: 328, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"BLAKE2s":
     0.00217 msecs per iteration (total: 435, iterations: 200000)
PASS  : tst_qcryptographichash::append_once()
RESULT   : tst_qcryptographichash::statichash():"Md5":
     0.00148 msecs per iteration (total: 297, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha1":
     0.00206 msecs per iteration (total: 412, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha256":
     0.00409 msecs per iteration (total: 818, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha512":
     0.00307 msecs per iteration (total: 614, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"BLAKE2b":
     0.00157 msecs per iteration (total: 314, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"BLAKE2s":
     0.00211 msecs per iteration (total: 422, iterations: 200000)
PASS  : tst_qcryptographichash::statichash()
RESULT   : tst_qcryptographichash::algorithms():"Md5":
     0.00148 msecs per iteration (total: 297, iterations: 200000)
RESULT   : tst_qcryptographichash::algorithms():"Sha1":
     0.00206 msecs per iteration (total: 412, iterations: 200000)
RESULT   : tst_qcryptographichash::algorithms():"Sha256":
     0.00409 msecs per iteration (total: 819, iterations: 200000)
RESULT   : tst_qcryptographichash::algorithms():"Sha512":
     0.00307 msecs per iteration (total: 614, iterations: 200000)
RESULT   : tst_qcryptographichash::algorithms():"BLAKE2b":
     0.00157 msecs per iteration (total: 314, iterations: 200000)
RESULT   : tst_qcryptographichash::algorithms():"BLAKE2s":
     0.00212 msecs per iteration (total: 424, iterations: 200000)
PASS  : tst_qcryptographichash::algorithms()
PASS  : tst_qcryptographichash::cleanupTestCase()
Totals: 6 passed, 0 failed, 0 skipped
********* Finished testing of tst_qcryptographichash *********

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agobenchmark all QCryptographicHash algorithms
Ivailo Monev [Fri, 11 Mar 2022 02:48:25 +0000 (04:48 +0200)]
benchmark all QCryptographicHash algorithms

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agodo not mark the end of QCryptographicHash as unreachable in case invalid method was...
Ivailo Monev [Fri, 11 Mar 2022 02:28:43 +0000 (04:28 +0200)]
do not mark the end of QCryptographicHash as unreachable in case invalid method was passed

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agolock before accessing global QML plugins map
Ivailo Monev [Mon, 7 Mar 2022 17:31:48 +0000 (19:31 +0200)]
lock before accessing global QML plugins map

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agouse typedef instead of struct for global declarative components map
Ivailo Monev [Mon, 7 Mar 2022 17:21:16 +0000 (19:21 +0200)]
use typedef instead of struct for global declarative components map

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agouse QStdVector<T> for user events list and de-couple its mutex
Ivailo Monev [Mon, 7 Mar 2022 17:04:53 +0000 (19:04 +0200)]
use QStdVector<T> for user events list and de-couple its mutex

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoreplace hardcoded Qt::MouseButton values with enums
Ivailo Monev [Mon, 7 Mar 2022 16:56:19 +0000 (18:56 +0200)]
replace hardcoded Qt::MouseButton values with enums

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agodeal with TODO related to QGraphicsItem data store
Ivailo Monev [Mon, 7 Mar 2022 16:46:47 +0000 (18:46 +0200)]
deal with TODO related to QGraphicsItem data store

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoremove redundant global static used by QNetworkInterface
Ivailo Monev [Mon, 7 Mar 2022 16:18:02 +0000 (18:18 +0200)]
remove redundant global static used by QNetworkInterface

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoimplement QNetworkInterface via getifaddrs() and one ioctl() for the MAC only
Ivailo Monev [Mon, 7 Mar 2022 14:14:00 +0000 (16:14 +0200)]
implement QNetworkInterface via getifaddrs() and one ioctl() for the MAC only

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoremove redundant QNetworkInterface::humanReadableName() method
Ivailo Monev [Mon, 7 Mar 2022 02:05:40 +0000 (04:05 +0200)]
remove redundant QNetworkInterface::humanReadableName() method

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agobuild fix for hosts without SIOCGIFHWADDR ioctl()
Ivailo Monev [Mon, 7 Mar 2022 00:53:26 +0000 (02:53 +0200)]
build fix for hosts without SIOCGIFHWADDR ioctl()

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoadd QClipboard test
Ivailo Monev [Sun, 6 Mar 2022 19:18:31 +0000 (21:18 +0200)]
add QClipboard test

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoadd QAnimationGroup test
Ivailo Monev [Sun, 6 Mar 2022 19:07:13 +0000 (21:07 +0200)]
add QAnimationGroup test

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agodo not copy socket address structure in qt_socket_getPortAndAddress() function
Ivailo Monev [Sat, 5 Mar 2022 13:59:20 +0000 (15:59 +0200)]
do not copy socket address structure in qt_socket_getPortAndAddress() function

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoadd QNetworkInterface test
Ivailo Monev [Sat, 5 Mar 2022 04:36:06 +0000 (06:36 +0200)]
add QNetworkInterface test

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agofill hardware address of QNetworkInterface when QT_HAVE_GETIFADDRS is defined
Ivailo Monev [Sat, 5 Mar 2022 04:29:54 +0000 (06:29 +0200)]
fill hardware address of QNetworkInterface when QT_HAVE_GETIFADDRS is defined

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoQNetworkInterfacePrivate::makeHwAddress() optimization
Ivailo Monev [Sat, 5 Mar 2022 04:15:30 +0000 (06:15 +0200)]
QNetworkInterfacePrivate::makeHwAddress() optimization

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agobuild fix for the case when compiler mode is C++17 or newer
Ivailo Monev [Fri, 4 Mar 2022 21:32:40 +0000 (23:32 +0200)]
build fix for the case when compiler mode is C++17 or newer

documented at https://en.cppreference.com/w/cpp/regex/basic_regex, good
thing JSC regex are not used for anything relevant, Kate uses some in its
indendation scripts and that's about it

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoQWorkspace class dismissed
Ivailo Monev [Fri, 4 Mar 2022 17:36:29 +0000 (19:36 +0200)]
QWorkspace class dismissed

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agolarge and transparent image samples for QImageReader benchmark
Ivailo Monev [Fri, 4 Mar 2022 16:33:20 +0000 (18:33 +0200)]
large and transparent image samples for QImageReader benchmark

Katie image format is 6x faster than png on transparent images, note
the size of the images. benchmark result:
********* Start testing of tst_QImageReader *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS  : tst_QImageReader::initTestCase()
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.kat":
     0.450 msecs per iteration (total: 225, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.kat":
     5.148 msecs per iteration (total: 2,574, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.kat":
     2.176 msecs per iteration (total: 1,088, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.png":
     1.82 msecs per iteration (total: 911, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.png":
     19.46 msecs per iteration (total: 9,733, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.png":
     12.34 msecs per iteration (total: 6,171, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.ppm":
     0.586 msecs per iteration (total: 293, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.ppm":
     2.728 msecs per iteration (total: 1,364, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.ppm":
     2.418 msecs per iteration (total: 1,209, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.svg":
     10.79 msecs per iteration (total: 5,399, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.xpm":
     8.084 msecs per iteration (total: 4,042, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.xpm":
     75.654 msecs per iteration (total: 37,827, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.xpm":
     63.850 msecs per iteration (total: 31,925, iterations: 500)
PASS  : tst_QImageReader::readImage()
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.kat":
     1.94 msecs per iteration (total: 974, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.kat":
     6.598 msecs per iteration (total: 3,299, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.kat":
     3.594 msecs per iteration (total: 1,797, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.png":
     3.332 msecs per iteration (total: 1,666, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.png":
     20.360 msecs per iteration (total: 10,180, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.png":
     13.29 msecs per iteration (total: 6,645, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.ppm":
     1.44 msecs per iteration (total: 720, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.ppm":
     3.668 msecs per iteration (total: 1,834, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.ppm":
     3.364 msecs per iteration (total: 1,682, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.svg":
     9.324 msecs per iteration (total: 4,662, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.xpm":
     9.622 msecs per iteration (total: 4,811, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.xpm":
     77.180 msecs per iteration (total: 38,590, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.xpm":
     65.346 msecs per iteration (total: 32,673, iterations: 500)
PASS  : tst_QImageReader::setScaledSize()
PASS  : tst_QImageReader::cleanupTestCase()
Totals: 4 passed, 0 failed, 0 skipped
********* Finished testing of tst_QImageReader *********

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoimplement quality option for Katie image format and document how it works
Ivailo Monev [Fri, 4 Mar 2022 14:59:08 +0000 (16:59 +0200)]
implement quality option for Katie image format and document how it works

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agocorrect definition for conditional QTabWidget feature
Ivailo Monev [Thu, 3 Mar 2022 18:47:02 +0000 (20:47 +0200)]
correct definition for conditional QTabWidget feature

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agofix possible crash when session manager property is empty list
Ivailo Monev [Thu, 3 Mar 2022 18:02:57 +0000 (20:02 +0200)]
fix possible crash when session manager property is empty list

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agodo not detach ID variable in QSessionManager constructor
Ivailo Monev [Thu, 3 Mar 2022 17:20:59 +0000 (19:20 +0200)]
do not detach ID variable in QSessionManager constructor

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agotranslations update [ci skip]
Ivailo Monev [Thu, 3 Mar 2022 14:54:49 +0000 (16:54 +0200)]
translations update [ci skip]

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoreduce the size of private QImageReader and QImageWriter data pointers by not storing...
Ivailo Monev [Thu, 3 Mar 2022 14:24:46 +0000 (16:24 +0200)]
reduce the size of private QImageReader and QImageWriter data pointers by not storing the error string

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agofilter duplicate MIME types from plugins with multiple keys in QImageReader::supporte...
Ivailo Monev [Thu, 3 Mar 2022 12:35:27 +0000 (14:35 +0200)]
filter duplicate MIME types from plugins with multiple keys in QImageReader::supportedMimeTypes() and QImageWriter::supportedMimeTypes()

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agodo not compute hash after QCryptographicHash::reset() unless data is added
Ivailo Monev [Thu, 3 Mar 2022 02:48:53 +0000 (04:48 +0200)]
do not compute hash after QCryptographicHash::reset() unless data is added

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agonew QImageReader::formatForMimeType() and QImageWriter::formatForMimeType() methods
Ivailo Monev [Thu, 3 Mar 2022 02:18:14 +0000 (04:18 +0200)]
new QImageReader::formatForMimeType() and QImageWriter::formatForMimeType() methods

fixes pasting of images from clipboard for some image formats

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoadd note in which version QImageReader::supportedMimeTypes(), QImageWriter::defaultIm...
Ivailo Monev [Thu, 3 Mar 2022 01:12:26 +0000 (03:12 +0200)]
add note in which version QImageReader::supportedMimeTypes(), QImageWriter::defaultImageFormat() and QImageWriter::supportedMimeTypes() appeared

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agonew required virtual method to get MIME types for image plugins
Ivailo Monev [Thu, 3 Mar 2022 00:47:28 +0000 (02:47 +0200)]
new required virtual method to get MIME types for image plugins

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoincremental hashing optimization
Ivailo Monev [Wed, 2 Mar 2022 16:34:04 +0000 (18:34 +0200)]
incremental hashing optimization

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agobrief Katie image format documentation
Ivailo Monev [Wed, 2 Mar 2022 14:00:26 +0000 (16:00 +0200)]
brief Katie image format documentation

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agooops, copy-pasta
Ivailo Monev [Tue, 1 Mar 2022 21:51:23 +0000 (23:51 +0200)]
oops, copy-pasta

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agomove variable closer to the scope it is used in QPdfBaseEnginePrivate::openPrintDevice()
Ivailo Monev [Tue, 1 Mar 2022 21:13:35 +0000 (23:13 +0200)]
move variable closer to the scope it is used in QPdfBaseEnginePrivate::openPrintDevice()

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoQT_NO_CUPS option does not require QT_NO_PRINTER
Ivailo Monev [Tue, 1 Mar 2022 21:13:16 +0000 (23:13 +0200)]
QT_NO_CUPS option does not require QT_NO_PRINTER

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoenable QPrintDialog print button only if printer is available
Ivailo Monev [Tue, 1 Mar 2022 20:56:54 +0000 (22:56 +0200)]
enable QPrintDialog print button only if printer is available

fixes crash in case no printer is available and print button is clicked

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agodrop support for printing to file
Ivailo Monev [Tue, 1 Mar 2022 16:27:45 +0000 (18:27 +0200)]
drop support for printing to file

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agodo not return current PPD from QCUPSSupport::setCurrentPrinter()
Ivailo Monev [Tue, 1 Mar 2022 11:53:09 +0000 (13:53 +0200)]
do not return current PPD from QCUPSSupport::setCurrentPrinter()

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agouse QImage::Format_ARGB32_Premultiplied image format for raster pixmaps unless pixel...
Ivailo Monev [Tue, 1 Mar 2022 11:02:03 +0000 (13:02 +0200)]
use QImage::Format_ARGB32_Premultiplied image format for raster pixmaps unless pixel type is bitmap

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agodo not build the Katie image format handler if QT_NO_IMAGEFORMAT_KAT is defined
Ivailo Monev [Tue, 1 Mar 2022 00:40:55 +0000 (02:40 +0200)]
do not build the Katie image format handler if QT_NO_IMAGEFORMAT_KAT is defined

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agotypo
Ivailo Monev [Mon, 28 Feb 2022 23:12:26 +0000 (01:12 +0200)]
typo

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoKatie image format optimization
Ivailo Monev [Mon, 28 Feb 2022 22:40:50 +0000 (00:40 +0200)]
Katie image format optimization

from 2x faster to 3x compared to png, benchmark results bellow:
********* Start testing of tst_QImageReader *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS  : tst_QImageReader::initTestCase()
RESULT   : tst_QImageReader::readImage():"bench.kat":
     0.452 msecs per iteration (total: 226, iterations: 500)
RESULT   : tst_QImageReader::readImage():"bench.pbm":
     0.026 msecs per iteration (total: 13, iterations: 500)
RESULT   : tst_QImageReader::readImage():"bench.png":
     1.82 msecs per iteration (total: 912, iterations: 500)
RESULT   : tst_QImageReader::readImage():"bench.ppm":
     0.588 msecs per iteration (total: 294, iterations: 500)
RESULT   : tst_QImageReader::readImage():"bench.svg":
     10.80 msecs per iteration (total: 5,400, iterations: 500)
RESULT   : tst_QImageReader::readImage():"bench.xpm":
     8.172 msecs per iteration (total: 4,086, iterations: 500)
PASS  : tst_QImageReader::readImage()
RESULT   : tst_QImageReader::setScaledSize():"bench.kat":
     1.95 msecs per iteration (total: 977, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"bench.pbm":
     1.34 msecs per iteration (total: 671, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"bench.png":
     3.328 msecs per iteration (total: 1,664, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"bench.ppm":
     1.44 msecs per iteration (total: 720, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"bench.svg":
     9.304 msecs per iteration (total: 4,652, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"bench.xpm":
     9.730 msecs per iteration (total: 4,865, iterations: 500)
PASS  : tst_QImageReader::setScaledSize()
PASS  : tst_QImageReader::cleanupTestCase()
Totals: 4 passed, 0 failed, 0 skipped
********* Finished testing of tst_QImageReader *********

********* Start testing of tst_QImageWriter *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS  : tst_QImageWriter::initTestCase()
RESULT   : tst_QImageWriter::writeImage():"kat":
     2.428 msecs per iteration (total: 1,214, iterations: 500)
RESULT   : tst_QImageWriter::writeImage():"png":
     7.798 msecs per iteration (total: 3,899, iterations: 500)
RESULT   : tst_QImageWriter::writeImage():"ppm":
     6.954 msecs per iteration (total: 3,477, iterations: 500)
PASS  : tst_QImageWriter::writeImage()
PASS  : tst_QImageWriter::cleanupTestCase()
Totals: 3 passed, 0 failed, 0 skipped
********* Finished testing of tst_QImageWriter *********

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agosimplify raster pixmap creation from image
Ivailo Monev [Mon, 28 Feb 2022 19:43:02 +0000 (21:43 +0200)]
simplify raster pixmap creation from image

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agounroll qt_memfill<T,T>() to 8 operations per-loop when possible
Ivailo Monev [Mon, 28 Feb 2022 19:41:30 +0000 (21:41 +0200)]
unroll qt_memfill<T,T>() to 8 operations per-loop when possible

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agopng header peeking optimization
Ivailo Monev [Mon, 28 Feb 2022 18:28:38 +0000 (20:28 +0200)]
png header peeking optimization

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agouse proper QString constructor in QCUPSSupport::unicodeString()
Ivailo Monev [Mon, 28 Feb 2022 17:26:57 +0000 (19:26 +0200)]
use proper QString constructor in QCUPSSupport::unicodeString()

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoreplace resolveCups() function with its body
Ivailo Monev [Mon, 28 Feb 2022 17:26:23 +0000 (19:26 +0200)]
replace resolveCups() function with its body

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agopre-compute QWIDGETSIZE_MAX definition value
Ivailo Monev [Mon, 28 Feb 2022 17:10:18 +0000 (19:10 +0200)]
pre-compute QWIDGETSIZE_MAX definition value

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>