From 2d30b7dd07935de3b4aa83559c3ca94abb7a698d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mikrut?= Date: Tue, 24 May 2022 21:08:05 +0200 Subject: [PATCH 01/18] GTK4 --- Cargo.lock | 285 ++++++++++++++++++++++++----------------------------- 1 file changed, 129 insertions(+), 156 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ae8162e..621f0c2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13,9 +13,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.53" +version = "1.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94a45b455c14666b85fc40a019e8ab9eb75e3a124e05494f5397122bc9eb06e0" +checksum = "08f9b8508dccb7687a1d6c4ce66b2b0ecef467c94667de27d8d7fe1f8d2a9cdc" [[package]] name = "atk" @@ -43,9 +43,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "bitflags" @@ -70,9 +70,9 @@ dependencies = [ [[package]] name = "cairo-rs" -version = "0.15.1" +version = "0.15.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b869e97a87170f96762f9f178eae8c461147e722ba21dd8814105bf5716bf14a" +checksum = "62be3562254e90c1c6050a72aa638f6315593e98c5cdaba9017cedbabf0a5dee" dependencies = [ "bitflags", "cairo-sys-rs", @@ -94,9 +94,9 @@ dependencies = [ [[package]] name = "cfg-expr" -version = "0.9.0" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edae0b9625d1fce32f7d64b71784d9b1bf8469ec1a9c417e44aaf16a9cbd7571" +checksum = "0aacacf4d96c24b2ad6eb8ee6df040e4f27b0d0b39a5710c30091baa830485db" dependencies = [ "smallvec", ] @@ -122,22 +122,22 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95059428f66df56b63431fdb4e1947ed2190586af5c5a8a8b71122bdf5a7f469" +checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b" dependencies = [ "libc", ] [[package]] name = "dashmap" -version = "5.2.0" +version = "5.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8858831f7781322e539ea39e72449c46b059638250c14344fec8d0aa6e539c" +checksum = "391b56fbd302e585b7a9494fb70e40949567b1cf9003a8e4a6041a1687c26573" dependencies = [ "cfg-if", - "num_cpus", - "parking_lot", + "hashbrown", + "lock_api", ] [[package]] @@ -220,24 +220,24 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3dda0b6588335f360afc675d0564c17a77a2bda81ca178a4b6081bd86c7f0b" +checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" dependencies = [ "futures-core", ] [[package]] name = "futures-core" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0c8ff0461b82559810cdccfde3215c3f373807f5e5232b71479bff7bb2583d7" +checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" [[package]] name = "futures-executor" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29d6d2ff5bb10fb95c85b8ce46538a2e5f5e7fdc755623a7d4529ab8a4ed9d2a" +checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6" dependencies = [ "futures-core", "futures-task", @@ -246,21 +246,21 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f9d34af5a1aac6fb380f735fe510746c38067c5bf16c7fd250280503c971b2" +checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b" [[package]] name = "futures-task" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ee7c6485c30167ce4dfb83ac568a849fe53274c831081476ee13e0dce1aad72" +checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" [[package]] name = "futures-util" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b5cf40b47a271f77a8b1bec03ca09044d99d2372c0de244e66430761127164" +checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" dependencies = [ "futures-core", "futures-task", @@ -287,9 +287,9 @@ dependencies = [ [[package]] name = "gdk-pixbuf" -version = "0.15.1" +version = "0.15.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "172dfe1d9dfb62936bf7ad3ede2913a1b21b1e3db56990e46e00789201de9070" +checksum = "ad38dd9cc8b099cceecdf41375bb6d481b1b5a7cd5cd603e10a69a9383f8619a" dependencies = [ "bitflags", "gdk-pixbuf-sys", @@ -300,9 +300,9 @@ dependencies = [ [[package]] name = "gdk-pixbuf-sys" -version = "0.15.1" +version = "0.15.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413424d9818621fa3cfc8a3a915cdb89a7c3c507d56761b4ec83a9a98e587171" +checksum = "140b2f5378256527150350a8346dbdb08fadc13453a7a2d73aecd5fab3c402a7" dependencies = [ "gio-sys", "glib-sys", @@ -340,9 +340,9 @@ dependencies = [ [[package]] name = "gio" -version = "0.15.10" +version = "0.15.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76cd21a7a674ea811749661012512b0ba5237ba404ccbcab2850db5537549b64" +checksum = "0f132be35e05d9662b9fa0fee3f349c6621f7782e0105917f4cc73c1bf47eceb" dependencies = [ "bitflags", "futures-channel", @@ -357,9 +357,9 @@ dependencies = [ [[package]] name = "gio-sys" -version = "0.15.1" +version = "0.15.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04b57719ccaacf2a0d9c79f151be629f3a3ef3991658ee2af0bb66287e4ea86c" +checksum = "32157a475271e2c4a023382e9cab31c4584ee30a97da41d3c4e9fdd605abcf8d" dependencies = [ "glib-sys", "gobject-sys", @@ -370,9 +370,9 @@ dependencies = [ [[package]] name = "glib" -version = "0.15.10" +version = "0.15.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a826fad715b57834920839d7a594c3b5e416358c7d790bdaba847a40d7c1d96d" +checksum = "bd124026a2fa8c33a3d17a3fe59c103f2d9fa5bd92c19e029e037736729abeab" dependencies = [ "bitflags", "futures-channel", @@ -390,12 +390,12 @@ dependencies = [ [[package]] name = "glib-macros" -version = "0.15.10" +version = "0.15.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dac4d47c544af67747652ab1865ace0ffa1155709723ac4f32e97587dd4735b2" +checksum = "25a68131a662b04931e71891fb14aaf65ee4b44d08e8abc10f49e77418c86c64" dependencies = [ "anyhow", - "heck 0.4.0", + "heck", "proc-macro-crate", "proc-macro-error", "proc-macro2", @@ -405,9 +405,9 @@ dependencies = [ [[package]] name = "glib-sys" -version = "0.15.1" +version = "0.15.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c668102c6e15e0a7f6b99b59f602c2e806967bb86414f617b77e19b1de5b3fac" +checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4" dependencies = [ "libc", "system-deps", @@ -415,9 +415,9 @@ dependencies = [ [[package]] name = "gobject-sys" -version = "0.15.1" +version = "0.15.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6edb1f0b3e4c08e2a0a490d1082ba9e902cdff8ff07091e85c6caec60d17e2ab" +checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a" dependencies = [ "glib-sys", "libc", @@ -426,9 +426,9 @@ dependencies = [ [[package]] name = "gtk" -version = "0.15.4" +version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f2d1326b36af927fe46ae2f89a8fec38c6f0d279ebc5ef07ffeeabb70300bfc" +checksum = "92e3004a2d5d6d8b5057d2b57b3712c9529b62e82c77f25c1fecde1fd5c23bd0" dependencies = [ "atk", "bitflags", @@ -449,9 +449,9 @@ dependencies = [ [[package]] name = "gtk-sys" -version = "0.15.1" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "013419d486809ebafd7d8c2450afcfcf384c1a52dd079660f88c2a3b2e19f82f" +checksum = "d5bc2f0587cba247f60246a0ca11fe25fb733eabc3de12d1965fc07efab87c84" dependencies = [ "atk-sys", "cairo-sys-rs", @@ -467,9 +467,9 @@ dependencies = [ [[package]] name = "gtk3-macros" -version = "0.15.1" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c891188af69e77a1e8a0b1746fbd03b9b396e7d34d518c5331b15950259f541" +checksum = "24f518afe90c23fba585b2d7697856f9e6a7bbc62f65588035e66f6afb01a2e9" dependencies = [ "anyhow", "proc-macro-crate", @@ -480,13 +480,10 @@ dependencies = [ ] [[package]] -name = "heck" -version = "0.3.3" +name = "hashbrown" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" -dependencies = [ - "unicode-segmentation", -] +checksum = "db0d4cf898abf0081f964436dc980e96670a0f36863e4b83aaacdb65c9d7ccc3" [[package]] name = "heck" @@ -494,15 +491,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" -[[package]] -name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - [[package]] name = "humansize" version = "1.1.1" @@ -606,9 +594,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.114" +version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0005d08a8f7b65fb8073cb697aa0b12b631ed251ce73d862ce50eeb52ce3b50" +checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" [[package]] name = "locale_config" @@ -625,18 +613,19 @@ dependencies = [ [[package]] name = "lock_api" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b" +checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" dependencies = [ + "autocfg", "scopeguard", ] [[package]] name = "log" -version = "0.4.14" +version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" dependencies = [ "cfg-if", ] @@ -652,9 +641,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" [[package]] name = "memoffset" @@ -667,9 +656,9 @@ dependencies = [ [[package]] name = "num-integer" -version = "0.1.44" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" dependencies = [ "autocfg", "num-traits", @@ -677,23 +666,13 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" dependencies = [ "autocfg", ] -[[package]] -name = "num_cpus" -version = "1.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" -dependencies = [ - "hermit-abi", - "libc", -] - [[package]] name = "objc" version = "0.2.7" @@ -725,9 +704,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.10.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9" +checksum = "7709cef83f0c1f58f666e746a08b21e0085f7440fa6a29cc194d68aac97a4225" [[package]] name = "opaque-debug" @@ -737,9 +716,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "open" -version = "2.1.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9213e7b66aa06a7722828ee2980c1adff22a3922b582baaa1e62e30ca2a6c018" +checksum = "e0524af9508f9b5c4eb41dce095860456727748f63b478d625f119a70e0d764a" dependencies = [ "pathdiff", "winapi", @@ -747,9 +726,9 @@ dependencies = [ [[package]] name = "pango" -version = "0.15.2" +version = "0.15.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79211eff430c29cc38c69e0ab54bc78fa1568121ca9737707eee7f92a8417a94" +checksum = "22e4045548659aee5313bde6c582b0d83a627b7904dd20dc2d9ef0895d414e4f" dependencies = [ "bitflags", "glib", @@ -760,9 +739,9 @@ dependencies = [ [[package]] name = "pango-sys" -version = "0.15.1" +version = "0.15.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7022c2fb88cd2d9d55e1a708a8c53a3ae8678234c4a54bf623400aeb7f31fac2" +checksum = "d2a00081cde4661982ed91d80ef437c20eacaf6aa1a5962c0279ae194662c3aa" dependencies = [ "glib-sys", "gobject-sys", @@ -782,9 +761,9 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.1" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28141e0cc4143da2443301914478dc976a61ffdb3f043058310c70df2fed8954" +checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" dependencies = [ "cfg-if", "libc", @@ -810,9 +789,9 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" [[package]] name = "pin-utils" @@ -822,15 +801,15 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.24" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58893f751c9b0412871a09abd62ecd2a00298c6c83befa223ef98c52aef40cbe" +checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" [[package]] name = "proc-macro-crate" -version = "1.1.0" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ebace6889caf889b4d3f76becee12e90353f2b8c7d875534a71e5742f8f6f83" +checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" dependencies = [ "thiserror", "toml", @@ -862,36 +841,36 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.36" +version = "1.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029" +checksum = "c54b25569025b7fc9651de43004ae593a75ad88543b17178aa5e1b9c4f15f56f" dependencies = [ - "unicode-xid", + "unicode-ident", ] [[package]] name = "quote" -version = "1.0.15" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145" +checksum = "a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1" dependencies = [ "proc-macro2", ] [[package]] name = "redox_syscall" -version = "0.2.10" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff" +checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42" dependencies = [ "bitflags", ] [[package]] name = "regex" -version = "1.5.4" +version = "1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461" +checksum = "d83f127d94bdbcda4c8cc2e50f6f84f4b611f69c902699ca385a39c3a75f9ff1" dependencies = [ "aho-corasick", "memchr", @@ -900,15 +879,15 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.6.25" +version = "0.6.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" +checksum = "49b3de9ec5dc0a3417da371aab17d729997c15010e7fd24ff707773a33bddb64" [[package]] name = "rust-embed" -version = "6.3.0" +version = "6.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d40377bff8cceee81e28ddb73ac97f5c2856ce5522f0b260b763f434cdfae602" +checksum = "9a17e5ac65b318f397182ae94e532da0ba56b88dd1200b774715d36c4943b1c3" dependencies = [ "rust-embed-impl", "rust-embed-utils", @@ -930,9 +909,9 @@ dependencies = [ [[package]] name = "rust-embed-utils" -version = "7.1.0" +version = "7.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad22c7226e4829104deab21df575e995bfbc4adfad13a595e387477f238c1aec" +checksum = "756feca3afcbb1487a1d01f4ecd94cf8ec98ea074c55a69e7136d29fb6166029" dependencies = [ "sha2", "walkdir", @@ -994,18 +973,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.136" +version = "1.0.137" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789" +checksum = "61ea8d54c77f8315140a05f4c7237403bf38b72704d031543aa1d16abbf517d1" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.136" +version = "1.0.137" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9" +checksum = "1f26faba0c3959972377d3b2d306ee9f71faee9714294e41bb777f83f88578be" dependencies = [ "proc-macro2", "quote", @@ -1027,9 +1006,9 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" +checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32" [[package]] name = "slugmin" @@ -1054,23 +1033,23 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "syn" -version = "1.0.86" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b" +checksum = "fbaf6116ab8924f39d52792136fb74fd60a80194cf1b1c6ffa6453eef1c3f942" dependencies = [ "proc-macro2", "quote", - "unicode-xid", + "unicode-ident", ] [[package]] name = "system-deps" -version = "6.0.0" +version = "6.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b1487aaddaacbc5d60a2a507ba1617c5ca66c57dd0dd07d0c5efd5b693841d4" +checksum = "a1a45a1c4c9015217e12347f2a411b57ce2c4fc543913b14b6fe40483328e709" dependencies = [ "cfg-expr", - "heck 0.3.3", + "heck", "pkg-config", "toml", "version-compare", @@ -1097,18 +1076,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.30" +version = "1.0.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417" +checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.30" +version = "1.0.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" +checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a" dependencies = [ "proc-macro2", "quote", @@ -1134,9 +1113,9 @@ checksum = "29738eedb4388d9ea620eeab9384884fc3f06f586a2eddb56bedc5885126c7c1" [[package]] name = "toml" -version = "0.5.8" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa" +checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" dependencies = [ "serde", ] @@ -1182,16 +1161,10 @@ dependencies = [ ] [[package]] -name = "unicode-segmentation" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b" - -[[package]] -name = "unicode-xid" -version = "0.2.2" +name = "unicode-ident" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" +checksum = "d22af068fba1eb5edcb4aea19d382b2a3deb4c8f9d475c589b6ada9e0fd493ee" [[package]] name = "version-compare" @@ -1255,9 +1228,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-sys" -version = "0.32.0" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3df6e476185f92a12c072be4a189a0210dcdcf512a1891d6dff9edb874deadc6" +checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" dependencies = [ "windows_aarch64_msvc", "windows_i686_gnu", @@ -1268,30 +1241,30 @@ dependencies = [ [[package]] name = "windows_aarch64_msvc" -version = "0.32.0" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8e92753b1c443191654ec532f14c199742964a061be25d77d7a96f09db20bf5" +checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" [[package]] name = "windows_i686_gnu" -version = "0.32.0" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a711c68811799e017b6038e0922cb27a5e2f43a2ddb609fe0b6f3eeda9de615" +checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" [[package]] name = "windows_i686_msvc" -version = "0.32.0" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146c11bb1a02615db74680b32a68e2d61f553cc24c4eb5b4ca10311740e44172" +checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" [[package]] name = "windows_x86_64_gnu" -version = "0.32.0" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c912b12f7454c6620635bbff3450962753834be2a594819bd5e945af18ec64bc" +checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" [[package]] name = "windows_x86_64_msvc" -version = "0.32.0" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "504a2476202769977a040c6364301a3f65d0cc9e3fb08600b2bda150a0488316" +checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" From 4bc57c87218f7d23b2adf3960dd56848b2b19b32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mikrut?= Date: Tue, 24 May 2022 21:40:38 +0200 Subject: [PATCH 02/18] Add files --- src/connect_add_files_button.rs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/connect_add_files_button.rs b/src/connect_add_files_button.rs index 86b389e..4bab846 100644 --- a/src/connect_add_files_button.rs +++ b/src/connect_add_files_button.rs @@ -20,10 +20,15 @@ pub fn connect_add_files_button(gui_data: &GuiData) { let chooser = gtk::FileChooserDialog::with_buttons(Some("Files to include"), Some(&window_main), gtk::FileChooserAction::Open, &[("Ok", gtk::ResponseType::Ok), ("Close", gtk::ResponseType::Cancel)]); chooser.set_select_multiple(true); chooser.show_all(); - { - let response_type = chooser.run(); + + let tree_view_results = tree_view_results.clone(); + let label_files_folders = label_files_folders.clone(); + let shared_result_entries = shared_result_entries.clone(); + let rules = rules.clone(); + + chooser.connect_response(move |dialog, response_type| { if response_type == gtk::ResponseType::Ok { - let mut folder = chooser.filenames(); + let mut folder = dialog.filenames(); let mut result_entries = shared_result_entries.borrow_mut(); @@ -114,8 +119,8 @@ pub fn connect_add_files_button(gui_data: &GuiData) { } } update_records(&tree_view_results, shared_result_entries.clone(), rules.clone(), UpdateMode::FileAdded, &label_files_folders); - } - chooser.close(); + dialog.close(); + }); }); } From 9c8e8c3f12aa8cb0d827e102268838f9cea3817d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mikrut?= Date: Tue, 24 May 2022 22:14:07 +0200 Subject: [PATCH 03/18] Add files --- Cargo.toml | 14 +- src/connect_add_folders_button.rs | 215 +++++++++--------- src/connect_select_records.rs | 363 +++++++++++++++--------------- src/connect_start_renaming.rs | 137 ++++++----- src/help_function.rs | 3 - 5 files changed, 365 insertions(+), 367 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 57d66d7..30fbaa8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,8 +10,8 @@ repository = "https://github.com/qarmin/szyszka" [dependencies] gdk = "0.15.4" -gio = "0.15.10" -glib = "0.15.10" +gio = "0.15.11" +glib = "0.15.11" # For checking path walkdir = "2.3.2" @@ -20,7 +20,7 @@ humansize = "1.1.1" chrono = "0.4.19" # For opening files -open = "2.1.1" +open = "2.1.2" # For slugs slugmin = "1.0.2" @@ -28,11 +28,11 @@ slugmin = "1.0.2" # Language i18n-embed = { version = "0.13.4", features = ["fluent-system", "desktop-requester"] } i18n-embed-fl = "0.6.4" -rust-embed = "6.3.0" -once_cell = "1.10.0" +rust-embed = "6.4.0" +once_cell = "1.12.0" [dependencies.gtk] -version = "0.15.4" +version = "0.15.5" default-features = false # just in case -features = ["v3_24_9"] +features = ["v3_24_30"] diff --git a/src/connect_add_folders_button.rs b/src/connect_add_folders_button.rs index c72ac16..818a8aa 100644 --- a/src/connect_add_folders_button.rs +++ b/src/connect_add_folders_button.rs @@ -54,130 +54,137 @@ pub fn connect_add_folders_button(gui_data: &GuiData) { chooser.set_title("Folders to include"); chooser.show_all(); - let response_type = chooser.run(); - if response_type == gtk::ResponseType::Ok { - let mut result_entries = shared_result_entries.borrow_mut(); - let list_store = get_list_store_from_tree_view(&tree_view_results); + let shared_result_entries = shared_result_entries.clone(); + let label_files_folders = label_files_folders.clone(); + let tree_view_results = tree_view_results.clone(); + let rules = rules.clone(); - let folders_to_check = chooser.filenames(); - let mut folders; + chooser.connect_response(move |chooser, response| { + if response == gtk::ResponseType::Ok { + let mut result_entries = shared_result_entries.borrow_mut(); - let ignore_folders = switch_ignore_folders.is_active(); - let check_folders_inside = switch_scan_inside.is_active(); + let list_store = get_list_store_from_tree_view(&tree_view_results); - let mut new_entries = Vec::new(); + let folders_to_check = chooser.filenames(); + let mut folders; - if check_folders_inside { - if ignore_folders { - for folder in folders_to_check { - for entry in WalkDir::new(folder).max_depth(9999).into_iter().filter_map(|e| e.ok()) { - if let Ok(metadata) = entry.metadata() { - if metadata.is_file() { - new_entries.push(entry.path().to_path_buf()); + let ignore_folders = switch_ignore_folders.is_active(); + let check_folders_inside = switch_scan_inside.is_active(); + + let mut new_entries = Vec::new(); + + if check_folders_inside { + if ignore_folders { + for folder in folders_to_check { + for entry in WalkDir::new(folder).max_depth(9999).into_iter().filter_map(|e| e.ok()) { + if let Ok(metadata) = entry.metadata() { + if metadata.is_file() { + new_entries.push(entry.path().to_path_buf()); + } } } } - } - } else { - for folder in folders_to_check { - for entry in WalkDir::new(folder).max_depth(9999).into_iter().filter_map(|e| e.ok()) { - new_entries.push(entry.path().to_path_buf()); + } else { + for folder in folders_to_check { + for entry in WalkDir::new(folder).max_depth(9999).into_iter().filter_map(|e| e.ok()) { + new_entries.push(entry.path().to_path_buf()); + } } } + folders = new_entries; + } else { + folders = folders_to_check; } - folders = new_entries; - } else { - folders = folders_to_check; - } - folders.sort_by(|a, b| { - let (path_a, name_a) = split_path(a); - let (path_b, name_b) = split_path(b); - let res = path_a.cmp(&path_b); - if res == Ordering::Equal { - return name_a.cmp(&name_b); - } - res - }); - - let timezone_offset = Local::now().offset().local_minus_utc(); - - for file_entry in &folders { - let (path, name) = split_path(file_entry); - let full_name = match file_entry.to_str() { - Some(t) => t, - None => { - println!("Failed to read name of {:?} (some characters may be missing in this name)", file_entry); - continue; + folders.sort_by(|a, b| { + let (path_a, name_a) = split_path(a); + let (path_b, name_b) = split_path(b); + let res = path_a.cmp(&path_b); + if res == Ordering::Equal { + return name_a.cmp(&name_b); } - }; - - if result_entries.files.contains(full_name) { - // Remove this println - // println!("Already is used file name {}", full_name); - continue; // There is already entry - } + res + }); + + let timezone_offset = Local::now().offset().local_minus_utc(); + + for file_entry in &folders { + let (path, name) = split_path(file_entry); + let full_name = match file_entry.to_str() { + Some(t) => t, + None => { + println!("Failed to read name of {:?} (some characters may be missing in this name)", file_entry); + continue; + } + }; - //// Read Metadata - let file_metadata = match fs::metadata(&file_entry) { - Ok(t) => t, - Err(err) => { - eprintln!("Failed to load metadata of file {}, reason - \"{}\"", file_entry.display(), err); - continue; + if result_entries.files.contains(full_name) { + // Remove this println + // println!("Already is used file name {}", full_name); + continue; // There is already entry } - }; - let size = file_metadata.len(); - let modification_date = match file_metadata.modified() { - Ok(t) => match t.duration_since(UNIX_EPOCH) { - Ok(d) => max(d.as_secs() as i64 + timezone_offset as i64, 0) as u64, - Err(_) => { - eprintln!("File {} seems to be modified before Unix Epoch.", file_entry.display()); + + //// Read Metadata + let file_metadata = match fs::metadata(&file_entry) { + Ok(t) => t, + Err(err) => { + eprintln!("Failed to load metadata of file {}, reason - \"{}\"", file_entry.display(), err); + continue; + } + }; + let size = file_metadata.len(); + let modification_date = match file_metadata.modified() { + Ok(t) => match t.duration_since(UNIX_EPOCH) { + Ok(d) => max(d.as_secs() as i64 + timezone_offset as i64, 0) as u64, + Err(_) => { + eprintln!("File {} seems to be modified before Unix Epoch.", file_entry.display()); + 0 + } + }, + Err(err) => { + eprintln!("Unable to get modification date from file {}, reason - \"{}\"", file_entry.display(), err); 0 } - }, - Err(err) => { - eprintln!("Unable to get modification date from file {}, reason - \"{}\"", file_entry.display(), err); - 0 - } - }; - let creation_date = match file_metadata.created() { - Ok(t) => match t.duration_since(UNIX_EPOCH) { - Ok(d) => max(d.as_secs() as i64 + timezone_offset as i64, 0) as u64, - Err(_) => { - eprintln!("File {} seems to be created before Unix Epoch.", file_entry.display()); + }; + let creation_date = match file_metadata.created() { + Ok(t) => match t.duration_since(UNIX_EPOCH) { + Ok(d) => max(d.as_secs() as i64 + timezone_offset as i64, 0) as u64, + Err(_) => { + eprintln!("File {} seems to be created before Unix Epoch.", file_entry.display()); + 0 + } + }, + Err(err) => { + eprintln!("Unable to get creation date from file {}, reason - \"{}\"", file_entry.display(), err); 0 } - }, - Err(err) => { - eprintln!("Unable to get creation date from file {}, reason - \"{}\"", file_entry.display(), err); - 0 - } - }; - let is_dir = match file_metadata.is_dir() { - true => "Dir", - false => "File", - }; - - //// Create entry and save it to metadata - let values: [(u32, &dyn ToValue); 7] = [ - (ColumnsResults::Type as u32, &is_dir), - (ColumnsResults::CurrentName as u32, &name), - (ColumnsResults::FutureName as u32, &name), - (ColumnsResults::Path as u32, &path), - (ColumnsResults::Size as u32, &size), - (ColumnsResults::ModificationDate as u32, &modification_date), - (ColumnsResults::CreationDate as u32, &creation_date), - ]; - list_store.set(&list_store.append(), &values); - - // Used to check if already in treeview is this values - result_entries.files.insert(full_name.to_string()); + }; + let is_dir = match file_metadata.is_dir() { + true => "Dir", + false => "File", + }; + + //// Create entry and save it to metadata + let values: [(u32, &dyn ToValue); 7] = [ + (ColumnsResults::Type as u32, &is_dir), + (ColumnsResults::CurrentName as u32, &name), + (ColumnsResults::FutureName as u32, &name), + (ColumnsResults::Path as u32, &path), + (ColumnsResults::Size as u32, &size), + (ColumnsResults::ModificationDate as u32, &modification_date), + (ColumnsResults::CreationDate as u32, &creation_date), + ]; + list_store.set(&list_store.append(), &values); + + // Used to check if already in treeview is this values + result_entries.files.insert(full_name.to_string()); + } } - } - update_records(&tree_view_results, shared_result_entries.clone(), rules.clone(), UpdateMode::FileAdded, &label_files_folders); - } + update_records(&tree_view_results, shared_result_entries.clone(), rules.clone(), UpdateMode::FileAdded, &label_files_folders); - chooser.close(); + chooser.close(); + }); + }; }); } diff --git a/src/connect_select_records.rs b/src/connect_select_records.rs index 58057eb..18c17a5 100644 --- a/src/connect_select_records.rs +++ b/src/connect_select_records.rs @@ -131,7 +131,6 @@ pub fn connect_select_custom(gui_data: &GuiData) { button_select_custom.connect_clicked(move |_e| { popover_select.popdown(); - let wildcard: String; enum WildcardType { Path, CurrentName, @@ -140,7 +139,6 @@ pub fn connect_select_custom(gui_data: &GuiData) { PathFutureName, IsDir, } - let wildcard_type: WildcardType; // Accept Dialog { @@ -196,101 +194,102 @@ pub fn connect_select_custom(gui_data: &GuiData) { confirmation_dialog_delete.show_all(); - let response_type = confirmation_dialog_delete.run(); - if response_type == gtk::ResponseType::Ok { - if radio_path.is_active() { - wildcard_type = WildcardType::Path; - wildcard = entry_path.text().to_string(); - } else if radio_current_name.is_active() { - wildcard_type = WildcardType::CurrentName; - wildcard = entry_current_name.text().to_string(); - } else if radio_future_name.is_active() { - wildcard_type = WildcardType::FutureName; - wildcard = entry_future_name.text().to_string(); - } else if radio_current_name_path.is_active() { - wildcard_type = WildcardType::PathCurrentName; - wildcard = entry_current_name_path.text().to_string(); - } else if radio_future_name_path.is_active() { - wildcard_type = WildcardType::PathFutureName; - wildcard = entry_future_name_path.text().to_string(); - } else if radio_is_dir.is_active() { - wildcard_type = WildcardType::IsDir; - wildcard = match check_button_is_dir.is_active() { - true => "Dir".to_string(), - false => "File".to_string(), - }; - } else { - panic!("Non handled option in select wildcard"); - } - } else { - confirmation_dialog_delete.close(); - return; - } - confirmation_dialog_delete.close(); - } - if !wildcard.is_empty() { - let wildcard = wildcard.trim(); - - #[cfg(target_family = "windows")] - let wildcard = wildcard.replace("/", "\\"); - #[cfg(target_family = "windows")] - let wildcard = wildcard.as_str(); - - let selection = tree_view.selection(); - let tree_model = tree_view.model().unwrap(); - - let tree_iter = tree_model.iter_first().unwrap(); // Never should be available button where there is no available records - - loop { - let typ = tree_model.value(&tree_iter, ColumnsResults::Type as i32).get::().unwrap(); - let path = tree_model.value(&tree_iter, ColumnsResults::Path as i32).get::().unwrap(); - let current_name = tree_model.value(&tree_iter, ColumnsResults::CurrentName as i32).get::().unwrap(); - let future_name = tree_model.value(&tree_iter, ColumnsResults::CurrentName as i32).get::().unwrap(); - match wildcard_type { - WildcardType::Path => { - if regex_check(wildcard, path) { - selection.select_iter(&tree_iter); - } - } - WildcardType::CurrentName => { - if regex_check(wildcard, current_name) { - selection.select_iter(&tree_iter); - } - } - WildcardType::FutureName => { - if regex_check(wildcard, future_name) { - selection.select_iter(&tree_iter); - } - } - WildcardType::PathCurrentName => { - if regex_check(wildcard, format!("{}/{}", path, current_name)) { - selection.select_iter(&tree_iter); - } - } - WildcardType::PathFutureName => { - if regex_check(wildcard, format!("{}/{}", path, future_name)) { - selection.select_iter(&tree_iter); - } + let tree_view = tree_view.clone(); + confirmation_dialog_delete.connect_response(move |_chooser, response_type| { + let wildcard_type: WildcardType; + let wildcard: String; + if response_type == gtk::ResponseType::Ok { + if radio_path.is_active() { + wildcard_type = WildcardType::Path; + wildcard = entry_path.text().to_string(); + } else if radio_current_name.is_active() { + wildcard_type = WildcardType::CurrentName; + wildcard = entry_current_name.text().to_string(); + } else if radio_future_name.is_active() { + wildcard_type = WildcardType::FutureName; + wildcard = entry_future_name.text().to_string(); + } else if radio_current_name_path.is_active() { + wildcard_type = WildcardType::PathCurrentName; + wildcard = entry_current_name_path.text().to_string(); + } else if radio_future_name_path.is_active() { + wildcard_type = WildcardType::PathFutureName; + wildcard = entry_future_name_path.text().to_string(); + } else if radio_is_dir.is_active() { + wildcard_type = WildcardType::IsDir; + wildcard = match check_button_is_dir.is_active() { + true => "Dir".to_string(), + false => "File".to_string(), + }; + } else { + panic!("Non handled option in select wildcard"); } - WildcardType::IsDir => { - if wildcard == "Dir" { - if typ == "Dir" { - selection.select_iter(&tree_iter); + + if !wildcard.is_empty() { + let wildcard = wildcard.trim(); + + #[cfg(target_family = "windows")] + let wildcard = wildcard.replace("/", "\\"); + #[cfg(target_family = "windows")] + let wildcard = wildcard.as_str(); + + let selection = tree_view.selection(); + let tree_model = tree_view.model().unwrap(); + + let tree_iter = tree_model.iter_first().unwrap(); // Never should be available button where there is no available records + + loop { + let typ = tree_model.value(&tree_iter, ColumnsResults::Type as i32).get::().unwrap(); + let path = tree_model.value(&tree_iter, ColumnsResults::Path as i32).get::().unwrap(); + let current_name = tree_model.value(&tree_iter, ColumnsResults::CurrentName as i32).get::().unwrap(); + let future_name = tree_model.value(&tree_iter, ColumnsResults::CurrentName as i32).get::().unwrap(); + match wildcard_type { + WildcardType::Path => { + if regex_check(wildcard, path) { + selection.select_iter(&tree_iter); + } + } + WildcardType::CurrentName => { + if regex_check(wildcard, current_name) { + selection.select_iter(&tree_iter); + } + } + WildcardType::FutureName => { + if regex_check(wildcard, future_name) { + selection.select_iter(&tree_iter); + } + } + WildcardType::PathCurrentName => { + if regex_check(wildcard, format!("{}/{}", path, current_name)) { + selection.select_iter(&tree_iter); + } + } + WildcardType::PathFutureName => { + if regex_check(wildcard, format!("{}/{}", path, future_name)) { + selection.select_iter(&tree_iter); + } + } + WildcardType::IsDir => { + if wildcard == "Dir" { + if typ == "Dir" { + selection.select_iter(&tree_iter); + } + } else if wildcard == "File" { + if typ == "File" { + selection.select_iter(&tree_iter); + } + } else { + panic!(); + } + } } - } else if wildcard == "File" { - if typ == "File" { - selection.select_iter(&tree_iter); + + if !tree_model.iter_next(&tree_iter) { + break; } - } else { - panic!(); } } } - - if !tree_model.iter_next(&tree_iter) { - break; - } - } + }); } }); } @@ -305,7 +304,6 @@ pub fn connect_unselect_custom(gui_data: &GuiData) { button_unselect_custom.connect_clicked(move |_e| { popover_select.popdown(); - let wildcard: String; enum WildcardType { Path, CurrentName, @@ -314,7 +312,6 @@ pub fn connect_unselect_custom(gui_data: &GuiData) { PathFutureName, IsDir, } - let wildcard_type: WildcardType; // Accept Dialog { @@ -370,101 +367,103 @@ pub fn connect_unselect_custom(gui_data: &GuiData) { confirmation_dialog_delete.show_all(); - let response_type = confirmation_dialog_delete.run(); - if response_type == gtk::ResponseType::Ok { - if radio_path.is_active() { - wildcard_type = WildcardType::Path; - wildcard = entry_path.text().to_string(); - } else if radio_current_name.is_active() { - wildcard_type = WildcardType::CurrentName; - wildcard = entry_current_name.text().to_string(); - } else if radio_future_name.is_active() { - wildcard_type = WildcardType::FutureName; - wildcard = entry_future_name.text().to_string(); - } else if radio_current_name_path.is_active() { - wildcard_type = WildcardType::PathCurrentName; - wildcard = entry_current_name_path.text().to_string(); - } else if radio_future_name_path.is_active() { - wildcard_type = WildcardType::PathFutureName; - wildcard = entry_future_name_path.text().to_string(); - } else if radio_is_dir.is_active() { - wildcard_type = WildcardType::IsDir; - wildcard = match check_button_is_dir.is_active() { - true => "Dir".to_string(), - false => "File".to_string(), - }; - } else { - panic!("Non handled option in select wildcard"); - } - } else { - confirmation_dialog_delete.close(); - return; - } - confirmation_dialog_delete.close(); - } - if !wildcard.is_empty() { - let wildcard = wildcard.trim(); - - #[cfg(target_family = "windows")] - let wildcard = wildcard.replace("/", "\\"); - #[cfg(target_family = "windows")] - let wildcard = wildcard.as_str(); - - let selection = tree_view.selection(); - let tree_model = tree_view.model().unwrap(); - - let tree_iter = tree_model.iter_first().unwrap(); // Never should be available button where there is no available records - - loop { - let typ = tree_model.value(&tree_iter, ColumnsResults::Type as i32).get::().unwrap(); - let path = tree_model.value(&tree_iter, ColumnsResults::Path as i32).get::().unwrap(); - let current_name = tree_model.value(&tree_iter, ColumnsResults::CurrentName as i32).get::().unwrap(); - let future_name = tree_model.value(&tree_iter, ColumnsResults::CurrentName as i32).get::().unwrap(); - match wildcard_type { - WildcardType::Path => { - if regex_check(wildcard, path) { - selection.unselect_iter(&tree_iter); - } - } - WildcardType::CurrentName => { - if regex_check(wildcard, current_name) { - selection.unselect_iter(&tree_iter); - } - } - WildcardType::FutureName => { - if regex_check(wildcard, future_name) { - selection.unselect_iter(&tree_iter); - } - } - WildcardType::PathCurrentName => { - if regex_check(wildcard, format!("{}/{}", path, current_name)) { - selection.unselect_iter(&tree_iter); - } - } - WildcardType::PathFutureName => { - if regex_check(wildcard, format!("{}/{}", path, future_name)) { - selection.unselect_iter(&tree_iter); - } + let tree_view = tree_view.clone(); + confirmation_dialog_delete.connect_response(move |_, response| { + if response == gtk::ResponseType::Ok { + let wildcard: String; + let wildcard_type: WildcardType; + + if radio_path.is_active() { + wildcard_type = WildcardType::Path; + wildcard = entry_path.text().to_string(); + } else if radio_current_name.is_active() { + wildcard_type = WildcardType::CurrentName; + wildcard = entry_current_name.text().to_string(); + } else if radio_future_name.is_active() { + wildcard_type = WildcardType::FutureName; + wildcard = entry_future_name.text().to_string(); + } else if radio_current_name_path.is_active() { + wildcard_type = WildcardType::PathCurrentName; + wildcard = entry_current_name_path.text().to_string(); + } else if radio_future_name_path.is_active() { + wildcard_type = WildcardType::PathFutureName; + wildcard = entry_future_name_path.text().to_string(); + } else if radio_is_dir.is_active() { + wildcard_type = WildcardType::IsDir; + wildcard = match check_button_is_dir.is_active() { + true => "Dir".to_string(), + false => "File".to_string(), + }; + } else { + panic!("Non handled option in select wildcard"); } - WildcardType::IsDir => { - if wildcard == "Dir" { - if typ == "Dir" { - selection.unselect_iter(&tree_iter); + + if !wildcard.is_empty() { + let wildcard = wildcard.trim(); + + #[cfg(target_family = "windows")] + let wildcard = wildcard.replace("/", "\\"); + #[cfg(target_family = "windows")] + let wildcard = wildcard.as_str(); + + let selection = tree_view.selection(); + let tree_model = tree_view.model().unwrap(); + + let tree_iter = tree_model.iter_first().unwrap(); // Never should be available button where there is no available records + + loop { + let typ = tree_model.value(&tree_iter, ColumnsResults::Type as i32).get::().unwrap(); + let path = tree_model.value(&tree_iter, ColumnsResults::Path as i32).get::().unwrap(); + let current_name = tree_model.value(&tree_iter, ColumnsResults::CurrentName as i32).get::().unwrap(); + let future_name = tree_model.value(&tree_iter, ColumnsResults::CurrentName as i32).get::().unwrap(); + match wildcard_type { + WildcardType::Path => { + if regex_check(wildcard, path) { + selection.unselect_iter(&tree_iter); + } + } + WildcardType::CurrentName => { + if regex_check(wildcard, current_name) { + selection.unselect_iter(&tree_iter); + } + } + WildcardType::FutureName => { + if regex_check(wildcard, future_name) { + selection.unselect_iter(&tree_iter); + } + } + WildcardType::PathCurrentName => { + if regex_check(wildcard, format!("{}/{}", path, current_name)) { + selection.unselect_iter(&tree_iter); + } + } + WildcardType::PathFutureName => { + if regex_check(wildcard, format!("{}/{}", path, future_name)) { + selection.unselect_iter(&tree_iter); + } + } + WildcardType::IsDir => { + if wildcard == "Dir" { + if typ == "Dir" { + selection.unselect_iter(&tree_iter); + } + } else if wildcard == "File" { + if typ == "File" { + selection.unselect_iter(&tree_iter); + } + } else { + panic!(); + } + } } - } else if wildcard == "File" { - if typ == "File" { - selection.unselect_iter(&tree_iter); + + if !tree_model.iter_next(&tree_iter) { + break; } - } else { - panic!(); } } } - - if !tree_model.iter_next(&tree_iter) { - break; - } - } + }); } }); } diff --git a/src/connect_start_renaming.rs b/src/connect_start_renaming.rs index 4a430d9..4b1c221 100644 --- a/src/connect_start_renaming.rs +++ b/src/connect_start_renaming.rs @@ -1,7 +1,7 @@ use crate::gui_data::GuiData; use crate::help_function::{count_rows_in_tree_view, create_message_window, get_list_store_from_tree_view, ColumnsResults, CHARACTER}; use gtk::prelude::*; -use gtk::{DialogFlags, ResponseType, ScrolledWindow, TextView}; +use gtk::{DialogFlags, ScrolledWindow, TextView}; use std::collections::BTreeMap; use std::fs; use std::ops::DerefMut; @@ -19,9 +19,6 @@ pub fn connect_start_renaming(gui_data: &GuiData) { let list_store = get_list_store_from_tree_view(&tree_view_results); button_start_rename.connect_clicked(move |_e| { - let mut shared_result_entries = shared_result_entries.borrow_mut(); - let shared_result_entries = shared_result_entries.deref_mut(); - let number_of_renamed_files = count_rows_in_tree_view(&tree_view_results); if number_of_renamed_files == 0 { create_message_window(&window_main, "Missing Files", "You need to use at least 1 file"); @@ -44,14 +41,10 @@ pub fn connect_start_renaming(gui_data: &GuiData) { chooser_box.add(&question_label); chooser_box.show_all(); - let response_type = chooser_update.run(); - if response_type != ResponseType::Ok { - chooser_update.close(); - chooser_update.hide(); - return; - } - chooser_update.close(); - chooser_update.hide(); + chooser_update.connect_response(move |dialog, _| { + dialog.close(); + dialog.hide(); + }); } let chooser = gtk::Dialog::with_buttons(Some("Confirm renaming"), Some(&window_main), DialogFlags::DESTROY_WITH_PARENT, &[("Ok", gtk::ResponseType::Ok), ("Close", gtk::ResponseType::Cancel)]); @@ -62,57 +55,45 @@ pub fn connect_start_renaming(gui_data: &GuiData) { chooser_box.add(&question_label); chooser_box.show_all(); - // Before renaming, After possible renaming, Cause - let mut failed_renames: Vec<(String, String, String)> = Vec::new(); - let mut properly_renamed = 0; - let mut ignored = 0; - - let response_type = chooser.run(); - if response_type == gtk::ResponseType::Ok { - let tree_iter = list_store.iter_first().unwrap(); - let mut file_renames: Vec<(String, String)> = Vec::new(); - let mut folder_renames: BTreeMap> = Default::default(); - - loop { - let path = list_store.value(&tree_iter, ColumnsResults::Path as i32).get::().unwrap(); - let old_name = format!("{}{}{}", path, CHARACTER, list_store.value(&tree_iter, ColumnsResults::CurrentName as i32).get::().unwrap()); - let new_name = format!("{}{}{}", path, CHARACTER, list_store.value(&tree_iter, ColumnsResults::FutureName as i32).get::().unwrap()); - let typ = list_store.value(&tree_iter, ColumnsResults::Type as i32).get::().unwrap(); - - if typ == "Dir" { - let how_much = old_name.matches(CHARACTER).count(); - folder_renames.entry(how_much).or_insert_with(Vec::new); - folder_renames.get_mut(&how_much).unwrap().push((old_name, new_name)); - } else if typ == "File" { - file_renames.push((old_name, new_name)); - } else { - panic!(); - } - - if !list_store.iter_next(&tree_iter) { - break; - } - } - - for (old_name, new_name) in file_renames { - // TODO Find method to not overwrite new function - #[allow(clippy::collapsible_else_if)] - if new_name == old_name { - ignored += 1 - } else if Path::new(&new_name).exists() { - failed_renames.push((old_name, new_name, "Destination file already exists.".to_string())); - } else { - if let Err(e) = fs::rename(&old_name, &new_name) { - failed_renames.push((old_name, new_name, e.to_string())); + let shared_result_entries = shared_result_entries.clone(); + let list_store = list_store.clone(); + let window_main = window_main.clone(); + + chooser.connect_response(move |_chooser, response_type| { + let mut shared_result_entries = shared_result_entries.borrow_mut(); + let shared_result_entries = shared_result_entries.deref_mut(); + // Before renaming, After possible renaming, Cause + let mut failed_renames: Vec<(String, String, String)> = Vec::new(); + let mut properly_renamed = 0; + let mut ignored = 0; + + if response_type == gtk::ResponseType::Ok { + let tree_iter = list_store.iter_first().unwrap(); + let mut file_renames: Vec<(String, String)> = Vec::new(); + let mut folder_renames: BTreeMap> = Default::default(); + + loop { + let path = list_store.value(&tree_iter, ColumnsResults::Path as i32).get::().unwrap(); + let old_name = format!("{}{}{}", path, CHARACTER, list_store.value(&tree_iter, ColumnsResults::CurrentName as i32).get::().unwrap()); + let new_name = format!("{}{}{}", path, CHARACTER, list_store.value(&tree_iter, ColumnsResults::FutureName as i32).get::().unwrap()); + let typ = list_store.value(&tree_iter, ColumnsResults::Type as i32).get::().unwrap(); + + if typ == "Dir" { + let how_much = old_name.matches(CHARACTER).count(); + folder_renames.entry(how_much).or_insert_with(Vec::new); + folder_renames.get_mut(&how_much).unwrap().push((old_name, new_name)); + } else if typ == "File" { + file_renames.push((old_name, new_name)); } else { - properly_renamed += 1; + panic!(); + } + + if !list_store.iter_next(&tree_iter) { + break; } } - } - for (_size, vec) in folder_renames.iter().rev() { - for (old_name, new_name) in vec { - let old_name = old_name.clone(); - let new_name = new_name.clone(); + + for (old_name, new_name) in file_renames { // TODO Find method to not overwrite new function #[allow(clippy::collapsible_else_if)] if new_name == old_name { @@ -127,17 +108,32 @@ pub fn connect_start_renaming(gui_data: &GuiData) { } } } + for (_size, vec) in folder_renames.iter().rev() { + for (old_name, new_name) in vec { + let old_name = old_name.clone(); + let new_name = new_name.clone(); + // TODO Find method to not overwrite new function + #[allow(clippy::collapsible_else_if)] + if new_name == old_name { + ignored += 1 + } else if Path::new(&new_name).exists() { + failed_renames.push((old_name, new_name, "Destination file already exists.".to_string())); + } else { + if let Err(e) = fs::rename(&old_name, &new_name) { + failed_renames.push((old_name, new_name, e.to_string())); + } else { + properly_renamed += 1; + } + } + } + } } - } - - chooser.close(); - chooser.hide(); // Workaround, 2 dialogs cannot be run one after one - - // Print results - create_results_dialog(&window_main, properly_renamed, ignored, failed_renames); + // Print results + create_results_dialog(&window_main, properly_renamed, ignored, failed_renames); - list_store.clear(); - shared_result_entries.files.clear(); + list_store.clear(); + shared_result_entries.files.clear(); + }); }); } @@ -188,6 +184,5 @@ fn create_results_dialog(window_main: >k::Window, properly_renamed: u32, ignor chooser_box.show_all(); - chooser.run(); - chooser.close(); + chooser.connect_response(|_, _| {}); } diff --git a/src/help_function.rs b/src/help_function.rs index 699ea8c..92690c2 100644 --- a/src/help_function.rs +++ b/src/help_function.rs @@ -172,9 +172,6 @@ pub fn create_message_window(window_main: >k::Window, title: &str, message: &s let chooser_box = chooser.children()[0].clone().downcast::().unwrap(); chooser_box.add(&question_label); chooser_box.show_all(); - - chooser.run(); - chooser.close(); } pub fn regex_check(expression: &str, directory: impl AsRef) -> bool { let temp_splits: Vec<&str> = expression.split('*').collect(); From 34240ae608694d8eb1e05d5c1aae5c73472b9439 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mikrut?= Date: Tue, 24 May 2022 22:21:38 +0200 Subject: [PATCH 04/18] ABC GUI --- src/class_dialog_rule_add_number.rs | 8 +- src/class_dialog_rule_add_text.rs | 8 +- src/class_dialog_rule_normalize.rs | 8 +- src/class_dialog_rule_purge.rs | 12 +- src/class_dialog_rule_replace.rs | 20 +- src/class_dialog_rule_size_letters.rs | 20 +- src/class_dialog_rule_trim.rs | 24 +- src/connect_select_records.rs | 24 +- ui/Szyszka.cmb | 1173 +++++++++++++++++++++++++ ui/popover.ui | 45 +- ui/rule_chooser.ui | 553 +++++------- ui/settings.ui | 24 +- ui/window_main.ui | 153 ++-- 13 files changed, 1532 insertions(+), 540 deletions(-) create mode 100644 ui/Szyszka.cmb diff --git a/src/class_dialog_rule_add_number.rs b/src/class_dialog_rule_add_number.rs index 78c783b..43e2684 100644 --- a/src/class_dialog_rule_add_number.rs +++ b/src/class_dialog_rule_add_number.rs @@ -2,8 +2,8 @@ use gtk::prelude::*; #[derive(Clone)] pub struct GuiAddNumber { - pub radio_button_add_number_before_name: gtk::RadioButton, - pub radio_button_add_number_after_name: gtk::RadioButton, + pub radio_button_add_number_before_name: gtk::CheckButton, + pub radio_button_add_number_after_name: gtk::CheckButton, pub entry_add_number_start_number: gtk::Entry, pub entry_add_number_step: gtk::Entry, @@ -12,8 +12,8 @@ pub struct GuiAddNumber { impl GuiAddNumber { pub fn create_from_builder(builder: >k::Builder) -> Self { - let radio_button_add_number_before_name: gtk::RadioButton = builder.object("radio_button_add_number_before_name").unwrap(); - let radio_button_add_number_after_name: gtk::RadioButton = builder.object("radio_button_add_number_after_name").unwrap(); + let radio_button_add_number_before_name: gtk::CheckButton = builder.object("radio_button_add_number_before_name").unwrap(); + let radio_button_add_number_after_name: gtk::CheckButton = builder.object("radio_button_add_number_after_name").unwrap(); let entry_add_number_start_number: gtk::Entry = builder.object("entry_add_number_start_number").unwrap(); let entry_add_number_step: gtk::Entry = builder.object("entry_add_number_step").unwrap(); diff --git a/src/class_dialog_rule_add_text.rs b/src/class_dialog_rule_add_text.rs index 922806d..0cc3042 100644 --- a/src/class_dialog_rule_add_text.rs +++ b/src/class_dialog_rule_add_text.rs @@ -2,16 +2,16 @@ use gtk::prelude::*; #[derive(Clone)] pub struct GuiAddText { - pub radio_button_add_text_before_name: gtk::RadioButton, - pub radio_button_add_text_after_name: gtk::RadioButton, + pub radio_button_add_text_before_name: gtk::CheckButton, + pub radio_button_add_text_after_name: gtk::CheckButton, pub entry_add_text_text_to_add: gtk::Entry, } impl GuiAddText { pub fn create_from_builder(builder: >k::Builder) -> Self { - let radio_button_add_text_before_name: gtk::RadioButton = builder.object("radio_button_add_text_before_name").unwrap(); - let radio_button_add_text_after_name: gtk::RadioButton = builder.object("radio_button_add_text_after_name").unwrap(); + let radio_button_add_text_before_name: gtk::CheckButton = builder.object("radio_button_add_text_before_name").unwrap(); + let radio_button_add_text_after_name: gtk::CheckButton = builder.object("radio_button_add_text_after_name").unwrap(); let entry_add_text_text_to_add: gtk::Entry = builder.object("entry_add_text_text_to_add").unwrap(); diff --git a/src/class_dialog_rule_normalize.rs b/src/class_dialog_rule_normalize.rs index 6c2c04c..d0b3f21 100644 --- a/src/class_dialog_rule_normalize.rs +++ b/src/class_dialog_rule_normalize.rs @@ -2,14 +2,14 @@ use gtk::prelude::*; #[derive(Clone)] pub struct GuiNormalize { - pub radio_button_normalize_everything: gtk::RadioButton, - pub radio_button_normalize_partial: gtk::RadioButton, + pub radio_button_normalize_everything: gtk::CheckButton, + pub radio_button_normalize_partial: gtk::CheckButton, } impl GuiNormalize { pub fn create_from_builder(builder: >k::Builder) -> Self { - let radio_button_normalize_everything: gtk::RadioButton = builder.object("radio_button_normalize_everything").unwrap(); - let radio_button_normalize_partial: gtk::RadioButton = builder.object("radio_button_normalize_partial").unwrap(); + let radio_button_normalize_everything: gtk::CheckButton = builder.object("radio_button_normalize_everything").unwrap(); + let radio_button_normalize_partial: gtk::CheckButton = builder.object("radio_button_normalize_partial").unwrap(); Self { radio_button_normalize_everything, diff --git a/src/class_dialog_rule_purge.rs b/src/class_dialog_rule_purge.rs index ad07bf9..ce07a4a 100644 --- a/src/class_dialog_rule_purge.rs +++ b/src/class_dialog_rule_purge.rs @@ -2,16 +2,16 @@ use gtk::prelude::*; #[derive(Clone)] pub struct GuiPurge { - pub radio_button_purge_name: gtk::RadioButton, - pub radio_button_purge_extension: gtk::RadioButton, - pub radio_button_purge_both: gtk::RadioButton, + pub radio_button_purge_name: gtk::CheckButton, + pub radio_button_purge_extension: gtk::CheckButton, + pub radio_button_purge_both: gtk::CheckButton, } impl GuiPurge { pub fn create_from_builder(builder: >k::Builder) -> Self { - let radio_button_purge_name: gtk::RadioButton = builder.object("radio_button_purge_name").unwrap(); - let radio_button_purge_extension: gtk::RadioButton = builder.object("radio_button_purge_extension").unwrap(); - let radio_button_purge_both: gtk::RadioButton = builder.object("radio_button_purge_both").unwrap(); + let radio_button_purge_name: gtk::CheckButton = builder.object("radio_button_purge_name").unwrap(); + let radio_button_purge_extension: gtk::CheckButton = builder.object("radio_button_purge_extension").unwrap(); + let radio_button_purge_both: gtk::CheckButton = builder.object("radio_button_purge_both").unwrap(); Self { radio_button_purge_name, diff --git a/src/class_dialog_rule_replace.rs b/src/class_dialog_rule_replace.rs index 6e64f5c..b780a43 100644 --- a/src/class_dialog_rule_replace.rs +++ b/src/class_dialog_rule_replace.rs @@ -2,12 +2,12 @@ use gtk::prelude::*; #[derive(Clone)] pub struct GuiReplace { - pub radio_button_replace_name: gtk::RadioButton, - pub radio_button_replace_extension: gtk::RadioButton, - pub radio_button_replace_both: gtk::RadioButton, + pub radio_button_replace_name: gtk::CheckButton, + pub radio_button_replace_extension: gtk::CheckButton, + pub radio_button_replace_both: gtk::CheckButton, - pub radio_button_replace_case_insensitive: gtk::RadioButton, - pub radio_button_replace_case_sensitive: gtk::RadioButton, + pub radio_button_replace_case_insensitive: gtk::CheckButton, + pub radio_button_replace_case_sensitive: gtk::CheckButton, pub entry_replace_text_to_remove: gtk::Entry, pub entry_replace_text_to_change: gtk::Entry, @@ -15,15 +15,15 @@ pub struct GuiReplace { impl GuiReplace { pub fn create_from_builder(builder: >k::Builder) -> Self { - let radio_button_replace_name: gtk::RadioButton = builder.object("radio_button_replace_name").unwrap(); - let radio_button_replace_extension: gtk::RadioButton = builder.object("radio_button_replace_extension").unwrap(); - let radio_button_replace_both: gtk::RadioButton = builder.object("radio_button_replace_both").unwrap(); + let radio_button_replace_name: gtk::CheckButton = builder.object("radio_button_replace_name").unwrap(); + let radio_button_replace_extension: gtk::CheckButton = builder.object("radio_button_replace_extension").unwrap(); + let radio_button_replace_both: gtk::CheckButton = builder.object("radio_button_replace_both").unwrap(); let entry_replace_text_to_remove: gtk::Entry = builder.object("entry_replace_text_to_remove").unwrap(); let entry_replace_text_to_change: gtk::Entry = builder.object("entry_replace_text_to_change").unwrap(); - let radio_button_replace_case_sensitive: gtk::RadioButton = builder.object("radio_button_replace_case_sensitive").unwrap(); - let radio_button_replace_case_insensitive: gtk::RadioButton = builder.object("radio_button_replace_case_insensitive").unwrap(); + let radio_button_replace_case_sensitive: gtk::CheckButton = builder.object("radio_button_replace_case_sensitive").unwrap(); + let radio_button_replace_case_insensitive: gtk::CheckButton = builder.object("radio_button_replace_case_insensitive").unwrap(); Self { radio_button_replace_name, diff --git a/src/class_dialog_rule_size_letters.rs b/src/class_dialog_rule_size_letters.rs index 4781bb7..b0d0653 100644 --- a/src/class_dialog_rule_size_letters.rs +++ b/src/class_dialog_rule_size_letters.rs @@ -2,22 +2,22 @@ use gtk::prelude::*; #[derive(Clone)] pub struct GuiSizeLetters { - pub radio_button_letters_type_uppercase: gtk::RadioButton, - pub radio_button_letters_type_lowercase: gtk::RadioButton, + pub radio_button_letters_type_uppercase: gtk::CheckButton, + pub radio_button_letters_type_lowercase: gtk::CheckButton, - pub radio_button_letters_usage_name: gtk::RadioButton, - pub radio_button_letters_usage_extension: gtk::RadioButton, - pub radio_button_letters_usage_both: gtk::RadioButton, + pub radio_button_letters_usage_name: gtk::CheckButton, + pub radio_button_letters_usage_extension: gtk::CheckButton, + pub radio_button_letters_usage_both: gtk::CheckButton, } impl GuiSizeLetters { pub fn create_from_builder(builder: >k::Builder) -> Self { - let radio_button_letters_type_uppercase: gtk::RadioButton = builder.object("radio_button_letters_type_uppercase").unwrap(); - let radio_button_letters_type_lowercase: gtk::RadioButton = builder.object("radio_button_letters_type_lowercase").unwrap(); + let radio_button_letters_type_uppercase: gtk::CheckButton = builder.object("radio_button_letters_type_uppercase").unwrap(); + let radio_button_letters_type_lowercase: gtk::CheckButton = builder.object("radio_button_letters_type_lowercase").unwrap(); - let radio_button_letters_usage_name: gtk::RadioButton = builder.object("radio_button_letters_usage_name").unwrap(); - let radio_button_letters_usage_extension: gtk::RadioButton = builder.object("radio_button_letters_usage_extension").unwrap(); - let radio_button_letters_usage_both: gtk::RadioButton = builder.object("radio_button_letters_usage_both").unwrap(); + let radio_button_letters_usage_name: gtk::CheckButton = builder.object("radio_button_letters_usage_name").unwrap(); + let radio_button_letters_usage_extension: gtk::CheckButton = builder.object("radio_button_letters_usage_extension").unwrap(); + let radio_button_letters_usage_both: gtk::CheckButton = builder.object("radio_button_letters_usage_both").unwrap(); Self { radio_button_letters_type_uppercase, diff --git a/src/class_dialog_rule_trim.rs b/src/class_dialog_rule_trim.rs index f140b0c..2b410c3 100644 --- a/src/class_dialog_rule_trim.rs +++ b/src/class_dialog_rule_trim.rs @@ -2,26 +2,26 @@ use gtk::prelude::*; #[derive(Clone)] pub struct GuiTrim { - pub radio_button_trim_name_start: gtk::RadioButton, - pub radio_button_trim_name_end: gtk::RadioButton, - pub radio_button_trim_extension_start: gtk::RadioButton, - pub radio_button_trim_extension_end: gtk::RadioButton, + pub radio_button_trim_name_start: gtk::CheckButton, + pub radio_button_trim_name_end: gtk::CheckButton, + pub radio_button_trim_extension_start: gtk::CheckButton, + pub radio_button_trim_extension_end: gtk::CheckButton, - pub radio_button_trim_case_sensitive: gtk::RadioButton, - pub radio_button_trim_case_insensitive: gtk::RadioButton, + pub radio_button_trim_case_sensitive: gtk::CheckButton, + pub radio_button_trim_case_insensitive: gtk::CheckButton, pub entry_add_text_text_to_trim: gtk::Entry, } impl GuiTrim { pub fn create_from_builder(builder: >k::Builder) -> Self { - let radio_button_trim_name_start: gtk::RadioButton = builder.object("radio_button_trim_name_start").unwrap(); - let radio_button_trim_name_end: gtk::RadioButton = builder.object("radio_button_trim_name_end").unwrap(); - let radio_button_trim_extension_start: gtk::RadioButton = builder.object("radio_button_trim_extension_start").unwrap(); - let radio_button_trim_extension_end: gtk::RadioButton = builder.object("radio_button_trim_extension_end").unwrap(); + let radio_button_trim_name_start: gtk::CheckButton = builder.object("radio_button_trim_name_start").unwrap(); + let radio_button_trim_name_end: gtk::CheckButton = builder.object("radio_button_trim_name_end").unwrap(); + let radio_button_trim_extension_start: gtk::CheckButton = builder.object("radio_button_trim_extension_start").unwrap(); + let radio_button_trim_extension_end: gtk::CheckButton = builder.object("radio_button_trim_extension_end").unwrap(); - let radio_button_trim_case_sensitive: gtk::RadioButton = builder.object("radio_button_trim_case_sensitive").unwrap(); - let radio_button_trim_case_insensitive: gtk::RadioButton = builder.object("radio_button_trim_case_insensitive").unwrap(); + let radio_button_trim_case_sensitive: gtk::CheckButton = builder.object("radio_button_trim_case_sensitive").unwrap(); + let radio_button_trim_case_insensitive: gtk::CheckButton = builder.object("radio_button_trim_case_insensitive").unwrap(); let entry_add_text_text_to_trim: gtk::Entry = builder.object("entry_add_text_text_to_trim").unwrap(); diff --git a/src/connect_select_records.rs b/src/connect_select_records.rs index 18c17a5..cb59970 100644 --- a/src/connect_select_records.rs +++ b/src/connect_select_records.rs @@ -146,12 +146,12 @@ pub fn connect_select_custom(gui_data: &GuiData) { let confirmation_dialog_delete = gtk::Dialog::with_buttons(Some("Select custom"), Some(&window_main), gtk::DialogFlags::MODAL, &[("Ok", gtk::ResponseType::Ok), ("Close", gtk::ResponseType::Cancel)]); let label: gtk::Label = gtk::Label::new(Some("Usage: */folder-nr*/* or name-version-*.txt")); - let radio_path = gtk::RadioButton::with_label("Path"); - let radio_current_name = gtk::RadioButton::with_label_from_widget(&radio_path, "Current Name"); - let radio_future_name = gtk::RadioButton::with_label_from_widget(&radio_path, "Future Name"); - let radio_current_name_path = gtk::RadioButton::with_label_from_widget(&radio_path, "Path + Current Name"); - let radio_future_name_path = gtk::RadioButton::with_label_from_widget(&radio_path, "Path + Future Name"); - let radio_is_dir = gtk::RadioButton::with_label_from_widget(&radio_path, "Directory/File"); + let radio_path = gtk::CheckButton::with_label("Path"); + let radio_current_name = gtk::CheckButton::with_label_from_widget(&radio_path, "Current Name"); + let radio_future_name = gtk::CheckButton::with_label_from_widget(&radio_path, "Future Name"); + let radio_current_name_path = gtk::CheckButton::with_label_from_widget(&radio_path, "Path + Current Name"); + let radio_future_name_path = gtk::CheckButton::with_label_from_widget(&radio_path, "Path + Future Name"); + let radio_is_dir = gtk::CheckButton::with_label_from_widget(&radio_path, "Directory/File"); let entry_path = gtk::Entry::new(); let entry_current_name = gtk::Entry::new(); @@ -319,12 +319,12 @@ pub fn connect_unselect_custom(gui_data: &GuiData) { let confirmation_dialog_delete = gtk::Dialog::with_buttons(Some("Unselect custom"), Some(&window_main), gtk::DialogFlags::MODAL, &[("Ok", gtk::ResponseType::Ok), ("Close", gtk::ResponseType::Cancel)]); let label: gtk::Label = gtk::Label::new(Some("Usage: */folder-nr*/* or name-version-*.txt")); - let radio_path = gtk::RadioButton::with_label("Path"); - let radio_current_name = gtk::RadioButton::with_label_from_widget(&radio_path, "Current Name"); - let radio_future_name = gtk::RadioButton::with_label_from_widget(&radio_path, "Future Name"); - let radio_current_name_path = gtk::RadioButton::with_label_from_widget(&radio_path, "Path + Current Name"); - let radio_future_name_path = gtk::RadioButton::with_label_from_widget(&radio_path, "Path + Future Name"); - let radio_is_dir = gtk::RadioButton::with_label_from_widget(&radio_path, "Directory/File"); + let radio_path = gtk::CheckButton::with_label("Path"); + let radio_current_name = gtk::CheckButton::with_label_from_widget(&radio_path, "Current Name"); + let radio_future_name = gtk::CheckButton::with_label_from_widget(&radio_path, "Future Name"); + let radio_current_name_path = gtk::CheckButton::with_label_from_widget(&radio_path, "Path + Current Name"); + let radio_future_name_path = gtk::CheckButton::with_label_from_widget(&radio_path, "Path + Future Name"); + let radio_is_dir = gtk::CheckButton::with_label_from_widget(&radio_path, "Directory/File"); let entry_path = gtk::Entry::new(); let entry_current_name = gtk::Entry::new(); diff --git a/ui/Szyszka.cmb b/ui/Szyszka.cmb new file mode 100644 index 0000000..07418ba --- /dev/null +++ b/ui/Szyszka.cmb @@ -0,0 +1,1173 @@ + + + + + (2,None,"popover.ui","popover.ui",None,None,None,None,None," Generated with glade 3.39.0 "), + (3,None,"rule_chooser.ui","rule_chooser.ui",None,None,None,None,None," Generated with glade 3.39.0 "), + (4,None,"settings.ui","settings.ui",None,None,None,None,None," Generated with glade 3.39.0 "), + (5,None,"window_main.ui","window_main.ui",None,None,None,None,None," Generated with glade 3.39.0 ") + + + (2,"gtk+","3.24",None), + (3,"gtk+","3.24",None), + (4,"gtk+","3.24",None), + (5,"gtk+","3.24",None) + + + (2,1,"GtkPopover","popover_select",None,None,None,None,None), + (2,2,"GtkBox",None,1,None,None,None,None), + (2,3,"GtkButton","button_select_all",2,None,None,None,None), + (2,4,"GtkSeparator",None,2,None,None,None,1), + (2,5,"GtkButton","button_select_reverse",2,None,None,None,2), + (2,6,"GtkSeparator",None,2,None,None,None,3), + (2,7,"GtkButton","button_select_custom",2,None,None,None,4), + (2,8,"GtkButton","button_unselect_custom",2,None,None,None,5), + (2,9,"GtkSeparator",None,2,None,None,None,6), + (2,10,"GtkButton","button_select_changed",2,None,None,None,7), + (2,11,"GtkButton","button_unselect_changed",2,None,None,None,8), + (3,1,"GtkTextBuffer","textbuffer1",None,None,None,None,None), + (3,2,"GtkWindow","window_with_rules",None,None,None,None,None), + (3,3,"GtkBox",None,2,None,None,None,None), + (3,4,"GtkBox",None,3,None,None,None,None), + (3,5,"GtkNotebook","notebook_choose_rule",4,None,None,None,None), + (3,6,"GtkBox",None,5,None,None,None,None), + (3,7,"GtkTextView",None,6,None,None,None,None), + (3,8,"GtkEntry","entry_custom_text_to_change",6,None,None,None,1), + (3,9,"GtkLabel",None,5,None,"tab",None,1), + (3,10,"GtkBox",None,5,None,None,None,1), + (3,11,"GtkBox",None,10,None,None,None,None), + (3,12,"GtkLabel",None,11,None,None,None,None), + (3,13,"GtkBox",None,11,None,None,None,1), + (3,14,"GtkRadioButton","radio_button_letters_type_uppercase",13,None,None,None,None), + (3,15,"GtkRadioButton","radio_button_letters_type_lowercase",13,None,None,None,1), + (3,16,"GtkBox",None,10,None,None,None,1), + (3,17,"GtkLabel",None,16,None,None,None,None), + (3,18,"GtkBox",None,16,None,None,None,1), + (3,19,"GtkRadioButton","radio_button_letters_usage_name",18,None,None,None,None), + (3,20,"GtkRadioButton","radio_button_letters_usage_extension",18,None,None,None,1), + (3,21,"GtkRadioButton","radio_button_letters_usage_both",18,None,None,None,2), + (3,22,"GtkLabel",None,5,None,"tab",None,1), + (3,23,"GtkBox",None,5,None,None,None,2), + (3,24,"GtkBox",None,23,None,None,None,1), + (3,25,"GtkLabel",None,24,None,None,None,None), + (3,26,"GtkBox",None,24,None,None,None,1), + (3,27,"GtkRadioButton","radio_button_purge_name",26,None,None,None,None), + (3,28,"GtkRadioButton","radio_button_purge_extension",26,None,None,None,1), + (3,29,"GtkRadioButton","radio_button_purge_both",26,None,None,None,2), + (3,30,"GtkLabel",None,5,None,"tab",None,2), + (3,31,"GtkBox",None,5,None,None,None,3), + (3,32,"GtkBox",None,31,None,None,None,None), + (3,33,"GtkLabel",None,32,None,None,None,None), + (3,34,"GtkBox",None,32,None,None,None,1), + (3,35,"GtkRadioButton","radio_button_add_number_before_name",34,None,None,None,None), + (3,36,"GtkRadioButton","radio_button_add_number_after_name",34,None,None,None,1), + (3,37,"GtkBox",None,31,None,None,None,1), + (3,38,"GtkLabel",None,37,None,None,None,None), + (3,39,"GtkGrid",None,37,None,None," n-columns=3 n-rows=3 ",1), + (3,40,"GtkLabel",None,39,None,None,None,None), + (3,41,"GtkLabel",None,39,None,None,None,1), + (3,42,"GtkEntry","entry_add_number_start_number",39,None,None,None,2), + (3,43,"GtkEntry","entry_add_number_step",39,None,None,None,3), + (3,44,"GtkLabel",None,39,None,None,None,4), + (3,45,"GtkEntry","entry_add_number_zeros",39,None,None,None,5), + (3,46,"GtkLabel",None,5,None,"tab",None,3), + (3,47,"GtkBox",None,5,None,None,None,4), + (3,48,"GtkBox",None,47,None,None,None,None), + (3,49,"GtkLabel",None,48,None,None,None,None), + (3,50,"GtkBox",None,48,None,None,None,1), + (3,51,"GtkRadioButton","radio_button_add_text_before_name",50,None,None,None,None), + (3,52,"GtkRadioButton","radio_button_add_text_after_name",50,None,None,None,1), + (3,53,"GtkBox",None,47,None,None,None,1), + (3,54,"GtkLabel",None,53,None,None,None,None), + (3,55,"GtkEntry","entry_add_text_text_to_add",53,None,None,None,1), + (3,56,"GtkLabel",None,5,None,"tab",None,4), + (3,57,"GtkBox",None,5,None,None,None,5), + (3,58,"GtkBox",None,57,None,None,None,1), + (3,59,"GtkLabel",None,58,None,None,None,None), + (3,60,"GtkBox",None,58,None,None,None,1), + (3,61,"GtkRadioButton","radio_button_replace_name",60,None,None,None,None), + (3,62,"GtkRadioButton","radio_button_replace_extension",60,None,None,None,1), + (3,63,"GtkRadioButton","radio_button_replace_both",60,None,None,None,2), + (3,64,"GtkBox",None,58,None,None,None,2), + (3,65,"GtkLabel",None,64,None,None,None,None), + (3,66,"GtkBox",None,64,None,None,None,1), + (3,67,"GtkRadioButton","radio_button_replace_case_sensitive",66,None,None,None,None), + (3,68,"GtkRadioButton","radio_button_replace_case_insensitive",66,None,None,None,1), + (3,69,"GtkGrid",None,58,None,None," n-columns=3 n-rows=3 ",3), + (3,70,"GtkLabel",None,69,None,None,None,None), + (3,71,"GtkEntry","entry_replace_text_to_change",69,None,None,None,1), + (3,72,"GtkEntry","entry_replace_text_to_remove",69,None,None,None,2), + (3,73,"GtkLabel",None,69,None,None,None,3), + (3,74,"GtkLabel",None,69,None,None,None,4), + (3,75,"GtkLabel",None,5,None,"tab",None,5), + (3,76,"GtkBox",None,5,None,None,None,6), + (3,77,"GtkBox",None,76,None,None,None,None), + (3,78,"GtkLabel",None,77,None,None,None,None), + (3,79,"GtkBox",None,77,None,None,None,1), + (3,80,"GtkRadioButton","radio_button_trim_name_start",79,None,None,None,None), + (3,81,"GtkRadioButton","radio_button_trim_name_end",79,None,None,None,1), + (3,82,"GtkRadioButton","radio_button_trim_extension_start",79,None,None,None,2), + (3,83,"GtkRadioButton","radio_button_trim_extension_end",79,None,None,None,3), + (3,84,"GtkBox",None,76,None,None,None,1), + (3,85,"GtkLabel",None,84,None,None,None,None), + (3,86,"GtkBox",None,84,None,None,None,1), + (3,87,"GtkRadioButton","radio_button_trim_case_sensitive",86,None,None,None,None), + (3,88,"GtkRadioButton","radio_button_trim_case_insensitive",86,None,None,None,1), + (3,89,"GtkBox",None,76,None,None,None,2), + (3,90,"GtkLabel",None,89,None,None,None,None), + (3,91,"GtkEntry","entry_add_text_text_to_trim",89,None,None,None,1), + (3,92,"GtkLabel",None,5,None,"tab",None,6), + (3,93,"GtkBox",None,5,None,None,None,7), + (3,94,"GtkLabel",None,93,None,None,None,None), + (3,95,"GtkLabel",None,93,None,None,None,1), + (3,96,"GtkBox",None,93,None,None,None,2), + (3,97,"GtkRadioButton","radio_button_normalize_everything",96,None,None,None,None), + (3,98,"GtkRadioButton","radio_button_normalize_partial",96,None,None,None,1), + (3,99,"GtkLabel",None,5,None,"tab",None,7), + (3,100,"GtkBox",None,4,None,None,None,1), + (3,101,"GtkLabel",None,100,None,None,None,None), + (3,102,"GtkBox",None,100,None,None,None,1), + (3,103,"GtkBox",None,102,None,None,None,None), + (3,104,"GtkBox",None,103,None,None,None,1), + (3,105,"GtkLabel",None,104,None,None,None,None), + (3,106,"GtkLabel",None,104,None,None,None,1), + (3,107,"GtkBox",None,103,None,None,None,2), + (3,108,"GtkEntry","entry_example_before",107,None,None,None,None), + (3,109,"GtkLabel","label_example_after",107,None,None,None,1), + (3,110,"GtkButton","button_example_reset",102,None,None,None,1), + (3,111,"GtkImage",None,110,None,None,None,None), + (3,112,"GtkButtonBox",None,3,None,None,None,1), + (3,113,"GtkButton","button_rule_window_add",112,None,None,None,None), + (4,1,"GtkDialog","window_settings",None,None,None,None,None), + (4,2,"GtkBox",None,1,"vbox",None,None,None), + (4,3,"GtkButtonBox",None,2,"action_area",None,None,None), + (4,4,"GtkBox",None,2,None,None,None,1), + (4,5,"GtkLabel","label_settings_general_language",4,None,None,None,None), + (4,6,"GtkComboBoxText","combo_box_settings_language",4,None,None,None,1), + (5,1,"GtkWindow","window_main",None,None,None,None,None), + (5,2,"GtkPaned",None,1,None,None,None,None), + (5,3,"GtkBox",None,2,None,None,None,None), + (5,4,"GtkLabel","label_files_folders",3,None,None,None,None), + (5,5,"GtkBox",None,3,None,None,None,3), + (5,6,"GtkScrolledWindow","scrolled_window_results",5,None,None,None,None), + (5,7,"GtkBox",None,5,None,None,None,1), + (5,8,"GtkButton","button_add_files",7,None,None,None,None), + (5,9,"GtkButton","button_add_folders",7,None,None,None,1), + (5,10,"GtkButton","button_remove_selection",7,None,None,None,2), + (5,11,"GtkButton","button_select_popup",7,None,None,None,3), + (5,12,"GtkButton","button_update_names",7,None,None,None,4), + (5,13,"GtkButton","button_results_one_up",7,None,None,None,5), + (5,14,"GtkBox",None,13,None,None,None,None), + (5,15,"GtkImage",None,14,None,None,None,None), + (5,16,"GtkLabel",None,14,None,None,None,1), + (5,17,"GtkButton","button_results_one_down",7,None,None,None,6), + (5,18,"GtkBox",None,17,None,None,None,None), + (5,19,"GtkImage",None,18,None,None,None,None), + (5,20,"GtkLabel",None,18,None,None,None,1), + (5,21,"GtkBox",None,2,None,None,None,1), + (5,22,"GtkLabel",None,21,None,None,None,None), + (5,23,"GtkBox",None,21,None,None,None,1), + (5,24,"GtkBox",None,23,None,None,None,None), + (5,25,"GtkButton","button_add_rule",24,None,None,None,None), + (5,26,"GtkBox",None,25,None,None,None,None), + (5,27,"GtkImage",None,26,None,None,None,None), + (5,28,"GtkLabel",None,26,None,None,None,1), + (5,29,"GtkButton","button_edit_rule",24,None,None,None,1), + (5,30,"GtkBox",None,29,None,None,None,None), + (5,31,"GtkImage",None,30,None,None,None,None), + (5,32,"GtkLabel",None,30,None,None,None,1), + (5,33,"GtkButton","button_remove_rule",24,None,None,None,2), + (5,34,"GtkBox",None,33,None,None,None,None), + (5,35,"GtkImage",None,34,None,None,None,None), + (5,36,"GtkLabel",None,34,None,None,None,1), + (5,37,"GtkButton","button_rule_one_up",24,None,None,None,3), + (5,38,"GtkBox",None,37,None,None,None,None), + (5,39,"GtkImage",None,38,None,None,None,None), + (5,40,"GtkLabel",None,38,None,None,None,1), + (5,41,"GtkButton","button_rule_one_down",24,None,None,None,4), + (5,42,"GtkBox",None,41,None,None,None,None), + (5,43,"GtkImage",None,42,None,None,None,None), + (5,44,"GtkLabel",None,42,None,None,None,1), + (5,45,"GtkScrolledWindow","scrolled_window_rules",23,None,None,None,1), + (5,46,"GtkHeaderBar",None,1,None,"titlebar",None,1), + (5,47,"GtkBox",None,46,None,None,None,None), + (5,48,"GtkButton","button_start_rename",47,None,None,None,None), + (5,49,"GtkButton","button_setting",47,None,None,None,1), + (5,50,"GtkImage",None,49,None,None,None,None) + + + (2,1,"GtkWidget","can-focus","False",None,None,None,None,None), + (2,2,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (2,2,"GtkWidget","can-focus","False",None,None,None,None,None), + (2,2,"GtkWidget","visible","True",None,None,None,None,None), + (2,3,"GtkButton","label","Select All","yes",None,None,None,None), + (2,3,"GtkWidget","can-focus","True",None,None,None,None,None), + (2,3,"GtkWidget","receives-default","True",None,None,None,None,None), + (2,3,"GtkWidget","visible","True",None,None,None,None,None), + (2,4,"GtkWidget","can-focus","False",None,None,None,None,None), + (2,4,"GtkWidget","visible","True",None,None,None,None,None), + (2,5,"GtkButton","label","Reverse Selection","yes",None,None,None,None), + (2,5,"GtkWidget","can-focus","True",None,None,None,None,None), + (2,5,"GtkWidget","receives-default","True",None,None,None,None,None), + (2,5,"GtkWidget","visible","True",None,None,None,None,None), + (2,6,"GtkWidget","can-focus","False",None,None,None,None,None), + (2,6,"GtkWidget","visible","True",None,None,None,None,None), + (2,7,"GtkButton","label","Select Custom","yes",None,None,None,None), + (2,7,"GtkWidget","can-focus","True",None,None,None,None,None), + (2,7,"GtkWidget","receives-default","True",None,None,None,None,None), + (2,7,"GtkWidget","visible","True",None,None,None,None,None), + (2,8,"GtkButton","label","Unselect Custom","yes",None,None,None,None), + (2,8,"GtkWidget","can-focus","True",None,None,None,None,None), + (2,8,"GtkWidget","receives-default","True",None,None,None,None,None), + (2,8,"GtkWidget","visible","True",None,None,None,None,None), + (2,9,"GtkWidget","can-focus","False",None,None,None,None,None), + (2,9,"GtkWidget","visible","True",None,None,None,None,None), + (2,10,"GtkButton","label","Select Changed","yes",None,None,None,None), + (2,10,"GtkWidget","can-focus","True",None,None,None,None,None), + (2,10,"GtkWidget","receives-default","True",None,None,None,None,None), + (2,10,"GtkWidget","visible","True",None,None,None,None,None), + (2,11,"GtkButton","label","Unselect Changed","yes",None,None,None,None), + (2,11,"GtkWidget","can-focus","True",None,None,None,None,None), + (2,11,"GtkWidget","receives-default","True",None,None,None,None,None), + (2,11,"GtkWidget","visible","True",None,None,None,None,None), + (3,1,"GtkTextBuffer","text","$(NAME) - prints file name\n$(EXT) - prints extension\n$(MODIF) - prints file modification date\n$(CREAT) - prints file creation\n$(CURR) - prints current file name with extension\n$(N:6:3:2) - prints numbers with step 3, \nstarts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. ","yes",None,None,None,None), + (3,2,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,2,"GtkWindow","default-height","400",None,None,None,None,None), + (3,2,"GtkWindow","default-width","600",None,None,None,None,None), + (3,3,"GtkBox","spacing","2",None,None,None,None,None), + (3,3,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,3,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,3,"GtkWidget","visible","True",None,None,None,None,None), + (3,4,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,4,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,4,"GtkWidget","margin-bottom","5",None,None,None,None,None), + (3,4,"GtkWidget","margin-end","5",None,None,None,None,None), + (3,4,"GtkWidget","margin-start","5",None,None,None,None,None), + (3,4,"GtkWidget","margin-top","5",None,None,None,None,None), + (3,4,"GtkWidget","visible","True",None,None,None,None,None), + (3,5,"GtkNotebook","tab-pos","left",None,None,None,None,None), + (3,5,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,5,"GtkWidget","visible","True",None,None,None,None,None), + (3,6,"GtkBox","spacing","2",None,None,None,None,None), + (3,6,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,6,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,6,"GtkWidget","margin-bottom","5",None,None,None,None,None), + (3,6,"GtkWidget","margin-end","5",None,None,None,None,None), + (3,6,"GtkWidget","margin-start","5",None,None,None,None,None), + (3,6,"GtkWidget","visible","True",None,None,None,None,None), + (3,7,"GtkTextView","buffer","1",None,None,None,None,None), + (3,7,"GtkTextView","justification","center",None,None,None,None,None), + (3,7,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,7,"GtkWidget","visible","True",None,None,None,None,None), + (3,8,"GtkEntry","max-length","150",None,None,None,None,None), + (3,8,"GtkEntry","text","$(CURR)","yes",None,None,None,None), + (3,8,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,8,"GtkWidget","visible","True",None,None,None,None,None), + (3,9,"GtkLabel","label","Custom","yes",None,None,None,None), + (3,9,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,9,"GtkWidget","visible","True",None,None,None,None,None), + (3,10,"GtkBox","spacing","2",None,None,None,None,None), + (3,10,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,10,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,10,"GtkWidget","margin-bottom","5",None,None,None,None,None), + (3,10,"GtkWidget","margin-end","5",None,None,None,None,None), + (3,10,"GtkWidget","margin-start","5",None,None,None,None,None), + (3,10,"GtkWidget","visible","True",None,None,None,None,None), + (3,11,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,11,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,11,"GtkWidget","visible","True",None,None,None,None,None), + (3,12,"GtkLabel","label","Tool Type:","yes",None,None,None,None), + (3,12,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,12,"GtkWidget","visible","True",None,None,None,None,None), + (3,13,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,13,"GtkWidget","visible","True",None,None,None,None,None), + (3,14,"GtkButton","label","Uppercase","yes",None,None,None,None), + (3,14,"GtkToggleButton","active","True",None,None,None,None,None), + (3,14,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), + (3,14,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,14,"GtkWidget","receives-default","False",None,None,None,None,None), + (3,14,"GtkWidget","visible","True",None,None,None,None,None), + (3,15,"GtkButton","label","Lowercase","yes",None,None,None,None), + (3,15,"GtkRadioButton","group","14",None,None,None,None,None), + (3,15,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), + (3,15,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,15,"GtkWidget","receives-default","False",None,None,None,None,None), + (3,15,"GtkWidget","visible","True",None,None,None,None,None), + (3,16,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,16,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,16,"GtkWidget","visible","True",None,None,None,None,None), + (3,17,"GtkLabel","label","Usage Type:","yes",None,None,None,None), + (3,17,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,17,"GtkWidget","visible","True",None,None,None,None,None), + (3,18,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,18,"GtkWidget","visible","True",None,None,None,None,None), + (3,19,"GtkButton","label","Only Name","yes",None,None,None,None), + (3,19,"GtkToggleButton","active","True",None,None,None,None,None), + (3,19,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), + (3,19,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,19,"GtkWidget","receives-default","False",None,None,None,None,None), + (3,19,"GtkWidget","visible","True",None,None,None,None,None), + (3,20,"GtkButton","label","Only Extension","yes",None,None,None,None), + (3,20,"GtkRadioButton","group","19",None,None,None,None,None), + (3,20,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), + (3,20,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,20,"GtkWidget","receives-default","False",None,None,None,None,None), + (3,20,"GtkWidget","visible","True",None,None,None,None,None), + (3,21,"GtkButton","label","Both","yes",None,None,None,None), + (3,21,"GtkRadioButton","group","19",None,None,None,None,None), + (3,21,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), + (3,21,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,21,"GtkWidget","receives-default","False",None,None,None,None,None), + (3,21,"GtkWidget","visible","True",None,None,None,None,None), + (3,22,"GtkLabel","label","Upper/Lower cases","yes",None,None,None,None), + (3,22,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,22,"GtkWidget","visible","True",None,None,None,None,None), + (3,23,"GtkBox","spacing","2",None,None,None,None,None), + (3,23,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,23,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,23,"GtkWidget","margin-bottom","5",None,None,None,None,None), + (3,23,"GtkWidget","margin-end","5",None,None,None,None,None), + (3,23,"GtkWidget","margin-start","5",None,None,None,None,None), + (3,23,"GtkWidget","visible","True",None,None,None,None,None), + (3,24,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,24,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,24,"GtkWidget","visible","True",None,None,None,None,None), + (3,25,"GtkLabel","label","Usage Type:","yes",None,None,None,None), + (3,25,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,25,"GtkWidget","visible","True",None,None,None,None,None), + (3,26,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,26,"GtkWidget","visible","True",None,None,None,None,None), + (3,27,"GtkButton","label","Only Name","yes",None,None,None,None), + (3,27,"GtkToggleButton","active","True",None,None,None,None,None), + (3,27,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), + (3,27,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,27,"GtkWidget","receives-default","False",None,None,None,None,None), + (3,27,"GtkWidget","visible","True",None,None,None,None,None), + (3,28,"GtkButton","label","Only Extension","yes",None,None,None,None), + (3,28,"GtkRadioButton","group","27",None,None,None,None,None), + (3,28,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), + (3,28,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,28,"GtkWidget","receives-default","False",None,None,None,None,None), + (3,28,"GtkWidget","visible","True",None,None,None,None,None), + (3,29,"GtkButton","label","Both","yes",None,None,None,None), + (3,29,"GtkRadioButton","group","27",None,None,None,None,None), + (3,29,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), + (3,29,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,29,"GtkWidget","receives-default","False",None,None,None,None,None), + (3,29,"GtkWidget","visible","True",None,None,None,None,None), + (3,30,"GtkLabel","label","Purge","yes",None,None,None,None), + (3,30,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,30,"GtkWidget","visible","True",None,None,None,None,None), + (3,31,"GtkBox","spacing","2",None,None,None,None,None), + (3,31,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,31,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,31,"GtkWidget","margin-bottom","5",None,None,None,None,None), + (3,31,"GtkWidget","margin-end","5",None,None,None,None,None), + (3,31,"GtkWidget","margin-start","5",None,None,None,None,None), + (3,31,"GtkWidget","visible","True",None,None,None,None,None), + (3,32,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,32,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,32,"GtkWidget","visible","True",None,None,None,None,None), + (3,33,"GtkLabel","label","Place to put number:","yes",None,None,None,None), + (3,33,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,33,"GtkWidget","visible","True",None,None,None,None,None), + (3,34,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,34,"GtkWidget","visible","True",None,None,None,None,None), + (3,35,"GtkButton","label","Before Name","yes",None,None,None,None), + (3,35,"GtkToggleButton","active","True",None,None,None,None,None), + (3,35,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), + (3,35,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,35,"GtkWidget","receives-default","False",None,None,None,None,None), + (3,35,"GtkWidget","visible","True",None,None,None,None,None), + (3,36,"GtkButton","label","After Name","yes",None,None,None,None), + (3,36,"GtkRadioButton","group","35",None,None,None,None,None), + (3,36,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), + (3,36,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,36,"GtkWidget","receives-default","False",None,None,None,None,None), + (3,36,"GtkWidget","visible","True",None,None,None,None,None), + (3,37,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,37,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,37,"GtkWidget","visible","True",None,None,None,None,None), + (3,38,"GtkLabel","label","Number Settings:","yes",None,None,None,None), + (3,38,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,38,"GtkWidget","visible","True",None,None,None,None,None), + (3,39,"GtkGrid","column-homogeneous","True",None,None,None,None,None), + (3,39,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,39,"GtkWidget","visible","True",None,None,None,None,None), + (3,40,"GtkLabel","label","Start Number","yes",None,None,None,None), + (3,40,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,40,"GtkWidget","visible","True",None,None,None,None,None), + (3,41,"GtkLabel","label","Step","yes",None,None,None,None), + (3,41,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,41,"GtkWidget","visible","True",None,None,None,None,None), + (3,42,"GtkEntry","input-purpose","digits",None,None,None,None,None), + (3,42,"GtkEntry","max-length","30",None,None,None,None,None), + (3,42,"GtkEntry","text","1","yes",None,None,None,None), + (3,42,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,42,"GtkWidget","visible","True",None,None,None,None,None), + (3,43,"GtkEntry","input-purpose","digits",None,None,None,None,None), + (3,43,"GtkEntry","max-length","30",None,None,None,None,None), + (3,43,"GtkEntry","text","1","yes",None,None,None,None), + (3,43,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,43,"GtkWidget","visible","True",None,None,None,None,None), + (3,44,"GtkLabel","label","Fill with zeros","yes",None,None,None,None), + (3,44,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,44,"GtkWidget","visible","True",None,None,None,None,None), + (3,45,"GtkEntry","input-purpose","digits",None,None,None,None,None), + (3,45,"GtkEntry","max-length","4",None,None,None,None,None), + (3,45,"GtkEntry","text","0","yes",None,None,None,None), + (3,45,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,45,"GtkWidget","visible","True",None,None,None,None,None), + (3,46,"GtkLabel","label","Add Number","yes",None,None,None,None), + (3,46,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,46,"GtkWidget","visible","True",None,None,None,None,None), + (3,47,"GtkBox","spacing","2",None,None,None,None,None), + (3,47,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,47,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,47,"GtkWidget","margin-bottom","5",None,None,None,None,None), + (3,47,"GtkWidget","margin-end","5",None,None,None,None,None), + (3,47,"GtkWidget","margin-start","5",None,None,None,None,None), + (3,47,"GtkWidget","visible","True",None,None,None,None,None), + (3,48,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,48,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,48,"GtkWidget","visible","True",None,None,None,None,None), + (3,49,"GtkLabel","label","Usage Type:","yes",None,None,None,None), + (3,49,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,49,"GtkWidget","visible","True",None,None,None,None,None), + (3,50,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,50,"GtkWidget","visible","True",None,None,None,None,None), + (3,51,"GtkButton","label","Before Name","yes",None,None,None,None), + (3,51,"GtkToggleButton","active","True",None,None,None,None,None), + (3,51,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), + (3,51,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,51,"GtkWidget","receives-default","False",None,None,None,None,None), + (3,51,"GtkWidget","visible","True",None,None,None,None,None), + (3,52,"GtkButton","label","After Name","yes",None,None,None,None), + (3,52,"GtkRadioButton","group","51",None,None,None,None,None), + (3,52,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), + (3,52,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,52,"GtkWidget","receives-default","False",None,None,None,None,None), + (3,52,"GtkWidget","visible","True",None,None,None,None,None), + (3,53,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,53,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,53,"GtkWidget","visible","True",None,None,None,None,None), + (3,54,"GtkLabel","label","Text to add:","yes",None,None,None,None), + (3,54,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,54,"GtkWidget","visible","True",None,None,None,None,None), + (3,55,"GtkEntry","text","Źdźbło","yes",None,None,None,None), + (3,55,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,55,"GtkWidget","visible","True",None,None,None,None,None), + (3,56,"GtkLabel","label","Add Text","yes",None,None,None,None), + (3,56,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,56,"GtkWidget","visible","True",None,None,None,None,None), + (3,57,"GtkBox","spacing","2",None,None,None,None,None), + (3,57,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,57,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,57,"GtkWidget","margin-bottom","5",None,None,None,None,None), + (3,57,"GtkWidget","margin-end","5",None,None,None,None,None), + (3,57,"GtkWidget","margin-start","5",None,None,None,None,None), + (3,57,"GtkWidget","visible","True",None,None,None,None,None), + (3,58,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,58,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,58,"GtkWidget","visible","True",None,None,None,None,None), + (3,59,"GtkLabel","label","Usage Type:","yes",None,None,None,None), + (3,59,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,59,"GtkWidget","visible","True",None,None,None,None,None), + (3,60,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,60,"GtkWidget","visible","True",None,None,None,None,None), + (3,61,"GtkButton","label","Only Name","yes",None,None,None,None), + (3,61,"GtkToggleButton","active","True",None,None,None,None,None), + (3,61,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), + (3,61,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,61,"GtkWidget","receives-default","False",None,None,None,None,None), + (3,61,"GtkWidget","visible","True",None,None,None,None,None), + (3,62,"GtkButton","label","Only Extension","yes",None,None,None,None), + (3,62,"GtkRadioButton","group","61",None,None,None,None,None), + (3,62,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), + (3,62,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,62,"GtkWidget","receives-default","False",None,None,None,None,None), + (3,62,"GtkWidget","visible","True",None,None,None,None,None), + (3,63,"GtkButton","label","Both","yes",None,None,None,None), + (3,63,"GtkRadioButton","group","61",None,None,None,None,None), + (3,63,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), + (3,63,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,63,"GtkWidget","receives-default","False",None,None,None,None,None), + (3,63,"GtkWidget","visible","True",None,None,None,None,None), + (3,64,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,64,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,64,"GtkWidget","visible","True",None,None,None,None,None), + (3,65,"GtkLabel","label","Case Sensitivity","yes",None,None,None,None), + (3,65,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,65,"GtkWidget","visible","True",None,None,None,None,None), + (3,66,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,66,"GtkWidget","visible","True",None,None,None,None,None), + (3,67,"GtkButton","label","Case Sensitive","yes",None,None,None,None), + (3,67,"GtkToggleButton","active","True",None,None,None,None,None), + (3,67,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), + (3,67,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,67,"GtkWidget","receives-default","False",None,None,None,None,None), + (3,67,"GtkWidget","visible","True",None,None,None,None,None), + (3,68,"GtkButton","label","Case Insensitive","yes",None,None,None,None), + (3,68,"GtkRadioButton","group","67",None,None,None,None,None), + (3,68,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), + (3,68,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,68,"GtkWidget","receives-default","False",None,None,None,None,None), + (3,68,"GtkWidget","visible","True",None,None,None,None,None), + (3,69,"GtkGrid","column-homogeneous","True",None,None,None,None,None), + (3,69,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,69,"GtkWidget","visible","True",None,None,None,None,None), + (3,70,"GtkLabel","label","Replaced Text","yes",None,None,None,None), + (3,70,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,70,"GtkWidget","visible","True",None,None,None,None,None), + (3,71,"GtkEntry","max-length","100",None,None,None,None,None), + (3,71,"GtkEntry","text","k","yes",None,None,None,None), + (3,71,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,71,"GtkWidget","visible","True",None,None,None,None,None), + (3,72,"GtkEntry","max-length","100",None,None,None,None,None), + (3,72,"GtkEntry","text","a","yes",None,None,None,None), + (3,72,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,72,"GtkWidget","visible","True",None,None,None,None,None), + (3,73,"GtkLabel","label","Text to replace","yes",None,None,None,None), + (3,73,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,73,"GtkWidget","visible","True",None,None,None,None,None), + (3,74,"GtkLabel","label","Replacing Strings:","yes",None,None,None,None), + (3,74,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,74,"GtkWidget","visible","True",None,None,None,None,None), + (3,75,"GtkLabel","label","Replace","yes",None,None,None,None), + (3,75,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,75,"GtkWidget","visible","True",None,None,None,None,None), + (3,76,"GtkBox","spacing","2",None,None,None,None,None), + (3,76,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,76,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,76,"GtkWidget","margin-bottom","5",None,None,None,None,None), + (3,76,"GtkWidget","margin-end","5",None,None,None,None,None), + (3,76,"GtkWidget","margin-start","5",None,None,None,None,None), + (3,76,"GtkWidget","visible","True",None,None,None,None,None), + (3,77,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,77,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,77,"GtkWidget","visible","True",None,None,None,None,None), + (3,78,"GtkLabel","label","Usage Type:","yes",None,None,None,None), + (3,78,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,78,"GtkWidget","visible","True",None,None,None,None,None), + (3,79,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,79,"GtkWidget","visible","True",None,None,None,None,None), + (3,80,"GtkButton","label","Name Start","yes",None,None,None,None), + (3,80,"GtkToggleButton","active","True",None,None,None,None,None), + (3,80,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), + (3,80,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,80,"GtkWidget","receives-default","False",None,None,None,None,None), + (3,80,"GtkWidget","visible","True",None,None,None,None,None), + (3,81,"GtkButton","label","Name End","yes",None,None,None,None), + (3,81,"GtkRadioButton","group","80",None,None,None,None,None), + (3,81,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), + (3,81,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,81,"GtkWidget","receives-default","False",None,None,None,None,None), + (3,81,"GtkWidget","visible","True",None,None,None,None,None), + (3,82,"GtkButton","label","Extension Start","yes",None,None,None,None), + (3,82,"GtkRadioButton","group","80",None,None,None,None,None), + (3,82,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), + (3,82,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,82,"GtkWidget","receives-default","False",None,None,None,None,None), + (3,82,"GtkWidget","visible","True",None,None,None,None,None), + (3,83,"GtkButton","label","Extension End","yes",None,None,None,None), + (3,83,"GtkRadioButton","group","80",None,None,None,None,None), + (3,83,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), + (3,83,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,83,"GtkWidget","receives-default","False",None,None,None,None,None), + (3,83,"GtkWidget","visible","True",None,None,None,None,None), + (3,84,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,84,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,84,"GtkWidget","visible","True",None,None,None,None,None), + (3,85,"GtkLabel","label","Case Sensitivity","yes",None,None,None,None), + (3,85,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,85,"GtkWidget","visible","True",None,None,None,None,None), + (3,86,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,86,"GtkWidget","visible","True",None,None,None,None,None), + (3,87,"GtkButton","label","Case Sensitive","yes",None,None,None,None), + (3,87,"GtkToggleButton","active","True",None,None,None,None,None), + (3,87,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), + (3,87,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,87,"GtkWidget","receives-default","False",None,None,None,None,None), + (3,87,"GtkWidget","visible","True",None,None,None,None,None), + (3,88,"GtkButton","label","Case Insensitive","yes",None,None,None,None), + (3,88,"GtkRadioButton","group","87",None,None,None,None,None), + (3,88,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), + (3,88,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,88,"GtkWidget","receives-default","False",None,None,None,None,None), + (3,88,"GtkWidget","visible","True",None,None,None,None,None), + (3,89,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,89,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,89,"GtkWidget","visible","True",None,None,None,None,None), + (3,90,"GtkLabel","label","Trim text","yes",None,None,None,None), + (3,90,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,90,"GtkWidget","visible","True",None,None,None,None,None), + (3,91,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,91,"GtkWidget","visible","True",None,None,None,None,None), + (3,92,"GtkLabel","label","Trim","yes",None,None,None,None), + (3,92,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,92,"GtkWidget","visible","True",None,None,None,None,None), + (3,93,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,93,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,93,"GtkWidget","visible","True",None,None,None,None,None), + (3,94,"GtkLabel","label","Normalize Name","yes",None,None,None,None), + (3,94,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,94,"GtkWidget","margin-bottom","10",None,None,None,None,None), + (3,94,"GtkWidget","visible","True",None,None,None,None,None), + (3,95,"GtkLabel","label","Everything - renames the name to one that containsonly the\n characters `a-z`, `0-9`, `-`, ` `, `.`.\n e.g. `żółć CZERona.Txt` -> `zolc-czerwona.txt`\n\nPartial - works exacly same as option above, but allows\n to use spaces ` ` and big letters `A-Z`\n e.g. ` Źrebię Krokietowe.Rar ` -> `Zrebie Krokietowe.Rar`","yes",None,None,None,None), + (3,95,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,95,"GtkWidget","halign","start",None,None,None,None,None), + (3,95,"GtkWidget","margin-bottom","10",None,None,None,None,None), + (3,95,"GtkWidget","margin-start","5",None,None,None,None,None), + (3,95,"GtkWidget","visible","True",None,None,None,None,None), + (3,96,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,96,"GtkWidget","visible","True",None,None,None,None,None), + (3,97,"GtkButton","label","Everything","yes",None,None,None,None), + (3,97,"GtkToggleButton","active","True",None,None,None,None,None), + (3,97,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), + (3,97,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,97,"GtkWidget","halign","center",None,None,None,None,None), + (3,97,"GtkWidget","receives-default","False",None,None,None,None,None), + (3,97,"GtkWidget","visible","True",None,None,None,None,None), + (3,98,"GtkButton","label","Partial","yes",None,None,None,None), + (3,98,"GtkRadioButton","group","97",None,None,None,None,None), + (3,98,"GtkToggleButton","active","True",None,None,None,None,None), + (3,98,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), + (3,98,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,98,"GtkWidget","halign","center",None,None,None,None,None), + (3,98,"GtkWidget","receives-default","False",None,None,None,None,None), + (3,98,"GtkWidget","visible","True",None,None,None,None,None), + (3,99,"GtkLabel","label","Normalize Name","yes",None,None,None,None), + (3,99,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,99,"GtkWidget","visible","True",None,None,None,None,None), + (3,100,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,100,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,100,"GtkWidget","visible","True",None,None,None,None,None), + (3,101,"GtkLabel","label","EXAMPLE","yes",None,None,None,None), + (3,101,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,101,"GtkWidget","margin-bottom","5",None,None,None,None,None), + (3,101,"GtkWidget","margin-top","5",None,None,None,None,None), + (3,101,"GtkWidget","visible","True",None,None,None,None,None), + (3,102,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,102,"GtkWidget","visible","True",None,None,None,None,None), + (3,103,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,103,"GtkWidget","visible","True",None,None,None,None,None), + (3,104,"GtkBox","homogeneous","True",None,None,None,None,None), + (3,104,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,104,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,104,"GtkWidget","margin-end","10",None,None,None,None,None), + (3,104,"GtkWidget","margin-start","10",None,None,None,None,None), + (3,104,"GtkWidget","visible","True",None,None,None,None,None), + (3,105,"GtkLabel","label","Before:","yes",None,None,None,None), + (3,105,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,105,"GtkWidget","visible","True",None,None,None,None,None), + (3,106,"GtkLabel","label","After:","yes",None,None,None,None), + (3,106,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,106,"GtkWidget","visible","True",None,None,None,None,None), + (3,107,"GtkBox","homogeneous","True",None,None,None,None,None), + (3,107,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,107,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,107,"GtkWidget","visible","True",None,None,None,None,None), + (3,108,"GtkEntry","max-length","100",None,None,None,None,None), + (3,108,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,108,"GtkWidget","visible","True",None,None,None,None,None), + (3,109,"GtkLabel","label","label","yes",None,None,None,None), + (3,109,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,109,"GtkWidget","halign","start",None,None,None,None,None), + (3,109,"GtkWidget","margin-start","3",None,None,None,None,None), + (3,109,"GtkWidget","visible","True",None,None,None,None,None), + (3,110,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,110,"GtkWidget","margin-start","5",None,None,None,None,None), + (3,110,"GtkWidget","receives-default","True",None,None,None,None,None), + (3,110,"GtkWidget","visible","True",None,None,None,None,None), + (3,111,"GtkImage","icon-name","edit-delete",None,None,None,None,None), + (3,111,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,111,"GtkWidget","visible","True",None,None,None,None,None), + (3,112,"GtkButtonBox","layout-style","end",None,None,None,None,None), + (3,112,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,112,"GtkWidget","margin-bottom","5",None,None,None,None,None), + (3,112,"GtkWidget","margin-end","5",None,None,None,None,None), + (3,112,"GtkWidget","margin-start","5",None,None,None,None,None), + (3,112,"GtkWidget","visible","True",None,None,None,None,None), + (3,113,"GtkButton","label","Add Rule","yes",None,None,None,None), + (3,113,"GtkWidget","can-focus","True",None,None,None,None,None), + (3,113,"GtkWidget","receives-default","True",None,None,None,None,None), + (3,113,"GtkWidget","visible","True",None,None,None,None,None), + (4,1,"GtkWidget","can-focus","False",None,None,None,None,None), + (4,1,"GtkWindow","type-hint","dialog",None,None,None,None,None), + (4,2,"GtkBox","spacing","2",None,None,None,None,None), + (4,2,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (4,2,"GtkWidget","can-focus","False",None,None,None,None,None), + (4,3,"GtkButtonBox","layout-style","end",None,None,None,None,None), + (4,3,"GtkWidget","can-focus","False",None,None,None,None,None), + (4,4,"GtkWidget","can-focus","False",None,None,None,None,None), + (4,4,"GtkWidget","visible","True",None,None,None,None,None), + (4,5,"GtkLabel","label","Language","yes",None,None,None,None), + (4,5,"GtkWidget","can-focus","False",None,None,None,None,None), + (4,5,"GtkWidget","margin-end","10",None,None,None,None,None), + (4,5,"GtkWidget","margin-start","5",None,None,None,None,None), + (4,5,"GtkWidget","visible","True",None,None,None,None,None), + (4,6,"GtkWidget","can-focus","False",None,None,None,None,None), + (4,6,"GtkWidget","visible","True",None,None,None,None,None), + (5,1,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,1,"GtkWindow","default-height","600",None,None,None,None,None), + (5,1,"GtkWindow","default-width","800",None,None,None,None,None), + (5,2,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (5,2,"GtkPaned","position","2000",None,None,None,None,None), + (5,2,"GtkWidget","can-focus","True",None,None,None,None,None), + (5,2,"GtkWidget","visible","True",None,None,None,None,None), + (5,3,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (5,3,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,3,"GtkWidget","visible","True",None,None,None,None,None), + (5,4,"GtkLabel","label","Files/Folders","yes",None,None,None,None), + (5,4,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,4,"GtkWidget","visible","True",None,None,None,None,None), + (5,5,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,5,"GtkWidget","visible","True",None,None,None,None,None), + (5,6,"GtkScrolledWindow","shadow-type","in",None,None,None,None,None), + (5,6,"GtkWidget","can-focus","True",None,None,None,None,None), + (5,6,"GtkWidget","visible","True",None,None,None,None,None), + (5,7,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (5,7,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,7,"GtkWidget","visible","True",None,None,None,None,None), + (5,8,"GtkButton","label","Add Files","yes",None,None,None,None), + (5,8,"GtkWidget","can-focus","True",None,None,None,None,None), + (5,8,"GtkWidget","receives-default","True",None,None,None,None,None), + (5,8,"GtkWidget","visible","True",None,None,None,None,None), + (5,9,"GtkButton","label","Add Folders","yes",None,None,None,None), + (5,9,"GtkWidget","can-focus","True",None,None,None,None,None), + (5,9,"GtkWidget","receives-default","True",None,None,None,None,None), + (5,9,"GtkWidget","visible","True",None,None,None,None,None), + (5,10,"GtkButton","label","Remove Selection","yes",None,None,None,None), + (5,10,"GtkWidget","can-focus","True",None,None,None,None,None), + (5,10,"GtkWidget","receives-default","True",None,None,None,None,None), + (5,10,"GtkWidget","visible","True",None,None,None,None,None), + (5,11,"GtkButton","label","Select","yes",None,None,None,None), + (5,11,"GtkWidget","can-focus","True",None,None,None,None,None), + (5,11,"GtkWidget","receives-default","True",None,None,None,None,None), + (5,11,"GtkWidget","visible","True",None,None,None,None,None), + (5,12,"GtkButton","label","Update Names","yes",None,None,None,None), + (5,12,"GtkWidget","can-focus","True",None,None,None,None,None), + (5,12,"GtkWidget","receives-default","True",None,None,None,None,None), + (5,12,"GtkWidget","visible","True",None,None,None,None,None), + (5,13,"GtkWidget","can-focus","True",None,None,None,None,None), + (5,13,"GtkWidget","receives-default","True",None,None,None,None,None), + (5,13,"GtkWidget","visible","True",None,None,None,None,None), + (5,14,"GtkBox","spacing","7",None,None,None,None,None), + (5,14,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,14,"GtkWidget","halign","center",None,None,None,None,None), + (5,14,"GtkWidget","visible","True",None,None,None,None,None), + (5,15,"GtkImage","icon-name","go-up",None,None,None,None,None), + (5,15,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,15,"GtkWidget","visible","True",None,None,None,None,None), + (5,16,"GtkLabel","label","One Up","yes",None,None,None,None), + (5,16,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,16,"GtkWidget","visible","True",None,None,None,None,None), + (5,17,"GtkWidget","can-focus","True",None,None,None,None,None), + (5,17,"GtkWidget","receives-default","True",None,None,None,None,None), + (5,17,"GtkWidget","visible","True",None,None,None,None,None), + (5,18,"GtkBox","spacing","7",None,None,None,None,None), + (5,18,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,18,"GtkWidget","halign","center",None,None,None,None,None), + (5,18,"GtkWidget","visible","True",None,None,None,None,None), + (5,19,"GtkImage","icon-name","go-down",None,None,None,None,None), + (5,19,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,19,"GtkWidget","visible","True",None,None,None,None,None), + (5,20,"GtkLabel","label","One Down","yes",None,None,None,None), + (5,20,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,20,"GtkWidget","visible","True",None,None,None,None,None), + (5,21,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (5,21,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,21,"GtkWidget","visible","True",None,None,None,None,None), + (5,22,"GtkLabel","label","Rules","yes",None,None,None,None), + (5,22,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,22,"GtkWidget","visible","True",None,None,None,None,None), + (5,23,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,23,"GtkWidget","visible","True",None,None,None,None,None), + (5,24,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (5,24,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,24,"GtkWidget","visible","True",None,None,None,None,None), + (5,25,"GtkWidget","can-focus","True",None,None,None,None,None), + (5,25,"GtkWidget","receives-default","True",None,None,None,None,None), + (5,25,"GtkWidget","visible","True",None,None,None,None,None), + (5,26,"GtkBox","spacing","7",None,None,None,None,None), + (5,26,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,26,"GtkWidget","halign","center",None,None,None,None,None), + (5,26,"GtkWidget","visible","True",None,None,None,None,None), + (5,27,"GtkImage","icon-name","list-add",None,None,None,None,None), + (5,27,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,28,"GtkLabel","label","Add Rule","yes",None,None,None,None), + (5,28,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,28,"GtkWidget","visible","True",None,None,None,None,None), + (5,29,"GtkWidget","can-focus","True",None,None,None,None,None), + (5,29,"GtkWidget","receives-default","True",None,None,None,None,None), + (5,29,"GtkWidget","visible","True",None,None,None,None,None), + (5,30,"GtkBox","spacing","7",None,None,None,None,None), + (5,30,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,30,"GtkWidget","halign","center",None,None,None,None,None), + (5,30,"GtkWidget","visible","True",None,None,None,None,None), + (5,31,"GtkImage","icon-name","applications-engineering",None,None,None,None,None), + (5,31,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,32,"GtkLabel","label","Edit Rule","yes",None,None,None,None), + (5,32,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,32,"GtkWidget","visible","True",None,None,None,None,None), + (5,33,"GtkWidget","can-focus","True",None,None,None,None,None), + (5,33,"GtkWidget","receives-default","True",None,None,None,None,None), + (5,33,"GtkWidget","visible","True",None,None,None,None,None), + (5,34,"GtkBox","spacing","7",None,None,None,None,None), + (5,34,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,34,"GtkWidget","halign","center",None,None,None,None,None), + (5,34,"GtkWidget","visible","True",None,None,None,None,None), + (5,35,"GtkImage","icon-name","list-remove",None,None,None,None,None), + (5,35,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,36,"GtkLabel","label","Remove Rule","yes",None,None,None,None), + (5,36,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,36,"GtkWidget","visible","True",None,None,None,None,None), + (5,37,"GtkWidget","can-focus","True",None,None,None,None,None), + (5,37,"GtkWidget","receives-default","True",None,None,None,None,None), + (5,37,"GtkWidget","visible","True",None,None,None,None,None), + (5,38,"GtkBox","spacing","7",None,None,None,None,None), + (5,38,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,38,"GtkWidget","halign","center",None,None,None,None,None), + (5,38,"GtkWidget","visible","True",None,None,None,None,None), + (5,39,"GtkImage","icon-name","go-up",None,None,None,None,None), + (5,39,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,39,"GtkWidget","visible","True",None,None,None,None,None), + (5,40,"GtkLabel","label","One Up","yes",None,None,None,None), + (5,40,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,40,"GtkWidget","visible","True",None,None,None,None,None), + (5,41,"GtkWidget","can-focus","True",None,None,None,None,None), + (5,41,"GtkWidget","receives-default","True",None,None,None,None,None), + (5,41,"GtkWidget","visible","True",None,None,None,None,None), + (5,42,"GtkBox","spacing","7",None,None,None,None,None), + (5,42,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,42,"GtkWidget","halign","center",None,None,None,None,None), + (5,42,"GtkWidget","visible","True",None,None,None,None,None), + (5,43,"GtkImage","icon-name","go-down",None,None,None,None,None), + (5,43,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,43,"GtkWidget","visible","True",None,None,None,None,None), + (5,44,"GtkLabel","label","One Down","yes",None,None,None,None), + (5,44,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,44,"GtkWidget","visible","True",None,None,None,None,None), + (5,45,"GtkScrolledWindow","shadow-type","in",None,None,None,None,None), + (5,45,"GtkWidget","can-focus","True",None,None,None,None,None), + (5,45,"GtkWidget","visible","True",None,None,None,None,None), + (5,46,"GtkHeaderBar","show-close-button","True",None,None,None,None,None), + (5,46,"GtkHeaderBar","subtitle","Fast and powerful file renamer","yes",None,None,None,None), + (5,46,"GtkHeaderBar","title","Szyszka","yes",None,None,None,None), + (5,46,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,46,"GtkWidget","visible","True",None,None,None,None,None), + (5,47,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,47,"GtkWidget","visible","True",None,None,None,None,None), + (5,48,"GtkButton","label","Start Renaming","yes",None,None,None,None), + (5,48,"GtkWidget","can-focus","True",None,None,None,None,None), + (5,48,"GtkWidget","receives-default","True",None,None,None,None,None), + (5,48,"GtkWidget","visible","True",None,None,None,None,None), + (5,49,"GtkWidget","can-focus","True",None,None,None,None,None), + (5,49,"GtkWidget","receives-default","True",None,None,None,None,None), + (5,49,"GtkWidget","visible","True",None,None,None,None,None), + (5,50,"GtkImage","icon-name","applications-engineering",None,None,None,None,None), + (5,50,"GtkWidget","can-focus","False",None,None,None,None,None), + (5,50,"GtkWidget","visible","True",None,None,None,None,None) + + + (2,2,3,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (2,2,3,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (2,2,4,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (2,2,4,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (2,2,5,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (2,2,5,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (2,2,6,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (2,2,6,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (2,2,7,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (2,2,7,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (2,2,8,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (2,2,8,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (2,2,9,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (2,2,9,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (2,2,10,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (2,2,10,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (2,2,11,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (2,2,11,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,3,4,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (3,3,4,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,3,112,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,3,112,"GtkBoxLayoutChild","fill","False",None,None,None,None), + (3,4,5,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (3,4,5,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,4,100,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,4,100,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,5,9,"GtkNotebookLayoutChild","tab-fill","False",None,None,None,None), + (3,5,22,"GtkNotebookLayoutChild","tab-fill","False",None,None,None,None), + (3,5,30,"GtkNotebookLayoutChild","tab-fill","False",None,None,None,None), + (3,5,46,"GtkNotebookLayoutChild","tab-fill","False",None,None,None,None), + (3,5,56,"GtkNotebookLayoutChild","tab-fill","False",None,None,None,None), + (3,5,75,"GtkNotebookLayoutChild","tab-fill","False",None,None,None,None), + (3,5,92,"GtkNotebookLayoutChild","tab-fill","False",None,None,None,None), + (3,5,99,"GtkNotebookLayoutChild","tab-fill","False",None,None,None,None), + (3,6,7,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,6,7,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,6,8,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,6,8,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,10,11,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,10,11,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,10,16,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,10,16,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,11,12,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,11,12,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,11,13,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,11,13,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,13,14,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (3,13,14,"GtkBoxLayoutChild","fill","False",None,None,None,None), + (3,13,15,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (3,13,15,"GtkBoxLayoutChild","fill","False",None,None,None,None), + (3,16,17,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,16,17,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,16,18,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,16,18,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,18,19,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (3,18,19,"GtkBoxLayoutChild","fill","False",None,None,None,None), + (3,18,20,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (3,18,20,"GtkBoxLayoutChild","fill","False",None,None,None,None), + (3,18,21,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (3,18,21,"GtkBoxLayoutChild","fill","False",None,None,None,None), + (3,23,24,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,23,24,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,24,25,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,24,25,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,24,26,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,24,26,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,26,27,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (3,26,27,"GtkBoxLayoutChild","fill","False",None,None,None,None), + (3,26,28,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (3,26,28,"GtkBoxLayoutChild","fill","False",None,None,None,None), + (3,26,29,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (3,26,29,"GtkBoxLayoutChild","fill","False",None,None,None,None), + (3,31,32,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,31,32,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,31,37,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,31,37,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,32,33,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,32,33,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,32,34,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,32,34,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,34,35,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (3,34,35,"GtkBoxLayoutChild","fill","False",None,None,None,None), + (3,34,36,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (3,34,36,"GtkBoxLayoutChild","fill","False",None,None,None,None), + (3,37,38,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,37,38,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,37,39,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,37,39,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,39,40,"GtkGridLayoutChild","left-attach","0",None,None,None,None), + (3,39,40,"GtkGridLayoutChild","top-attach","0",None,None,None,None), + (3,39,41,"GtkGridLayoutChild","left-attach","0",None,None,None,None), + (3,39,41,"GtkGridLayoutChild","top-attach","1",None,None,None,None), + (3,39,42,"GtkGridLayoutChild","left-attach","1",None,None,None,None), + (3,39,42,"GtkGridLayoutChild","top-attach","0",None,None,None,None), + (3,39,43,"GtkGridLayoutChild","left-attach","1",None,None,None,None), + (3,39,43,"GtkGridLayoutChild","top-attach","1",None,None,None,None), + (3,39,44,"GtkGridLayoutChild","left-attach","0",None,None,None,None), + (3,39,44,"GtkGridLayoutChild","top-attach","2",None,None,None,None), + (3,39,45,"GtkGridLayoutChild","left-attach","1",None,None,None,None), + (3,39,45,"GtkGridLayoutChild","top-attach","2",None,None,None,None), + (3,47,48,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,47,48,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,47,53,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,47,53,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,48,49,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,48,49,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,48,50,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,48,50,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,50,51,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (3,50,51,"GtkBoxLayoutChild","fill","False",None,None,None,None), + (3,50,52,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (3,50,52,"GtkBoxLayoutChild","fill","False",None,None,None,None), + (3,53,54,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,53,54,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,53,55,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,53,55,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,57,58,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,57,58,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,58,59,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,58,59,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,58,60,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,58,60,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,58,64,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,58,64,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,58,69,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,58,69,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,60,61,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (3,60,61,"GtkBoxLayoutChild","fill","False",None,None,None,None), + (3,60,62,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (3,60,62,"GtkBoxLayoutChild","fill","False",None,None,None,None), + (3,60,63,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (3,60,63,"GtkBoxLayoutChild","fill","False",None,None,None,None), + (3,64,65,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,64,65,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,64,66,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,64,66,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,66,67,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (3,66,67,"GtkBoxLayoutChild","fill","False",None,None,None,None), + (3,66,68,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (3,66,68,"GtkBoxLayoutChild","fill","False",None,None,None,None), + (3,69,70,"GtkGridLayoutChild","left-attach","0",None,None,None,None), + (3,69,70,"GtkGridLayoutChild","top-attach","2",None,None,None,None), + (3,69,71,"GtkGridLayoutChild","left-attach","1",None,None,None,None), + (3,69,71,"GtkGridLayoutChild","top-attach","2",None,None,None,None), + (3,69,72,"GtkGridLayoutChild","left-attach","1",None,None,None,None), + (3,69,72,"GtkGridLayoutChild","top-attach","1",None,None,None,None), + (3,69,73,"GtkGridLayoutChild","left-attach","0",None,None,None,None), + (3,69,73,"GtkGridLayoutChild","top-attach","1",None,None,None,None), + (3,69,74,"GtkGridLayoutChild","left-attach","0",None,None,None,None), + (3,69,74,"GtkGridLayoutChild","top-attach","0",None,None,None,None), + (3,69,74,"GtkGridLayoutChild","width","2",None,None,None,None), + (3,76,77,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,76,77,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,76,84,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,76,84,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,76,89,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,76,89,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,77,78,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,77,78,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,77,79,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,77,79,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,79,80,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (3,79,80,"GtkBoxLayoutChild","fill","False",None,None,None,None), + (3,79,81,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (3,79,81,"GtkBoxLayoutChild","fill","False",None,None,None,None), + (3,79,82,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (3,79,82,"GtkBoxLayoutChild","fill","False",None,None,None,None), + (3,79,83,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (3,79,83,"GtkBoxLayoutChild","fill","False",None,None,None,None), + (3,84,85,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,84,85,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,84,86,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,84,86,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,86,87,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (3,86,87,"GtkBoxLayoutChild","fill","False",None,None,None,None), + (3,86,88,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (3,86,88,"GtkBoxLayoutChild","fill","False",None,None,None,None), + (3,89,90,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,89,90,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,89,91,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,89,91,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,93,94,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,93,94,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,93,95,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,93,95,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,93,96,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,93,96,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,96,97,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (3,96,97,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,96,98,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (3,96,98,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,100,101,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,100,101,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,100,102,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,100,102,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,102,103,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (3,102,103,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,102,110,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,102,110,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,103,104,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,103,104,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,103,107,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (3,103,107,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,104,105,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,104,105,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,104,106,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,104,106,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,107,108,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,107,108,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,107,109,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (3,107,109,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (3,112,113,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (3,112,113,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (4,2,3,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (4,2,3,"GtkBoxLayoutChild","fill","False",None,None,None,None), + (4,2,4,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (4,2,4,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (4,4,5,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (4,4,5,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (4,4,6,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (4,4,6,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,2,3,"GtkPanedLayoutChild","resize","True",None,None,None,None), + (5,2,3,"GtkPanedLayoutChild","shrink","False",None,None,None,None), + (5,2,21,"GtkPanedLayoutChild","resize","True",None,None,None,None), + (5,2,21,"GtkPanedLayoutChild","shrink","False",None,None,None,None), + (5,3,4,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (5,3,4,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,3,4,"GtkBoxLayoutChild","padding","1",None,None,None,None), + (5,3,5,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (5,3,5,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,5,6,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (5,5,6,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,5,7,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (5,5,7,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,7,8,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (5,7,8,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,7,9,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (5,7,9,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,7,10,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (5,7,10,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,7,11,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (5,7,11,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,7,12,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (5,7,12,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,7,13,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (5,7,13,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,7,17,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (5,7,17,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,14,15,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (5,14,15,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,14,16,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (5,14,16,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,18,19,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (5,18,19,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,18,20,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (5,18,20,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,21,22,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (5,21,22,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,21,22,"GtkBoxLayoutChild","padding","1",None,None,None,None), + (5,21,23,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (5,21,23,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,23,24,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (5,23,24,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,23,45,"GtkBoxLayoutChild","expand","True",None,None,None,None), + (5,23,45,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,24,25,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (5,24,25,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,24,29,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (5,24,29,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,24,33,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (5,24,33,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,24,37,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (5,24,37,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,24,41,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (5,24,41,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,26,27,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (5,26,27,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,26,28,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (5,26,28,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,30,31,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (5,30,31,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,30,32,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (5,30,32,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,34,35,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (5,34,35,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,34,36,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (5,34,36,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,38,39,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (5,38,39,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,38,40,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (5,38,40,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,42,43,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (5,42,43,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,42,44,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (5,42,44,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,47,48,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (5,47,48,"GtkBoxLayoutChild","fill","True",None,None,None,None), + (5,47,49,"GtkBoxLayoutChild","expand","False",None,None,None,None), + (5,47,49,"GtkBoxLayoutChild","fill","True",None,None,None,None) + + diff --git a/ui/popover.ui b/ui/popover.ui index 2f5518d..d55a719 100644 --- a/ui/popover.ui +++ b/ui/popover.ui @@ -1,123 +1,116 @@ - + + + False - True False vertical + True - Select All - True True + Select All True + True False True - 0 - True False + True False True - 1 - Reverse Selection - True True + Reverse Selection True + True False True - 2 - True False + True False True - 3 - Select Custom - True True + Select Custom True + True False True - 4 - Unselect Custom - True True + Unselect Custom True + True False True - 5 - True False + True False True - 6 - Select Changed - True True + Select Changed True + True False True - 7 - Unselect Changed - True True + Unselect Changed True + True False True - 8 diff --git a/ui/rule_chooser.ui b/ui/rule_chooser.ui index 0d52888..0ed1c6b 100644 --- a/ui/rule_chooser.ui +++ b/ui/rule_chooser.ui @@ -1,6 +1,8 @@ - + + + $(NAME) - prints file name @@ -13,70 +15,68 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. False - 600 400 + 600 - True False vertical 2 + True - True False - 5 + 5 5 + 5 5 - 5 vertical + True - True True left + True - True False - 5 - 5 5 + 5 + 5 vertical 2 + True - True + textbuffer1 True center - textbuffer1 + True False True - 0 - True True 150 $(CURR) + True False True - 1 - True False Custom + True False @@ -84,381 +84,350 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. - True False - 5 - 5 5 + 5 + 5 vertical 2 + True - True False vertical + True - True False Tool Type: + True False True - 0 - True False + True - Uppercase - True - True - False True + True True + Uppercase + False + True True False - 0 - Lowercase - True True - False True radio_button_letters_type_uppercase + Lowercase + False + True True False - 1 False True - 1 False True - 0 - True False vertical + True - True False Usage Type: + True False True - 0 - True False + True - Only Name - True - True - False True + True True + Only Name + False + True True False - 0 - Only Extension - True True - False True radio_button_letters_usage_name + Only Extension + False + True True False - 1 - Both - True True - False True radio_button_letters_usage_name + Both + False + True True False - 2 False True - 1 False True - 1 - - 1 - - True False Upper/Lower cases + True - 1 False - True False - 5 - 5 5 + 5 + 5 vertical 2 + True - True False vertical + True - True False Usage Type: + True False True - 0 - True False + True - Only Name - True - True - False True + True True + Only Name + False + True True False - 0 - Only Extension - True True - False True radio_button_purge_name + Only Extension + False + True True False - 1 - Both - True True - False True radio_button_purge_name + Both + False + True True False - 2 False True - 1 False True - 1 - - 2 - - True False Purge + True - 2 False - True False - 5 - 5 5 + 5 + 5 vertical 2 + True - True False vertical + True - True False Place to put number: + True False True - 0 - True False + True - Before Name - True - True - False True + True True + Before Name + False + True True False - 0 - After Name - True True - False True radio_button_add_number_before_name + After Name + False + True True False - 1 False True - 1 False True - 0 - True False vertical + True - True False Number Settings: + True False True - 0 - True False True + True - True False Start Number + True 0 @@ -467,9 +436,9 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. - True False Step + True 0 @@ -478,11 +447,11 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. - True True + digits 30 1 - digits + True 1 @@ -491,11 +460,11 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. - True True + digits 30 1 - digits + True 1 @@ -504,9 +473,9 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. - True False Fill with zeros + True 0 @@ -515,340 +484,303 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. - True True + digits 4 0 - digits + True 1 2 - - - - - - - - - False True - 1 False True - 1 - - 3 - - True False Add Number + True - 3 False - True False - 5 - 5 5 + 5 + 5 vertical 2 + True - True False vertical + True - True False Usage Type: + True False True - 0 - True False + True - Before Name - True - True - False True + True True + Before Name + False + True True False - 0 - After Name - True True - False True radio_button_add_text_before_name + After Name + False + True True False - 1 False True - 1 False True - 0 - True False vertical + True - True False Text to add: + True False True - 0 - True True Źdźbło + True False True - 1 False True - 1 - - 4 - - True False Add Text + True - 4 False - True False - 5 - 5 5 + 5 + 5 vertical 2 + True - True False vertical + True - True False Usage Type: + True False True - 0 - True False + True - Only Name - True - True - False True + True True + Only Name + False + True True False - 0 - Only Extension - True True - False True radio_button_replace_name + Only Extension + False + True True False - 1 - Both - True True - False True radio_button_replace_name + Both + False + True True False - 2 False True - 1 - True False vertical + True - True False Case Sensitivity + True False True - 0 - True False + True - Case Sensitive - True - True - False True + True True + Case Sensitive + False + True True False - 0 - Case Insensitive - True True - False True radio_button_replace_case_sensitive + Case Insensitive + False + True True False - 1 False True - 1 False True - 2 - True False True + True - True False Replaced Text + True 0 @@ -857,10 +789,10 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. - True True 100 k + True 1 @@ -869,10 +801,10 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. - True True 100 a + True 1 @@ -881,9 +813,9 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. - True False Text to replace + True 0 @@ -892,9 +824,9 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. - True False Replacing Strings: + True 0 @@ -902,290 +834,252 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. 2 - - - - - - - - - False True - 3 False True - 1 - - 5 - - True False Replace + True - 5 False - True False - 5 - 5 5 + 5 + 5 vertical 2 + True - True False vertical + True - True False Usage Type: + True False True - 0 - True False + True - Name Start - True - True - False True + True True + Name Start + False + True True False - 0 - Name End - True True - False True radio_button_trim_name_start + Name End + False + True True False - 1 - Extension Start - True True - False True radio_button_trim_name_start + Extension Start + False + True True False - 2 - Extension End - True True - False True radio_button_trim_name_start + Extension End + False + True True False - 3 False True - 1 False True - 0 - True False vertical + True - True False Case Sensitivity + True False True - 0 - True False + True - Case Sensitive - True - True - False True + True True + Case Sensitive + False + True True False - 0 - Case Insensitive - True True - False True radio_button_trim_case_sensitive + Case Insensitive + False + True True False - 1 False True - 1 False True - 1 - True False vertical + True - True False Trim text + True False True - 0 - True True + True False True - 1 False True - 2 - - 6 - - True False Trim + True - 6 False - True False vertical + True - True False - 10 Normalize Name + 10 + True False True - 0 - True False start - 5 - 10 Everything - renames the name to one that containsonly the characters `a-z`, `0-9`, `-`, ` `, `.`. e.g. `żółć CZERona.Txt` -> `zolc-czerwona.txt` @@ -1193,70 +1087,65 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. Partial - works exacly same as option above, but allows to use spaces ` ` and big letters `A-Z` e.g. ` Źrebię Krokietowe.Rar ` -> `Zrebie Krokietowe.Rar` + 10 + 5 + True False True - 1 - True False + True - Everything - True - True - False - center True + True True + center + Everything + False + True True True - 0 - Partial - True - True - False - center True + True True radio_button_normalize_everything + center + Partial + False + True True True - 1 False True - 2 - - 7 - - True False Normalize Name + True - 7 False @@ -1264,191 +1153,173 @@ Partial - works exacly same as option above, but allows True True - 0 - True False vertical + True - True False - 5 - 5 EXAMPLE + 5 + 5 + True False True - 0 - True False + True - True False + True - True False - 10 + True 10 + 10 vertical - True + True - True False Before: + True False True - 0 - True False After: + True False True - 1 False True - 1 - True False - vertical True + vertical + True - True True 100 + True False True - 0 - True False start - 3 label + 3 + True False True - 1 True True - 2 True True - 0 - True True - True 5 + True + True - True False edit-delete + True False True - 1 False True - 1 False True - 1 True True - 0 - True False - 5 - 5 - 5 end + 5 + 5 + 5 + True - Add Rule - True True + Add Rule True + True True True - 0 - - - False False - 1 diff --git a/ui/settings.ui b/ui/settings.ui index 6a0d5cc..b893291 100644 --- a/ui/settings.ui +++ b/ui/settings.ui @@ -1,6 +1,8 @@ - + + + False @@ -14,53 +16,43 @@ False end - - - - - - False False - 0 - True False + True - True False - 5 - 10 Language + 10 + 5 + True False True - 0 - True False + True True True - 1 False True - 1 diff --git a/ui/window_main.ui b/ui/window_main.ui index 9d19172..34af563 100644 --- a/ui/window_main.ui +++ b/ui/window_main.ui @@ -1,154 +1,147 @@ - + + + False - 800 600 + 800 - True True vertical 2000 + True - True False vertical + True - True False Files/Folders + True False True 1 - 0 - True False + True - True True in + True True True - 0 - True False vertical + True - Add Files - True True + Add Files True + True False True - 0 - Add Folders - True True + Add Folders True + True False True - 1 - Remove Selection - True True + Remove Selection True + True False True - 2 - Select - True True + Select True + True False True - 3 - Update Names - True True + Update Names True + True False True - 4 - True True True + True - True False center 7 + True - True False go-up + True False True - 0 - True False One Up + True False True - 1 @@ -157,42 +150,39 @@ False True - 5 - True True True + True - True False center 7 + True - True False go-down + True False True - 0 - True False One Down + True False True - 1 @@ -201,21 +191,18 @@ False True - 6 False True - 1 True True - 3 @@ -226,42 +213,41 @@ - True False vertical + True - True False Rules + True False True 1 - 0 - True False + True - True False vertical + True - True True True + True - True False center 7 + True False @@ -270,19 +256,17 @@ False True - 0 - True False Add Rule + True False True - 1 @@ -291,20 +275,19 @@ False True - 0 - True True True + True - True False center 7 + True False @@ -313,19 +296,17 @@ False True - 0 - True False Edit Rule + True False True - 1 @@ -334,20 +315,19 @@ False True - 1 - True True True + True - True False center 7 + True False @@ -356,19 +336,17 @@ False True - 0 - True False Remove Rule + True False True - 1 @@ -377,42 +355,39 @@ False True - 2 - True True True + True - True False center 7 + True - True False go-up + True False True - 0 - True False One Up + True False True - 1 @@ -421,42 +396,39 @@ False True - 3 - True True True + True - True False center 7 + True - True False go-down + True False True - 0 - True False One Down + True False True - 1 @@ -465,36 +437,29 @@ False True - 4 False True - 0 - True True in - - - + True True True - 1 True True - 1 @@ -507,45 +472,43 @@ - True False - Szyszka - Fast and powerful file renamer True + Fast and powerful file renamer + Szyszka + True - True False + True - Start Renaming - True True + Start Renaming True + True False True - 0 - True True True + True - True False applications-engineering + True False True - 1 From 3b2e7a18abb324a848c57caec836545414391257 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mikrut?= Date: Tue, 24 May 2022 22:34:39 +0200 Subject: [PATCH 05/18] Radio to check --- src/class_dialog_rule_add_number.rs | 12 +- src/class_dialog_rule_add_text.rs | 12 +- src/class_dialog_rule_normalize.rs | 12 +- src/class_dialog_rule_purge.rs | 18 +-- src/class_dialog_rule_replace.rs | 30 ++--- src/class_dialog_rule_size_letters.rs | 30 ++--- src/class_dialog_rule_trim.rs | 36 +++--- src/connect_rule_buttons_modify_rules.rs | 104 +++++++++--------- src/connect_rule_window_add_number_click.rs | 8 +- src/connect_rule_window_add_text_click.rs | 8 +- src/connect_rule_window_normalize_click.rs | 8 +- src/connect_rule_window_purge_click.rs | 12 +- src/connect_rule_window_replace_click.rs | 20 ++-- src/connect_rule_window_size_letters_click.rs | 20 ++-- src/connect_rule_window_trim_click.rs | 24 ++-- src/connect_select_records.rs | 20 ++-- src/help_function.rs | 104 +++++++++--------- ui/Szyszka.cmb | 80 +++++++------- ui/rule_chooser.ui | 65 +++++------ 19 files changed, 304 insertions(+), 319 deletions(-) diff --git a/src/class_dialog_rule_add_number.rs b/src/class_dialog_rule_add_number.rs index 43e2684..ea32add 100644 --- a/src/class_dialog_rule_add_number.rs +++ b/src/class_dialog_rule_add_number.rs @@ -2,8 +2,8 @@ use gtk::prelude::*; #[derive(Clone)] pub struct GuiAddNumber { - pub radio_button_add_number_before_name: gtk::CheckButton, - pub radio_button_add_number_after_name: gtk::CheckButton, + pub check_button_add_number_before_name: gtk::CheckButton, + pub check_button_add_number_after_name: gtk::CheckButton, pub entry_add_number_start_number: gtk::Entry, pub entry_add_number_step: gtk::Entry, @@ -12,16 +12,16 @@ pub struct GuiAddNumber { impl GuiAddNumber { pub fn create_from_builder(builder: >k::Builder) -> Self { - let radio_button_add_number_before_name: gtk::CheckButton = builder.object("radio_button_add_number_before_name").unwrap(); - let radio_button_add_number_after_name: gtk::CheckButton = builder.object("radio_button_add_number_after_name").unwrap(); + let check_button_add_number_before_name: gtk::CheckButton = builder.object("check_button_add_number_before_name").unwrap(); + let check_button_add_number_after_name: gtk::CheckButton = builder.object("check_button_add_number_after_name").unwrap(); let entry_add_number_start_number: gtk::Entry = builder.object("entry_add_number_start_number").unwrap(); let entry_add_number_step: gtk::Entry = builder.object("entry_add_number_step").unwrap(); let entry_add_number_zeros: gtk::Entry = builder.object("entry_add_number_zeros").unwrap(); Self { - radio_button_add_number_before_name, - radio_button_add_number_after_name, + check_button_add_number_before_name, + check_button_add_number_after_name, entry_add_number_start_number, entry_add_number_step, entry_add_number_zeros, diff --git a/src/class_dialog_rule_add_text.rs b/src/class_dialog_rule_add_text.rs index 0cc3042..84d3eef 100644 --- a/src/class_dialog_rule_add_text.rs +++ b/src/class_dialog_rule_add_text.rs @@ -2,22 +2,22 @@ use gtk::prelude::*; #[derive(Clone)] pub struct GuiAddText { - pub radio_button_add_text_before_name: gtk::CheckButton, - pub radio_button_add_text_after_name: gtk::CheckButton, + pub check_button_add_text_before_name: gtk::CheckButton, + pub check_button_add_text_after_name: gtk::CheckButton, pub entry_add_text_text_to_add: gtk::Entry, } impl GuiAddText { pub fn create_from_builder(builder: >k::Builder) -> Self { - let radio_button_add_text_before_name: gtk::CheckButton = builder.object("radio_button_add_text_before_name").unwrap(); - let radio_button_add_text_after_name: gtk::CheckButton = builder.object("radio_button_add_text_after_name").unwrap(); + let check_button_add_text_before_name: gtk::CheckButton = builder.object("check_button_add_text_before_name").unwrap(); + let check_button_add_text_after_name: gtk::CheckButton = builder.object("check_button_add_text_after_name").unwrap(); let entry_add_text_text_to_add: gtk::Entry = builder.object("entry_add_text_text_to_add").unwrap(); Self { - radio_button_add_text_before_name, - radio_button_add_text_after_name, + check_button_add_text_before_name, + check_button_add_text_after_name, entry_add_text_text_to_add, } } diff --git a/src/class_dialog_rule_normalize.rs b/src/class_dialog_rule_normalize.rs index d0b3f21..b1305dc 100644 --- a/src/class_dialog_rule_normalize.rs +++ b/src/class_dialog_rule_normalize.rs @@ -2,18 +2,18 @@ use gtk::prelude::*; #[derive(Clone)] pub struct GuiNormalize { - pub radio_button_normalize_everything: gtk::CheckButton, - pub radio_button_normalize_partial: gtk::CheckButton, + pub check_button_normalize_everything: gtk::CheckButton, + pub check_button_normalize_partial: gtk::CheckButton, } impl GuiNormalize { pub fn create_from_builder(builder: >k::Builder) -> Self { - let radio_button_normalize_everything: gtk::CheckButton = builder.object("radio_button_normalize_everything").unwrap(); - let radio_button_normalize_partial: gtk::CheckButton = builder.object("radio_button_normalize_partial").unwrap(); + let check_button_normalize_everything: gtk::CheckButton = builder.object("check_button_normalize_everything").unwrap(); + let check_button_normalize_partial: gtk::CheckButton = builder.object("check_button_normalize_partial").unwrap(); Self { - radio_button_normalize_everything, - radio_button_normalize_partial, + check_button_normalize_everything, + check_button_normalize_partial, } } } diff --git a/src/class_dialog_rule_purge.rs b/src/class_dialog_rule_purge.rs index ce07a4a..bea54a1 100644 --- a/src/class_dialog_rule_purge.rs +++ b/src/class_dialog_rule_purge.rs @@ -2,21 +2,21 @@ use gtk::prelude::*; #[derive(Clone)] pub struct GuiPurge { - pub radio_button_purge_name: gtk::CheckButton, - pub radio_button_purge_extension: gtk::CheckButton, - pub radio_button_purge_both: gtk::CheckButton, + pub check_button_purge_name: gtk::CheckButton, + pub check_button_purge_extension: gtk::CheckButton, + pub check_button_purge_both: gtk::CheckButton, } impl GuiPurge { pub fn create_from_builder(builder: >k::Builder) -> Self { - let radio_button_purge_name: gtk::CheckButton = builder.object("radio_button_purge_name").unwrap(); - let radio_button_purge_extension: gtk::CheckButton = builder.object("radio_button_purge_extension").unwrap(); - let radio_button_purge_both: gtk::CheckButton = builder.object("radio_button_purge_both").unwrap(); + let check_button_purge_name: gtk::CheckButton = builder.object("check_button_purge_name").unwrap(); + let check_button_purge_extension: gtk::CheckButton = builder.object("check_button_purge_extension").unwrap(); + let check_button_purge_both: gtk::CheckButton = builder.object("check_button_purge_both").unwrap(); Self { - radio_button_purge_name, - radio_button_purge_extension, - radio_button_purge_both, + check_button_purge_name, + check_button_purge_extension, + check_button_purge_both, } } } diff --git a/src/class_dialog_rule_replace.rs b/src/class_dialog_rule_replace.rs index b780a43..10c8cdc 100644 --- a/src/class_dialog_rule_replace.rs +++ b/src/class_dialog_rule_replace.rs @@ -2,12 +2,12 @@ use gtk::prelude::*; #[derive(Clone)] pub struct GuiReplace { - pub radio_button_replace_name: gtk::CheckButton, - pub radio_button_replace_extension: gtk::CheckButton, - pub radio_button_replace_both: gtk::CheckButton, + pub check_button_replace_name: gtk::CheckButton, + pub check_button_replace_extension: gtk::CheckButton, + pub check_button_replace_both: gtk::CheckButton, - pub radio_button_replace_case_insensitive: gtk::CheckButton, - pub radio_button_replace_case_sensitive: gtk::CheckButton, + pub check_button_replace_case_insensitive: gtk::CheckButton, + pub check_button_replace_case_sensitive: gtk::CheckButton, pub entry_replace_text_to_remove: gtk::Entry, pub entry_replace_text_to_change: gtk::Entry, @@ -15,22 +15,22 @@ pub struct GuiReplace { impl GuiReplace { pub fn create_from_builder(builder: >k::Builder) -> Self { - let radio_button_replace_name: gtk::CheckButton = builder.object("radio_button_replace_name").unwrap(); - let radio_button_replace_extension: gtk::CheckButton = builder.object("radio_button_replace_extension").unwrap(); - let radio_button_replace_both: gtk::CheckButton = builder.object("radio_button_replace_both").unwrap(); + let check_button_replace_name: gtk::CheckButton = builder.object("check_button_replace_name").unwrap(); + let check_button_replace_extension: gtk::CheckButton = builder.object("check_button_replace_extension").unwrap(); + let check_button_replace_both: gtk::CheckButton = builder.object("check_button_replace_both").unwrap(); let entry_replace_text_to_remove: gtk::Entry = builder.object("entry_replace_text_to_remove").unwrap(); let entry_replace_text_to_change: gtk::Entry = builder.object("entry_replace_text_to_change").unwrap(); - let radio_button_replace_case_sensitive: gtk::CheckButton = builder.object("radio_button_replace_case_sensitive").unwrap(); - let radio_button_replace_case_insensitive: gtk::CheckButton = builder.object("radio_button_replace_case_insensitive").unwrap(); + let check_button_replace_case_sensitive: gtk::CheckButton = builder.object("check_button_replace_case_sensitive").unwrap(); + let check_button_replace_case_insensitive: gtk::CheckButton = builder.object("check_button_replace_case_insensitive").unwrap(); Self { - radio_button_replace_name, - radio_button_replace_extension, - radio_button_replace_both, - radio_button_replace_case_insensitive, - radio_button_replace_case_sensitive, + check_button_replace_name, + check_button_replace_extension, + check_button_replace_both, + check_button_replace_case_insensitive, + check_button_replace_case_sensitive, entry_replace_text_to_remove, entry_replace_text_to_change, } diff --git a/src/class_dialog_rule_size_letters.rs b/src/class_dialog_rule_size_letters.rs index b0d0653..eee3b07 100644 --- a/src/class_dialog_rule_size_letters.rs +++ b/src/class_dialog_rule_size_letters.rs @@ -2,29 +2,29 @@ use gtk::prelude::*; #[derive(Clone)] pub struct GuiSizeLetters { - pub radio_button_letters_type_uppercase: gtk::CheckButton, - pub radio_button_letters_type_lowercase: gtk::CheckButton, + pub check_button_letters_type_uppercase: gtk::CheckButton, + pub check_button_letters_type_lowercase: gtk::CheckButton, - pub radio_button_letters_usage_name: gtk::CheckButton, - pub radio_button_letters_usage_extension: gtk::CheckButton, - pub radio_button_letters_usage_both: gtk::CheckButton, + pub check_button_letters_usage_name: gtk::CheckButton, + pub check_button_letters_usage_extension: gtk::CheckButton, + pub check_button_letters_usage_both: gtk::CheckButton, } impl GuiSizeLetters { pub fn create_from_builder(builder: >k::Builder) -> Self { - let radio_button_letters_type_uppercase: gtk::CheckButton = builder.object("radio_button_letters_type_uppercase").unwrap(); - let radio_button_letters_type_lowercase: gtk::CheckButton = builder.object("radio_button_letters_type_lowercase").unwrap(); + let check_button_letters_type_uppercase: gtk::CheckButton = builder.object("check_button_letters_type_uppercase").unwrap(); + let check_button_letters_type_lowercase: gtk::CheckButton = builder.object("check_button_letters_type_lowercase").unwrap(); - let radio_button_letters_usage_name: gtk::CheckButton = builder.object("radio_button_letters_usage_name").unwrap(); - let radio_button_letters_usage_extension: gtk::CheckButton = builder.object("radio_button_letters_usage_extension").unwrap(); - let radio_button_letters_usage_both: gtk::CheckButton = builder.object("radio_button_letters_usage_both").unwrap(); + let check_button_letters_usage_name: gtk::CheckButton = builder.object("check_button_letters_usage_name").unwrap(); + let check_button_letters_usage_extension: gtk::CheckButton = builder.object("check_button_letters_usage_extension").unwrap(); + let check_button_letters_usage_both: gtk::CheckButton = builder.object("check_button_letters_usage_both").unwrap(); Self { - radio_button_letters_type_uppercase, - radio_button_letters_type_lowercase, - radio_button_letters_usage_name, - radio_button_letters_usage_extension, - radio_button_letters_usage_both, + check_button_letters_type_uppercase, + check_button_letters_type_lowercase, + check_button_letters_usage_name, + check_button_letters_usage_extension, + check_button_letters_usage_both, } } } diff --git a/src/class_dialog_rule_trim.rs b/src/class_dialog_rule_trim.rs index 2b410c3..7ef2e1b 100644 --- a/src/class_dialog_rule_trim.rs +++ b/src/class_dialog_rule_trim.rs @@ -2,36 +2,36 @@ use gtk::prelude::*; #[derive(Clone)] pub struct GuiTrim { - pub radio_button_trim_name_start: gtk::CheckButton, - pub radio_button_trim_name_end: gtk::CheckButton, - pub radio_button_trim_extension_start: gtk::CheckButton, - pub radio_button_trim_extension_end: gtk::CheckButton, + pub check_button_trim_name_start: gtk::CheckButton, + pub check_button_trim_name_end: gtk::CheckButton, + pub check_button_trim_extension_start: gtk::CheckButton, + pub check_button_trim_extension_end: gtk::CheckButton, - pub radio_button_trim_case_sensitive: gtk::CheckButton, - pub radio_button_trim_case_insensitive: gtk::CheckButton, + pub check_button_trim_case_sensitive: gtk::CheckButton, + pub check_button_trim_case_insensitive: gtk::CheckButton, pub entry_add_text_text_to_trim: gtk::Entry, } impl GuiTrim { pub fn create_from_builder(builder: >k::Builder) -> Self { - let radio_button_trim_name_start: gtk::CheckButton = builder.object("radio_button_trim_name_start").unwrap(); - let radio_button_trim_name_end: gtk::CheckButton = builder.object("radio_button_trim_name_end").unwrap(); - let radio_button_trim_extension_start: gtk::CheckButton = builder.object("radio_button_trim_extension_start").unwrap(); - let radio_button_trim_extension_end: gtk::CheckButton = builder.object("radio_button_trim_extension_end").unwrap(); + let check_button_trim_name_start: gtk::CheckButton = builder.object("check_button_trim_name_start").unwrap(); + let check_button_trim_name_end: gtk::CheckButton = builder.object("check_button_trim_name_end").unwrap(); + let check_button_trim_extension_start: gtk::CheckButton = builder.object("check_button_trim_extension_start").unwrap(); + let check_button_trim_extension_end: gtk::CheckButton = builder.object("check_button_trim_extension_end").unwrap(); - let radio_button_trim_case_sensitive: gtk::CheckButton = builder.object("radio_button_trim_case_sensitive").unwrap(); - let radio_button_trim_case_insensitive: gtk::CheckButton = builder.object("radio_button_trim_case_insensitive").unwrap(); + let check_button_trim_case_sensitive: gtk::CheckButton = builder.object("check_button_trim_case_sensitive").unwrap(); + let check_button_trim_case_insensitive: gtk::CheckButton = builder.object("check_button_trim_case_insensitive").unwrap(); let entry_add_text_text_to_trim: gtk::Entry = builder.object("entry_add_text_text_to_trim").unwrap(); Self { - radio_button_trim_name_start, - radio_button_trim_name_end, - radio_button_trim_extension_start, - radio_button_trim_extension_end, - radio_button_trim_case_sensitive, - radio_button_trim_case_insensitive, + check_button_trim_name_start, + check_button_trim_name_end, + check_button_trim_extension_start, + check_button_trim_extension_end, + check_button_trim_case_sensitive, + check_button_trim_case_insensitive, entry_add_text_text_to_trim, } } diff --git a/src/connect_rule_buttons_modify_rules.rs b/src/connect_rule_buttons_modify_rules.rs index e9fe5db..cbfc9c8 100644 --- a/src/connect_rule_buttons_modify_rules.rs +++ b/src/connect_rule_buttons_modify_rules.rs @@ -212,46 +212,46 @@ pub fn connect_rule_modify_edit(gui_data: &GuiData) { let notebook_choose_rule = gui_data.window_rules.notebook_choose_rule.clone(); let button_rule_window_add = gui_data.window_rules.button_rule_window_add.clone(); - let radio_button_letters_type_uppercase = window_rules.size_letters.radio_button_letters_type_uppercase.clone(); - let radio_button_letters_type_lowercase = window_rules.size_letters.radio_button_letters_type_lowercase.clone(); - let radio_button_letters_usage_name = window_rules.size_letters.radio_button_letters_usage_name.clone(); - let radio_button_letters_usage_extension = window_rules.size_letters.radio_button_letters_usage_extension.clone(); - let radio_button_letters_usage_both = window_rules.size_letters.radio_button_letters_usage_both.clone(); - - let radio_button_purge_name = window_rules.purge.radio_button_purge_name.clone(); - let radio_button_purge_extension = window_rules.purge.radio_button_purge_extension.clone(); - let radio_button_purge_both = window_rules.purge.radio_button_purge_both.clone(); - - let radio_button_add_text_after_name = window_rules.add_text.radio_button_add_text_after_name.clone(); - let radio_button_add_text_before_name = window_rules.add_text.radio_button_add_text_before_name.clone(); + let check_button_letters_type_uppercase = window_rules.size_letters.check_button_letters_type_uppercase.clone(); + let check_button_letters_type_lowercase = window_rules.size_letters.check_button_letters_type_lowercase.clone(); + let check_button_letters_usage_name = window_rules.size_letters.check_button_letters_usage_name.clone(); + let check_button_letters_usage_extension = window_rules.size_letters.check_button_letters_usage_extension.clone(); + let check_button_letters_usage_both = window_rules.size_letters.check_button_letters_usage_both.clone(); + + let check_button_purge_name = window_rules.purge.check_button_purge_name.clone(); + let check_button_purge_extension = window_rules.purge.check_button_purge_extension.clone(); + let check_button_purge_both = window_rules.purge.check_button_purge_both.clone(); + + let check_button_add_text_after_name = window_rules.add_text.check_button_add_text_after_name.clone(); + let check_button_add_text_before_name = window_rules.add_text.check_button_add_text_before_name.clone(); let entry_add_text_text_to_add = window_rules.add_text.entry_add_text_text_to_add.clone(); let entry_add_text_text_to_trim = window_rules.trim.entry_add_text_text_to_trim.clone(); - let radio_button_trim_name_start = window_rules.trim.radio_button_trim_name_start.clone(); - let radio_button_trim_name_end = window_rules.trim.radio_button_trim_name_end.clone(); - let radio_button_trim_extension_start = window_rules.trim.radio_button_trim_extension_start.clone(); - let radio_button_trim_extension_end = window_rules.trim.radio_button_trim_extension_end.clone(); - let radio_button_trim_case_insensitive = window_rules.trim.radio_button_trim_case_insensitive.clone(); - let radio_button_trim_case_sensitive = window_rules.trim.radio_button_trim_case_sensitive; + let check_button_trim_name_start = window_rules.trim.check_button_trim_name_start.clone(); + let check_button_trim_name_end = window_rules.trim.check_button_trim_name_end.clone(); + let check_button_trim_extension_start = window_rules.trim.check_button_trim_extension_start.clone(); + let check_button_trim_extension_end = window_rules.trim.check_button_trim_extension_end.clone(); + let check_button_trim_case_insensitive = window_rules.trim.check_button_trim_case_insensitive.clone(); + let check_button_trim_case_sensitive = window_rules.trim.check_button_trim_case_sensitive; let entry_custom_text_to_change = window_rules.custom.entry_custom_text_to_change.clone(); - let radio_button_replace_extension = window_rules.replace.radio_button_replace_extension.clone(); - let radio_button_replace_name = window_rules.replace.radio_button_replace_name.clone(); - let radio_button_replace_both = window_rules.replace.radio_button_replace_both.clone(); - let radio_button_replace_case_insensitive = window_rules.replace.radio_button_replace_case_insensitive.clone(); - let radio_button_replace_case_sensitive = window_rules.replace.radio_button_replace_case_sensitive.clone(); + let check_button_replace_extension = window_rules.replace.check_button_replace_extension.clone(); + let check_button_replace_name = window_rules.replace.check_button_replace_name.clone(); + let check_button_replace_both = window_rules.replace.check_button_replace_both.clone(); + let check_button_replace_case_insensitive = window_rules.replace.check_button_replace_case_insensitive.clone(); + let check_button_replace_case_sensitive = window_rules.replace.check_button_replace_case_sensitive.clone(); let entry_replace_text_to_remove = window_rules.replace.entry_replace_text_to_remove.clone(); let entry_replace_text_to_change = window_rules.replace.entry_replace_text_to_change; - let radio_button_add_number_before_name = window_rules.add_number.radio_button_add_number_before_name.clone(); - let radio_button_add_number_after_name = window_rules.add_number.radio_button_add_number_after_name.clone(); + let check_button_add_number_before_name = window_rules.add_number.check_button_add_number_before_name.clone(); + let check_button_add_number_after_name = window_rules.add_number.check_button_add_number_after_name.clone(); let entry_add_number_start_number = window_rules.add_number.entry_add_number_start_number.clone(); let entry_add_number_step = window_rules.add_number.entry_add_number_step.clone(); let entry_add_number_zeros = window_rules.add_number.entry_add_number_zeros; - let radio_button_normalize_everything = window_rules.normalize.radio_button_normalize_everything.clone(); - let radio_button_normalize_partial = window_rules.normalize.radio_button_normalize_partial; + let check_button_normalize_everything = window_rules.normalize.check_button_normalize_everything.clone(); + let check_button_normalize_partial = window_rules.normalize.check_button_normalize_partial; button_edit_rule.connect_clicked(move |_e| { let mut rules = rules.borrow_mut(); @@ -291,52 +291,52 @@ pub fn connect_rule_modify_edit(gui_data: &GuiData) { match rule_type { RuleType::CaseSize => { if rule_data.to_lowercase { - radio_button_letters_type_lowercase.set_active(true); + check_button_letters_type_lowercase.set_active(true); } else { - radio_button_letters_type_uppercase.set_active(true); + check_button_letters_type_uppercase.set_active(true); } if rule_place == RulePlace::Extension { - radio_button_letters_usage_extension.set_active(true); + check_button_letters_usage_extension.set_active(true); } else if rule_place == RulePlace::ExtensionAndName { - radio_button_letters_usage_both.set_active(true); + check_button_letters_usage_both.set_active(true); } else if rule_place == RulePlace::Name { - radio_button_letters_usage_name.set_active(true); + check_button_letters_usage_name.set_active(true); } } RuleType::Purge => { if rule_place == RulePlace::Extension { - radio_button_purge_extension.set_active(true); + check_button_purge_extension.set_active(true); } else if rule_place == RulePlace::ExtensionAndName { - radio_button_purge_both.set_active(true); + check_button_purge_both.set_active(true); } else if rule_place == RulePlace::Name { - radio_button_purge_name.set_active(true); + check_button_purge_name.set_active(true); } } RuleType::AddText => { if rule_place == RulePlace::BeforeName { - radio_button_add_text_before_name.set_active(true); + check_button_add_text_before_name.set_active(true); } else if rule_place == RulePlace::AfterName { - radio_button_add_text_after_name.set_active(true); + check_button_add_text_after_name.set_active(true); } entry_add_text_text_to_add.set_text(rule_data.add_text_text.as_str()); } RuleType::Trim => { if rule_place == RulePlace::FromNameStart { - radio_button_trim_name_start.set_active(true); + check_button_trim_name_start.set_active(true); } else if rule_place == RulePlace::FromNameEndReverse { - radio_button_trim_name_end.set_active(true); + check_button_trim_name_end.set_active(true); } else if rule_place == RulePlace::FromExtensionStart { - radio_button_trim_extension_start.set_active(true); + check_button_trim_extension_start.set_active(true); } else if rule_place == RulePlace::FromExtensionEndReverse { - radio_button_trim_extension_end.set_active(true); + check_button_trim_extension_end.set_active(true); } if rule_data.case_sensitive { - radio_button_trim_case_sensitive.set_active(true); + check_button_trim_case_sensitive.set_active(true); } else { - radio_button_trim_case_insensitive.set_active(true); + check_button_trim_case_insensitive.set_active(true); } entry_add_text_text_to_trim.set_text(rule_data.trim_text.as_str()); @@ -346,17 +346,17 @@ pub fn connect_rule_modify_edit(gui_data: &GuiData) { } RuleType::Replace => { if rule_place == RulePlace::ExtensionAndName { - radio_button_replace_both.set_active(true); + check_button_replace_both.set_active(true); } else if rule_place == RulePlace::Name { - radio_button_replace_name.set_active(true); + check_button_replace_name.set_active(true); } else if rule_place == RulePlace::Extension { - radio_button_replace_extension.set_active(true); + check_button_replace_extension.set_active(true); } if rule_data.case_sensitive { - radio_button_replace_case_sensitive.set_active(true); + check_button_replace_case_sensitive.set_active(true); } else { - radio_button_replace_case_insensitive.set_active(true); + check_button_replace_case_insensitive.set_active(true); } entry_replace_text_to_remove.set_text(rule_data.text_to_remove.as_str()); @@ -364,9 +364,9 @@ pub fn connect_rule_modify_edit(gui_data: &GuiData) { } RuleType::AddNumber => { if rule_place == RulePlace::BeforeName { - radio_button_add_number_before_name.set_active(true); + check_button_add_number_before_name.set_active(true); } else if rule_place == RulePlace::AfterName { - radio_button_add_number_after_name.set_active(true); + check_button_add_number_after_name.set_active(true); } entry_add_number_zeros.set_text(rule_data.fill_with_zeros.to_string().as_str()); @@ -375,9 +375,9 @@ pub fn connect_rule_modify_edit(gui_data: &GuiData) { } RuleType::Normalize => { if rule_data.full_normalize { - radio_button_normalize_everything.set_active(true); + check_button_normalize_everything.set_active(true); } else { - radio_button_normalize_partial.set_active(true); + check_button_normalize_partial.set_active(true); } } } diff --git a/src/connect_rule_window_add_number_click.rs b/src/connect_rule_window_add_number_click.rs index 260ef10..c4bf6e6 100644 --- a/src/connect_rule_window_add_number_click.rs +++ b/src/connect_rule_window_add_number_click.rs @@ -6,18 +6,18 @@ use gtk::prelude::*; pub fn connect_rule_window_add_number_click(gui_data: &GuiData) { let window_rules = gui_data.window_rules.clone(); - let radio_button_add_number_before_name = gui_data.window_rules.add_number.radio_button_add_number_before_name.clone(); - let radio_button_add_number_after_name = gui_data.window_rules.add_number.radio_button_add_number_after_name.clone(); + let check_button_add_number_before_name = gui_data.window_rules.add_number.check_button_add_number_before_name.clone(); + let check_button_add_number_after_name = gui_data.window_rules.add_number.check_button_add_number_after_name.clone(); let entry_add_number_start_number = gui_data.window_rules.add_number.entry_add_number_start_number.clone(); let entry_add_number_step = gui_data.window_rules.add_number.entry_add_number_step.clone(); let entry_add_number_zeros = gui_data.window_rules.add_number.entry_add_number_zeros.clone(); - radio_button_add_number_before_name.connect_clicked(move |_e| { + check_button_add_number_before_name.connect_clicked(move |_e| { update_examples(&window_rules, None); }); let window_rules = gui_data.window_rules.clone(); - radio_button_add_number_after_name.connect_clicked(move |_e| { + check_button_add_number_after_name.connect_clicked(move |_e| { update_examples(&window_rules, None); }); diff --git a/src/connect_rule_window_add_text_click.rs b/src/connect_rule_window_add_text_click.rs index ea78a70..f37ce84 100644 --- a/src/connect_rule_window_add_text_click.rs +++ b/src/connect_rule_window_add_text_click.rs @@ -6,16 +6,16 @@ use gtk::prelude::*; pub fn connect_rule_window_add_text_click(gui_data: &GuiData) { let window_rules = gui_data.window_rules.clone(); - let radio_button_add_text_before_name = gui_data.window_rules.add_text.radio_button_add_text_before_name.clone(); - let radio_button_add_text_after_name = gui_data.window_rules.add_text.radio_button_add_text_after_name.clone(); + let check_button_add_text_before_name = gui_data.window_rules.add_text.check_button_add_text_before_name.clone(); + let check_button_add_text_after_name = gui_data.window_rules.add_text.check_button_add_text_after_name.clone(); let entry_add_text_text_to_add = gui_data.window_rules.add_text.entry_add_text_text_to_add.clone(); - radio_button_add_text_before_name.connect_clicked(move |_e| { + check_button_add_text_before_name.connect_clicked(move |_e| { update_examples(&window_rules, None); }); let window_rules = gui_data.window_rules.clone(); - radio_button_add_text_after_name.connect_clicked(move |_e| { + check_button_add_text_after_name.connect_clicked(move |_e| { update_examples(&window_rules, None); }); let window_rules = gui_data.window_rules.clone(); diff --git a/src/connect_rule_window_normalize_click.rs b/src/connect_rule_window_normalize_click.rs index 73411b3..34694fa 100644 --- a/src/connect_rule_window_normalize_click.rs +++ b/src/connect_rule_window_normalize_click.rs @@ -5,14 +5,14 @@ use gtk::prelude::*; pub fn connect_rule_window_normalize_click(gui_data: &GuiData) { let window_rules = gui_data.window_rules.clone(); - let radio_button_normalize_everything = gui_data.window_rules.normalize.radio_button_normalize_everything.clone(); - let radio_button_normalize_partial = gui_data.window_rules.normalize.radio_button_normalize_partial.clone(); + let check_button_normalize_everything = gui_data.window_rules.normalize.check_button_normalize_everything.clone(); + let check_button_normalize_partial = gui_data.window_rules.normalize.check_button_normalize_partial.clone(); - radio_button_normalize_everything.connect_clicked(move |_e| { + check_button_normalize_everything.connect_clicked(move |_e| { update_examples(&window_rules, None); }); let window_rules = gui_data.window_rules.clone(); - radio_button_normalize_partial.connect_clicked(move |_e| { + check_button_normalize_partial.connect_clicked(move |_e| { update_examples(&window_rules, None); }); } diff --git a/src/connect_rule_window_purge_click.rs b/src/connect_rule_window_purge_click.rs index 05472b0..8f4e381 100644 --- a/src/connect_rule_window_purge_click.rs +++ b/src/connect_rule_window_purge_click.rs @@ -5,19 +5,19 @@ use gtk::prelude::*; pub fn connect_rule_window_purge_click(gui_data: &GuiData) { let window_rules = gui_data.window_rules.clone(); - let radio_button_purge_both = gui_data.window_rules.purge.radio_button_purge_both.clone(); - let radio_button_purge_name = gui_data.window_rules.purge.radio_button_purge_name.clone(); - let radio_button_purge_extension = gui_data.window_rules.purge.radio_button_purge_extension.clone(); + let check_button_purge_both = gui_data.window_rules.purge.check_button_purge_both.clone(); + let check_button_purge_name = gui_data.window_rules.purge.check_button_purge_name.clone(); + let check_button_purge_extension = gui_data.window_rules.purge.check_button_purge_extension.clone(); - radio_button_purge_extension.connect_clicked(move |_e| { + check_button_purge_extension.connect_clicked(move |_e| { update_examples(&window_rules, None); }); let window_rules = gui_data.window_rules.clone(); - radio_button_purge_name.connect_clicked(move |_e| { + check_button_purge_name.connect_clicked(move |_e| { update_examples(&window_rules, None); }); let window_rules = gui_data.window_rules.clone(); - radio_button_purge_both.connect_clicked(move |_e| { + check_button_purge_both.connect_clicked(move |_e| { update_examples(&window_rules, None); }); } diff --git a/src/connect_rule_window_replace_click.rs b/src/connect_rule_window_replace_click.rs index db22241..1dac17b 100644 --- a/src/connect_rule_window_replace_click.rs +++ b/src/connect_rule_window_replace_click.rs @@ -6,34 +6,34 @@ use gtk::prelude::*; pub fn connect_rule_window_replace_click(gui_data: &GuiData) { let window_rules = gui_data.window_rules.clone(); - let radio_button_replace_name = gui_data.window_rules.replace.radio_button_replace_name.clone(); - let radio_button_replace_extension = gui_data.window_rules.replace.radio_button_replace_extension.clone(); - let radio_button_replace_both = gui_data.window_rules.replace.radio_button_replace_both.clone(); + let check_button_replace_name = gui_data.window_rules.replace.check_button_replace_name.clone(); + let check_button_replace_extension = gui_data.window_rules.replace.check_button_replace_extension.clone(); + let check_button_replace_both = gui_data.window_rules.replace.check_button_replace_both.clone(); - let radio_button_replace_case_insensitive = gui_data.window_rules.replace.radio_button_replace_case_insensitive.clone(); - let radio_button_replace_case_sensitive = gui_data.window_rules.replace.radio_button_replace_case_sensitive.clone(); + let check_button_replace_case_insensitive = gui_data.window_rules.replace.check_button_replace_case_insensitive.clone(); + let check_button_replace_case_sensitive = gui_data.window_rules.replace.check_button_replace_case_sensitive.clone(); let entry_replace_text_to_change = gui_data.window_rules.replace.entry_replace_text_to_change.clone(); let entry_replace_text_to_remove = gui_data.window_rules.replace.entry_replace_text_to_remove.clone(); - radio_button_replace_name.connect_clicked(move |_e| { + check_button_replace_name.connect_clicked(move |_e| { update_examples(&window_rules, None); }); let window_rules = gui_data.window_rules.clone(); - radio_button_replace_extension.connect_clicked(move |_e| { + check_button_replace_extension.connect_clicked(move |_e| { update_examples(&window_rules, None); }); let window_rules = gui_data.window_rules.clone(); - radio_button_replace_both.connect_clicked(move |_e| { + check_button_replace_both.connect_clicked(move |_e| { update_examples(&window_rules, None); }); let window_rules = gui_data.window_rules.clone(); - radio_button_replace_case_sensitive.connect_clicked(move |_e| { + check_button_replace_case_sensitive.connect_clicked(move |_e| { update_examples(&window_rules, None); }); let window_rules = gui_data.window_rules.clone(); - radio_button_replace_case_insensitive.connect_clicked(move |_e| { + check_button_replace_case_insensitive.connect_clicked(move |_e| { update_examples(&window_rules, None); }); diff --git a/src/connect_rule_window_size_letters_click.rs b/src/connect_rule_window_size_letters_click.rs index 479a31e..4699917 100644 --- a/src/connect_rule_window_size_letters_click.rs +++ b/src/connect_rule_window_size_letters_click.rs @@ -4,29 +4,29 @@ use gtk::prelude::*; pub fn connect_rule_window_size_letters_click(gui_data: &GuiData) { let window_rules = gui_data.window_rules.clone(); - let radio_button_letters_usage_both = gui_data.window_rules.size_letters.radio_button_letters_usage_both.clone(); - let radio_button_letters_usage_name = gui_data.window_rules.size_letters.radio_button_letters_usage_name.clone(); - let radio_button_letters_usage_extension = gui_data.window_rules.size_letters.radio_button_letters_usage_extension.clone(); - let radio_button_letters_type_lowercase = gui_data.window_rules.size_letters.radio_button_letters_type_lowercase.clone(); - let radio_button_letters_type_uppercase = gui_data.window_rules.size_letters.radio_button_letters_type_uppercase.clone(); + let check_button_letters_usage_both = gui_data.window_rules.size_letters.check_button_letters_usage_both.clone(); + let check_button_letters_usage_name = gui_data.window_rules.size_letters.check_button_letters_usage_name.clone(); + let check_button_letters_usage_extension = gui_data.window_rules.size_letters.check_button_letters_usage_extension.clone(); + let check_button_letters_type_lowercase = gui_data.window_rules.size_letters.check_button_letters_type_lowercase.clone(); + let check_button_letters_type_uppercase = gui_data.window_rules.size_letters.check_button_letters_type_uppercase.clone(); - radio_button_letters_type_lowercase.connect_clicked(move |_e| { + check_button_letters_type_lowercase.connect_clicked(move |_e| { update_examples(&window_rules, None); }); let window_rules = gui_data.window_rules.clone(); - radio_button_letters_type_uppercase.connect_clicked(move |_e| { + check_button_letters_type_uppercase.connect_clicked(move |_e| { update_examples(&window_rules, None); }); let window_rules = gui_data.window_rules.clone(); - radio_button_letters_usage_extension.connect_clicked(move |_e| { + check_button_letters_usage_extension.connect_clicked(move |_e| { update_examples(&window_rules, None); }); let window_rules = gui_data.window_rules.clone(); - radio_button_letters_usage_name.connect_clicked(move |_e| { + check_button_letters_usage_name.connect_clicked(move |_e| { update_examples(&window_rules, None); }); let window_rules = gui_data.window_rules.clone(); - radio_button_letters_usage_both.connect_clicked(move |_e| { + check_button_letters_usage_both.connect_clicked(move |_e| { update_examples(&window_rules, None); }); } diff --git a/src/connect_rule_window_trim_click.rs b/src/connect_rule_window_trim_click.rs index 7a24435..50146a4 100644 --- a/src/connect_rule_window_trim_click.rs +++ b/src/connect_rule_window_trim_click.rs @@ -7,36 +7,36 @@ use gtk::EditableSignals; pub fn connect_rule_window_trim_click(gui_data: &GuiData) { let window_rules = gui_data.window_rules.clone(); - let radio_button_trim_name_start = gui_data.window_rules.trim.radio_button_trim_name_start.clone(); - let radio_button_trim_name_end = gui_data.window_rules.trim.radio_button_trim_name_end.clone(); - let radio_button_trim_extension_start = gui_data.window_rules.trim.radio_button_trim_extension_start.clone(); - let radio_button_trim_extension_end = gui_data.window_rules.trim.radio_button_trim_extension_end.clone(); - let radio_button_trim_case_insensitive = gui_data.window_rules.trim.radio_button_trim_case_insensitive.clone(); - let radio_button_trim_case_sensitive = gui_data.window_rules.trim.radio_button_trim_case_sensitive.clone(); + let check_button_trim_name_start = gui_data.window_rules.trim.check_button_trim_name_start.clone(); + let check_button_trim_name_end = gui_data.window_rules.trim.check_button_trim_name_end.clone(); + let check_button_trim_extension_start = gui_data.window_rules.trim.check_button_trim_extension_start.clone(); + let check_button_trim_extension_end = gui_data.window_rules.trim.check_button_trim_extension_end.clone(); + let check_button_trim_case_insensitive = gui_data.window_rules.trim.check_button_trim_case_insensitive.clone(); + let check_button_trim_case_sensitive = gui_data.window_rules.trim.check_button_trim_case_sensitive.clone(); let entry_add_text_text_to_trim = gui_data.window_rules.trim.entry_add_text_text_to_trim.clone(); - radio_button_trim_name_start.connect_clicked(move |_e| { + check_button_trim_name_start.connect_clicked(move |_e| { update_examples(&window_rules, None); }); let window_rules = gui_data.window_rules.clone(); - radio_button_trim_name_end.connect_clicked(move |_e| { + check_button_trim_name_end.connect_clicked(move |_e| { update_examples(&window_rules, None); }); let window_rules = gui_data.window_rules.clone(); - radio_button_trim_extension_start.connect_clicked(move |_e| { + check_button_trim_extension_start.connect_clicked(move |_e| { update_examples(&window_rules, None); }); let window_rules = gui_data.window_rules.clone(); - radio_button_trim_extension_end.connect_clicked(move |_e| { + check_button_trim_extension_end.connect_clicked(move |_e| { update_examples(&window_rules, None); }); let window_rules = gui_data.window_rules.clone(); - radio_button_trim_case_insensitive.connect_clicked(move |_e| { + check_button_trim_case_insensitive.connect_clicked(move |_e| { update_examples(&window_rules, None); }); let window_rules = gui_data.window_rules.clone(); - radio_button_trim_case_sensitive.connect_clicked(move |_e| { + check_button_trim_case_sensitive.connect_clicked(move |_e| { update_examples(&window_rules, None); }); let window_rules = gui_data.window_rules.clone(); diff --git a/src/connect_select_records.rs b/src/connect_select_records.rs index cb59970..d988c1e 100644 --- a/src/connect_select_records.rs +++ b/src/connect_select_records.rs @@ -147,11 +147,11 @@ pub fn connect_select_custom(gui_data: &GuiData) { let label: gtk::Label = gtk::Label::new(Some("Usage: */folder-nr*/* or name-version-*.txt")); let radio_path = gtk::CheckButton::with_label("Path"); - let radio_current_name = gtk::CheckButton::with_label_from_widget(&radio_path, "Current Name"); - let radio_future_name = gtk::CheckButton::with_label_from_widget(&radio_path, "Future Name"); - let radio_current_name_path = gtk::CheckButton::with_label_from_widget(&radio_path, "Path + Current Name"); - let radio_future_name_path = gtk::CheckButton::with_label_from_widget(&radio_path, "Path + Future Name"); - let radio_is_dir = gtk::CheckButton::with_label_from_widget(&radio_path, "Directory/File"); + let radio_current_name = gtk::CheckButton::with_label("Current Name"); + let radio_future_name = gtk::CheckButton::with_label("Future Name"); + let radio_current_name_path = gtk::CheckButton::with_label("Path + Current Name"); + let radio_future_name_path = gtk::CheckButton::with_label("Path + Future Name"); + let radio_is_dir = gtk::CheckButton::with_label("Directory/File"); let entry_path = gtk::Entry::new(); let entry_current_name = gtk::Entry::new(); @@ -320,11 +320,11 @@ pub fn connect_unselect_custom(gui_data: &GuiData) { let label: gtk::Label = gtk::Label::new(Some("Usage: */folder-nr*/* or name-version-*.txt")); let radio_path = gtk::CheckButton::with_label("Path"); - let radio_current_name = gtk::CheckButton::with_label_from_widget(&radio_path, "Current Name"); - let radio_future_name = gtk::CheckButton::with_label_from_widget(&radio_path, "Future Name"); - let radio_current_name_path = gtk::CheckButton::with_label_from_widget(&radio_path, "Path + Current Name"); - let radio_future_name_path = gtk::CheckButton::with_label_from_widget(&radio_path, "Path + Future Name"); - let radio_is_dir = gtk::CheckButton::with_label_from_widget(&radio_path, "Directory/File"); + let radio_current_name = gtk::CheckButton::with_label("Current Name"); + let radio_future_name = gtk::CheckButton::with_label("Future Name"); + let radio_current_name_path = gtk::CheckButton::with_label("Path + Current Name"); + let radio_future_name_path = gtk::CheckButton::with_label("Path + Future Name"); + let radio_is_dir = gtk::CheckButton::with_label("Directory/File"); let entry_path = gtk::Entry::new(); let entry_current_name = gtk::Entry::new(); diff --git a/src/help_function.rs b/src/help_function.rs index 92690c2..3352729 100644 --- a/src/help_function.rs +++ b/src/help_function.rs @@ -226,46 +226,46 @@ pub fn regex_check(expression: &str, directory: impl AsRef) -> bool { pub fn read_rule_from_window(window_rules: &GuiDialogRules, notebook_number: Option) -> SingleRule { let notebook_choose_rule = window_rules.notebook_choose_rule.clone(); - let radio_button_letters_type_uppercase = window_rules.size_letters.radio_button_letters_type_uppercase.clone(); - let radio_button_letters_type_lowercase = window_rules.size_letters.radio_button_letters_type_lowercase.clone(); - let radio_button_letters_usage_name = window_rules.size_letters.radio_button_letters_usage_name.clone(); - let radio_button_letters_usage_extension = window_rules.size_letters.radio_button_letters_usage_extension.clone(); - let radio_button_letters_usage_both = window_rules.size_letters.radio_button_letters_usage_both.clone(); - - let radio_button_purge_name = window_rules.purge.radio_button_purge_name.clone(); - let radio_button_purge_extension = window_rules.purge.radio_button_purge_extension.clone(); - let radio_button_purge_both = window_rules.purge.radio_button_purge_both.clone(); - - let radio_button_add_text_after_name = window_rules.add_text.radio_button_add_text_after_name.clone(); - let radio_button_add_text_before_name = window_rules.add_text.radio_button_add_text_before_name.clone(); + let check_button_letters_type_uppercase = window_rules.size_letters.check_button_letters_type_uppercase.clone(); + let check_button_letters_type_lowercase = window_rules.size_letters.check_button_letters_type_lowercase.clone(); + let check_button_letters_usage_name = window_rules.size_letters.check_button_letters_usage_name.clone(); + let check_button_letters_usage_extension = window_rules.size_letters.check_button_letters_usage_extension.clone(); + let check_button_letters_usage_both = window_rules.size_letters.check_button_letters_usage_both.clone(); + + let check_button_purge_name = window_rules.purge.check_button_purge_name.clone(); + let check_button_purge_extension = window_rules.purge.check_button_purge_extension.clone(); + let check_button_purge_both = window_rules.purge.check_button_purge_both.clone(); + + let check_button_add_text_after_name = window_rules.add_text.check_button_add_text_after_name.clone(); + let check_button_add_text_before_name = window_rules.add_text.check_button_add_text_before_name.clone(); let entry_add_text_text_to_add = window_rules.add_text.entry_add_text_text_to_add.clone(); let entry_add_text_text_to_trim = window_rules.trim.entry_add_text_text_to_trim.clone(); - let radio_button_trim_name_start = window_rules.trim.radio_button_trim_name_start.clone(); - let radio_button_trim_name_end = window_rules.trim.radio_button_trim_name_end.clone(); - let radio_button_trim_extension_start = window_rules.trim.radio_button_trim_extension_start.clone(); - let radio_button_trim_extension_end = window_rules.trim.radio_button_trim_extension_end.clone(); - let radio_button_trim_case_insensitive = window_rules.trim.radio_button_trim_case_insensitive.clone(); - let radio_button_trim_case_sensitive = window_rules.trim.radio_button_trim_case_sensitive.clone(); + let check_button_trim_name_start = window_rules.trim.check_button_trim_name_start.clone(); + let check_button_trim_name_end = window_rules.trim.check_button_trim_name_end.clone(); + let check_button_trim_extension_start = window_rules.trim.check_button_trim_extension_start.clone(); + let check_button_trim_extension_end = window_rules.trim.check_button_trim_extension_end.clone(); + let check_button_trim_case_insensitive = window_rules.trim.check_button_trim_case_insensitive.clone(); + let check_button_trim_case_sensitive = window_rules.trim.check_button_trim_case_sensitive.clone(); let entry_custom_text_to_change = window_rules.custom.entry_custom_text_to_change.clone(); - let radio_button_replace_extension = window_rules.replace.radio_button_replace_extension.clone(); - let radio_button_replace_name = window_rules.replace.radio_button_replace_name.clone(); - let radio_button_replace_both = window_rules.replace.radio_button_replace_both.clone(); - let radio_button_replace_case_insensitive = window_rules.replace.radio_button_replace_case_insensitive.clone(); - let radio_button_replace_case_sensitive = window_rules.replace.radio_button_replace_case_sensitive.clone(); + let check_button_replace_extension = window_rules.replace.check_button_replace_extension.clone(); + let check_button_replace_name = window_rules.replace.check_button_replace_name.clone(); + let check_button_replace_both = window_rules.replace.check_button_replace_both.clone(); + let check_button_replace_case_insensitive = window_rules.replace.check_button_replace_case_insensitive.clone(); + let check_button_replace_case_sensitive = window_rules.replace.check_button_replace_case_sensitive.clone(); let entry_replace_text_to_remove = window_rules.replace.entry_replace_text_to_remove.clone(); let entry_replace_text_to_change = window_rules.replace.entry_replace_text_to_change.clone(); - let radio_button_add_number_before_name = window_rules.add_number.radio_button_add_number_before_name.clone(); - let radio_button_add_number_after_name = window_rules.add_number.radio_button_add_number_after_name.clone(); + let check_button_add_number_before_name = window_rules.add_number.check_button_add_number_before_name.clone(); + let check_button_add_number_after_name = window_rules.add_number.check_button_add_number_after_name.clone(); let entry_add_number_start_number = window_rules.add_number.entry_add_number_start_number.clone(); let entry_add_number_step = window_rules.add_number.entry_add_number_step.clone(); let entry_add_number_zeros = window_rules.add_number.entry_add_number_zeros.clone(); - let radio_button_normalize_everything = window_rules.normalize.radio_button_normalize_everything.clone(); - let radio_button_normalize_partial = window_rules.normalize.radio_button_normalize_partial.clone(); + let check_button_normalize_everything = window_rules.normalize.check_button_normalize_everything.clone(); + let check_button_normalize_partial = window_rules.normalize.check_button_normalize_partial.clone(); let rule_type: RuleType; let rule_place: RulePlace; @@ -283,18 +283,18 @@ pub fn read_rule_from_window(window_rules: &GuiDialogRules, notebook_number: Opt rule_type = RuleType::CaseSize; rule_data.to_lowercase = true; - if radio_button_letters_type_uppercase.is_active() { + if check_button_letters_type_uppercase.is_active() { rule_data.to_lowercase = false; - } else if radio_button_letters_type_lowercase.is_active() { + } else if check_button_letters_type_lowercase.is_active() { rule_data.to_lowercase = true; } else { panic!("Button not available"); } - if radio_button_letters_usage_extension.is_active() { + if check_button_letters_usage_extension.is_active() { rule_place = RulePlace::Extension; - } else if radio_button_letters_usage_both.is_active() { + } else if check_button_letters_usage_both.is_active() { rule_place = RulePlace::ExtensionAndName; - } else if radio_button_letters_usage_name.is_active() { + } else if check_button_letters_usage_name.is_active() { rule_place = RulePlace::Name; } else { panic!("Invalid Button Clicked"); @@ -306,11 +306,11 @@ pub fn read_rule_from_window(window_rules: &GuiDialogRules, notebook_number: Opt } NotebookEnum::Purge => { rule_type = RuleType::Purge; - if radio_button_purge_extension.is_active() { + if check_button_purge_extension.is_active() { rule_place = RulePlace::Extension; - } else if radio_button_purge_both.is_active() { + } else if check_button_purge_both.is_active() { rule_place = RulePlace::ExtensionAndName; - } else if radio_button_purge_name.is_active() { + } else if check_button_purge_name.is_active() { rule_place = RulePlace::Name; } else { panic!("Invalid Button Clicked"); @@ -319,9 +319,9 @@ pub fn read_rule_from_window(window_rules: &GuiDialogRules, notebook_number: Opt } NotebookEnum::AddText => { rule_type = RuleType::AddText; - if radio_button_add_text_before_name.is_active() { + if check_button_add_text_before_name.is_active() { rule_place = RulePlace::BeforeName; - } else if radio_button_add_text_after_name.is_active() { + } else if check_button_add_text_after_name.is_active() { rule_place = RulePlace::AfterName; } else { panic!("Invalid Button Clicked"); @@ -332,9 +332,9 @@ pub fn read_rule_from_window(window_rules: &GuiDialogRules, notebook_number: Opt NotebookEnum::Trim => { rule_type = RuleType::Trim; - if radio_button_trim_case_sensitive.is_active() { + if check_button_trim_case_sensitive.is_active() { rule_data.case_sensitive = true; - } else if radio_button_trim_case_insensitive.is_active() { + } else if check_button_trim_case_insensitive.is_active() { rule_data.case_sensitive = false; } else { panic!("Invalid Button Clicked"); @@ -342,16 +342,16 @@ pub fn read_rule_from_window(window_rules: &GuiDialogRules, notebook_number: Opt let where_remove; - if radio_button_trim_name_start.is_active() { + if check_button_trim_name_start.is_active() { rule_place = RulePlace::FromNameStart; where_remove = "start"; - } else if radio_button_trim_name_end.is_active() { + } else if check_button_trim_name_end.is_active() { rule_place = RulePlace::FromNameEndReverse; where_remove = "end of name"; - } else if radio_button_trim_extension_start.is_active() { + } else if check_button_trim_extension_start.is_active() { rule_place = RulePlace::FromExtensionStart; where_remove = "extension"; - } else if radio_button_trim_extension_end.is_active() { + } else if check_button_trim_extension_end.is_active() { rule_place = RulePlace::FromExtensionEndReverse; where_remove = "end of extension"; } else { @@ -370,19 +370,19 @@ pub fn read_rule_from_window(window_rules: &GuiDialogRules, notebook_number: Opt NotebookEnum::Replace => { rule_type = RuleType::Replace; - if radio_button_replace_both.is_active() { + if check_button_replace_both.is_active() { rule_place = RulePlace::ExtensionAndName; - } else if radio_button_replace_name.is_active() { + } else if check_button_replace_name.is_active() { rule_place = RulePlace::Name; - } else if radio_button_replace_extension.is_active() { + } else if check_button_replace_extension.is_active() { rule_place = RulePlace::Extension; } else { panic!("Invalid Rule Type for purge rule"); } - if radio_button_replace_case_sensitive.is_active() { + if check_button_replace_case_sensitive.is_active() { rule_data.case_sensitive = true; - } else if radio_button_replace_case_insensitive.is_active() { + } else if check_button_replace_case_insensitive.is_active() { rule_data.case_sensitive = false; } else { panic!("Invalid Button Clicked"); @@ -395,9 +395,9 @@ pub fn read_rule_from_window(window_rules: &GuiDialogRules, notebook_number: Opt NotebookEnum::AddNumber => { rule_type = RuleType::AddNumber; - if radio_button_add_number_before_name.is_active() { + if check_button_add_number_before_name.is_active() { rule_place = RulePlace::BeforeName; - } else if radio_button_add_number_after_name.is_active() { + } else if check_button_add_number_after_name.is_active() { rule_place = RulePlace::AfterName; } else { panic!("Invalid Rule Type for purge rule"); @@ -418,9 +418,9 @@ pub fn read_rule_from_window(window_rules: &GuiDialogRules, notebook_number: Opt rule_type = RuleType::Normalize; rule_place = RulePlace::ExtensionAndName; - if radio_button_normalize_everything.is_active() { + if check_button_normalize_everything.is_active() { rule_data.full_normalize = true; - } else if radio_button_normalize_partial.is_active() { + } else if check_button_normalize_partial.is_active() { rule_data.full_normalize = false; } else { panic!(); diff --git a/ui/Szyszka.cmb b/ui/Szyszka.cmb index 07418ba..4e938e8 100644 --- a/ui/Szyszka.cmb +++ b/ui/Szyszka.cmb @@ -38,29 +38,29 @@ (3,11,"GtkBox",None,10,None,None,None,None), (3,12,"GtkLabel",None,11,None,None,None,None), (3,13,"GtkBox",None,11,None,None,None,1), - (3,14,"GtkRadioButton","radio_button_letters_type_uppercase",13,None,None,None,None), - (3,15,"GtkRadioButton","radio_button_letters_type_lowercase",13,None,None,None,1), + (3,14,"GtkCheckButton","check_button_letters_type_uppercase",13,None,None,None,None), + (3,15,"GtkCheckButton","check_button_letters_type_lowercase",13,None,None,None,1), (3,16,"GtkBox",None,10,None,None,None,1), (3,17,"GtkLabel",None,16,None,None,None,None), (3,18,"GtkBox",None,16,None,None,None,1), - (3,19,"GtkRadioButton","radio_button_letters_usage_name",18,None,None,None,None), - (3,20,"GtkRadioButton","radio_button_letters_usage_extension",18,None,None,None,1), - (3,21,"GtkRadioButton","radio_button_letters_usage_both",18,None,None,None,2), + (3,19,"GtkCheckButton","check_button_letters_usage_name",18,None,None,None,None), + (3,20,"GtkCheckButton","check_button_letters_usage_extension",18,None,None,None,1), + (3,21,"GtkCheckButton","check_button_letters_usage_both",18,None,None,None,2), (3,22,"GtkLabel",None,5,None,"tab",None,1), (3,23,"GtkBox",None,5,None,None,None,2), (3,24,"GtkBox",None,23,None,None,None,1), (3,25,"GtkLabel",None,24,None,None,None,None), (3,26,"GtkBox",None,24,None,None,None,1), - (3,27,"GtkRadioButton","radio_button_purge_name",26,None,None,None,None), - (3,28,"GtkRadioButton","radio_button_purge_extension",26,None,None,None,1), - (3,29,"GtkRadioButton","radio_button_purge_both",26,None,None,None,2), + (3,27,"GtkCheckButton","check_button_purge_name",26,None,None,None,None), + (3,28,"GtkCheckButton","check_button_purge_extension",26,None,None,None,1), + (3,29,"GtkCheckButton","check_button_purge_both",26,None,None,None,2), (3,30,"GtkLabel",None,5,None,"tab",None,2), (3,31,"GtkBox",None,5,None,None,None,3), (3,32,"GtkBox",None,31,None,None,None,None), (3,33,"GtkLabel",None,32,None,None,None,None), (3,34,"GtkBox",None,32,None,None,None,1), - (3,35,"GtkRadioButton","radio_button_add_number_before_name",34,None,None,None,None), - (3,36,"GtkRadioButton","radio_button_add_number_after_name",34,None,None,None,1), + (3,35,"GtkCheckButton","check_button_add_number_before_name",34,None,None,None,None), + (3,36,"GtkCheckButton","check_button_add_number_after_name",34,None,None,None,1), (3,37,"GtkBox",None,31,None,None,None,1), (3,38,"GtkLabel",None,37,None,None,None,None), (3,39,"GtkGrid",None,37,None,None," n-columns=3 n-rows=3 ",1), @@ -75,8 +75,8 @@ (3,48,"GtkBox",None,47,None,None,None,None), (3,49,"GtkLabel",None,48,None,None,None,None), (3,50,"GtkBox",None,48,None,None,None,1), - (3,51,"GtkRadioButton","radio_button_add_text_before_name",50,None,None,None,None), - (3,52,"GtkRadioButton","radio_button_add_text_after_name",50,None,None,None,1), + (3,51,"GtkCheckButton","check_button_add_text_before_name",50,None,None,None,None), + (3,52,"GtkCheckButton","check_button_add_text_after_name",50,None,None,None,1), (3,53,"GtkBox",None,47,None,None,None,1), (3,54,"GtkLabel",None,53,None,None,None,None), (3,55,"GtkEntry","entry_add_text_text_to_add",53,None,None,None,1), @@ -85,14 +85,14 @@ (3,58,"GtkBox",None,57,None,None,None,1), (3,59,"GtkLabel",None,58,None,None,None,None), (3,60,"GtkBox",None,58,None,None,None,1), - (3,61,"GtkRadioButton","radio_button_replace_name",60,None,None,None,None), - (3,62,"GtkRadioButton","radio_button_replace_extension",60,None,None,None,1), - (3,63,"GtkRadioButton","radio_button_replace_both",60,None,None,None,2), + (3,61,"GtkCheckButton","check_button_replace_name",60,None,None,None,None), + (3,62,"GtkCheckButton","check_button_replace_extension",60,None,None,None,1), + (3,63,"GtkCheckButton","check_button_replace_both",60,None,None,None,2), (3,64,"GtkBox",None,58,None,None,None,2), (3,65,"GtkLabel",None,64,None,None,None,None), (3,66,"GtkBox",None,64,None,None,None,1), - (3,67,"GtkRadioButton","radio_button_replace_case_sensitive",66,None,None,None,None), - (3,68,"GtkRadioButton","radio_button_replace_case_insensitive",66,None,None,None,1), + (3,67,"GtkCheckButton","check_button_replace_case_sensitive",66,None,None,None,None), + (3,68,"GtkCheckButton","check_button_replace_case_insensitive",66,None,None,None,1), (3,69,"GtkGrid",None,58,None,None," n-columns=3 n-rows=3 ",3), (3,70,"GtkLabel",None,69,None,None,None,None), (3,71,"GtkEntry","entry_replace_text_to_change",69,None,None,None,1), @@ -104,15 +104,15 @@ (3,77,"GtkBox",None,76,None,None,None,None), (3,78,"GtkLabel",None,77,None,None,None,None), (3,79,"GtkBox",None,77,None,None,None,1), - (3,80,"GtkRadioButton","radio_button_trim_name_start",79,None,None,None,None), - (3,81,"GtkRadioButton","radio_button_trim_name_end",79,None,None,None,1), - (3,82,"GtkRadioButton","radio_button_trim_extension_start",79,None,None,None,2), - (3,83,"GtkRadioButton","radio_button_trim_extension_end",79,None,None,None,3), + (3,80,"GtkCheckButton","check_button_trim_name_start",79,None,None,None,None), + (3,81,"GtkCheckButton","check_button_trim_name_end",79,None,None,None,1), + (3,82,"GtkCheckButton","check_button_trim_extension_start",79,None,None,None,2), + (3,83,"GtkCheckButton","check_button_trim_extension_end",79,None,None,None,3), (3,84,"GtkBox",None,76,None,None,None,1), (3,85,"GtkLabel",None,84,None,None,None,None), (3,86,"GtkBox",None,84,None,None,None,1), - (3,87,"GtkRadioButton","radio_button_trim_case_sensitive",86,None,None,None,None), - (3,88,"GtkRadioButton","radio_button_trim_case_insensitive",86,None,None,None,1), + (3,87,"GtkCheckButton","check_button_trim_case_sensitive",86,None,None,None,None), + (3,88,"GtkCheckButton","check_button_trim_case_insensitive",86,None,None,None,1), (3,89,"GtkBox",None,76,None,None,None,2), (3,90,"GtkLabel",None,89,None,None,None,None), (3,91,"GtkEntry","entry_add_text_text_to_trim",89,None,None,None,1), @@ -121,8 +121,8 @@ (3,94,"GtkLabel",None,93,None,None,None,None), (3,95,"GtkLabel",None,93,None,None,None,1), (3,96,"GtkBox",None,93,None,None,None,2), - (3,97,"GtkRadioButton","radio_button_normalize_everything",96,None,None,None,None), - (3,98,"GtkRadioButton","radio_button_normalize_partial",96,None,None,None,1), + (3,97,"GtkCheckButton","check_button_normalize_everything",96,None,None,None,None), + (3,98,"GtkCheckButton","check_button_normalize_partial",96,None,None,None,1), (3,99,"GtkLabel",None,5,None,"tab",None,7), (3,100,"GtkBox",None,4,None,None,None,1), (3,101,"GtkLabel",None,100,None,None,None,None), @@ -288,7 +288,7 @@ (3,14,"GtkWidget","receives-default","False",None,None,None,None,None), (3,14,"GtkWidget","visible","True",None,None,None,None,None), (3,15,"GtkButton","label","Lowercase","yes",None,None,None,None), - (3,15,"GtkRadioButton","group","14",None,None,None,None,None), + (3,15,"GtkCheckButton","group","14",None,None,None,None,None), (3,15,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), (3,15,"GtkWidget","can-focus","True",None,None,None,None,None), (3,15,"GtkWidget","receives-default","False",None,None,None,None,None), @@ -308,13 +308,13 @@ (3,19,"GtkWidget","receives-default","False",None,None,None,None,None), (3,19,"GtkWidget","visible","True",None,None,None,None,None), (3,20,"GtkButton","label","Only Extension","yes",None,None,None,None), - (3,20,"GtkRadioButton","group","19",None,None,None,None,None), + (3,20,"GtkCheckButton","group","19",None,None,None,None,None), (3,20,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), (3,20,"GtkWidget","can-focus","True",None,None,None,None,None), (3,20,"GtkWidget","receives-default","False",None,None,None,None,None), (3,20,"GtkWidget","visible","True",None,None,None,None,None), (3,21,"GtkButton","label","Both","yes",None,None,None,None), - (3,21,"GtkRadioButton","group","19",None,None,None,None,None), + (3,21,"GtkCheckButton","group","19",None,None,None,None,None), (3,21,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), (3,21,"GtkWidget","can-focus","True",None,None,None,None,None), (3,21,"GtkWidget","receives-default","False",None,None,None,None,None), @@ -344,13 +344,13 @@ (3,27,"GtkWidget","receives-default","False",None,None,None,None,None), (3,27,"GtkWidget","visible","True",None,None,None,None,None), (3,28,"GtkButton","label","Only Extension","yes",None,None,None,None), - (3,28,"GtkRadioButton","group","27",None,None,None,None,None), + (3,28,"GtkCheckButton","group","27",None,None,None,None,None), (3,28,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), (3,28,"GtkWidget","can-focus","True",None,None,None,None,None), (3,28,"GtkWidget","receives-default","False",None,None,None,None,None), (3,28,"GtkWidget","visible","True",None,None,None,None,None), (3,29,"GtkButton","label","Both","yes",None,None,None,None), - (3,29,"GtkRadioButton","group","27",None,None,None,None,None), + (3,29,"GtkCheckButton","group","27",None,None,None,None,None), (3,29,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), (3,29,"GtkWidget","can-focus","True",None,None,None,None,None), (3,29,"GtkWidget","receives-default","False",None,None,None,None,None), @@ -380,7 +380,7 @@ (3,35,"GtkWidget","receives-default","False",None,None,None,None,None), (3,35,"GtkWidget","visible","True",None,None,None,None,None), (3,36,"GtkButton","label","After Name","yes",None,None,None,None), - (3,36,"GtkRadioButton","group","35",None,None,None,None,None), + (3,36,"GtkCheckButton","group","35",None,None,None,None,None), (3,36,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), (3,36,"GtkWidget","can-focus","True",None,None,None,None,None), (3,36,"GtkWidget","receives-default","False",None,None,None,None,None), @@ -443,7 +443,7 @@ (3,51,"GtkWidget","receives-default","False",None,None,None,None,None), (3,51,"GtkWidget","visible","True",None,None,None,None,None), (3,52,"GtkButton","label","After Name","yes",None,None,None,None), - (3,52,"GtkRadioButton","group","51",None,None,None,None,None), + (3,52,"GtkCheckButton","group","51",None,None,None,None,None), (3,52,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), (3,52,"GtkWidget","can-focus","True",None,None,None,None,None), (3,52,"GtkWidget","receives-default","False",None,None,None,None,None), @@ -482,13 +482,13 @@ (3,61,"GtkWidget","receives-default","False",None,None,None,None,None), (3,61,"GtkWidget","visible","True",None,None,None,None,None), (3,62,"GtkButton","label","Only Extension","yes",None,None,None,None), - (3,62,"GtkRadioButton","group","61",None,None,None,None,None), + (3,62,"GtkCheckButton","group","61",None,None,None,None,None), (3,62,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), (3,62,"GtkWidget","can-focus","True",None,None,None,None,None), (3,62,"GtkWidget","receives-default","False",None,None,None,None,None), (3,62,"GtkWidget","visible","True",None,None,None,None,None), (3,63,"GtkButton","label","Both","yes",None,None,None,None), - (3,63,"GtkRadioButton","group","61",None,None,None,None,None), + (3,63,"GtkCheckButton","group","61",None,None,None,None,None), (3,63,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), (3,63,"GtkWidget","can-focus","True",None,None,None,None,None), (3,63,"GtkWidget","receives-default","False",None,None,None,None,None), @@ -508,7 +508,7 @@ (3,67,"GtkWidget","receives-default","False",None,None,None,None,None), (3,67,"GtkWidget","visible","True",None,None,None,None,None), (3,68,"GtkButton","label","Case Insensitive","yes",None,None,None,None), - (3,68,"GtkRadioButton","group","67",None,None,None,None,None), + (3,68,"GtkCheckButton","group","67",None,None,None,None,None), (3,68,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), (3,68,"GtkWidget","can-focus","True",None,None,None,None,None), (3,68,"GtkWidget","receives-default","False",None,None,None,None,None), @@ -558,19 +558,19 @@ (3,80,"GtkWidget","receives-default","False",None,None,None,None,None), (3,80,"GtkWidget","visible","True",None,None,None,None,None), (3,81,"GtkButton","label","Name End","yes",None,None,None,None), - (3,81,"GtkRadioButton","group","80",None,None,None,None,None), + (3,81,"GtkCheckButton","group","80",None,None,None,None,None), (3,81,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), (3,81,"GtkWidget","can-focus","True",None,None,None,None,None), (3,81,"GtkWidget","receives-default","False",None,None,None,None,None), (3,81,"GtkWidget","visible","True",None,None,None,None,None), (3,82,"GtkButton","label","Extension Start","yes",None,None,None,None), - (3,82,"GtkRadioButton","group","80",None,None,None,None,None), + (3,82,"GtkCheckButton","group","80",None,None,None,None,None), (3,82,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), (3,82,"GtkWidget","can-focus","True",None,None,None,None,None), (3,82,"GtkWidget","receives-default","False",None,None,None,None,None), (3,82,"GtkWidget","visible","True",None,None,None,None,None), (3,83,"GtkButton","label","Extension End","yes",None,None,None,None), - (3,83,"GtkRadioButton","group","80",None,None,None,None,None), + (3,83,"GtkCheckButton","group","80",None,None,None,None,None), (3,83,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), (3,83,"GtkWidget","can-focus","True",None,None,None,None,None), (3,83,"GtkWidget","receives-default","False",None,None,None,None,None), @@ -590,7 +590,7 @@ (3,87,"GtkWidget","receives-default","False",None,None,None,None,None), (3,87,"GtkWidget","visible","True",None,None,None,None,None), (3,88,"GtkButton","label","Case Insensitive","yes",None,None,None,None), - (3,88,"GtkRadioButton","group","87",None,None,None,None,None), + (3,88,"GtkCheckButton","group","87",None,None,None,None,None), (3,88,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), (3,88,"GtkWidget","can-focus","True",None,None,None,None,None), (3,88,"GtkWidget","receives-default","False",None,None,None,None,None), @@ -629,7 +629,7 @@ (3,97,"GtkWidget","receives-default","False",None,None,None,None,None), (3,97,"GtkWidget","visible","True",None,None,None,None,None), (3,98,"GtkButton","label","Partial","yes",None,None,None,None), - (3,98,"GtkRadioButton","group","97",None,None,None,None,None), + (3,98,"GtkCheckButton","group","97",None,None,None,None,None), (3,98,"GtkToggleButton","active","True",None,None,None,None,None), (3,98,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), (3,98,"GtkWidget","can-focus","True",None,None,None,None,None), diff --git a/ui/rule_chooser.ui b/ui/rule_chooser.ui index 0ed1c6b..afbd22d 100644 --- a/ui/rule_chooser.ui +++ b/ui/rule_chooser.ui @@ -112,7 +112,7 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. False True - + True True True @@ -126,10 +126,9 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. - + True True - radio_button_letters_type_uppercase Lowercase False True @@ -172,7 +171,7 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. False True - + True True True @@ -186,10 +185,9 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. - + True True - radio_button_letters_usage_name Only Extension False True @@ -200,10 +198,9 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. - + True True - radio_button_letters_usage_name Both False True @@ -267,7 +264,7 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. False True - + True True True @@ -281,10 +278,9 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. - + True True - radio_button_purge_name Only Extension False True @@ -295,10 +291,9 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. - + True True - radio_button_purge_name Both False True @@ -362,7 +357,7 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. False True - + True True True @@ -376,10 +371,9 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. - + True True - radio_button_add_number_before_name After Name False True @@ -549,7 +543,7 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. False True - + True True True @@ -563,10 +557,9 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. - + True True - radio_button_add_text_before_name After Name False True @@ -663,7 +656,7 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. False True - + True True True @@ -677,10 +670,9 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. - + True True - radio_button_replace_name Only Extension False True @@ -691,10 +683,9 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. - + True True - radio_button_replace_name Both False True @@ -731,7 +722,7 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. False True - + True True True @@ -745,10 +736,9 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. - + True True - radio_button_replace_case_sensitive Case Insensitive False True @@ -888,7 +878,7 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. False True - + True True True @@ -902,10 +892,9 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. - + True True - radio_button_trim_name_start Name End False True @@ -916,10 +905,9 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. - + True True - radio_button_trim_name_start Extension Start False True @@ -930,10 +918,9 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. - + True True - radio_button_trim_name_start Extension End False True @@ -976,7 +963,7 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. False True - + True True True @@ -990,10 +977,9 @@ starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. - + True True - radio_button_trim_case_sensitive Case Insensitive False True @@ -1101,7 +1087,7 @@ Partial - works exacly same as option above, but allows False True - + True True True @@ -1116,11 +1102,10 @@ Partial - works exacly same as option above, but allows - + True True True - radio_button_normalize_everything center Partial False From 0510f4ba5f401ccb66bf1a272698ff816b26264e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mikrut?= Date: Fri, 27 May 2022 21:23:22 +0200 Subject: [PATCH 06/18] GTK4 --- Cargo.lock | 178 +++++++++++------- Cargo.toml | 8 +- src/class_dialog_rule_add_number.rs | 24 ++- src/class_dialog_rule_add_text.rs | 16 +- src/class_dialog_rule_custom.rs | 8 +- src/class_dialog_rule_normalize.rs | 14 +- src/class_dialog_rule_purge.rs | 16 +- src/class_dialog_rule_replace.rs | 32 ++-- src/class_dialog_rule_size_letters.rs | 24 ++- src/class_dialog_rule_trim.rs | 38 ++-- src/class_dialog_rules.rs | 24 ++- src/connect_add_files_button.rs | 8 +- src/connect_add_folders_button.rs | 46 ++--- src/connect_button_settings.rs | 13 +- src/connect_button_update_names.rs | 2 +- src/connect_change_language.rs | 2 +- src/connect_remove_files_button.rs | 2 +- src/connect_results_move.rs | 66 +++---- src/connect_rule_add.rs | 2 +- src/connect_rule_buttons_modify_rules.rs | 34 ++-- src/connect_rule_window_add_number_click.rs | 17 +- src/connect_rule_window_add_text_click.rs | 41 ++-- src/connect_rule_window_close.rs | 36 ++-- src/connect_rule_window_custom_click.rs | 3 +- src/connect_rule_window_normalize_click.rs | 27 +-- src/connect_rule_window_purge_click.rs | 37 ++-- src/connect_rule_window_replace_click.rs | 89 ++++----- src/connect_rule_window_size_letters_click.rs | 55 +++--- src/connect_rule_window_trim_click.rs | 82 ++++---- src/connect_select_records.rs | 108 +++++------ src/connect_start_renaming.rs | 71 ++++--- src/create_tree_view.rs | 40 ++-- src/example_fields.rs | 2 +- src/gui_data.rs | 13 +- src/gui_data_results.rs | 11 +- src/gui_data_rules_bottom_panel.rs | 34 ++-- src/gui_data_settings.rs | 16 +- src/gui_data_upper_buttons.rs | 64 +++---- src/gui_popover_select.rs | 32 ++-- src/help_function.rs | 30 +-- src/initialize_gui.rs | 43 ++--- src/main.rs | 15 +- src/update_records.rs | 12 +- 43 files changed, 742 insertions(+), 693 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 621f0c2..35f2d8f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -17,30 +17,6 @@ version = "1.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08f9b8508dccb7687a1d6c4ce66b2b0ecef467c94667de27d8d7fe1f8d2a9cdc" -[[package]] -name = "atk" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c3d816ce6f0e2909a96830d6911c2aff044370b1ef92d7f267b43bae5addedd" -dependencies = [ - "atk-sys", - "bitflags", - "glib", - "libc", -] - -[[package]] -name = "atk-sys" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58aeb089fb698e06db8089971c7ee317ab9644bade33383f63631437b03aafb6" -dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps", -] - [[package]] name = "autocfg" version = "1.1.0" @@ -269,22 +245,6 @@ dependencies = [ "slab", ] -[[package]] -name = "gdk" -version = "0.15.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6e05c1f572ab0e1f15be94217f0dc29088c248b14f792a5ff0af0d84bcda9e8" -dependencies = [ - "bitflags", - "cairo-rs", - "gdk-pixbuf", - "gdk-sys", - "gio", - "glib", - "libc", - "pango", -] - [[package]] name = "gdk-pixbuf" version = "0.15.11" @@ -312,10 +272,26 @@ dependencies = [ ] [[package]] -name = "gdk-sys" -version = "0.15.1" +name = "gdk4" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e7a08c1e8f06f4177fb7e51a777b8c1689f743a7bc11ea91d44d2226073a88" +checksum = "d4a2fc0bd03d59383fc10b71a8cb731a1fac2998732a36a0c03e9b1de1513218" +dependencies = [ + "bitflags", + "cairo-rs", + "gdk-pixbuf", + "gdk4-sys", + "gio", + "glib", + "libc", + "pango", +] + +[[package]] +name = "gdk4-sys" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48a39e34abe35ee2cf54a1e29dd983accecd113ad30bdead5050418fa92f2a1b" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -425,60 +401,117 @@ dependencies = [ ] [[package]] -name = "gtk" -version = "0.15.5" +name = "graphene-rs" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c54f9fbbeefdb62c99f892dfca35f83991e2cb5b46a8dc2a715e58612f85570" +dependencies = [ + "glib", + "graphene-sys", + "libc", +] + +[[package]] +name = "graphene-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa691fc7337ba1df599afb55c3bcb85c04f1b3f17362570e9bb0ff0d1bc3028a" +dependencies = [ + "glib-sys", + "libc", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gsk4" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e3004a2d5d6d8b5057d2b57b3712c9529b62e82c77f25c1fecde1fd5c23bd0" +checksum = "14d5a47a78c682bb67496b562495ed84972c0512ba0654888c4dc92b80a85bd3" dependencies = [ - "atk", "bitflags", "cairo-rs", - "field-offset", - "futures-channel", - "gdk", - "gdk-pixbuf", - "gio", + "gdk4", "glib", - "gtk-sys", - "gtk3-macros", + "graphene-rs", + "gsk4-sys", "libc", - "once_cell", "pango", - "pkg-config", ] [[package]] -name = "gtk-sys" -version = "0.15.3" +name = "gsk4-sys" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5bc2f0587cba247f60246a0ca11fe25fb733eabc3de12d1965fc07efab87c84" +checksum = "e31d21d7ce02ba261bb24c50c4ab238a10b41a2c97c32afffae29471b7cca69b" dependencies = [ - "atk-sys", "cairo-sys-rs", - "gdk-pixbuf-sys", - "gdk-sys", - "gio-sys", + "gdk4-sys", "glib-sys", "gobject-sys", + "graphene-sys", "libc", "pango-sys", "system-deps", ] [[package]] -name = "gtk3-macros" -version = "0.15.4" +name = "gtk4" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24f518afe90c23fba585b2d7697856f9e6a7bbc62f65588035e66f6afb01a2e9" +checksum = "eb5d40303dabe4608fc260de2bd7563da6f85bc90af956323f0cd8ae0abcfe03" +dependencies = [ + "bitflags", + "cairo-rs", + "field-offset", + "futures-channel", + "gdk-pixbuf", + "gdk4", + "gio", + "glib", + "graphene-rs", + "gsk4", + "gtk4-macros", + "gtk4-sys", + "libc", + "once_cell", + "pango", +] + +[[package]] +name = "gtk4-macros" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f3c4aa605fb3d78205c7aef0eeaa6db61d8cc4dd05a465dc6ffdfdaee84f825" dependencies = [ "anyhow", "proc-macro-crate", "proc-macro-error", "proc-macro2", + "quick-xml", "quote", "syn", ] +[[package]] +name = "gtk4-sys" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c47c075e8f795c38f6e9a47b51a73eab77b325f83c0154979ed4d4245c36490d" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk4-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "graphene-sys", + "gsk4-sys", + "libc", + "pango-sys", + "system-deps", +] + [[package]] name = "hashbrown" version = "0.12.1" @@ -848,6 +881,15 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "quick-xml" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8533f14c8382aaad0d592c812ac3b826162128b65662331e1127b45c3d18536b" +dependencies = [ + "memchr", +] + [[package]] name = "quote" version = "1.0.18" @@ -1060,10 +1102,10 @@ name = "szyszka" version = "2.0.0" dependencies = [ "chrono", - "gdk", + "gdk4", "gio", "glib", - "gtk", + "gtk4", "humansize", "i18n-embed", "i18n-embed-fl", diff --git a/Cargo.toml b/Cargo.toml index 30fbaa8..2205e26 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,7 @@ homepage = "https://github.com/qarmin/szyszka" repository = "https://github.com/qarmin/szyszka" [dependencies] -gdk = "0.15.4" +gdk4 = "0.4.7" gio = "0.15.11" glib = "0.15.11" @@ -31,8 +31,8 @@ i18n-embed-fl = "0.6.4" rust-embed = "6.4.0" once_cell = "1.12.0" -[dependencies.gtk] -version = "0.15.5" +[dependencies.gtk4] +version = "0.4.7" default-features = false # just in case -features = ["v3_24_30"] +features = ["v4_6"] diff --git a/src/class_dialog_rule_add_number.rs b/src/class_dialog_rule_add_number.rs index ea32add..ac72147 100644 --- a/src/class_dialog_rule_add_number.rs +++ b/src/class_dialog_rule_add_number.rs @@ -1,23 +1,21 @@ -use gtk::prelude::*; - #[derive(Clone)] pub struct GuiAddNumber { - pub check_button_add_number_before_name: gtk::CheckButton, - pub check_button_add_number_after_name: gtk::CheckButton, + pub check_button_add_number_before_name: gtk4::CheckButton, + pub check_button_add_number_after_name: gtk4::CheckButton, - pub entry_add_number_start_number: gtk::Entry, - pub entry_add_number_step: gtk::Entry, - pub entry_add_number_zeros: gtk::Entry, + pub entry_add_number_start_number: gtk4::Entry, + pub entry_add_number_step: gtk4::Entry, + pub entry_add_number_zeros: gtk4::Entry, } impl GuiAddNumber { - pub fn create_from_builder(builder: >k::Builder) -> Self { - let check_button_add_number_before_name: gtk::CheckButton = builder.object("check_button_add_number_before_name").unwrap(); - let check_button_add_number_after_name: gtk::CheckButton = builder.object("check_button_add_number_after_name").unwrap(); + pub fn create_from_builder(builder: >k4::Builder) -> Self { + let check_button_add_number_before_name: gtk4::CheckButton = builder.object("check_button_add_number_before_name").unwrap(); + let check_button_add_number_after_name: gtk4::CheckButton = builder.object("check_button_add_number_after_name").unwrap(); - let entry_add_number_start_number: gtk::Entry = builder.object("entry_add_number_start_number").unwrap(); - let entry_add_number_step: gtk::Entry = builder.object("entry_add_number_step").unwrap(); - let entry_add_number_zeros: gtk::Entry = builder.object("entry_add_number_zeros").unwrap(); + let entry_add_number_start_number: gtk4::Entry = builder.object("entry_add_number_start_number").unwrap(); + let entry_add_number_step: gtk4::Entry = builder.object("entry_add_number_step").unwrap(); + let entry_add_number_zeros: gtk4::Entry = builder.object("entry_add_number_zeros").unwrap(); Self { check_button_add_number_before_name, diff --git a/src/class_dialog_rule_add_text.rs b/src/class_dialog_rule_add_text.rs index 84d3eef..1f17ddf 100644 --- a/src/class_dialog_rule_add_text.rs +++ b/src/class_dialog_rule_add_text.rs @@ -1,19 +1,17 @@ -use gtk::prelude::*; - #[derive(Clone)] pub struct GuiAddText { - pub check_button_add_text_before_name: gtk::CheckButton, - pub check_button_add_text_after_name: gtk::CheckButton, + pub check_button_add_text_before_name: gtk4::CheckButton, + pub check_button_add_text_after_name: gtk4::CheckButton, - pub entry_add_text_text_to_add: gtk::Entry, + pub entry_add_text_text_to_add: gtk4::Entry, } impl GuiAddText { - pub fn create_from_builder(builder: >k::Builder) -> Self { - let check_button_add_text_before_name: gtk::CheckButton = builder.object("check_button_add_text_before_name").unwrap(); - let check_button_add_text_after_name: gtk::CheckButton = builder.object("check_button_add_text_after_name").unwrap(); + pub fn create_from_builder(builder: >k4::Builder) -> Self { + let check_button_add_text_before_name: gtk4::CheckButton = builder.object("check_button_add_text_before_name").unwrap(); + let check_button_add_text_after_name: gtk4::CheckButton = builder.object("check_button_add_text_after_name").unwrap(); - let entry_add_text_text_to_add: gtk::Entry = builder.object("entry_add_text_text_to_add").unwrap(); + let entry_add_text_text_to_add: gtk4::Entry = builder.object("entry_add_text_text_to_add").unwrap(); Self { check_button_add_text_before_name, diff --git a/src/class_dialog_rule_custom.rs b/src/class_dialog_rule_custom.rs index 52d1ebc..98a8858 100644 --- a/src/class_dialog_rule_custom.rs +++ b/src/class_dialog_rule_custom.rs @@ -1,13 +1,11 @@ -use gtk::prelude::*; - #[derive(Clone)] pub struct GuiCustom { - pub entry_custom_text_to_change: gtk::Entry, + pub entry_custom_text_to_change: gtk4::Entry, } impl GuiCustom { - pub fn create_from_builder(builder: >k::Builder) -> Self { - let entry_custom_text_to_change: gtk::Entry = builder.object("entry_custom_text_to_change").unwrap(); + pub fn create_from_builder(builder: >k4::Builder) -> Self { + let entry_custom_text_to_change: gtk4::Entry = builder.object("entry_custom_text_to_change").unwrap(); Self { entry_custom_text_to_change } } diff --git a/src/class_dialog_rule_normalize.rs b/src/class_dialog_rule_normalize.rs index b1305dc..677ec87 100644 --- a/src/class_dialog_rule_normalize.rs +++ b/src/class_dialog_rule_normalize.rs @@ -1,15 +1,17 @@ -use gtk::prelude::*; +use gtk4::prelude::*; #[derive(Clone)] pub struct GuiNormalize { - pub check_button_normalize_everything: gtk::CheckButton, - pub check_button_normalize_partial: gtk::CheckButton, + pub check_button_normalize_everything: gtk4::CheckButton, + pub check_button_normalize_partial: gtk4::CheckButton, } impl GuiNormalize { - pub fn create_from_builder(builder: >k::Builder) -> Self { - let check_button_normalize_everything: gtk::CheckButton = builder.object("check_button_normalize_everything").unwrap(); - let check_button_normalize_partial: gtk::CheckButton = builder.object("check_button_normalize_partial").unwrap(); + pub fn create_from_builder(builder: >k4::Builder) -> Self { + let check_button_normalize_everything: gtk4::CheckButton = builder.object("check_button_normalize_everything").unwrap(); + let check_button_normalize_partial: gtk4::CheckButton = builder.object("check_button_normalize_partial").unwrap(); + + check_button_normalize_partial.set_group(Some(&check_button_normalize_everything)); Self { check_button_normalize_everything, diff --git a/src/class_dialog_rule_purge.rs b/src/class_dialog_rule_purge.rs index bea54a1..968c54a 100644 --- a/src/class_dialog_rule_purge.rs +++ b/src/class_dialog_rule_purge.rs @@ -1,17 +1,15 @@ -use gtk::prelude::*; - #[derive(Clone)] pub struct GuiPurge { - pub check_button_purge_name: gtk::CheckButton, - pub check_button_purge_extension: gtk::CheckButton, - pub check_button_purge_both: gtk::CheckButton, + pub check_button_purge_name: gtk4::CheckButton, + pub check_button_purge_extension: gtk4::CheckButton, + pub check_button_purge_both: gtk4::CheckButton, } impl GuiPurge { - pub fn create_from_builder(builder: >k::Builder) -> Self { - let check_button_purge_name: gtk::CheckButton = builder.object("check_button_purge_name").unwrap(); - let check_button_purge_extension: gtk::CheckButton = builder.object("check_button_purge_extension").unwrap(); - let check_button_purge_both: gtk::CheckButton = builder.object("check_button_purge_both").unwrap(); + pub fn create_from_builder(builder: >k4::Builder) -> Self { + let check_button_purge_name: gtk4::CheckButton = builder.object("check_button_purge_name").unwrap(); + let check_button_purge_extension: gtk4::CheckButton = builder.object("check_button_purge_extension").unwrap(); + let check_button_purge_both: gtk4::CheckButton = builder.object("check_button_purge_both").unwrap(); Self { check_button_purge_name, diff --git a/src/class_dialog_rule_replace.rs b/src/class_dialog_rule_replace.rs index 10c8cdc..32329b6 100644 --- a/src/class_dialog_rule_replace.rs +++ b/src/class_dialog_rule_replace.rs @@ -1,29 +1,27 @@ -use gtk::prelude::*; - #[derive(Clone)] pub struct GuiReplace { - pub check_button_replace_name: gtk::CheckButton, - pub check_button_replace_extension: gtk::CheckButton, - pub check_button_replace_both: gtk::CheckButton, + pub check_button_replace_name: gtk4::CheckButton, + pub check_button_replace_extension: gtk4::CheckButton, + pub check_button_replace_both: gtk4::CheckButton, - pub check_button_replace_case_insensitive: gtk::CheckButton, - pub check_button_replace_case_sensitive: gtk::CheckButton, + pub check_button_replace_case_insensitive: gtk4::CheckButton, + pub check_button_replace_case_sensitive: gtk4::CheckButton, - pub entry_replace_text_to_remove: gtk::Entry, - pub entry_replace_text_to_change: gtk::Entry, + pub entry_replace_text_to_remove: gtk4::Entry, + pub entry_replace_text_to_change: gtk4::Entry, } impl GuiReplace { - pub fn create_from_builder(builder: >k::Builder) -> Self { - let check_button_replace_name: gtk::CheckButton = builder.object("check_button_replace_name").unwrap(); - let check_button_replace_extension: gtk::CheckButton = builder.object("check_button_replace_extension").unwrap(); - let check_button_replace_both: gtk::CheckButton = builder.object("check_button_replace_both").unwrap(); + pub fn create_from_builder(builder: >k4::Builder) -> Self { + let check_button_replace_name: gtk4::CheckButton = builder.object("check_button_replace_name").unwrap(); + let check_button_replace_extension: gtk4::CheckButton = builder.object("check_button_replace_extension").unwrap(); + let check_button_replace_both: gtk4::CheckButton = builder.object("check_button_replace_both").unwrap(); - let entry_replace_text_to_remove: gtk::Entry = builder.object("entry_replace_text_to_remove").unwrap(); - let entry_replace_text_to_change: gtk::Entry = builder.object("entry_replace_text_to_change").unwrap(); + let entry_replace_text_to_remove: gtk4::Entry = builder.object("entry_replace_text_to_remove").unwrap(); + let entry_replace_text_to_change: gtk4::Entry = builder.object("entry_replace_text_to_change").unwrap(); - let check_button_replace_case_sensitive: gtk::CheckButton = builder.object("check_button_replace_case_sensitive").unwrap(); - let check_button_replace_case_insensitive: gtk::CheckButton = builder.object("check_button_replace_case_insensitive").unwrap(); + let check_button_replace_case_sensitive: gtk4::CheckButton = builder.object("check_button_replace_case_sensitive").unwrap(); + let check_button_replace_case_insensitive: gtk4::CheckButton = builder.object("check_button_replace_case_insensitive").unwrap(); Self { check_button_replace_name, diff --git a/src/class_dialog_rule_size_letters.rs b/src/class_dialog_rule_size_letters.rs index eee3b07..df572d2 100644 --- a/src/class_dialog_rule_size_letters.rs +++ b/src/class_dialog_rule_size_letters.rs @@ -1,23 +1,21 @@ -use gtk::prelude::*; - #[derive(Clone)] pub struct GuiSizeLetters { - pub check_button_letters_type_uppercase: gtk::CheckButton, - pub check_button_letters_type_lowercase: gtk::CheckButton, + pub check_button_letters_type_uppercase: gtk4::CheckButton, + pub check_button_letters_type_lowercase: gtk4::CheckButton, - pub check_button_letters_usage_name: gtk::CheckButton, - pub check_button_letters_usage_extension: gtk::CheckButton, - pub check_button_letters_usage_both: gtk::CheckButton, + pub check_button_letters_usage_name: gtk4::CheckButton, + pub check_button_letters_usage_extension: gtk4::CheckButton, + pub check_button_letters_usage_both: gtk4::CheckButton, } impl GuiSizeLetters { - pub fn create_from_builder(builder: >k::Builder) -> Self { - let check_button_letters_type_uppercase: gtk::CheckButton = builder.object("check_button_letters_type_uppercase").unwrap(); - let check_button_letters_type_lowercase: gtk::CheckButton = builder.object("check_button_letters_type_lowercase").unwrap(); + pub fn create_from_builder(builder: >k4::Builder) -> Self { + let check_button_letters_type_uppercase: gtk4::CheckButton = builder.object("check_button_letters_type_uppercase").unwrap(); + let check_button_letters_type_lowercase: gtk4::CheckButton = builder.object("check_button_letters_type_lowercase").unwrap(); - let check_button_letters_usage_name: gtk::CheckButton = builder.object("check_button_letters_usage_name").unwrap(); - let check_button_letters_usage_extension: gtk::CheckButton = builder.object("check_button_letters_usage_extension").unwrap(); - let check_button_letters_usage_both: gtk::CheckButton = builder.object("check_button_letters_usage_both").unwrap(); + let check_button_letters_usage_name: gtk4::CheckButton = builder.object("check_button_letters_usage_name").unwrap(); + let check_button_letters_usage_extension: gtk4::CheckButton = builder.object("check_button_letters_usage_extension").unwrap(); + let check_button_letters_usage_both: gtk4::CheckButton = builder.object("check_button_letters_usage_both").unwrap(); Self { check_button_letters_type_uppercase, diff --git a/src/class_dialog_rule_trim.rs b/src/class_dialog_rule_trim.rs index 7ef2e1b..2704260 100644 --- a/src/class_dialog_rule_trim.rs +++ b/src/class_dialog_rule_trim.rs @@ -1,29 +1,35 @@ -use gtk::prelude::*; +use gtk4::prelude::*; #[derive(Clone)] pub struct GuiTrim { - pub check_button_trim_name_start: gtk::CheckButton, - pub check_button_trim_name_end: gtk::CheckButton, - pub check_button_trim_extension_start: gtk::CheckButton, - pub check_button_trim_extension_end: gtk::CheckButton, + pub check_button_trim_name_start: gtk4::CheckButton, + pub check_button_trim_name_end: gtk4::CheckButton, + pub check_button_trim_extension_start: gtk4::CheckButton, + pub check_button_trim_extension_end: gtk4::CheckButton, - pub check_button_trim_case_sensitive: gtk::CheckButton, - pub check_button_trim_case_insensitive: gtk::CheckButton, + pub check_button_trim_case_sensitive: gtk4::CheckButton, + pub check_button_trim_case_insensitive: gtk4::CheckButton, - pub entry_add_text_text_to_trim: gtk::Entry, + pub entry_add_text_text_to_trim: gtk4::Entry, } impl GuiTrim { - pub fn create_from_builder(builder: >k::Builder) -> Self { - let check_button_trim_name_start: gtk::CheckButton = builder.object("check_button_trim_name_start").unwrap(); - let check_button_trim_name_end: gtk::CheckButton = builder.object("check_button_trim_name_end").unwrap(); - let check_button_trim_extension_start: gtk::CheckButton = builder.object("check_button_trim_extension_start").unwrap(); - let check_button_trim_extension_end: gtk::CheckButton = builder.object("check_button_trim_extension_end").unwrap(); + pub fn create_from_builder(builder: >k4::Builder) -> Self { + let check_button_trim_name_start: gtk4::CheckButton = builder.object("check_button_trim_name_start").unwrap(); + let check_button_trim_name_end: gtk4::CheckButton = builder.object("check_button_trim_name_end").unwrap(); + let check_button_trim_extension_start: gtk4::CheckButton = builder.object("check_button_trim_extension_start").unwrap(); + let check_button_trim_extension_end: gtk4::CheckButton = builder.object("check_button_trim_extension_end").unwrap(); - let check_button_trim_case_sensitive: gtk::CheckButton = builder.object("check_button_trim_case_sensitive").unwrap(); - let check_button_trim_case_insensitive: gtk::CheckButton = builder.object("check_button_trim_case_insensitive").unwrap(); + check_button_trim_name_end.set_group(Some(&check_button_trim_name_start)); + check_button_trim_extension_start.set_group(Some(&check_button_trim_name_start)); + check_button_trim_extension_end.set_group(Some(&check_button_trim_name_start)); - let entry_add_text_text_to_trim: gtk::Entry = builder.object("entry_add_text_text_to_trim").unwrap(); + let check_button_trim_case_sensitive: gtk4::CheckButton = builder.object("check_button_trim_case_sensitive").unwrap(); + let check_button_trim_case_insensitive: gtk4::CheckButton = builder.object("check_button_trim_case_insensitive").unwrap(); + + check_button_trim_case_insensitive.set_group(Some(&check_button_trim_case_sensitive)); + + let entry_add_text_text_to_trim: gtk4::Entry = builder.object("entry_add_text_text_to_trim").unwrap(); Self { check_button_trim_name_start, diff --git a/src/class_dialog_rules.rs b/src/class_dialog_rules.rs index 3aac667..05a7633 100644 --- a/src/class_dialog_rules.rs +++ b/src/class_dialog_rules.rs @@ -6,15 +6,14 @@ use crate::class_dialog_rule_purge::GuiPurge; use crate::class_dialog_rule_replace::GuiReplace; use crate::class_dialog_rule_size_letters::GuiSizeLetters; use crate::class_dialog_rule_trim::GuiTrim; -use gtk::prelude::*; -use gtk::{Button, Entry, Label, WindowPosition}; +use gtk4::{Button, Entry, Label}; #[derive(Clone)] pub struct GuiDialogRules { - pub notebook_choose_rule: gtk::Notebook, + pub notebook_choose_rule: gtk4::Notebook, - pub window_with_rules: gtk::Window, - pub button_rule_window_add: gtk::Button, + pub window_with_rules: gtk4::Window, + pub button_rule_window_add: gtk4::Button, pub size_letters: GuiSizeLetters, pub purge: GuiPurge, @@ -31,12 +30,11 @@ pub struct GuiDialogRules { } impl GuiDialogRules { - pub fn create_from_builder(builder: >k::Builder) -> Self { - let notebook_choose_rule: gtk::Notebook = builder.object("notebook_choose_rule").unwrap(); + pub fn create_from_builder(builder: >k4::Builder) -> Self { + let notebook_choose_rule: gtk4::Notebook = builder.object("notebook_choose_rule").unwrap(); - let window_with_rules: gtk::Window = builder.object("window_with_rules").unwrap(); - window_with_rules.set_position(WindowPosition::Center); - let button_rule_window_add: gtk::Button = builder.object("button_rule_window_add").unwrap(); + let window_with_rules: gtk4::Window = builder.object("window_with_rules").unwrap(); + let button_rule_window_add: gtk4::Button = builder.object("button_rule_window_add").unwrap(); let size_letters: GuiSizeLetters = GuiSizeLetters::create_from_builder(builder); let purge: GuiPurge = GuiPurge::create_from_builder(builder); @@ -47,9 +45,9 @@ impl GuiDialogRules { let add_number: GuiAddNumber = GuiAddNumber::create_from_builder(builder); let normalize: GuiNormalize = GuiNormalize::create_from_builder(builder); - let entry_example_before: gtk::Entry = builder.object("entry_example_before").unwrap(); - let label_example_after: gtk::Label = builder.object("label_example_after").unwrap(); - let button_example_reset: gtk::Button = builder.object("button_example_reset").unwrap(); + let entry_example_before: gtk4::Entry = builder.object("entry_example_before").unwrap(); + let label_example_after: gtk4::Label = builder.object("label_example_after").unwrap(); + let button_example_reset: gtk4::Button = builder.object("button_example_reset").unwrap(); Self { notebook_choose_rule, diff --git a/src/connect_add_files_button.rs b/src/connect_add_files_button.rs index 4bab846..d694e4f 100644 --- a/src/connect_add_files_button.rs +++ b/src/connect_add_files_button.rs @@ -2,7 +2,7 @@ use crate::gui_data::GuiData; use crate::help_function::{get_list_store_from_tree_view, split_path, ColumnsResults}; use crate::update_records::{update_records, UpdateMode}; use chrono::Local; -use gtk::prelude::*; +use gtk4::prelude::*; use std::cmp::{max, Ordering}; use std::fs; use std::time::UNIX_EPOCH; @@ -17,9 +17,9 @@ pub fn connect_add_files_button(gui_data: &GuiData) { let window_main = gui_data.window_main.clone(); button_add_files.connect_clicked(move |_| { - let chooser = gtk::FileChooserDialog::with_buttons(Some("Files to include"), Some(&window_main), gtk::FileChooserAction::Open, &[("Ok", gtk::ResponseType::Ok), ("Close", gtk::ResponseType::Cancel)]); + let chooser = gtk4::FileChooserDialog::with_buttons(Some("Files to include"), Some(&window_main), gtk4::FileChooserAction::Open, &[("Ok", gtk4::ResponseType::Ok), ("Close", gtk4::ResponseType::Cancel)]); chooser.set_select_multiple(true); - chooser.show_all(); + chooser.show(); let tree_view_results = tree_view_results.clone(); let label_files_folders = label_files_folders.clone(); @@ -27,7 +27,7 @@ pub fn connect_add_files_button(gui_data: &GuiData) { let rules = rules.clone(); chooser.connect_response(move |dialog, response_type| { - if response_type == gtk::ResponseType::Ok { + if response_type == gtk4::ResponseType::Ok { let mut folder = dialog.filenames(); let mut result_entries = shared_result_entries.borrow_mut(); diff --git a/src/connect_add_folders_button.rs b/src/connect_add_folders_button.rs index 818a8aa..f9d7776 100644 --- a/src/connect_add_folders_button.rs +++ b/src/connect_add_folders_button.rs @@ -2,8 +2,8 @@ use crate::gui_data::GuiData; use crate::help_function::{get_list_store_from_tree_view, split_path, ColumnsResults}; use crate::update_records::{update_records, UpdateMode}; use chrono::Local; -use gtk::prelude::*; -use gtk::{FileChooserAction, Orientation, PackType}; +use gtk4::prelude::*; +use gtk4::{FileChooserAction, Orientation, PackType}; use std::cmp::{max, Ordering}; use std::fs; use std::time::UNIX_EPOCH; @@ -20,40 +20,40 @@ pub fn connect_add_folders_button(gui_data: &GuiData) { let window_main = gui_data.window_main.clone(); button_add_folders.connect_clicked(move |_| { - let chooser = gtk::FileChooserDialog::with_buttons(Some("Files to include"), Some(&window_main), gtk::FileChooserAction::Open, &[("Ok", gtk::ResponseType::Ok), ("Close", gtk::ResponseType::Cancel)]); + let chooser = gtk4::FileChooserDialog::with_buttons(Some("Files to include"), Some(&window_main), gtk4::FileChooserAction::Open, &[("Ok", gtk4::ResponseType::Ok), ("Close", gtk4::ResponseType::Cancel)]); chooser.set_select_multiple(true); chooser.set_action(FileChooserAction::SelectFolder); { // Adds recursive button to FileDialog - let box_pack = gtk::Box::new(Orientation::Horizontal, 0); + let box_pack = gtk4::Box::new(Orientation::Horizontal, 0); - let switch_scan_inside = gtk::Switch::new(); - box_pack.add(&switch_scan_inside); - box_pack.set_child_packing(&switch_scan_inside, false, true, 5, PackType::End); + let switch_scan_inside = gtk4::Switch::new(); + box_pack.append(&switch_scan_inside); + // box_pack.set_child_packing(&switch_scan_inside, false, true, 5, PackType::End); // TODO GTK 4 - let label_scan_inside = gtk::Label::new(Some("Scan inside ")); - box_pack.add(&label_scan_inside); - box_pack.set_child_packing(&label_scan_inside, false, true, 0, PackType::End); + let label_scan_inside = gtk4::Label::new(Some("Scan inside ")); + box_pack.append(&label_scan_inside); + // box_pack.set_child_packing(&label_scan_inside, false, true, 0, PackType::End); - let switch_ignore_folders = gtk::Switch::new(); - box_pack.add(&switch_ignore_folders); - box_pack.set_child_packing(&switch_ignore_folders, false, true, 5, PackType::End); + let switch_ignore_folders = gtk4::Switch::new(); + box_pack.append(&switch_ignore_folders); + // box_pack.set_child_packing(&switch_ignore_folders, false, true, 5, PackType::End); - let label_ignore_folders = gtk::Label::new(Some("Ignore folders ")); - box_pack.add(&label_ignore_folders); - box_pack.set_child_packing(&label_ignore_folders, false, true, 0, PackType::End); + let label_ignore_folders = gtk4::Label::new(Some("Ignore folders ")); + box_pack.append(&label_ignore_folders); + // box_pack.set_child_packing(&label_ignore_folders, false, true, 0, PackType::End); - let internal_box = chooser.children()[0].clone().downcast::().unwrap(); + let internal_box = chooser.children()[0].clone().downcast::().unwrap(); internal_box.add(&box_pack); switch_ignore_folders.set_sensitive(false); - let sif = switch_ignore_folders.clone(); - switch_scan_inside.connect_changed_active(move |e| { - sif.set_sensitive(e.is_active()); - }); + // let sif = switch_ignore_folders.clone(); // TODO GTK 4 + // switch_scan_inside.connect_changed_active(move |e| { + // sif.set_sensitive(e.is_active()); + // }); chooser.set_title("Folders to include"); - chooser.show_all(); + chooser.show(); let shared_result_entries = shared_result_entries.clone(); let label_files_folders = label_files_folders.clone(); @@ -61,7 +61,7 @@ pub fn connect_add_folders_button(gui_data: &GuiData) { let rules = rules.clone(); chooser.connect_response(move |chooser, response| { - if response == gtk::ResponseType::Ok { + if response == gtk4::ResponseType::Ok { let mut result_entries = shared_result_entries.borrow_mut(); let list_store = get_list_store_from_tree_view(&tree_view_results); diff --git a/src/connect_button_settings.rs b/src/connect_button_settings.rs index 4abdfd8..b6431d5 100644 --- a/src/connect_button_settings.rs +++ b/src/connect_button_settings.rs @@ -1,5 +1,5 @@ use crate::GuiData; -use gtk::prelude::*; +use gtk4::prelude::*; pub fn connect_button_settings(gui_data: &GuiData) { let button_setting = gui_data.upper_buttons.button_setting.clone(); @@ -8,9 +8,10 @@ pub fn connect_button_settings(gui_data: &GuiData) { window_settings.show(); }); - let window_settings = gui_data.settings.window_settings.clone(); - window_settings.connect_delete_event(|window_settings, _| { - window_settings.hide(); - Inhibit(true) - }); + // TODO GTK 4 + // let window_settings = gui_data.settings.window_settings.clone(); + // window_settings.connect_delete_event(|window_settings, _| { + // window_settings.hide(); + // Inhibit(true) + // }); } diff --git a/src/connect_button_update_names.rs b/src/connect_button_update_names.rs index fade9fe..4ef0399 100644 --- a/src/connect_button_update_names.rs +++ b/src/connect_button_update_names.rs @@ -1,6 +1,6 @@ use crate::gui_data::GuiData; use crate::update_records::{update_records, UpdateMode}; -use gtk::prelude::*; +use gtk4::prelude::*; pub fn connect_button_update_names(gui_data: &GuiData) { let button_update_names = gui_data.upper_buttons.button_update_names.clone(); diff --git a/src/connect_change_language.rs b/src/connect_change_language.rs index da12f56..99fad8b 100644 --- a/src/connect_change_language.rs +++ b/src/connect_change_language.rs @@ -1,4 +1,4 @@ -use gtk::prelude::*; +use gtk4::prelude::*; use i18n_embed::unic_langid::LanguageIdentifier; use i18n_embed::DesktopLanguageRequester; diff --git a/src/connect_remove_files_button.rs b/src/connect_remove_files_button.rs index f2df76c..707ab42 100644 --- a/src/connect_remove_files_button.rs +++ b/src/connect_remove_files_button.rs @@ -1,7 +1,7 @@ use crate::gui_data::GuiData; use crate::help_function::{get_full_file_names_from_selection, remove_selected_rows}; use crate::update_records::{update_records, UpdateMode}; -use gtk::prelude::*; +use gtk4::prelude::*; pub fn connect_remove_files_button(gui_data: &GuiData) { let button_remove_selection = gui_data.upper_buttons.button_remove_selection.clone(); diff --git a/src/connect_results_move.rs b/src/connect_results_move.rs index dc26558..1d8e7d2 100644 --- a/src/connect_results_move.rs +++ b/src/connect_results_move.rs @@ -1,7 +1,7 @@ use crate::gui_data::GuiData; use crate::help_function::{get_list_store_from_tree_view, ColumnsResults}; use crate::update_records::{update_records, UpdateMode}; -use gtk::prelude::*; +use gtk4::prelude::*; pub fn connect_results_modify_one_up(gui_data: &GuiData) { let button_results_one_up = gui_data.upper_buttons.button_results_one_up.clone(); @@ -30,7 +30,7 @@ pub fn connect_results_modify_one_up(gui_data: &GuiData) { let mut current_path_number = 0; loop { - let path = list_store.path(&temp_iter).unwrap(); + let path = list_store.path(&temp_iter); if selected_rows[current_path_number] == path { selected_results.push(true); current_path_number += 1; @@ -65,21 +65,21 @@ pub fn connect_results_modify_one_up(gui_data: &GuiData) { if selected_results[i] && !selected_results[i - 1] { selected_results.swap(i, i - 1); - let previous_creation = list_store.value(&previous_iter, ColumnsResults::CreationDate as i32).get::().unwrap(); - let previous_modification = list_store.value(&previous_iter, ColumnsResults::ModificationDate as i32).get::().unwrap(); - let previous_size = list_store.value(&previous_iter, ColumnsResults::Size as i32).get::().unwrap(); - let previous_path = list_store.value(&previous_iter, ColumnsResults::Path as i32).get::().unwrap(); - let previous_future_name = list_store.value(&previous_iter, ColumnsResults::FutureName as i32).get::().unwrap(); - let previous_type = list_store.value(&previous_iter, ColumnsResults::Type as i32).get::().unwrap(); - let previous_current_name = list_store.value(&previous_iter, ColumnsResults::CurrentName as i32).get::().unwrap(); - - let current_creation = list_store.value(¤t_iter, ColumnsResults::CreationDate as i32).get::().unwrap(); - let current_modification = list_store.value(¤t_iter, ColumnsResults::ModificationDate as i32).get::().unwrap(); - let current_size = list_store.value(¤t_iter, ColumnsResults::Size as i32).get::().unwrap(); - let current_path = list_store.value(¤t_iter, ColumnsResults::Path as i32).get::().unwrap(); - let current_future_name = list_store.value(¤t_iter, ColumnsResults::FutureName as i32).get::().unwrap(); - let current_type = list_store.value(¤t_iter, ColumnsResults::Type as i32).get::().unwrap(); - let current_current_name = list_store.value(¤t_iter, ColumnsResults::CurrentName as i32).get::().unwrap(); + let previous_creation = list_store.get::(&previous_iter, ColumnsResults::CreationDate as i32); + let previous_modification = list_store.get::(&previous_iter, ColumnsResults::ModificationDate as i32); + let previous_size = list_store.get::(&previous_iter, ColumnsResults::Size as i32); + let previous_path = list_store.get::(&previous_iter, ColumnsResults::Path as i32); + let previous_future_name = list_store.get::(&previous_iter, ColumnsResults::FutureName as i32); + let previous_type = list_store.get::(&previous_iter, ColumnsResults::Type as i32); + let previous_current_name = list_store.get::(&previous_iter, ColumnsResults::CurrentName as i32); + + let current_creation = list_store.get::(¤t_iter, ColumnsResults::CreationDate as i32); + let current_modification = list_store.get::(¤t_iter, ColumnsResults::ModificationDate as i32); + let current_size = list_store.get::(¤t_iter, ColumnsResults::Size as i32); + let current_path = list_store.get::(¤t_iter, ColumnsResults::Path as i32); + let current_future_name = list_store.get::(¤t_iter, ColumnsResults::FutureName as i32); + let current_type = list_store.get::(¤t_iter, ColumnsResults::Type as i32); + let current_current_name = list_store.get::(¤t_iter, ColumnsResults::CurrentName as i32); list_store.set_value(&previous_iter, ColumnsResults::CreationDate as u32, ¤t_creation.to_value()); list_store.set_value(&previous_iter, ColumnsResults::ModificationDate as u32, ¤t_modification.to_value()); @@ -142,7 +142,7 @@ pub fn connect_results_modify_one_down(gui_data: &GuiData) { let mut current_path_number = 0; loop { - let path = list_store.path(&temp_iter).unwrap(); + let path = list_store.path(&temp_iter); if selected_rows[current_path_number] == path { selected_results.push(true); current_path_number += 1; @@ -185,21 +185,21 @@ pub fn connect_results_modify_one_down(gui_data: &GuiData) { if selected_results[i] && !selected_results[i + 1] { selected_results.swap(i, i + 1); - let previous_creation = list_store.value(&previous_iter, ColumnsResults::CreationDate as i32).get::().unwrap(); - let previous_modification = list_store.value(&previous_iter, ColumnsResults::ModificationDate as i32).get::().unwrap(); - let previous_size = list_store.value(&previous_iter, ColumnsResults::Size as i32).get::().unwrap(); - let previous_path = list_store.value(&previous_iter, ColumnsResults::Path as i32).get::().unwrap(); - let previous_future_name = list_store.value(&previous_iter, ColumnsResults::FutureName as i32).get::().unwrap(); - let previous_type = list_store.value(&previous_iter, ColumnsResults::Type as i32).get::().unwrap(); - let previous_current_name = list_store.value(&previous_iter, ColumnsResults::CurrentName as i32).get::().unwrap(); - - let current_creation = list_store.value(¤t_iter, ColumnsResults::CreationDate as i32).get::().unwrap(); - let current_modification = list_store.value(¤t_iter, ColumnsResults::ModificationDate as i32).get::().unwrap(); - let current_size = list_store.value(¤t_iter, ColumnsResults::Size as i32).get::().unwrap(); - let current_path = list_store.value(¤t_iter, ColumnsResults::Path as i32).get::().unwrap(); - let current_future_name = list_store.value(¤t_iter, ColumnsResults::FutureName as i32).get::().unwrap(); - let current_type = list_store.value(¤t_iter, ColumnsResults::Type as i32).get::().unwrap(); - let current_current_name = list_store.value(¤t_iter, ColumnsResults::CurrentName as i32).get::().unwrap(); + let previous_creation = list_store.get::(&previous_iter, ColumnsResults::CreationDate as i32); + let previous_modification = list_store.get::(&previous_iter, ColumnsResults::ModificationDate as i32); + let previous_size = list_store.get::(&previous_iter, ColumnsResults::Size as i32); + let previous_path = list_store.get::(&previous_iter, ColumnsResults::Path as i32); + let previous_future_name = list_store.get::(&previous_iter, ColumnsResults::FutureName as i32); + let previous_type = list_store.get::(&previous_iter, ColumnsResults::Type as i32); + let previous_current_name = list_store.get::(&previous_iter, ColumnsResults::CurrentName as i32); + + let current_creation = list_store.get::(¤t_iter, ColumnsResults::CreationDate as i32); + let current_modification = list_store.get::(¤t_iter, ColumnsResults::ModificationDate as i32); + let current_size = list_store.get::(¤t_iter, ColumnsResults::Size as i32); + let current_path = list_store.get::(¤t_iter, ColumnsResults::Path as i32); + let current_future_name = list_store.get::(¤t_iter, ColumnsResults::FutureName as i32); + let current_type = list_store.get::(¤t_iter, ColumnsResults::Type as i32); + let current_current_name = list_store.get::(¤t_iter, ColumnsResults::CurrentName as i32); list_store.set_value(&previous_iter, ColumnsResults::CreationDate as u32, ¤t_creation.to_value()); list_store.set_value(&previous_iter, ColumnsResults::ModificationDate as u32, ¤t_modification.to_value()); diff --git a/src/connect_rule_add.rs b/src/connect_rule_add.rs index d8538ca..dde125f 100644 --- a/src/connect_rule_add.rs +++ b/src/connect_rule_add.rs @@ -1,7 +1,7 @@ use crate::gui_data::GuiData; use crate::help_function::{populate_rules_tree_view, read_rule_from_window}; use crate::update_records::{update_records, UpdateMode}; -use gtk::prelude::*; +use gtk4::prelude::*; use std::ops::DerefMut; pub fn connect_rule_add(gui_data: &GuiData) { diff --git a/src/connect_rule_buttons_modify_rules.rs b/src/connect_rule_buttons_modify_rules.rs index cbfc9c8..39d222c 100644 --- a/src/connect_rule_buttons_modify_rules.rs +++ b/src/connect_rule_buttons_modify_rules.rs @@ -2,7 +2,7 @@ use crate::gui_data::GuiData; use crate::help_function::{get_list_store_from_tree_view, remove_selected_rows, ColumnsRules}; use crate::rules::{RulePlace, RuleType}; use crate::update_records::{update_records, UpdateMode}; -use gtk::prelude::*; +use gtk4::prelude::*; use std::ops::DerefMut; pub fn connect_rule_modify_add(gui_data: &GuiData) { @@ -71,7 +71,7 @@ pub fn connect_rule_modify_one_up(gui_data: &GuiData) { let (selected_rows, _tree_model) = selection.selected_rows(); let first_iter = list_store.iter_first().unwrap(); - let first_path = list_store.path(&first_iter).unwrap(); + let first_path = list_store.path(&first_iter); if selected_rows.iter().any(|selected_path| *selected_path == first_path) { return; // First thing is selected - this works only in single selection mode @@ -84,7 +84,7 @@ pub fn connect_rule_modify_one_up(gui_data: &GuiData) { let mut current_index = 0; loop { current_index += 1; - let current_path = list_store.path(¤t_iter).unwrap(); + let current_path = list_store.path(¤t_iter); let found = selected_rows.iter().any(|selected_path| *selected_path == current_path); @@ -101,13 +101,13 @@ pub fn connect_rule_modify_one_up(gui_data: &GuiData) { // Swap rules { rules.rules.swap(current_index, current_index - 1); - let previous_type = list_store.value(&previous_iter, ColumnsRules::RuleType as i32).get::().unwrap(); - let previous_usage = list_store.value(&previous_iter, ColumnsRules::UsageType as i32).get::().unwrap(); - let previous_description = list_store.value(&previous_iter, ColumnsRules::Description as i32).get::().unwrap(); + let previous_type = list_store.get::(&previous_iter, ColumnsRules::RuleType as i32); + let previous_usage = list_store.get::(&previous_iter, ColumnsRules::UsageType as i32); + let previous_description = list_store.get::(&previous_iter, ColumnsRules::Description as i32); - let next_type = list_store.value(¤t_iter, ColumnsRules::RuleType as i32).get::().unwrap(); - let next_usage = list_store.value(¤t_iter, ColumnsRules::UsageType as i32).get::().unwrap(); - let next_description = list_store.value(¤t_iter, ColumnsRules::Description as i32).get::().unwrap(); + let next_type = list_store.get::(¤t_iter, ColumnsRules::RuleType as i32); + let next_usage = list_store.get::(¤t_iter, ColumnsRules::UsageType as i32); + let next_description = list_store.get::(¤t_iter, ColumnsRules::Description as i32); list_store.set_value(¤t_iter, ColumnsRules::RuleType as u32, &previous_type.to_value()); list_store.set_value(¤t_iter, ColumnsRules::UsageType as u32, &previous_usage.to_value()); @@ -155,7 +155,7 @@ pub fn connect_rule_modify_one_down(gui_data: &GuiData) { let mut current_index = 0; loop { current_index += 1; - let current_path = list_store.path(&previous_iter).unwrap(); + let current_path = list_store.path(&previous_iter); let found = selected_rows.iter().any(|selected_path| *selected_path == current_path); @@ -177,13 +177,13 @@ pub fn connect_rule_modify_one_down(gui_data: &GuiData) { // Swap rules { rules.rules.swap(current_index, current_index - 1); - let previous_type = list_store.value(&previous_iter, ColumnsRules::RuleType as i32).get::().unwrap(); - let previous_usage = list_store.value(&previous_iter, ColumnsRules::UsageType as i32).get::().unwrap(); - let previous_description = list_store.value(&previous_iter, ColumnsRules::Description as i32).get::().unwrap(); + let previous_type = list_store.get::(&previous_iter, ColumnsRules::RuleType as i32); + let previous_usage = list_store.get::(&previous_iter, ColumnsRules::UsageType as i32); + let previous_description = list_store.get::(&previous_iter, ColumnsRules::Description as i32); - let next_type = list_store.value(¤t_iter, ColumnsRules::RuleType as i32).get::().unwrap(); - let next_usage = list_store.value(¤t_iter, ColumnsRules::UsageType as i32).get::().unwrap(); - let next_description = list_store.value(¤t_iter, ColumnsRules::Description as i32).get::().unwrap(); + let next_type = list_store.get::(¤t_iter, ColumnsRules::RuleType as i32); + let next_usage = list_store.get::(¤t_iter, ColumnsRules::UsageType as i32); + let next_description = list_store.get::(¤t_iter, ColumnsRules::Description as i32); list_store.set_value(¤t_iter, ColumnsRules::RuleType as u32, &previous_type.to_value()); list_store.set_value(¤t_iter, ColumnsRules::UsageType as u32, &previous_usage.to_value()); @@ -270,7 +270,7 @@ pub fn connect_rule_modify_edit(gui_data: &GuiData) { let iter = model.iter_first().unwrap(); loop { - if model.path(&iter).unwrap() == selected_item { + if model.path(&iter) == selected_item { break; } diff --git a/src/connect_rule_window_add_number_click.rs b/src/connect_rule_window_add_number_click.rs index c4bf6e6..bb82e7f 100644 --- a/src/connect_rule_window_add_number_click.rs +++ b/src/connect_rule_window_add_number_click.rs @@ -1,7 +1,7 @@ use crate::example_fields::update_examples; use crate::gui_data::GuiData; use crate::help_function::validate_number; -use gtk::prelude::*; +use gtk4::prelude::*; pub fn connect_rule_window_add_number_click(gui_data: &GuiData) { let window_rules = gui_data.window_rules.clone(); @@ -13,13 +13,14 @@ pub fn connect_rule_window_add_number_click(gui_data: &GuiData) { let entry_add_number_step = gui_data.window_rules.add_number.entry_add_number_step.clone(); let entry_add_number_zeros = gui_data.window_rules.add_number.entry_add_number_zeros.clone(); - check_button_add_number_before_name.connect_clicked(move |_e| { - update_examples(&window_rules, None); - }); - let window_rules = gui_data.window_rules.clone(); - check_button_add_number_after_name.connect_clicked(move |_e| { - update_examples(&window_rules, None); - }); + // TODO GTK 4 + // check_button_add_number_before_name.connect_clicked(move |_e| { + // update_examples(&window_rules, None); + // }); + // let window_rules = gui_data.window_rules.clone(); + // check_button_add_number_after_name.connect_clicked(move |_e| { + // update_examples(&window_rules, None); + // }); let window_rules = gui_data.window_rules.clone(); entry_add_number_start_number.connect_changed(move |e| { diff --git a/src/connect_rule_window_add_text_click.rs b/src/connect_rule_window_add_text_click.rs index f37ce84..947b0b9 100644 --- a/src/connect_rule_window_add_text_click.rs +++ b/src/connect_rule_window_add_text_click.rs @@ -1,26 +1,27 @@ use crate::example_fields::update_examples; use crate::gui_data::GuiData; use crate::help_function::validate_name; -use gtk::prelude::*; +use gtk4::prelude::*; pub fn connect_rule_window_add_text_click(gui_data: &GuiData) { - let window_rules = gui_data.window_rules.clone(); - - let check_button_add_text_before_name = gui_data.window_rules.add_text.check_button_add_text_before_name.clone(); - let check_button_add_text_after_name = gui_data.window_rules.add_text.check_button_add_text_after_name.clone(); - - let entry_add_text_text_to_add = gui_data.window_rules.add_text.entry_add_text_text_to_add.clone(); - - check_button_add_text_before_name.connect_clicked(move |_e| { - update_examples(&window_rules, None); - }); - let window_rules = gui_data.window_rules.clone(); - check_button_add_text_after_name.connect_clicked(move |_e| { - update_examples(&window_rules, None); - }); - let window_rules = gui_data.window_rules.clone(); - entry_add_text_text_to_add.connect_changed(move |e| { - e.set_text(validate_name(e.text().to_string()).as_str()); - update_examples(&window_rules, None); - }); + // TODO GTK 4 + // let window_rules = gui_data.window_rules.clone(); + // + // let check_button_add_text_before_name = gui_data.window_rules.add_text.check_button_add_text_before_name.clone(); + // let check_button_add_text_after_name = gui_data.window_rules.add_text.check_button_add_text_after_name.clone(); + // + // let entry_add_text_text_to_add = gui_data.window_rules.add_text.entry_add_text_text_to_add.clone(); + // + // check_button_add_text_before_name.connect_clicked(move |_e| { + // update_examples(&window_rules, None); + // }); + // let window_rules = gui_data.window_rules.clone(); + // check_button_add_text_after_name.connect_clicked(move |_e| { + // update_examples(&window_rules, None); + // }); + // let window_rules = gui_data.window_rules.clone(); + // entry_add_text_text_to_add.connect_changed(move |e| { + // e.set_text(validate_name(e.text().to_string()).as_str()); + // update_examples(&window_rules, None); + // }); } diff --git a/src/connect_rule_window_close.rs b/src/connect_rule_window_close.rs index e0f4603..16f4cf9 100644 --- a/src/connect_rule_window_close.rs +++ b/src/connect_rule_window_close.rs @@ -1,23 +1,23 @@ use crate::gui_data::GuiData; -use gtk::prelude::WidgetExtManual; -use gtk::prelude::*; +use gtk4::prelude::*; use std::ops::DerefMut; pub fn connect_rule_window_close(gui_data: &GuiData) { - let window_with_rules = gui_data.window_rules.window_with_rules.clone(); - let window_main = gui_data.window_main.clone(); - - let rules = gui_data.rules.clone(); - - window_with_rules.hide_on_delete(); - window_with_rules.connect_delete_event(move |e, _y| { - let mut rules = rules.borrow_mut(); - let rules = rules.deref_mut(); - - rules.edit_mode = None; // Reset in case of cancelling editing of rules - - window_main.set_sensitive(true); - e.hide(); - gtk::Inhibit(true) - }); + // TODO GTK 4 + // let window_with_rules = gui_data.window_rules.window_with_rules.clone(); + // let window_main = gui_data.window_main.clone(); + // + // let rules = gui_data.rules.clone(); + // + // window_with_rules.hide_on_delete(); + // window_with_rules.connect_delete_event(move |e, _y| { + // let mut rules = rules.borrow_mut(); + // let rules = rules.deref_mut(); + // + // rules.edit_mode = None; // Reset in case of cancelling editing of rules + // + // window_main.set_sensitive(true); + // e.hide(); + // gtk4::Inhibit(true) + // }); } diff --git a/src/connect_rule_window_custom_click.rs b/src/connect_rule_window_custom_click.rs index 238eb8c..835bee2 100644 --- a/src/connect_rule_window_custom_click.rs +++ b/src/connect_rule_window_custom_click.rs @@ -1,8 +1,7 @@ use crate::example_fields::update_examples; use crate::gui_data::GuiData; use crate::help_function::validate_name; -use gtk::prelude::*; -use gtk::EditableSignals; +use gtk4::prelude::*; pub fn connect_rule_window_custom_click(gui_data: &GuiData) { let window_rules = gui_data.window_rules.clone(); diff --git a/src/connect_rule_window_normalize_click.rs b/src/connect_rule_window_normalize_click.rs index 34694fa..9d9247e 100644 --- a/src/connect_rule_window_normalize_click.rs +++ b/src/connect_rule_window_normalize_click.rs @@ -1,18 +1,19 @@ use crate::example_fields::update_examples; use crate::gui_data::GuiData; -use gtk::prelude::*; +use gtk4::prelude::*; pub fn connect_rule_window_normalize_click(gui_data: &GuiData) { - let window_rules = gui_data.window_rules.clone(); - - let check_button_normalize_everything = gui_data.window_rules.normalize.check_button_normalize_everything.clone(); - let check_button_normalize_partial = gui_data.window_rules.normalize.check_button_normalize_partial.clone(); - - check_button_normalize_everything.connect_clicked(move |_e| { - update_examples(&window_rules, None); - }); - let window_rules = gui_data.window_rules.clone(); - check_button_normalize_partial.connect_clicked(move |_e| { - update_examples(&window_rules, None); - }); + // TODO GTK 4 + // let window_rules = gui_data.window_rules.clone(); + // + // let check_button_normalize_everything = gui_data.window_rules.normalize.check_button_normalize_everything.clone(); + // let check_button_normalize_partial = gui_data.window_rules.normalize.check_button_normalize_partial.clone(); + // + // check_button_normalize_everything.connect_activate(move |_e| { + // update_examples(&window_rules, None); + // }); + // let window_rules = gui_data.window_rules.clone(); + // check_button_normalize_partial.connect_clicked(move |_e| { + // update_examples(&window_rules, None); + // }); } diff --git a/src/connect_rule_window_purge_click.rs b/src/connect_rule_window_purge_click.rs index 8f4e381..c782d20 100644 --- a/src/connect_rule_window_purge_click.rs +++ b/src/connect_rule_window_purge_click.rs @@ -1,23 +1,24 @@ use crate::example_fields::update_examples; use crate::gui_data::GuiData; -use gtk::prelude::*; +use gtk4::prelude::*; pub fn connect_rule_window_purge_click(gui_data: &GuiData) { - let window_rules = gui_data.window_rules.clone(); - - let check_button_purge_both = gui_data.window_rules.purge.check_button_purge_both.clone(); - let check_button_purge_name = gui_data.window_rules.purge.check_button_purge_name.clone(); - let check_button_purge_extension = gui_data.window_rules.purge.check_button_purge_extension.clone(); - - check_button_purge_extension.connect_clicked(move |_e| { - update_examples(&window_rules, None); - }); - let window_rules = gui_data.window_rules.clone(); - check_button_purge_name.connect_clicked(move |_e| { - update_examples(&window_rules, None); - }); - let window_rules = gui_data.window_rules.clone(); - check_button_purge_both.connect_clicked(move |_e| { - update_examples(&window_rules, None); - }); + // TODO GTK 4 + // let window_rules = gui_data.window_rules.clone(); + // + // let check_button_purge_both = gui_data.window_rules.purge.check_button_purge_both.clone(); + // let check_button_purge_name = gui_data.window_rules.purge.check_button_purge_name.clone(); + // let check_button_purge_extension = gui_data.window_rules.purge.check_button_purge_extension.clone(); + // + // check_button_purge_extension.connect_clicked(move |_e| { + // update_examples(&window_rules, None); + // }); + // let window_rules = gui_data.window_rules.clone(); + // check_button_purge_name.connect_clicked(move |_e| { + // update_examples(&window_rules, None); + // }); + // let window_rules = gui_data.window_rules.clone(); + // check_button_purge_both.connect_clicked(move |_e| { + // update_examples(&window_rules, None); + // }); } diff --git a/src/connect_rule_window_replace_click.rs b/src/connect_rule_window_replace_click.rs index 1dac17b..983e9d4 100644 --- a/src/connect_rule_window_replace_click.rs +++ b/src/connect_rule_window_replace_click.rs @@ -1,50 +1,51 @@ use crate::example_fields::update_examples; use crate::gui_data::GuiData; use crate::help_function::validate_name; -use gtk::prelude::*; +use gtk4::prelude::*; pub fn connect_rule_window_replace_click(gui_data: &GuiData) { - let window_rules = gui_data.window_rules.clone(); - - let check_button_replace_name = gui_data.window_rules.replace.check_button_replace_name.clone(); - let check_button_replace_extension = gui_data.window_rules.replace.check_button_replace_extension.clone(); - let check_button_replace_both = gui_data.window_rules.replace.check_button_replace_both.clone(); - - let check_button_replace_case_insensitive = gui_data.window_rules.replace.check_button_replace_case_insensitive.clone(); - let check_button_replace_case_sensitive = gui_data.window_rules.replace.check_button_replace_case_sensitive.clone(); - - let entry_replace_text_to_change = gui_data.window_rules.replace.entry_replace_text_to_change.clone(); - let entry_replace_text_to_remove = gui_data.window_rules.replace.entry_replace_text_to_remove.clone(); - - check_button_replace_name.connect_clicked(move |_e| { - update_examples(&window_rules, None); - }); - let window_rules = gui_data.window_rules.clone(); - check_button_replace_extension.connect_clicked(move |_e| { - update_examples(&window_rules, None); - }); - let window_rules = gui_data.window_rules.clone(); - check_button_replace_both.connect_clicked(move |_e| { - update_examples(&window_rules, None); - }); - - let window_rules = gui_data.window_rules.clone(); - check_button_replace_case_sensitive.connect_clicked(move |_e| { - update_examples(&window_rules, None); - }); - let window_rules = gui_data.window_rules.clone(); - check_button_replace_case_insensitive.connect_clicked(move |_e| { - update_examples(&window_rules, None); - }); - - let window_rules = gui_data.window_rules.clone(); - entry_replace_text_to_remove.connect_changed(move |e| { - e.set_text(validate_name(e.text().to_string()).as_str()); - update_examples(&window_rules, None); - }); - let window_rules = gui_data.window_rules.clone(); - entry_replace_text_to_change.connect_changed(move |e| { - e.set_text(validate_name(e.text().to_string()).as_str()); - update_examples(&window_rules, None); - }); + // TODO GTK 4 + // let window_rules = gui_data.window_rules.clone(); + // + // let check_button_replace_name = gui_data.window_rules.replace.check_button_replace_name.clone(); + // let check_button_replace_extension = gui_data.window_rules.replace.check_button_replace_extension.clone(); + // let check_button_replace_both = gui_data.window_rules.replace.check_button_replace_both.clone(); + // + // let check_button_replace_case_insensitive = gui_data.window_rules.replace.check_button_replace_case_insensitive.clone(); + // let check_button_replace_case_sensitive = gui_data.window_rules.replace.check_button_replace_case_sensitive.clone(); + // + // let entry_replace_text_to_change = gui_data.window_rules.replace.entry_replace_text_to_change.clone(); + // let entry_replace_text_to_remove = gui_data.window_rules.replace.entry_replace_text_to_remove.clone(); + // + // check_button_replace_name.connect_clicked(move |_e| { + // update_examples(&window_rules, None); + // }); + // let window_rules = gui_data.window_rules.clone(); + // check_button_replace_extension.connect_clicked(move |_e| { + // update_examples(&window_rules, None); + // }); + // let window_rules = gui_data.window_rules.clone(); + // check_button_replace_both.connect_clicked(move |_e| { + // update_examples(&window_rules, None); + // }); + // + // let window_rules = gui_data.window_rules.clone(); + // check_button_replace_case_sensitive.connect_clicked(move |_e| { + // update_examples(&window_rules, None); + // }); + // let window_rules = gui_data.window_rules.clone(); + // check_button_replace_case_insensitive.connect_clicked(move |_e| { + // update_examples(&window_rules, None); + // }); + // + // let window_rules = gui_data.window_rules.clone(); + // entry_replace_text_to_remove.connect_changed(move |e| { + // e.set_text(validate_name(e.text().to_string()).as_str()); + // update_examples(&window_rules, None); + // }); + // let window_rules = gui_data.window_rules.clone(); + // entry_replace_text_to_change.connect_changed(move |e| { + // e.set_text(validate_name(e.text().to_string()).as_str()); + // update_examples(&window_rules, None); + // }); } diff --git a/src/connect_rule_window_size_letters_click.rs b/src/connect_rule_window_size_letters_click.rs index 4699917..35db0c6 100644 --- a/src/connect_rule_window_size_letters_click.rs +++ b/src/connect_rule_window_size_letters_click.rs @@ -1,32 +1,33 @@ use crate::example_fields::update_examples; use crate::gui_data::GuiData; -use gtk::prelude::*; +use gtk4::prelude::*; pub fn connect_rule_window_size_letters_click(gui_data: &GuiData) { - let window_rules = gui_data.window_rules.clone(); - let check_button_letters_usage_both = gui_data.window_rules.size_letters.check_button_letters_usage_both.clone(); - let check_button_letters_usage_name = gui_data.window_rules.size_letters.check_button_letters_usage_name.clone(); - let check_button_letters_usage_extension = gui_data.window_rules.size_letters.check_button_letters_usage_extension.clone(); - let check_button_letters_type_lowercase = gui_data.window_rules.size_letters.check_button_letters_type_lowercase.clone(); - let check_button_letters_type_uppercase = gui_data.window_rules.size_letters.check_button_letters_type_uppercase.clone(); - - check_button_letters_type_lowercase.connect_clicked(move |_e| { - update_examples(&window_rules, None); - }); - let window_rules = gui_data.window_rules.clone(); - check_button_letters_type_uppercase.connect_clicked(move |_e| { - update_examples(&window_rules, None); - }); - let window_rules = gui_data.window_rules.clone(); - check_button_letters_usage_extension.connect_clicked(move |_e| { - update_examples(&window_rules, None); - }); - let window_rules = gui_data.window_rules.clone(); - check_button_letters_usage_name.connect_clicked(move |_e| { - update_examples(&window_rules, None); - }); - let window_rules = gui_data.window_rules.clone(); - check_button_letters_usage_both.connect_clicked(move |_e| { - update_examples(&window_rules, None); - }); + // TODO GTK 4 + // let window_rules = gui_data.window_rules.clone(); + // let check_button_letters_usage_both = gui_data.window_rules.size_letters.check_button_letters_usage_both.clone(); + // let check_button_letters_usage_name = gui_data.window_rules.size_letters.check_button_letters_usage_name.clone(); + // let check_button_letters_usage_extension = gui_data.window_rules.size_letters.check_button_letters_usage_extension.clone(); + // let check_button_letters_type_lowercase = gui_data.window_rules.size_letters.check_button_letters_type_lowercase.clone(); + // let check_button_letters_type_uppercase = gui_data.window_rules.size_letters.check_button_letters_type_uppercase.clone(); + // + // check_button_letters_type_lowercase.connect_clicked(move |_e| { + // update_examples(&window_rules, None); + // }); + // let window_rules = gui_data.window_rules.clone(); + // check_button_letters_type_uppercase.connect_clicked(move |_e| { + // update_examples(&window_rules, None); + // }); + // let window_rules = gui_data.window_rules.clone(); + // check_button_letters_usage_extension.connect_clicked(move |_e| { + // update_examples(&window_rules, None); + // }); + // let window_rules = gui_data.window_rules.clone(); + // check_button_letters_usage_name.connect_clicked(move |_e| { + // update_examples(&window_rules, None); + // }); + // let window_rules = gui_data.window_rules.clone(); + // check_button_letters_usage_both.connect_clicked(move |_e| { + // update_examples(&window_rules, None); + // }); } diff --git a/src/connect_rule_window_trim_click.rs b/src/connect_rule_window_trim_click.rs index 50146a4..55cd296 100644 --- a/src/connect_rule_window_trim_click.rs +++ b/src/connect_rule_window_trim_click.rs @@ -1,47 +1,47 @@ use crate::example_fields::update_examples; use crate::gui_data::GuiData; use crate::help_function::validate_name; -use gtk::prelude::*; -use gtk::EditableSignals; +use gtk4::prelude::*; pub fn connect_rule_window_trim_click(gui_data: &GuiData) { - let window_rules = gui_data.window_rules.clone(); - - let check_button_trim_name_start = gui_data.window_rules.trim.check_button_trim_name_start.clone(); - let check_button_trim_name_end = gui_data.window_rules.trim.check_button_trim_name_end.clone(); - let check_button_trim_extension_start = gui_data.window_rules.trim.check_button_trim_extension_start.clone(); - let check_button_trim_extension_end = gui_data.window_rules.trim.check_button_trim_extension_end.clone(); - let check_button_trim_case_insensitive = gui_data.window_rules.trim.check_button_trim_case_insensitive.clone(); - let check_button_trim_case_sensitive = gui_data.window_rules.trim.check_button_trim_case_sensitive.clone(); - - let entry_add_text_text_to_trim = gui_data.window_rules.trim.entry_add_text_text_to_trim.clone(); - - check_button_trim_name_start.connect_clicked(move |_e| { - update_examples(&window_rules, None); - }); - let window_rules = gui_data.window_rules.clone(); - check_button_trim_name_end.connect_clicked(move |_e| { - update_examples(&window_rules, None); - }); - let window_rules = gui_data.window_rules.clone(); - check_button_trim_extension_start.connect_clicked(move |_e| { - update_examples(&window_rules, None); - }); - let window_rules = gui_data.window_rules.clone(); - check_button_trim_extension_end.connect_clicked(move |_e| { - update_examples(&window_rules, None); - }); - let window_rules = gui_data.window_rules.clone(); - check_button_trim_case_insensitive.connect_clicked(move |_e| { - update_examples(&window_rules, None); - }); - let window_rules = gui_data.window_rules.clone(); - check_button_trim_case_sensitive.connect_clicked(move |_e| { - update_examples(&window_rules, None); - }); - let window_rules = gui_data.window_rules.clone(); - entry_add_text_text_to_trim.connect_changed(move |e| { - e.set_text(validate_name(e.text().to_string()).as_str()); - update_examples(&window_rules, None); - }); + // TODO GTK 4 + // let window_rules = gui_data.window_rules.clone(); + // + // let check_button_trim_name_start = gui_data.window_rules.trim.check_button_trim_name_start.clone(); + // let check_button_trim_name_end = gui_data.window_rules.trim.check_button_trim_name_end.clone(); + // let check_button_trim_extension_start = gui_data.window_rules.trim.check_button_trim_extension_start.clone(); + // let check_button_trim_extension_end = gui_data.window_rules.trim.check_button_trim_extension_end.clone(); + // let check_button_trim_case_insensitive = gui_data.window_rules.trim.check_button_trim_case_insensitive.clone(); + // let check_button_trim_case_sensitive = gui_data.window_rules.trim.check_button_trim_case_sensitive.clone(); + // + // let entry_add_text_text_to_trim = gui_data.window_rules.trim.entry_add_text_text_to_trim.clone(); + // + // check_button_trim_name_start.connect_clicked(move |_e| { + // update_examples(&window_rules, None); + // }); + // let window_rules = gui_data.window_rules.clone(); + // check_button_trim_name_end.connect_clicked(move |_e| { + // update_examples(&window_rules, None); + // }); + // let window_rules = gui_data.window_rules.clone(); + // check_button_trim_extension_start.connect_clicked(move |_e| { + // update_examples(&window_rules, None); + // }); + // let window_rules = gui_data.window_rules.clone(); + // check_button_trim_extension_end.connect_clicked(move |_e| { + // update_examples(&window_rules, None); + // }); + // let window_rules = gui_data.window_rules.clone(); + // check_button_trim_case_insensitive.connect_clicked(move |_e| { + // update_examples(&window_rules, None); + // }); + // let window_rules = gui_data.window_rules.clone(); + // check_button_trim_case_sensitive.connect_clicked(move |_e| { + // update_examples(&window_rules, None); + // }); + // let window_rules = gui_data.window_rules.clone(); + // entry_add_text_text_to_trim.connect_changed(move |e| { + // e.set_text(validate_name(e.text().to_string()).as_str()); + // update_examples(&window_rules, None); + // }); } diff --git a/src/connect_select_records.rs b/src/connect_select_records.rs index d988c1e..e375112 100644 --- a/src/connect_select_records.rs +++ b/src/connect_select_records.rs @@ -1,7 +1,7 @@ use crate::gui_data::GuiData; use crate::help_function::{get_list_store_from_tree_view, regex_check, ColumnsResults}; -use gtk::prelude::*; -use gtk::{PositionType, TreeIter}; +use gtk4::prelude::*; +use gtk4::{PositionType, TreeIter}; pub fn connect_select_records(gui_data: &GuiData) { let popover_select = gui_data.popover_select.popover_select.clone(); @@ -9,7 +9,7 @@ pub fn connect_select_records(gui_data: &GuiData) { let button_select = gui_data.upper_buttons.button_select_popup.clone(); button_select.connect_clicked(move |bs| { popover_select.set_position(PositionType::Left); - popover_select.set_relative_to(Some(bs)); + // popover_select.set_relative_to(Some(bs)); // TODO GTK 4 - Change button to MenuButton popover_select.popup(); }); } @@ -50,7 +50,7 @@ pub fn connect_select_reverse(gui_data: &GuiData) { selection.select_iter(&tree_iter_all); } else { tree_iter_selected = tree_model.iter(vector_tree_path.get(current_path_index).unwrap()).unwrap(); - if tree_model.path(&tree_iter_all).unwrap() == tree_model.path(&tree_iter_selected).unwrap() { + if tree_model.path(&tree_iter_all) == tree_model.path(&tree_iter_selected) { selection.unselect_iter(&tree_iter_selected); current_path_index += 1; } else { @@ -78,8 +78,8 @@ pub fn connect_select_changed(gui_data: &GuiData) { if let Some(iter) = model.iter_first() { loop { - let old_name = model.value(&iter, ColumnsResults::CurrentName as i32).get::().unwrap(); - let new_name = model.value(&iter, ColumnsResults::FutureName as i32).get::().unwrap(); + let old_name = model.get::(&iter, ColumnsResults::CurrentName as i32); + let new_name = model.get::(&iter, ColumnsResults::FutureName as i32); if new_name != old_name { selection.select_iter(&iter); @@ -105,8 +105,8 @@ pub fn connect_unselect_changed(gui_data: &GuiData) { if let Some(iter) = model.iter_first() { loop { - let old_name = model.value(&iter, ColumnsResults::CurrentName as i32).get::().unwrap(); - let new_name = model.value(&iter, ColumnsResults::FutureName as i32).get::().unwrap(); + let old_name = model.get::(&iter, ColumnsResults::CurrentName as i32); + let new_name = model.get::(&iter, ColumnsResults::FutureName as i32); if new_name != old_name { selection.unselect_iter(&iter); @@ -143,31 +143,31 @@ pub fn connect_select_custom(gui_data: &GuiData) { // Accept Dialog { let window_main = gui_data.window_main.clone(); - let confirmation_dialog_delete = gtk::Dialog::with_buttons(Some("Select custom"), Some(&window_main), gtk::DialogFlags::MODAL, &[("Ok", gtk::ResponseType::Ok), ("Close", gtk::ResponseType::Cancel)]); - let label: gtk::Label = gtk::Label::new(Some("Usage: */folder-nr*/* or name-version-*.txt")); + let confirmation_dialog_delete = gtk4::Dialog::with_buttons(Some("Select custom"), Some(&window_main), gtk4::DialogFlags::MODAL, &[("Ok", gtk4::ResponseType::Ok), ("Close", gtk4::ResponseType::Cancel)]); + let label: gtk4::Label = gtk4::Label::new(Some("Usage: */folder-nr*/* or name-version-*.txt")); - let radio_path = gtk::CheckButton::with_label("Path"); - let radio_current_name = gtk::CheckButton::with_label("Current Name"); - let radio_future_name = gtk::CheckButton::with_label("Future Name"); - let radio_current_name_path = gtk::CheckButton::with_label("Path + Current Name"); - let radio_future_name_path = gtk::CheckButton::with_label("Path + Future Name"); - let radio_is_dir = gtk::CheckButton::with_label("Directory/File"); + let radio_path = gtk4::CheckButton::with_label("Path"); + let radio_current_name = gtk4::CheckButton::with_label("Current Name"); + let radio_future_name = gtk4::CheckButton::with_label("Future Name"); + let radio_current_name_path = gtk4::CheckButton::with_label("Path + Current Name"); + let radio_future_name_path = gtk4::CheckButton::with_label("Path + Future Name"); + let radio_is_dir = gtk4::CheckButton::with_label("Directory/File"); - let entry_path = gtk::Entry::new(); - let entry_current_name = gtk::Entry::new(); - let entry_future_name = gtk::Entry::new(); - let entry_current_name_path = gtk::Entry::new(); - let entry_future_name_path = gtk::Entry::new(); - let check_button_is_dir = gtk::CheckButton::new(); + let entry_path = gtk4::Entry::new(); + let entry_current_name = gtk4::Entry::new(); + let entry_future_name = gtk4::Entry::new(); + let entry_current_name_path = gtk4::Entry::new(); + let entry_future_name_path = gtk4::Entry::new(); + let check_button_is_dir = gtk4::CheckButton::new(); - check_button_is_dir.set_label("Select Directory"); + check_button_is_dir.set_label(Some("Select Directory")); label.set_margin_bottom(5); label.set_margin_end(5); label.set_margin_start(5); // TODO Label should have const width, and rest should fill entry, but for now is 50%-50% - let grid = gtk::Grid::new(); + let grid = gtk4::Grid::new(); grid.set_row_homogeneous(true); grid.set_column_homogeneous(true); @@ -189,16 +189,16 @@ pub fn connect_select_custom(gui_data: &GuiData) { for widgets in confirmation_dialog_delete.children() { // By default GtkBox is child of dialog, so we can easily add other things to it - widgets.downcast::().unwrap().add(&grid); + widgets.downcast::().unwrap().add(&grid); } - confirmation_dialog_delete.show_all(); + confirmation_dialog_delete.show(); let tree_view = tree_view.clone(); confirmation_dialog_delete.connect_response(move |_chooser, response_type| { let wildcard_type: WildcardType; let wildcard: String; - if response_type == gtk::ResponseType::Ok { + if response_type == gtk4::ResponseType::Ok { if radio_path.is_active() { wildcard_type = WildcardType::Path; wildcard = entry_path.text().to_string(); @@ -238,10 +238,10 @@ pub fn connect_select_custom(gui_data: &GuiData) { let tree_iter = tree_model.iter_first().unwrap(); // Never should be available button where there is no available records loop { - let typ = tree_model.value(&tree_iter, ColumnsResults::Type as i32).get::().unwrap(); - let path = tree_model.value(&tree_iter, ColumnsResults::Path as i32).get::().unwrap(); - let current_name = tree_model.value(&tree_iter, ColumnsResults::CurrentName as i32).get::().unwrap(); - let future_name = tree_model.value(&tree_iter, ColumnsResults::CurrentName as i32).get::().unwrap(); + let typ = tree_model.get::(&tree_iter, ColumnsResults::Type as i32); + let path = tree_model.get::(&tree_iter, ColumnsResults::Path as i32); + let current_name = tree_model.get::(&tree_iter, ColumnsResults::CurrentName as i32); + let future_name = tree_model.get::(&tree_iter, ColumnsResults::CurrentName as i32); match wildcard_type { WildcardType::Path => { if regex_check(wildcard, path) { @@ -316,31 +316,31 @@ pub fn connect_unselect_custom(gui_data: &GuiData) { // Accept Dialog { let window_main = gui_data.window_main.clone(); - let confirmation_dialog_delete = gtk::Dialog::with_buttons(Some("Unselect custom"), Some(&window_main), gtk::DialogFlags::MODAL, &[("Ok", gtk::ResponseType::Ok), ("Close", gtk::ResponseType::Cancel)]); - let label: gtk::Label = gtk::Label::new(Some("Usage: */folder-nr*/* or name-version-*.txt")); + let confirmation_dialog_delete = gtk4::Dialog::with_buttons(Some("Unselect custom"), Some(&window_main), gtk4::DialogFlags::MODAL, &[("Ok", gtk4::ResponseType::Ok), ("Close", gtk4::ResponseType::Cancel)]); + let label: gtk4::Label = gtk4::Label::new(Some("Usage: */folder-nr*/* or name-version-*.txt")); - let radio_path = gtk::CheckButton::with_label("Path"); - let radio_current_name = gtk::CheckButton::with_label("Current Name"); - let radio_future_name = gtk::CheckButton::with_label("Future Name"); - let radio_current_name_path = gtk::CheckButton::with_label("Path + Current Name"); - let radio_future_name_path = gtk::CheckButton::with_label("Path + Future Name"); - let radio_is_dir = gtk::CheckButton::with_label("Directory/File"); + let radio_path = gtk4::CheckButton::with_label("Path"); + let radio_current_name = gtk4::CheckButton::with_label("Current Name"); + let radio_future_name = gtk4::CheckButton::with_label("Future Name"); + let radio_current_name_path = gtk4::CheckButton::with_label("Path + Current Name"); + let radio_future_name_path = gtk4::CheckButton::with_label("Path + Future Name"); + let radio_is_dir = gtk4::CheckButton::with_label("Directory/File"); - let entry_path = gtk::Entry::new(); - let entry_current_name = gtk::Entry::new(); - let entry_future_name = gtk::Entry::new(); - let entry_current_name_path = gtk::Entry::new(); - let entry_future_name_path = gtk::Entry::new(); - let check_button_is_dir = gtk::CheckButton::new(); + let entry_path = gtk4::Entry::new(); + let entry_current_name = gtk4::Entry::new(); + let entry_future_name = gtk4::Entry::new(); + let entry_current_name_path = gtk4::Entry::new(); + let entry_future_name_path = gtk4::Entry::new(); + let check_button_is_dir = gtk4::CheckButton::new(); - check_button_is_dir.set_label("Unselect Directory"); + check_button_is_dir.set_label(Some("Unselect Directory")); label.set_margin_bottom(5); label.set_margin_end(5); label.set_margin_start(5); // TODO Label should have const width, and rest should fill entry, but for now is 50%-50% - let grid = gtk::Grid::new(); + let grid = gtk4::Grid::new(); grid.set_row_homogeneous(true); grid.set_column_homogeneous(true); @@ -362,14 +362,14 @@ pub fn connect_unselect_custom(gui_data: &GuiData) { for widgets in confirmation_dialog_delete.children() { // By default GtkBox is child of dialog, so we can easily add other things to it - widgets.downcast::().unwrap().add(&grid); + widgets.downcast::().unwrap().add(&grid); } - confirmation_dialog_delete.show_all(); + confirmation_dialog_delete.show(); let tree_view = tree_view.clone(); confirmation_dialog_delete.connect_response(move |_, response| { - if response == gtk::ResponseType::Ok { + if response == gtk4::ResponseType::Ok { let wildcard: String; let wildcard_type: WildcardType; @@ -412,10 +412,10 @@ pub fn connect_unselect_custom(gui_data: &GuiData) { let tree_iter = tree_model.iter_first().unwrap(); // Never should be available button where there is no available records loop { - let typ = tree_model.value(&tree_iter, ColumnsResults::Type as i32).get::().unwrap(); - let path = tree_model.value(&tree_iter, ColumnsResults::Path as i32).get::().unwrap(); - let current_name = tree_model.value(&tree_iter, ColumnsResults::CurrentName as i32).get::().unwrap(); - let future_name = tree_model.value(&tree_iter, ColumnsResults::CurrentName as i32).get::().unwrap(); + let typ = tree_model.get::(&tree_iter, ColumnsResults::Type as i32); + let path = tree_model.get::(&tree_iter, ColumnsResults::Path as i32); + let current_name = tree_model.get::(&tree_iter, ColumnsResults::CurrentName as i32); + let future_name = tree_model.get::(&tree_iter, ColumnsResults::CurrentName as i32); match wildcard_type { WildcardType::Path => { if regex_check(wildcard, path) { diff --git a/src/connect_start_renaming.rs b/src/connect_start_renaming.rs index 4b1c221..d234d91 100644 --- a/src/connect_start_renaming.rs +++ b/src/connect_start_renaming.rs @@ -1,7 +1,7 @@ use crate::gui_data::GuiData; use crate::help_function::{count_rows_in_tree_view, create_message_window, get_list_store_from_tree_view, ColumnsResults, CHARACTER}; -use gtk::prelude::*; -use gtk::{DialogFlags, ScrolledWindow, TextView}; +use gtk4::prelude::*; +use gtk4::{DialogFlags, ScrolledWindow, TextView}; use std::collections::BTreeMap; use std::fs; use std::ops::DerefMut; @@ -31,15 +31,20 @@ pub fn connect_start_renaming(gui_data: &GuiData) { } if !rules.updated { - let chooser_update = gtk::Dialog::with_buttons(Some("Outdated results"), Some(&window_main), DialogFlags::DESTROY_WITH_PARENT, &[("Ok", gtk::ResponseType::Ok), ("Close", gtk::ResponseType::Cancel)]); - - let question_label = gtk::Label::new(Some( + let chooser_update = gtk4::Dialog::with_buttons( + Some("Outdated results"), + Some(&window_main), + DialogFlags::DESTROY_WITH_PARENT, + &[("Ok", gtk4::ResponseType::Ok), ("Close", gtk4::ResponseType::Cancel)], + ); + + let question_label = gtk4::Label::new(Some( "Some records are not updated, you can do it by clicking at the Update Names button.\nAre you sure that you want to proceed without updating names?", )); - let chooser_box = chooser_update.children()[0].clone().downcast::().unwrap(); + let chooser_box = chooser_update.children()[0].clone().downcast::().unwrap(); chooser_box.add(&question_label); - chooser_box.show_all(); + chooser_box.show(); chooser_update.connect_response(move |dialog, _| { dialog.close(); @@ -47,13 +52,18 @@ pub fn connect_start_renaming(gui_data: &GuiData) { }); } - let chooser = gtk::Dialog::with_buttons(Some("Confirm renaming"), Some(&window_main), DialogFlags::DESTROY_WITH_PARENT, &[("Ok", gtk::ResponseType::Ok), ("Close", gtk::ResponseType::Cancel)]); + let chooser = gtk4::Dialog::with_buttons( + Some("Confirm renaming"), + Some(&window_main), + DialogFlags::DESTROY_WITH_PARENT, + &[("Ok", gtk4::ResponseType::Ok), ("Close", gtk4::ResponseType::Cancel)], + ); - let question_label = gtk::Label::new(Some(format!("Are you sure that you want to rename {} files", number_of_renamed_files).as_str())); + let question_label = gtk4::Label::new(Some(format!("Are you sure that you want to rename {} files", number_of_renamed_files).as_str())); - let chooser_box = chooser.children()[0].clone().downcast::().unwrap(); + let chooser_box = chooser.children()[0].clone().downcast::().unwrap(); chooser_box.add(&question_label); - chooser_box.show_all(); + chooser_box.show(); let shared_result_entries = shared_result_entries.clone(); let list_store = list_store.clone(); @@ -67,16 +77,16 @@ pub fn connect_start_renaming(gui_data: &GuiData) { let mut properly_renamed = 0; let mut ignored = 0; - if response_type == gtk::ResponseType::Ok { + if response_type == gtk4::ResponseType::Ok { let tree_iter = list_store.iter_first().unwrap(); let mut file_renames: Vec<(String, String)> = Vec::new(); let mut folder_renames: BTreeMap> = Default::default(); loop { - let path = list_store.value(&tree_iter, ColumnsResults::Path as i32).get::().unwrap(); - let old_name = format!("{}{}{}", path, CHARACTER, list_store.value(&tree_iter, ColumnsResults::CurrentName as i32).get::().unwrap()); - let new_name = format!("{}{}{}", path, CHARACTER, list_store.value(&tree_iter, ColumnsResults::FutureName as i32).get::().unwrap()); - let typ = list_store.value(&tree_iter, ColumnsResults::Type as i32).get::().unwrap(); + let path = list_store.get::(&tree_iter, ColumnsResults::Path as i32); + let old_name = format!("{}{}{}", path, CHARACTER, list_store.get::(&tree_iter, ColumnsResults::CurrentName as i32)); + let new_name = format!("{}{}{}", path, CHARACTER, list_store.get::(&tree_iter, ColumnsResults::FutureName as i32)); + let typ = list_store.get::(&tree_iter, ColumnsResults::Type as i32); if typ == "Dir" { let how_much = old_name.matches(CHARACTER).count(); @@ -137,33 +147,32 @@ pub fn connect_start_renaming(gui_data: &GuiData) { }); } -fn create_results_dialog(window_main: >k::Window, properly_renamed: u32, ignored: u32, failed_vector: Vec<(String, String, String)>) { - let chooser = gtk::Dialog::with_buttons(Some("Results of renaming"), Some(window_main), DialogFlags::DESTROY_WITH_PARENT, &[("Ok", gtk::ResponseType::Ok)]); +fn create_results_dialog(window_main: >k4::Window, properly_renamed: u32, ignored: u32, failed_vector: Vec<(String, String, String)>) { + let chooser = gtk4::Dialog::with_buttons(Some("Results of renaming"), Some(window_main), DialogFlags::DESTROY_WITH_PARENT, &[("Ok", gtk4::ResponseType::Ok)]); - let label_good = gtk::Label::new(Some(format!("Properly renamed {} files", properly_renamed).as_str())); - let label_ignored = gtk::Label::new(Some(format!("Ignored {} files, because the name before and after the change are the same.", ignored).as_str())); + let label_good = gtk4::Label::new(Some(format!("Properly renamed {} files", properly_renamed).as_str())); + let label_ignored = gtk4::Label::new(Some(format!("Ignored {} files, because the name before and after the change are the same.", ignored).as_str())); - let chooser_box = chooser.children()[0].clone().downcast::().unwrap(); + let chooser_box = chooser.children()[0].clone().downcast::().unwrap(); chooser_box.add(&label_good); chooser_box.add(&label_ignored); - let label_bad = gtk::Label::new(Some(format!("Failed to rename {} files", failed_vector.len()).as_str())); + let label_bad = gtk4::Label::new(Some(format!("Failed to rename {} files", failed_vector.len()).as_str())); chooser_box.add(&label_bad); if !failed_vector.is_empty() { chooser.set_default_size(800, 200); - let label_info_bad = gtk::Label::new(Some("List of all failing renames")); + let label_info_bad = gtk4::Label::new(Some("List of all failing renames")); label_info_bad.set_margin_top(10); chooser_box.add(&label_info_bad); - let adj_op1: Option<>k::Adjustment> = None; - let adj_op2: Option<>k::Adjustment> = None; - let txt_op1: Option<>k::TextTagTable> = None; + let txt_op1: Option<>k4::TextTagTable> = None; - let scrolled_window = ScrolledWindow::new(adj_op1, adj_op2); + let scrolled_window = ScrolledWindow::new(); let text_view = TextView::new(); - text_view.set_expand(true); - let buffer = gtk::TextBuffer::new(txt_op1); + text_view.set_hexpand(true); + text_view.set_vexpand(true); + let buffer = gtk4::TextBuffer::new(txt_op1); text_view.set_buffer(Some(&buffer)); let mut text = "".to_string(); @@ -177,12 +186,12 @@ fn create_results_dialog(window_main: >k::Window, properly_renamed: u32, ignor } buffer.set_text(&text); - scrolled_window.add(&text_view); + scrolled_window.set_child(Some(&text_view)); // TODO Created Scrolled Window with explanation about each failed example of renaming chooser_box.add(&scrolled_window); } - chooser_box.show_all(); + chooser_box.show(); chooser.connect_response(|_, _| {}); } diff --git a/src/create_tree_view.rs b/src/create_tree_view.rs index 329a39c..e81b7db 100644 --- a/src/create_tree_view.rs +++ b/src/create_tree_view.rs @@ -1,10 +1,10 @@ use crate::help_function::{ColumnsResults, ColumnsRules}; -use gtk::prelude::*; -use gtk::TreeViewColumn; +use gtk4::prelude::*; +use gtk4::TreeViewColumn; -pub fn create_tree_view_results(tree_view: >k::TreeView) { - let renderer = gtk::CellRendererText::new(); - let column: gtk::TreeViewColumn = TreeViewColumn::new(); +pub fn create_tree_view_results(tree_view: >k4::TreeView) { + let renderer = gtk4::CellRendererText::new(); + let column: gtk4::TreeViewColumn = TreeViewColumn::new(); column.pack_start(&renderer, true); column.set_title("Type"); column.set_resizable(false); @@ -13,8 +13,8 @@ pub fn create_tree_view_results(tree_view: >k::TreeView) { column.add_attribute(&renderer, "text", ColumnsResults::Type as i32); tree_view.append_column(&column); - let renderer = gtk::CellRendererText::new(); - let column: gtk::TreeViewColumn = TreeViewColumn::new(); + let renderer = gtk4::CellRendererText::new(); + let column: gtk4::TreeViewColumn = TreeViewColumn::new(); column.pack_start(&renderer, true); column.set_title("Current Name"); column.set_resizable(true); @@ -23,8 +23,8 @@ pub fn create_tree_view_results(tree_view: >k::TreeView) { column.add_attribute(&renderer, "text", ColumnsResults::CurrentName as i32); tree_view.append_column(&column); - let renderer = gtk::CellRendererText::new(); - let column: gtk::TreeViewColumn = TreeViewColumn::new(); + let renderer = gtk4::CellRendererText::new(); + let column: gtk4::TreeViewColumn = TreeViewColumn::new(); column.pack_start(&renderer, true); column.set_title("Future Name"); column.set_resizable(true); @@ -33,8 +33,8 @@ pub fn create_tree_view_results(tree_view: >k::TreeView) { column.add_attribute(&renderer, "text", ColumnsResults::FutureName as i32); tree_view.append_column(&column); - let renderer = gtk::CellRendererText::new(); - let column: gtk::TreeViewColumn = TreeViewColumn::new(); + let renderer = gtk4::CellRendererText::new(); + let column: gtk4::TreeViewColumn = TreeViewColumn::new(); column.pack_start(&renderer, true); column.set_title("Path"); column.set_resizable(true); @@ -45,9 +45,9 @@ pub fn create_tree_view_results(tree_view: >k::TreeView) { tree_view.set_vexpand(true); } -pub fn create_tree_view_rules(tree_view: >k::TreeView) { - // let renderer = gtk::CellRendererText::new(); - // let column: gtk::TreeViewColumn = TreeViewColumn::new(); +pub fn create_tree_view_rules(tree_view: >k4::TreeView) { + // let renderer = gtk4::CellRendererText::new(); + // let column: gtk4::TreeViewColumn = TreeViewColumn::new(); // column.pack_start(&renderer, true); // column.set_title("Number"); // column.set_resizable(true); @@ -55,8 +55,8 @@ pub fn create_tree_view_rules(tree_view: >k::TreeView) { // column.add_attribute(&renderer, "text", ColumnsRules::RuleNumber as i32); // tree_view.append_column(&column); - let renderer = gtk::CellRendererText::new(); - let column: gtk::TreeViewColumn = TreeViewColumn::new(); + let renderer = gtk4::CellRendererText::new(); + let column: gtk4::TreeViewColumn = TreeViewColumn::new(); column.pack_start(&renderer, true); column.set_title("Tool Type"); column.set_resizable(true); @@ -64,8 +64,8 @@ pub fn create_tree_view_rules(tree_view: >k::TreeView) { column.add_attribute(&renderer, "text", ColumnsRules::RuleType as i32); tree_view.append_column(&column); - let renderer = gtk::CellRendererText::new(); - let column: gtk::TreeViewColumn = TreeViewColumn::new(); + let renderer = gtk4::CellRendererText::new(); + let column: gtk4::TreeViewColumn = TreeViewColumn::new(); column.pack_start(&renderer, true); column.set_title("Usage Name"); column.set_resizable(true); @@ -73,8 +73,8 @@ pub fn create_tree_view_rules(tree_view: >k::TreeView) { column.add_attribute(&renderer, "text", ColumnsRules::UsageType as i32); tree_view.append_column(&column); - let renderer = gtk::CellRendererText::new(); - let column: gtk::TreeViewColumn = TreeViewColumn::new(); + let renderer = gtk4::CellRendererText::new(); + let column: gtk4::TreeViewColumn = TreeViewColumn::new(); column.pack_start(&renderer, true); column.set_title("Description"); column.set_resizable(true); diff --git a/src/example_fields.rs b/src/example_fields.rs index eb1ef7a..05d1648 100644 --- a/src/example_fields.rs +++ b/src/example_fields.rs @@ -3,7 +3,7 @@ use crate::gui_data::GuiData; use crate::help_function::{read_rule_from_window, validate_name}; use crate::notebook_enum::EXAMPLE_NAME; use crate::rules::Rules; -use gtk::prelude::*; +use gtk4::prelude::*; pub fn connect_update_examples(gui_data: &GuiData) { let notebook_choose_rule = gui_data.window_rules.notebook_choose_rule.clone(); diff --git a/src/gui_data.rs b/src/gui_data.rs index f548734..1ae1a2c 100644 --- a/src/gui_data.rs +++ b/src/gui_data.rs @@ -6,8 +6,8 @@ use crate::gui_data_upper_buttons::*; use crate::gui_popover_select::GuiPopoverSelect; use crate::help_function::ResultEntries; use crate::rules::Rules; -use gtk::prelude::*; -use gtk::{Builder, WindowPosition}; +use gtk4::prelude::*; +use gtk4::Builder; use std::cell::RefCell; use std::rc::Rc; @@ -18,7 +18,7 @@ pub struct GuiData { // pub builder: Builder, // Window - pub window_main: gtk::Window, + pub window_main: gtk4::Window, // Subcategories pub upper_buttons: GuiUpperButtons, @@ -51,10 +51,9 @@ impl GuiData { let builder_rule_chooser = Builder::from_string(rule_chooser_src.as_str()); //// Windows - let window_main: gtk::Window = builder_window_main.object("window_main").unwrap(); - window_main.set_position(WindowPosition::Center); - window_main.show_all(); - window_main.set_title("Szyszka"); + let window_main: gtk4::Window = builder_window_main.object("window_main").unwrap(); + window_main.show(); + window_main.set_title(Some("Szyszka")); let upper_buttons = GuiUpperButtons::create_from_builder(&builder_window_main); let results = GuiResults::create_from_builder(&builder_window_main); diff --git a/src/gui_data_results.rs b/src/gui_data_results.rs index 1ef683d..aa43296 100644 --- a/src/gui_data_results.rs +++ b/src/gui_data_results.rs @@ -1,15 +1,14 @@ -use gtk::prelude::*; -use gtk::TreeView; +use gtk4::TreeView; #[derive(Clone)] pub struct GuiResults { - pub scrolled_window_results: gtk::ScrolledWindow, - pub tree_view_results: gtk::TreeView, + pub scrolled_window_results: gtk4::ScrolledWindow, + pub tree_view_results: gtk4::TreeView, } impl GuiResults { - pub fn create_from_builder(builder: >k::Builder) -> Self { - let scrolled_window_results: gtk::ScrolledWindow = builder.object("scrolled_window_results").unwrap(); + pub fn create_from_builder(builder: >k4::Builder) -> Self { + let scrolled_window_results: gtk4::ScrolledWindow = builder.object("scrolled_window_results").unwrap(); let tree_view_results = TreeView::new(); Self { scrolled_window_results, tree_view_results } diff --git a/src/gui_data_rules_bottom_panel.rs b/src/gui_data_rules_bottom_panel.rs index 37a346b..6625ecc 100644 --- a/src/gui_data_rules_bottom_panel.rs +++ b/src/gui_data_rules_bottom_panel.rs @@ -1,28 +1,28 @@ use crate::fls; -use gtk::prelude::*; -use gtk::TreeView; +use gtk4::prelude::*; +use gtk4::TreeView; #[derive(Clone)] pub struct GuiRulesBottomPanel { - pub button_add_rule: gtk::Button, - pub button_edit_rule: gtk::Button, - pub button_remove_rule: gtk::Button, - pub button_rule_one_up: gtk::Button, - pub button_rule_one_down: gtk::Button, - pub scrolled_window_rules: gtk::ScrolledWindow, - pub tree_view_window_rules: gtk::TreeView, + pub button_add_rule: gtk4::Button, + pub button_edit_rule: gtk4::Button, + pub button_remove_rule: gtk4::Button, + pub button_rule_one_up: gtk4::Button, + pub button_rule_one_down: gtk4::Button, + pub scrolled_window_rules: gtk4::ScrolledWindow, + pub tree_view_window_rules: gtk4::TreeView, } impl GuiRulesBottomPanel { - pub fn create_from_builder(builder: >k::Builder) -> Self { - let button_add_rule: gtk::Button = builder.object("button_add_rule").unwrap(); - let button_edit_rule: gtk::Button = builder.object("button_edit_rule").unwrap(); - let button_remove_rule: gtk::Button = builder.object("button_remove_rule").unwrap(); - let button_rule_one_up: gtk::Button = builder.object("button_rule_one_up").unwrap(); - let button_rule_one_down: gtk::Button = builder.object("button_rule_one_down").unwrap(); - let scrolled_window_rules: gtk::ScrolledWindow = builder.object("scrolled_window_rules").unwrap(); + pub fn create_from_builder(builder: >k4::Builder) -> Self { + let button_add_rule: gtk4::Button = builder.object("button_add_rule").unwrap(); + let button_edit_rule: gtk4::Button = builder.object("button_edit_rule").unwrap(); + let button_remove_rule: gtk4::Button = builder.object("button_remove_rule").unwrap(); + let button_rule_one_up: gtk4::Button = builder.object("button_rule_one_up").unwrap(); + let button_rule_one_down: gtk4::Button = builder.object("button_rule_one_down").unwrap(); + let scrolled_window_rules: gtk4::ScrolledWindow = builder.object("scrolled_window_rules").unwrap(); - let tree_view_window_rules: gtk::TreeView = TreeView::new(); + let tree_view_window_rules: gtk4::TreeView = TreeView::new(); Self { button_add_rule, diff --git a/src/gui_data_settings.rs b/src/gui_data_settings.rs index 30e5b6a..03c6605 100644 --- a/src/gui_data_settings.rs +++ b/src/gui_data_settings.rs @@ -1,20 +1,20 @@ -use gtk::prelude::*; +use gtk4::prelude::*; #[derive(Clone)] pub struct GuiSettings { - pub window_settings: gtk::Window, - pub label_settings_general_language: gtk::Label, - pub combo_box_settings_language: gtk::ComboBoxText, + pub window_settings: gtk4::Window, + pub label_settings_general_language: gtk4::Label, + pub combo_box_settings_language: gtk4::ComboBoxText, } impl GuiSettings { - pub fn create_from_builder(builder: >k::Builder, window_main: >k::Window) -> Self { - let window_settings: gtk::Window = builder.object("window_settings").unwrap(); + pub fn create_from_builder(builder: >k4::Builder, window_main: >k4::Window) -> Self { + let window_settings: gtk4::Window = builder.object("window_settings").unwrap(); window_settings.set_modal(true); window_settings.set_transient_for(Some(window_main)); - let label_settings_general_language: gtk::Label = builder.object("label_settings_general_language").unwrap(); - let combo_box_settings_language: gtk::ComboBoxText = builder.object("combo_box_settings_language").unwrap(); + let label_settings_general_language: gtk4::Label = builder.object("label_settings_general_language").unwrap(); + let combo_box_settings_language: gtk4::ComboBoxText = builder.object("combo_box_settings_language").unwrap(); Self { window_settings, diff --git a/src/gui_data_upper_buttons.rs b/src/gui_data_upper_buttons.rs index 9fa505b..2f3dd5e 100644 --- a/src/gui_data_upper_buttons.rs +++ b/src/gui_data_upper_buttons.rs @@ -1,32 +1,32 @@ use crate::fls; -use gtk::prelude::*; +use gtk4::prelude::*; #[derive(Clone)] pub struct GuiUpperButtons { - pub button_setting: gtk::Button, - pub button_start_rename: gtk::Button, - pub button_remove_selection: gtk::Button, - pub button_add_files: gtk::Button, - pub button_add_folders: gtk::Button, - pub button_select_popup: gtk::Button, - pub button_update_names: gtk::Button, - pub label_files_folders: gtk::Label, - pub button_results_one_up: gtk::Button, - pub button_results_one_down: gtk::Button, + pub button_setting: gtk4::Button, + pub button_start_rename: gtk4::Button, + pub button_remove_selection: gtk4::Button, + pub button_add_files: gtk4::Button, + pub button_add_folders: gtk4::Button, + pub button_select_popup: gtk4::Button, + pub button_update_names: gtk4::Button, + pub label_files_folders: gtk4::Label, + pub button_results_one_up: gtk4::Button, + pub button_results_one_down: gtk4::Button, } impl GuiUpperButtons { - pub fn create_from_builder(builder: >k::Builder) -> Self { - let button_setting: gtk::Button = builder.object("button_setting").unwrap(); - let button_start_rename: gtk::Button = builder.object("button_start_rename").unwrap(); - let button_remove_selection: gtk::Button = builder.object("button_remove_selection").unwrap(); - let button_add_files: gtk::Button = builder.object("button_add_files").unwrap(); - let button_add_folders: gtk::Button = builder.object("button_add_folders").unwrap(); - let button_select_popup: gtk::Button = builder.object("button_select_popup").unwrap(); - let button_update_names: gtk::Button = builder.object("button_update_names").unwrap(); - let label_files_folders: gtk::Label = builder.object("label_files_folders").unwrap(); - let button_results_one_up: gtk::Button = builder.object("button_results_one_up").unwrap(); - let button_results_one_down: gtk::Button = builder.object("button_results_one_down").unwrap(); + pub fn create_from_builder(builder: >k4::Builder) -> Self { + let button_setting: gtk4::Button = builder.object("button_setting").unwrap(); + let button_start_rename: gtk4::Button = builder.object("button_start_rename").unwrap(); + let button_remove_selection: gtk4::Button = builder.object("button_remove_selection").unwrap(); + let button_add_files: gtk4::Button = builder.object("button_add_files").unwrap(); + let button_add_folders: gtk4::Button = builder.object("button_add_folders").unwrap(); + let button_select_popup: gtk4::Button = builder.object("button_select_popup").unwrap(); + let button_update_names: gtk4::Button = builder.object("button_update_names").unwrap(); + let label_files_folders: gtk4::Label = builder.object("label_files_folders").unwrap(); + let button_results_one_up: gtk4::Button = builder.object("button_results_one_up").unwrap(); + let button_results_one_down: gtk4::Button = builder.object("button_results_one_down").unwrap(); Self { button_setting, @@ -44,16 +44,16 @@ impl GuiUpperButtons { pub fn update_language(&self) { self.button_start_rename.set_label(&fls!("upper_start_renaming_button")); - // pub button_setting: gtk::Button, - // pub button_start_rename: gtk::Button, - // pub button_remove_selection: gtk::Button, - // pub button_add_files: gtk::Button, - // pub button_add_folders: gtk::Button, - // pub button_select_popup: gtk::Button, - // pub button_update_names: gtk::Button, - // pub label_files_folders: gtk::Label, - // pub button_results_one_up: gtk::Button, - // pub button_results_one_down: gtk::Button, + // pub button_setting: gtk4::Button, + // pub button_start_rename: gtk4::Button, + // pub button_remove_selection: gtk4::Button, + // pub button_add_files: gtk4::Button, + // pub button_add_folders: gtk4::Button, + // pub button_select_popup: gtk4::Button, + // pub button_update_names: gtk4::Button, + // pub label_files_folders: gtk4::Label, + // pub button_results_one_up: gtk4::Button, + // pub button_results_one_down: gtk4::Button, // self.check_button_music_title.set_label(&fls!("music_title_checkbox")); // self.check_button_music_artist.set_label(&fls!("music_artist_checkbox")); // self.check_button_music_album_title.set_label(&fls!("music_album_title_checkbox")); diff --git a/src/gui_popover_select.rs b/src/gui_popover_select.rs index 30f2a86..df3e551 100644 --- a/src/gui_popover_select.rs +++ b/src/gui_popover_select.rs @@ -1,25 +1,23 @@ -use gtk::prelude::*; - #[derive(Clone)] pub struct GuiPopoverSelect { - pub popover_select: gtk::Popover, - pub button_select_all: gtk::Button, - pub button_select_reverse: gtk::Button, - pub button_select_custom: gtk::Button, - pub button_unselect_custom: gtk::Button, - pub button_select_changed: gtk::Button, - pub button_unselect_changed: gtk::Button, + pub popover_select: gtk4::Popover, + pub button_select_all: gtk4::Button, + pub button_select_reverse: gtk4::Button, + pub button_select_custom: gtk4::Button, + pub button_unselect_custom: gtk4::Button, + pub button_select_changed: gtk4::Button, + pub button_unselect_changed: gtk4::Button, } impl GuiPopoverSelect { - pub fn create_from_builder(builder: >k::Builder) -> Self { - let popover_select: gtk::Popover = builder.object("popover_select").unwrap(); - let button_select_all: gtk::Button = builder.object("button_select_all").unwrap(); - let button_select_reverse: gtk::Button = builder.object("button_select_reverse").unwrap(); - let button_select_custom: gtk::Button = builder.object("button_select_custom").unwrap(); - let button_unselect_custom: gtk::Button = builder.object("button_unselect_custom").unwrap(); - let button_select_changed: gtk::Button = builder.object("button_select_changed").unwrap(); - let button_unselect_changed: gtk::Button = builder.object("button_unselect_changed").unwrap(); + pub fn create_from_builder(builder: >k4::Builder) -> Self { + let popover_select: gtk4::Popover = builder.object("popover_select").unwrap(); + let button_select_all: gtk4::Button = builder.object("button_select_all").unwrap(); + let button_select_reverse: gtk4::Button = builder.object("button_select_reverse").unwrap(); + let button_select_custom: gtk4::Button = builder.object("button_select_custom").unwrap(); + let button_unselect_custom: gtk4::Button = builder.object("button_unselect_custom").unwrap(); + let button_select_changed: gtk4::Button = builder.object("button_select_changed").unwrap(); + let button_unselect_changed: gtk4::Button = builder.object("button_unselect_changed").unwrap(); Self { popover_select, button_select_all, diff --git a/src/help_function.rs b/src/help_function.rs index 3352729..bc10268 100644 --- a/src/help_function.rs +++ b/src/help_function.rs @@ -1,8 +1,8 @@ use crate::class_dialog_rules::GuiDialogRules; use crate::notebook_enum::{to_notebook_enum, NotebookEnum}; use crate::rules::*; -use gtk::prelude::*; -use gtk::*; +use gtk4::prelude::*; +use gtk4::*; use std::cell::RefCell; use std::collections::BTreeSet; use std::ops::DerefMut; @@ -60,10 +60,10 @@ pub fn split_file_name(path: &Path) -> (String, String) { } pub fn get_list_store_from_tree_view(tree_view: &TreeView) -> ListStore { - tree_view.model().unwrap().downcast::().unwrap() + tree_view.model().unwrap().downcast::().unwrap() } -pub fn populate_rules_tree_view(tree_view: >k::TreeView, rules: Rc>) { +pub fn populate_rules_tree_view(tree_view: >k4::TreeView, rules: Rc>) { let mut rules = rules.borrow_mut(); let rules = rules.deref_mut(); @@ -81,7 +81,7 @@ pub fn populate_rules_tree_view(tree_view: >k::TreeView, rules: Rc Vec { +pub fn remove_selected_rows(tree_view: >k4::TreeView) -> Vec { let selection = tree_view.selection(); let (selected_rows, _tree_model) = selection.selected_rows(); @@ -101,7 +101,7 @@ pub fn remove_selected_rows(tree_view: >k::TreeView) -> Vec { // Get indexes of removed values for selected_tree_path in &selected_rows { loop { - if list_store.path(&tree_iter).unwrap() == *selected_tree_path { + if list_store.path(&tree_iter) == *selected_tree_path { vec_index_to_delete.push(current_iter); list_store.iter_next(&tree_iter); current_iter += 1; @@ -118,7 +118,7 @@ pub fn remove_selected_rows(tree_view: >k::TreeView) -> Vec { } vec_index_to_delete } -pub fn get_full_file_names_from_selection(tree_view: >k::TreeView) -> Vec { +pub fn get_full_file_names_from_selection(tree_view: >k4::TreeView) -> Vec { let selection = tree_view.selection(); let (selected_rows, _tree_model) = selection.selected_rows(); @@ -137,16 +137,16 @@ pub fn get_full_file_names_from_selection(tree_view: >k::TreeView) -> Vec().unwrap(), + list_store.get::(&tree_iter, ColumnsResults::Path as i32), CHARACTER, - list_store.value(&tree_iter, ColumnsResults::CurrentName as i32).get::().unwrap() + list_store.get::(&tree_iter, ColumnsResults::CurrentName as i32) )); } return_vec } -pub fn count_rows_in_tree_view(tree_view: >k::TreeView) -> u32 { +pub fn count_rows_in_tree_view(tree_view: >k4::TreeView) -> u32 { let list_store = get_list_store_from_tree_view(tree_view); let mut number = 0; @@ -162,16 +162,16 @@ pub fn count_rows_in_tree_view(tree_view: >k::TreeView) -> u32 { number } -pub fn create_message_window(window_main: >k::Window, title: &str, message: &str) { - let chooser = gtk::Dialog::with_buttons(Some(title), Some(window_main), DialogFlags::DESTROY_WITH_PARENT, &[("Ok", gtk::ResponseType::Ok)]); +pub fn create_message_window(window_main: >k4::Window, title: &str, message: &str) { + let chooser = gtk4::Dialog::with_buttons(Some(title), Some(window_main), DialogFlags::DESTROY_WITH_PARENT, &[("Ok", gtk4::ResponseType::Ok)]); chooser.set_modal(true); chooser.set_transient_for(Some(window_main)); - let question_label = gtk::Label::new(Some(message)); + let question_label = gtk4::Label::new(Some(message)); - let chooser_box = chooser.children()[0].clone().downcast::().unwrap(); + let chooser_box = chooser.children()[0].clone().downcast::().unwrap(); chooser_box.add(&question_label); - chooser_box.show_all(); + chooser_box.show(); } pub fn regex_check(expression: &str, directory: impl AsRef) -> bool { let temp_splits: Vec<&str> = expression.split('*').collect(); diff --git a/src/initialize_gui.rs b/src/initialize_gui.rs index 24dd495..5e7dec6 100644 --- a/src/initialize_gui.rs +++ b/src/initialize_gui.rs @@ -5,8 +5,8 @@ use crate::help_function::{ColumnsResults, CHARACTER}; use crate::language_functions::LANGUAGES_ALL; use crate::notebook_enum::EXAMPLE_NAME; use glib::Type; -use gtk::prelude::*; -use gtk::{ScrolledWindow, SelectionMode}; +use gtk4::prelude::*; +use gtk4::{ScrolledWindow, SelectionMode}; pub fn initialize_gui(gui_data: &GuiData) { // Setup Languages @@ -31,26 +31,27 @@ pub fn initialize_gui(gui_data: &GuiData) { glib::types::Type::U64, ]; - let list_store: gtk::ListStore = gtk::ListStore::new(&col_types); + let list_store: gtk4::ListStore = gtk4::ListStore::new(&col_types); - let tree_view: gtk::TreeView = gui_data.results.tree_view_results.clone(); + let tree_view: gtk4::TreeView = gui_data.results.tree_view_results.clone(); tree_view.set_model(Some(&list_store)); tree_view.selection().set_mode(SelectionMode::Multiple); - tree_view.connect_button_press_event(|tree_view, event| { - if event.event_type() == gdk::EventType::DoubleButtonPress && event.button() == 1 { - common_open_function(tree_view, OpenMode::PathAndName); - } else if event.event_type() == gdk::EventType::DoubleButtonPress && event.button() == 3 { - common_open_function(tree_view, OpenMode::OnlyPath); - } - gtk::Inhibit(false) - }); + // TODO GTK 4 + // tree_view.connect_button_press_event(|tree_view, event| { + // if event.event_type() == gdk4::EventType::DoubleButtonPress && event.button() == 1 { + // common_open_function(tree_view, OpenMode::PathAndName); + // } else if event.event_type() == gdk4::EventType::DoubleButtonPress && event.button() == 3 { + // common_open_function(tree_view, OpenMode::OnlyPath); + // } + // gtk4::Inhibit(false) + // }); create_tree_view_results(&tree_view); - scrolled_window_results.add(&tree_view); - scrolled_window_results.show_all(); + scrolled_window_results.some_child(Some(&tree_view)); + scrolled_window_results.show(); } // Create TreeView in Rules { @@ -58,17 +59,17 @@ pub fn initialize_gui(gui_data: &GuiData) { let col_types: [Type; 3] = [glib::types::Type::STRING, glib::types::Type::STRING, glib::types::Type::STRING]; - let list_store: gtk::ListStore = gtk::ListStore::new(&col_types); + let list_store: gtk4::ListStore = gtk4::ListStore::new(&col_types); - let tree_view: gtk::TreeView = gui_data.rules_bottom_panel.tree_view_window_rules.clone(); + let tree_view: gtk4::TreeView = gui_data.rules_bottom_panel.tree_view_window_rules.clone(); tree_view.set_model(Some(&list_store)); // tree_view.selection().set_mode(SelectionMode::Multiple); create_tree_view_rules(&tree_view); - scrolled_window_rules.add(&tree_view); - scrolled_window_rules.show_all(); + scrolled_window_rules.set_child(Some(&tree_view)); + scrolled_window_rules.show(); } // Set Example name { @@ -83,14 +84,14 @@ pub enum OpenMode { PathAndName, } -pub fn common_open_function(tree_view: >k::TreeView, opening_mode: OpenMode) { +pub fn common_open_function(tree_view: >k4::TreeView, opening_mode: OpenMode) { let selection = tree_view.selection(); let (selection_rows, tree_model) = selection.selected_rows(); for tree_path in selection_rows.iter().rev() { let end_path; - let current_name = tree_model.value(&tree_model.iter(tree_path).unwrap(), ColumnsResults::CurrentName as i32).get::().unwrap(); - let path = tree_model.value(&tree_model.iter(tree_path).unwrap(), ColumnsResults::Path as i32).get::().unwrap(); + let current_name = tree_model.get::(&tree_model.iter(tree_path).unwrap(), ColumnsResults::CurrentName as i32); + let path = tree_model.get::(&tree_model.iter(tree_path).unwrap(), ColumnsResults::Path as i32); match opening_mode { OpenMode::OnlyPath => { diff --git a/src/main.rs b/src/main.rs index dc70279..96ab714 100644 --- a/src/main.rs +++ b/src/main.rs @@ -78,10 +78,10 @@ use crate::connect_start_renaming::*; use crate::example_fields::connect_update_examples; use crate::gui_data::GuiData; use crate::initialize_gui::*; -use gtk::prelude::*; +use gtk4::prelude::*; fn main() { - gtk::init().expect("Failed to initialize GTK."); + gtk4::init().expect("Failed to initialize GTK."); let gui_data: GuiData = GuiData::new(); @@ -140,12 +140,13 @@ fn main() { connect_results_modify_one_up(&gui_data); connect_results_modify_one_down(&gui_data); + // TODO GTK 4 // Quit the program when X in main window was clicked - gui_data.window_main.connect_delete_event(|_, _| { - gtk::main_quit(); - Inhibit(false) - }); + // gui_data.window_main.connect_delete_event(|_, _| { + // gtk4::main_quit(); + // Inhibit(false) + // }); // We start the gtk main loop. - gtk::main(); + gtk4::main(); } diff --git a/src/update_records.rs b/src/update_records.rs index 48e0791..889e880 100644 --- a/src/update_records.rs +++ b/src/update_records.rs @@ -1,8 +1,8 @@ use crate::help_function::{get_list_store_from_tree_view, ColumnsResults, ResultEntries}; use crate::rules::Rules; use glib::Value; -use gtk::prelude::*; -use gtk::{Label, TreeView}; +use gtk4::prelude::*; +use gtk4::{Label, TreeView}; use std::cell::RefCell; use std::ops::DerefMut; use std::rc::Rc; @@ -41,10 +41,10 @@ pub fn update_records(files_tree_view: &TreeView, shared_result_entries: Rc().unwrap(); - let modification_date: u64 = list_store.value(&iter, ColumnsResults::ModificationDate as i32).get::().unwrap(); - let creation_date: u64 = list_store.value(&iter, ColumnsResults::CreationDate as i32).get::().unwrap(); - let file_size: u64 = list_store.value(&iter, ColumnsResults::Size as i32).get::().unwrap(); + let value_to_change = list_store.get::(&iter, ColumnsResults::CurrentName as i32); + let modification_date: u64 = list_store.get::(&iter, ColumnsResults::ModificationDate as i32); + let creation_date: u64 = list_store.get::(&iter, ColumnsResults::CreationDate as i32); + let file_size: u64 = list_store.get::(&iter, ColumnsResults::Size as i32); let changed_value = rules.apply_all_rules_to_item(value_to_change, current_index, (modification_date, creation_date, file_size)); list_store.set_value(&iter, ColumnsResults::FutureName as u32, &Value::from(&changed_value)); if !list_store.iter_next(&iter) { From 1ac53f6e171dd16b066b4319bdce082baede4d52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mikrut?= Date: Tue, 31 May 2022 21:02:26 +0200 Subject: [PATCH 07/18] Almost --- Cargo.lock | 13 +++++------ src/connect_add_files_button.rs | 19 ++++++++++++++-- src/connect_add_folders_button.rs | 36 ++++++++++++++++++++++++------- src/connect_select_records.rs | 12 +++-------- src/connect_start_renaming.rs | 22 +++++++++---------- src/help_function.rs | 33 ++++++++++++++++++++++++++-- src/initialize_gui.rs | 2 +- src/main.rs | 25 ++++++++++++--------- 8 files changed, 113 insertions(+), 49 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 35f2d8f..d7f14cc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -107,13 +107,14 @@ dependencies = [ [[package]] name = "dashmap" -version = "5.3.3" +version = "5.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "391b56fbd302e585b7a9494fb70e40949567b1cf9003a8e4a6041a1687c26573" +checksum = "3495912c9c1ccf2e18976439f4443f3fee0fd61f424ff99fde6a66b15ecb448f" dependencies = [ "cfg-if", "hashbrown", "lock_api", + "parking_lot_core", ] [[package]] @@ -289,9 +290,9 @@ dependencies = [ [[package]] name = "gdk4-sys" -version = "0.4.2" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48a39e34abe35ee2cf54a1e29dd983accecd113ad30bdead5050418fa92f2a1b" +checksum = "b34a7e60e0c0103cffeaf7baf9dc05358dca74fd350a0c4d61c6c3083ca9fdf1" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -784,9 +785,9 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f5ec2493a61ac0506c0f4199f99070cbe83857b0337006a30f3e6719b8ef58" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", "parking_lot_core", diff --git a/src/connect_add_files_button.rs b/src/connect_add_files_button.rs index d694e4f..07f3e5a 100644 --- a/src/connect_add_files_button.rs +++ b/src/connect_add_files_button.rs @@ -3,8 +3,10 @@ use crate::help_function::{get_list_store_from_tree_view, split_path, ColumnsRes use crate::update_records::{update_records, UpdateMode}; use chrono::Local; use gtk4::prelude::*; +use gtk4::ResponseType; use std::cmp::{max, Ordering}; use std::fs; +use std::path::PathBuf; use std::time::UNIX_EPOCH; pub fn connect_add_files_button(gui_data: &GuiData) { @@ -17,7 +19,10 @@ pub fn connect_add_files_button(gui_data: &GuiData) { let window_main = gui_data.window_main.clone(); button_add_files.connect_clicked(move |_| { - let chooser = gtk4::FileChooserDialog::with_buttons(Some("Files to include"), Some(&window_main), gtk4::FileChooserAction::Open, &[("Ok", gtk4::ResponseType::Ok), ("Close", gtk4::ResponseType::Cancel)]); + let chooser = gtk4::FileChooserDialog::builder().title("Files to include").action(gtk4::FileChooserAction::Open).transient_for(&window_main).modal(true).build(); + chooser.add_button("OK", ResponseType::Ok); + chooser.add_button("Cancel", ResponseType::Cancel); + chooser.set_select_multiple(true); chooser.show(); @@ -28,7 +33,17 @@ pub fn connect_add_files_button(gui_data: &GuiData) { chooser.connect_response(move |dialog, response_type| { if response_type == gtk4::ResponseType::Ok { - let mut folder = dialog.filenames(); + let mut folder: Vec = Vec::new(); + let g_files = dialog.files(); + for index in 0..g_files.n_items() { + let file = &g_files.item(index); + if let Some(file) = file { + let ss = file.clone().downcast::().unwrap(); + if let Some(path_buf) = ss.path() { + folder.push(path_buf); + } + } + } let mut result_entries = shared_result_entries.borrow_mut(); diff --git a/src/connect_add_folders_button.rs b/src/connect_add_folders_button.rs index f9d7776..102af88 100644 --- a/src/connect_add_folders_button.rs +++ b/src/connect_add_folders_button.rs @@ -1,11 +1,13 @@ +use crate::fls; use crate::gui_data::GuiData; -use crate::help_function::{get_list_store_from_tree_view, split_path, ColumnsResults}; +use crate::help_function::{get_all_boxes_from_widget, get_list_store_from_tree_view, split_path, ColumnsResults}; use crate::update_records::{update_records, UpdateMode}; use chrono::Local; use gtk4::prelude::*; -use gtk4::{FileChooserAction, Orientation, PackType}; +use gtk4::{FileChooserAction, Orientation, PackType, ResponseType}; use std::cmp::{max, Ordering}; use std::fs; +use std::path::PathBuf; use std::time::UNIX_EPOCH; use walkdir::WalkDir; @@ -20,9 +22,16 @@ pub fn connect_add_folders_button(gui_data: &GuiData) { let window_main = gui_data.window_main.clone(); button_add_folders.connect_clicked(move |_| { - let chooser = gtk4::FileChooserDialog::with_buttons(Some("Files to include"), Some(&window_main), gtk4::FileChooserAction::Open, &[("Ok", gtk4::ResponseType::Ok), ("Close", gtk4::ResponseType::Cancel)]); + let chooser = gtk4::FileChooserDialog::builder() + .title("Files to include") + .action(gtk4::FileChooserAction::SelectFolder) + .transient_for(&window_main) + .modal(true) + .build(); + chooser.add_button("OK", ResponseType::Ok); + chooser.add_button("Cancel", ResponseType::Cancel); + chooser.set_select_multiple(true); - chooser.set_action(FileChooserAction::SelectFolder); { // Adds recursive button to FileDialog let box_pack = gtk4::Box::new(Orientation::Horizontal, 0); @@ -43,8 +52,8 @@ pub fn connect_add_folders_button(gui_data: &GuiData) { box_pack.append(&label_ignore_folders); // box_pack.set_child_packing(&label_ignore_folders, false, true, 0, PackType::End); - let internal_box = chooser.children()[0].clone().downcast::().unwrap(); - internal_box.add(&box_pack); + let internal_box = get_all_boxes_from_widget(&chooser)[0].clone(); + internal_box.append(&box_pack); switch_ignore_folders.set_sensitive(false); // let sif = switch_ignore_folders.clone(); // TODO GTK 4 @@ -52,7 +61,7 @@ pub fn connect_add_folders_button(gui_data: &GuiData) { // sif.set_sensitive(e.is_active()); // }); - chooser.set_title("Folders to include"); + chooser.set_title(Some("Folders to include")); chooser.show(); let shared_result_entries = shared_result_entries.clone(); @@ -66,7 +75,18 @@ pub fn connect_add_folders_button(gui_data: &GuiData) { let list_store = get_list_store_from_tree_view(&tree_view_results); - let folders_to_check = chooser.filenames(); + let mut folders_to_check: Vec = Vec::new(); + let g_files = chooser.files(); + for index in 0..g_files.n_items() { + let file = &g_files.item(index); + if let Some(file) = file { + let ss = file.clone().downcast::().unwrap(); + if let Some(path_buf) = ss.path() { + folders_to_check.push(path_buf); + } + } + } + let mut folders; let ignore_folders = switch_ignore_folders.is_active(); diff --git a/src/connect_select_records.rs b/src/connect_select_records.rs index e375112..421a9f9 100644 --- a/src/connect_select_records.rs +++ b/src/connect_select_records.rs @@ -1,5 +1,5 @@ use crate::gui_data::GuiData; -use crate::help_function::{get_list_store_from_tree_view, regex_check, ColumnsResults}; +use crate::help_function::{get_all_boxes_from_widget, get_list_store_from_tree_view, regex_check, ColumnsResults}; use gtk4::prelude::*; use gtk4::{PositionType, TreeIter}; @@ -187,10 +187,7 @@ pub fn connect_select_custom(gui_data: &GuiData) { grid.attach(&entry_future_name_path, 1, 5, 1, 1); grid.attach(&check_button_is_dir, 1, 6, 1, 1); - for widgets in confirmation_dialog_delete.children() { - // By default GtkBox is child of dialog, so we can easily add other things to it - widgets.downcast::().unwrap().add(&grid); - } + get_all_boxes_from_widget(&confirmation_dialog_delete)[0].clone().append(&grid); confirmation_dialog_delete.show(); @@ -360,10 +357,7 @@ pub fn connect_unselect_custom(gui_data: &GuiData) { grid.attach(&entry_future_name_path, 1, 5, 1, 1); grid.attach(&check_button_is_dir, 1, 6, 1, 1); - for widgets in confirmation_dialog_delete.children() { - // By default GtkBox is child of dialog, so we can easily add other things to it - widgets.downcast::().unwrap().add(&grid); - } + get_all_boxes_from_widget(&confirmation_dialog_delete)[0].clone().append(&grid); confirmation_dialog_delete.show(); diff --git a/src/connect_start_renaming.rs b/src/connect_start_renaming.rs index d234d91..8ee9c70 100644 --- a/src/connect_start_renaming.rs +++ b/src/connect_start_renaming.rs @@ -1,5 +1,5 @@ use crate::gui_data::GuiData; -use crate::help_function::{count_rows_in_tree_view, create_message_window, get_list_store_from_tree_view, ColumnsResults, CHARACTER}; +use crate::help_function::{count_rows_in_tree_view, create_message_window, get_all_boxes_from_widget, get_list_store_from_tree_view, ColumnsResults, CHARACTER}; use gtk4::prelude::*; use gtk4::{DialogFlags, ScrolledWindow, TextView}; use std::collections::BTreeMap; @@ -42,8 +42,8 @@ pub fn connect_start_renaming(gui_data: &GuiData) { "Some records are not updated, you can do it by clicking at the Update Names button.\nAre you sure that you want to proceed without updating names?", )); - let chooser_box = chooser_update.children()[0].clone().downcast::().unwrap(); - chooser_box.add(&question_label); + let chooser_box = get_all_boxes_from_widget(&chooser_update)[0].clone(); + chooser_box.append(&question_label); chooser_box.show(); chooser_update.connect_response(move |dialog, _| { @@ -61,8 +61,8 @@ pub fn connect_start_renaming(gui_data: &GuiData) { let question_label = gtk4::Label::new(Some(format!("Are you sure that you want to rename {} files", number_of_renamed_files).as_str())); - let chooser_box = chooser.children()[0].clone().downcast::().unwrap(); - chooser_box.add(&question_label); + let chooser_box = get_all_boxes_from_widget(&chooser)[0].clone(); + chooser_box.append(&question_label); chooser_box.show(); let shared_result_entries = shared_result_entries.clone(); @@ -153,18 +153,18 @@ fn create_results_dialog(window_main: >k4::Window, properly_renamed: u32, igno let label_good = gtk4::Label::new(Some(format!("Properly renamed {} files", properly_renamed).as_str())); let label_ignored = gtk4::Label::new(Some(format!("Ignored {} files, because the name before and after the change are the same.", ignored).as_str())); - let chooser_box = chooser.children()[0].clone().downcast::().unwrap(); - chooser_box.add(&label_good); - chooser_box.add(&label_ignored); + let chooser_box = get_all_boxes_from_widget(&chooser)[0].clone(); + chooser_box.append(&label_good); + chooser_box.append(&label_ignored); let label_bad = gtk4::Label::new(Some(format!("Failed to rename {} files", failed_vector.len()).as_str())); - chooser_box.add(&label_bad); + chooser_box.append(&label_bad); if !failed_vector.is_empty() { chooser.set_default_size(800, 200); let label_info_bad = gtk4::Label::new(Some("List of all failing renames")); label_info_bad.set_margin_top(10); - chooser_box.add(&label_info_bad); + chooser_box.append(&label_info_bad); let txt_op1: Option<>k4::TextTagTable> = None; @@ -188,7 +188,7 @@ fn create_results_dialog(window_main: >k4::Window, properly_renamed: u32, igno scrolled_window.set_child(Some(&text_view)); // TODO Created Scrolled Window with explanation about each failed example of renaming - chooser_box.add(&scrolled_window); + chooser_box.append(&scrolled_window); } chooser_box.show(); diff --git a/src/help_function.rs b/src/help_function.rs index bc10268..0031966 100644 --- a/src/help_function.rs +++ b/src/help_function.rs @@ -169,8 +169,8 @@ pub fn create_message_window(window_main: >k4::Window, title: &str, message: & let question_label = gtk4::Label::new(Some(message)); - let chooser_box = chooser.children()[0].clone().downcast::().unwrap(); - chooser_box.add(&question_label); + let chooser_box = get_all_boxes_from_widget(&chooser)[0].clone(); + chooser_box.append(&question_label); chooser_box.show(); } pub fn regex_check(expression: &str, directory: impl AsRef) -> bool { @@ -440,3 +440,32 @@ pub fn read_rule_from_window(window_rules: &GuiDialogRules, notebook_number: Opt rule_description, } } + +pub fn get_all_boxes_from_widget>(item: &P) -> Vec { + let mut widgets_to_check = vec![item.clone().upcast::()]; + let mut boxes = Vec::new(); + + while let Some(widget) = widgets_to_check.pop() { + widgets_to_check.extend(get_all_children(&widget)); + if let Ok(bbox) = widget.clone().downcast::() { + boxes.push(bbox); + } + } + boxes +} + +pub fn get_all_children>(wid: &P) -> Vec { + let mut vector = vec![]; + if let Some(mut child) = wid.first_child() { + vector.push(child.clone()); + loop { + child = match child.next_sibling() { + Some(t) => t, + None => break, + }; + vector.push(child.clone()); + } + } + + vector +} diff --git a/src/initialize_gui.rs b/src/initialize_gui.rs index 5e7dec6..c52369a 100644 --- a/src/initialize_gui.rs +++ b/src/initialize_gui.rs @@ -50,7 +50,7 @@ pub fn initialize_gui(gui_data: &GuiData) { create_tree_view_results(&tree_view); - scrolled_window_results.some_child(Some(&tree_view)); + scrolled_window_results.set_child(Some(&tree_view)); scrolled_window_results.show(); } // Create TreeView in Rules diff --git a/src/main.rs b/src/main.rs index 96ab714..016abf1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -78,11 +78,23 @@ use crate::connect_start_renaming::*; use crate::example_fields::connect_update_examples; use crate::gui_data::GuiData; use crate::initialize_gui::*; +use gio::ApplicationFlags; +use glib::signal::Inhibit; use gtk4::prelude::*; +use gtk4::Application; +use std::env; +use std::ffi::OsString; fn main() { - gtk4::init().expect("Failed to initialize GTK."); + let application = Application::new(None, ApplicationFlags::HANDLES_OPEN | ApplicationFlags::HANDLES_COMMAND_LINE); + application.connect_command_line(move |app, cmdline| { + build_ui(app, cmdline.arguments()); + 0 + }); + application.run_with_args(&env::args().collect::>()); +} +fn build_ui(application: &Application, arguments: Vec) { let gui_data: GuiData = GuiData::new(); initialize_gui(&gui_data); @@ -140,13 +152,6 @@ fn main() { connect_results_modify_one_up(&gui_data); connect_results_modify_one_down(&gui_data); - // TODO GTK 4 - // Quit the program when X in main window was clicked - // gui_data.window_main.connect_delete_event(|_, _| { - // gtk4::main_quit(); - // Inhibit(false) - // }); - - // We start the gtk main loop. - gtk4::main(); + let window_main = gui_data.window_main.clone(); + window_main.connect_close_request(move |_| Inhibit(false)); } From 036facfa199cf472bd7d2044edc8fc86b1c5097f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mikrut?= Date: Tue, 31 May 2022 21:40:38 +0200 Subject: [PATCH 08/18] UI --- src/gui_data.rs | 4 +- src/main.rs | 2 +- ui/Szyszka.cmb | 1591 ++++++++++++++------------------------------ ui/popover.ui | 91 +-- ui/rule_chooser.ui | 1551 +++++++++++++++--------------------------- ui/settings.ui | 55 +- ui/window_main.ui | 337 ++-------- 7 files changed, 1116 insertions(+), 2515 deletions(-) diff --git a/src/gui_data.rs b/src/gui_data.rs index 1ae1a2c..0474688 100644 --- a/src/gui_data.rs +++ b/src/gui_data.rs @@ -36,7 +36,7 @@ pub struct GuiData { } impl GuiData { - pub fn new() -> Self { + pub fn new_with_application(application: >k4::Application) -> Self { //// Loading glade file content and build with it help UI let window_main_src = include_str!("../ui/window_main.ui").to_string(); let builder_window_main = Builder::from_string(window_main_src.as_str()); @@ -52,6 +52,8 @@ impl GuiData { //// Windows let window_main: gtk4::Window = builder_window_main.object("window_main").unwrap(); + window_main.set_application(Some(application)); + window_main.show(); window_main.set_title(Some("Szyszka")); diff --git a/src/main.rs b/src/main.rs index 016abf1..d9235f7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -95,7 +95,7 @@ fn main() { } fn build_ui(application: &Application, arguments: Vec) { - let gui_data: GuiData = GuiData::new(); + let gui_data: GuiData = GuiData::new_with_application(application); initialize_gui(&gui_data); diff --git a/ui/Szyszka.cmb b/ui/Szyszka.cmb index 4e938e8..9995ed4 100644 --- a/ui/Szyszka.cmb +++ b/ui/Szyszka.cmb @@ -1,17 +1,17 @@ - + - (2,None,"popover.ui","popover.ui",None,None,None,None,None," Generated with glade 3.39.0 "), - (3,None,"rule_chooser.ui","rule_chooser.ui",None,None,None,None,None," Generated with glade 3.39.0 "), - (4,None,"settings.ui","settings.ui",None,None,None,None,None," Generated with glade 3.39.0 "), - (5,None,"window_main.ui","window_main.ui",None,None,None,None,None," Generated with glade 3.39.0 ") + (2,None,"popover.ui","popover.ui",None,None,None,None,None,None), + (3,None,"rule_chooser.ui","rule_chooser.ui",None,None,None,None,None,None), + (4,None,"settings.ui","settings.ui",None,None,None,None,None,None), + (5,None,"window_main.ui","window_main.ui",None,None,None,None,None,None) - (2,"gtk+","3.24",None), - (3,"gtk+","3.24",None), - (4,"gtk+","3.24",None), - (5,"gtk+","3.24",None) + (2,"gtk","4.0",None), + (3,"gtk","4.0",None), + (4,"gtk","4.0",None), + (5,"gtk","4.0",None) (2,1,"GtkPopover","popover_select",None,None,None,None,None), @@ -30,125 +30,130 @@ (3,3,"GtkBox",None,2,None,None,None,None), (3,4,"GtkBox",None,3,None,None,None,None), (3,5,"GtkNotebook","notebook_choose_rule",4,None,None,None,None), - (3,6,"GtkBox",None,5,None,None,None,None), - (3,7,"GtkTextView",None,6,None,None,None,None), - (3,8,"GtkEntry","entry_custom_text_to_change",6,None,None,None,1), - (3,9,"GtkLabel",None,5,None,"tab",None,1), - (3,10,"GtkBox",None,5,None,None,None,1), - (3,11,"GtkBox",None,10,None,None,None,None), - (3,12,"GtkLabel",None,11,None,None,None,None), - (3,13,"GtkBox",None,11,None,None,None,1), - (3,14,"GtkCheckButton","check_button_letters_type_uppercase",13,None,None,None,None), - (3,15,"GtkCheckButton","check_button_letters_type_lowercase",13,None,None,None,1), - (3,16,"GtkBox",None,10,None,None,None,1), - (3,17,"GtkLabel",None,16,None,None,None,None), - (3,18,"GtkBox",None,16,None,None,None,1), - (3,19,"GtkCheckButton","check_button_letters_usage_name",18,None,None,None,None), - (3,20,"GtkCheckButton","check_button_letters_usage_extension",18,None,None,None,1), - (3,21,"GtkCheckButton","check_button_letters_usage_both",18,None,None,None,2), - (3,22,"GtkLabel",None,5,None,"tab",None,1), - (3,23,"GtkBox",None,5,None,None,None,2), - (3,24,"GtkBox",None,23,None,None,None,1), - (3,25,"GtkLabel",None,24,None,None,None,None), - (3,26,"GtkBox",None,24,None,None,None,1), - (3,27,"GtkCheckButton","check_button_purge_name",26,None,None,None,None), - (3,28,"GtkCheckButton","check_button_purge_extension",26,None,None,None,1), - (3,29,"GtkCheckButton","check_button_purge_both",26,None,None,None,2), - (3,30,"GtkLabel",None,5,None,"tab",None,2), - (3,31,"GtkBox",None,5,None,None,None,3), - (3,32,"GtkBox",None,31,None,None,None,None), - (3,33,"GtkLabel",None,32,None,None,None,None), - (3,34,"GtkBox",None,32,None,None,None,1), - (3,35,"GtkCheckButton","check_button_add_number_before_name",34,None,None,None,None), - (3,36,"GtkCheckButton","check_button_add_number_after_name",34,None,None,None,1), - (3,37,"GtkBox",None,31,None,None,None,1), - (3,38,"GtkLabel",None,37,None,None,None,None), - (3,39,"GtkGrid",None,37,None,None," n-columns=3 n-rows=3 ",1), - (3,40,"GtkLabel",None,39,None,None,None,None), - (3,41,"GtkLabel",None,39,None,None,None,1), - (3,42,"GtkEntry","entry_add_number_start_number",39,None,None,None,2), - (3,43,"GtkEntry","entry_add_number_step",39,None,None,None,3), - (3,44,"GtkLabel",None,39,None,None,None,4), - (3,45,"GtkEntry","entry_add_number_zeros",39,None,None,None,5), - (3,46,"GtkLabel",None,5,None,"tab",None,3), - (3,47,"GtkBox",None,5,None,None,None,4), - (3,48,"GtkBox",None,47,None,None,None,None), - (3,49,"GtkLabel",None,48,None,None,None,None), - (3,50,"GtkBox",None,48,None,None,None,1), - (3,51,"GtkCheckButton","check_button_add_text_before_name",50,None,None,None,None), - (3,52,"GtkCheckButton","check_button_add_text_after_name",50,None,None,None,1), - (3,53,"GtkBox",None,47,None,None,None,1), + (3,6,"GtkNotebookPage",None,5,None,None,None,None), + (3,7,"GtkBox",None,6,None,None,None,None), + (3,8,"GtkTextView",None,7,None,None,None,None), + (3,9,"GtkEntry","entry_custom_text_to_change",7,None,None,None,1), + (3,10,"GtkLabel",None,6,None,None,None,None), + (3,11,"GtkNotebookPage",None,5,None,None,None,1), + (3,12,"GtkBox",None,11,None,None,None,None), + (3,13,"GtkBox",None,12,None,None,None,None), + (3,14,"GtkLabel",None,13,None,None,None,None), + (3,15,"GtkBox",None,13,None,None,None,1), + (3,16,"GtkCheckButton","check_button_letters_type_uppercase",15,None,None,None,None), + (3,17,"GtkCheckButton","check_button_letters_type_lowercase",15,None,None,None,1), + (3,18,"GtkBox",None,12,None,None,None,1), + (3,19,"GtkLabel",None,18,None,None,None,None), + (3,20,"GtkBox",None,18,None,None,None,1), + (3,21,"GtkCheckButton","check_button_letters_usage_name",20,None,None,None,None), + (3,22,"GtkCheckButton","check_button_letters_usage_extension",20,None,None,None,1), + (3,23,"GtkCheckButton","check_button_letters_usage_both",20,None,None,None,2), + (3,24,"GtkLabel",None,11,None,None,None,None), + (3,25,"GtkNotebookPage",None,5,None,None,None,2), + (3,26,"GtkBox",None,25,None,None,None,None), + (3,27,"GtkBox",None,26,None,None,None,None), + (3,28,"GtkLabel",None,27,None,None,None,None), + (3,29,"GtkBox",None,27,None,None,None,1), + (3,30,"GtkCheckButton","check_button_purge_name",29,None,None,None,None), + (3,31,"GtkCheckButton","check_button_purge_extension",29,None,None,None,1), + (3,32,"GtkCheckButton","check_button_purge_both",29,None,None,None,2), + (3,33,"GtkLabel",None,25,None,None,None,None), + (3,34,"GtkNotebookPage",None,5,None,None,None,3), + (3,35,"GtkBox",None,34,None,None,None,None), + (3,36,"GtkBox",None,35,None,None,None,None), + (3,37,"GtkLabel",None,36,None,None,None,None), + (3,38,"GtkBox",None,36,None,None,None,1), + (3,39,"GtkCheckButton","check_button_add_number_before_name",38,None,None,None,None), + (3,40,"GtkCheckButton","check_button_add_number_after_name",38,None,None,None,1), + (3,41,"GtkBox",None,35,None,None,None,1), + (3,42,"GtkLabel",None,41,None,None,None,None), + (3,43,"GtkGrid",None,41,None,None,None,1), + (3,44,"GtkLabel",None,43,None,None,None,None), + (3,45,"GtkLabel",None,43,None,None,None,1), + (3,46,"GtkEntry","entry_add_number_start_number",43,None,None,None,2), + (3,47,"GtkEntry","entry_add_number_step",43,None,None,None,3), + (3,48,"GtkLabel",None,43,None,None,None,4), + (3,49,"GtkEntry","entry_add_number_zeros",43,None,None,None,5), + (3,50,"GtkLabel",None,34,None,None,None,None), + (3,51,"GtkNotebookPage",None,5,None,None,None,4), + (3,52,"GtkBox",None,51,None,None,None,None), + (3,53,"GtkBox",None,52,None,None,None,None), (3,54,"GtkLabel",None,53,None,None,None,None), - (3,55,"GtkEntry","entry_add_text_text_to_add",53,None,None,None,1), - (3,56,"GtkLabel",None,5,None,"tab",None,4), - (3,57,"GtkBox",None,5,None,None,None,5), - (3,58,"GtkBox",None,57,None,None,None,1), + (3,55,"GtkBox",None,53,None,None,None,1), + (3,56,"GtkCheckButton","check_button_add_text_before_name",55,None,None,None,None), + (3,57,"GtkCheckButton","check_button_add_text_after_name",55,None,None,None,1), + (3,58,"GtkBox",None,52,None,None,None,1), (3,59,"GtkLabel",None,58,None,None,None,None), - (3,60,"GtkBox",None,58,None,None,None,1), - (3,61,"GtkCheckButton","check_button_replace_name",60,None,None,None,None), - (3,62,"GtkCheckButton","check_button_replace_extension",60,None,None,None,1), - (3,63,"GtkCheckButton","check_button_replace_both",60,None,None,None,2), - (3,64,"GtkBox",None,58,None,None,None,2), + (3,60,"GtkEntry","entry_add_text_text_to_add",58,None,None,None,1), + (3,61,"GtkLabel",None,51,None,None,None,None), + (3,62,"GtkNotebookPage",None,5,None,None,None,5), + (3,63,"GtkBox",None,62,None,None,None,None), + (3,64,"GtkBox",None,63,None,None,None,None), (3,65,"GtkLabel",None,64,None,None,None,None), (3,66,"GtkBox",None,64,None,None,None,1), - (3,67,"GtkCheckButton","check_button_replace_case_sensitive",66,None,None,None,None), - (3,68,"GtkCheckButton","check_button_replace_case_insensitive",66,None,None,None,1), - (3,69,"GtkGrid",None,58,None,None," n-columns=3 n-rows=3 ",3), - (3,70,"GtkLabel",None,69,None,None,None,None), - (3,71,"GtkEntry","entry_replace_text_to_change",69,None,None,None,1), - (3,72,"GtkEntry","entry_replace_text_to_remove",69,None,None,None,2), - (3,73,"GtkLabel",None,69,None,None,None,3), - (3,74,"GtkLabel",None,69,None,None,None,4), - (3,75,"GtkLabel",None,5,None,"tab",None,5), - (3,76,"GtkBox",None,5,None,None,None,6), - (3,77,"GtkBox",None,76,None,None,None,None), - (3,78,"GtkLabel",None,77,None,None,None,None), - (3,79,"GtkBox",None,77,None,None,None,1), - (3,80,"GtkCheckButton","check_button_trim_name_start",79,None,None,None,None), - (3,81,"GtkCheckButton","check_button_trim_name_end",79,None,None,None,1), - (3,82,"GtkCheckButton","check_button_trim_extension_start",79,None,None,None,2), - (3,83,"GtkCheckButton","check_button_trim_extension_end",79,None,None,None,3), - (3,84,"GtkBox",None,76,None,None,None,1), + (3,67,"GtkCheckButton","check_button_replace_name",66,None,None,None,None), + (3,68,"GtkCheckButton","check_button_replace_extension",66,None,None,None,1), + (3,69,"GtkCheckButton","check_button_replace_both",66,None,None,None,2), + (3,70,"GtkBox",None,64,None,None,None,2), + (3,71,"GtkLabel",None,70,None,None,None,None), + (3,72,"GtkBox",None,70,None,None,None,1), + (3,73,"GtkCheckButton","check_button_replace_case_sensitive",72,None,None,None,None), + (3,74,"GtkCheckButton","check_button_replace_case_insensitive",72,None,None,None,1), + (3,75,"GtkGrid",None,64,None,None,None,3), + (3,76,"GtkLabel",None,75,None,None,None,None), + (3,77,"GtkEntry","entry_replace_text_to_change",75,None,None,None,1), + (3,78,"GtkEntry","entry_replace_text_to_remove",75,None,None,None,2), + (3,79,"GtkLabel",None,75,None,None,None,3), + (3,80,"GtkLabel",None,75,None,None,None,4), + (3,81,"GtkLabel",None,62,None,None,None,None), + (3,82,"GtkNotebookPage",None,5,None,None,None,6), + (3,83,"GtkBox",None,82,None,None,None,None), + (3,84,"GtkBox",None,83,None,None,None,None), (3,85,"GtkLabel",None,84,None,None,None,None), (3,86,"GtkBox",None,84,None,None,None,1), - (3,87,"GtkCheckButton","check_button_trim_case_sensitive",86,None,None,None,None), - (3,88,"GtkCheckButton","check_button_trim_case_insensitive",86,None,None,None,1), - (3,89,"GtkBox",None,76,None,None,None,2), - (3,90,"GtkLabel",None,89,None,None,None,None), - (3,91,"GtkEntry","entry_add_text_text_to_trim",89,None,None,None,1), - (3,92,"GtkLabel",None,5,None,"tab",None,6), - (3,93,"GtkBox",None,5,None,None,None,7), - (3,94,"GtkLabel",None,93,None,None,None,None), - (3,95,"GtkLabel",None,93,None,None,None,1), - (3,96,"GtkBox",None,93,None,None,None,2), - (3,97,"GtkCheckButton","check_button_normalize_everything",96,None,None,None,None), - (3,98,"GtkCheckButton","check_button_normalize_partial",96,None,None,None,1), - (3,99,"GtkLabel",None,5,None,"tab",None,7), - (3,100,"GtkBox",None,4,None,None,None,1), - (3,101,"GtkLabel",None,100,None,None,None,None), - (3,102,"GtkBox",None,100,None,None,None,1), - (3,103,"GtkBox",None,102,None,None,None,None), - (3,104,"GtkBox",None,103,None,None,None,1), - (3,105,"GtkLabel",None,104,None,None,None,None), - (3,106,"GtkLabel",None,104,None,None,None,1), - (3,107,"GtkBox",None,103,None,None,None,2), - (3,108,"GtkEntry","entry_example_before",107,None,None,None,None), - (3,109,"GtkLabel","label_example_after",107,None,None,None,1), - (3,110,"GtkButton","button_example_reset",102,None,None,None,1), - (3,111,"GtkImage",None,110,None,None,None,None), - (3,112,"GtkButtonBox",None,3,None,None,None,1), - (3,113,"GtkButton","button_rule_window_add",112,None,None,None,None), + (3,87,"GtkCheckButton","check_button_trim_name_start",86,None,None,None,None), + (3,88,"GtkCheckButton","check_button_trim_name_end",86,None,None,None,1), + (3,89,"GtkCheckButton","check_button_trim_extension_start",86,None,None,None,2), + (3,90,"GtkCheckButton","check_button_trim_extension_end",86,None,None,None,3), + (3,91,"GtkBox",None,83,None,None,None,1), + (3,92,"GtkLabel",None,91,None,None,None,None), + (3,93,"GtkBox",None,91,None,None,None,1), + (3,94,"GtkCheckButton","check_button_trim_case_sensitive",93,None,None,None,None), + (3,95,"GtkCheckButton","check_button_trim_case_insensitive",93,None,None,None,1), + (3,96,"GtkBox",None,83,None,None,None,2), + (3,97,"GtkLabel",None,96,None,None,None,None), + (3,98,"GtkEntry","entry_add_text_text_to_trim",96,None,None,None,1), + (3,99,"GtkLabel",None,82,None,None,None,None), + (3,100,"GtkNotebookPage",None,5,None,None,None,7), + (3,101,"GtkBox",None,100,None,None,None,None), + (3,102,"GtkLabel",None,101,None,None,None,None), + (3,103,"GtkLabel",None,101,None,None,None,1), + (3,104,"GtkBox",None,101,None,None,None,2), + (3,105,"GtkCheckButton","check_button_normalize_everything",104,None,None,None,None), + (3,106,"GtkCheckButton","check_button_normalize_partial",104,None,None,None,1), + (3,107,"GtkLabel",None,100,None,None,None,None), + (3,108,"GtkBox",None,4,None,None,None,1), + (3,109,"GtkLabel",None,108,None,None,None,None), + (3,110,"GtkBox",None,108,None,None,None,1), + (3,111,"GtkBox",None,110,None,None,None,None), + (3,112,"GtkBox",None,111,None,None,None,None), + (3,113,"GtkLabel",None,112,None,None,None,None), + (3,114,"GtkLabel",None,112,None,None,None,1), + (3,115,"GtkBox",None,111,None,None,None,1), + (3,116,"GtkEntry","entry_example_before",115,None,None,None,None), + (3,117,"GtkLabel","label_example_after",115,None,None,None,1), + (3,118,"GtkButton","button_example_reset",110,None,None,None,1), + (3,119,"GtkImage",None,118,None,None,None,None), + (3,120,"GtkButton","button_rule_window_add",4,None,None,None,2), (4,1,"GtkDialog","window_settings",None,None,None,None,None), - (4,2,"GtkBox",None,1,"vbox",None,None,None), - (4,3,"GtkButtonBox",None,2,"action_area",None,None,None), - (4,4,"GtkBox",None,2,None,None,None,1), - (4,5,"GtkLabel","label_settings_general_language",4,None,None,None,None), - (4,6,"GtkComboBoxText","combo_box_settings_language",4,None,None,None,1), + (4,2,"GtkBox",None,1,None,None,None,None), + (4,3,"GtkLabel","label_settings_general_language",2,None,None,None,None), + (4,4,"GtkComboBoxText","combo_box_settings_language",2,None,None,None,1), (5,1,"GtkWindow","window_main",None,None,None,None,None), (5,2,"GtkPaned",None,1,None,None,None,None), (5,3,"GtkBox",None,2,None,None,None,None), (5,4,"GtkLabel","label_files_folders",3,None,None,None,None), - (5,5,"GtkBox",None,3,None,None,None,3), + (5,5,"GtkBox",None,3,None,None,None,1), (5,6,"GtkScrolledWindow","scrolled_window_results",5,None,None,None,None), (5,7,"GtkBox",None,5,None,None,None,1), (5,8,"GtkButton","button_add_files",7,None,None,None,None), @@ -164,1010 +169,446 @@ (5,18,"GtkBox",None,17,None,None,None,None), (5,19,"GtkImage",None,18,None,None,None,None), (5,20,"GtkLabel",None,18,None,None,None,1), - (5,21,"GtkBox",None,2,None,None,None,1), - (5,22,"GtkLabel",None,21,None,None,None,None), - (5,23,"GtkBox",None,21,None,None,None,1), + (5,21,"GtkBox",None,3,None,None,None,2), + (5,22,"GtkBox",None,21,None,None,None,None), + (5,23,"GtkButton","button_add_rule",22,None,None,None,None), (5,24,"GtkBox",None,23,None,None,None,None), - (5,25,"GtkButton","button_add_rule",24,None,None,None,None), - (5,26,"GtkBox",None,25,None,None,None,None), - (5,27,"GtkImage",None,26,None,None,None,None), - (5,28,"GtkLabel",None,26,None,None,None,1), - (5,29,"GtkButton","button_edit_rule",24,None,None,None,1), - (5,30,"GtkBox",None,29,None,None,None,None), - (5,31,"GtkImage",None,30,None,None,None,None), - (5,32,"GtkLabel",None,30,None,None,None,1), - (5,33,"GtkButton","button_remove_rule",24,None,None,None,2), - (5,34,"GtkBox",None,33,None,None,None,None), - (5,35,"GtkImage",None,34,None,None,None,None), - (5,36,"GtkLabel",None,34,None,None,None,1), - (5,37,"GtkButton","button_rule_one_up",24,None,None,None,3), - (5,38,"GtkBox",None,37,None,None,None,None), - (5,39,"GtkImage",None,38,None,None,None,None), - (5,40,"GtkLabel",None,38,None,None,None,1), - (5,41,"GtkButton","button_rule_one_down",24,None,None,None,4), - (5,42,"GtkBox",None,41,None,None,None,None), - (5,43,"GtkImage",None,42,None,None,None,None), - (5,44,"GtkLabel",None,42,None,None,None,1), - (5,45,"GtkScrolledWindow","scrolled_window_rules",23,None,None,None,1), - (5,46,"GtkHeaderBar",None,1,None,"titlebar",None,1), - (5,47,"GtkBox",None,46,None,None,None,None), - (5,48,"GtkButton","button_start_rename",47,None,None,None,None), - (5,49,"GtkButton","button_setting",47,None,None,None,1), - (5,50,"GtkImage",None,49,None,None,None,None) + (5,25,"GtkImage",None,24,None,None,None,None), + (5,26,"GtkLabel",None,24,None,None,None,1), + (5,27,"GtkButton","button_edit_rule",22,None,None,None,1), + (5,28,"GtkBox",None,27,None,None,None,None), + (5,29,"GtkImage",None,28,None,None,None,None), + (5,30,"GtkLabel",None,28,None,None,None,1), + (5,31,"GtkButton","button_remove_rule",22,None,None,None,2), + (5,32,"GtkBox",None,31,None,None,None,None), + (5,33,"GtkImage",None,32,None,None,None,None), + (5,34,"GtkLabel",None,32,None,None,None,1), + (5,35,"GtkButton","button_rule_one_up",22,None,None,None,3), + (5,36,"GtkBox",None,35,None,None,None,None), + (5,37,"GtkImage",None,36,None,None,None,None), + (5,38,"GtkLabel",None,36,None,None,None,1), + (5,39,"GtkButton","button_rule_one_down",22,None,None,None,4), + (5,40,"GtkBox",None,39,None,None,None,None), + (5,41,"GtkImage",None,40,None,None,None,None), + (5,42,"GtkLabel",None,40,None,None,None,1), + (5,43,"GtkScrolledWindow","scrolled_window_rules",21,None,None,None,1), + (5,44,"GtkLabel",None,2,None,None,None,1), + (5,45,"GtkHeaderBar",None,1,None,"titlebar",None,None), + (5,46,"GtkBox",None,45,None,None,None,None), + (5,47,"GtkButton","button_start_rename",46,None,None,None,None), + (5,48,"GtkButton","button_setting",46,None,None,None,1), + (5,49,"GtkImage",None,48,None,None,None,None) - (2,1,"GtkWidget","can-focus","False",None,None,None,None,None), + (2,1,"GtkPopover","child",None,None,None,None,None,2), (2,2,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (2,2,"GtkWidget","can-focus","False",None,None,None,None,None), - (2,2,"GtkWidget","visible","True",None,None,None,None,None), (2,3,"GtkButton","label","Select All","yes",None,None,None,None), - (2,3,"GtkWidget","can-focus","True",None,None,None,None,None), - (2,3,"GtkWidget","receives-default","True",None,None,None,None,None), - (2,3,"GtkWidget","visible","True",None,None,None,None,None), - (2,4,"GtkWidget","can-focus","False",None,None,None,None,None), - (2,4,"GtkWidget","visible","True",None,None,None,None,None), + (2,3,"GtkWidget","focusable","1",None,None,None,None,None), + (2,3,"GtkWidget","receives-default","1",None,None,None,None,None), (2,5,"GtkButton","label","Reverse Selection","yes",None,None,None,None), - (2,5,"GtkWidget","can-focus","True",None,None,None,None,None), - (2,5,"GtkWidget","receives-default","True",None,None,None,None,None), - (2,5,"GtkWidget","visible","True",None,None,None,None,None), - (2,6,"GtkWidget","can-focus","False",None,None,None,None,None), - (2,6,"GtkWidget","visible","True",None,None,None,None,None), + (2,5,"GtkWidget","focusable","1",None,None,None,None,None), + (2,5,"GtkWidget","receives-default","1",None,None,None,None,None), (2,7,"GtkButton","label","Select Custom","yes",None,None,None,None), - (2,7,"GtkWidget","can-focus","True",None,None,None,None,None), - (2,7,"GtkWidget","receives-default","True",None,None,None,None,None), - (2,7,"GtkWidget","visible","True",None,None,None,None,None), + (2,7,"GtkWidget","focusable","1",None,None,None,None,None), + (2,7,"GtkWidget","receives-default","1",None,None,None,None,None), (2,8,"GtkButton","label","Unselect Custom","yes",None,None,None,None), - (2,8,"GtkWidget","can-focus","True",None,None,None,None,None), - (2,8,"GtkWidget","receives-default","True",None,None,None,None,None), - (2,8,"GtkWidget","visible","True",None,None,None,None,None), - (2,9,"GtkWidget","can-focus","False",None,None,None,None,None), - (2,9,"GtkWidget","visible","True",None,None,None,None,None), + (2,8,"GtkWidget","focusable","1",None,None,None,None,None), + (2,8,"GtkWidget","receives-default","1",None,None,None,None,None), (2,10,"GtkButton","label","Select Changed","yes",None,None,None,None), - (2,10,"GtkWidget","can-focus","True",None,None,None,None,None), - (2,10,"GtkWidget","receives-default","True",None,None,None,None,None), - (2,10,"GtkWidget","visible","True",None,None,None,None,None), + (2,10,"GtkWidget","focusable","1",None,None,None,None,None), + (2,10,"GtkWidget","receives-default","1",None,None,None,None,None), (2,11,"GtkButton","label","Unselect Changed","yes",None,None,None,None), - (2,11,"GtkWidget","can-focus","True",None,None,None,None,None), - (2,11,"GtkWidget","receives-default","True",None,None,None,None,None), - (2,11,"GtkWidget","visible","True",None,None,None,None,None), + (2,11,"GtkWidget","focusable","1",None,None,None,None,None), + (2,11,"GtkWidget","receives-default","1",None,None,None,None,None), (3,1,"GtkTextBuffer","text","$(NAME) - prints file name\n$(EXT) - prints extension\n$(MODIF) - prints file modification date\n$(CREAT) - prints file creation\n$(CURR) - prints current file name with extension\n$(N:6:3:2) - prints numbers with step 3, \nstarts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. ","yes",None,None,None,None), - (3,2,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,2,"GtkWindow","child",None,None,None,None,None,3), (3,2,"GtkWindow","default-height","400",None,None,None,None,None), (3,2,"GtkWindow","default-width","600",None,None,None,None,None), (3,3,"GtkBox","spacing","2",None,None,None,None,None), (3,3,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (3,3,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,3,"GtkWidget","visible","True",None,None,None,None,None), (3,4,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (3,4,"GtkWidget","can-focus","False",None,None,None,None,None), (3,4,"GtkWidget","margin-bottom","5",None,None,None,None,None), (3,4,"GtkWidget","margin-end","5",None,None,None,None,None), (3,4,"GtkWidget","margin-start","5",None,None,None,None,None), (3,4,"GtkWidget","margin-top","5",None,None,None,None,None), - (3,4,"GtkWidget","visible","True",None,None,None,None,None), + (3,4,"GtkWidget","vexpand","1",None,None,None,None,None), (3,5,"GtkNotebook","tab-pos","left",None,None,None,None,None), - (3,5,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,5,"GtkWidget","visible","True",None,None,None,None,None), - (3,6,"GtkBox","spacing","2",None,None,None,None,None), - (3,6,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (3,6,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,6,"GtkWidget","margin-bottom","5",None,None,None,None,None), - (3,6,"GtkWidget","margin-end","5",None,None,None,None,None), - (3,6,"GtkWidget","margin-start","5",None,None,None,None,None), - (3,6,"GtkWidget","visible","True",None,None,None,None,None), - (3,7,"GtkTextView","buffer","1",None,None,None,None,None), - (3,7,"GtkTextView","justification","center",None,None,None,None,None), - (3,7,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,7,"GtkWidget","visible","True",None,None,None,None,None), - (3,8,"GtkEntry","max-length","150",None,None,None,None,None), - (3,8,"GtkEntry","text","$(CURR)","yes",None,None,None,None), - (3,8,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,8,"GtkWidget","visible","True",None,None,None,None,None), - (3,9,"GtkLabel","label","Custom","yes",None,None,None,None), - (3,9,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,9,"GtkWidget","visible","True",None,None,None,None,None), - (3,10,"GtkBox","spacing","2",None,None,None,None,None), - (3,10,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (3,10,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,10,"GtkWidget","margin-bottom","5",None,None,None,None,None), - (3,10,"GtkWidget","margin-end","5",None,None,None,None,None), - (3,10,"GtkWidget","margin-start","5",None,None,None,None,None), - (3,10,"GtkWidget","visible","True",None,None,None,None,None), - (3,11,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (3,11,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,11,"GtkWidget","visible","True",None,None,None,None,None), - (3,12,"GtkLabel","label","Tool Type:","yes",None,None,None,None), - (3,12,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,12,"GtkWidget","visible","True",None,None,None,None,None), - (3,13,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,13,"GtkWidget","visible","True",None,None,None,None,None), - (3,14,"GtkButton","label","Uppercase","yes",None,None,None,None), - (3,14,"GtkToggleButton","active","True",None,None,None,None,None), - (3,14,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), - (3,14,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,14,"GtkWidget","receives-default","False",None,None,None,None,None), - (3,14,"GtkWidget","visible","True",None,None,None,None,None), - (3,15,"GtkButton","label","Lowercase","yes",None,None,None,None), - (3,15,"GtkCheckButton","group","14",None,None,None,None,None), - (3,15,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), - (3,15,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,15,"GtkWidget","receives-default","False",None,None,None,None,None), - (3,15,"GtkWidget","visible","True",None,None,None,None,None), - (3,16,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (3,16,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,16,"GtkWidget","visible","True",None,None,None,None,None), - (3,17,"GtkLabel","label","Usage Type:","yes",None,None,None,None), - (3,17,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,17,"GtkWidget","visible","True",None,None,None,None,None), - (3,18,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,18,"GtkWidget","visible","True",None,None,None,None,None), - (3,19,"GtkButton","label","Only Name","yes",None,None,None,None), - (3,19,"GtkToggleButton","active","True",None,None,None,None,None), - (3,19,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), - (3,19,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,19,"GtkWidget","receives-default","False",None,None,None,None,None), - (3,19,"GtkWidget","visible","True",None,None,None,None,None), - (3,20,"GtkButton","label","Only Extension","yes",None,None,None,None), - (3,20,"GtkCheckButton","group","19",None,None,None,None,None), - (3,20,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), - (3,20,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,20,"GtkWidget","receives-default","False",None,None,None,None,None), - (3,20,"GtkWidget","visible","True",None,None,None,None,None), - (3,21,"GtkButton","label","Both","yes",None,None,None,None), - (3,21,"GtkCheckButton","group","19",None,None,None,None,None), - (3,21,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), - (3,21,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,21,"GtkWidget","receives-default","False",None,None,None,None,None), - (3,21,"GtkWidget","visible","True",None,None,None,None,None), - (3,22,"GtkLabel","label","Upper/Lower cases","yes",None,None,None,None), - (3,22,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,22,"GtkWidget","visible","True",None,None,None,None,None), - (3,23,"GtkBox","spacing","2",None,None,None,None,None), - (3,23,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (3,23,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,23,"GtkWidget","margin-bottom","5",None,None,None,None,None), - (3,23,"GtkWidget","margin-end","5",None,None,None,None,None), - (3,23,"GtkWidget","margin-start","5",None,None,None,None,None), - (3,23,"GtkWidget","visible","True",None,None,None,None,None), - (3,24,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (3,24,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,24,"GtkWidget","visible","True",None,None,None,None,None), - (3,25,"GtkLabel","label","Usage Type:","yes",None,None,None,None), - (3,25,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,25,"GtkWidget","visible","True",None,None,None,None,None), - (3,26,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,26,"GtkWidget","visible","True",None,None,None,None,None), - (3,27,"GtkButton","label","Only Name","yes",None,None,None,None), - (3,27,"GtkToggleButton","active","True",None,None,None,None,None), - (3,27,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), - (3,27,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,27,"GtkWidget","receives-default","False",None,None,None,None,None), - (3,27,"GtkWidget","visible","True",None,None,None,None,None), - (3,28,"GtkButton","label","Only Extension","yes",None,None,None,None), - (3,28,"GtkCheckButton","group","27",None,None,None,None,None), - (3,28,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), - (3,28,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,28,"GtkWidget","receives-default","False",None,None,None,None,None), - (3,28,"GtkWidget","visible","True",None,None,None,None,None), - (3,29,"GtkButton","label","Both","yes",None,None,None,None), - (3,29,"GtkCheckButton","group","27",None,None,None,None,None), - (3,29,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), - (3,29,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,29,"GtkWidget","receives-default","False",None,None,None,None,None), - (3,29,"GtkWidget","visible","True",None,None,None,None,None), - (3,30,"GtkLabel","label","Purge","yes",None,None,None,None), - (3,30,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,30,"GtkWidget","visible","True",None,None,None,None,None), - (3,31,"GtkBox","spacing","2",None,None,None,None,None), - (3,31,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (3,31,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,31,"GtkWidget","margin-bottom","5",None,None,None,None,None), - (3,31,"GtkWidget","margin-end","5",None,None,None,None,None), - (3,31,"GtkWidget","margin-start","5",None,None,None,None,None), - (3,31,"GtkWidget","visible","True",None,None,None,None,None), - (3,32,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (3,32,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,32,"GtkWidget","visible","True",None,None,None,None,None), - (3,33,"GtkLabel","label","Place to put number:","yes",None,None,None,None), - (3,33,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,33,"GtkWidget","visible","True",None,None,None,None,None), - (3,34,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,34,"GtkWidget","visible","True",None,None,None,None,None), - (3,35,"GtkButton","label","Before Name","yes",None,None,None,None), - (3,35,"GtkToggleButton","active","True",None,None,None,None,None), - (3,35,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), - (3,35,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,35,"GtkWidget","receives-default","False",None,None,None,None,None), - (3,35,"GtkWidget","visible","True",None,None,None,None,None), - (3,36,"GtkButton","label","After Name","yes",None,None,None,None), - (3,36,"GtkCheckButton","group","35",None,None,None,None,None), - (3,36,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), - (3,36,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,36,"GtkWidget","receives-default","False",None,None,None,None,None), - (3,36,"GtkWidget","visible","True",None,None,None,None,None), - (3,37,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (3,37,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,37,"GtkWidget","visible","True",None,None,None,None,None), - (3,38,"GtkLabel","label","Number Settings:","yes",None,None,None,None), - (3,38,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,38,"GtkWidget","visible","True",None,None,None,None,None), - (3,39,"GtkGrid","column-homogeneous","True",None,None,None,None,None), - (3,39,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,39,"GtkWidget","visible","True",None,None,None,None,None), - (3,40,"GtkLabel","label","Start Number","yes",None,None,None,None), - (3,40,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,40,"GtkWidget","visible","True",None,None,None,None,None), - (3,41,"GtkLabel","label","Step","yes",None,None,None,None), - (3,41,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,41,"GtkWidget","visible","True",None,None,None,None,None), - (3,42,"GtkEntry","input-purpose","digits",None,None,None,None,None), - (3,42,"GtkEntry","max-length","30",None,None,None,None,None), - (3,42,"GtkEntry","text","1","yes",None,None,None,None), - (3,42,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,42,"GtkWidget","visible","True",None,None,None,None,None), - (3,43,"GtkEntry","input-purpose","digits",None,None,None,None,None), - (3,43,"GtkEntry","max-length","30",None,None,None,None,None), - (3,43,"GtkEntry","text","1","yes",None,None,None,None), - (3,43,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,43,"GtkWidget","visible","True",None,None,None,None,None), - (3,44,"GtkLabel","label","Fill with zeros","yes",None,None,None,None), - (3,44,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,44,"GtkWidget","visible","True",None,None,None,None,None), - (3,45,"GtkEntry","input-purpose","digits",None,None,None,None,None), - (3,45,"GtkEntry","max-length","4",None,None,None,None,None), - (3,45,"GtkEntry","text","0","yes",None,None,None,None), - (3,45,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,45,"GtkWidget","visible","True",None,None,None,None,None), - (3,46,"GtkLabel","label","Add Number","yes",None,None,None,None), - (3,46,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,46,"GtkWidget","visible","True",None,None,None,None,None), - (3,47,"GtkBox","spacing","2",None,None,None,None,None), - (3,47,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (3,47,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,47,"GtkWidget","margin-bottom","5",None,None,None,None,None), - (3,47,"GtkWidget","margin-end","5",None,None,None,None,None), - (3,47,"GtkWidget","margin-start","5",None,None,None,None,None), - (3,47,"GtkWidget","visible","True",None,None,None,None,None), - (3,48,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (3,48,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,48,"GtkWidget","visible","True",None,None,None,None,None), - (3,49,"GtkLabel","label","Usage Type:","yes",None,None,None,None), - (3,49,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,49,"GtkWidget","visible","True",None,None,None,None,None), - (3,50,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,50,"GtkWidget","visible","True",None,None,None,None,None), - (3,51,"GtkButton","label","Before Name","yes",None,None,None,None), - (3,51,"GtkToggleButton","active","True",None,None,None,None,None), - (3,51,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), - (3,51,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,51,"GtkWidget","receives-default","False",None,None,None,None,None), - (3,51,"GtkWidget","visible","True",None,None,None,None,None), - (3,52,"GtkButton","label","After Name","yes",None,None,None,None), - (3,52,"GtkCheckButton","group","51",None,None,None,None,None), - (3,52,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), - (3,52,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,52,"GtkWidget","receives-default","False",None,None,None,None,None), - (3,52,"GtkWidget","visible","True",None,None,None,None,None), + (3,5,"GtkWidget","focusable","1",None,None,None,None,None), + (3,5,"GtkWidget","vexpand","1",None,None,None,None,None), + (3,6,"GtkNotebookPage","child",None,None,None,None,None,7), + (3,6,"GtkNotebookPage","tab",None,None,None,None,None,10), + (3,7,"GtkBox","spacing","2",None,None,None,None,None), + (3,7,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,7,"GtkWidget","margin-bottom","5",None,None,None,None,None), + (3,7,"GtkWidget","margin-end","5",None,None,None,None,None), + (3,7,"GtkWidget","margin-start","5",None,None,None,None,None), + (3,8,"GtkTextView","buffer","1",None,None,None,None,None), + (3,8,"GtkTextView","justification","center",None,None,None,None,None), + (3,8,"GtkWidget","focusable","1",None,None,None,None,None), + (3,9,"GtkEditable","text","$(CURR)","yes",None,None,None,None), + (3,9,"GtkEntry","max-length","150",None,None,None,None,None), + (3,9,"GtkWidget","focusable","1",None,None,None,None,None), + (3,10,"GtkLabel","label","Custom","yes",None,None,None,None), + (3,11,"GtkNotebookPage","child",None,None,None,None,None,12), + (3,11,"GtkNotebookPage","tab",None,None,None,None,None,24), + (3,12,"GtkBox","spacing","2",None,None,None,None,None), + (3,12,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,12,"GtkWidget","margin-bottom","5",None,None,None,None,None), + (3,12,"GtkWidget","margin-end","5",None,None,None,None,None), + (3,12,"GtkWidget","margin-start","5",None,None,None,None,None), + (3,13,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,14,"GtkLabel","label","Tool Type:","yes",None,None,None,None), + (3,16,"GtkCheckButton","active","1",None,None,None,None,None), + (3,16,"GtkCheckButton","label","Uppercase","yes",None,None,None,None), + (3,16,"GtkWidget","focusable","1",None,None,None,None,None), + (3,16,"GtkWidget","halign","center",None,None,None,None,None), + (3,16,"GtkWidget","hexpand","1",None,None,None,None,None), + (3,17,"GtkCheckButton","label","Lowercase","yes",None,None,None,None), + (3,17,"GtkWidget","focusable","1",None,None,None,None,None), + (3,17,"GtkWidget","halign","center",None,None,None,None,None), + (3,17,"GtkWidget","hexpand","1",None,None,None,None,None), + (3,18,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,19,"GtkLabel","label","Usage Type:","yes",None,None,None,None), + (3,21,"GtkCheckButton","active","1",None,None,None,None,None), + (3,21,"GtkCheckButton","label","Only Name","yes",None,None,None,None), + (3,21,"GtkWidget","focusable","1",None,None,None,None,None), + (3,21,"GtkWidget","halign","center",None,None,None,None,None), + (3,21,"GtkWidget","hexpand","1",None,None,None,None,None), + (3,22,"GtkCheckButton","label","Only Extension","yes",None,None,None,None), + (3,22,"GtkWidget","focusable","1",None,None,None,None,None), + (3,22,"GtkWidget","halign","center",None,None,None,None,None), + (3,22,"GtkWidget","hexpand","1",None,None,None,None,None), + (3,23,"GtkCheckButton","label","Both","yes",None,None,None,None), + (3,23,"GtkWidget","focusable","1",None,None,None,None,None), + (3,23,"GtkWidget","halign","center",None,None,None,None,None), + (3,23,"GtkWidget","hexpand","1",None,None,None,None,None), + (3,24,"GtkLabel","label","Upper/Lower cases","yes",None,None,None,None), + (3,25,"GtkNotebookPage","child",None,None,None,None,None,26), + (3,25,"GtkNotebookPage","tab",None,None,None,None,None,33), + (3,26,"GtkBox","spacing","2",None,None,None,None,None), + (3,26,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,26,"GtkWidget","margin-bottom","5",None,None,None,None,None), + (3,26,"GtkWidget","margin-end","5",None,None,None,None,None), + (3,26,"GtkWidget","margin-start","5",None,None,None,None,None), + (3,27,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,28,"GtkLabel","label","Usage Type:","yes",None,None,None,None), + (3,30,"GtkCheckButton","active","1",None,None,None,None,None), + (3,30,"GtkCheckButton","label","Only Name","yes",None,None,None,None), + (3,30,"GtkWidget","focusable","1",None,None,None,None,None), + (3,30,"GtkWidget","halign","center",None,None,None,None,None), + (3,30,"GtkWidget","hexpand","1",None,None,None,None,None), + (3,31,"GtkCheckButton","label","Only Extension","yes",None,None,None,None), + (3,31,"GtkWidget","focusable","1",None,None,None,None,None), + (3,31,"GtkWidget","halign","center",None,None,None,None,None), + (3,31,"GtkWidget","hexpand","1",None,None,None,None,None), + (3,32,"GtkCheckButton","label","Both","yes",None,None,None,None), + (3,32,"GtkWidget","focusable","1",None,None,None,None,None), + (3,32,"GtkWidget","halign","center",None,None,None,None,None), + (3,32,"GtkWidget","hexpand","1",None,None,None,None,None), + (3,33,"GtkLabel","label","Purge","yes",None,None,None,None), + (3,34,"GtkNotebookPage","child",None,None,None,None,None,35), + (3,34,"GtkNotebookPage","tab",None,None,None,None,None,50), + (3,35,"GtkBox","spacing","2",None,None,None,None,None), + (3,35,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,35,"GtkWidget","margin-bottom","5",None,None,None,None,None), + (3,35,"GtkWidget","margin-end","5",None,None,None,None,None), + (3,35,"GtkWidget","margin-start","5",None,None,None,None,None), + (3,36,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,37,"GtkLabel","label","Place to put number:","yes",None,None,None,None), + (3,39,"GtkCheckButton","active","1",None,None,None,None,None), + (3,39,"GtkCheckButton","label","Before Name","yes",None,None,None,None), + (3,39,"GtkWidget","focusable","1",None,None,None,None,None), + (3,39,"GtkWidget","halign","center",None,None,None,None,None), + (3,39,"GtkWidget","hexpand","1",None,None,None,None,None), + (3,40,"GtkCheckButton","label","After Name","yes",None,None,None,None), + (3,40,"GtkWidget","focusable","1",None,None,None,None,None), + (3,40,"GtkWidget","halign","center",None,None,None,None,None), + (3,40,"GtkWidget","hexpand","1",None,None,None,None,None), + (3,41,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,42,"GtkLabel","label","Number Settings:","yes",None,None,None,None), + (3,43,"GtkGrid","column-homogeneous","1",None,None,None,None,None), + (3,44,"GtkLabel","label","Start Number","yes",None,None,None,None), + (3,45,"GtkLabel","label","Step","yes",None,None,None,None), + (3,46,"GtkEditable","text","1","yes",None,None,None,None), + (3,46,"GtkEntry","input-purpose","digits",None,None,None,None,None), + (3,46,"GtkEntry","max-length","30",None,None,None,None,None), + (3,46,"GtkWidget","focusable","1",None,None,None,None,None), + (3,47,"GtkEditable","text","1","yes",None,None,None,None), + (3,47,"GtkEntry","input-purpose","digits",None,None,None,None,None), + (3,47,"GtkEntry","max-length","30",None,None,None,None,None), + (3,47,"GtkWidget","focusable","1",None,None,None,None,None), + (3,48,"GtkLabel","label","Fill with zeros","yes",None,None,None,None), + (3,49,"GtkEditable","text","0","yes",None,None,None,None), + (3,49,"GtkEntry","input-purpose","digits",None,None,None,None,None), + (3,49,"GtkEntry","max-length","4",None,None,None,None,None), + (3,49,"GtkWidget","focusable","1",None,None,None,None,None), + (3,50,"GtkLabel","label","Add Number","yes",None,None,None,None), + (3,51,"GtkNotebookPage","child",None,None,None,None,None,52), + (3,51,"GtkNotebookPage","tab",None,None,None,None,None,61), + (3,52,"GtkBox","spacing","2",None,None,None,None,None), + (3,52,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,52,"GtkWidget","margin-bottom","5",None,None,None,None,None), + (3,52,"GtkWidget","margin-end","5",None,None,None,None,None), + (3,52,"GtkWidget","margin-start","5",None,None,None,None,None), (3,53,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (3,53,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,53,"GtkWidget","visible","True",None,None,None,None,None), - (3,54,"GtkLabel","label","Text to add:","yes",None,None,None,None), - (3,54,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,54,"GtkWidget","visible","True",None,None,None,None,None), - (3,55,"GtkEntry","text","Źdźbło","yes",None,None,None,None), - (3,55,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,55,"GtkWidget","visible","True",None,None,None,None,None), - (3,56,"GtkLabel","label","Add Text","yes",None,None,None,None), - (3,56,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,56,"GtkWidget","visible","True",None,None,None,None,None), - (3,57,"GtkBox","spacing","2",None,None,None,None,None), - (3,57,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (3,57,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,57,"GtkWidget","margin-bottom","5",None,None,None,None,None), - (3,57,"GtkWidget","margin-end","5",None,None,None,None,None), - (3,57,"GtkWidget","margin-start","5",None,None,None,None,None), - (3,57,"GtkWidget","visible","True",None,None,None,None,None), + (3,54,"GtkLabel","label","Usage Type:","yes",None,None,None,None), + (3,56,"GtkCheckButton","active","1",None,None,None,None,None), + (3,56,"GtkCheckButton","label","Before Name","yes",None,None,None,None), + (3,56,"GtkWidget","focusable","1",None,None,None,None,None), + (3,56,"GtkWidget","halign","center",None,None,None,None,None), + (3,56,"GtkWidget","hexpand","1",None,None,None,None,None), + (3,57,"GtkCheckButton","label","After Name","yes",None,None,None,None), + (3,57,"GtkWidget","focusable","1",None,None,None,None,None), + (3,57,"GtkWidget","halign","center",None,None,None,None,None), + (3,57,"GtkWidget","hexpand","1",None,None,None,None,None), (3,58,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (3,58,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,58,"GtkWidget","visible","True",None,None,None,None,None), - (3,59,"GtkLabel","label","Usage Type:","yes",None,None,None,None), - (3,59,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,59,"GtkWidget","visible","True",None,None,None,None,None), - (3,60,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,60,"GtkWidget","visible","True",None,None,None,None,None), - (3,61,"GtkButton","label","Only Name","yes",None,None,None,None), - (3,61,"GtkToggleButton","active","True",None,None,None,None,None), - (3,61,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), - (3,61,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,61,"GtkWidget","receives-default","False",None,None,None,None,None), - (3,61,"GtkWidget","visible","True",None,None,None,None,None), - (3,62,"GtkButton","label","Only Extension","yes",None,None,None,None), - (3,62,"GtkCheckButton","group","61",None,None,None,None,None), - (3,62,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), - (3,62,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,62,"GtkWidget","receives-default","False",None,None,None,None,None), - (3,62,"GtkWidget","visible","True",None,None,None,None,None), - (3,63,"GtkButton","label","Both","yes",None,None,None,None), - (3,63,"GtkCheckButton","group","61",None,None,None,None,None), - (3,63,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), - (3,63,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,63,"GtkWidget","receives-default","False",None,None,None,None,None), - (3,63,"GtkWidget","visible","True",None,None,None,None,None), + (3,59,"GtkLabel","label","Text to add:","yes",None,None,None,None), + (3,60,"GtkEditable","text","Źdźbło","yes",None,None,None,None), + (3,60,"GtkWidget","focusable","1",None,None,None,None,None), + (3,61,"GtkLabel","label","Add Text","yes",None,None,None,None), + (3,62,"GtkNotebookPage","child",None,None,None,None,None,63), + (3,62,"GtkNotebookPage","tab",None,None,None,None,None,81), + (3,63,"GtkBox","spacing","2",None,None,None,None,None), + (3,63,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,63,"GtkWidget","margin-bottom","5",None,None,None,None,None), + (3,63,"GtkWidget","margin-end","5",None,None,None,None,None), + (3,63,"GtkWidget","margin-start","5",None,None,None,None,None), (3,64,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (3,64,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,64,"GtkWidget","visible","True",None,None,None,None,None), - (3,65,"GtkLabel","label","Case Sensitivity","yes",None,None,None,None), - (3,65,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,65,"GtkWidget","visible","True",None,None,None,None,None), - (3,66,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,66,"GtkWidget","visible","True",None,None,None,None,None), - (3,67,"GtkButton","label","Case Sensitive","yes",None,None,None,None), - (3,67,"GtkToggleButton","active","True",None,None,None,None,None), - (3,67,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), - (3,67,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,67,"GtkWidget","receives-default","False",None,None,None,None,None), - (3,67,"GtkWidget","visible","True",None,None,None,None,None), - (3,68,"GtkButton","label","Case Insensitive","yes",None,None,None,None), - (3,68,"GtkCheckButton","group","67",None,None,None,None,None), - (3,68,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), - (3,68,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,68,"GtkWidget","receives-default","False",None,None,None,None,None), - (3,68,"GtkWidget","visible","True",None,None,None,None,None), - (3,69,"GtkGrid","column-homogeneous","True",None,None,None,None,None), - (3,69,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,69,"GtkWidget","visible","True",None,None,None,None,None), - (3,70,"GtkLabel","label","Replaced Text","yes",None,None,None,None), - (3,70,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,70,"GtkWidget","visible","True",None,None,None,None,None), - (3,71,"GtkEntry","max-length","100",None,None,None,None,None), - (3,71,"GtkEntry","text","k","yes",None,None,None,None), - (3,71,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,71,"GtkWidget","visible","True",None,None,None,None,None), - (3,72,"GtkEntry","max-length","100",None,None,None,None,None), - (3,72,"GtkEntry","text","a","yes",None,None,None,None), - (3,72,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,72,"GtkWidget","visible","True",None,None,None,None,None), - (3,73,"GtkLabel","label","Text to replace","yes",None,None,None,None), - (3,73,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,73,"GtkWidget","visible","True",None,None,None,None,None), - (3,74,"GtkLabel","label","Replacing Strings:","yes",None,None,None,None), - (3,74,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,74,"GtkWidget","visible","True",None,None,None,None,None), - (3,75,"GtkLabel","label","Replace","yes",None,None,None,None), - (3,75,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,75,"GtkWidget","visible","True",None,None,None,None,None), - (3,76,"GtkBox","spacing","2",None,None,None,None,None), - (3,76,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (3,76,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,76,"GtkWidget","margin-bottom","5",None,None,None,None,None), - (3,76,"GtkWidget","margin-end","5",None,None,None,None,None), - (3,76,"GtkWidget","margin-start","5",None,None,None,None,None), - (3,76,"GtkWidget","visible","True",None,None,None,None,None), - (3,77,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (3,77,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,77,"GtkWidget","visible","True",None,None,None,None,None), - (3,78,"GtkLabel","label","Usage Type:","yes",None,None,None,None), - (3,78,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,78,"GtkWidget","visible","True",None,None,None,None,None), - (3,79,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,79,"GtkWidget","visible","True",None,None,None,None,None), - (3,80,"GtkButton","label","Name Start","yes",None,None,None,None), - (3,80,"GtkToggleButton","active","True",None,None,None,None,None), - (3,80,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), - (3,80,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,80,"GtkWidget","receives-default","False",None,None,None,None,None), - (3,80,"GtkWidget","visible","True",None,None,None,None,None), - (3,81,"GtkButton","label","Name End","yes",None,None,None,None), - (3,81,"GtkCheckButton","group","80",None,None,None,None,None), - (3,81,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), - (3,81,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,81,"GtkWidget","receives-default","False",None,None,None,None,None), - (3,81,"GtkWidget","visible","True",None,None,None,None,None), - (3,82,"GtkButton","label","Extension Start","yes",None,None,None,None), - (3,82,"GtkCheckButton","group","80",None,None,None,None,None), - (3,82,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), - (3,82,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,82,"GtkWidget","receives-default","False",None,None,None,None,None), - (3,82,"GtkWidget","visible","True",None,None,None,None,None), - (3,83,"GtkButton","label","Extension End","yes",None,None,None,None), - (3,83,"GtkCheckButton","group","80",None,None,None,None,None), - (3,83,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), - (3,83,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,83,"GtkWidget","receives-default","False",None,None,None,None,None), - (3,83,"GtkWidget","visible","True",None,None,None,None,None), + (3,65,"GtkLabel","label","Usage Type:","yes",None,None,None,None), + (3,67,"GtkCheckButton","active","1",None,None,None,None,None), + (3,67,"GtkCheckButton","label","Only Name","yes",None,None,None,None), + (3,67,"GtkWidget","focusable","1",None,None,None,None,None), + (3,67,"GtkWidget","halign","center",None,None,None,None,None), + (3,67,"GtkWidget","hexpand","1",None,None,None,None,None), + (3,68,"GtkCheckButton","label","Only Extension","yes",None,None,None,None), + (3,68,"GtkWidget","focusable","1",None,None,None,None,None), + (3,68,"GtkWidget","halign","center",None,None,None,None,None), + (3,68,"GtkWidget","hexpand","1",None,None,None,None,None), + (3,69,"GtkCheckButton","label","Both","yes",None,None,None,None), + (3,69,"GtkWidget","focusable","1",None,None,None,None,None), + (3,69,"GtkWidget","halign","center",None,None,None,None,None), + (3,69,"GtkWidget","hexpand","1",None,None,None,None,None), + (3,70,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,71,"GtkLabel","label","Case Sensitivity","yes",None,None,None,None), + (3,73,"GtkCheckButton","active","1",None,None,None,None,None), + (3,73,"GtkCheckButton","label","Case Sensitive","yes",None,None,None,None), + (3,73,"GtkWidget","focusable","1",None,None,None,None,None), + (3,73,"GtkWidget","halign","center",None,None,None,None,None), + (3,73,"GtkWidget","hexpand","1",None,None,None,None,None), + (3,74,"GtkCheckButton","label","Case Insensitive","yes",None,None,None,None), + (3,74,"GtkWidget","focusable","1",None,None,None,None,None), + (3,74,"GtkWidget","halign","center",None,None,None,None,None), + (3,74,"GtkWidget","hexpand","1",None,None,None,None,None), + (3,75,"GtkGrid","column-homogeneous","1",None,None,None,None,None), + (3,76,"GtkLabel","label","Replaced Text","yes",None,None,None,None), + (3,77,"GtkEditable","text","k","yes",None,None,None,None), + (3,77,"GtkEntry","max-length","100",None,None,None,None,None), + (3,77,"GtkWidget","focusable","1",None,None,None,None,None), + (3,78,"GtkEditable","text","a","yes",None,None,None,None), + (3,78,"GtkEntry","max-length","100",None,None,None,None,None), + (3,78,"GtkWidget","focusable","1",None,None,None,None,None), + (3,79,"GtkLabel","label","Text to replace","yes",None,None,None,None), + (3,80,"GtkLabel","label","Replacing Strings:","yes",None,None,None,None), + (3,81,"GtkLabel","label","Replace","yes",None,None,None,None), + (3,82,"GtkNotebookPage","child",None,None,None,None,None,83), + (3,82,"GtkNotebookPage","tab",None,None,None,None,None,99), + (3,83,"GtkBox","spacing","2",None,None,None,None,None), + (3,83,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,83,"GtkWidget","margin-bottom","5",None,None,None,None,None), + (3,83,"GtkWidget","margin-end","5",None,None,None,None,None), + (3,83,"GtkWidget","margin-start","5",None,None,None,None,None), (3,84,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (3,84,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,84,"GtkWidget","visible","True",None,None,None,None,None), - (3,85,"GtkLabel","label","Case Sensitivity","yes",None,None,None,None), - (3,85,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,85,"GtkWidget","visible","True",None,None,None,None,None), - (3,86,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,86,"GtkWidget","visible","True",None,None,None,None,None), - (3,87,"GtkButton","label","Case Sensitive","yes",None,None,None,None), - (3,87,"GtkToggleButton","active","True",None,None,None,None,None), - (3,87,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), - (3,87,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,87,"GtkWidget","receives-default","False",None,None,None,None,None), - (3,87,"GtkWidget","visible","True",None,None,None,None,None), - (3,88,"GtkButton","label","Case Insensitive","yes",None,None,None,None), - (3,88,"GtkCheckButton","group","87",None,None,None,None,None), - (3,88,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), - (3,88,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,88,"GtkWidget","receives-default","False",None,None,None,None,None), - (3,88,"GtkWidget","visible","True",None,None,None,None,None), - (3,89,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (3,89,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,89,"GtkWidget","visible","True",None,None,None,None,None), - (3,90,"GtkLabel","label","Trim text","yes",None,None,None,None), - (3,90,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,90,"GtkWidget","visible","True",None,None,None,None,None), - (3,91,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,91,"GtkWidget","visible","True",None,None,None,None,None), - (3,92,"GtkLabel","label","Trim","yes",None,None,None,None), - (3,92,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,92,"GtkWidget","visible","True",None,None,None,None,None), - (3,93,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (3,93,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,93,"GtkWidget","visible","True",None,None,None,None,None), - (3,94,"GtkLabel","label","Normalize Name","yes",None,None,None,None), - (3,94,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,94,"GtkWidget","margin-bottom","10",None,None,None,None,None), - (3,94,"GtkWidget","visible","True",None,None,None,None,None), - (3,95,"GtkLabel","label","Everything - renames the name to one that containsonly the\n characters `a-z`, `0-9`, `-`, ` `, `.`.\n e.g. `żółć CZERona.Txt` -> `zolc-czerwona.txt`\n\nPartial - works exacly same as option above, but allows\n to use spaces ` ` and big letters `A-Z`\n e.g. ` Źrebię Krokietowe.Rar ` -> `Zrebie Krokietowe.Rar`","yes",None,None,None,None), - (3,95,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,95,"GtkWidget","halign","start",None,None,None,None,None), - (3,95,"GtkWidget","margin-bottom","10",None,None,None,None,None), - (3,95,"GtkWidget","margin-start","5",None,None,None,None,None), - (3,95,"GtkWidget","visible","True",None,None,None,None,None), - (3,96,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,96,"GtkWidget","visible","True",None,None,None,None,None), - (3,97,"GtkButton","label","Everything","yes",None,None,None,None), - (3,97,"GtkToggleButton","active","True",None,None,None,None,None), - (3,97,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), - (3,97,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,97,"GtkWidget","halign","center",None,None,None,None,None), - (3,97,"GtkWidget","receives-default","False",None,None,None,None,None), - (3,97,"GtkWidget","visible","True",None,None,None,None,None), - (3,98,"GtkButton","label","Partial","yes",None,None,None,None), - (3,98,"GtkCheckButton","group","97",None,None,None,None,None), - (3,98,"GtkToggleButton","active","True",None,None,None,None,None), - (3,98,"GtkToggleButton","draw-indicator","True",None,None,None,None,None), - (3,98,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,98,"GtkWidget","halign","center",None,None,None,None,None), - (3,98,"GtkWidget","receives-default","False",None,None,None,None,None), - (3,98,"GtkWidget","visible","True",None,None,None,None,None), - (3,99,"GtkLabel","label","Normalize Name","yes",None,None,None,None), - (3,99,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,99,"GtkWidget","visible","True",None,None,None,None,None), - (3,100,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (3,100,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,100,"GtkWidget","visible","True",None,None,None,None,None), - (3,101,"GtkLabel","label","EXAMPLE","yes",None,None,None,None), - (3,101,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,101,"GtkWidget","margin-bottom","5",None,None,None,None,None), - (3,101,"GtkWidget","margin-top","5",None,None,None,None,None), - (3,101,"GtkWidget","visible","True",None,None,None,None,None), - (3,102,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,102,"GtkWidget","visible","True",None,None,None,None,None), - (3,103,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,103,"GtkWidget","visible","True",None,None,None,None,None), - (3,104,"GtkBox","homogeneous","True",None,None,None,None,None), - (3,104,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (3,104,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,104,"GtkWidget","margin-end","10",None,None,None,None,None), - (3,104,"GtkWidget","margin-start","10",None,None,None,None,None), - (3,104,"GtkWidget","visible","True",None,None,None,None,None), - (3,105,"GtkLabel","label","Before:","yes",None,None,None,None), - (3,105,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,105,"GtkWidget","visible","True",None,None,None,None,None), - (3,106,"GtkLabel","label","After:","yes",None,None,None,None), - (3,106,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,106,"GtkWidget","visible","True",None,None,None,None,None), - (3,107,"GtkBox","homogeneous","True",None,None,None,None,None), - (3,107,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (3,107,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,107,"GtkWidget","visible","True",None,None,None,None,None), - (3,108,"GtkEntry","max-length","100",None,None,None,None,None), - (3,108,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,108,"GtkWidget","visible","True",None,None,None,None,None), - (3,109,"GtkLabel","label","label","yes",None,None,None,None), - (3,109,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,109,"GtkWidget","halign","start",None,None,None,None,None), - (3,109,"GtkWidget","margin-start","3",None,None,None,None,None), - (3,109,"GtkWidget","visible","True",None,None,None,None,None), - (3,110,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,110,"GtkWidget","margin-start","5",None,None,None,None,None), - (3,110,"GtkWidget","receives-default","True",None,None,None,None,None), - (3,110,"GtkWidget","visible","True",None,None,None,None,None), - (3,111,"GtkImage","icon-name","edit-delete",None,None,None,None,None), - (3,111,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,111,"GtkWidget","visible","True",None,None,None,None,None), - (3,112,"GtkButtonBox","layout-style","end",None,None,None,None,None), - (3,112,"GtkWidget","can-focus","False",None,None,None,None,None), - (3,112,"GtkWidget","margin-bottom","5",None,None,None,None,None), - (3,112,"GtkWidget","margin-end","5",None,None,None,None,None), - (3,112,"GtkWidget","margin-start","5",None,None,None,None,None), - (3,112,"GtkWidget","visible","True",None,None,None,None,None), - (3,113,"GtkButton","label","Add Rule","yes",None,None,None,None), - (3,113,"GtkWidget","can-focus","True",None,None,None,None,None), - (3,113,"GtkWidget","receives-default","True",None,None,None,None,None), - (3,113,"GtkWidget","visible","True",None,None,None,None,None), - (4,1,"GtkWidget","can-focus","False",None,None,None,None,None), - (4,1,"GtkWindow","type-hint","dialog",None,None,None,None,None), - (4,2,"GtkBox","spacing","2",None,None,None,None,None), - (4,2,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (4,2,"GtkWidget","can-focus","False",None,None,None,None,None), - (4,3,"GtkButtonBox","layout-style","end",None,None,None,None,None), - (4,3,"GtkWidget","can-focus","False",None,None,None,None,None), - (4,4,"GtkWidget","can-focus","False",None,None,None,None,None), - (4,4,"GtkWidget","visible","True",None,None,None,None,None), - (4,5,"GtkLabel","label","Language","yes",None,None,None,None), - (4,5,"GtkWidget","can-focus","False",None,None,None,None,None), - (4,5,"GtkWidget","margin-end","10",None,None,None,None,None), - (4,5,"GtkWidget","margin-start","5",None,None,None,None,None), - (4,5,"GtkWidget","visible","True",None,None,None,None,None), - (4,6,"GtkWidget","can-focus","False",None,None,None,None,None), - (4,6,"GtkWidget","visible","True",None,None,None,None,None), - (5,1,"GtkWidget","can-focus","False",None,None,None,None,None), + (3,85,"GtkLabel","label","Usage Type:","yes",None,None,None,None), + (3,87,"GtkCheckButton","active","1",None,None,None,None,None), + (3,87,"GtkCheckButton","label","Name Start","yes",None,None,None,None), + (3,87,"GtkWidget","focusable","1",None,None,None,None,None), + (3,87,"GtkWidget","halign","center",None,None,None,None,None), + (3,87,"GtkWidget","hexpand","1",None,None,None,None,None), + (3,88,"GtkCheckButton","label","Name End","yes",None,None,None,None), + (3,88,"GtkWidget","focusable","1",None,None,None,None,None), + (3,88,"GtkWidget","halign","center",None,None,None,None,None), + (3,88,"GtkWidget","hexpand","1",None,None,None,None,None), + (3,89,"GtkCheckButton","label","Extension Start","yes",None,None,None,None), + (3,89,"GtkWidget","focusable","1",None,None,None,None,None), + (3,89,"GtkWidget","halign","center",None,None,None,None,None), + (3,89,"GtkWidget","hexpand","1",None,None,None,None,None), + (3,90,"GtkCheckButton","label","Extension End","yes",None,None,None,None), + (3,90,"GtkWidget","focusable","1",None,None,None,None,None), + (3,90,"GtkWidget","halign","center",None,None,None,None,None), + (3,90,"GtkWidget","hexpand","1",None,None,None,None,None), + (3,91,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,92,"GtkLabel","label","Case Sensitivity","yes",None,None,None,None), + (3,94,"GtkCheckButton","active","1",None,None,None,None,None), + (3,94,"GtkCheckButton","label","Case Sensitive","yes",None,None,None,None), + (3,94,"GtkWidget","focusable","1",None,None,None,None,None), + (3,94,"GtkWidget","halign","center",None,None,None,None,None), + (3,94,"GtkWidget","hexpand","1",None,None,None,None,None), + (3,95,"GtkCheckButton","label","Case Insensitive","yes",None,None,None,None), + (3,95,"GtkWidget","focusable","1",None,None,None,None,None), + (3,95,"GtkWidget","halign","center",None,None,None,None,None), + (3,95,"GtkWidget","hexpand","1",None,None,None,None,None), + (3,96,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,97,"GtkLabel","label","Trim text","yes",None,None,None,None), + (3,98,"GtkWidget","focusable","1",None,None,None,None,None), + (3,99,"GtkLabel","label","Trim","yes",None,None,None,None), + (3,100,"GtkNotebookPage","child",None,None,None,None,None,101), + (3,100,"GtkNotebookPage","tab",None,None,None,None,None,107), + (3,101,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,102,"GtkLabel","label","Normalize Name","yes",None,None,None,None), + (3,102,"GtkWidget","margin-bottom","10",None,None,None,None,None), + (3,103,"GtkLabel","label","Everything - renames the name to one that containsonly the\n characters `a-z`, `0-9`, `-`, ` `, `.`.\n e.g. `żółć CZERona.Txt` -> `zolc-czerwona.txt`\n\nPartial - works exacly same as option above, but allows\n to use spaces ` ` and big letters `A-Z`\n e.g. ` Źrebię Krokietowe.Rar ` -> `Zrebie Krokietowe.Rar`","yes",None,None,None,None), + (3,103,"GtkWidget","halign","start",None,None,None,None,None), + (3,103,"GtkWidget","margin-bottom","10",None,None,None,None,None), + (3,103,"GtkWidget","margin-start","5",None,None,None,None,None), + (3,105,"GtkCheckButton","active","1",None,None,None,None,None), + (3,105,"GtkCheckButton","label","Everything","yes",None,None,None,None), + (3,105,"GtkWidget","focusable","1",None,None,None,None,None), + (3,105,"GtkWidget","halign","center",None,None,None,None,None), + (3,105,"GtkWidget","hexpand","1",None,None,None,None,None), + (3,106,"GtkCheckButton","active","1",None,None,None,None,None), + (3,106,"GtkCheckButton","label","Partial","yes",None,None,None,None), + (3,106,"GtkWidget","focusable","1",None,None,None,None,None), + (3,106,"GtkWidget","halign","center",None,None,None,None,None), + (3,106,"GtkWidget","hexpand","1",None,None,None,None,None), + (3,107,"GtkLabel","label","Normalize Name","yes",None,None,None,None), + (3,108,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,109,"GtkLabel","label","EXAMPLE","yes",None,None,None,None), + (3,109,"GtkWidget","margin-bottom","5",None,None,None,None,None), + (3,109,"GtkWidget","margin-top","5",None,None,None,None,None), + (3,111,"GtkWidget","hexpand","1",None,None,None,None,None), + (3,112,"GtkBox","homogeneous","1",None,None,None,None,None), + (3,112,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,112,"GtkWidget","margin-end","10",None,None,None,None,None), + (3,112,"GtkWidget","margin-start","10",None,None,None,None,None), + (3,113,"GtkLabel","label","Before:","yes",None,None,None,None), + (3,114,"GtkLabel","label","After:","yes",None,None,None,None), + (3,115,"GtkBox","homogeneous","1",None,None,None,None,None), + (3,115,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (3,115,"GtkWidget","hexpand","1",None,None,None,None,None), + (3,116,"GtkEntry","max-length","100",None,None,None,None,None), + (3,116,"GtkWidget","focusable","1",None,None,None,None,None), + (3,117,"GtkLabel","label","label","yes",None,None,None,None), + (3,117,"GtkWidget","halign","start",None,None,None,None,None), + (3,117,"GtkWidget","margin-start","3",None,None,None,None,None), + (3,118,"GtkWidget","focusable","1",None,None,None,None,None), + (3,118,"GtkWidget","margin-start","5",None,None,None,None,None), + (3,118,"GtkWidget","receives-default","1",None,None,None,None,None), + (3,119,"GtkImage","icon-name","edit-delete",None,None,None,None,None), + (3,120,"GtkButton","label","Rule Add",None,None,None,None,None), + (3,120,"GtkWidget","halign","end",None,None,None,None,None), + (4,3,"GtkLabel","label","Language","yes",None,None,None,None), + (4,3,"GtkWidget","margin-end","10",None,None,None,None,None), + (4,3,"GtkWidget","margin-start","5",None,None,None,None,None), + (4,4,"GtkWidget","hexpand","1",None,None,None,None,None), + (5,1,"GtkWindow","child",None,None,None,None,None,2), (5,1,"GtkWindow","default-height","600",None,None,None,None,None), (5,1,"GtkWindow","default-width","800",None,None,None,None,None), (5,2,"GtkOrientable","orientation","vertical",None,None,None,None,None), (5,2,"GtkPaned","position","2000",None,None,None,None,None), - (5,2,"GtkWidget","can-focus","True",None,None,None,None,None), - (5,2,"GtkWidget","visible","True",None,None,None,None,None), + (5,2,"GtkPaned","shrink-end-child","0",None,None,None,None,None), + (5,2,"GtkPaned","shrink-start-child","0",None,None,None,None,None), + (5,2,"GtkWidget","focusable","1",None,None,None,None,None), (5,3,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (5,3,"GtkWidget","can-focus","False",None,None,None,None,None), - (5,3,"GtkWidget","visible","True",None,None,None,None,None), (5,4,"GtkLabel","label","Files/Folders","yes",None,None,None,None), - (5,4,"GtkWidget","can-focus","False",None,None,None,None,None), - (5,4,"GtkWidget","visible","True",None,None,None,None,None), - (5,5,"GtkWidget","can-focus","False",None,None,None,None,None), - (5,5,"GtkWidget","visible","True",None,None,None,None,None), - (5,6,"GtkScrolledWindow","shadow-type","in",None,None,None,None,None), - (5,6,"GtkWidget","can-focus","True",None,None,None,None,None), - (5,6,"GtkWidget","visible","True",None,None,None,None,None), + (5,5,"GtkWidget","vexpand","1",None,None,None,None,None), + (5,6,"GtkWidget","focusable","1",None,None,None,None,None), + (5,6,"GtkWidget","hexpand","1",None,None,None,None,None), (5,7,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (5,7,"GtkWidget","can-focus","False",None,None,None,None,None), - (5,7,"GtkWidget","visible","True",None,None,None,None,None), (5,8,"GtkButton","label","Add Files","yes",None,None,None,None), - (5,8,"GtkWidget","can-focus","True",None,None,None,None,None), - (5,8,"GtkWidget","receives-default","True",None,None,None,None,None), - (5,8,"GtkWidget","visible","True",None,None,None,None,None), + (5,8,"GtkWidget","focusable","1",None,None,None,None,None), + (5,8,"GtkWidget","receives-default","1",None,None,None,None,None), (5,9,"GtkButton","label","Add Folders","yes",None,None,None,None), - (5,9,"GtkWidget","can-focus","True",None,None,None,None,None), - (5,9,"GtkWidget","receives-default","True",None,None,None,None,None), - (5,9,"GtkWidget","visible","True",None,None,None,None,None), + (5,9,"GtkWidget","focusable","1",None,None,None,None,None), + (5,9,"GtkWidget","receives-default","1",None,None,None,None,None), (5,10,"GtkButton","label","Remove Selection","yes",None,None,None,None), - (5,10,"GtkWidget","can-focus","True",None,None,None,None,None), - (5,10,"GtkWidget","receives-default","True",None,None,None,None,None), - (5,10,"GtkWidget","visible","True",None,None,None,None,None), + (5,10,"GtkWidget","focusable","1",None,None,None,None,None), + (5,10,"GtkWidget","receives-default","1",None,None,None,None,None), (5,11,"GtkButton","label","Select","yes",None,None,None,None), - (5,11,"GtkWidget","can-focus","True",None,None,None,None,None), - (5,11,"GtkWidget","receives-default","True",None,None,None,None,None), - (5,11,"GtkWidget","visible","True",None,None,None,None,None), + (5,11,"GtkWidget","focusable","1",None,None,None,None,None), + (5,11,"GtkWidget","receives-default","1",None,None,None,None,None), (5,12,"GtkButton","label","Update Names","yes",None,None,None,None), - (5,12,"GtkWidget","can-focus","True",None,None,None,None,None), - (5,12,"GtkWidget","receives-default","True",None,None,None,None,None), - (5,12,"GtkWidget","visible","True",None,None,None,None,None), - (5,13,"GtkWidget","can-focus","True",None,None,None,None,None), - (5,13,"GtkWidget","receives-default","True",None,None,None,None,None), - (5,13,"GtkWidget","visible","True",None,None,None,None,None), + (5,12,"GtkWidget","focusable","1",None,None,None,None,None), + (5,12,"GtkWidget","receives-default","1",None,None,None,None,None), + (5,13,"GtkWidget","focusable","1",None,None,None,None,None), + (5,13,"GtkWidget","receives-default","1",None,None,None,None,None), (5,14,"GtkBox","spacing","7",None,None,None,None,None), - (5,14,"GtkWidget","can-focus","False",None,None,None,None,None), (5,14,"GtkWidget","halign","center",None,None,None,None,None), - (5,14,"GtkWidget","visible","True",None,None,None,None,None), (5,15,"GtkImage","icon-name","go-up",None,None,None,None,None), - (5,15,"GtkWidget","can-focus","False",None,None,None,None,None), - (5,15,"GtkWidget","visible","True",None,None,None,None,None), (5,16,"GtkLabel","label","One Up","yes",None,None,None,None), - (5,16,"GtkWidget","can-focus","False",None,None,None,None,None), - (5,16,"GtkWidget","visible","True",None,None,None,None,None), - (5,17,"GtkWidget","can-focus","True",None,None,None,None,None), - (5,17,"GtkWidget","receives-default","True",None,None,None,None,None), - (5,17,"GtkWidget","visible","True",None,None,None,None,None), + (5,17,"GtkWidget","focusable","1",None,None,None,None,None), + (5,17,"GtkWidget","receives-default","1",None,None,None,None,None), (5,18,"GtkBox","spacing","7",None,None,None,None,None), - (5,18,"GtkWidget","can-focus","False",None,None,None,None,None), (5,18,"GtkWidget","halign","center",None,None,None,None,None), - (5,18,"GtkWidget","visible","True",None,None,None,None,None), (5,19,"GtkImage","icon-name","go-down",None,None,None,None,None), - (5,19,"GtkWidget","can-focus","False",None,None,None,None,None), - (5,19,"GtkWidget","visible","True",None,None,None,None,None), (5,20,"GtkLabel","label","One Down","yes",None,None,None,None), - (5,20,"GtkWidget","can-focus","False",None,None,None,None,None), - (5,20,"GtkWidget","visible","True",None,None,None,None,None), - (5,21,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (5,21,"GtkWidget","can-focus","False",None,None,None,None,None), - (5,21,"GtkWidget","visible","True",None,None,None,None,None), - (5,22,"GtkLabel","label","Rules","yes",None,None,None,None), - (5,22,"GtkWidget","can-focus","False",None,None,None,None,None), - (5,22,"GtkWidget","visible","True",None,None,None,None,None), - (5,23,"GtkWidget","can-focus","False",None,None,None,None,None), - (5,23,"GtkWidget","visible","True",None,None,None,None,None), - (5,24,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (5,24,"GtkWidget","can-focus","False",None,None,None,None,None), - (5,24,"GtkWidget","visible","True",None,None,None,None,None), - (5,25,"GtkWidget","can-focus","True",None,None,None,None,None), - (5,25,"GtkWidget","receives-default","True",None,None,None,None,None), - (5,25,"GtkWidget","visible","True",None,None,None,None,None), - (5,26,"GtkBox","spacing","7",None,None,None,None,None), - (5,26,"GtkWidget","can-focus","False",None,None,None,None,None), - (5,26,"GtkWidget","halign","center",None,None,None,None,None), - (5,26,"GtkWidget","visible","True",None,None,None,None,None), - (5,27,"GtkImage","icon-name","list-add",None,None,None,None,None), - (5,27,"GtkWidget","can-focus","False",None,None,None,None,None), - (5,28,"GtkLabel","label","Add Rule","yes",None,None,None,None), - (5,28,"GtkWidget","can-focus","False",None,None,None,None,None), - (5,28,"GtkWidget","visible","True",None,None,None,None,None), - (5,29,"GtkWidget","can-focus","True",None,None,None,None,None), - (5,29,"GtkWidget","receives-default","True",None,None,None,None,None), - (5,29,"GtkWidget","visible","True",None,None,None,None,None), - (5,30,"GtkBox","spacing","7",None,None,None,None,None), - (5,30,"GtkWidget","can-focus","False",None,None,None,None,None), - (5,30,"GtkWidget","halign","center",None,None,None,None,None), - (5,30,"GtkWidget","visible","True",None,None,None,None,None), - (5,31,"GtkImage","icon-name","applications-engineering",None,None,None,None,None), - (5,31,"GtkWidget","can-focus","False",None,None,None,None,None), - (5,32,"GtkLabel","label","Edit Rule","yes",None,None,None,None), - (5,32,"GtkWidget","can-focus","False",None,None,None,None,None), - (5,32,"GtkWidget","visible","True",None,None,None,None,None), - (5,33,"GtkWidget","can-focus","True",None,None,None,None,None), - (5,33,"GtkWidget","receives-default","True",None,None,None,None,None), - (5,33,"GtkWidget","visible","True",None,None,None,None,None), - (5,34,"GtkBox","spacing","7",None,None,None,None,None), - (5,34,"GtkWidget","can-focus","False",None,None,None,None,None), - (5,34,"GtkWidget","halign","center",None,None,None,None,None), - (5,34,"GtkWidget","visible","True",None,None,None,None,None), - (5,35,"GtkImage","icon-name","list-remove",None,None,None,None,None), - (5,35,"GtkWidget","can-focus","False",None,None,None,None,None), - (5,36,"GtkLabel","label","Remove Rule","yes",None,None,None,None), - (5,36,"GtkWidget","can-focus","False",None,None,None,None,None), - (5,36,"GtkWidget","visible","True",None,None,None,None,None), - (5,37,"GtkWidget","can-focus","True",None,None,None,None,None), - (5,37,"GtkWidget","receives-default","True",None,None,None,None,None), - (5,37,"GtkWidget","visible","True",None,None,None,None,None), - (5,38,"GtkBox","spacing","7",None,None,None,None,None), - (5,38,"GtkWidget","can-focus","False",None,None,None,None,None), - (5,38,"GtkWidget","halign","center",None,None,None,None,None), - (5,38,"GtkWidget","visible","True",None,None,None,None,None), - (5,39,"GtkImage","icon-name","go-up",None,None,None,None,None), - (5,39,"GtkWidget","can-focus","False",None,None,None,None,None), - (5,39,"GtkWidget","visible","True",None,None,None,None,None), - (5,40,"GtkLabel","label","One Up","yes",None,None,None,None), - (5,40,"GtkWidget","can-focus","False",None,None,None,None,None), - (5,40,"GtkWidget","visible","True",None,None,None,None,None), - (5,41,"GtkWidget","can-focus","True",None,None,None,None,None), - (5,41,"GtkWidget","receives-default","True",None,None,None,None,None), - (5,41,"GtkWidget","visible","True",None,None,None,None,None), - (5,42,"GtkBox","spacing","7",None,None,None,None,None), - (5,42,"GtkWidget","can-focus","False",None,None,None,None,None), - (5,42,"GtkWidget","halign","center",None,None,None,None,None), - (5,42,"GtkWidget","visible","True",None,None,None,None,None), - (5,43,"GtkImage","icon-name","go-down",None,None,None,None,None), - (5,43,"GtkWidget","can-focus","False",None,None,None,None,None), - (5,43,"GtkWidget","visible","True",None,None,None,None,None), - (5,44,"GtkLabel","label","One Down","yes",None,None,None,None), - (5,44,"GtkWidget","can-focus","False",None,None,None,None,None), - (5,44,"GtkWidget","visible","True",None,None,None,None,None), - (5,45,"GtkScrolledWindow","shadow-type","in",None,None,None,None,None), - (5,45,"GtkWidget","can-focus","True",None,None,None,None,None), - (5,45,"GtkWidget","visible","True",None,None,None,None,None), - (5,46,"GtkHeaderBar","show-close-button","True",None,None,None,None,None), - (5,46,"GtkHeaderBar","subtitle","Fast and powerful file renamer","yes",None,None,None,None), - (5,46,"GtkHeaderBar","title","Szyszka","yes",None,None,None,None), - (5,46,"GtkWidget","can-focus","False",None,None,None,None,None), - (5,46,"GtkWidget","visible","True",None,None,None,None,None), - (5,47,"GtkWidget","can-focus","False",None,None,None,None,None), - (5,47,"GtkWidget","visible","True",None,None,None,None,None), - (5,48,"GtkButton","label","Start Renaming","yes",None,None,None,None), - (5,48,"GtkWidget","can-focus","True",None,None,None,None,None), - (5,48,"GtkWidget","receives-default","True",None,None,None,None,None), - (5,48,"GtkWidget","visible","True",None,None,None,None,None), - (5,49,"GtkWidget","can-focus","True",None,None,None,None,None), - (5,49,"GtkWidget","receives-default","True",None,None,None,None,None), - (5,49,"GtkWidget","visible","True",None,None,None,None,None), - (5,50,"GtkImage","icon-name","applications-engineering",None,None,None,None,None), - (5,50,"GtkWidget","can-focus","False",None,None,None,None,None), - (5,50,"GtkWidget","visible","True",None,None,None,None,None) + (5,21,"GtkWidget","vexpand","1",None,None,None,None,None), + (5,22,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (5,23,"GtkWidget","focusable","1",None,None,None,None,None), + (5,23,"GtkWidget","receives-default","1",None,None,None,None,None), + (5,24,"GtkBox","spacing","7",None,None,None,None,None), + (5,24,"GtkWidget","halign","center",None,None,None,None,None), + (5,25,"GtkImage","icon-name","list-add-symbolic",None,None,None,None,None), + (5,25,"GtkWidget","visible","0",None,None,None,None,None), + (5,26,"GtkLabel","label","Add Rule","yes",None,None,None,None), + (5,27,"GtkWidget","focusable","1",None,None,None,None,None), + (5,27,"GtkWidget","receives-default","1",None,None,None,None,None), + (5,28,"GtkBox","spacing","7",None,None,None,None,None), + (5,28,"GtkWidget","halign","center",None,None,None,None,None), + (5,29,"GtkImage","icon-name","applications-engineering",None,None,None,None,None), + (5,29,"GtkWidget","visible","0",None,None,None,None,None), + (5,30,"GtkLabel","label","Edit Rule","yes",None,None,None,None), + (5,31,"GtkWidget","focusable","1",None,None,None,None,None), + (5,31,"GtkWidget","receives-default","1",None,None,None,None,None), + (5,32,"GtkBox","spacing","7",None,None,None,None,None), + (5,32,"GtkWidget","halign","center",None,None,None,None,None), + (5,33,"GtkImage","icon-name","list-remove",None,None,None,None,None), + (5,33,"GtkWidget","visible","0",None,None,None,None,None), + (5,34,"GtkLabel","label","Remove Rule","yes",None,None,None,None), + (5,35,"GtkWidget","focusable","1",None,None,None,None,None), + (5,35,"GtkWidget","receives-default","1",None,None,None,None,None), + (5,36,"GtkBox","spacing","7",None,None,None,None,None), + (5,36,"GtkWidget","halign","center",None,None,None,None,None), + (5,37,"GtkImage","icon-name","go-up",None,None,None,None,None), + (5,38,"GtkLabel","label","One Up","yes",None,None,None,None), + (5,39,"GtkWidget","focusable","1",None,None,None,None,None), + (5,39,"GtkWidget","receives-default","1",None,None,None,None,None), + (5,40,"GtkBox","spacing","7",None,None,None,None,None), + (5,40,"GtkWidget","halign","center",None,None,None,None,None), + (5,41,"GtkImage","icon-name","go-down",None,None,None,None,None), + (5,42,"GtkLabel","label","One Down","yes",None,None,None,None), + (5,43,"GtkWidget","focusable","1",None,None,None,None,None), + (5,43,"GtkWidget","hexpand","1",None,None,None,None,None), + (5,44,"GtkLabel","label","Rules",None,None,None,None,None), + (5,47,"GtkButton","label","Start Renaming","yes",None,None,None,None), + (5,47,"GtkWidget","focusable","1",None,None,None,None,None), + (5,47,"GtkWidget","receives-default","1",None,None,None,None,None), + (5,48,"GtkWidget","focusable","1",None,None,None,None,None), + (5,48,"GtkWidget","receives-default","1",None,None,None,None,None), + (5,49,"GtkImage","icon-name","applications-engineering",None,None,None,None,None) - (2,2,3,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (2,2,3,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (2,2,4,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (2,2,4,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (2,2,5,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (2,2,5,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (2,2,6,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (2,2,6,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (2,2,7,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (2,2,7,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (2,2,8,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (2,2,8,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (2,2,9,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (2,2,9,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (2,2,10,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (2,2,10,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (2,2,11,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (2,2,11,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,3,4,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (3,3,4,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,3,112,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,3,112,"GtkBoxLayoutChild","fill","False",None,None,None,None), - (3,4,5,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (3,4,5,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,4,100,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,4,100,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,5,9,"GtkNotebookLayoutChild","tab-fill","False",None,None,None,None), - (3,5,22,"GtkNotebookLayoutChild","tab-fill","False",None,None,None,None), - (3,5,30,"GtkNotebookLayoutChild","tab-fill","False",None,None,None,None), - (3,5,46,"GtkNotebookLayoutChild","tab-fill","False",None,None,None,None), - (3,5,56,"GtkNotebookLayoutChild","tab-fill","False",None,None,None,None), - (3,5,75,"GtkNotebookLayoutChild","tab-fill","False",None,None,None,None), - (3,5,92,"GtkNotebookLayoutChild","tab-fill","False",None,None,None,None), - (3,5,99,"GtkNotebookLayoutChild","tab-fill","False",None,None,None,None), - (3,6,7,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,6,7,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,6,8,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,6,8,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,10,11,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,10,11,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,10,16,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,10,16,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,11,12,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,11,12,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,11,13,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,11,13,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,13,14,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (3,13,14,"GtkBoxLayoutChild","fill","False",None,None,None,None), - (3,13,15,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (3,13,15,"GtkBoxLayoutChild","fill","False",None,None,None,None), - (3,16,17,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,16,17,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,16,18,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,16,18,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,18,19,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (3,18,19,"GtkBoxLayoutChild","fill","False",None,None,None,None), - (3,18,20,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (3,18,20,"GtkBoxLayoutChild","fill","False",None,None,None,None), - (3,18,21,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (3,18,21,"GtkBoxLayoutChild","fill","False",None,None,None,None), - (3,23,24,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,23,24,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,24,25,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,24,25,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,24,26,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,24,26,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,26,27,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (3,26,27,"GtkBoxLayoutChild","fill","False",None,None,None,None), - (3,26,28,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (3,26,28,"GtkBoxLayoutChild","fill","False",None,None,None,None), - (3,26,29,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (3,26,29,"GtkBoxLayoutChild","fill","False",None,None,None,None), - (3,31,32,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,31,32,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,31,37,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,31,37,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,32,33,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,32,33,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,32,34,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,32,34,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,34,35,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (3,34,35,"GtkBoxLayoutChild","fill","False",None,None,None,None), - (3,34,36,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (3,34,36,"GtkBoxLayoutChild","fill","False",None,None,None,None), - (3,37,38,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,37,38,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,37,39,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,37,39,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,39,40,"GtkGridLayoutChild","left-attach","0",None,None,None,None), - (3,39,40,"GtkGridLayoutChild","top-attach","0",None,None,None,None), - (3,39,41,"GtkGridLayoutChild","left-attach","0",None,None,None,None), - (3,39,41,"GtkGridLayoutChild","top-attach","1",None,None,None,None), - (3,39,42,"GtkGridLayoutChild","left-attach","1",None,None,None,None), - (3,39,42,"GtkGridLayoutChild","top-attach","0",None,None,None,None), - (3,39,43,"GtkGridLayoutChild","left-attach","1",None,None,None,None), - (3,39,43,"GtkGridLayoutChild","top-attach","1",None,None,None,None), - (3,39,44,"GtkGridLayoutChild","left-attach","0",None,None,None,None), - (3,39,44,"GtkGridLayoutChild","top-attach","2",None,None,None,None), - (3,39,45,"GtkGridLayoutChild","left-attach","1",None,None,None,None), - (3,39,45,"GtkGridLayoutChild","top-attach","2",None,None,None,None), - (3,47,48,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,47,48,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,47,53,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,47,53,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,48,49,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,48,49,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,48,50,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,48,50,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,50,51,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (3,50,51,"GtkBoxLayoutChild","fill","False",None,None,None,None), - (3,50,52,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (3,50,52,"GtkBoxLayoutChild","fill","False",None,None,None,None), - (3,53,54,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,53,54,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,53,55,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,53,55,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,57,58,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,57,58,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,58,59,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,58,59,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,58,60,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,58,60,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,58,64,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,58,64,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,58,69,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,58,69,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,60,61,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (3,60,61,"GtkBoxLayoutChild","fill","False",None,None,None,None), - (3,60,62,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (3,60,62,"GtkBoxLayoutChild","fill","False",None,None,None,None), - (3,60,63,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (3,60,63,"GtkBoxLayoutChild","fill","False",None,None,None,None), - (3,64,65,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,64,65,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,64,66,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,64,66,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,66,67,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (3,66,67,"GtkBoxLayoutChild","fill","False",None,None,None,None), - (3,66,68,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (3,66,68,"GtkBoxLayoutChild","fill","False",None,None,None,None), - (3,69,70,"GtkGridLayoutChild","left-attach","0",None,None,None,None), - (3,69,70,"GtkGridLayoutChild","top-attach","2",None,None,None,None), - (3,69,71,"GtkGridLayoutChild","left-attach","1",None,None,None,None), - (3,69,71,"GtkGridLayoutChild","top-attach","2",None,None,None,None), - (3,69,72,"GtkGridLayoutChild","left-attach","1",None,None,None,None), - (3,69,72,"GtkGridLayoutChild","top-attach","1",None,None,None,None), - (3,69,73,"GtkGridLayoutChild","left-attach","0",None,None,None,None), - (3,69,73,"GtkGridLayoutChild","top-attach","1",None,None,None,None), - (3,69,74,"GtkGridLayoutChild","left-attach","0",None,None,None,None), - (3,69,74,"GtkGridLayoutChild","top-attach","0",None,None,None,None), - (3,69,74,"GtkGridLayoutChild","width","2",None,None,None,None), - (3,76,77,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,76,77,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,76,84,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,76,84,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,76,89,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,76,89,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,77,78,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,77,78,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,77,79,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,77,79,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,79,80,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (3,79,80,"GtkBoxLayoutChild","fill","False",None,None,None,None), - (3,79,81,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (3,79,81,"GtkBoxLayoutChild","fill","False",None,None,None,None), - (3,79,82,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (3,79,82,"GtkBoxLayoutChild","fill","False",None,None,None,None), - (3,79,83,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (3,79,83,"GtkBoxLayoutChild","fill","False",None,None,None,None), - (3,84,85,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,84,85,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,84,86,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,84,86,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,86,87,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (3,86,87,"GtkBoxLayoutChild","fill","False",None,None,None,None), - (3,86,88,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (3,86,88,"GtkBoxLayoutChild","fill","False",None,None,None,None), - (3,89,90,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,89,90,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,89,91,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,89,91,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,93,94,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,93,94,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,93,95,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,93,95,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,93,96,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,93,96,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,96,97,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (3,96,97,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,96,98,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (3,96,98,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,100,101,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,100,101,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,100,102,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,100,102,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,102,103,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (3,102,103,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,102,110,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,102,110,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,103,104,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,103,104,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,103,107,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (3,103,107,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,104,105,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,104,105,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,104,106,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,104,106,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,107,108,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,107,108,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,107,109,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (3,107,109,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (3,112,113,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (3,112,113,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (4,2,3,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (4,2,3,"GtkBoxLayoutChild","fill","False",None,None,None,None), - (4,2,4,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (4,2,4,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (4,4,5,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (4,4,5,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (4,4,6,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (4,4,6,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,2,3,"GtkPanedLayoutChild","resize","True",None,None,None,None), - (5,2,3,"GtkPanedLayoutChild","shrink","False",None,None,None,None), - (5,2,21,"GtkPanedLayoutChild","resize","True",None,None,None,None), - (5,2,21,"GtkPanedLayoutChild","shrink","False",None,None,None,None), - (5,3,4,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (5,3,4,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,3,4,"GtkBoxLayoutChild","padding","1",None,None,None,None), - (5,3,5,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (5,3,5,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,5,6,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (5,5,6,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,5,7,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (5,5,7,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,7,8,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (5,7,8,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,7,9,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (5,7,9,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,7,10,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (5,7,10,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,7,11,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (5,7,11,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,7,12,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (5,7,12,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,7,13,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (5,7,13,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,7,17,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (5,7,17,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,14,15,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (5,14,15,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,14,16,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (5,14,16,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,18,19,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (5,18,19,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,18,20,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (5,18,20,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,21,22,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (5,21,22,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,21,22,"GtkBoxLayoutChild","padding","1",None,None,None,None), - (5,21,23,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (5,21,23,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,23,24,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (5,23,24,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,23,45,"GtkBoxLayoutChild","expand","True",None,None,None,None), - (5,23,45,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,24,25,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (5,24,25,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,24,29,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (5,24,29,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,24,33,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (5,24,33,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,24,37,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (5,24,37,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,24,41,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (5,24,41,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,26,27,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (5,26,27,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,26,28,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (5,26,28,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,30,31,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (5,30,31,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,30,32,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (5,30,32,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,34,35,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (5,34,35,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,34,36,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (5,34,36,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,38,39,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (5,38,39,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,38,40,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (5,38,40,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,42,43,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (5,42,43,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,42,44,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (5,42,44,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,47,48,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (5,47,48,"GtkBoxLayoutChild","fill","True",None,None,None,None), - (5,47,49,"GtkBoxLayoutChild","expand","False",None,None,None,None), - (5,47,49,"GtkBoxLayoutChild","fill","True",None,None,None,None) + (3,43,44,"GtkGridLayoutChild","column","0",None,None,None,None), + (3,43,44,"GtkGridLayoutChild","row","0",None,None,None,None), + (3,43,45,"GtkGridLayoutChild","column","0",None,None,None,None), + (3,43,45,"GtkGridLayoutChild","row","1",None,None,None,None), + (3,43,46,"GtkGridLayoutChild","column","1",None,None,None,None), + (3,43,46,"GtkGridLayoutChild","row","0",None,None,None,None), + (3,43,47,"GtkGridLayoutChild","column","1",None,None,None,None), + (3,43,47,"GtkGridLayoutChild","row","1",None,None,None,None), + (3,43,48,"GtkGridLayoutChild","column","0",None,None,None,None), + (3,43,48,"GtkGridLayoutChild","row","2",None,None,None,None), + (3,43,49,"GtkGridLayoutChild","column","1",None,None,None,None), + (3,43,49,"GtkGridLayoutChild","row","2",None,None,None,None), + (3,75,76,"GtkGridLayoutChild","column","0",None,None,None,None), + (3,75,76,"GtkGridLayoutChild","row","2",None,None,None,None), + (3,75,77,"GtkGridLayoutChild","column","1",None,None,None,None), + (3,75,77,"GtkGridLayoutChild","row","2",None,None,None,None), + (3,75,78,"GtkGridLayoutChild","column","1",None,None,None,None), + (3,75,78,"GtkGridLayoutChild","row","1",None,None,None,None), + (3,75,79,"GtkGridLayoutChild","column","0",None,None,None,None), + (3,75,79,"GtkGridLayoutChild","row","1",None,None,None,None), + (3,75,80,"GtkGridLayoutChild","column","0",None,None,None,None), + (3,75,80,"GtkGridLayoutChild","column-span","2",None,None,None,None), + (3,75,80,"GtkGridLayoutChild","row","0",None,None,None,None) diff --git a/ui/popover.ui b/ui/popover.ui index d55a719..cd4a5fd 100644 --- a/ui/popover.ui +++ b/ui/popover.ui @@ -1,119 +1,64 @@ - - + - False - + - False vertical - True - True + 1 Select All - True - True + 1 - - False - True - - - False - True - - - False - True - + - True + 1 Reverse Selection - True - True + 1 - - False - True - - - False - True - - - False - True - + - True + 1 Select Custom - True - True + 1 - - False - True - - True + 1 Unselect Custom - True - True + 1 - - False - True - - - False - True - - - False - True - + - True + 1 Select Changed - True - True + 1 - - False - True - - True + 1 Unselect Changed - True - True + 1 - - False - True - - + diff --git a/ui/rule_chooser.ui b/ui/rule_chooser.ui index afbd22d..2a51a0a 100644 --- a/ui/rule_chooser.ui +++ b/ui/rule_chooser.ui @@ -1,9 +1,8 @@ - - + $(NAME) - prints file name $(EXT) - prints extension @@ -14,1300 +13,786 @@ $(N:6:3:2) - prints numbers with step 3, starts with 6 and fill with zeros to 2 numbers -> 06,09,12 etc. - False - 400 - 600 - + - False vertical 2 - True - False 5 5 5 5 vertical - True + 1 - True + 1 left - True + 1 - - False - 5 - 5 - 5 - vertical - 2 - True - - - textbuffer1 - True - center - True + + + + 5 + 5 + 5 + vertical + 2 + + + textbuffer1 + 1 + center + + + + + 1 + 150 + $(CURR) + + - - False - True - - - - - True - 150 - $(CURR) - True + + + + Custom - - False - True - - + - - - False - Custom - True - - - False - - - - False - 5 - 5 - 5 - vertical - 2 - True - + + - False + 5 + 5 + 5 vertical - True - - - False - Tool Type: - True - - - False - True - - + 2 - False - True + vertical - - True - True - True - Uppercase - False - True + + Tool Type: - - True - False - - - True - True - Lowercase - False - True + + + + 1 + 1 + center + 1 + Uppercase + + + + + 1 + center + 1 + Lowercase + + - - True - False - - - False - True - - - - - False - True - - - - - False - vertical - True - - - False - Usage Type: - True - - - False - True - - False - True - - - True - True - True - Only Name - False - True - - - True - False - - + vertical - - True - True - Only Extension - False - True + + Usage Type: - - True - False - - - True - True - Both - False - True + + + + 1 + 1 + center + 1 + Only Name + + + + + 1 + center + 1 + Only Extension + + + + + 1 + center + 1 + Both + + - - True - False - - - False - True - - - False - True - - - - - - - False - Upper/Lower cases - True + + + + Upper/Lower cases + + - - False - - - False - 5 - 5 - 5 - vertical - 2 - True - + + - False + 5 + 5 + 5 vertical - True - - - False - Usage Type: - True - - - False - True - - + 2 - False - True - - - True - True - True - Only Name - False - True - - - True - False - - + vertical - - True - True - Only Extension - False - True + + Usage Type: - - True - False - - - True - True - Both - False - True + + + + 1 + 1 + center + 1 + Only Name + + + + + 1 + center + 1 + Only Extension + + + + + 1 + center + 1 + Both + + - - True - False - - - False - True - - - False - True - - - - - - - False - Purge - True + + + + Purge + + - - False - - - False - 5 - 5 - 5 - vertical - 2 - True - + + - False + 5 + 5 + 5 vertical - True - - - False - Place to put number: - True - - - False - True - - + 2 - False - True + vertical - - True - True - True - Before Name - False - True + + Place to put number: - - True - False - - - True - True - After Name - False - True + + + + 1 + 1 + center + 1 + Before Name + + + + + 1 + center + 1 + After Name + + - - True - False - - - False - True - - - - - False - True - - - - - False - vertical - True - - - False - Number Settings: - True - - - False - True - - - - False - True - True + + vertical - False - Start Number - True + Number Settings: - - 0 - 0 - - - False - Step - True + + 1 + + + Start Number + + 0 + 0 + + + + + + Step + + 0 + 1 + + + + + + 1 + digits + 30 + 1 + + 1 + 0 + + + + + + 1 + digits + 30 + 1 + + 1 + 1 + + + + + + Fill with zeros + + 0 + 2 + + + + + + 1 + digits + 4 + 0 + + 1 + 2 + + + - - 0 - 1 - + + + + + + + Add Number + + + + + + + + + 5 + 5 + 5 + vertical + 2 + + + vertical - - True - digits - 30 - 1 - True + + Usage Type: - - 1 - 0 - - - True - digits - 30 - 1 - True + + + + 1 + 1 + center + 1 + Before Name + + + + + 1 + center + 1 + After Name + + - - 1 - 1 - + + + + + vertical - False - Fill with zeros - True + Text to add: - - 0 - 2 - - - True - digits - 4 - 0 - True + + 1 + Źdźbło - - 1 - 2 - - - False - True - - - False - True - - - - - - - False - Add Number - True + + + + Add Text + + - - False - - - False - 5 - 5 - 5 - vertical - 2 - True - + + - False + 5 + 5 + 5 vertical - True - - - False - Usage Type: - True - - - False - True - - + 2 - False - True + vertical - - True - True - True - Before Name - False - True + + Usage Type: + + + + + + + 1 + 1 + center + 1 + Only Name + + + + + 1 + center + 1 + Only Extension + + + + + 1 + center + 1 + Both + + - - True - False - - - True - True - After Name - False - True + + vertical + + + Case Sensitivity + + + + + + + 1 + 1 + center + 1 + Case Sensitive + + + + + 1 + center + 1 + Case Insensitive + + + + + + + + + 1 + + + Replaced Text + + 0 + 2 + + + + + + 1 + 100 + k + + 1 + 2 + + + + + + 1 + 100 + a + + 1 + 1 + + + + + + Text to replace + + 0 + 1 + + + + + + Replacing Strings: + + 0 + 2 + 0 + + + - - True - False - - - False - True - - - False - True - - - - - False - vertical - True - - - False - Text to add: - True - - - False - True - - - - - True - Źdźbło - True - - - False - True - - + + + + Replace - - False - True - - - - - - - False - Add Text - True + - - False - - - False - 5 - 5 - 5 - vertical - 2 - True - + + - False + 5 + 5 + 5 vertical - True - - - False - Usage Type: - True - - - False - True - - + 2 - False - True - - - True - True - True - Only Name - False - True - - - True - False - - + vertical - - True - True - Only Extension - False - True + + Usage Type: - - True - False - - - True - True - Both - False - True + + + + 1 + 1 + center + 1 + Name Start + + + + + 1 + center + 1 + Name End + + + + + 1 + center + 1 + Extension Start + + + + + 1 + center + 1 + Extension End + + - - True - False - - - False - True - - False vertical - True - False Case Sensitivity - True - - False - True - - False - True - - True - True - True + + 1 + 1 + center + 1 Case Sensitive - False - True - - True - False - - - True - True + + 1 + center + 1 Case Insensitive - False - True - - True - False - - - False - True - - - False - True - - - - False - True - True - - - False - Replaced Text - True - - - 0 - 2 - - - - - True - 100 - k - True - - - 1 - 2 - - - - - True - 100 - a - True - - - 1 - 1 - - + + vertical - False - Text to replace - True + Trim text - - 0 - 1 - - - False - Replacing Strings: - True + + 1 - - 0 - 0 - 2 - - - False - True - - - False - True - - - - - - - False - Replace - True + + + + Trim + + - - False - - - False - 5 - 5 - 5 - vertical - 2 - True - + + - False vertical - True - False - Usage Type: - True + Normalize Name + 10 - - False - True - - - - False - True - - - True - True - True - Name Start - False - True - - - True - False - - - - - True - True - Name End - False - True - - - True - False - - - - - True - True - Extension Start - False - True - - - True - False - - - - - True - True - Extension End - False - True - - - True - False - - - - - False - True - - - - - False - True - - - - - False - vertical - True - False - Case Sensitivity - True + start + Everything - renames the name to one that containsonly the + characters `a-z`, `0-9`, `-`, ` `, `.`. + e.g. `żółć CZERona.Txt` -> `zolc-czerwona.txt` + +Partial - works exacly same as option above, but allows + to use spaces ` ` and big letters `A-Z` + e.g. ` Źrebię Krokietowe.Rar ` -> `Zrebie Krokietowe.Rar` + 10 + 5 - - False - True - - False - True - - True - True - True - Case Sensitive - False - True + + 1 + 1 + center + 1 + Everything - - True - False - - - True - True - Case Insensitive - False - True + + 1 + 1 + center + 1 + Partial - - True - False - - - False - True - - - False - True - - - - - False - vertical - True - - - False - Trim text - True - - - False - True - - - - - True - True - - - False - True - - - - - False - True - - - - - - - False - Trim - True - - - False - - - - - False - vertical - True - + + - False Normalize Name - 10 - True - - - False - True - - - - - False - start - Everything - renames the name to one that containsonly the - characters `a-z`, `0-9`, `-`, ` `, `.`. - e.g. `żółć CZERona.Txt` -> `zolc-czerwona.txt` - -Partial - works exacly same as option above, but allows - to use spaces ` ` and big letters `A-Z` - e.g. ` Źrebię Krokietowe.Rar ` -> `Zrebie Krokietowe.Rar` - 10 - 5 - True - - - False - True - - - - - False - True - - - True - True - True - center - Everything - False - True - - - True - True - - - - - True - True - True - center - Partial - False - True - - - True - True - - - - False - True - - + - - - False - Normalize Name - True - - - False - - - - True - True - - False vertical - True - False EXAMPLE 5 5 - True - - False - True - - False - True - False - True + 1 - False - True + 1 10 10 vertical - True - False Before: - True - - False - True - - False After: - True - - False - True - - - False - True - - False - True + 1 + 1 vertical - True - True + 1 100 - True - - False - True - - False start label 3 - True - - False - True - - - True - True - - - True - True - - True + 1 5 - True - True + 1 - False edit-delete - True - - False - True - - - False - True - - - False - True - - - - True - True - - - - - False - end - 5 - 5 - 5 - True - True - Add Rule - True - True + end + Rule Add - - True - True - - - False - False - - + + 400 + 600 diff --git a/ui/settings.ui b/ui/settings.ui index b893291..d6a74ac 100644 --- a/ui/settings.ui +++ b/ui/settings.ui @@ -1,59 +1,22 @@ - - + - False - dialog - + - False - vertical - 2 - - - False - end + + + Language + 10 + 5 - - False - False - - - False - True - - - False - Language - 10 - 5 - True - - - False - True - - - - - False - True - - - True - True - - + + 1 - - False - True - diff --git a/ui/window_main.ui b/ui/window_main.ui index 34af563..cde1126 100644 --- a/ui/window_main.ui +++ b/ui/window_main.ui @@ -1,515 +1,280 @@ - - + - False - 600 - 800 - + - True + 1 vertical 2000 - True + 0 + 0 - False vertical - True - False Files/Folders - True - - False - True - 1 - - False - True + 1 - True - in - True + 1 + 1 - - True - True - - False vertical - True - True + 1 Add Files - True - True + 1 - - False - True - - True + 1 Add Folders - True - True + 1 - - False - True - - True + 1 Remove Selection - True - True + 1 - - False - True - - True + 1 Select - True - True + 1 - - False - True - - True + 1 Update Names - True - True + 1 - - False - True - - True - True - True + 1 + 1 - False center 7 - True - False go-up - True - - False - True - - False One Up - True - - False - True - - - False - True - - True - True - True + 1 + 1 - False center 7 - True - False go-down - True - - False - True - - False One Down - True - - False - True - - - False - True - - - False - True - - - True - True - - - - - True - False - - - - - False - vertical - True - - - False - Rules - True - - - False - True - 1 - - False - True + 1 - False vertical - True - True - True - True + 1 + 1 - False center 7 - True - False - list-add + list-add-symbolic + 0 - - False - True - - False Add Rule - True - - False - True - - - False - True - - True - True - True + 1 + 1 - False center 7 - True - False applications-engineering + 0 - - False - True - - False Edit Rule - True - - False - True - - - False - True - - True - True - True + 1 + 1 - False center 7 - True - False list-remove + 0 - - False - True - - False Remove Rule - True - - False - True - - - False - True - - True - True - True + 1 + 1 - False center 7 - True - False go-up - True - - False - True - - False One Up - True - - False - True - - - False - True - - True - True - True + 1 + 1 - False center 7 - True - False go-down - True - - False - True - - False One Down - True - - False - True - - - False - True - - - False - True - - True - in - True + 1 + 1 - - True - True - - - True - True - - - True - False - + + + + Rules + - + + 600 + 800 - False - True - Fast and powerful file renamer - Szyszka - True - False - True - True + 1 Start Renaming - True - True + 1 - - False - True - - True - True - True + 1 + 1 - False applications-engineering - True - - False - True - From c09377b17b8df8bae401a54141bcff5ee62d037c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mikrut?= Date: Fri, 22 Jul 2022 16:16:41 +0200 Subject: [PATCH 09/18] Updated Open --- Cargo.lock | 105 +++++++++++++++++++++++++++-------------------------- Cargo.toml | 2 +- 2 files changed, 55 insertions(+), 52 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d7f14cc..ebfeb72 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13,9 +13,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.57" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f9b8508dccb7687a1d6c4ce66b2b0ecef467c94667de27d8d7fe1f8d2a9cdc" +checksum = "bb07d2053ccdbe10e2af2995a2f116c1330396493dc1269f6a91d0ae82e19704" [[package]] name = "autocfg" @@ -46,9 +46,9 @@ dependencies = [ [[package]] name = "cairo-rs" -version = "0.15.11" +version = "0.15.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62be3562254e90c1c6050a72aa638f6315593e98c5cdaba9017cedbabf0a5dee" +checksum = "c76ee391b03d35510d9fa917357c7f1855bd9a6659c95a1b392e33f49b3369bc" dependencies = [ "bitflags", "cairo-sys-rs", @@ -274,9 +274,9 @@ dependencies = [ [[package]] name = "gdk4" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4a2fc0bd03d59383fc10b71a8cb731a1fac2998732a36a0c03e9b1de1513218" +checksum = "4fabb7cf843c26b085a5d68abb95d0c0bf27a9ae2eeff9c4adb503a1eb580876" dependencies = [ "bitflags", "cairo-rs", @@ -290,9 +290,9 @@ dependencies = [ [[package]] name = "gdk4-sys" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b34a7e60e0c0103cffeaf7baf9dc05358dca74fd350a0c4d61c6c3083ca9fdf1" +checksum = "efe7dcb44f5c00aeabff3f69abfc5673de46559070f89bd3fbb7b66485d9cef2" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -317,9 +317,9 @@ dependencies = [ [[package]] name = "gio" -version = "0.15.11" +version = "0.15.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f132be35e05d9662b9fa0fee3f349c6621f7782e0105917f4cc73c1bf47eceb" +checksum = "68fdbc90312d462781a395f7a16d96a2b379bb6ef8cd6310a2df272771c4283b" dependencies = [ "bitflags", "futures-channel", @@ -347,9 +347,9 @@ dependencies = [ [[package]] name = "glib" -version = "0.15.11" +version = "0.15.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd124026a2fa8c33a3d17a3fe59c103f2d9fa5bd92c19e029e037736729abeab" +checksum = "edb0306fbad0ab5428b0ca674a23893db909a98582969c9b537be4ced78c505d" dependencies = [ "bitflags", "futures-channel", @@ -426,9 +426,9 @@ dependencies = [ [[package]] name = "gsk4" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14d5a47a78c682bb67496b562495ed84972c0512ba0654888c4dc92b80a85bd3" +checksum = "05e9020d333280b3aa38d496495bfa9b50712eebf1ad63f0ec5bcddb5eb61be4" dependencies = [ "bitflags", "cairo-rs", @@ -442,9 +442,9 @@ dependencies = [ [[package]] name = "gsk4-sys" -version = "0.4.2" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e31d21d7ce02ba261bb24c50c4ab238a10b41a2c97c32afffae29471b7cca69b" +checksum = "7add39ccf60078508c838643a2dcc91f045c46ed63b5ea6ab701b2e25bda3fea" dependencies = [ "cairo-sys-rs", "gdk4-sys", @@ -458,9 +458,9 @@ dependencies = [ [[package]] name = "gtk4" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb5d40303dabe4608fc260de2bd7563da6f85bc90af956323f0cd8ae0abcfe03" +checksum = "c64f0c2a3d80e899dc3febddad5bac193ffcf74a0fd7e31037f30dd34d6f7396" dependencies = [ "bitflags", "cairo-rs", @@ -481,9 +481,9 @@ dependencies = [ [[package]] name = "gtk4-macros" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f3c4aa605fb3d78205c7aef0eeaa6db61d8cc4dd05a465dc6ffdfdaee84f825" +checksum = "fafbcc920af4eb677d7d164853e7040b9de5a22379c596f570190c675d45f7a7" dependencies = [ "anyhow", "proc-macro-crate", @@ -496,9 +496,9 @@ dependencies = [ [[package]] name = "gtk4-sys" -version = "0.4.5" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c47c075e8f795c38f6e9a47b51a73eab77b325f83c0154979ed4d4245c36490d" +checksum = "5bc8006eea634b7c72da3ff79e24606e45f21b3b832a3c5a1f543f5f97eb0f63" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -515,9 +515,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.12.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db0d4cf898abf0081f964436dc980e96670a0f36863e4b83aaacdb65c9d7ccc3" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] name = "heck" @@ -738,9 +738,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7709cef83f0c1f58f666e746a08b21e0085f7440fa6a29cc194d68aac97a4225" +checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1" [[package]] name = "opaque-debug" @@ -750,12 +750,12 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "open" -version = "2.1.2" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0524af9508f9b5c4eb41dce095860456727748f63b478d625f119a70e0d764a" +checksum = "f23a407004a1033f53e93f9b45580d14de23928faad187384f891507c9b0c045" dependencies = [ "pathdiff", - "winapi", + "windows-sys", ] [[package]] @@ -875,9 +875,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.39" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c54b25569025b7fc9651de43004ae593a75ad88543b17178aa5e1b9c4f15f56f" +checksum = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7" dependencies = [ "unicode-ident", ] @@ -893,9 +893,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.18" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1" +checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804" dependencies = [ "proc-macro2", ] @@ -911,9 +911,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.5.6" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d83f127d94bdbcda4c8cc2e50f6f84f4b611f69c902699ca385a39c3a75f9ff1" +checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" dependencies = [ "aho-corasick", "memchr", @@ -922,9 +922,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.6.26" +version = "0.6.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49b3de9ec5dc0a3417da371aab17d729997c15010e7fd24ff707773a33bddb64" +checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" [[package]] name = "rust-embed" @@ -1016,18 +1016,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.137" +version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61ea8d54c77f8315140a05f4c7237403bf38b72704d031543aa1d16abbf517d1" +checksum = "fc855a42c7967b7c369eb5860f7164ef1f6f81c20c7cc1141f2a604e18723b03" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.137" +version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f26faba0c3959972377d3b2d306ee9f71faee9714294e41bb777f83f88578be" +checksum = "6f2122636b9fe3b81f1cb25099fcf2d3f542cdb1d45940d56c713158884a05da" dependencies = [ "proc-macro2", "quote", @@ -1049,9 +1049,12 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32" +checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +dependencies = [ + "autocfg", +] [[package]] name = "slugmin" @@ -1064,9 +1067,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" +checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" [[package]] name = "strsim" @@ -1076,9 +1079,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "syn" -version = "1.0.95" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbaf6116ab8924f39d52792136fb74fd60a80194cf1b1c6ffa6453eef1c3f942" +checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd" dependencies = [ "proc-macro2", "quote", @@ -1180,9 +1183,9 @@ checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" [[package]] name = "ucd-trie" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" +checksum = "89570599c4fe5585de2b388aab47e99f7fa4e9238a1399f707a02e356058141c" [[package]] name = "unic-langid" @@ -1205,9 +1208,9 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d22af068fba1eb5edcb4aea19d382b2a3deb4c8f9d475c589b6ada9e0fd493ee" +checksum = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7" [[package]] name = "version-compare" diff --git a/Cargo.toml b/Cargo.toml index 2205e26..61c0c16 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,7 +20,7 @@ humansize = "1.1.1" chrono = "0.4.19" # For opening files -open = "2.1.2" +open = "3.0.2" # For slugs slugmin = "1.0.2" From 39abec4c82f7bb0ae13e8751a5cb1341b9f394e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mikrut?= Date: Tue, 1 Nov 2022 11:06:04 +0100 Subject: [PATCH 10/18] Updated dependencies --- Cargo.lock | 614 +++++++++++++++++++++++++++++++++------------ Cargo.toml | 18 +- src/rule_custom.rs | 5 +- 3 files changed, 466 insertions(+), 171 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ebfeb72..7d443ff 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,18 +4,27 @@ version = 3 [[package]] name = "aho-corasick" -version = "0.7.18" +version = "0.7.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" +checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" dependencies = [ "memchr", ] +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + [[package]] name = "anyhow" -version = "1.0.58" +version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb07d2053ccdbe10e2af2995a2f116c1330396493dc1269f6a91d0ae82e19704" +checksum = "216261ddc8289130e551ddcd5ce8a064710c0d064a4d2895c67151c92b5443f6" [[package]] name = "autocfg" @@ -37,42 +46,55 @@ checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" [[package]] name = "block-buffer" -version = "0.9.0" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" dependencies = [ "generic-array", ] +[[package]] +name = "bumpalo" +version = "3.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" + [[package]] name = "cairo-rs" -version = "0.15.12" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c76ee391b03d35510d9fa917357c7f1855bd9a6659c95a1b392e33f49b3369bc" +checksum = "08f9ee4a4ca9239c9a839453dce04b7ddee2f859ec4cd7acd1f5703b68db549c" dependencies = [ "bitflags", "cairo-sys-rs", "glib", "libc", + "once_cell", "thiserror", ] [[package]] name = "cairo-sys-rs" -version = "0.15.1" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8" +checksum = "5119ea655ec777b523f0b57279e70f8a4542f61b0e98a48f892b4ef043fd4c5d" dependencies = [ "glib-sys", "libc", "system-deps", ] +[[package]] +name = "cc" +version = "1.0.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "581f5dba903aac52ea3feb5ec4810848460ee833876f1f9b0fdeab1f19091574" + [[package]] name = "cfg-expr" -version = "0.10.3" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aacacf4d96c24b2ad6eb8ee6df040e4f27b0d0b39a5710c30091baa830485db" +checksum = "b0357a6402b295ca3a86bc148e84df46c02e41f41fef186bda662557ef6328aa" dependencies = [ "smallvec", ] @@ -85,51 +107,136 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.19" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" +checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1" dependencies = [ - "libc", + "iana-time-zone", + "js-sys", "num-integer", "num-traits", "time", + "wasm-bindgen", "winapi", ] +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "termcolor", + "unicode-width", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" + [[package]] name = "cpufeatures" -version = "0.2.2" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b" +checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" dependencies = [ "libc", ] +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "cxx" +version = "1.0.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b7d4e43b25d3c994662706a1d4fcfc32aaa6afd287502c111b237093bb23f3a" +dependencies = [ + "cc", + "cxxbridge-flags", + "cxxbridge-macro", + "link-cplusplus", +] + +[[package]] +name = "cxx-build" +version = "1.0.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84f8829ddc213e2c1368e51a2564c552b65a8cb6a28f31e576270ac81d5e5827" +dependencies = [ + "cc", + "codespan-reporting", + "once_cell", + "proc-macro2", + "quote", + "scratch", + "syn", +] + +[[package]] +name = "cxxbridge-flags" +version = "1.0.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e72537424b474af1460806647c41d4b6d35d09ef7fe031c5c2fa5766047cc56a" + +[[package]] +name = "cxxbridge-macro" +version = "1.0.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "309e4fb93eed90e1e14bea0da16b209f81813ba9fc7830c20ed151dd7bc0a4d7" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "dashmap" -version = "5.3.4" +version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3495912c9c1ccf2e18976439f4443f3fee0fd61f424ff99fde6a66b15ecb448f" +checksum = "907076dfda823b0b36d2a1bb5f90c96660a5bbcd7729e10727f07858f22c4edc" dependencies = [ "cfg-if", "hashbrown", "lock_api", + "once_cell", "parking_lot_core", ] [[package]] name = "deunicode" -version = "1.3.1" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2c9736e15e7df1638a7f6eee92a6511615c738246a052af5ba86f039b65aede" +checksum = "08ff6a4480d42625e59bc4e8b5dc3723279fd24d83afe8aa20df217276261cd6" [[package]] name = "digest" -version = "0.9.0" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c" dependencies = [ - "generic-array", + "block-buffer", + "crypto-common", +] + +[[package]] +name = "displaydoc" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bf95dc3f046b9da4f2d51833c0d3547d8564ef6910f5c1ed130306a75b92886" +dependencies = [ + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -197,24 +304,24 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.21" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" +checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" dependencies = [ "futures-core", ] [[package]] name = "futures-core" -version = "0.3.21" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" +checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" [[package]] name = "futures-executor" -version = "0.3.21" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6" +checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2" dependencies = [ "futures-core", "futures-task", @@ -223,23 +330,35 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.21" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b" +checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb" + +[[package]] +name = "futures-macro" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] [[package]] name = "futures-task" -version = "0.3.21" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" +checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" [[package]] name = "futures-util" -version = "0.3.21" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" +checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" dependencies = [ "futures-core", + "futures-macro", "futures-task", "pin-project-lite", "pin-utils", @@ -248,9 +367,9 @@ dependencies = [ [[package]] name = "gdk-pixbuf" -version = "0.15.11" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad38dd9cc8b099cceecdf41375bb6d481b1b5a7cd5cd603e10a69a9383f8619a" +checksum = "c0fb526c8c3a075eda15f961820edf3e15fe18576ac4fbabbb324e4cc6c421e6" dependencies = [ "bitflags", "gdk-pixbuf-sys", @@ -261,9 +380,9 @@ dependencies = [ [[package]] name = "gdk-pixbuf-sys" -version = "0.15.10" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "140b2f5378256527150350a8346dbdb08fadc13453a7a2d73aecd5fab3c402a7" +checksum = "7df12d15c10c3c5a84d9fb4ba0e27659f6a2bdee4f27f8b17126da15d5ddd3f2" dependencies = [ "gio-sys", "glib-sys", @@ -274,9 +393,9 @@ dependencies = [ [[package]] name = "gdk4" -version = "0.4.8" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fabb7cf843c26b085a5d68abb95d0c0bf27a9ae2eeff9c4adb503a1eb580876" +checksum = "66fe07f362c977c4684d1136a29f097208b3ccb2013ab6f441a3c60a046fd358" dependencies = [ "bitflags", "cairo-rs", @@ -290,9 +409,9 @@ dependencies = [ [[package]] name = "gdk4-sys" -version = "0.4.8" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efe7dcb44f5c00aeabff3f69abfc5673de46559070f89bd3fbb7b66485d9cef2" +checksum = "ddcf9e3ab5f237bb641e7f2fccc4b26d5b86f111f0d62e27d452dc24964541c2" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -307,9 +426,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.5" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803" +checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" dependencies = [ "typenum", "version_check", @@ -317,26 +436,29 @@ dependencies = [ [[package]] name = "gio" -version = "0.15.12" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68fdbc90312d462781a395f7a16d96a2b379bb6ef8cd6310a2df272771c4283b" +checksum = "33c1debf8d0315d69be0153aa76249db3c858ef69b7778ad3cc669e6d370c485" dependencies = [ "bitflags", "futures-channel", "futures-core", "futures-io", + "futures-util", "gio-sys", "glib", "libc", "once_cell", + "pin-project-lite", + "smallvec", "thiserror", ] [[package]] name = "gio-sys" -version = "0.15.10" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32157a475271e2c4a023382e9cab31c4584ee30a97da41d3c4e9fdd605abcf8d" +checksum = "6da1bba9d3f2ab13a6e9932c40f240dc99ebc9f0bdc35cfb130d1a3df36f374c" dependencies = [ "glib-sys", "gobject-sys", @@ -347,15 +469,17 @@ dependencies = [ [[package]] name = "glib" -version = "0.15.12" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edb0306fbad0ab5428b0ca674a23893db909a98582969c9b537be4ced78c505d" +checksum = "d5abffa711471e015eb93d65d6ea20e7e9f6f7951fc0a1042280439319b2de06" dependencies = [ "bitflags", "futures-channel", "futures-core", "futures-executor", "futures-task", + "futures-util", + "gio-sys", "glib-macros", "glib-sys", "gobject-sys", @@ -367,9 +491,9 @@ dependencies = [ [[package]] name = "glib-macros" -version = "0.15.11" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25a68131a662b04931e71891fb14aaf65ee4b44d08e8abc10f49e77418c86c64" +checksum = "e195c1311fa6b04d7b896ea39385f6bd60ef5d25bf74a7c11c8c3f94f6c1a572" dependencies = [ "anyhow", "heck", @@ -382,9 +506,9 @@ dependencies = [ [[package]] name = "glib-sys" -version = "0.15.10" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4" +checksum = "b33357bb421a77bd849f6a0bfcaf3b4b256a2577802971bb5dd522d530f27021" dependencies = [ "libc", "system-deps", @@ -392,9 +516,9 @@ dependencies = [ [[package]] name = "gobject-sys" -version = "0.15.10" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a" +checksum = "63ca11a57400f3d4fda594e002844be47900c9fb8b29e2155c6e37a1f24e51b3" dependencies = [ "glib-sys", "libc", @@ -403,9 +527,9 @@ dependencies = [ [[package]] name = "graphene-rs" -version = "0.15.1" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c54f9fbbeefdb62c99f892dfca35f83991e2cb5b46a8dc2a715e58612f85570" +checksum = "95a8de4506a64776d90fedf9c28fdca5a7127f8cc9c78976e8184ac6f42685d8" dependencies = [ "glib", "graphene-sys", @@ -414,9 +538,9 @@ dependencies = [ [[package]] name = "graphene-sys" -version = "0.15.10" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa691fc7337ba1df599afb55c3bcb85c04f1b3f17362570e9bb0ff0d1bc3028a" +checksum = "f2c952f764f02f8546fcc5d014bc78aa704c6d453c828c8b429121f704349163" dependencies = [ "glib-sys", "libc", @@ -426,9 +550,9 @@ dependencies = [ [[package]] name = "gsk4" -version = "0.4.8" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05e9020d333280b3aa38d496495bfa9b50712eebf1ad63f0ec5bcddb5eb61be4" +checksum = "d4fc2b86c751a7fe9aad0fdba85937a6aace3a8453e0e2a08d2a31ce4bb8ae55" dependencies = [ "bitflags", "cairo-rs", @@ -442,9 +566,9 @@ dependencies = [ [[package]] name = "gsk4-sys" -version = "0.4.8" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7add39ccf60078508c838643a2dcc91f045c46ed63b5ea6ab701b2e25bda3fea" +checksum = "2cb53e25cbbe3fa8e3e9db7c06d65085086fadbec4cd0aa567b2e2a4917db83d" dependencies = [ "cairo-sys-rs", "gdk4-sys", @@ -458,9 +582,9 @@ dependencies = [ [[package]] name = "gtk4" -version = "0.4.8" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c64f0c2a3d80e899dc3febddad5bac193ffcf74a0fd7e31037f30dd34d6f7396" +checksum = "47223ddb27033731b71ea841d1b878bd87a275a865f1df60b41505f9e4933d64" dependencies = [ "bitflags", "cairo-rs", @@ -481,24 +605,23 @@ dependencies = [ [[package]] name = "gtk4-macros" -version = "0.4.8" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fafbcc920af4eb677d7d164853e7040b9de5a22379c596f570190c675d45f7a7" +checksum = "ce5eb86364b216ee8c497b1121831168fb25130d3378495a135f8e5c1972db7b" dependencies = [ "anyhow", "proc-macro-crate", "proc-macro-error", "proc-macro2", - "quick-xml", "quote", "syn", ] [[package]] name = "gtk4-sys" -version = "0.4.8" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bc8006eea634b7c72da3ff79e24606e45f21b3b832a3c5a1f543f5f97eb0f63" +checksum = "0f04bd0b63d999a36ae53a916ee4b20ea64a3ef4732ca8a98b1fde4a22c1476c" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -527,9 +650,12 @@ checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" [[package]] name = "humansize" -version = "1.1.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02296996cb8796d7c6e3bc2d9211b7802812d36999a51bb754123ead7d37d026" +checksum = "a866837516f34ad34fb221f3ee01fd0db75f2c2f6abeda2047dc6963fb04ad9a" +dependencies = [ + "libm", +] [[package]] name = "i18n-config" @@ -600,6 +726,30 @@ dependencies = [ "syn", ] +[[package]] +name = "iana-time-zone" +version = "0.1.53" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "winapi", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" +dependencies = [ + "cxx", + "cxx-build", +] + [[package]] name = "intl-memoizer" version = "0.5.1" @@ -612,14 +762,22 @@ dependencies = [ [[package]] name = "intl_pluralrules" -version = "7.0.1" +version = "7.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b18f988384267d7066cc2be425e6faf352900652c046b6971d2e228d3b1c5ecf" +checksum = "078ea7b7c29a2b4df841a7f6ac8775ff6074020c6776d48491ce2268e068f972" dependencies = [ - "tinystr", "unic-langid", ] +[[package]] +name = "js-sys" +version = "0.3.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +dependencies = [ + "wasm-bindgen", +] + [[package]] name = "lazy_static" version = "1.4.0" @@ -628,9 +786,24 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.126" +version = "0.2.137" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" +checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89" + +[[package]] +name = "libm" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "292a948cd991e376cf75541fe5b97a1081d713c618b4f1b9500f8844e49eb565" + +[[package]] +name = "link-cplusplus" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369" +dependencies = [ + "cc", +] [[package]] name = "locale_config" @@ -647,9 +820,9 @@ dependencies = [ [[package]] name = "lock_api" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" +checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" dependencies = [ "autocfg", "scopeguard", @@ -738,33 +911,28 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.13.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1" - -[[package]] -name = "opaque-debug" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860" [[package]] name = "open" -version = "3.0.2" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f23a407004a1033f53e93f9b45580d14de23928faad187384f891507c9b0c045" +checksum = "b4a3100141f1733ea40b53381b0ae3117330735ef22309a190ac57b9576ea716" dependencies = [ "pathdiff", - "windows-sys", + "windows-sys 0.36.1", ] [[package]] name = "pango" -version = "0.15.10" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e4045548659aee5313bde6c582b0d83a627b7904dd20dc2d9ef0895d414e4f" +checksum = "7208c60f224cf6e44c551df5ee2ef38f9da0fd29d7c5a0402000b8ab0520e798" dependencies = [ "bitflags", + "gio", "glib", "libc", "once_cell", @@ -773,9 +941,9 @@ dependencies = [ [[package]] name = "pango-sys" -version = "0.15.10" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2a00081cde4661982ed91d80ef437c20eacaf6aa1a5962c0279ae194662c3aa" +checksum = "922441c228366ed98d3534b87bc7c987c50564094c3abbc3513717786419252d" dependencies = [ "glib-sys", "gobject-sys", @@ -795,15 +963,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" +checksum = "4dc9e0dc2adc1c69d09143aff38d3d30c5c3f0df0dad82e6d25547af174ebec0" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", - "windows-sys", + "windows-sys 0.42.0", ] [[package]] @@ -814,10 +982,11 @@ checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" [[package]] name = "pest" -version = "2.1.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53" +checksum = "dbc7bc69c062e492337d74d59b120c274fd3d261b6bf6d3207d499b4b379c41a" dependencies = [ + "thiserror", "ucd-trie", ] @@ -835,16 +1004,17 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" +checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" [[package]] name = "proc-macro-crate" -version = "1.1.3" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" +checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" dependencies = [ + "once_cell", "thiserror", "toml", ] @@ -875,36 +1045,27 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.40" +version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7" +checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725" dependencies = [ "unicode-ident", ] -[[package]] -name = "quick-xml" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8533f14c8382aaad0d592c812ac3b826162128b65662331e1127b45c3d18536b" -dependencies = [ - "memchr", -] - [[package]] name = "quote" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804" +checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" dependencies = [ "proc-macro2", ] [[package]] name = "redox_syscall" -version = "0.2.13" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ "bitflags", ] @@ -928,9 +1089,9 @@ checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" [[package]] name = "rust-embed" -version = "6.4.0" +version = "6.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a17e5ac65b318f397182ae94e532da0ba56b88dd1200b774715d36c4943b1c3" +checksum = "283ffe2f866869428c92e0d61c2f35dfb4355293cdfdc48f49e895c15f1333d1" dependencies = [ "rust-embed-impl", "rust-embed-utils", @@ -939,9 +1100,9 @@ dependencies = [ [[package]] name = "rust-embed-impl" -version = "6.2.0" +version = "6.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94e763e24ba2bf0c72bc6be883f967f794a019fafd1b86ba1daff9c91a7edd30" +checksum = "31ab23d42d71fb9be1b643fe6765d292c5e14d46912d13f3ae2815ca048ea04d" dependencies = [ "proc-macro2", "quote", @@ -952,9 +1113,9 @@ dependencies = [ [[package]] name = "rust-embed-utils" -version = "7.2.0" +version = "7.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "756feca3afcbb1487a1d01f4ecd94cf8ec98ea074c55a69e7136d29fb6166029" +checksum = "c1669d81dfabd1b5f8e2856b8bbe146c6192b0ba22162edc738ac0a5de18f054" dependencies = [ "sha2", "walkdir", @@ -990,6 +1151,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +[[package]] +name = "scratch" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" + [[package]] name = "self_cell" version = "0.10.2" @@ -1016,18 +1183,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.140" +version = "1.0.147" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc855a42c7967b7c369eb5860f7164ef1f6f81c20c7cc1141f2a604e18723b03" +checksum = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.140" +version = "1.0.147" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f2122636b9fe3b81f1cb25099fcf2d3f542cdb1d45940d56c713158884a05da" +checksum = "4f1d362ca8fc9c3e3a7484440752472d68a6caa98f1ab81d99b5dfe517cec852" dependencies = [ "proc-macro2", "quote", @@ -1036,15 +1203,13 @@ dependencies = [ [[package]] name = "sha2" -version = "0.9.9" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" dependencies = [ - "block-buffer", "cfg-if", "cpufeatures", "digest", - "opaque-debug", ] [[package]] @@ -1067,9 +1232,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" +checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" [[package]] name = "strsim" @@ -1079,9 +1244,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "syn" -version = "1.0.98" +version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd" +checksum = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d" dependencies = [ "proc-macro2", "quote", @@ -1090,9 +1255,9 @@ dependencies = [ [[package]] name = "system-deps" -version = "6.0.2" +version = "6.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a45a1c4c9015217e12347f2a411b57ce2c4fc543913b14b6fe40483328e709" +checksum = "2955b1fe31e1fa2fbd1976b71cc69a606d7d4da16f6de3333d0c92d51419aeff" dependencies = [ "cfg-expr", "heck", @@ -1120,20 +1285,29 @@ dependencies = [ "walkdir", ] +[[package]] +name = "termcolor" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +dependencies = [ + "winapi-util", +] + [[package]] name = "thiserror" -version = "1.0.31" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a" +checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.31" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a" +checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" dependencies = [ "proc-macro2", "quote", @@ -1153,9 +1327,12 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.3.4" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29738eedb4388d9ea620eeab9384884fc3f06f586a2eddb56bedc5885126c7c1" +checksum = "f8aeafdfd935e4a7fe16a91ab711fa52d54df84f9c8f7ca5837a9d1d902ef4c2" +dependencies = [ + "displaydoc", +] [[package]] name = "toml" @@ -1183,24 +1360,24 @@ checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" [[package]] name = "ucd-trie" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89570599c4fe5585de2b388aab47e99f7fa4e9238a1399f707a02e356058141c" +checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" [[package]] name = "unic-langid" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73328fcd730a030bdb19ddf23e192187a6b01cd98be6d3140622a89129459ce5" +checksum = "398f9ad7239db44fd0f80fe068d12ff22d78354080332a5077dc6f52f14dcf2f" dependencies = [ "unic-langid-impl", ] [[package]] name = "unic-langid-impl" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a4a8eeaf0494862c1404c95ec2f4c33a2acff5076f64314b465e3ddae1b934d" +checksum = "e35bfd2f2b8796545b55d7d3fd3e89a0613f68a0d1c8bc28cb7ff96b411a35ff" dependencies = [ "serde", "tinystr", @@ -1208,9 +1385,15 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.2" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" + +[[package]] +name = "unicode-width" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" [[package]] name = "version-compare" @@ -1241,6 +1424,60 @@ version = "0.10.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" +[[package]] +name = "wasm-bindgen" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" + [[package]] name = "winapi" version = "0.3.9" @@ -1278,39 +1515,96 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" dependencies = [ - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_msvc", + "windows_aarch64_msvc 0.36.1", + "windows_i686_gnu 0.36.1", + "windows_i686_msvc 0.36.1", + "windows_x86_64_gnu 0.36.1", + "windows_x86_64_msvc 0.36.1", +] + +[[package]] +name = "windows-sys" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc 0.42.0", + "windows_i686_gnu 0.42.0", + "windows_i686_msvc 0.42.0", + "windows_x86_64_gnu 0.42.0", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc 0.42.0", ] +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" + [[package]] name = "windows_aarch64_msvc" version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" + [[package]] name = "windows_i686_gnu" version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" +[[package]] +name = "windows_i686_gnu" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" + [[package]] name = "windows_i686_msvc" version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" +[[package]] +name = "windows_i686_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" + [[package]] name = "windows_x86_64_gnu" version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" + [[package]] name = "windows_x86_64_msvc" version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" diff --git a/Cargo.toml b/Cargo.toml index 61c0c16..5d41975 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,18 +9,18 @@ homepage = "https://github.com/qarmin/szyszka" repository = "https://github.com/qarmin/szyszka" [dependencies] -gdk4 = "0.4.7" -gio = "0.15.11" -glib = "0.15.11" +gdk4 = "0.5.0" +gio = "0.16.2" +glib = "0.16.2" # For checking path walkdir = "2.3.2" -humansize = "1.1.1" -chrono = "0.4.19" +humansize = "2.1.0" +chrono = "0.4.22" # For opening files -open = "3.0.2" +open = "3.0.3" # For slugs slugmin = "1.0.2" @@ -28,11 +28,11 @@ slugmin = "1.0.2" # Language i18n-embed = { version = "0.13.4", features = ["fluent-system", "desktop-requester"] } i18n-embed-fl = "0.6.4" -rust-embed = "6.4.0" -once_cell = "1.12.0" +rust-embed = "6.4.2" +once_cell = "1.16.0" [dependencies.gtk4] -version = "0.4.7" +version = "0.5.1" default-features = false # just in case features = ["v4_6"] diff --git a/src/rule_custom.rs b/src/rule_custom.rs index 4093d95..89f4759 100644 --- a/src/rule_custom.rs +++ b/src/rule_custom.rs @@ -1,7 +1,8 @@ use crate::help_function::split_file_name; use crate::rules::*; use chrono::NaiveDateTime; -use humansize::{file_size_opts as options, FileSize}; +use humansize::format_size; +use humansize::BINARY; use std::cmp::min; use std::path::Path; @@ -23,7 +24,7 @@ pub fn rule_custom(data_to_change: &str, rule: &SingleRule, rule_number: u64, fi if let Some(f_data) = file_data { modification_date = NaiveDateTime::from_timestamp(f_data.0 as i64, 0).to_string().replace(':', "_"); creation_date = NaiveDateTime::from_timestamp(f_data.1 as i64, 0).to_string().replace(':', "_"); - size = f_data.2.file_size(options::BINARY).unwrap(); + size = format_size(f_data.2, BINARY); } else { creation_date = "2021-01-31 08_42_12".to_string(); modification_date = "2015-11-15 14_24_55".to_string(); From 0514d1c519b8ab472ab87e6565d86f832c744782 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mikrut?= Date: Tue, 1 Nov 2022 12:53:57 +0100 Subject: [PATCH 11/18] Fixed UI --- ui/Szyszka.cmb | 240 ++++++++++++++------------- ui/popover.ui | 2 +- ui/rule_chooser.ui | 2 +- ui/settings.ui | 2 +- ui/window_main.ui | 396 ++++++++++++++++++++++----------------------- 5 files changed, 314 insertions(+), 328 deletions(-) diff --git a/ui/Szyszka.cmb b/ui/Szyszka.cmb index 9995ed4..c55bdf5 100644 --- a/ui/Szyszka.cmb +++ b/ui/Szyszka.cmb @@ -1,6 +1,6 @@ - + (2,None,"popover.ui","popover.ui",None,None,None,None,None,None), (3,None,"rule_chooser.ui","rule_chooser.ui",None,None,None,None,None,None), @@ -150,54 +150,53 @@ (4,3,"GtkLabel","label_settings_general_language",2,None,None,None,None), (4,4,"GtkComboBoxText","combo_box_settings_language",2,None,None,None,1), (5,1,"GtkWindow","window_main",None,None,None,None,None), - (5,2,"GtkPaned",None,1,None,None,None,None), - (5,3,"GtkBox",None,2,None,None,None,None), - (5,4,"GtkLabel","label_files_folders",3,None,None,None,None), - (5,5,"GtkBox",None,3,None,None,None,1), - (5,6,"GtkScrolledWindow","scrolled_window_results",5,None,None,None,None), - (5,7,"GtkBox",None,5,None,None,None,1), - (5,8,"GtkButton","button_add_files",7,None,None,None,None), - (5,9,"GtkButton","button_add_folders",7,None,None,None,1), - (5,10,"GtkButton","button_remove_selection",7,None,None,None,2), - (5,11,"GtkButton","button_select_popup",7,None,None,None,3), - (5,12,"GtkButton","button_update_names",7,None,None,None,4), - (5,13,"GtkButton","button_results_one_up",7,None,None,None,5), - (5,14,"GtkBox",None,13,None,None,None,None), - (5,15,"GtkImage",None,14,None,None,None,None), - (5,16,"GtkLabel",None,14,None,None,None,1), - (5,17,"GtkButton","button_results_one_down",7,None,None,None,6), - (5,18,"GtkBox",None,17,None,None,None,None), - (5,19,"GtkImage",None,18,None,None,None,None), - (5,20,"GtkLabel",None,18,None,None,None,1), - (5,21,"GtkBox",None,3,None,None,None,2), - (5,22,"GtkBox",None,21,None,None,None,None), - (5,23,"GtkButton","button_add_rule",22,None,None,None,None), - (5,24,"GtkBox",None,23,None,None,None,None), - (5,25,"GtkImage",None,24,None,None,None,None), - (5,26,"GtkLabel",None,24,None,None,None,1), - (5,27,"GtkButton","button_edit_rule",22,None,None,None,1), - (5,28,"GtkBox",None,27,None,None,None,None), - (5,29,"GtkImage",None,28,None,None,None,None), - (5,30,"GtkLabel",None,28,None,None,None,1), - (5,31,"GtkButton","button_remove_rule",22,None,None,None,2), - (5,32,"GtkBox",None,31,None,None,None,None), - (5,33,"GtkImage",None,32,None,None,None,None), - (5,34,"GtkLabel",None,32,None,None,None,1), - (5,35,"GtkButton","button_rule_one_up",22,None,None,None,3), - (5,36,"GtkBox",None,35,None,None,None,None), - (5,37,"GtkImage",None,36,None,None,None,None), - (5,38,"GtkLabel",None,36,None,None,None,1), - (5,39,"GtkButton","button_rule_one_down",22,None,None,None,4), - (5,40,"GtkBox",None,39,None,None,None,None), - (5,41,"GtkImage",None,40,None,None,None,None), - (5,42,"GtkLabel",None,40,None,None,None,1), - (5,43,"GtkScrolledWindow","scrolled_window_rules",21,None,None,None,1), - (5,44,"GtkLabel",None,2,None,None,None,1), (5,45,"GtkHeaderBar",None,1,None,"titlebar",None,None), (5,46,"GtkBox",None,45,None,None,None,None), (5,47,"GtkButton","button_start_rename",46,None,None,None,None), (5,48,"GtkButton","button_setting",46,None,None,None,1), - (5,49,"GtkImage",None,48,None,None,None,None) + (5,49,"GtkImage",None,48,None,None,None,None), + (5,50,"GtkBox",None,1,None,None,None,1), + (5,51,"GtkLabel","label_files_folders",50,None,None,None,None), + (5,52,"GtkBox",None,50,None,None,None,1), + (5,53,"GtkScrolledWindow","scrolled_window_results",52,None,None,None,None), + (5,54,"GtkBox",None,52,None,None,None,1), + (5,55,"GtkButton","button_add_files",54,None,None,None,None), + (5,56,"GtkButton","button_add_folders",54,None,None,None,1), + (5,57,"GtkButton","button_remove_selection",54,None,None,None,2), + (5,58,"GtkButton","button_select_popup",54,None,None,None,3), + (5,59,"GtkButton","button_update_names",54,None,None,None,4), + (5,60,"GtkButton","button_results_one_up",54,None,None,None,5), + (5,61,"GtkBox",None,60,None,None,None,None), + (5,62,"GtkImage",None,61,None,None,None,None), + (5,63,"GtkLabel",None,61,None,None,None,1), + (5,64,"GtkButton","button_results_one_down",54,None,None,None,6), + (5,65,"GtkBox",None,64,None,None,None,None), + (5,66,"GtkImage",None,65,None,None,None,None), + (5,67,"GtkLabel",None,65,None,None,None,1), + (5,68,"GtkLabel",None,50,None,None,None,2), + (5,69,"GtkBox",None,50,None,None,None,3), + (5,70,"GtkBox",None,69,None,None,None,None), + (5,71,"GtkButton","button_add_rule",70,None,None,None,None), + (5,72,"GtkBox",None,71,None,None,None,None), + (5,73,"GtkImage",None,72,None,None,None,None), + (5,74,"GtkLabel",None,72,None,None,None,1), + (5,75,"GtkButton","button_edit_rule",70,None,None,None,1), + (5,76,"GtkBox",None,75,None,None,None,None), + (5,77,"GtkImage",None,76,None,None,None,None), + (5,78,"GtkLabel",None,76,None,None,None,1), + (5,79,"GtkButton","button_remove_rule",70,None,None,None,2), + (5,80,"GtkBox",None,79,None,None,None,None), + (5,81,"GtkImage",None,80,None,None,None,None), + (5,82,"GtkLabel",None,80,None,None,None,1), + (5,83,"GtkButton","button_rule_one_up",70,None,None,None,3), + (5,84,"GtkBox",None,83,None,None,None,None), + (5,85,"GtkImage",None,84,None,None,None,None), + (5,86,"GtkLabel",None,84,None,None,None,1), + (5,87,"GtkButton","button_rule_one_down",70,None,None,None,4), + (5,88,"GtkBox",None,87,None,None,None,None), + (5,89,"GtkImage",None,88,None,None,None,None), + (5,90,"GtkLabel",None,88,None,None,None,1), + (5,91,"GtkScrolledWindow","scrolled_window_rules",69,None,None,None,1) (2,1,"GtkPopover","child",None,None,None,None,None,2), @@ -500,91 +499,86 @@ (4,3,"GtkWidget","margin-end","10",None,None,None,None,None), (4,3,"GtkWidget","margin-start","5",None,None,None,None,None), (4,4,"GtkWidget","hexpand","1",None,None,None,None,None), - (5,1,"GtkWindow","child",None,None,None,None,None,2), (5,1,"GtkWindow","default-height","600",None,None,None,None,None), (5,1,"GtkWindow","default-width","800",None,None,None,None,None), - (5,2,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (5,2,"GtkPaned","position","2000",None,None,None,None,None), - (5,2,"GtkPaned","shrink-end-child","0",None,None,None,None,None), - (5,2,"GtkPaned","shrink-start-child","0",None,None,None,None,None), - (5,2,"GtkWidget","focusable","1",None,None,None,None,None), - (5,3,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (5,4,"GtkLabel","label","Files/Folders","yes",None,None,None,None), - (5,5,"GtkWidget","vexpand","1",None,None,None,None,None), - (5,6,"GtkWidget","focusable","1",None,None,None,None,None), - (5,6,"GtkWidget","hexpand","1",None,None,None,None,None), - (5,7,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (5,8,"GtkButton","label","Add Files","yes",None,None,None,None), - (5,8,"GtkWidget","focusable","1",None,None,None,None,None), - (5,8,"GtkWidget","receives-default","1",None,None,None,None,None), - (5,9,"GtkButton","label","Add Folders","yes",None,None,None,None), - (5,9,"GtkWidget","focusable","1",None,None,None,None,None), - (5,9,"GtkWidget","receives-default","1",None,None,None,None,None), - (5,10,"GtkButton","label","Remove Selection","yes",None,None,None,None), - (5,10,"GtkWidget","focusable","1",None,None,None,None,None), - (5,10,"GtkWidget","receives-default","1",None,None,None,None,None), - (5,11,"GtkButton","label","Select","yes",None,None,None,None), - (5,11,"GtkWidget","focusable","1",None,None,None,None,None), - (5,11,"GtkWidget","receives-default","1",None,None,None,None,None), - (5,12,"GtkButton","label","Update Names","yes",None,None,None,None), - (5,12,"GtkWidget","focusable","1",None,None,None,None,None), - (5,12,"GtkWidget","receives-default","1",None,None,None,None,None), - (5,13,"GtkWidget","focusable","1",None,None,None,None,None), - (5,13,"GtkWidget","receives-default","1",None,None,None,None,None), - (5,14,"GtkBox","spacing","7",None,None,None,None,None), - (5,14,"GtkWidget","halign","center",None,None,None,None,None), - (5,15,"GtkImage","icon-name","go-up",None,None,None,None,None), - (5,16,"GtkLabel","label","One Up","yes",None,None,None,None), - (5,17,"GtkWidget","focusable","1",None,None,None,None,None), - (5,17,"GtkWidget","receives-default","1",None,None,None,None,None), - (5,18,"GtkBox","spacing","7",None,None,None,None,None), - (5,18,"GtkWidget","halign","center",None,None,None,None,None), - (5,19,"GtkImage","icon-name","go-down",None,None,None,None,None), - (5,20,"GtkLabel","label","One Down","yes",None,None,None,None), - (5,21,"GtkWidget","vexpand","1",None,None,None,None,None), - (5,22,"GtkOrientable","orientation","vertical",None,None,None,None,None), - (5,23,"GtkWidget","focusable","1",None,None,None,None,None), - (5,23,"GtkWidget","receives-default","1",None,None,None,None,None), - (5,24,"GtkBox","spacing","7",None,None,None,None,None), - (5,24,"GtkWidget","halign","center",None,None,None,None,None), - (5,25,"GtkImage","icon-name","list-add-symbolic",None,None,None,None,None), - (5,25,"GtkWidget","visible","0",None,None,None,None,None), - (5,26,"GtkLabel","label","Add Rule","yes",None,None,None,None), - (5,27,"GtkWidget","focusable","1",None,None,None,None,None), - (5,27,"GtkWidget","receives-default","1",None,None,None,None,None), - (5,28,"GtkBox","spacing","7",None,None,None,None,None), - (5,28,"GtkWidget","halign","center",None,None,None,None,None), - (5,29,"GtkImage","icon-name","applications-engineering",None,None,None,None,None), - (5,29,"GtkWidget","visible","0",None,None,None,None,None), - (5,30,"GtkLabel","label","Edit Rule","yes",None,None,None,None), - (5,31,"GtkWidget","focusable","1",None,None,None,None,None), - (5,31,"GtkWidget","receives-default","1",None,None,None,None,None), - (5,32,"GtkBox","spacing","7",None,None,None,None,None), - (5,32,"GtkWidget","halign","center",None,None,None,None,None), - (5,33,"GtkImage","icon-name","list-remove",None,None,None,None,None), - (5,33,"GtkWidget","visible","0",None,None,None,None,None), - (5,34,"GtkLabel","label","Remove Rule","yes",None,None,None,None), - (5,35,"GtkWidget","focusable","1",None,None,None,None,None), - (5,35,"GtkWidget","receives-default","1",None,None,None,None,None), - (5,36,"GtkBox","spacing","7",None,None,None,None,None), - (5,36,"GtkWidget","halign","center",None,None,None,None,None), - (5,37,"GtkImage","icon-name","go-up",None,None,None,None,None), - (5,38,"GtkLabel","label","One Up","yes",None,None,None,None), - (5,39,"GtkWidget","focusable","1",None,None,None,None,None), - (5,39,"GtkWidget","receives-default","1",None,None,None,None,None), - (5,40,"GtkBox","spacing","7",None,None,None,None,None), - (5,40,"GtkWidget","halign","center",None,None,None,None,None), - (5,41,"GtkImage","icon-name","go-down",None,None,None,None,None), - (5,42,"GtkLabel","label","One Down","yes",None,None,None,None), - (5,43,"GtkWidget","focusable","1",None,None,None,None,None), - (5,43,"GtkWidget","hexpand","1",None,None,None,None,None), - (5,44,"GtkLabel","label","Rules",None,None,None,None,None), (5,47,"GtkButton","label","Start Renaming","yes",None,None,None,None), (5,47,"GtkWidget","focusable","1",None,None,None,None,None), (5,47,"GtkWidget","receives-default","1",None,None,None,None,None), (5,48,"GtkWidget","focusable","1",None,None,None,None,None), (5,48,"GtkWidget","receives-default","1",None,None,None,None,None), - (5,49,"GtkImage","icon-name","applications-engineering",None,None,None,None,None) + (5,49,"GtkImage","icon-name","applications-engineering",None,None,None,None,None), + (5,50,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (5,51,"GtkLabel","label","Files/Folders","yes",None,None,None,None), + (5,52,"GtkWidget","vexpand","1",None,None,None,None,None), + (5,53,"GtkWidget","focusable","1",None,None,None,None,None), + (5,53,"GtkWidget","hexpand","1",None,None,None,None,None), + (5,54,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (5,55,"GtkButton","label","Add Files","yes",None,None,None,None), + (5,55,"GtkWidget","focusable","1",None,None,None,None,None), + (5,55,"GtkWidget","receives-default","1",None,None,None,None,None), + (5,56,"GtkButton","label","Add Folders","yes",None,None,None,None), + (5,56,"GtkWidget","focusable","1",None,None,None,None,None), + (5,56,"GtkWidget","receives-default","1",None,None,None,None,None), + (5,57,"GtkButton","label","Remove Selection","yes",None,None,None,None), + (5,57,"GtkWidget","focusable","1",None,None,None,None,None), + (5,57,"GtkWidget","receives-default","1",None,None,None,None,None), + (5,58,"GtkButton","label","Select","yes",None,None,None,None), + (5,58,"GtkWidget","focusable","1",None,None,None,None,None), + (5,58,"GtkWidget","receives-default","1",None,None,None,None,None), + (5,59,"GtkButton","label","Update Names","yes",None,None,None,None), + (5,59,"GtkWidget","focusable","1",None,None,None,None,None), + (5,59,"GtkWidget","receives-default","1",None,None,None,None,None), + (5,60,"GtkWidget","focusable","1",None,None,None,None,None), + (5,60,"GtkWidget","receives-default","1",None,None,None,None,None), + (5,61,"GtkBox","spacing","7",None,None,None,None,None), + (5,61,"GtkWidget","halign","center",None,None,None,None,None), + (5,62,"GtkImage","icon-name","go-up",None,None,None,None,None), + (5,63,"GtkLabel","label","One Up","yes",None,None,None,None), + (5,64,"GtkWidget","focusable","1",None,None,None,None,None), + (5,64,"GtkWidget","receives-default","1",None,None,None,None,None), + (5,65,"GtkBox","spacing","7",None,None,None,None,None), + (5,65,"GtkWidget","halign","center",None,None,None,None,None), + (5,66,"GtkImage","icon-name","go-down",None,None,None,None,None), + (5,67,"GtkLabel","label","One Down","yes",None,None,None,None), + (5,68,"GtkLabel","label","Rules",None,None,None,None,None), + (5,68,"GtkWidget","valign","end",None,None,None,None,None), + (5,69,"GtkWidget","vexpand","1",None,None,None,None,None), + (5,70,"GtkOrientable","orientation","vertical",None,None,None,None,None), + (5,71,"GtkWidget","focusable","1",None,None,None,None,None), + (5,71,"GtkWidget","receives-default","1",None,None,None,None,None), + (5,72,"GtkBox","spacing","7",None,None,None,None,None), + (5,72,"GtkWidget","halign","center",None,None,None,None,None), + (5,73,"GtkImage","icon-name","list-add-symbolic",None,None,None,None,None), + (5,73,"GtkWidget","visible","0",None,None,None,None,None), + (5,74,"GtkLabel","label","Add Rule","yes",None,None,None,None), + (5,75,"GtkWidget","focusable","1",None,None,None,None,None), + (5,75,"GtkWidget","receives-default","1",None,None,None,None,None), + (5,76,"GtkBox","spacing","7",None,None,None,None,None), + (5,76,"GtkWidget","halign","center",None,None,None,None,None), + (5,77,"GtkImage","icon-name","applications-engineering",None,None,None,None,None), + (5,77,"GtkWidget","visible","0",None,None,None,None,None), + (5,78,"GtkLabel","label","Edit Rule","yes",None,None,None,None), + (5,79,"GtkWidget","focusable","1",None,None,None,None,None), + (5,79,"GtkWidget","receives-default","1",None,None,None,None,None), + (5,80,"GtkBox","spacing","7",None,None,None,None,None), + (5,80,"GtkWidget","halign","center",None,None,None,None,None), + (5,81,"GtkImage","icon-name","list-remove",None,None,None,None,None), + (5,81,"GtkWidget","visible","0",None,None,None,None,None), + (5,82,"GtkLabel","label","Remove Rule","yes",None,None,None,None), + (5,83,"GtkWidget","focusable","1",None,None,None,None,None), + (5,83,"GtkWidget","receives-default","1",None,None,None,None,None), + (5,84,"GtkBox","spacing","7",None,None,None,None,None), + (5,84,"GtkWidget","halign","center",None,None,None,None,None), + (5,85,"GtkImage","icon-name","go-up",None,None,None,None,None), + (5,86,"GtkLabel","label","One Up","yes",None,None,None,None), + (5,87,"GtkWidget","focusable","1",None,None,None,None,None), + (5,87,"GtkWidget","receives-default","1",None,None,None,None,None), + (5,88,"GtkBox","spacing","7",None,None,None,None,None), + (5,88,"GtkWidget","halign","center",None,None,None,None,None), + (5,89,"GtkImage","icon-name","go-down",None,None,None,None,None), + (5,90,"GtkLabel","label","One Down","yes",None,None,None,None), + (5,91,"GtkWidget","focusable","1",None,None,None,None,None), + (5,91,"GtkWidget","hexpand","1",None,None,None,None,None) (3,43,44,"GtkGridLayoutChild","column","0",None,None,None,None), diff --git a/ui/popover.ui b/ui/popover.ui index cd4a5fd..e993d03 100644 --- a/ui/popover.ui +++ b/ui/popover.ui @@ -1,5 +1,5 @@ - + diff --git a/ui/rule_chooser.ui b/ui/rule_chooser.ui index 2a51a0a..478a96f 100644 --- a/ui/rule_chooser.ui +++ b/ui/rule_chooser.ui @@ -1,5 +1,5 @@ - + diff --git a/ui/settings.ui b/ui/settings.ui index d6a74ac..38800de 100644 --- a/ui/settings.ui +++ b/ui/settings.ui @@ -1,5 +1,5 @@ - + diff --git a/ui/window_main.ui b/ui/window_main.ui index cde1126..bf61b01 100644 --- a/ui/window_main.ui +++ b/ui/window_main.ui @@ -1,111 +1,130 @@ - + - - - 1 + 600 + 800 + + + + + + + 1 + Start Renaming + 1 + + + + + 1 + 1 + + + applications-engineering + + + + + + + + + + vertical - 2000 - 0 - 0 + + + Files/Folders + + - vertical + 1 - - Files/Folders + + 1 + 1 - 1 + vertical - + 1 - 1 + Add Files + 1 - - vertical - - - 1 - Add Files - 1 - - - - - 1 - Add Folders - 1 - - - - - 1 - Remove Selection - 1 - - - - - 1 - Select - 1 - - - - - 1 - Update Names - 1 - - + + 1 + Add Folders + 1 + + + + + 1 + Remove Selection + 1 + + + + + 1 + Select + 1 + + + + + 1 + Update Names + 1 + + + + + 1 + 1 - - 1 - 1 + + center + 7 - - center - 7 - - - go-up - - - - - One Up - - + + go-up + + + + + One Up + + + + + 1 + 1 - - 1 - 1 + + center + 7 - - center - 7 - - - go-down - - - - - One Down - - + + go-down + + + + + One Down @@ -114,121 +133,105 @@ + + + + + Rules + end + + + + + 1 - 1 + vertical - - vertical + + 1 + 1 - - 1 - 1 + + center + 7 - - center - 7 - - - list-add-symbolic - 0 - - - - - Add Rule - - + + list-add-symbolic + 0 - - - - - 1 - 1 - - center - 7 - - - applications-engineering - 0 - - - - - Edit Rule - - + + Add Rule + + + + + 1 + 1 - - 1 - 1 + + center + 7 - - center - 7 - - - list-remove - 0 - - - - - Remove Rule - - + + applications-engineering + 0 + + + + + Edit Rule + + + + + 1 + 1 - - 1 - 1 + + center + 7 + + + list-remove + 0 + + - - center - 7 - - - go-up - - - - - One Up - - + + Remove Rule + + + + + 1 + 1 - - 1 - 1 + + center + 7 - - center - 7 - - - go-down - - - - - One Down - - + + go-up + + + + + One Up @@ -236,44 +239,33 @@ - + 1 - 1 + 1 + + + center + 7 + + + go-down + + + + + One Down + + + + - - - - - Rules - - - - - 600 - 800 - - - - - - - 1 - Start Renaming - 1 - - - + 1 - 1 - - - applications-engineering - - + 1 From 884ba35c8d602b6cdd9c5d27ac6ed40cc4a6ca47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mikrut?= Date: Tue, 1 Nov 2022 13:30:21 +0100 Subject: [PATCH 12/18] Changed Button to Menu Button --- src/connect_select_records.rs | 8 ++------ src/gui_data_upper_buttons.rs | 8 ++++---- src/initialize_gui.rs | 7 +++---- ui/Szyszka.cmb | 17 ++++++++--------- ui/window_main.ui | 7 +++---- 5 files changed, 20 insertions(+), 27 deletions(-) diff --git a/src/connect_select_records.rs b/src/connect_select_records.rs index 421a9f9..6de457f 100644 --- a/src/connect_select_records.rs +++ b/src/connect_select_records.rs @@ -6,12 +6,8 @@ use gtk4::{PositionType, TreeIter}; pub fn connect_select_records(gui_data: &GuiData) { let popover_select = gui_data.popover_select.popover_select.clone(); - let button_select = gui_data.upper_buttons.button_select_popup.clone(); - button_select.connect_clicked(move |bs| { - popover_select.set_position(PositionType::Left); - // popover_select.set_relative_to(Some(bs)); // TODO GTK 4 - Change button to MenuButton - popover_select.popup(); - }); + let button_select = gui_data.upper_buttons.menu_button_select_popup.clone(); + button_select.set_popover(Some(&popover_select)); } pub fn connect_select_all(gui_data: &GuiData) { let popover_select = gui_data.popover_select.popover_select.clone(); diff --git a/src/gui_data_upper_buttons.rs b/src/gui_data_upper_buttons.rs index 2f3dd5e..52a457b 100644 --- a/src/gui_data_upper_buttons.rs +++ b/src/gui_data_upper_buttons.rs @@ -8,7 +8,7 @@ pub struct GuiUpperButtons { pub button_remove_selection: gtk4::Button, pub button_add_files: gtk4::Button, pub button_add_folders: gtk4::Button, - pub button_select_popup: gtk4::Button, + pub menu_button_select_popup: gtk4::MenuButton, pub button_update_names: gtk4::Button, pub label_files_folders: gtk4::Label, pub button_results_one_up: gtk4::Button, @@ -22,7 +22,7 @@ impl GuiUpperButtons { let button_remove_selection: gtk4::Button = builder.object("button_remove_selection").unwrap(); let button_add_files: gtk4::Button = builder.object("button_add_files").unwrap(); let button_add_folders: gtk4::Button = builder.object("button_add_folders").unwrap(); - let button_select_popup: gtk4::Button = builder.object("button_select_popup").unwrap(); + let menu_button_select_popup: gtk4::MenuButton = builder.object("menu_button_select_popup").unwrap(); let button_update_names: gtk4::Button = builder.object("button_update_names").unwrap(); let label_files_folders: gtk4::Label = builder.object("label_files_folders").unwrap(); let button_results_one_up: gtk4::Button = builder.object("button_results_one_up").unwrap(); @@ -34,7 +34,7 @@ impl GuiUpperButtons { button_remove_selection, button_add_files, button_add_folders, - button_select_popup, + menu_button_select_popup, button_update_names, label_files_folders, button_results_one_up, @@ -49,7 +49,7 @@ impl GuiUpperButtons { // pub button_remove_selection: gtk4::Button, // pub button_add_files: gtk4::Button, // pub button_add_folders: gtk4::Button, - // pub button_select_popup: gtk4::Button, + // pub menu_button_select_popup: gtk4::Button, // pub button_update_names: gtk4::Button, // pub label_files_folders: gtk4::Label, // pub button_results_one_up: gtk4::Button, diff --git a/src/initialize_gui.rs b/src/initialize_gui.rs index c52369a..e02f346 100644 --- a/src/initialize_gui.rs +++ b/src/initialize_gui.rs @@ -102,9 +102,8 @@ pub fn common_open_function(tree_view: >k4::TreeView, opening_mode: OpenMode) } } - open::that_in_background(&end_path); - // if open::that(&end_path).is_err() { - // println!("Failed to open {}", end_path); - // } + if open::that(&end_path).is_err() { + println!("Failed to open {}", end_path); + } } } diff --git a/ui/Szyszka.cmb b/ui/Szyszka.cmb index c55bdf5..2e04bd1 100644 --- a/ui/Szyszka.cmb +++ b/ui/Szyszka.cmb @@ -163,13 +163,12 @@ (5,55,"GtkButton","button_add_files",54,None,None,None,None), (5,56,"GtkButton","button_add_folders",54,None,None,None,1), (5,57,"GtkButton","button_remove_selection",54,None,None,None,2), - (5,58,"GtkButton","button_select_popup",54,None,None,None,3), - (5,59,"GtkButton","button_update_names",54,None,None,None,4), - (5,60,"GtkButton","button_results_one_up",54,None,None,None,5), + (5,59,"GtkButton","button_update_names",54,None,None,None,5), + (5,60,"GtkButton","button_results_one_up",54,None,None,None,6), (5,61,"GtkBox",None,60,None,None,None,None), (5,62,"GtkImage",None,61,None,None,None,None), (5,63,"GtkLabel",None,61,None,None,None,1), - (5,64,"GtkButton","button_results_one_down",54,None,None,None,6), + (5,64,"GtkButton","button_results_one_down",54,None,None,None,7), (5,65,"GtkBox",None,64,None,None,None,None), (5,66,"GtkImage",None,65,None,None,None,None), (5,67,"GtkLabel",None,65,None,None,None,1), @@ -196,7 +195,8 @@ (5,88,"GtkBox",None,87,None,None,None,None), (5,89,"GtkImage",None,88,None,None,None,None), (5,90,"GtkLabel",None,88,None,None,None,1), - (5,91,"GtkScrolledWindow","scrolled_window_rules",69,None,None,None,1) + (5,91,"GtkScrolledWindow","scrolled_window_rules",69,None,None,None,1), + (5,92,"GtkMenuButton","menu_button_select_popup",54,None,None,None,4) (2,1,"GtkPopover","child",None,None,None,None,None,2), @@ -522,9 +522,6 @@ (5,57,"GtkButton","label","Remove Selection","yes",None,None,None,None), (5,57,"GtkWidget","focusable","1",None,None,None,None,None), (5,57,"GtkWidget","receives-default","1",None,None,None,None,None), - (5,58,"GtkButton","label","Select","yes",None,None,None,None), - (5,58,"GtkWidget","focusable","1",None,None,None,None,None), - (5,58,"GtkWidget","receives-default","1",None,None,None,None,None), (5,59,"GtkButton","label","Update Names","yes",None,None,None,None), (5,59,"GtkWidget","focusable","1",None,None,None,None,None), (5,59,"GtkWidget","receives-default","1",None,None,None,None,None), @@ -578,7 +575,9 @@ (5,89,"GtkImage","icon-name","go-down",None,None,None,None,None), (5,90,"GtkLabel","label","One Down","yes",None,None,None,None), (5,91,"GtkWidget","focusable","1",None,None,None,None,None), - (5,91,"GtkWidget","hexpand","1",None,None,None,None,None) + (5,91,"GtkWidget","hexpand","1",None,None,None,None,None), + (5,92,"GtkMenuButton","direction","none",None,None,None,None,None), + (5,92,"GtkMenuButton","label","Select",None,None,None,None,None) (3,43,44,"GtkGridLayoutChild","column","0",None,None,None,None), diff --git a/ui/window_main.ui b/ui/window_main.ui index bf61b01..5445f69 100644 --- a/ui/window_main.ui +++ b/ui/window_main.ui @@ -74,10 +74,9 @@ - - 1 - Select - 1 + + none + Select From 028e4995d3822e20b05ea13b4ff5a40eada226ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mikrut?= Date: Tue, 1 Nov 2022 13:38:22 +0100 Subject: [PATCH 13/18] CI fix? --- .github/workflows/linux.yml | 91 ++++++++++++++++------- .github/workflows/mac.yml | 38 +++++----- .github/workflows/quality.yml | 12 ++- .github/workflows/windows.yml | 133 +++++++++++++++------------------- 4 files changed, 151 insertions(+), 123 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 41ade23..9ef4998 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -1,16 +1,20 @@ name: 🐧 Linux -on: [ push, pull_request ] +on: + push: + pull_request: + schedule: + - cron: '0 0 * * 2' env: CARGO_TERM_COLOR: always jobs: - linux: + linux-default: strategy: matrix: - toolchain: [ stable ] + toolchain: [ stable, 1.63.0 ] type: [ release ] - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v2 @@ -23,40 +27,33 @@ jobs: with: path: | target - key: linux-${{github.ref}}-${{github.sha}} + key: linux-default-${{github.ref}}-${{github.sha}} restore-keys: | - linux-${{github.ref}}-${{github.sha}} - - - name: Install Gtk, Mingw, unzip, zip and wget - run: sudo apt update; sudo apt install libgtk-3-dev -y + linux-default-${{github.ref}}-${{github.sha}} - - name: Build Debug - run: cargo build - env: - CARGO_INCREMENTAL: 0 - RUSTFLAGS: "-C debuginfo=0 -D warnings" - if: ${{ matrix.type == 'debug'}} + - name: Install basic libraries + run: sudo apt-get update; sudo apt install libgtk-4-dev -y - name: Build Release run: cargo build --release env: CARGO_INCREMENTAL: 0 - RUSTFLAGS: "-C debuginfo=0 -D warnings" - if: ${{ matrix.type == 'release'}} + RUSTFLAGS: "-C debuginfo=0" + if: ${{ (matrix.type == 'release') && (matrix.toolchain == 'stable') }} - - name: Store Linux + - name: Store Linux GUI uses: actions/upload-artifact@v2 with: name: szyszka-${{ runner.os }}-${{ matrix.toolchain }} path: target/release/szyszka if: ${{ matrix.type == 'release' }} - linux-appimage: + linux-appimage-gui: strategy: matrix: toolchain: [ stable ] type: [ release ] - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v2 @@ -69,31 +66,73 @@ jobs: with: path: | target - key: linux-appimage-${{github.ref}}-${{github.sha}} + key: linux-appimage-gui-${{github.ref}}-${{github.sha}} restore-keys: | - linux-appimage-${{github.ref}}-${{github.sha}} + linux-appimage-gui-${{github.ref}}-${{github.sha}} - - name: Install Gtk, - run: sudo apt update; sudo apt install libgtk-3-dev librsvg2-dev wget -y + - name: Install Dependencies + run: sudo apt-get update; sudo apt install libgtk-4-dev librsvg2-dev wget fuse libfuse2 -y - name: Build Release run: cargo build --release env: CARGO_INCREMENTAL: 0 - RUSTFLAGS: "-C debuginfo=0 -D warnings" + RUSTFLAGS: "-C debuginfo=0" - name: Download appimage dependiences run: | + pwd wget -c "https://raw.githubusercontent.com/linuxdeploy/linuxdeploy-plugin-gtk/master/linuxdeploy-plugin-gtk.sh" wget -c "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage" chmod +x linuxdeploy-plugin-gtk.sh chmod +x linuxdeploy-x86_64.AppImage mkdir -p AppDir/usr/bin + pwd cp target/release/szyszka AppDir/usr/bin ./linuxdeploy-x86_64.AppImage --appdir AppDir --plugin gtk --output appimage --icon-file data/icons/com.github.qarmin.szyszka.svg --desktop-file data/com.github.qarmin.szyszka.desktop - - name: Store Linux Appimage + - name: Store Linux Appimage GUI uses: actions/upload-artifact@v2 with: name: szyszka-appimage-${{ runner.os }}-${{ matrix.toolchain }} path: Szyszka*.AppImage + + - name: Minimal AppImage + run: | + pwd + rm -rf szyszka + cp target/release/szyszka . + strip szyszka + wget https://github.com/AppImage/pkg2appimage/releases/download/continuous/pkg2appimage-1807-x86_64.AppImage + chmod +x pkg2appimage-1807-x86_64.AppImage + ./pkg2appimage-1807-x86_64.AppImage misc/szyszka-appimage-recipe.yml + mv out/Szyszka*.AppImage out/szyszka-minimal.AppImage + + - name: Minimal Appimage Upload + uses: actions/upload-artifact@v2 + with: + name: szyszka-${{ matrix.toolchain }}_minimal_AppImage + path: out/*.AppImage + + linux-tests: + strategy: + matrix: + toolchain: [ stable ] + type: [ debug ] + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v2 + + - uses: actions-rs/toolchain@v1 + with: + toolchain: ${{ matrix.toolchain }} + override: true + + - name: Install Dependencies + run: sudo apt-get update; sudo apt install libgtk-4-dev librsvg2-dev wget fuse libfuse2 -y xvfb + + - name: Test + run: xvfb-run cargo test + env: + CARGO_INCREMENTAL: 0 + RUSTFLAGS: "-C debuginfo=0" \ No newline at end of file diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index a7139ae..f4433e2 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -1,5 +1,9 @@ name: 🍎 MacOS -on: [ push, pull_request ] +on: + push: + pull_request: + schedule: + - cron: '0 0 * * 2' env: CARGO_TERM_COLOR: always @@ -19,32 +23,26 @@ jobs: toolchain: ${{ matrix.toolchain }} override: true + - uses: actions/cache@v2 + with: + path: | + target + key: mac-${{github.ref}}-${{github.sha}} + restore-keys: | + mac-${{github.ref}}-${{github.sha}} + - name: Install Homebrew run: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - - name: Override link[WORKAROUND] # Looks that this is a bug with current homebrew or Github CI + - name: Override link[WORKAROUND] # Looks that this is a bug with current homebrew or GitHub CI run: rm '/usr/local/bin/2to3' - - name: Install GTK3 - run: brew install rust gtk+3 - - - name: Build Debug - run: cargo build - env: - CARGO_INCREMENTAL: 0 - RUSTFLAGS: "-C debuginfo=0 -D warnings" - if: ${{ matrix.type == 'debug'}} - - - name: Build Release - run: cargo build --release - env: - CARGO_INCREMENTAL: 0 - RUSTFLAGS: "-C debuginfo=0 -D warnings" - if: ${{ matrix.type == 'release'}} + - name: Install GTK4 + run: brew install rust gtk4 libheif - - name: Store MacOS + - name: Store MacOS GUI uses: actions/upload-artifact@v2 with: name: szyszka-${{ runner.os }}-${{ matrix.toolchain }} path: target/release/szyszka - if: ${{ matrix.type == 'release' }} + if: ${{ matrix.type == 'release' }} \ No newline at end of file diff --git a/.github/workflows/quality.yml b/.github/workflows/quality.yml index 9249270..d19746b 100644 --- a/.github/workflows/quality.yml +++ b/.github/workflows/quality.yml @@ -1,12 +1,16 @@ name: Quality -on: [ push, pull_request ] +on: + push: + pull_request: + schedule: + - cron: '0 0 * * 2' env: CARGO_TERM_COLOR: always jobs: quality: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v2 @@ -24,8 +28,8 @@ jobs: components: rustfmt, clippy override: true - - name: Install Gtk - run: sudo apt update;sudo apt install -y libgtk-3-dev + - name: Install Gtk 4 + run: sudo apt-get update; sudo apt install -y libgtk-4-dev -y - name: Check the format run: cargo fmt --all -- --check diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index d10fabd..d7123ce 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -1,85 +1,72 @@ name: 🏁 Windows -on: [ push, pull_request ] +on: + push: + pull_request: + schedule: + - cron: '0 0 * * 2' env: CARGO_TERM_COLOR: always jobs: - windows: - strategy: - matrix: - toolchain: [ stable ] - type: [ release ] - runs-on: ubuntu-latest + container: + runs-on: ubuntu-22.04 + container: + image: ghcr.io/piegamesde/gtk4-cross:gtk-4.6 steps: - - uses: actions/checkout@v2 - + - uses: actions/checkout@v3 + - name: Install additional dependencies + # gio is for the build script + run: dnf install wget2 unzip mingw64-bzip2.noarch mingw64-poppler mingw64-poppler-glib mingw32-python3 rust-gio-devel adwaita-icon-theme -y && dnf clean all -y - uses: actions-rs/toolchain@v1 with: - toolchain: ${{ matrix.toolchain }} - override: true - - - uses: actions/cache@v2 + profile: minimal + toolchain: stable + target: x86_64-pc-windows-gnu + - name: Cache ~/.cargo + uses: actions/cache@v1 with: - path: | - target - key: windows-${{github.ref}}-${{github.sha}} - restore-keys: | - windows-${{github.ref}}-${{github.sha}} - - - name: Install Gtk, Mingw, unzip, zip and wget - run: sudo apt-get update; sudo apt install mingw-w64 libgtk-3-dev unzip wget zip -y - - - name: Build Release Cross Compile + path: ~/.cargo + key: windows-dotcargo + - name: Cache cargo build + uses: actions/cache@v3 + with: + path: target + key: windows-build-target + - name: Cross compile for Windows run: | - rustup target add x86_64-pc-windows-gnu - - echo "[target.x86_64-pc-windows-gnu]" > ~/.cargo/config - echo "linker = \"x86_64-w64-mingw32-gcc\"" >> ~/.cargo/config - echo "ar = \"x86_64-w64-mingw32-gcc-ar\"" >> ~/.cargo/config - - GTK_LIBRARY="$(pwd)/gtk_library" - GTK_APP="$(pwd)/gtk_app" - GTK_THEME="$(pwd)/gtk_theme" - - wget https://github.com/qarmin/gtk_library_store/releases/download/3.24.0/mingw64.zip - unzip mingw64.zip -d $GTK_LIBRARY - GTK_LIBRARY="$GTK_LIBRARY/mingw64" - - wget https://github.com/nrhodes91/AdMin/archive/master.zip - unzip master.zip -d $GTK_THEME - - PKG_CONFIG_ALLOW_CROSS=1 PKG_CONFIG_PATH="$GTK_LIBRARY/lib/pkgconfig" RUSTFLAGS="-L $GTK_LIBRARY/lib" cargo build --target=x86_64-pc-windows-gnu --release - - strip target/x86_64-pc-windows-gnu/release/szyszka.exe - - mkdir $GTK_APP - cp target/x86_64-pc-windows-gnu/release/szyszka.exe $GTK_APP - cp $GTK_LIBRARY/bin/*.dll $GTK_APP - mkdir -p $GTK_APP/share/glib-2.0/schemas - mkdir $GTK_APP/share/icons - cp $GTK_LIBRARY/share/glib-2.0/schemas/* $GTK_APP/share/glib-2.0/schemas - cp -r $GTK_LIBRARY/share/icons/* $GTK_APP/share/icons - mkdir $GTK_APP/lib - cp -r $GTK_LIBRARY/lib/gdk-pixbuf-2.0 $GTK_APP/lib - - mkdir -p $GTK_APP/share/themes - mkdir -p $GTK_APP/share/gtk-3.0 - echo "[Settings]" > $GTK_APP/share/gtk-3.0/settings.ini - echo "gtk-theme-name = admin-gtk3-dark-osx" >> $GTK_APP/share/gtk-3.0/settings.ini - echo "gtk-font-name = Segoe UI 10" >> $GTK_APP/share/gtk-3.0/settings.ini - echo "gtk-xft-rgba = rgb" >> $GTK_APP/share/gtk-3.0/settings.ini - cp $GTK_THEME/AdMin-master/admin-gtk3-dark-osx $GTK_APP/share/themes -r -L - - zip -r gtk_app.zip $GTK_APP - env: - CARGO_INCREMENTAL: 0 - RUSTFLAGS: "-C debuginfo=0 -D warnings" - if: ${{ matrix.type == 'release'}} - - - name: Store Windows CrossComplile - uses: actions/upload-artifact@v2 + #!/bin/bash + set -euo pipefail + export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/usr/share/pkgconfig:$MINGW_PREFIX/lib/pkgconfig/:/usr/x86_64-w64-mingw32/lib/pkgconfig/ + cargo build --target=x86_64-pc-windows-gnu --release --locked + mkdir -p package + cp target/x86_64-pc-windows-gnu/release/szyszka.exe package/ + - name: Package + run: | + #!/bin/bash + set -euo pipefail + cp -t package $(pds -vv -f package/*.exe) + # Add gdbus which is recommended on Windows (why?) + cp $MINGW_PREFIX/bin/gdbus.exe package + # Handle the glib schema compilation as well + glib-compile-schemas $MINGW_PREFIX/share/glib-2.0/schemas/ + mkdir -p package/share/glib-2.0/schemas/ + cp -T $MINGW_PREFIX/share/glib-2.0/schemas/gschemas.compiled package/share/glib-2.0/schemas/gschemas.compiled + # Pixbuf stuff, in order to get SVGs (scalable icons) to load + mkdir -p package/lib/gdk-pixbuf-2.0 + cp -rT $MINGW_PREFIX/lib/gdk-pixbuf-2.0 package/lib/gdk-pixbuf-2.0 + cp -f -t package $(pds -vv -f $MINGW_PREFIX/lib/gdk-pixbuf-2.0/2.10.0/loaders/*) + find package -iname "*.dll" -or -iname "*.exe" -type f -exec mingw-strip {} + + + cd package/share + wget2 https://github.com/qarmin/czkawka/files/8880216/gtk4_theme.zip + unzip gtk4_theme.zip + rm gtk4_theme.zip + cd ../.. + - name: Upload artifacts + uses: actions/upload-artifact@v3 with: - name: szyszka-Windows-${{ matrix.toolchain }} - path: gtk_app.zip - if: ${{ matrix.type == 'release' }} + name: szyszka-windows-${{ github.sha }} + path: | + ./package + if-no-files-found: error \ No newline at end of file From b7ebb75a8da5d9adbf244c7cabdff38b36d09a19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mikrut?= Date: Tue, 1 Nov 2022 13:50:01 +0100 Subject: [PATCH 14/18] Minimal image v3 --- .github/workflows/linux.yml | 16 ++++++++-------- .github/workflows/mac.yml | 6 +++--- .github/workflows/quality.yml | 4 ++-- .github/workflows/windows.yml | 2 +- misc/szyszka-appimage-recipe.yml | 11 +++++++++++ 5 files changed, 25 insertions(+), 14 deletions(-) create mode 100644 misc/szyszka-appimage-recipe.yml diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 9ef4998..adba2f5 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -16,14 +16,14 @@ jobs: type: [ release ] runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - uses: actions-rs/toolchain@v1 with: toolchain: ${{ matrix.toolchain }} override: true - - uses: actions/cache@v2 + - uses: actions/cache@v3 with: path: | target @@ -42,7 +42,7 @@ jobs: if: ${{ (matrix.type == 'release') && (matrix.toolchain == 'stable') }} - name: Store Linux GUI - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: szyszka-${{ runner.os }}-${{ matrix.toolchain }} path: target/release/szyszka @@ -55,14 +55,14 @@ jobs: type: [ release ] runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - uses: actions-rs/toolchain@v1 with: toolchain: ${{ matrix.toolchain }} override: true - - uses: actions/cache@v2 + - uses: actions/cache@v3 with: path: | target @@ -92,7 +92,7 @@ jobs: ./linuxdeploy-x86_64.AppImage --appdir AppDir --plugin gtk --output appimage --icon-file data/icons/com.github.qarmin.szyszka.svg --desktop-file data/com.github.qarmin.szyszka.desktop - name: Store Linux Appimage GUI - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: szyszka-appimage-${{ runner.os }}-${{ matrix.toolchain }} path: Szyszka*.AppImage @@ -109,7 +109,7 @@ jobs: mv out/Szyszka*.AppImage out/szyszka-minimal.AppImage - name: Minimal Appimage Upload - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: szyszka-${{ matrix.toolchain }}_minimal_AppImage path: out/*.AppImage @@ -121,7 +121,7 @@ jobs: type: [ debug ] runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - uses: actions-rs/toolchain@v1 with: diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index f4433e2..458cf2d 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -16,14 +16,14 @@ jobs: type: [ release ] runs-on: macos-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - uses: actions-rs/toolchain@v1 with: toolchain: ${{ matrix.toolchain }} override: true - - uses: actions/cache@v2 + - uses: actions/cache@v3 with: path: | target @@ -41,7 +41,7 @@ jobs: run: brew install rust gtk4 libheif - name: Store MacOS GUI - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: szyszka-${{ runner.os }}-${{ matrix.toolchain }} path: target/release/szyszka diff --git a/.github/workflows/quality.yml b/.github/workflows/quality.yml index d19746b..93d87e1 100644 --- a/.github/workflows/quality.yml +++ b/.github/workflows/quality.yml @@ -12,9 +12,9 @@ jobs: quality: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - - uses: actions/cache@v2 + - uses: actions/cache@v3 with: path: | target diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index d7123ce..6785f4f 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -24,7 +24,7 @@ jobs: toolchain: stable target: x86_64-pc-windows-gnu - name: Cache ~/.cargo - uses: actions/cache@v1 + uses: actions/cache@v3 with: path: ~/.cargo key: windows-dotcargo diff --git a/misc/szyszka-appimage-recipe.yml b/misc/szyszka-appimage-recipe.yml new file mode 100644 index 0000000..ed4706b --- /dev/null +++ b/misc/szyszka-appimage-recipe.yml @@ -0,0 +1,11 @@ +app: Szyszka + +ingredients: + script: + - mkdir -p szyszka + +script: + - pwd + - cp ../../szyszka ./usr/bin/szyszka + - cp ../../data/com.github.qarmin.szyszka.desktop . + - cp ../../data/icons/com.github.qarmin.szyszka.svg . From d92abbe0a0f1c4469544cd2a10be118688cd388c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mikrut?= Date: Tue, 1 Nov 2022 14:21:53 +0100 Subject: [PATCH 15/18] Resolve recursive crash, when changing value of labels --- src/connect_rule_window_add_number_click.rs | 18 +++++++++++++++--- src/connect_rule_window_add_text_click.rs | 6 +++++- src/connect_rule_window_custom_click.rs | 7 ++++++- src/connect_rule_window_replace_click.rs | 12 ++++++++++-- src/connect_rule_window_trim_click.rs | 6 +++++- src/example_fields.rs | 6 +++++- 6 files changed, 46 insertions(+), 9 deletions(-) diff --git a/src/connect_rule_window_add_number_click.rs b/src/connect_rule_window_add_number_click.rs index bb82e7f..8007648 100644 --- a/src/connect_rule_window_add_number_click.rs +++ b/src/connect_rule_window_add_number_click.rs @@ -24,17 +24,29 @@ pub fn connect_rule_window_add_number_click(gui_data: &GuiData) { let window_rules = gui_data.window_rules.clone(); entry_add_number_start_number.connect_changed(move |e| { - e.set_text(validate_number(e.text().to_string()).as_str()); + let old_name = e.text().to_string(); + let validate_number = validate_number(old_name.clone()); + if validate_number != old_name { + e.set_text(&validate_number); + } update_examples(&window_rules, None); }); let window_rules = gui_data.window_rules.clone(); entry_add_number_step.connect_changed(move |e| { - e.set_text(validate_number(e.text().to_string()).as_str()); + let old_name = e.text().to_string(); + let validate_number = validate_number(old_name.clone()); + if validate_number != old_name { + e.set_text(&validate_number); + } update_examples(&window_rules, None); }); let window_rules = gui_data.window_rules.clone(); entry_add_number_zeros.connect_changed(move |e| { - e.set_text(validate_number(e.text().to_string()).as_str()); + let old_name = e.text().to_string(); + let validate_number = validate_number(old_name.clone()); + if validate_number != old_name { + e.set_text(&validate_number); + } update_examples(&window_rules, None); }); } diff --git a/src/connect_rule_window_add_text_click.rs b/src/connect_rule_window_add_text_click.rs index 947b0b9..49bd0d2 100644 --- a/src/connect_rule_window_add_text_click.rs +++ b/src/connect_rule_window_add_text_click.rs @@ -21,7 +21,11 @@ pub fn connect_rule_window_add_text_click(gui_data: &GuiData) { // }); // let window_rules = gui_data.window_rules.clone(); // entry_add_text_text_to_add.connect_changed(move |e| { - // e.set_text(validate_name(e.text().to_string()).as_str()); + // let old_name = e.text().to_string(); + // let validate_name = validate_name(old_name.clone()); + // if validate_name != old_name { + // e.set_text(&validate_name); + // } // update_examples(&window_rules, None); // }); } diff --git a/src/connect_rule_window_custom_click.rs b/src/connect_rule_window_custom_click.rs index 835bee2..36ac46e 100644 --- a/src/connect_rule_window_custom_click.rs +++ b/src/connect_rule_window_custom_click.rs @@ -2,6 +2,7 @@ use crate::example_fields::update_examples; use crate::gui_data::GuiData; use crate::help_function::validate_name; use gtk4::prelude::*; +use std::sync::atomic::{AtomicBool, Ordering}; pub fn connect_rule_window_custom_click(gui_data: &GuiData) { let window_rules = gui_data.window_rules.clone(); @@ -9,7 +10,11 @@ pub fn connect_rule_window_custom_click(gui_data: &GuiData) { let entry_custom_text_to_change = gui_data.window_rules.custom.entry_custom_text_to_change.clone(); entry_custom_text_to_change.connect_changed(move |e| { - e.set_text(validate_name(e.text().to_string()).as_str()); + let old_name = e.text().to_string(); + let validated_name = validate_name(old_name.clone()); + if validated_name != old_name { + e.set_text(&validated_name); + } update_examples(&window_rules, None); }); } diff --git a/src/connect_rule_window_replace_click.rs b/src/connect_rule_window_replace_click.rs index 983e9d4..843601b 100644 --- a/src/connect_rule_window_replace_click.rs +++ b/src/connect_rule_window_replace_click.rs @@ -40,12 +40,20 @@ pub fn connect_rule_window_replace_click(gui_data: &GuiData) { // // let window_rules = gui_data.window_rules.clone(); // entry_replace_text_to_remove.connect_changed(move |e| { - // e.set_text(validate_name(e.text().to_string()).as_str()); + // let old_name = e.text().to_string(); + // let validate_name = validate_name(old_name.clone()); + // if validate_name != old_name { + // e.set_text(&validate_name); + // } // update_examples(&window_rules, None); // }); // let window_rules = gui_data.window_rules.clone(); // entry_replace_text_to_change.connect_changed(move |e| { - // e.set_text(validate_name(e.text().to_string()).as_str()); + // let old_name = e.text().to_string(); + // let validate_name = validate_name(old_name.clone()); + // if validate_name != old_name { + // e.set_text(&validate_name); + // } // update_examples(&window_rules, None); // }); } diff --git a/src/connect_rule_window_trim_click.rs b/src/connect_rule_window_trim_click.rs index 55cd296..c5b6f96 100644 --- a/src/connect_rule_window_trim_click.rs +++ b/src/connect_rule_window_trim_click.rs @@ -41,7 +41,11 @@ pub fn connect_rule_window_trim_click(gui_data: &GuiData) { // }); // let window_rules = gui_data.window_rules.clone(); // entry_add_text_text_to_trim.connect_changed(move |e| { - // e.set_text(validate_name(e.text().to_string()).as_str()); + // let old_name = e.text().to_string(); + // let validate_name = validate_name(old_name.clone()); + // if validate_name != old_name { + // e.set_text(&validate_name); + // } // update_examples(&window_rules, None); // }); } diff --git a/src/example_fields.rs b/src/example_fields.rs index 05d1648..60cd40c 100644 --- a/src/example_fields.rs +++ b/src/example_fields.rs @@ -23,7 +23,11 @@ pub fn connect_update_examples(gui_data: &GuiData) { let window_rules = gui_data.window_rules.clone(); let entry_example_before = gui_data.window_rules.entry_example_before.clone(); entry_example_before.connect_changed(move |e| { - e.set_text(validate_name(e.text().to_string()).as_str()); + let old_name = e.text().to_string(); + let validate_name = validate_name(old_name.clone()); + if validate_name != old_name { + e.set_text(&validate_name); + } update_examples(&window_rules, None); }); } From 9bafc2f909dcfaf38c3c13dfb5ab4d9e470b2784 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mikrut?= Date: Sat, 26 Nov 2022 16:57:38 +0100 Subject: [PATCH 16/18] Updated dependencies --- Cargo.lock | 201 +++++++++++++++++++++-------------------------------- Cargo.toml | 14 ++-- 2 files changed, 86 insertions(+), 129 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7d443ff..55e6659 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "aho-corasick" -version = "0.7.19" +version = "0.7.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" +checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" dependencies = [ "memchr", ] @@ -61,9 +61,9 @@ checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" [[package]] name = "cairo-rs" -version = "0.16.1" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f9ee4a4ca9239c9a839453dce04b7ddee2f859ec4cd7acd1f5703b68db549c" +checksum = "247e1183fa769ac22121f92276dae52f89acaf297f24b1320019f439b6e3b46f" dependencies = [ "bitflags", "cairo-sys-rs", @@ -75,9 +75,9 @@ dependencies = [ [[package]] name = "cairo-sys-rs" -version = "0.16.0" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5119ea655ec777b523f0b57279e70f8a4542f61b0e98a48f892b4ef043fd4c5d" +checksum = "7c48f4af05fabdcfa9658178e1326efa061853f040ce7d72e33af6885196f421" dependencies = [ "glib-sys", "libc", @@ -86,9 +86,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.74" +version = "1.0.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581f5dba903aac52ea3feb5ec4810848460ee833876f1f9b0fdeab1f19091574" +checksum = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4" [[package]] name = "cfg-expr" @@ -107,9 +107,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.22" +version = "0.4.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1" +checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f" dependencies = [ "iana-time-zone", "js-sys", @@ -157,9 +157,9 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.80" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b7d4e43b25d3c994662706a1d4fcfc32aaa6afd287502c111b237093bb23f3a" +checksum = "d4a41a86530d0fe7f5d9ea779916b7cadd2d4f9add748b99c2c029cbbdfaf453" dependencies = [ "cc", "cxxbridge-flags", @@ -169,9 +169,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.80" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84f8829ddc213e2c1368e51a2564c552b65a8cb6a28f31e576270ac81d5e5827" +checksum = "06416d667ff3e3ad2df1cd8cd8afae5da26cf9cec4d0825040f88b5ca659a2f0" dependencies = [ "cc", "codespan-reporting", @@ -184,15 +184,15 @@ dependencies = [ [[package]] name = "cxxbridge-flags" -version = "1.0.80" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e72537424b474af1460806647c41d4b6d35d09ef7fe031c5c2fa5766047cc56a" +checksum = "820a9a2af1669deeef27cb271f476ffd196a2c4b6731336011e0ba63e2c7cf71" [[package]] name = "cxxbridge-macro" -version = "1.0.80" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "309e4fb93eed90e1e14bea0da16b209f81813ba9fc7830c20ed151dd7bc0a4d7" +checksum = "a08a6e2fcc370a089ad3b4aaf54db3b1b4cee38ddabce5896b33eb693275f470" dependencies = [ "proc-macro2", "quote", @@ -220,9 +220,9 @@ checksum = "08ff6a4480d42625e59bc4e8b5dc3723279fd24d83afe8aa20df217276261cd6" [[package]] name = "digest" -version = "0.10.5" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c" +checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" dependencies = [ "block-buffer", "crypto-common", @@ -367,9 +367,9 @@ dependencies = [ [[package]] name = "gdk-pixbuf" -version = "0.16.0" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0fb526c8c3a075eda15f961820edf3e15fe18576ac4fbabbb324e4cc6c421e6" +checksum = "0ba3e42776d1466938add08211734738d5c76e863a25b7a8064c4433a74a1a26" dependencies = [ "bitflags", "gdk-pixbuf-sys", @@ -380,9 +380,9 @@ dependencies = [ [[package]] name = "gdk-pixbuf-sys" -version = "0.16.0" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7df12d15c10c3c5a84d9fb4ba0e27659f6a2bdee4f27f8b17126da15d5ddd3f2" +checksum = "3092cf797a5f1210479ea38070d9ae8a5b8e9f8f1be9f32f4643c529c7d70016" dependencies = [ "gio-sys", "glib-sys", @@ -393,9 +393,9 @@ dependencies = [ [[package]] name = "gdk4" -version = "0.5.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66fe07f362c977c4684d1136a29f097208b3ccb2013ab6f441a3c60a046fd358" +checksum = "dc7fc4b05be1159056c57a08102ea494892f75ff8517f5518b0401e466f77c69" dependencies = [ "bitflags", "cairo-rs", @@ -409,9 +409,9 @@ dependencies = [ [[package]] name = "gdk4-sys" -version = "0.5.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddcf9e3ab5f237bb641e7f2fccc4b26d5b86f111f0d62e27d452dc24964541c2" +checksum = "c057b794185a52862037526fb95aafabce9427fb98a7e9f5fe39a6f832c92822" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -436,9 +436,9 @@ dependencies = [ [[package]] name = "gio" -version = "0.16.2" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c1debf8d0315d69be0153aa76249db3c858ef69b7778ad3cc669e6d370c485" +checksum = "1d4a17d999e6e4e05d87c2bb05b7140d47769bc53211711a33e2f91536458714" dependencies = [ "bitflags", "futures-channel", @@ -456,9 +456,9 @@ dependencies = [ [[package]] name = "gio-sys" -version = "0.16.0" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6da1bba9d3f2ab13a6e9932c40f240dc99ebc9f0bdc35cfb130d1a3df36f374c" +checksum = "e9b693b8e39d042a95547fc258a7b07349b1f0b48f4b2fa3108ba3c51c0b5229" dependencies = [ "glib-sys", "gobject-sys", @@ -469,9 +469,9 @@ dependencies = [ [[package]] name = "glib" -version = "0.16.2" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5abffa711471e015eb93d65d6ea20e7e9f6f7951fc0a1042280439319b2de06" +checksum = "50feee2f1e73be50e6634c901bfced69a0937c5e4e4673067ade85e093fa9bd7" dependencies = [ "bitflags", "futures-channel", @@ -491,9 +491,9 @@ dependencies = [ [[package]] name = "glib-macros" -version = "0.16.0" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e195c1311fa6b04d7b896ea39385f6bd60ef5d25bf74a7c11c8c3f94f6c1a572" +checksum = "e084807350b01348b6d9dbabb724d1a0bb987f47a2c85de200e98e12e30733bf" dependencies = [ "anyhow", "heck", @@ -506,9 +506,9 @@ dependencies = [ [[package]] name = "glib-sys" -version = "0.16.0" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b33357bb421a77bd849f6a0bfcaf3b4b256a2577802971bb5dd522d530f27021" +checksum = "c61a4f46316d06bfa33a7ac22df6f0524c8be58e3db2d9ca99ccb1f357b62a65" dependencies = [ "libc", "system-deps", @@ -516,9 +516,9 @@ dependencies = [ [[package]] name = "gobject-sys" -version = "0.16.0" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63ca11a57400f3d4fda594e002844be47900c9fb8b29e2155c6e37a1f24e51b3" +checksum = "3520bb9c07ae2a12c7f2fbb24d4efc11231c8146a86956413fb1a79bb760a0f1" dependencies = [ "glib-sys", "libc", @@ -527,9 +527,9 @@ dependencies = [ [[package]] name = "graphene-rs" -version = "0.16.0" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95a8de4506a64776d90fedf9c28fdca5a7127f8cc9c78976e8184ac6f42685d8" +checksum = "95ecb4d347e6d09820df3bdfd89a74a8eec07753a06bb92a3aac3ad31d04447b" dependencies = [ "glib", "graphene-sys", @@ -538,9 +538,9 @@ dependencies = [ [[package]] name = "graphene-sys" -version = "0.16.0" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2c952f764f02f8546fcc5d014bc78aa704c6d453c828c8b429121f704349163" +checksum = "b9aa82337d3972b4eafdea71e607c23f47be6f27f749aab613f1ad8ddbe6dcd6" dependencies = [ "glib-sys", "libc", @@ -550,9 +550,9 @@ dependencies = [ [[package]] name = "gsk4" -version = "0.5.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fc2b86c751a7fe9aad0fdba85937a6aace3a8453e0e2a08d2a31ce4bb8ae55" +checksum = "5dcd01e485189515263f6d3ac8a624b1c0cd13c1097991e72d0cc0c145a303c0" dependencies = [ "bitflags", "cairo-rs", @@ -566,9 +566,9 @@ dependencies = [ [[package]] name = "gsk4-sys" -version = "0.5.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cb53e25cbbe3fa8e3e9db7c06d65085086fadbec4cd0aa567b2e2a4917db83d" +checksum = "f47c49111e33020615a6c6b78d755c8b54b8504143cae1bf972bccc03eaa3f59" dependencies = [ "cairo-sys-rs", "gdk4-sys", @@ -582,9 +582,9 @@ dependencies = [ [[package]] name = "gtk4" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47223ddb27033731b71ea841d1b878bd87a275a865f1df60b41505f9e4933d64" +checksum = "b4c61a704ecdedd1c0ca66ff0184bd19e9c488835bb391655bfe6b60f6e2e43e" dependencies = [ "bitflags", "cairo-rs", @@ -605,9 +605,9 @@ dependencies = [ [[package]] name = "gtk4-macros" -version = "0.5.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce5eb86364b216ee8c497b1121831168fb25130d3378495a135f8e5c1972db7b" +checksum = "42f57e7025a8bae8429e07aeeae9c4c3fef5d7cd14834afdd6d6d23f76984246" dependencies = [ "anyhow", "proc-macro-crate", @@ -619,9 +619,9 @@ dependencies = [ [[package]] name = "gtk4-sys" -version = "0.5.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f04bd0b63d999a36ae53a916ee4b20ea64a3ef4732ca8a98b1fde4a22c1476c" +checksum = "42e1bb57be47aac6ce77b5281ad64389a19db5aba6db75b07f0049571ad6fe0f" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -650,9 +650,9 @@ checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" [[package]] name = "humansize" -version = "2.1.0" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a866837516f34ad34fb221f3ee01fd0db75f2c2f6abeda2047dc6963fb04ad9a" +checksum = "4e682e2bd70ecbcce5209f11a992a4ba001fea8e60acf7860ce007629e6d2756" dependencies = [ "libm", ] @@ -792,9 +792,9 @@ checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89" [[package]] name = "libm" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "292a948cd991e376cf75541fe5b97a1081d713c618b4f1b9500f8844e49eb565" +checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" [[package]] name = "link-cplusplus" @@ -917,19 +917,19 @@ checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860" [[package]] name = "open" -version = "3.0.3" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4a3100141f1733ea40b53381b0ae3117330735ef22309a190ac57b9576ea716" +checksum = "2078c0039e6a54a0c42c28faa984e115fb4c2d5bf2208f77d1961002df8576f8" dependencies = [ "pathdiff", - "windows-sys 0.36.1", + "windows-sys", ] [[package]] name = "pango" -version = "0.16.0" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7208c60f224cf6e44c551df5ee2ef38f9da0fd29d7c5a0402000b8ab0520e798" +checksum = "f6a83cd4015382dbb0f4fcf3ab7b277d4885711a62b2f2c1e6582a120094edad" dependencies = [ "bitflags", "gio", @@ -941,9 +941,9 @@ dependencies = [ [[package]] name = "pango-sys" -version = "0.16.0" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "922441c228366ed98d3534b87bc7c987c50564094c3abbc3513717786419252d" +checksum = "9e134909a9a293e04d2cc31928aa95679c5e4df954d0b85483159bd20d8f047f" dependencies = [ "glib-sys", "gobject-sys", @@ -971,7 +971,7 @@ dependencies = [ "libc", "redox_syscall", "smallvec", - "windows-sys 0.42.0", + "windows-sys", ] [[package]] @@ -982,9 +982,9 @@ checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" [[package]] name = "pest" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc7bc69c062e492337d74d59b120c274fd3d261b6bf6d3207d499b4b379c41a" +checksum = "5f400b0f7905bf702f9f3dc3df5a121b16c54e9e8012c082905fdf09a931861a" dependencies = [ "thiserror", "ucd-trie", @@ -1072,9 +1072,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" +checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a" dependencies = [ "aho-corasick", "memchr", @@ -1083,9 +1083,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.6.27" +version = "0.6.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" +checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" [[package]] name = "rust-embed" @@ -1397,9 +1397,9 @@ checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" [[package]] name = "version-compare" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe88247b92c1df6b6de80ddc290f3976dbdf2f5f5d3fd049a9fb598c6dd5ca73" +checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29" [[package]] name = "version_check" @@ -1509,19 +1509,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "windows-sys" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" -dependencies = [ - "windows_aarch64_msvc 0.36.1", - "windows_i686_gnu 0.36.1", - "windows_i686_msvc 0.36.1", - "windows_x86_64_gnu 0.36.1", - "windows_x86_64_msvc 0.36.1", -] - [[package]] name = "windows-sys" version = "0.42.0" @@ -1529,12 +1516,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" dependencies = [ "windows_aarch64_gnullvm", - "windows_aarch64_msvc 0.42.0", - "windows_i686_gnu 0.42.0", - "windows_i686_msvc 0.42.0", - "windows_x86_64_gnu 0.42.0", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", "windows_x86_64_gnullvm", - "windows_x86_64_msvc 0.42.0", + "windows_x86_64_msvc", ] [[package]] @@ -1543,48 +1530,24 @@ version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" -[[package]] -name = "windows_aarch64_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" - [[package]] name = "windows_aarch64_msvc" version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" -[[package]] -name = "windows_i686_gnu" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" - [[package]] name = "windows_i686_gnu" version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" -[[package]] -name = "windows_i686_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" - [[package]] name = "windows_i686_msvc" version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" -[[package]] -name = "windows_x86_64_gnu" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" - [[package]] name = "windows_x86_64_gnu" version = "0.42.0" @@ -1597,12 +1560,6 @@ version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" -[[package]] -name = "windows_x86_64_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" - [[package]] name = "windows_x86_64_msvc" version = "0.42.0" diff --git a/Cargo.toml b/Cargo.toml index 5d41975..b7ea986 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,18 +9,18 @@ homepage = "https://github.com/qarmin/szyszka" repository = "https://github.com/qarmin/szyszka" [dependencies] -gdk4 = "0.5.0" -gio = "0.16.2" -glib = "0.16.2" +gdk4 = "0.5.2" +gio = "0.16.3" +glib = "0.16.3" # For checking path walkdir = "2.3.2" -humansize = "2.1.0" -chrono = "0.4.22" +humansize = "2.1.2" +chrono = "0.4.23" # For opening files -open = "3.0.3" +open = "3.2.0" # For slugs slugmin = "1.0.2" @@ -32,7 +32,7 @@ rust-embed = "6.4.2" once_cell = "1.16.0" [dependencies.gtk4] -version = "0.5.1" +version = "0.5.2" default-features = false # just in case features = ["v4_6"] From 5bdfed9d236346e9a1b7dac08c6e6cc53c2eca00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mikrut?= Date: Sat, 26 Nov 2022 17:23:53 +0100 Subject: [PATCH 17/18] Almost finally working --- Cargo.toml | 1 + src/connect_add_folders_button.rs | 14 ++- src/connect_button_settings.rs | 12 +- src/connect_rule_window_add_number_click.rs | 15 ++- src/connect_rule_window_add_text_click.rs | 47 ++++---- src/connect_rule_window_close.rs | 32 +++--- src/connect_rule_window_custom_click.rs | 1 - src/connect_rule_window_normalize_click.rs | 25 ++--- src/connect_rule_window_purge_click.rs | 35 +++--- src/connect_rule_window_replace_click.rs | 103 +++++++++--------- src/connect_rule_window_size_letters_click.rs | 53 +++++---- src/connect_rule_window_trim_click.rs | 87 ++++++++------- src/connect_select_records.rs | 2 +- src/help_function.rs | 6 +- src/initialize_gui.rs | 4 + src/main.rs | 2 +- src/rule_custom.rs | 4 +- 17 files changed, 220 insertions(+), 223 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index b7ea986..47a9e08 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,6 +7,7 @@ description = "Fast, powerful and easy to use file renamer" license = "MIT" homepage = "https://github.com/qarmin/szyszka" repository = "https://github.com/qarmin/szyszka" +rust-version = "1.63.0" [dependencies] gdk4 = "0.5.2" diff --git a/src/connect_add_folders_button.rs b/src/connect_add_folders_button.rs index 102af88..45ac49c 100644 --- a/src/connect_add_folders_button.rs +++ b/src/connect_add_folders_button.rs @@ -1,10 +1,10 @@ -use crate::fls; use crate::gui_data::GuiData; use crate::help_function::{get_all_boxes_from_widget, get_list_store_from_tree_view, split_path, ColumnsResults}; use crate::update_records::{update_records, UpdateMode}; use chrono::Local; +use glib::signal::Inhibit; use gtk4::prelude::*; -use gtk4::{FileChooserAction, Orientation, PackType, ResponseType}; +use gtk4::{Orientation, ResponseType}; use std::cmp::{max, Ordering}; use std::fs; use std::path::PathBuf; @@ -45,6 +45,7 @@ pub fn connect_add_folders_button(gui_data: &GuiData) { // box_pack.set_child_packing(&label_scan_inside, false, true, 0, PackType::End); let switch_ignore_folders = gtk4::Switch::new(); + switch_ignore_folders.set_active(true); box_pack.append(&switch_ignore_folders); // box_pack.set_child_packing(&switch_ignore_folders, false, true, 5, PackType::End); @@ -56,10 +57,11 @@ pub fn connect_add_folders_button(gui_data: &GuiData) { internal_box.append(&box_pack); switch_ignore_folders.set_sensitive(false); - // let sif = switch_ignore_folders.clone(); // TODO GTK 4 - // switch_scan_inside.connect_changed_active(move |e| { - // sif.set_sensitive(e.is_active()); - // }); + let sif = switch_ignore_folders.clone(); // TODO GTK 4 + switch_scan_inside.connect_state_set(move |_, b| { + sif.set_sensitive(b); + Inhibit(false) + }); chooser.set_title(Some("Folders to include")); chooser.show(); diff --git a/src/connect_button_settings.rs b/src/connect_button_settings.rs index b6431d5..17a7db9 100644 --- a/src/connect_button_settings.rs +++ b/src/connect_button_settings.rs @@ -1,4 +1,5 @@ use crate::GuiData; +use glib::signal::Inhibit; use gtk4::prelude::*; pub fn connect_button_settings(gui_data: &GuiData) { @@ -8,10 +9,9 @@ pub fn connect_button_settings(gui_data: &GuiData) { window_settings.show(); }); - // TODO GTK 4 - // let window_settings = gui_data.settings.window_settings.clone(); - // window_settings.connect_delete_event(|window_settings, _| { - // window_settings.hide(); - // Inhibit(true) - // }); + let window_settings = gui_data.settings.window_settings.clone(); + window_settings.connect_close_request(|window_settings| { + window_settings.hide(); + Inhibit(true) + }); } diff --git a/src/connect_rule_window_add_number_click.rs b/src/connect_rule_window_add_number_click.rs index 8007648..0dc4cbf 100644 --- a/src/connect_rule_window_add_number_click.rs +++ b/src/connect_rule_window_add_number_click.rs @@ -13,14 +13,13 @@ pub fn connect_rule_window_add_number_click(gui_data: &GuiData) { let entry_add_number_step = gui_data.window_rules.add_number.entry_add_number_step.clone(); let entry_add_number_zeros = gui_data.window_rules.add_number.entry_add_number_zeros.clone(); - // TODO GTK 4 - // check_button_add_number_before_name.connect_clicked(move |_e| { - // update_examples(&window_rules, None); - // }); - // let window_rules = gui_data.window_rules.clone(); - // check_button_add_number_after_name.connect_clicked(move |_e| { - // update_examples(&window_rules, None); - // }); + check_button_add_number_before_name.connect_toggled(move |_e| { + update_examples(&window_rules, None); + }); + let window_rules = gui_data.window_rules.clone(); + check_button_add_number_after_name.connect_toggled(move |_e| { + update_examples(&window_rules, None); + }); let window_rules = gui_data.window_rules.clone(); entry_add_number_start_number.connect_changed(move |e| { diff --git a/src/connect_rule_window_add_text_click.rs b/src/connect_rule_window_add_text_click.rs index 49bd0d2..b3badeb 100644 --- a/src/connect_rule_window_add_text_click.rs +++ b/src/connect_rule_window_add_text_click.rs @@ -4,28 +4,27 @@ use crate::help_function::validate_name; use gtk4::prelude::*; pub fn connect_rule_window_add_text_click(gui_data: &GuiData) { - // TODO GTK 4 - // let window_rules = gui_data.window_rules.clone(); - // - // let check_button_add_text_before_name = gui_data.window_rules.add_text.check_button_add_text_before_name.clone(); - // let check_button_add_text_after_name = gui_data.window_rules.add_text.check_button_add_text_after_name.clone(); - // - // let entry_add_text_text_to_add = gui_data.window_rules.add_text.entry_add_text_text_to_add.clone(); - // - // check_button_add_text_before_name.connect_clicked(move |_e| { - // update_examples(&window_rules, None); - // }); - // let window_rules = gui_data.window_rules.clone(); - // check_button_add_text_after_name.connect_clicked(move |_e| { - // update_examples(&window_rules, None); - // }); - // let window_rules = gui_data.window_rules.clone(); - // entry_add_text_text_to_add.connect_changed(move |e| { - // let old_name = e.text().to_string(); - // let validate_name = validate_name(old_name.clone()); - // if validate_name != old_name { - // e.set_text(&validate_name); - // } - // update_examples(&window_rules, None); - // }); + let window_rules = gui_data.window_rules.clone(); + + let check_button_add_text_before_name = gui_data.window_rules.add_text.check_button_add_text_before_name.clone(); + let check_button_add_text_after_name = gui_data.window_rules.add_text.check_button_add_text_after_name.clone(); + + let entry_add_text_text_to_add = gui_data.window_rules.add_text.entry_add_text_text_to_add.clone(); + + check_button_add_text_before_name.connect_toggled(move |_e| { + update_examples(&window_rules, None); + }); + let window_rules = gui_data.window_rules.clone(); + check_button_add_text_after_name.connect_toggled(move |_e| { + update_examples(&window_rules, None); + }); + let window_rules = gui_data.window_rules.clone(); + entry_add_text_text_to_add.connect_changed(move |e| { + let old_name = e.text().to_string(); + let validate_name = validate_name(old_name.clone()); + if validate_name != old_name { + e.set_text(&validate_name); + } + update_examples(&window_rules, None); + }); } diff --git a/src/connect_rule_window_close.rs b/src/connect_rule_window_close.rs index 16f4cf9..07024ef 100644 --- a/src/connect_rule_window_close.rs +++ b/src/connect_rule_window_close.rs @@ -3,21 +3,19 @@ use gtk4::prelude::*; use std::ops::DerefMut; pub fn connect_rule_window_close(gui_data: &GuiData) { - // TODO GTK 4 - // let window_with_rules = gui_data.window_rules.window_with_rules.clone(); - // let window_main = gui_data.window_main.clone(); - // - // let rules = gui_data.rules.clone(); - // - // window_with_rules.hide_on_delete(); - // window_with_rules.connect_delete_event(move |e, _y| { - // let mut rules = rules.borrow_mut(); - // let rules = rules.deref_mut(); - // - // rules.edit_mode = None; // Reset in case of cancelling editing of rules - // - // window_main.set_sensitive(true); - // e.hide(); - // gtk4::Inhibit(true) - // }); + let window_with_rules = gui_data.window_rules.window_with_rules.clone(); + let window_main = gui_data.window_main.clone(); + + let rules = gui_data.rules.clone(); + + window_with_rules.connect_close_request(move |e| { + let mut rules = rules.borrow_mut(); + let rules = rules.deref_mut(); + + rules.edit_mode = None; // Reset in case of cancelling editing of rules + + window_main.set_sensitive(true); + e.hide(); + gtk4::Inhibit(true) + }); } diff --git a/src/connect_rule_window_custom_click.rs b/src/connect_rule_window_custom_click.rs index 36ac46e..c697ae9 100644 --- a/src/connect_rule_window_custom_click.rs +++ b/src/connect_rule_window_custom_click.rs @@ -2,7 +2,6 @@ use crate::example_fields::update_examples; use crate::gui_data::GuiData; use crate::help_function::validate_name; use gtk4::prelude::*; -use std::sync::atomic::{AtomicBool, Ordering}; pub fn connect_rule_window_custom_click(gui_data: &GuiData) { let window_rules = gui_data.window_rules.clone(); diff --git a/src/connect_rule_window_normalize_click.rs b/src/connect_rule_window_normalize_click.rs index 9d9247e..e724733 100644 --- a/src/connect_rule_window_normalize_click.rs +++ b/src/connect_rule_window_normalize_click.rs @@ -3,17 +3,16 @@ use crate::gui_data::GuiData; use gtk4::prelude::*; pub fn connect_rule_window_normalize_click(gui_data: &GuiData) { - // TODO GTK 4 - // let window_rules = gui_data.window_rules.clone(); - // - // let check_button_normalize_everything = gui_data.window_rules.normalize.check_button_normalize_everything.clone(); - // let check_button_normalize_partial = gui_data.window_rules.normalize.check_button_normalize_partial.clone(); - // - // check_button_normalize_everything.connect_activate(move |_e| { - // update_examples(&window_rules, None); - // }); - // let window_rules = gui_data.window_rules.clone(); - // check_button_normalize_partial.connect_clicked(move |_e| { - // update_examples(&window_rules, None); - // }); + let window_rules = gui_data.window_rules.clone(); + + let check_button_normalize_everything = gui_data.window_rules.normalize.check_button_normalize_everything.clone(); + let check_button_normalize_partial = gui_data.window_rules.normalize.check_button_normalize_partial.clone(); + + check_button_normalize_everything.connect_toggled(move |_e| { + update_examples(&window_rules, None); + }); + let window_rules = gui_data.window_rules.clone(); + check_button_normalize_partial.connect_toggled(move |_e| { + update_examples(&window_rules, None); + }); } diff --git a/src/connect_rule_window_purge_click.rs b/src/connect_rule_window_purge_click.rs index c782d20..8c518f9 100644 --- a/src/connect_rule_window_purge_click.rs +++ b/src/connect_rule_window_purge_click.rs @@ -3,22 +3,21 @@ use crate::gui_data::GuiData; use gtk4::prelude::*; pub fn connect_rule_window_purge_click(gui_data: &GuiData) { - // TODO GTK 4 - // let window_rules = gui_data.window_rules.clone(); - // - // let check_button_purge_both = gui_data.window_rules.purge.check_button_purge_both.clone(); - // let check_button_purge_name = gui_data.window_rules.purge.check_button_purge_name.clone(); - // let check_button_purge_extension = gui_data.window_rules.purge.check_button_purge_extension.clone(); - // - // check_button_purge_extension.connect_clicked(move |_e| { - // update_examples(&window_rules, None); - // }); - // let window_rules = gui_data.window_rules.clone(); - // check_button_purge_name.connect_clicked(move |_e| { - // update_examples(&window_rules, None); - // }); - // let window_rules = gui_data.window_rules.clone(); - // check_button_purge_both.connect_clicked(move |_e| { - // update_examples(&window_rules, None); - // }); + let window_rules = gui_data.window_rules.clone(); + + let check_button_purge_both = gui_data.window_rules.purge.check_button_purge_both.clone(); + let check_button_purge_name = gui_data.window_rules.purge.check_button_purge_name.clone(); + let check_button_purge_extension = gui_data.window_rules.purge.check_button_purge_extension.clone(); + + check_button_purge_extension.connect_toggled(move |_e| { + update_examples(&window_rules, None); + }); + let window_rules = gui_data.window_rules.clone(); + check_button_purge_name.connect_toggled(move |_e| { + update_examples(&window_rules, None); + }); + let window_rules = gui_data.window_rules.clone(); + check_button_purge_both.connect_toggled(move |_e| { + update_examples(&window_rules, None); + }); } diff --git a/src/connect_rule_window_replace_click.rs b/src/connect_rule_window_replace_click.rs index 843601b..27580fc 100644 --- a/src/connect_rule_window_replace_click.rs +++ b/src/connect_rule_window_replace_click.rs @@ -4,56 +4,55 @@ use crate::help_function::validate_name; use gtk4::prelude::*; pub fn connect_rule_window_replace_click(gui_data: &GuiData) { - // TODO GTK 4 - // let window_rules = gui_data.window_rules.clone(); - // - // let check_button_replace_name = gui_data.window_rules.replace.check_button_replace_name.clone(); - // let check_button_replace_extension = gui_data.window_rules.replace.check_button_replace_extension.clone(); - // let check_button_replace_both = gui_data.window_rules.replace.check_button_replace_both.clone(); - // - // let check_button_replace_case_insensitive = gui_data.window_rules.replace.check_button_replace_case_insensitive.clone(); - // let check_button_replace_case_sensitive = gui_data.window_rules.replace.check_button_replace_case_sensitive.clone(); - // - // let entry_replace_text_to_change = gui_data.window_rules.replace.entry_replace_text_to_change.clone(); - // let entry_replace_text_to_remove = gui_data.window_rules.replace.entry_replace_text_to_remove.clone(); - // - // check_button_replace_name.connect_clicked(move |_e| { - // update_examples(&window_rules, None); - // }); - // let window_rules = gui_data.window_rules.clone(); - // check_button_replace_extension.connect_clicked(move |_e| { - // update_examples(&window_rules, None); - // }); - // let window_rules = gui_data.window_rules.clone(); - // check_button_replace_both.connect_clicked(move |_e| { - // update_examples(&window_rules, None); - // }); - // - // let window_rules = gui_data.window_rules.clone(); - // check_button_replace_case_sensitive.connect_clicked(move |_e| { - // update_examples(&window_rules, None); - // }); - // let window_rules = gui_data.window_rules.clone(); - // check_button_replace_case_insensitive.connect_clicked(move |_e| { - // update_examples(&window_rules, None); - // }); - // - // let window_rules = gui_data.window_rules.clone(); - // entry_replace_text_to_remove.connect_changed(move |e| { - // let old_name = e.text().to_string(); - // let validate_name = validate_name(old_name.clone()); - // if validate_name != old_name { - // e.set_text(&validate_name); - // } - // update_examples(&window_rules, None); - // }); - // let window_rules = gui_data.window_rules.clone(); - // entry_replace_text_to_change.connect_changed(move |e| { - // let old_name = e.text().to_string(); - // let validate_name = validate_name(old_name.clone()); - // if validate_name != old_name { - // e.set_text(&validate_name); - // } - // update_examples(&window_rules, None); - // }); + let window_rules = gui_data.window_rules.clone(); + + let check_button_replace_name = gui_data.window_rules.replace.check_button_replace_name.clone(); + let check_button_replace_extension = gui_data.window_rules.replace.check_button_replace_extension.clone(); + let check_button_replace_both = gui_data.window_rules.replace.check_button_replace_both.clone(); + + let check_button_replace_case_insensitive = gui_data.window_rules.replace.check_button_replace_case_insensitive.clone(); + let check_button_replace_case_sensitive = gui_data.window_rules.replace.check_button_replace_case_sensitive.clone(); + + let entry_replace_text_to_change = gui_data.window_rules.replace.entry_replace_text_to_change.clone(); + let entry_replace_text_to_remove = gui_data.window_rules.replace.entry_replace_text_to_remove.clone(); + + check_button_replace_name.connect_toggled(move |_e| { + update_examples(&window_rules, None); + }); + let window_rules = gui_data.window_rules.clone(); + check_button_replace_extension.connect_toggled(move |_e| { + update_examples(&window_rules, None); + }); + let window_rules = gui_data.window_rules.clone(); + check_button_replace_both.connect_toggled(move |_e| { + update_examples(&window_rules, None); + }); + + let window_rules = gui_data.window_rules.clone(); + check_button_replace_case_sensitive.connect_toggled(move |_e| { + update_examples(&window_rules, None); + }); + let window_rules = gui_data.window_rules.clone(); + check_button_replace_case_insensitive.connect_toggled(move |_e| { + update_examples(&window_rules, None); + }); + + let window_rules = gui_data.window_rules.clone(); + entry_replace_text_to_remove.connect_changed(move |e| { + let old_name = e.text().to_string(); + let validate_name = validate_name(old_name.clone()); + if validate_name != old_name { + e.set_text(&validate_name); + } + update_examples(&window_rules, None); + }); + let window_rules = gui_data.window_rules.clone(); + entry_replace_text_to_change.connect_changed(move |e| { + let old_name = e.text().to_string(); + let validate_name = validate_name(old_name.clone()); + if validate_name != old_name { + e.set_text(&validate_name); + } + update_examples(&window_rules, None); + }); } diff --git a/src/connect_rule_window_size_letters_click.rs b/src/connect_rule_window_size_letters_click.rs index 35db0c6..2d84b00 100644 --- a/src/connect_rule_window_size_letters_click.rs +++ b/src/connect_rule_window_size_letters_click.rs @@ -3,31 +3,30 @@ use crate::gui_data::GuiData; use gtk4::prelude::*; pub fn connect_rule_window_size_letters_click(gui_data: &GuiData) { - // TODO GTK 4 - // let window_rules = gui_data.window_rules.clone(); - // let check_button_letters_usage_both = gui_data.window_rules.size_letters.check_button_letters_usage_both.clone(); - // let check_button_letters_usage_name = gui_data.window_rules.size_letters.check_button_letters_usage_name.clone(); - // let check_button_letters_usage_extension = gui_data.window_rules.size_letters.check_button_letters_usage_extension.clone(); - // let check_button_letters_type_lowercase = gui_data.window_rules.size_letters.check_button_letters_type_lowercase.clone(); - // let check_button_letters_type_uppercase = gui_data.window_rules.size_letters.check_button_letters_type_uppercase.clone(); - // - // check_button_letters_type_lowercase.connect_clicked(move |_e| { - // update_examples(&window_rules, None); - // }); - // let window_rules = gui_data.window_rules.clone(); - // check_button_letters_type_uppercase.connect_clicked(move |_e| { - // update_examples(&window_rules, None); - // }); - // let window_rules = gui_data.window_rules.clone(); - // check_button_letters_usage_extension.connect_clicked(move |_e| { - // update_examples(&window_rules, None); - // }); - // let window_rules = gui_data.window_rules.clone(); - // check_button_letters_usage_name.connect_clicked(move |_e| { - // update_examples(&window_rules, None); - // }); - // let window_rules = gui_data.window_rules.clone(); - // check_button_letters_usage_both.connect_clicked(move |_e| { - // update_examples(&window_rules, None); - // }); + let window_rules = gui_data.window_rules.clone(); + let check_button_letters_usage_both = gui_data.window_rules.size_letters.check_button_letters_usage_both.clone(); + let check_button_letters_usage_name = gui_data.window_rules.size_letters.check_button_letters_usage_name.clone(); + let check_button_letters_usage_extension = gui_data.window_rules.size_letters.check_button_letters_usage_extension.clone(); + let check_button_letters_type_lowercase = gui_data.window_rules.size_letters.check_button_letters_type_lowercase.clone(); + let check_button_letters_type_uppercase = gui_data.window_rules.size_letters.check_button_letters_type_uppercase.clone(); + + check_button_letters_type_lowercase.connect_toggled(move |_e| { + update_examples(&window_rules, None); + }); + let window_rules = gui_data.window_rules.clone(); + check_button_letters_type_uppercase.connect_toggled(move |_e| { + update_examples(&window_rules, None); + }); + let window_rules = gui_data.window_rules.clone(); + check_button_letters_usage_extension.connect_toggled(move |_e| { + update_examples(&window_rules, None); + }); + let window_rules = gui_data.window_rules.clone(); + check_button_letters_usage_name.connect_toggled(move |_e| { + update_examples(&window_rules, None); + }); + let window_rules = gui_data.window_rules.clone(); + check_button_letters_usage_both.connect_toggled(move |_e| { + update_examples(&window_rules, None); + }); } diff --git a/src/connect_rule_window_trim_click.rs b/src/connect_rule_window_trim_click.rs index c5b6f96..0678878 100644 --- a/src/connect_rule_window_trim_click.rs +++ b/src/connect_rule_window_trim_click.rs @@ -4,48 +4,47 @@ use crate::help_function::validate_name; use gtk4::prelude::*; pub fn connect_rule_window_trim_click(gui_data: &GuiData) { - // TODO GTK 4 - // let window_rules = gui_data.window_rules.clone(); - // - // let check_button_trim_name_start = gui_data.window_rules.trim.check_button_trim_name_start.clone(); - // let check_button_trim_name_end = gui_data.window_rules.trim.check_button_trim_name_end.clone(); - // let check_button_trim_extension_start = gui_data.window_rules.trim.check_button_trim_extension_start.clone(); - // let check_button_trim_extension_end = gui_data.window_rules.trim.check_button_trim_extension_end.clone(); - // let check_button_trim_case_insensitive = gui_data.window_rules.trim.check_button_trim_case_insensitive.clone(); - // let check_button_trim_case_sensitive = gui_data.window_rules.trim.check_button_trim_case_sensitive.clone(); - // - // let entry_add_text_text_to_trim = gui_data.window_rules.trim.entry_add_text_text_to_trim.clone(); - // - // check_button_trim_name_start.connect_clicked(move |_e| { - // update_examples(&window_rules, None); - // }); - // let window_rules = gui_data.window_rules.clone(); - // check_button_trim_name_end.connect_clicked(move |_e| { - // update_examples(&window_rules, None); - // }); - // let window_rules = gui_data.window_rules.clone(); - // check_button_trim_extension_start.connect_clicked(move |_e| { - // update_examples(&window_rules, None); - // }); - // let window_rules = gui_data.window_rules.clone(); - // check_button_trim_extension_end.connect_clicked(move |_e| { - // update_examples(&window_rules, None); - // }); - // let window_rules = gui_data.window_rules.clone(); - // check_button_trim_case_insensitive.connect_clicked(move |_e| { - // update_examples(&window_rules, None); - // }); - // let window_rules = gui_data.window_rules.clone(); - // check_button_trim_case_sensitive.connect_clicked(move |_e| { - // update_examples(&window_rules, None); - // }); - // let window_rules = gui_data.window_rules.clone(); - // entry_add_text_text_to_trim.connect_changed(move |e| { - // let old_name = e.text().to_string(); - // let validate_name = validate_name(old_name.clone()); - // if validate_name != old_name { - // e.set_text(&validate_name); - // } - // update_examples(&window_rules, None); - // }); + let window_rules = gui_data.window_rules.clone(); + + let check_button_trim_name_start = gui_data.window_rules.trim.check_button_trim_name_start.clone(); + let check_button_trim_name_end = gui_data.window_rules.trim.check_button_trim_name_end.clone(); + let check_button_trim_extension_start = gui_data.window_rules.trim.check_button_trim_extension_start.clone(); + let check_button_trim_extension_end = gui_data.window_rules.trim.check_button_trim_extension_end.clone(); + let check_button_trim_case_insensitive = gui_data.window_rules.trim.check_button_trim_case_insensitive.clone(); + let check_button_trim_case_sensitive = gui_data.window_rules.trim.check_button_trim_case_sensitive.clone(); + + let entry_add_text_text_to_trim = gui_data.window_rules.trim.entry_add_text_text_to_trim.clone(); + + check_button_trim_name_start.connect_toggled(move |_e| { + update_examples(&window_rules, None); + }); + let window_rules = gui_data.window_rules.clone(); + check_button_trim_name_end.connect_toggled(move |_e| { + update_examples(&window_rules, None); + }); + let window_rules = gui_data.window_rules.clone(); + check_button_trim_extension_start.connect_toggled(move |_e| { + update_examples(&window_rules, None); + }); + let window_rules = gui_data.window_rules.clone(); + check_button_trim_extension_end.connect_toggled(move |_e| { + update_examples(&window_rules, None); + }); + let window_rules = gui_data.window_rules.clone(); + check_button_trim_case_insensitive.connect_toggled(move |_e| { + update_examples(&window_rules, None); + }); + let window_rules = gui_data.window_rules.clone(); + check_button_trim_case_sensitive.connect_toggled(move |_e| { + update_examples(&window_rules, None); + }); + let window_rules = gui_data.window_rules.clone(); + entry_add_text_text_to_trim.connect_changed(move |e| { + let old_name = e.text().to_string(); + let validate_name = validate_name(old_name.clone()); + if validate_name != old_name { + e.set_text(&validate_name); + } + update_examples(&window_rules, None); + }); } diff --git a/src/connect_select_records.rs b/src/connect_select_records.rs index 6de457f..e47b256 100644 --- a/src/connect_select_records.rs +++ b/src/connect_select_records.rs @@ -1,7 +1,7 @@ use crate::gui_data::GuiData; use crate::help_function::{get_all_boxes_from_widget, get_list_store_from_tree_view, regex_check, ColumnsResults}; use gtk4::prelude::*; -use gtk4::{PositionType, TreeIter}; +use gtk4::TreeIter; pub fn connect_select_records(gui_data: &GuiData) { let popover_select = gui_data.popover_select.popover_select.clone(); diff --git a/src/help_function.rs b/src/help_function.rs index 0031966..70c74fb 100644 --- a/src/help_function.rs +++ b/src/help_function.rs @@ -41,7 +41,7 @@ pub fn validate_name(before_name: String) -> String { before_name.chars().filter(|e| *e != '\\' && *e != '/').collect::() } pub fn validate_number(before_name: String) -> String { - before_name.chars().filter(|e| e.is_digit(10)).collect::() + before_name.chars().filter(|e| e.is_ascii_digit()).collect::() } pub fn split_path(path: &Path) -> (String, String) { @@ -198,7 +198,7 @@ pub fn regex_check(expression: &str, directory: impl AsRef) -> bool { let mut position_of_splits: Vec = Vec::new(); // `git*` shouldn't be true for `/gitsfafasfs` - if !expression.starts_with('*') && directory.find(&splits[0]).unwrap() > 0 { + if !expression.starts_with('*') && directory.find(splits[0]).unwrap() > 0 { return false; } // `*home` shouldn't be true for `/homeowner` @@ -207,7 +207,7 @@ pub fn regex_check(expression: &str, directory: impl AsRef) -> bool { } // At the end we check if parts between * are correctly positioned - position_of_splits.push(directory.find(&splits[0]).unwrap()); + position_of_splits.push(directory.find(splits[0]).unwrap()); let mut current_index: usize; let mut found_index: usize; for i in splits[1..].iter().enumerate() { diff --git a/src/initialize_gui.rs b/src/initialize_gui.rs index e02f346..b794c8a 100644 --- a/src/initialize_gui.rs +++ b/src/initialize_gui.rs @@ -79,11 +79,15 @@ pub fn initialize_gui(gui_data: &GuiData) { update_examples(&gui_data.window_rules, None); } } +// TODO GTK 4 +#[allow(dead_code)] pub enum OpenMode { OnlyPath, PathAndName, } +// TODO GTK 4 +#[allow(dead_code)] pub fn common_open_function(tree_view: >k4::TreeView, opening_mode: OpenMode) { let selection = tree_view.selection(); let (selection_rows, tree_model) = selection.selected_rows(); diff --git a/src/main.rs b/src/main.rs index d9235f7..b13efb0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -94,7 +94,7 @@ fn main() { application.run_with_args(&env::args().collect::>()); } -fn build_ui(application: &Application, arguments: Vec) { +fn build_ui(application: &Application, _arguments: Vec) { let gui_data: GuiData = GuiData::new_with_application(application); initialize_gui(&gui_data); diff --git a/src/rule_custom.rs b/src/rule_custom.rs index 89f4759..e40467a 100644 --- a/src/rule_custom.rs +++ b/src/rule_custom.rs @@ -22,8 +22,8 @@ pub fn rule_custom(data_to_change: &str, rule: &SingleRule, rule_number: u64, fi // Random data to visualize typical usage in examples if let Some(f_data) = file_data { - modification_date = NaiveDateTime::from_timestamp(f_data.0 as i64, 0).to_string().replace(':', "_"); - creation_date = NaiveDateTime::from_timestamp(f_data.1 as i64, 0).to_string().replace(':', "_"); + modification_date = NaiveDateTime::from_timestamp_opt(f_data.0 as i64, 0).unwrap().to_string().replace(':', "_"); + creation_date = NaiveDateTime::from_timestamp_opt(f_data.1 as i64, 0).unwrap().to_string().replace(':', "_"); size = format_size(f_data.2, BINARY); } else { creation_date = "2021-01-31 08_42_12".to_string(); From d1e04a8aca0a480a7b6adddefdccb9e7f8f622d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mikrut?= Date: Sat, 26 Nov 2022 17:26:52 +0100 Subject: [PATCH 18/18] Clippy --- src/connect_add_files_button.rs | 2 +- src/connect_add_folders_button.rs | 2 +- src/main.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/connect_add_files_button.rs b/src/connect_add_files_button.rs index 07f3e5a..c1141cf 100644 --- a/src/connect_add_files_button.rs +++ b/src/connect_add_files_button.rs @@ -78,7 +78,7 @@ pub fn connect_add_files_button(gui_data: &GuiData) { } //// Read Metadata - let file_metadata = match fs::metadata(&file_entry) { + let file_metadata = match fs::metadata(file_entry) { Ok(t) => t, Err(err) => { eprintln!("Failed to load metadata of file {}, reason - \"{}\"", file_entry.display(), err); diff --git a/src/connect_add_folders_button.rs b/src/connect_add_folders_button.rs index 45ac49c..a6de115 100644 --- a/src/connect_add_folders_button.rs +++ b/src/connect_add_folders_button.rs @@ -148,7 +148,7 @@ pub fn connect_add_folders_button(gui_data: &GuiData) { } //// Read Metadata - let file_metadata = match fs::metadata(&file_entry) { + let file_metadata = match fs::metadata(file_entry) { Ok(t) => t, Err(err) => { eprintln!("Failed to load metadata of file {}, reason - \"{}\"", file_entry.display(), err); diff --git a/src/main.rs b/src/main.rs index b13efb0..ce0fab5 100644 --- a/src/main.rs +++ b/src/main.rs @@ -152,6 +152,6 @@ fn build_ui(application: &Application, _arguments: Vec) { connect_results_modify_one_up(&gui_data); connect_results_modify_one_down(&gui_data); - let window_main = gui_data.window_main.clone(); + let window_main = gui_data.window_main; window_main.connect_close_request(move |_| Inhibit(false)); }