OSDN Git Service

kde/Katie.git
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>
2 years agoremove mac and win leftovers
Ivailo Monev [Mon, 28 Feb 2022 17:06:01 +0000 (19:06 +0200)]
remove mac and win leftovers

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoremove unused QSystemTrayIconSys::background member
Ivailo Monev [Mon, 28 Feb 2022 17:02:26 +0000 (19:02 +0200)]
remove unused QSystemTrayIconSys::background member

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoindent qx11info_x11 source file
Ivailo Monev [Mon, 28 Feb 2022 17:00:01 +0000 (19:00 +0200)]
indent qx11info_x11 source file

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agocheck if compositor is active on the application display, not the default
Ivailo Monev [Mon, 28 Feb 2022 16:56:16 +0000 (18:56 +0200)]
check if compositor is active on the application display, not the default

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoadd QSystemTrayIcon test
Ivailo Monev [Mon, 28 Feb 2022 16:36:12 +0000 (18:36 +0200)]
add QSystemTrayIcon test

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoindent QBalloonTip constructor
Ivailo Monev [Mon, 28 Feb 2022 16:35:48 +0000 (18:35 +0200)]
indent QBalloonTip constructor

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agooptimize QSystemTrayIconSys::locateSystemTray() method
Ivailo Monev [Mon, 28 Feb 2022 16:22:26 +0000 (18:22 +0200)]
optimize QSystemTrayIconSys::locateSystemTray() method

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoremove unused QAbstractSocketPrivate methods and members
Ivailo Monev [Mon, 28 Feb 2022 15:55:24 +0000 (17:55 +0200)]
remove unused QAbstractSocketPrivate methods and members

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoexplicit socketError() return value check in addressFromSockaddr() function
Ivailo Monev [Mon, 28 Feb 2022 15:44:01 +0000 (17:44 +0200)]
explicit socketError() return value check in addressFromSockaddr() function

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoQVariant test build fix
Ivailo Monev [Mon, 28 Feb 2022 15:13:39 +0000 (17:13 +0200)]
QVariant test build fix

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agodrop unused QSharedMemory and QSystemSemaphore classes
Ivailo Monev [Mon, 28 Feb 2022 15:06:54 +0000 (17:06 +0200)]
drop unused QSharedMemory and QSystemSemaphore classes

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoremove unused QStyle::StandardPixmap::SP_VistaShield enum
Ivailo Monev [Mon, 28 Feb 2022 14:46:19 +0000 (16:46 +0200)]
remove unused QStyle::StandardPixmap::SP_VistaShield enum

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agodrop unused QQuaternion class [ci reset]
Ivailo Monev [Mon, 28 Feb 2022 14:19:45 +0000 (16:19 +0200)]
drop unused QQuaternion class [ci reset]

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agouse uninitialized buffers instead of resizing in QPdfEnginePrivate::addImage()
Ivailo Monev [Mon, 28 Feb 2022 14:00:58 +0000 (16:00 +0200)]
use uninitialized buffers instead of resizing in QPdfEnginePrivate::addImage()

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoremove redundant cups header inclusions
Ivailo Monev [Mon, 28 Feb 2022 12:33:54 +0000 (14:33 +0200)]
remove redundant cups header inclusions

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoreimplement javascriptcore regexp via std::regex
Ivailo Monev [Mon, 28 Feb 2022 03:08:23 +0000 (05:08 +0200)]
reimplement javascriptcore regexp via std::regex

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agonew QImageWriter::defaultImageFormat() method to get the prefered/best image format
Ivailo Monev [Sun, 27 Feb 2022 23:44:47 +0000 (01:44 +0200)]
new QImageWriter::defaultImageFormat() method to get the prefered/best image format

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agodetermine the format from the file suffix if not provided in QImageWriter constructor
Ivailo Monev [Sun, 27 Feb 2022 23:40:32 +0000 (01:40 +0200)]
determine the format from the file suffix if not provided in QImageWriter constructor

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agocolor drag-n-drop optimization
Ivailo Monev [Sun, 27 Feb 2022 23:14:12 +0000 (01:14 +0200)]
color drag-n-drop optimization

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoinclude netinet/in header where required
Ivailo Monev [Sun, 27 Feb 2022 22:52:12 +0000 (00:52 +0200)]
include netinet/in header where required

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agooptional custom image format, for the details see the webp branch
Ivailo Monev [Sun, 27 Feb 2022 20:31:24 +0000 (22:31 +0200)]
optional custom image format, for the details see the webp branch

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2 years agoimplement QImageIOHandler::CompressionLevel for png handler
Ivailo Monev [Sun, 27 Feb 2022 19:51:49 +0000 (21:51 +0200)]
implement QImageIOHandler::CompressionLevel for png handler

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