Fix #7378 - search bar in files brower
authorAlan <alan@roojs.com>
Fri, 2 Sep 2022 05:27:59 +0000 (13:27 +0800)
committerAlan <alan@roojs.com>
Fri, 2 Sep 2022 05:27:59 +0000 (13:27 +0800)
15 files changed:
debian/autoreconf.after
debian/autoreconf.before
debian/changelog
debian/files
src/Builder4/ClutterFiles.bjs [deleted file]
src/Builder4/ClutterFiles.vala [deleted file]
src/Builder4/Editor.vala
src/Builder4/GtkView.bjs
src/Builder4/GtkView.vala
src/Builder4/PopoverFiles.bjs
src/Builder4/PopoverFiles.vala
src/Builder4/WindowRooView.bjs
src/Builder4/WindowRooView.vala
src/Builder4/config1.builder
src/JsRender/JsRender.vala

index 7d005a2..bb14d4e 100644 (file)
@@ -7,7 +7,7 @@ b090c5891571c820e91d345a9551af44  ./install-sh
 d41d8cd98f00b204e9800998ecf8427e  ./ChangeLog
 dc2a3bd2e90ea29308069119e150d84c  ./src/c/jscore_object_call_as_function.c
 507133162a3bb04e243df355eca871c7  ./src/Main.vala
-c5b44ecef56c7463a019088887730f41  ./src/Builder4/WindowRooView.bjs
+e87201d0bd9587948dbd498d48c7007b  ./src/Builder4/WindowRooView.bjs
 04a4d3c80cdb0c117c1e2113768cb554  ./src/Builder4/DialogTemplateSelect.bjs
 2cdf0a260f64ef0b6d3d74e9423db91f  ./src/Builder4/ProjectSettings.bjs
 254a8daff9072d59e32f03113d02e429  ./src/Builder4/DialogTemplateSelect.vala
@@ -21,31 +21,31 @@ edc8430ca864508d07046aa44624ab22  ./src/Builder4/ProjectSettings.c
 21537c6d1b7ae18e5b893f5720f4f428  ./src/Builder4/ValaCompileErrors.bjs
 82457c9080d838675a3f463ad406edcd  ./src/Builder4/WindowAddProp.c
 983a196b2f390858626a6ecc04366ebc  ./src/Builder4/ValaCompileResults.bjs
-3bafb0c640c225e198969d6feb2d30ba  ./src/Builder4/WindowLeftTree.bjs
+9f300aeb37b41d5c8d581d7bbdc8a2a1  ./src/Builder4/WindowLeftTree.bjs
 4b3ca347619a75423add229246d6934b  ./src/Builder4/ValaProjectSettings.c
-33dfb40081e08b8ccc4e8e367170ac7b  ./src/Builder4/GtkView.bjs
+c3d76b91ed4cb8c862cd926785d5a5ea  ./src/Builder4/GtkView.bjs
 1f8a135ee916234e6e10a92b6fefbbae  ./src/Builder4/DialogSaveTemplate.bjs
 01f94aae4ea0d5d9b6b56f34fa5f79f4  ./src/Builder4/DialogConfirm.vala
 a2d0fafef3cfb748e2643edce607e3d6  ./src/Builder4/PopoverProperty.vala
-ccada5ef4cce7f6634a86d7d31460d2a  ./src/Builder4/MainWindow.vala
-3aca1c873e3b299c6c9d65ade9233008  ./src/Builder4/Editor.bjs
+0ed81e8c4f34a4e2e5f58f89d2beffd3  ./src/Builder4/MainWindow.vala
+997734dc2ed398d316a7938679aa3582  ./src/Builder4/Editor.bjs
 cc34dea3283bdac2fae049d6ed914558  ./src/Builder4/PopoverAddObject.vala
-832753c78c58dd0e9d02e8a1734d5f26  ./src/Builder4/PopoverFileDetails.bjs
+e3a9d58333f16ddd814453aaa0307206  ./src/Builder4/PopoverFileDetails.bjs
 2c88309ca76acee7958c4dad9d1785c9  ./src/Builder4/ValaProjectSettings.vala
 73e9fe55f20537ccac914d4364bed4eb  ./src/Builder4/PopoverAddObject.bjs
 b0b017c153127530146f16d8cf6c1da9  ./src/Builder4/FakeServer.vala
 4b58d99802d7ec3c1f3c8248b555aca5  ./src/Builder4/WindowRightPalete.c
-ed31c3ddc41888a821ae4137d3b04ea0  ./src/Builder4/Editor.vala
+d8e1159947c78a43cdb9e0e2bb025c9b  ./src/Builder4/Editor.vala
 767892b464f64dfd14a5f1c2a05908c3  ./src/Builder4/DialogSaveModule.vala
 4d9947a7bc386bf8964465369d590997  ./src/Builder4/GladeuiView.c
 1bae7d19f03e623a181854c282f8274e  ./src/Builder4/PopoverFiles.bjs
 69840a0e89d8affd86a96e21c94bf783  ./src/Builder4/WindowRightPalete.bjs
 828a3fb4d6d8cf0ab3de96ebe8a8856c  ./src/Builder4/EditProject.vala
-6baee9619352c571f099ee34b65b1afe  ./src/Builder4/WindowRooView.vala
+93b9179b24fdbf6147d4fda8d656f6ec  ./src/Builder4/WindowRooView.vala
 bd95ff872bc3552a40b0a3205ae9d85e  ./src/Builder4/WindowLeftProjects.bjs
 6278ccc0f64f5c2757895aacda602251  ./src/Builder4/CompileState.vala
 b820b28e73a88990451a207bb5a71d46  ./src/Builder4/GladeuiView.vala
-680fdbd8a8daa24b0283bebcebc697f8  ./src/Builder4/WindowState.vala
+aa9a7045966bc42dee4f4ff983a18326  ./src/Builder4/WindowState.vala
 1e9b152618fa18adcc4d9231764ae7a4  ./src/Builder4/.deps/PopoverEditor.Po
 a186c7efef54e7e96f2b4488bc63ca49  ./src/Builder4/.deps/ClutterFiles.Po
 dad0227408777290e6c56afc03cf6e12  ./src/Builder4/.deps/WindowRightPalete.Po
@@ -54,12 +54,12 @@ dad0227408777290e6c56afc03cf6e12  ./src/Builder4/.deps/WindowLeftProjects.Po
 3240de25cec411f70a664d60a863a5bf  ./src/Builder4/.deps/ValaProjectSettings.Po
 eac560ca8d937023d780ae709733ee95  ./src/Builder4/.deps/ProjectSettings.Po
 037af1aa13ae4ac7a33522b32713e2a5  ./src/Builder4/ValaCompileResults.vala
-b4ef19eba6bf0ad81db687f350ed0b1e  ./src/Builder4/About.bjs
+3e3d00bd0e80200a0cc6fc13fa21db98  ./src/Builder4/About.bjs
 9f22d2c6d4ac12e071bed5503e4da569  ./src/Builder4/DialogSaveTemplate.vala
 b6cd6ab7659c7b11f49577cd611d3752  ./src/Builder4/ValaProjectSettings.bjs
 0fc9ff3b75b4d5d382666b311ea9df13  ./src/Builder4/WindowAddProp.bjs
 1a56b326a5c38838d23c76f639970fff  ./src/Builder4/PopoverEditor.vala
-dbbe4ac728ab0d96dd578697f909dc5b  ./src/Builder4/PopoverFileDetails.vala
+bc9847c0691a3484ef8410689138b2ef  ./src/Builder4/PopoverFileDetails.vala
 7685b80a99bee07abefa79a88ccd0f52  ./src/Builder4/GladeView.bjs
 7f8ea7da528f85ca83d33075dc5ced8b  ./src/Builder4/PopoverProperty.bjs
 7c9d022989780c6bdcbf75606a15b0e3  ./src/Builder4/PopoverAddProp.vala
@@ -68,21 +68,21 @@ dc7e9528040b3bb485f1e9f69df9b5a6  ./src/Builder4/ClutterFiles.c
 4bfb083983d5e2d3b0b0ec63c2484dc3  ./src/Builder4/WindowLeftProps.vala
 44a1921066534c10a2aac94e63e1dd1a  ./src/Builder4/WindowRightPalete.vala
 93a33b5be53d1eeb3a1017a9c00fbce1  ./src/Builder4/GladeView.vala
-4c67603332b58d27df89a19bb7a0e0ae  ./src/Builder4/About.vala
+100836f321642dcad9f88a7de26f8b50  ./src/Builder4/About.vala
 cd39567c86afd25c6b982e47d4a4850f  ./src/Builder4/ClutterFiles.vala
 fb71cc9a6b22c171ea2034fdcf15aa94  ./src/Builder4/WindowAddProp.vala
 e48faad93a150ef9bdac43a28013e533  ./src/Builder4/MainWindow.bjs
 01ffdd10cc2468f9aebec7db10b4a701  ./src/Builder4/PopoverFiles.vala
 f4ec7a0f8b6f790edd68c023122f9ce2  ./src/Builder4/EditProject.bjs
 4f5829d74221ec5a5df9397aed6f0304  ./src/Builder4/WindowLeftProps.bjs
-a86ac3ede284ff7d13b160f77345fd2f  ./src/Builder4/GtkView.vala
-0337e74ec93ecb3fca0b7c5cecb3448f  ./src/Builder4/WindowLeftTree.vala
+a8893cf5fe985682525a3824da264bb6  ./src/Builder4/GtkView.vala
+d5096476d8dbad146ee469f72ce629c6  ./src/Builder4/WindowLeftTree.vala
 05bcd8817a6e30e5902c651e026e9485  ./src/Builder4/GladeExtras.vala
 85e68f1537240b36dd2cbf8513801e74  ./src/Builder4/DialogConfirm.bjs
 eb5e1a9fab30258c61897d857c9b2c59  ./src/Builder4/ValaCompileErrors.vala
 a22345210449293c071a6dcb79a78e29  ./src/Builder4/StandardErrorDialog.bjs
 8e05d199a2374561069931c9ed6a72a8  ./src/Builder4/ValaProjectSettingsPopover.bjs
-ef7ead26e0b631a4f88ee511088d6548  ./src/Builder4/config1.builder
+1f43d5c06ab1d798504a94838e49311d  ./src/Builder4/config1.builder
 a2ffc54722c828aa87c1aa191b9b4b38  ./src/Builder4/DialogNewComponent.vala
 a33c701665a3fed3395a7e758d0dae65  ./src/Builder4/DialogNewComponent.bjs
 1b7c952469f16493f2c25487febc3da7  ./src/Builder4/PopoverEditor.c
@@ -102,7 +102,7 @@ ea0059f1957b5e6b17ca448dad6191c6  ./src/Palete/RooDatabase.vala
 291fb5ae3d349080e6f4d45e5e81a0f5  ./src/Palete/Gir.vala
 b0aed743a03ab341c9ea05c0f6aa2a07  ./src/Palete/Flutter.c
 84cd93b853d85de68db59bbdbd9b03ff  ./src/Palete/.deps/Flutter.Po
-d03cb8ecf323e18c13f1f8f55eff982d  ./src/Palete/Gtk.vala
+2c955e92d7f22292976da06ea0416ddb  ./src/Palete/Gtk.vala
 a9b62365039509a22b791917e7a6b8ec  ./src/Palete/Palete.vala
 094a17ad6d135983c84ea91a4811354e  ./src/Palete/GirFile.vala
 13c50ca482e3cb9a327bb9d6ef2486d4  ./src/Palete/GirObject.vala
@@ -150,7 +150,7 @@ a22636071c0355ac2b539c56478ba333  ./src/codegen/valaccodecontrolflowmodule.vala
 744032ee219e0eb4970a36bcd7d03d34  ./src/Resources.vala
 3463fa4065b0a0e0d4e1a10a7337ad79  ./src/JsRender/Flutter.vala
 c13e885cb9c5d005596d16fba3c47fa8  ./src/JsRender/Lang.vala
-700a87f22fea5115851068db385d2dce  ./src/JsRender/NodeToVala.vala
+5b7d7361256f9d46a6940d512a528c0e  ./src/JsRender/NodeToVala.vala
 4e36762a259bc0458bcb2b754fe0f619  ./src/JsRender/NodeToGlade.vala
 cca8742ee92c401d1d773f69cec0310d  ./src/JsRender/Flutter.c
 3e2ca7b4ace7de207443c8dfd2b4c3bc  ./src/JsRender/.deps/Flutter.Po
@@ -237,7 +237,7 @@ d743438c4e4b765b7ce4b7e1c98b3b31  ./config.h.in~
 9580a33f9516167b4a1a72fe4fee31ae  ./.gitignore
 737061c1c974f84326be8b9281180af9  ./README.md
 959bffe2993816eb32ec4bc1ec1d5875  ./LICENSE
-95067042d7db431f02b3654283d53dbd  ./autom4te.cache/requests
+7181ace6690fded50a7292d5bed1ac6e  ./autom4te.cache/requests
 4ab5d64b369bac36c4c5ea81ef5e82f1  ./autom4te.cache/traces.2
 4ab5d64b369bac36c4c5ea81ef5e82f1  ./autom4te.cache/traces.1
 35d73aa64bd0b12a1f9172b40e9f62b2  ./autom4te.cache/output.1
index 475cdc7..12b154c 100644 (file)
@@ -5,7 +5,7 @@ b991e5e96350ca96b2495eb33a13ceb9  ./README
 d41d8cd98f00b204e9800998ecf8427e  ./ChangeLog
 dc2a3bd2e90ea29308069119e150d84c  ./src/c/jscore_object_call_as_function.c
 507133162a3bb04e243df355eca871c7  ./src/Main.vala
-c5b44ecef56c7463a019088887730f41  ./src/Builder4/WindowRooView.bjs
+e87201d0bd9587948dbd498d48c7007b  ./src/Builder4/WindowRooView.bjs
 04a4d3c80cdb0c117c1e2113768cb554  ./src/Builder4/DialogTemplateSelect.bjs
 2cdf0a260f64ef0b6d3d74e9423db91f  ./src/Builder4/ProjectSettings.bjs
 254a8daff9072d59e32f03113d02e429  ./src/Builder4/DialogTemplateSelect.vala
@@ -19,31 +19,31 @@ edc8430ca864508d07046aa44624ab22  ./src/Builder4/ProjectSettings.c
 21537c6d1b7ae18e5b893f5720f4f428  ./src/Builder4/ValaCompileErrors.bjs
 82457c9080d838675a3f463ad406edcd  ./src/Builder4/WindowAddProp.c
 983a196b2f390858626a6ecc04366ebc  ./src/Builder4/ValaCompileResults.bjs
-3bafb0c640c225e198969d6feb2d30ba  ./src/Builder4/WindowLeftTree.bjs
+9f300aeb37b41d5c8d581d7bbdc8a2a1  ./src/Builder4/WindowLeftTree.bjs
 4b3ca347619a75423add229246d6934b  ./src/Builder4/ValaProjectSettings.c
-33dfb40081e08b8ccc4e8e367170ac7b  ./src/Builder4/GtkView.bjs
+c3d76b91ed4cb8c862cd926785d5a5ea  ./src/Builder4/GtkView.bjs
 1f8a135ee916234e6e10a92b6fefbbae  ./src/Builder4/DialogSaveTemplate.bjs
 01f94aae4ea0d5d9b6b56f34fa5f79f4  ./src/Builder4/DialogConfirm.vala
 a2d0fafef3cfb748e2643edce607e3d6  ./src/Builder4/PopoverProperty.vala
-ccada5ef4cce7f6634a86d7d31460d2a  ./src/Builder4/MainWindow.vala
-3aca1c873e3b299c6c9d65ade9233008  ./src/Builder4/Editor.bjs
+0ed81e8c4f34a4e2e5f58f89d2beffd3  ./src/Builder4/MainWindow.vala
+997734dc2ed398d316a7938679aa3582  ./src/Builder4/Editor.bjs
 cc34dea3283bdac2fae049d6ed914558  ./src/Builder4/PopoverAddObject.vala
-832753c78c58dd0e9d02e8a1734d5f26  ./src/Builder4/PopoverFileDetails.bjs
+e3a9d58333f16ddd814453aaa0307206  ./src/Builder4/PopoverFileDetails.bjs
 2c88309ca76acee7958c4dad9d1785c9  ./src/Builder4/ValaProjectSettings.vala
 73e9fe55f20537ccac914d4364bed4eb  ./src/Builder4/PopoverAddObject.bjs
 b0b017c153127530146f16d8cf6c1da9  ./src/Builder4/FakeServer.vala
 4b58d99802d7ec3c1f3c8248b555aca5  ./src/Builder4/WindowRightPalete.c
-ed31c3ddc41888a821ae4137d3b04ea0  ./src/Builder4/Editor.vala
+d8e1159947c78a43cdb9e0e2bb025c9b  ./src/Builder4/Editor.vala
 767892b464f64dfd14a5f1c2a05908c3  ./src/Builder4/DialogSaveModule.vala
 4d9947a7bc386bf8964465369d590997  ./src/Builder4/GladeuiView.c
 1bae7d19f03e623a181854c282f8274e  ./src/Builder4/PopoverFiles.bjs
 69840a0e89d8affd86a96e21c94bf783  ./src/Builder4/WindowRightPalete.bjs
 828a3fb4d6d8cf0ab3de96ebe8a8856c  ./src/Builder4/EditProject.vala
-6baee9619352c571f099ee34b65b1afe  ./src/Builder4/WindowRooView.vala
+93b9179b24fdbf6147d4fda8d656f6ec  ./src/Builder4/WindowRooView.vala
 bd95ff872bc3552a40b0a3205ae9d85e  ./src/Builder4/WindowLeftProjects.bjs
 6278ccc0f64f5c2757895aacda602251  ./src/Builder4/CompileState.vala
 b820b28e73a88990451a207bb5a71d46  ./src/Builder4/GladeuiView.vala
-680fdbd8a8daa24b0283bebcebc697f8  ./src/Builder4/WindowState.vala
+aa9a7045966bc42dee4f4ff983a18326  ./src/Builder4/WindowState.vala
 1e9b152618fa18adcc4d9231764ae7a4  ./src/Builder4/.deps/PopoverEditor.Po
 a186c7efef54e7e96f2b4488bc63ca49  ./src/Builder4/.deps/ClutterFiles.Po
 dad0227408777290e6c56afc03cf6e12  ./src/Builder4/.deps/WindowRightPalete.Po
@@ -52,12 +52,12 @@ dad0227408777290e6c56afc03cf6e12  ./src/Builder4/.deps/WindowLeftProjects.Po
 3240de25cec411f70a664d60a863a5bf  ./src/Builder4/.deps/ValaProjectSettings.Po
 eac560ca8d937023d780ae709733ee95  ./src/Builder4/.deps/ProjectSettings.Po
 037af1aa13ae4ac7a33522b32713e2a5  ./src/Builder4/ValaCompileResults.vala
-b4ef19eba6bf0ad81db687f350ed0b1e  ./src/Builder4/About.bjs
+3e3d00bd0e80200a0cc6fc13fa21db98  ./src/Builder4/About.bjs
 9f22d2c6d4ac12e071bed5503e4da569  ./src/Builder4/DialogSaveTemplate.vala
 b6cd6ab7659c7b11f49577cd611d3752  ./src/Builder4/ValaProjectSettings.bjs
 0fc9ff3b75b4d5d382666b311ea9df13  ./src/Builder4/WindowAddProp.bjs
 1a56b326a5c38838d23c76f639970fff  ./src/Builder4/PopoverEditor.vala
-dbbe4ac728ab0d96dd578697f909dc5b  ./src/Builder4/PopoverFileDetails.vala
+bc9847c0691a3484ef8410689138b2ef  ./src/Builder4/PopoverFileDetails.vala
 7685b80a99bee07abefa79a88ccd0f52  ./src/Builder4/GladeView.bjs
 7f8ea7da528f85ca83d33075dc5ced8b  ./src/Builder4/PopoverProperty.bjs
 7c9d022989780c6bdcbf75606a15b0e3  ./src/Builder4/PopoverAddProp.vala
@@ -66,21 +66,21 @@ dc7e9528040b3bb485f1e9f69df9b5a6  ./src/Builder4/ClutterFiles.c
 4bfb083983d5e2d3b0b0ec63c2484dc3  ./src/Builder4/WindowLeftProps.vala
 44a1921066534c10a2aac94e63e1dd1a  ./src/Builder4/WindowRightPalete.vala
 93a33b5be53d1eeb3a1017a9c00fbce1  ./src/Builder4/GladeView.vala
-4c67603332b58d27df89a19bb7a0e0ae  ./src/Builder4/About.vala
+100836f321642dcad9f88a7de26f8b50  ./src/Builder4/About.vala
 cd39567c86afd25c6b982e47d4a4850f  ./src/Builder4/ClutterFiles.vala
 fb71cc9a6b22c171ea2034fdcf15aa94  ./src/Builder4/WindowAddProp.vala
 e48faad93a150ef9bdac43a28013e533  ./src/Builder4/MainWindow.bjs
 01ffdd10cc2468f9aebec7db10b4a701  ./src/Builder4/PopoverFiles.vala
 f4ec7a0f8b6f790edd68c023122f9ce2  ./src/Builder4/EditProject.bjs
 4f5829d74221ec5a5df9397aed6f0304  ./src/Builder4/WindowLeftProps.bjs
-a86ac3ede284ff7d13b160f77345fd2f  ./src/Builder4/GtkView.vala
-0337e74ec93ecb3fca0b7c5cecb3448f  ./src/Builder4/WindowLeftTree.vala
+a8893cf5fe985682525a3824da264bb6  ./src/Builder4/GtkView.vala
+d5096476d8dbad146ee469f72ce629c6  ./src/Builder4/WindowLeftTree.vala
 05bcd8817a6e30e5902c651e026e9485  ./src/Builder4/GladeExtras.vala
 85e68f1537240b36dd2cbf8513801e74  ./src/Builder4/DialogConfirm.bjs
 eb5e1a9fab30258c61897d857c9b2c59  ./src/Builder4/ValaCompileErrors.vala
 a22345210449293c071a6dcb79a78e29  ./src/Builder4/StandardErrorDialog.bjs
 8e05d199a2374561069931c9ed6a72a8  ./src/Builder4/ValaProjectSettingsPopover.bjs
-ef7ead26e0b631a4f88ee511088d6548  ./src/Builder4/config1.builder
+1f43d5c06ab1d798504a94838e49311d  ./src/Builder4/config1.builder
 a2ffc54722c828aa87c1aa191b9b4b38  ./src/Builder4/DialogNewComponent.vala
 a33c701665a3fed3395a7e758d0dae65  ./src/Builder4/DialogNewComponent.bjs
 1b7c952469f16493f2c25487febc3da7  ./src/Builder4/PopoverEditor.c
@@ -100,7 +100,7 @@ ea0059f1957b5e6b17ca448dad6191c6  ./src/Palete/RooDatabase.vala
 291fb5ae3d349080e6f4d45e5e81a0f5  ./src/Palete/Gir.vala
 b0aed743a03ab341c9ea05c0f6aa2a07  ./src/Palete/Flutter.c
 84cd93b853d85de68db59bbdbd9b03ff  ./src/Palete/.deps/Flutter.Po
-d03cb8ecf323e18c13f1f8f55eff982d  ./src/Palete/Gtk.vala
+2c955e92d7f22292976da06ea0416ddb  ./src/Palete/Gtk.vala
 a9b62365039509a22b791917e7a6b8ec  ./src/Palete/Palete.vala
 094a17ad6d135983c84ea91a4811354e  ./src/Palete/GirFile.vala
 13c50ca482e3cb9a327bb9d6ef2486d4  ./src/Palete/GirObject.vala
@@ -148,7 +148,7 @@ a22636071c0355ac2b539c56478ba333  ./src/codegen/valaccodecontrolflowmodule.vala
 744032ee219e0eb4970a36bcd7d03d34  ./src/Resources.vala
 3463fa4065b0a0e0d4e1a10a7337ad79  ./src/JsRender/Flutter.vala
 c13e885cb9c5d005596d16fba3c47fa8  ./src/JsRender/Lang.vala
-700a87f22fea5115851068db385d2dce  ./src/JsRender/NodeToVala.vala
+5b7d7361256f9d46a6940d512a528c0e  ./src/JsRender/NodeToVala.vala
 4e36762a259bc0458bcb2b754fe0f619  ./src/JsRender/NodeToGlade.vala
 cca8742ee92c401d1d773f69cec0310d  ./src/JsRender/Flutter.c
 3e2ca7b4ace7de207443c8dfd2b4c3bc  ./src/JsRender/.deps/Flutter.Po
index b7a439e..3eda9d0 100644 (file)
@@ -1,3 +1,16 @@
+roobuilder (4.4.1) UNRELEASED; urgency=medium
+
+  * fix issue with old js files using user defined properties
+  * Project properties now shows full path 
+  * Project properties tidy up
+  * goto line now works better (from errors)
+  * clicking code view opens up correct node and shows properties.
+  * segfault on invalid properties fixed.
+  * add icon only shown on nodes that accept children
+  * Gtk.MenuItem and children auto have .show() added to code
+  
+ -- Alan <<alan@roojs.com>  Wed, 31 Aug 2022 17:22:23 +0800
+
 roobuilder (4.4.0) unstable; urgency=medium
 
   * slightly better search boxes
index 0dbea8c..58cae1e 100644 (file)
@@ -1,3 +1,3 @@
-roobuilder-dbgsym_4.4.0_amd64.ddeb debug optional automatic=yes
-roobuilder_4.4.0_amd64.buildinfo unknown optional
-roobuilder_4.4.0_amd64.deb unknown optional
+roobuilder-dbgsym_4.4.1_amd64.ddeb debug optional automatic=yes
+roobuilder_4.4.1_amd64.buildinfo unknown optional
+roobuilder_4.4.1_amd64.deb unknown optional
diff --git a/src/Builder4/ClutterFiles.bjs b/src/Builder4/ClutterFiles.bjs
deleted file mode 100644 (file)
index bfea38a..0000000
+++ /dev/null
@@ -1,519 +0,0 @@
-{
- "build_module" : "builder",
- "items" : [
-  {
-   "# Gdk.Pixbuf missing_thumb_pixbuf" : "null",
-   "# Gee.ArrayList<Object> fileitems" : "new Gee.ArrayList<Object>()",
-   "$ xns" : "Clutter",
-   "@ void open" : "(JsRender.JsRender file)",
-   "Clutter.ScrollMode scroll_mode" : "Clutter.ScrollMode.VERTICALLY",
-   "Project.Project project" : "",
-   "bool reactive" : true,
-   "id" : "ClutterFiles",
-   "items" : [
-    {
-     "$ reactive" : true,
-     "$ xns" : "Clutter",
-     "* init" : [
-      "",
-      "this.el.add_constraint(",
-      "    new Clutter.BindConstraint(_this.el,Clutter.BindCoordinate.SIZE, 0.0f)",
-      ");",
-      "this.el.set_position(0,0);",
-      " "
-     ],
-     "* pack" : "add_child",
-     "id" : "project_title",
-     "items" : [
-      {
-       "$ orientation" : "Clutter.FlowOrientation.HORIZONTAL",
-       "$ xns" : "Clutter",
-       "* prop" : "layout_manager",
-       "boolean homogeneous" : false,
-       "column_spacing" : 20,
-       "id" : "project_title_manager",
-       "row_spacing" : 5,
-       "xtype" : "FlowLayout"
-      },
-      {
-       "$ xns" : "Clutter",
-       "* prop" : "layout_manager",
-       "xtype" : "FixedLayout"
-      },
-      {
-       "$ xns" : "Clutter",
-       "* ctor" : "new Clutter.Text.full(\"Sans 20px\", \"\",  Clutter.Color.from_string(\"#eee\"))",
-       "* pack" : "add_child",
-       "boolean x_expand" : false,
-       "float x" : "0.0f",
-       "float y" : "10.0f",
-       "id" : "project_title_name",
-       "xtype" : "Text"
-      },
-      {
-       "$ xns" : "Clutter",
-       "* ctor" : "new Clutter.Text.full(\"Sans 10px\", \"\",  Clutter.Color.from_string(\"#ccc\"))",
-       "* pack" : "add_child",
-       "float x" : "0.0f",
-       "float y" : "35.0f",
-       "id" : "project_title_path",
-       "xtype" : "Text"
-      }
-     ],
-     "xtype" : "Actor"
-    },
-    {
-     "# Gdk.Pixbuf missing_thumb_pixbuf" : "null",
-     "# Gee.ArrayList<Xcls_fileitem> fileitems" : "new Gee.ArrayList<Xcls_fileitem>()",
-     "$ xns" : "Clutter",
-     "* pack" : "add_child",
-     "Clutter.ScrollMode scroll_mode" : "Clutter.ScrollMode.VERTICALLY",
-     "bool reactive" : true,
-     "id" : "scroller",
-     "items" : [
-      {
-       "$ reactive" : true,
-       "$ xns" : "Clutter",
-       "* init" : [
-        "",
-        "this.el.add_constraint(",
-        "    new Clutter.BindConstraint(_this.el,Clutter.BindCoordinate.SIZE, 0.0f)",
-        ");",
-        "",
-        " "
-       ],
-       "* pack" : "add_child",
-       "id" : "filelayout",
-       "items" : [
-        {
-         "$ orientation" : "Clutter.FlowOrientation.HORIZONTAL",
-         "$ xns" : "Clutter",
-         "* prop" : "layout_manager",
-         "bool homogeneous" : false,
-         "column_spacing" : 20,
-         "float max_column_width" : "100.0f",
-         "id" : "filelayout_manager",
-         "row_spacing" : 20,
-         "xtype" : "FlowLayout"
-        },
-        {
-         "# JsRender.JsRender file" : "",
-         "$ reactive" : true,
-         "$ xns" : "Clutter",
-         "* args" : "JsRender.JsRender file",
-         "* init" : [
-          "this.file = file;",
-          "this.el.set_size(100,100);"
-         ],
-         "* pack" : true,
-         "id" : "*fileitem",
-         "items" : [
-          {
-           "$ xns" : "Clutter",
-           "* prop" : "layout_manager",
-           "orientation" : "Clutter.Orientation.VERTICAL",
-           "spacing" : 4,
-           "xtype" : "BoxLayout"
-          },
-          {
-           "$ margin_left" : 5,
-           "$ margin_right" : 5,
-           "$ margin_top" : 5,
-           "$ x_align" : "Clutter.ActorAlign.START",
-           "$ xns" : "Clutter",
-           "$ y_align" : "Clutter.ActorAlign.START",
-           "* args" : "JsRender.JsRender file",
-           "* init" : [
-            "{",
-            "    Gdk.Pixbuf pixbuf= null;",
-            "    ",
-            "    var fname = file.getIconFileName(false);",
-            "",
-            "    try {",
-            "        if (FileUtils.test(fname, FileTest.EXISTS)) {",
-            "            pixbuf = new Gdk.Pixbuf.from_file(fname);",
-            "        } ",
-            "    } catch (Error e) {",
-            "        // noop",
-            "    ",
-            "    }",
-            "    if (pixbuf == null) {",
-            "        ",
-            "        try {",
-            "            if (_this.missing_thumb_pixbuf == null) {",
-            "                    var icon_theme = Gtk.IconTheme.get_default ();",
-            "                    _this.missing_thumb_pixbuf = icon_theme.load_icon (\"package-x-generic\", 92, 0);",
-            "                    _this.missing_thumb_pixbuf.ref();",
-            "                }",
-            "                pixbuf = _this.missing_thumb_pixbuf;",
-            "",
-            "        } catch (Error e) {",
-            "            // noop?",
-            "        }",
-            "    }",
-            "    try {",
-            "        var img = new Clutter.Image();",
-            "        img.set_data(pixbuf.get_pixels(),   ",
-            "                            pixbuf.has_alpha ",
-            "                              ? Cogl.PixelFormat.RGBA_8888",
-            "                              : Cogl.PixelFormat.RGB_888,",
-            "                            pixbuf.get_width (),",
-            "                pixbuf.get_height (),",
-            "                            pixbuf.get_rowstride ()",
-            "        );",
-            "        this.el.set_content(img);",
-            "    } catch (Error e) {",
-            "        // noop?",
-            "    }",
-            "     // should probably do smarter scaling...",
-            "    ",
-            "    ",
-            "    this.el.set_size(90, 70);",
-            "}",
-            ""
-           ],
-           "* pack" : "add_child",
-           "bool x_expand" : false,
-           "bool y_expand" : false,
-           "id" : "+image",
-           "xtype" : "Actor"
-          },
-          {
-           "$ x_align" : "Clutter.ActorAlign.START",
-           "$ xns" : "Clutter",
-           "$ y_align" : "Clutter.ActorAlign.START",
-           "* args" : "JsRender.JsRender file",
-           "* ctor" : "new Clutter.Text.full(\"Sans 10px\", file.nickType(),  Clutter.Color.from_string(\"#fff\"))",
-           "* pack" : "add_child",
-           "bool x_expand" : false,
-           "bool y_expand" : false,
-           "id" : "+typetitle",
-           "xtype" : "Text"
-          },
-          {
-           "$ x_align" : "Clutter.ActorAlign.START",
-           "$ xns" : "Clutter",
-           "$ y_align" : "Clutter.ActorAlign.START",
-           "* args" : "JsRender.JsRender file",
-           "* ctor" : "new Clutter.Text.full(\"Sans 10px\", file.nickNameSplit(),  Clutter.Color.from_string(\"#fff\"))",
-           "* pack" : "add_child",
-           "bool x_expand" : false,
-           "bool y_expand" : false,
-           "id" : "+title",
-           "xtype" : "Text"
-          }
-         ],
-         "listeners" : {
-          "button_press_event" : [
-           "  ( event ) => {",
-           "    _this.open(this.file);",
-           "    return false;",
-           "} "
-          ],
-          "enter_event" : [
-           "(  event)  => {",
-           "    this.el.background_color =   Clutter.Color.from_string(\"#333\");",
-           "    this.title.el.background_color =   Clutter.Color.from_string(\"#fff\");",
-           "    this.typetitle.el.background_color =   Clutter.Color.from_string(\"#fff\");",
-           "    this.title.el.color =   Clutter.Color.from_string(\"#000\");",
-           "    this.typetitle.el.color =   Clutter.Color.from_string(\"#000\");",
-           "    ",
-           "        return false;",
-           "}"
-          ],
-          "leave_event" : [
-           "(  event)  => {",
-           "    this.el.background_color =   Clutter.Color.from_string(\"#000\");",
-           "     this.title.el.background_color =   Clutter.Color.from_string(\"#000\");",
-           "    this.typetitle.el.background_color =   Clutter.Color.from_string(\"#000\");",
-           "    this.title.el.color =   Clutter.Color.from_string(\"#fff\");",
-           "    this.typetitle.el.color =   Clutter.Color.from_string(\"#fff\");",
-           "   ",
-           "    ",
-           "    return false;",
-           "}"
-          ]
-         },
-         "xtype" : "Actor"
-        },
-        {
-         "$ reactive" : true,
-         "$ xns" : "Clutter",
-         "* args" : "string folderpath",
-         "* init" : [
-          " ",
-          "//this.el.set_size(100,100);"
-         ],
-         "* pack" : true,
-         "id" : "*folderitem",
-         "items" : [
-          {
-           "$ xns" : "Clutter",
-           "* prop" : "layout_manager",
-           "orientation" : "Clutter.Orientation.VERTICAL",
-           "spacing" : 2,
-           "xtype" : "BoxLayout"
-          },
-          {
-           "$ x_align" : "Clutter.ActorAlign.START",
-           "$ x_expand" : true,
-           "$ xns" : "Clutter",
-           "$ y_align" : "Clutter.ActorAlign.START",
-           "* args" : "string folderpath",
-           "* ctor" : "new Clutter.Text.full(\"Sans bold 14px\", GLib.Path.get_basename(folderpath),  Clutter.Color.from_string(\"#fff\"))",
-           "* pack" : "add_child",
-           "bool y_expand" : false,
-           "id" : "+foldertitle",
-           "xtype" : "Text"
-          },
-          {
-           "$ xns" : "Clutter",
-           "* args" : "string filepath",
-           "* ctor" : "new Clutter.Text.full(\"Sans 10px\", GLib.Path.get_basename(filepath),  Clutter.Color.from_string(\"#fff\"))",
-           "* init" : [
-            "{",
-            "\tthis.filepath = filepath;",
-            "}",
-            ""
-           ],
-           "Clutter.ActorAlign x_align" : "Clutter.ActorAlign.START",
-           "Clutter.ActorAlign y_align" : "Clutter.ActorAlign.START",
-           "bool reactive" : true,
-           "bool x_expand" : true,
-           "bool y_expand" : true,
-           "id" : "*folderfile",
-           "listeners" : {
-            "button_press_event" : [
-             "  (  event) => {",
-             "    ",
-             "   var f = JsRender.JsRender.factory(\"PlainFile\", _this.project, this.filepath);",
-             "    _this.open(f);",
-             "    return false;",
-             "} "
-            ],
-            "enter_event" : [
-             "(  event)  => {",
-             "    this.el.background_color =   Clutter.Color.from_string(\"#fff\");",
-             "    this.el.color =  Clutter.Color.from_string(\"#000\");",
-             "        return false;",
-             "}"
-            ],
-            "leave_event" : [
-             "(  event)  => {",
-             "    this.el.background_color =   Clutter.Color.from_string(\"#000\");",
-             "     this.el.color =   Clutter.Color.from_string(\"#fff\");",
-             "    return false;",
-             "}"
-            ]
-           },
-           "string filepath" : "",
-           "xtype" : "Text"
-          }
-         ],
-         "xtype" : "Actor"
-        }
-       ],
-       "xtype" : "Actor"
-      }
-     ],
-     "listeners" : {
-      "scroll_event" : [
-       "( event) => {",
-       "    print(\"scroll event\\n\");",
-       "    var y = _this.filelayout.el.y;",
-       "    var dir = event.direction;",
-       "    ",
-       "    var last_child_bottom = _this.filelayout.el.last_child.y +  _this.filelayout.el.last_child.height;",
-       "    var bottompos = -1 * (  last_child_bottom - (0.5f * this.el.height));",
-       "    ",
-       "    switch (dir) {",
-       "        case Clutter.ScrollDirection.UP:",
-       "            print(\"Scroll up by %f\\n\", event.y);",
-       "            y += event.y /2;",
-       "            y = float.min(0, y); // ",
-       "            break;",
-       "            ",
-       "        case Clutter.ScrollDirection.DOWN:",
-       "            print(\"Scroll down by %f\\n\", event.y);",
-       "            y -= event.y /2 ;",
-       "            y = float.max(bottompos, y);",
-       "            ",
-       "            ",
-       "            break;",
-       "     \t  case Clutter.ScrollDirection.SMOOTH:",
-       "     \t    double delta_x, delta_y;",
-       "     \t    event.get_scroll_delta(out delta_x, out delta_y);",
-       "            //print(\"Scroll SMOOTH? by %f\\n\",  delta_y * event.y);",
-       "            y += ((float)delta_y * event.y * -1.0f) /2 ;",
-       "            y = float.max(bottompos, y);",
-       "            y = float.min(0, y); // ",
-       "                       ",
-       "            break;",
-       "        default:",
-       "\t        print(\"scroll event = bad direction %s\\n\", dir.to_string());",
-       "            return false;",
-       "    }",
-       "    // range of scroll -- can go up -- eg.. -ve value.",
-       "    ",
-       "",
-       "    ",
-       "   print(\"Set scroll to %f (lcb=%f / height = %f)\\n\", y, last_child_bottom, this.el.height);",
-       "   ",
-       "    _this.filelayout.el.y = y;",
-       "    return true;",
-       "          ",
-       "}"
-      ]
-     },
-     "xtype" : "ScrollActor"
-    }
-   ],
-   "xtype" : "Actor",
-   "| void clearFiles" : [
-    "() {",
-    "    ",
-    "    this.filelayout.el.remove_all_children();",
-    "    // we need to unref all the chidren that we loaded though...",
-    "    ",
-    "}",
-    " "
-   ],
-   "| void loadProject" : [
-    "(Project.Project pr) {",
-    "    // list all the files, and create new Xcls_fileitem for each one.",
-    "    ",
-    "    this.project = pr;",
-    "    ",
-    "    ",
-    "    // LEAK --- we should unref all the chilren...",
-    "    this.filelayout.el.y = 0;",
-    "    this.clearFiles();",
-    "    ",
-    "    print(\"clutter files - load project: \" + pr.name +\"\\n\");",
-    "    // should unref.. them hopefully.",
-    "    ",
-    "    this.project_title_name.el.text = pr.name;",
-    "    this.project_title_path.el.text = pr.firstPath();",
-    "    ",
-    "    // file items contains a reference until we reload ...",
-    "    this.fileitems = new Gee.ArrayList<Object>();",
-    "",
-    "    ",
-    "",
-    "    var fiter = pr.sortedFiles().list_iterator();",
-    "    while (fiter.next()) {",
-    "        var a = new Xcls_fileitem(this,fiter.get());",
-    "        this.fileitems.add(a);",
-    "",
-    "//        a.ref();",
-    "        print(\"add to clutter file view: \" + fiter.get().name + \"\\n\");",
-    "        this.filelayout.el.add_child(a.el);",
-    "    }",
-    "    ",
-    "    // folders...",
-    "    ",
-    "    if (!(pr is Project.Gtk)) {",
-    "        print (\"not gtk... skipping files\");",
-    "        return;",
-    "    }",
-    "    var gpr = (Project.Gtk)pr;",
-    "     var def = gpr.compilegroups.get(\"_default_\");",
-    "     // not sure why the above is returng null!??",
-    "     if (def == null) {",
-    " \t\tdef = new Project.GtkValaSettings(\"_default_\"); ",
-    " \t\tgpr.compilegroups.set(\"_default_\", def);",
-    "     }",
-    "\t var items  = def.sources;",
-    "\t\t ",
-    "\t\t ",
-    "\t ",
-    "\tfor(var i =0 ; i < items.size; i++) {",
-    "\t    print (\"cheking folder %s\\n\", items.get(i));",
-    "\t     var files = gpr.filesForOpen(items.get(i));",
-    "\t     if (files.size < 1) {",
-    "\t        continue;",
-    "\t     }",
-    "",
-    "\t    // add the directory... items.get(i);",
-    "\t    var x = new Xcls_folderitem(this,items.get(i));",
-    "\t    this.fileitems.add(x);",
-    "\t    this.filelayout.el.add_child(x.el);",
-    "\t    ",
-    "\t    for(var j =0 ; j < files.size; j++) {",
-    "\t        print (\"adding file %s\\n\", files.get(j));",
-    "\t    ",
-    "\t        var y = new Xcls_folderfile(this, files.get(j));",
-    "\t        this.fileitems.add(y);",
-    "\t        x.el.add_child(y.el);",
-    "",
-    "\t        // add file to files.get(j);",
-    "\t        ",
-    "\t    }",
-    "\t    ",
-    "\t    ",
-    "\t    //this.el.set_value(citer, 1,   items.get(i) );",
-    "\t}",
-    "     ",
-    "   ",
-    "    ",
-    "    this.el.show();",
-    "}",
-    ""
-   ],
-   "| void set_size" : [
-    "(float w, float h) ",
-    "{",
-    "    ",
-    "     // called by window resize... with is alreaddy -50 (for the buttons?)",
-    "     ",
-    "",
-    "",
-    "",
-    "     if (this.el == null) {",
-    "        print(\"object not ready yet?\");",
-    "        return;",
-    "    }",
-    "    ",
-    "    print(\"recv width %f, filelayoutw = %f\", w, w-200);",
-    "    ",
-    "    w = GLib.Math.floorf ( w/120.0f) * 120.0f;",
-    "    ",
-    "    ",
-    "    ",
-    "    ",
-    "   //_this.filelayout_manager.el.max_column_width = w - 200;",
-    "   _this.filelayout.el.width = w ;",
-    "   ",
-    "    this.el.set_size(",
-    "           // this.el.get_stage().width-150,",
-    "           w,",
-    "           h  // this.el.get_stage().height",
-    "    );",
-    "    ",
-    "    // 100 right for buttons ..",
-    "    this.el.set_position(75,0);",
-    "   ",
-    "   ",
-    "   this.scroller.el.set_size(",
-    "           // this.el.get_stage().width-150,",
-    "           w,",
-    "           h  // this.el.get_stage().height",
-    "    );",
-    "    ",
-    "    // 100 right for buttons ..",
-    "    this.scroller.el.set_position(0,50);",
-    "    // scroll...",
-    "    _this.filelayout.el.y = 0.0f;",
-    "    ",
-    "}",
-    ""
-   ]
-  }
- ],
- "modOrder" : "",
- "name" : "ClutterFiles",
- "parent" : "",
- "path" : "/home/alan/gitlive/roobuilder/src/Builder4/ClutterFiles.bjs",
- "permname" : "",
- "title" : ""
-}
\ No newline at end of file
diff --git a/src/Builder4/ClutterFiles.vala b/src/Builder4/ClutterFiles.vala
deleted file mode 100644 (file)
index f90aa8d..0000000
+++ /dev/null
@@ -1,652 +0,0 @@
-static Xcls_ClutterFiles  _ClutterFiles;
-
-public class Xcls_ClutterFiles : Object
-{
-    public Clutter.Actor el;
-    private Xcls_ClutterFiles  _this;
-
-    public static Xcls_ClutterFiles singleton()
-    {
-        if (_ClutterFiles == null) {
-            _ClutterFiles= new Xcls_ClutterFiles();
-        }
-        return _ClutterFiles;
-    }
-    public Xcls_project_title project_title;
-    public Xcls_project_title_manager project_title_manager;
-    public Xcls_project_title_name project_title_name;
-    public Xcls_project_title_path project_title_path;
-    public Xcls_scroller scroller;
-    public Xcls_filelayout filelayout;
-    public Xcls_filelayout_manager filelayout_manager;
-
-        // my vars (def)
-
-    // ctor
-    public Xcls_ClutterFiles()
-    {
-        _this = this;
-        this.el = new Clutter.Actor();
-
-        // my vars (dec)
-        var child_0 = new Xcls_project_title( _this );
-        child_0.ref();
-        this.el.add_child (  child_0.el  );
-        var child_1 = new Xcls_scroller( _this );
-        child_1.ref();
-        this.el.add_child (  child_1.el  );
-    }
-
-    // user defined functions
-    public void clearFiles () {
-        
-        this.filelayout.el.remove_all_children();
-        // we need to unref all the chidren that we loaded though...
-        
-    }
-    public void loadProject (Project.Project pr) {
-        // list all the files, and create new Xcls_fileitem for each one.
-        
-        this.project = pr;
-        
-        
-        // LEAK --- we should unref all the chilren...
-        this.filelayout.el.y = 0;
-        this.clearFiles();
-        
-        print("clutter files - load project: " + pr.name +"\n");
-        // should unref.. them hopefully.
-        
-        this.project_title_name.el.text = pr.name;
-        this.project_title_path.el.text = pr.firstPath();
-        
-        // file items contains a reference until we reload ...
-        this.fileitems = new Gee.ArrayList<Object>();
-    
-        
-    
-        var fiter = pr.sortedFiles().list_iterator();
-        while (fiter.next()) {
-            var a = new Xcls_fileitem(this,fiter.get());
-            this.fileitems.add(a);
-    
-    //        a.ref();
-            print("add to clutter file view: " + fiter.get().name + "\n");
-            this.filelayout.el.add_child(a.el);
-        }
-        
-        // folders...
-        
-        if (!(pr is Project.Gtk)) {
-            print ("not gtk... skipping files");
-            return;
-        }
-        var gpr = (Project.Gtk)pr;
-         var def = gpr.compilegroups.get("_default_");
-         // not sure why the above is returng null!??
-         if (def == null) {
-               def = new Project.GtkValaSettings("_default_"); 
-               gpr.compilegroups.set("_default_", def);
-         }
-        var items  = def.sources;
-                
-                
-        
-       for(var i =0 ; i < items.size; i++) {
-           print ("cheking folder %s\n", items.get(i));
-            var files = gpr.filesForOpen(items.get(i));
-            if (files.size < 1) {
-               continue;
-            }
-    
-           // add the directory... items.get(i);
-           var x = new Xcls_folderitem(this,items.get(i));
-           this.fileitems.add(x);
-           this.filelayout.el.add_child(x.el);
-           
-           for(var j =0 ; j < files.size; j++) {
-               print ("adding file %s\n", files.get(j));
-           
-               var y = new Xcls_folderfile(this, files.get(j));
-               this.fileitems.add(y);
-               x.el.add_child(y.el);
-    
-               // add file to files.get(j);
-               
-           }
-           
-           
-           //this.el.set_value(citer, 1,   items.get(i) );
-       }
-         
-       
-        
-        this.el.show();
-    }
-    public void set_size (float w, float h) 
-    {
-        
-         // called by window resize... with is alreaddy -50 (for the buttons?)
-         
-    
-    
-    
-         if (this.el == null) {
-            print("object not ready yet?");
-            return;
-        }
-        
-        print("recv width %f, filelayoutw = %f", w, w-200);
-        
-        w = GLib.Math.floorf ( w/120.0f) * 120.0f;
-        
-        
-        
-        
-       //_this.filelayout_manager.el.max_column_width = w - 200;
-       _this.filelayout.el.width = w ;
-       
-        this.el.set_size(
-               // this.el.get_stage().width-150,
-               w,
-               h  // this.el.get_stage().height
-        );
-        
-        // 100 right for buttons ..
-        this.el.set_position(75,0);
-       
-       
-       this.scroller.el.set_size(
-               // this.el.get_stage().width-150,
-               w,
-               h  // this.el.get_stage().height
-        );
-        
-        // 100 right for buttons ..
-        this.scroller.el.set_position(0,50);
-        // scroll...
-        _this.filelayout.el.y = 0.0f;
-        
-    }
-    public class Xcls_project_title : Object
-    {
-        public Clutter.Actor el;
-        private Xcls_ClutterFiles  _this;
-
-
-            // my vars (def)
-
-        // ctor
-        public Xcls_project_title(Xcls_ClutterFiles _owner )
-        {
-            _this = _owner;
-            _this.project_title = this;
-            this.el = new Clutter.Actor();
-
-            // my vars (dec)
-            var child_0 = new Xcls_project_title_manager( _this );
-            child_0.ref();
-            this.el.layout_manager = child_0.el;
-            var child_1 = new Xcls_FixedLayout4( _this );
-            child_1.ref();
-            this.el.layout_manager = child_1.el;
-            var child_2 = new Xcls_project_title_name( _this );
-            child_2.ref();
-            this.el.add_child (  child_2.el  );
-            var child_3 = new Xcls_project_title_path( _this );
-            child_3.ref();
-            this.el.add_child (  child_3.el  );
-        }
-
-        // user defined functions
-    }
-    public class Xcls_project_title_manager : Object
-    {
-        public Clutter.FlowLayout el;
-        private Xcls_ClutterFiles  _this;
-
-
-            // my vars (def)
-
-        // ctor
-        public Xcls_project_title_manager(Xcls_ClutterFiles _owner )
-        {
-            _this = _owner;
-            _this.project_title_manager = this;
-            this.el = new Clutter.FlowLayout();
-
-            // my vars (dec)
-        }
-
-        // user defined functions
-    }
-
-    public class Xcls_FixedLayout4 : Object
-    {
-        public Clutter.FixedLayout el;
-        private Xcls_ClutterFiles  _this;
-
-
-            // my vars (def)
-
-        // ctor
-        public Xcls_FixedLayout4(Xcls_ClutterFiles _owner )
-        {
-            _this = _owner;
-            this.el = new Clutter.FixedLayout();
-
-            // my vars (dec)
-        }
-
-        // user defined functions
-    }
-
-    public class Xcls_project_title_name : Object
-    {
-        public Clutter.Text el;
-        private Xcls_ClutterFiles  _this;
-
-
-            // my vars (def)
-
-        // ctor
-        public Xcls_project_title_name(Xcls_ClutterFiles _owner )
-        {
-            _this = _owner;
-            _this.project_title_name = this;
-            this.el = new Clutter.Text.full("Sans 20px", "",  Clutter.Color.from_string("#eee"));
-
-            // my vars (dec)
-        }
-
-        // user defined functions
-    }
-
-    public class Xcls_project_title_path : Object
-    {
-        public Clutter.Text el;
-        private Xcls_ClutterFiles  _this;
-
-
-            // my vars (def)
-
-        // ctor
-        public Xcls_project_title_path(Xcls_ClutterFiles _owner )
-        {
-            _this = _owner;
-            _this.project_title_path = this;
-            this.el = new Clutter.Text.full("Sans 10px", "",  Clutter.Color.from_string("#ccc"));
-
-            // my vars (dec)
-        }
-
-        // user defined functions
-    }
-
-
-    public class Xcls_scroller : Object
-    {
-        public Clutter.ScrollActor el;
-        private Xcls_ClutterFiles  _this;
-
-
-            // my vars (def)
-
-        // ctor
-        public Xcls_scroller(Xcls_ClutterFiles _owner )
-        {
-            _this = _owner;
-            _this.scroller = this;
-            this.el = new Clutter.ScrollActor();
-
-            // my vars (dec)
-            var child_0 = new Xcls_filelayout( _this );
-            child_0.ref();
-            this.el.add_child (  child_0.el  );
-
-            //listeners
-            this.el.scroll_event.connect( ( event) => {
-                print("scroll event\n");
-                var y = _this.filelayout.el.y;
-                var dir = event.direction;
-                
-                var last_child_bottom = _this.filelayout.el.last_child.y +  _this.filelayout.el.last_child.height;
-                var bottompos = -1 * (  last_child_bottom - (0.5f * this.el.height));
-                
-                switch (dir) {
-                    case Clutter.ScrollDirection.UP:
-                        print("Scroll up by %f\n", event.y);
-                        y += event.y /2;
-                        y = float.min(0, y); // 
-                        break;
-                        
-                    case Clutter.ScrollDirection.DOWN:
-                        print("Scroll down by %f\n", event.y);
-                        y -= event.y /2 ;
-                        y = float.max(bottompos, y);
-                        
-                        
-                        break;
-                         case Clutter.ScrollDirection.SMOOTH:
-                           double delta_x, delta_y;
-                           event.get_scroll_delta(out delta_x, out delta_y);
-                        //print("Scroll SMOOTH? by %f\n",  delta_y * event.y);
-                        y += ((float)delta_y * event.y * -1.0f) /2 ;
-                        y = float.max(bottompos, y);
-                        y = float.min(0, y); // 
-                                   
-                        break;
-                    default:
-                       print("scroll event = bad direction %s\n", dir.to_string());
-                        return false;
-                }
-                // range of scroll -- can go up -- eg.. -ve value.
-                
-            
-                
-               print("Set scroll to %f (lcb=%f / height = %f)\n", y, last_child_bottom, this.el.height);
-               
-                _this.filelayout.el.y = y;
-                return true;
-                      
-            });
-        }
-
-        // user defined functions
-    }
-    public class Xcls_filelayout : Object
-    {
-        public Clutter.Actor el;
-        private Xcls_ClutterFiles  _this;
-
-
-            // my vars (def)
-
-        // ctor
-        public Xcls_filelayout(Xcls_ClutterFiles _owner )
-        {
-            _this = _owner;
-            _this.filelayout = this;
-            this.el = new Clutter.Actor();
-
-            // my vars (dec)
-            var child_0 = new Xcls_filelayout_manager( _this );
-            child_0.ref();
-            this.el.layout_manager = child_0.el;
-        }
-
-        // user defined functions
-    }
-    public class Xcls_filelayout_manager : Object
-    {
-        public Clutter.FlowLayout el;
-        private Xcls_ClutterFiles  _this;
-
-
-            // my vars (def)
-
-        // ctor
-        public Xcls_filelayout_manager(Xcls_ClutterFiles _owner )
-        {
-            _this = _owner;
-            _this.filelayout_manager = this;
-            this.el = new Clutter.FlowLayout();
-
-            // my vars (dec)
-        }
-
-        // user defined functions
-    }
-
-    public class Xcls_fileitem : Object
-    {
-        public Clutter.Actor el;
-        private Xcls_ClutterFiles  _this;
-
-
-            // my vars (def)
-        public Xcls_image image;
-        public Xcls_typetitle typetitle;
-        public Xcls_title title;
-
-        // ctor
-        public Xcls_fileitem(Xcls_ClutterFiles _owner , JsRender.JsRender file)
-        {
-            _this = _owner;
-            this.el = new Clutter.Actor();
-
-            // my vars (dec)
-            var child_0 = new Xcls_BoxLayout11( _this );
-            child_0.ref();
-            this.el.layout_manager = child_0.el;
-            var child_1 = new Xcls_image( _this ,file);
-            child_1.ref();
-            this.el.add_child (  child_1.el  );
-            this.image =  child_1;
-            var child_2 = new Xcls_typetitle( _this ,file);
-            child_2.ref();
-            this.el.add_child (  child_2.el  );
-            this.typetitle =  child_2;
-            var child_3 = new Xcls_title( _this ,file);
-            child_3.ref();
-            this.el.add_child (  child_3.el  );
-            this.title =  child_3;
-
-            //listeners
-            this.el.button_press_event.connect( ( event ) => {
-                _this.open(this.file);
-                return false;
-            });
-            this.el.enter_event.connect( (  event)  => {
-                this.el.background_color =   Clutter.Color.from_string("#333");
-                this.title.el.background_color =   Clutter.Color.from_string("#fff");
-                this.typetitle.el.background_color =   Clutter.Color.from_string("#fff");
-                this.title.el.color =   Clutter.Color.from_string("#000");
-                this.typetitle.el.color =   Clutter.Color.from_string("#000");
-                
-                    return false;
-            });
-            this.el.leave_event.connect( (  event)  => {
-                this.el.background_color =   Clutter.Color.from_string("#000");
-                 this.title.el.background_color =   Clutter.Color.from_string("#000");
-                this.typetitle.el.background_color =   Clutter.Color.from_string("#000");
-                this.title.el.color =   Clutter.Color.from_string("#fff");
-                this.typetitle.el.color =   Clutter.Color.from_string("#fff");
-               
-                
-                return false;
-            });
-        }
-
-        // user defined functions
-    }
-    public class Xcls_BoxLayout11 : Object
-    {
-        public Clutter.BoxLayout el;
-        private Xcls_ClutterFiles  _this;
-
-
-            // my vars (def)
-
-        // ctor
-        public Xcls_BoxLayout11(Xcls_ClutterFiles _owner )
-        {
-            _this = _owner;
-            this.el = new Clutter.BoxLayout();
-
-            // my vars (dec)
-        }
-
-        // user defined functions
-    }
-
-    public class Xcls_image : Object
-    {
-        public Clutter.Actor el;
-        private Xcls_ClutterFiles  _this;
-
-
-            // my vars (def)
-
-        // ctor
-        public Xcls_image(Xcls_ClutterFiles _owner , JsRender.JsRender file)
-        {
-            _this = _owner;
-            this.el = new Clutter.Actor();
-
-            // my vars (dec)
-        }
-
-        // user defined functions
-    }
-
-    public class Xcls_typetitle : Object
-    {
-        public Clutter.Text el;
-        private Xcls_ClutterFiles  _this;
-
-
-            // my vars (def)
-
-        // ctor
-        public Xcls_typetitle(Xcls_ClutterFiles _owner , JsRender.JsRender file)
-        {
-            _this = _owner;
-            this.el = new Clutter.Text.full("Sans 10px", file.nickType(),  Clutter.Color.from_string("#fff"));
-
-            // my vars (dec)
-        }
-
-        // user defined functions
-    }
-
-    public class Xcls_title : Object
-    {
-        public Clutter.Text el;
-        private Xcls_ClutterFiles  _this;
-
-
-            // my vars (def)
-
-        // ctor
-        public Xcls_title(Xcls_ClutterFiles _owner , JsRender.JsRender file)
-        {
-            _this = _owner;
-            this.el = new Clutter.Text.full("Sans 10px", file.nickNameSplit(),  Clutter.Color.from_string("#fff"));
-
-            // my vars (dec)
-        }
-
-        // user defined functions
-    }
-
-
-    public class Xcls_folderitem : Object
-    {
-        public Clutter.Actor el;
-        private Xcls_ClutterFiles  _this;
-
-
-            // my vars (def)
-        public Xcls_foldertitle foldertitle;
-
-        // ctor
-        public Xcls_folderitem(Xcls_ClutterFiles _owner , string folderpath)
-        {
-            _this = _owner;
-            this.el = new Clutter.Actor();
-
-            // my vars (dec)
-            var child_0 = new Xcls_BoxLayout16( _this );
-            child_0.ref();
-            this.el.layout_manager = child_0.el;
-            var child_1 = new Xcls_foldertitle( _this ,folderpath);
-            child_1.ref();
-            this.el.add_child (  child_1.el  );
-            this.foldertitle =  child_1;
-        }
-
-        // user defined functions
-    }
-    public class Xcls_BoxLayout16 : Object
-    {
-        public Clutter.BoxLayout el;
-        private Xcls_ClutterFiles  _this;
-
-
-            // my vars (def)
-
-        // ctor
-        public Xcls_BoxLayout16(Xcls_ClutterFiles _owner )
-        {
-            _this = _owner;
-            this.el = new Clutter.BoxLayout();
-
-            // my vars (dec)
-        }
-
-        // user defined functions
-    }
-
-    public class Xcls_foldertitle : Object
-    {
-        public Clutter.Text el;
-        private Xcls_ClutterFiles  _this;
-
-
-            // my vars (def)
-
-        // ctor
-        public Xcls_foldertitle(Xcls_ClutterFiles _owner , string folderpath)
-        {
-            _this = _owner;
-            this.el = new Clutter.Text.full("Sans bold 14px", GLib.Path.get_basename(folderpath),  Clutter.Color.from_string("#fff"));
-
-            // my vars (dec)
-        }
-
-        // user defined functions
-    }
-
-    public class Xcls_folderfile : Object
-    {
-        public Clutter.Text el;
-        private Xcls_ClutterFiles  _this;
-
-
-            // my vars (def)
-
-        // ctor
-        public Xcls_folderfile(Xcls_ClutterFiles _owner , string filepath)
-        {
-            _this = _owner;
-            this.el = new Clutter.Text.full("Sans 10px", GLib.Path.get_basename(filepath),  Clutter.Color.from_string("#fff"));
-
-            // my vars (dec)
-
-            //listeners
-            this.el.button_press_event.connect( (  event) => {
-                
-               var f = JsRender.JsRender.factory("PlainFile", _this.project, this.filepath);
-                _this.open(f);
-                return false;
-            });
-            this.el.enter_event.connect( (  event)  => {
-                this.el.background_color =   Clutter.Color.from_string("#fff");
-                this.el.color =  Clutter.Color.from_string("#000");
-                    return false;
-            });
-            this.el.leave_event.connect( (  event)  => {
-                this.el.background_color =   Clutter.Color.from_string("#000");
-                 this.el.color =   Clutter.Color.from_string("#fff");
-                return false;
-            });
-        }
-
-        // user defined functions
-    }
-
-
-
-
-}
index 6d8401f..8bf9cbd 100644 (file)
@@ -1091,6 +1091,7 @@ public class Editor : Object
             // set gobject values
             this.el.always_show_image = true;
             this.el.visible = false;
+            this.el.show();
 
             //listeners
             this.el.button_press_event.connect( () => {
@@ -1354,6 +1355,7 @@ public class Editor : Object
 
             // set gobject values
             this.el.label = "Case Sensitive";
+            this.el.show();
 
             // init method
 
@@ -1384,6 +1386,7 @@ public class Editor : Object
 
             // set gobject values
             this.el.label = "Regex";
+            this.el.show();
 
             // init method
 
@@ -1414,6 +1417,7 @@ public class Editor : Object
 
             // set gobject values
             this.el.label = "Multi-line (add \\n)";
+            this.el.show();
 
             // init method
 
index 5d46166..fe4fb3d 100644 (file)
     "    }",
     "    ",
     "    ",
-    "    var filename = this.file.getIconFileName(false);",
-    "    ",
+    "",
     "    var  win = this.el.get_parent_window();",
     "    var width = win.get_width();",
     "    var height = win.get_height();",
     "    try {",
     "         Gdk.Pixbuf screenshot = Gdk.pixbuf_get_from_window(win, 0, 0, width, height); // this.el.position?",
-    "         screenshot.save(filename,\"png\");",
+    "         this.file.writeIcon(screenshot);",
     "    } catch (Error e) {",
     "        ",
     "    }",
index 7991ac6..af57595 100644 (file)
@@ -290,14 +290,13 @@ public class Xcls_GtkView : Object
         }
         
         
-        var filename = this.file.getIconFileName(false);
-        
+    
         var  win = this.el.get_parent_window();
         var width = win.get_width();
         var height = win.get_height();
         try {
              Gdk.Pixbuf screenshot = Gdk.pixbuf_get_from_window(win, 0, 0, width, height); // this.el.position?
-             screenshot.save(filename,"png");
+             this.file.writeIcon(screenshot);
         } catch (Error e) {
             
         }
@@ -1140,6 +1139,7 @@ public class Xcls_GtkView : Object
             // set gobject values
             this.el.always_show_image = true;
             this.el.visible = false;
+            this.el.show();
 
             //listeners
             this.el.button_press_event.connect( () => {
@@ -1403,6 +1403,7 @@ public class Xcls_GtkView : Object
 
             // set gobject values
             this.el.label = "Case Sensitive";
+            this.el.show();
 
             // init method
 
@@ -1433,6 +1434,7 @@ public class Xcls_GtkView : Object
 
             // set gobject values
             this.el.label = "Regex";
+            this.el.show();
 
             // init method
 
@@ -1463,6 +1465,7 @@ public class Xcls_GtkView : Object
 
             // set gobject values
             this.el.label = "Multi-line (add \\n)";
+            this.el.show();
 
             // init method
 
index 5f2c0c5..8cde049 100644 (file)
@@ -3,6 +3,7 @@
  "items" : [
   {
    "# Gdk.Pixbuf missing_thumb_pixbuf" : "",
+   "# Gee.HashMap<string,Gdk.Pixbuf> image_cache" : "null",
    "# Project.Project selectedProject" : "",
    "# Xcls_MainWindow win" : "",
    "# bool is_loaded" : false,
@@ -12,6 +13,7 @@
    "Gtk.PositionType position" : "Gtk.PositionType.TOP",
    "bool active" : false,
    "bool hexpand" : false,
+   "bool in_onprojectselected" : false,
    "bool modal" : true,
    "id" : "PopoverFiles",
    "int height_request" : 800,
         },
         {
          "$ xns" : "Gtk",
-         "* init" : "  this.el.set_policy (Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);",
-         "* pack" : "add",
-         "Gtk.ShadowType shadow_type" : "Gtk.ShadowType.IN",
+         "Gtk.Orientation orientation" : "Gtk.Orientation.VERTICAL",
          "bool expand" : true,
-         "id" : "iconscroll",
+         "int spacing" : 0,
          "int width_request" : 600,
          "items" : [
+          {
+           "$ xns" : "Gtk",
+           "Gtk.Orientation orientation" : "Gtk.Orientation.HORIZONTAL",
+           "bool hexpand" : true,
+           "int spacing" : 0,
+           "items" : [
+            {
+             "$ xns" : "Gtk",
+             "* init" : [
+              "var description =   Pango.FontDescription.from_string(\"monospace\");",
+              "\tdescription.set_size(8000);",
+              "\t this.el.override_font(description);",
+              "",
+              ""
+             ],
+             "bool hexpand" : true,
+             "id" : "iconsearch",
+             "listeners" : {
+              "changed" : [
+               "( ) => {",
+               "\tGLib.debug(\"Got '%s'\", this.el.text);",
+               "\t",
+               "\tif (this.el.text.down() != _this.lastfilter) {",
+               "\t\t_this.loadIconView();",
+               "\t}",
+               "}",
+               ""
+              ]
+             },
+             "string placeholder_text" : "type to filter results",
+             "xtype" : "SearchEntry"
+            }
+           ],
+           "xtype" : "Box"
+          },
           {
            "$ xns" : "Gtk",
            "* init" : [
-            "{",
-            "",
-            "}",
-            ""
+            "  this.el.set_policy (Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);",
+            "  "
            ],
            "* pack" : "add",
-           "bool has_tooltip" : true,
-           "id" : "iconview",
-           "int item_width" : 100,
-           "int markup_column" : 1,
-           "int pixbuf_column" : 3,
+           "Gtk.ShadowType shadow_type" : "Gtk.ShadowType.IN",
+           "bool expand" : true,
+           "id" : "iconscroll",
+           "int width_request" : 600,
            "items" : [
             {
-             "$ columns" : "typeof(Object), typeof(string), typeof(string), typeof(Gdk.Pixbuf), typeof(Gdk.Pixbuf) ",
              "$ xns" : "Gtk",
-             "* prop" : "model",
-             "id" : "iconmodel",
-             "int n_columns" : 4,
-             "xtype" : "ListStore"
+             "* init" : [
+              "{",
+              " ",
+              "}",
+              ""
+             ],
+             "* pack" : "add",
+             "bool has_tooltip" : true,
+             "id" : "iconview",
+             "int item_width" : 100,
+             "int markup_column" : 1,
+             "int pixbuf_column" : 3,
+             "items" : [
+              {
+               "$ columns" : "typeof(Object), typeof(string), typeof(string), typeof(Gdk.Pixbuf), typeof(Gdk.Pixbuf) ",
+               "$ xns" : "Gtk",
+               "* prop" : "model",
+               "id" : "iconmodel",
+               "int n_columns" : 4,
+               "xtype" : "ListStore"
+              }
+             ],
+             "listeners" : {
+              "item_activated" : [
+               "(path) => {",
+               "    ",
+               "    _this.win.windowstate.project = _this.selectedProject;",
+               "    _this.el.hide();",
+               "    ",
+               "    ",
+               " \tGtk.TreeIter iter;",
+               "   ",
+               "            ",
+               "\tthis.el.model.get_iter(out iter, path);",
+               "    ",
+               "    GLib.Value gval;",
+               "",
+               "    this.el.model.get_value(iter, 0 , out gval);",
+               "    var file = (JsRender.JsRender)gval;",
+               "    ",
+               "    ",
+               "    _this.win.windowstate.fileViewOpen(file, _this.new_window);",
+               "",
+               "    ",
+               "    ",
+               "}"
+              ],
+              "query_tooltip" : [
+               "(x, y, keyboard_tooltip, tooltip) => {",
+               "",
+               "\tGtk.TreePath path;",
+               "\tGtk.CellRenderer cell;",
+               "\tvar s = _this.iconview.el.get_item_at_pos(x,y + (int) _this.iconscroll.el.vadjustment.value, out path, out cell);",
+               "\t",
+               "\t",
+               "   // GLib.debug(\"Tooltip? %d,%d scroll: %d\",x,y, (int)_this.iconscroll.el.vadjustment.value);",
+               "\t ",
+               "\t",
+               "\tif (path == null) {",
+               "\t\t// GLib.debug(\"Tooltip? - no path\");",
+               "\t\treturn false;",
+               "\t}",
+               "\t",
+               "\tGtk.TreeIter iter;",
+               "\t_this.iconmodel.el.get_iter(out iter, path);",
+               "\tGLib.Value val;",
+               "\t_this.iconmodel.el.get_value(iter, 4, out val);",
+               "\t",
+               "\ttooltip.set_icon((Gdk.Pixbuf) val.get_object());",
+               "\t _this.iconview.el.set_tooltip_item(tooltip, path);",
+               "\treturn true;",
+               "}",
+               ""
+              ]
+             },
+             "xtype" : "IconView"
             }
            ],
-           "listeners" : {
-            "item_activated" : [
-             "(path) => {",
-             "    ",
-             "    _this.win.windowstate.project = _this.selectedProject;",
-             "    _this.el.hide();",
-             "    ",
-             "    ",
-             " \tGtk.TreeIter iter;",
-             "   ",
-             "            ",
-             "\tthis.el.model.get_iter(out iter, path);",
-             "    ",
-             "    GLib.Value gval;",
-             "",
-             "    this.el.model.get_value(iter, 0 , out gval);",
-             "    var file = (JsRender.JsRender)gval;",
-             "    ",
-             "    ",
-             "    _this.win.windowstate.fileViewOpen(file, _this.new_window);",
-             "",
-             "    ",
-             "    ",
-             "}"
-            ],
-            "query_tooltip" : [
-             "(x, y, keyboard_tooltip, tooltip) => {",
-             "",
-             "\tGtk.TreePath path;",
-             "\tGtk.CellRenderer cell;",
-             "\tvar s = _this.iconview.el.get_item_at_pos(x,y + (int) _this.iconscroll.el.vadjustment.value, out path, out cell);",
-             "\t",
-             "\t",
-             "   // GLib.debug(\"Tooltip? %d,%d scroll: %d\",x,y, (int)_this.iconscroll.el.vadjustment.value);",
-             "\t ",
-             "\t",
-             "\tif (path == null) {",
-             "\t\t// GLib.debug(\"Tooltip? - no path\");",
-             "\t\treturn false;",
-             "\t}",
-             "\t",
-             "\tGtk.TreeIter iter;",
-             "\t_this.iconmodel.el.get_iter(out iter, path);",
-             "\tGLib.Value val;",
-             "\t_this.iconmodel.el.get_value(iter, 4, out val);",
-             "\t",
-             "\ttooltip.set_icon((Gdk.Pixbuf) val.get_object());",
-             "\t _this.iconview.el.set_tooltip_item(tooltip, path);",
-             "\treturn true;",
-             "}",
-             ""
-            ]
-           },
-           "xtype" : "IconView"
+           "xtype" : "ScrolledWindow"
           }
          ],
-         "xtype" : "ScrolledWindow"
+         "xtype" : "Box"
         },
         {
          "$ xns" : "Gtk",
      "}"
     ]
    },
+   "string lastfilter" : "\"\"",
    "xtype" : "Popover",
    "| void load" : [
     "() {",
     "}",
     ""
    ],
-   "| void onProjectSelected" : [
-    "(Project.Project project) ",
-    "{",
-    "\tthis.selectedProject = project;",
-    "\tproject.scanDirs();",
-    "\t//this.clutterfiles.loadProject(proj);",
+   "| void loadIconView" : [
+    "() {",
     "\t",
+    "\tif (_this.image_cache == null) {",
+    "\t\t_this.image_cache = new Gee.HashMap<string,Gdk.Pixbuf>();",
+    "\t}",
     "\t",
-    "\t ",
-    "",
-    "    ",
-    "    ",
-    "    //this.project_title_name.el.text = pr.name;",
-    "    //this.project_title_path.el.text = pr.firstPath();",
-    "    ",
-    "    // file items contains a reference until we reload ...",
-    "  \t Gdk.Pixbuf pixbuf = null;",
-    "  \tGdk.Pixbuf bigpixbuf = null;",
+    "\t var project =  this.selectedProject;",
+    " ",
+    " \t Gdk.Pixbuf pixbuf = null;",
+    "  \t Gdk.Pixbuf bigpixbuf = null;",
     "\t Gtk.TreeIter iter;",
     "     var m = this.iconmodel.el;",
     "     m.clear();",
     " ",
+    " ",
+    " \tvar filter = _this.iconsearch.el.text.down();",
+    " \tthis.lastfilter = filter;",
+    " ",
     "    var fiter = project.sortedFiles().list_iterator();",
+    "    ",
+    "    ",
+    "      try {",
+    "\t        if (_this.missing_thumb_pixbuf == null) {",
+    "\t            var icon_theme = Gtk.IconTheme.get_default ();",
+    "\t            _this.missing_thumb_pixbuf = icon_theme.load_icon (\"package-x-generic\", 92, 0);",
+    "\t            _this.missing_thumb_pixbuf.ref();",
+    "\t        }",
+    "\t        ",
+    "",
+    "\t    } catch (Error e) {",
+    "\t        // noop?",
+    "\t    }",
+    "    ",
+    "",
+    "    ",
     "    while (fiter.next()) {",
-    "        m.append(out iter);",
+    "    ",
     "        var file = fiter.get();",
+    "        if (filter != \"\") {",
+    "        \tif (!file.name.down().contains(filter)) {",
+    "        \t\tcontinue;",
+    "    \t\t}",
+    "        ",
+    "        }    ",
+    "    \t",
+    "    ",
+    "    ",
+    "        m.append(out iter);",
+    "",
     "        m.set(iter,   0,file ); // zero contains the file reference",
     "        m.set(iter,   1,file.nickType() + \"\\n\" + file.nickName()); // marked up title?",
     "        m.set(iter,   2,file.nickType() ); // file type?",
     "        ",
-    "        ",
-    "        var fname = file.getIconFileName(false);",
+    "       ",
+    "",
     "        try {",
-    "\t\t    if (FileUtils.test(fname, FileTest.EXISTS)) {",
-    "\t\t        var npixbuf = new Gdk.Pixbuf.from_file(fname);",
-    "\t\t        pixbuf = npixbuf.scale_simple(92, (int) (npixbuf.height * 92.0 /npixbuf.width * 1.0 )",
-    "\t\t\t\t    , Gdk.InterpType.NEAREST) ;",
-    "\t\t\t\tbigpixbuf = npixbuf.scale_simple(368, (int) (npixbuf.height * 368.0 /npixbuf.width * 1.0 )",
-    "\t\t\t\t    , Gdk.InterpType.NEAREST) ;",
-    "\t\t\t\t",
-    "\t\t    } ",
+    "\t\t    ",
+    "\t\t    pixbuf = file.getIcon(92);",
+    "\t\t\tbigpixbuf = file.getIcon(368);",
+    "",
     "\t\t} catch (Error e) {",
     "\t\t    // noop",
     "\t\t",
-    "\t\t}",
-    "        if (pixbuf == null) {",
+    "\t\t} ",
     "        ",
-    "\t\t    try {",
-    "\t\t        if (_this.missing_thumb_pixbuf == null) {",
-    "\t\t            var icon_theme = Gtk.IconTheme.get_default ();",
-    "\t\t            _this.missing_thumb_pixbuf = icon_theme.load_icon (\"package-x-generic\", 92, 0);",
-    "\t\t            _this.missing_thumb_pixbuf.ref();",
-    "\t\t        }",
-    "\t\t        pixbuf = _this.missing_thumb_pixbuf;",
-    "\t\t        bigpixbuf = _this.missing_thumb_pixbuf;",
-    "",
-    "\t\t    } catch (Error e) {",
-    "\t\t        // noop?",
-    "\t\t    }",
+    "         ",
+    "        if (pixbuf == null) {",
+    "        \tGLib.debug(\"PIXBUF is null? %s\", file.name);",
+    "\t\t    pixbuf = _this.missing_thumb_pixbuf;",
+    "        \tbigpixbuf = _this.missing_thumb_pixbuf;",
     "\t\t}",
     "\t\t",
     "\t\t",
     "",
     "        //this.filelayout.el.add_child(a.el);",
     "    }",
+    "}"
+   ],
+   "| void onProjectSelected" : [
+    "(Project.Project project) ",
+    "{",
+    "\tif (this.in_onprojectselected) { ",
+    "\t\treturn;",
+    "\t}",
+    "\tthis.in_onprojectselected = true;",
+    "\t",
+    "\t",
+    "\tthis.selectedProject = project;",
+    "\tproject.scanDirs();",
+    "\t//this.clutterfiles.loadProject(proj);",
+    "\t",
+    "\t",
+    "\t",
+    "\t_this.iconsearch.el.text = \"\";",
+    "\t",
+    "\t ",
+    "\t",
+    "    ",
     "    ",
+    "    //this.project_title_name.el.text = pr.name;",
+    "    //this.project_title_path.el.text = pr.firstPath();",
+    "    ",
+    "    // file items contains a reference until we reload ...",
+    "  \t this.loadIconView();",
+    "  \t ",
+    "  \t ",
+    "  \t GLib.Timeout.add(500, () => {",
+    "\t     _this.iconsearch.el.grab_focus();",
+    "\t     return false;",
+    "     });",
     "    ",
     "     this.filemodel.el.clear();",
     "    ",
     "    if (!(project is Project.Gtk)) {",
     "        print (\"not gtk... skipping files\");",
     "        this.file_container.el.hide();",
+    "    \tthis.in_onprojectselected = false;",
     "        return;",
     "    }",
     "    this.file_container.el.show();",
     "\t    //this.el.set_value(citer, 1,   items.get(i) );",
     "\t}",
     "    _this.fileview.el.expand_all();",
-    "    ",
+    "    \tthis.in_onprojectselected = false;",
     "\t",
     "}",
     ""
index 26b85b4..abe9d90 100644 (file)
@@ -15,6 +15,7 @@ public class Xcls_PopoverFiles : Object
     public Xcls_view view;
     public Xcls_model model;
     public Xcls_namecol namecol;
+    public Xcls_iconsearch iconsearch;
     public Xcls_iconscroll iconscroll;
     public Xcls_iconview iconview;
     public Xcls_iconmodel iconmodel;
@@ -25,10 +26,13 @@ public class Xcls_PopoverFiles : Object
 
         // my vars (def)
     public Xcls_MainWindow win;
+    public string lastfilter;
+    public bool in_onprojectselected;
     public Project.Project selectedProject;
     public bool is_loading;
     public bool new_window;
     public Gdk.Pixbuf missing_thumb_pixbuf;
+    public Gee.HashMap<string,Gdk.Pixbuf> image_cache;
     public bool active;
     public bool is_loaded;
 
@@ -39,8 +43,11 @@ public class Xcls_PopoverFiles : Object
         this.el = new Gtk.Popover( null );
 
         // my vars (dec)
+        this.lastfilter = "";
+        this.in_onprojectselected = false;
         this.is_loading = false;
         this.new_window = false;
+        this.image_cache = null;
         this.active = false;
         this.is_loaded = false;
 
@@ -70,77 +77,35 @@ public class Xcls_PopoverFiles : Object
     // user defined functions
     public void onProjectSelected (Project.Project project) 
     {
+       if (this.in_onprojectselected) { 
+               return;
+       }
+       this.in_onprojectselected = true;
+       
+       
        this.selectedProject = project;
        project.scanDirs();
        //this.clutterfiles.loadProject(proj);
        
        
+       
+       _this.iconsearch.el.text = "";
+       
         
-    
+       
         
         
         //this.project_title_name.el.text = pr.name;
         //this.project_title_path.el.text = pr.firstPath();
         
         // file items contains a reference until we reload ...
-        Gdk.Pixbuf pixbuf = null;
-       Gdk.Pixbuf bigpixbuf = null;
-        Gtk.TreeIter iter;
-         var m = this.iconmodel.el;
-         m.clear();
-     
-        var fiter = project.sortedFiles().list_iterator();
-        while (fiter.next()) {
-            m.append(out iter);
-            var file = fiter.get();
-            m.set(iter,   0,file ); // zero contains the file reference
-            m.set(iter,   1,file.nickType() + "\n" + file.nickName()); // marked up title?
-            m.set(iter,   2,file.nickType() ); // file type?
-            
-            
-            var fname = file.getIconFileName(false);
-            try {
-                   if (FileUtils.test(fname, FileTest.EXISTS)) {
-                       var npixbuf = new Gdk.Pixbuf.from_file(fname);
-                       pixbuf = npixbuf.scale_simple(92, (int) (npixbuf.height * 92.0 /npixbuf.width * 1.0 )
-                                   , Gdk.InterpType.NEAREST) ;
-                               bigpixbuf = npixbuf.scale_simple(368, (int) (npixbuf.height * 368.0 /npixbuf.width * 1.0 )
-                                   , Gdk.InterpType.NEAREST) ;
-                               
-                   } 
-               } catch (Error e) {
-                   // noop
-               
-               }
-            if (pixbuf == null) {
-            
-                   try {
-                       if (_this.missing_thumb_pixbuf == null) {
-                           var icon_theme = Gtk.IconTheme.get_default ();
-                           _this.missing_thumb_pixbuf = icon_theme.load_icon ("package-x-generic", 92, 0);
-                           _this.missing_thumb_pixbuf.ref();
-                       }
-                       pixbuf = _this.missing_thumb_pixbuf;
-                       bigpixbuf = _this.missing_thumb_pixbuf;
-    
-                   } catch (Error e) {
-                       // noop?
-                   }
-               }
-               
-               
-               
-            m.set(iter,   3,pixbuf);
-            m.set(iter,   4,bigpixbuf);
-          
-            // this needs to add to the iconview?
-            
-            //var a = new Xcls_fileitem(this,fiter.get());
-            //this.fileitems.add(a);
-    
-            //this.filelayout.el.add_child(a.el);
-        }
-        
+        this.loadIconView();
+        
+        
+        GLib.Timeout.add(500, () => {
+            _this.iconsearch.el.grab_focus();
+            return false;
+         });
         
          this.filemodel.el.clear();
         
@@ -149,6 +114,7 @@ public class Xcls_PopoverFiles : Object
         if (!(project is Project.Gtk)) {
             print ("not gtk... skipping files");
             this.file_container.el.hide();
+               this.in_onprojectselected = false;
             return;
         }
         this.file_container.el.show();
@@ -193,7 +159,7 @@ public class Xcls_PopoverFiles : Object
            //this.el.set_value(citer, 1,   items.get(i) );
        }
         _this.fileview.el.expand_all();
-        
+               this.in_onprojectselected = false;
        
     }
     public void selectProject (Project.Project project) {
@@ -291,6 +257,91 @@ public class Xcls_PopoverFiles : Object
        this.win = win;
         
     }
+    public void loadIconView () {
+       
+       if (_this.image_cache == null) {
+               _this.image_cache = new Gee.HashMap<string,Gdk.Pixbuf>();
+       }
+       
+        var project =  this.selectedProject;
+     
+        Gdk.Pixbuf pixbuf = null;
+        Gdk.Pixbuf bigpixbuf = null;
+        Gtk.TreeIter iter;
+         var m = this.iconmodel.el;
+         m.clear();
+     
+     
+       var filter = _this.iconsearch.el.text.down();
+       this.lastfilter = filter;
+     
+        var fiter = project.sortedFiles().list_iterator();
+        
+        
+          try {
+               if (_this.missing_thumb_pixbuf == null) {
+                   var icon_theme = Gtk.IconTheme.get_default ();
+                   _this.missing_thumb_pixbuf = icon_theme.load_icon ("package-x-generic", 92, 0);
+                   _this.missing_thumb_pixbuf.ref();
+               }
+               
+    
+           } catch (Error e) {
+               // noop?
+           }
+        
+    
+        
+        while (fiter.next()) {
+        
+            var file = fiter.get();
+            if (filter != "") {
+               if (!file.name.down().contains(filter)) {
+                       continue;
+                       }
+            
+            }    
+               
+        
+        
+            m.append(out iter);
+    
+            m.set(iter,   0,file ); // zero contains the file reference
+            m.set(iter,   1,file.nickType() + "\n" + file.nickName()); // marked up title?
+            m.set(iter,   2,file.nickType() ); // file type?
+            
+           
+    
+            try {
+                   
+                   pixbuf = file.getIcon(92);
+                       bigpixbuf = file.getIcon(368);
+    
+               } catch (Error e) {
+                   // noop
+               
+               } 
+            
+             
+            if (pixbuf == null) {
+               GLib.debug("PIXBUF is null? %s", file.name);
+                   pixbuf = _this.missing_thumb_pixbuf;
+               bigpixbuf = _this.missing_thumb_pixbuf;
+               }
+               
+               
+               
+            m.set(iter,   3,pixbuf);
+            m.set(iter,   4,bigpixbuf);
+          
+            // this needs to add to the iconview?
+            
+            //var a = new Xcls_fileitem(this,fiter.get());
+            //this.fileitems.add(a);
+    
+            //this.filelayout.el.add_child(a.el);
+        }
+    }
     public class Xcls_Box2 : Object
     {
         public Gtk.Box el;
@@ -570,9 +621,9 @@ public class Xcls_PopoverFiles : Object
             var child_0 = new Xcls_ScrolledWindow10( _this );
             child_0.ref();
             this.el.add (  child_0.el  );
-            var child_1 = new Xcls_iconscroll( _this );
+            var child_1 = new Xcls_Box15( _this );
             child_1.ref();
-            this.el.add (  child_1.el  );
+            this.el.add(  child_1.el );
             var child_2 = new Xcls_file_container( _this );
             child_2.ref();
             this.el.add (  child_2.el  );
@@ -768,6 +819,101 @@ public class Xcls_PopoverFiles : Object
 
 
 
+    public class Xcls_Box15 : Object
+    {
+        public Gtk.Box el;
+        private Xcls_PopoverFiles  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_Box15(Xcls_PopoverFiles _owner )
+        {
+            _this = _owner;
+            this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.width_request = 600;
+            this.el.expand = true;
+            var child_0 = new Xcls_Box16( _this );
+            child_0.ref();
+            this.el.add(  child_0.el );
+            var child_1 = new Xcls_iconscroll( _this );
+            child_1.ref();
+            this.el.add (  child_1.el  );
+        }
+
+        // user defined functions
+    }
+    public class Xcls_Box16 : Object
+    {
+        public Gtk.Box el;
+        private Xcls_PopoverFiles  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_Box16(Xcls_PopoverFiles _owner )
+        {
+            _this = _owner;
+            this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.hexpand = true;
+            var child_0 = new Xcls_iconsearch( _this );
+            child_0.ref();
+            this.el.add(  child_0.el );
+        }
+
+        // user defined functions
+    }
+    public class Xcls_iconsearch : Object
+    {
+        public Gtk.SearchEntry el;
+        private Xcls_PopoverFiles  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_iconsearch(Xcls_PopoverFiles _owner )
+        {
+            _this = _owner;
+            _this.iconsearch = this;
+            this.el = new Gtk.SearchEntry();
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.hexpand = true;
+            this.el.placeholder_text = "type to filter results";
+
+            // init method
+
+            var description =   Pango.FontDescription.from_string("monospace");
+               description.set_size(8000);
+                this.el.override_font(description);
+
+            //listeners
+            this.el.changed.connect( ( ) => {
+               GLib.debug("Got '%s'", this.el.text);
+               
+               if (this.el.text.down() != _this.lastfilter) {
+                       _this.loadIconView();
+               }
+            });
+        }
+
+        // user defined functions
+    }
+
+
     public class Xcls_iconscroll : Object
     {
         public Gtk.ScrolledWindow el;
@@ -829,7 +975,7 @@ public class Xcls_PopoverFiles : Object
             // init method
 
             {
-            
+             
             }
 
             //listeners
@@ -908,6 +1054,7 @@ public class Xcls_PopoverFiles : Object
 
 
 
+
     public class Xcls_file_container : Object
     {
         public Gtk.ScrolledWindow el;
@@ -966,7 +1113,7 @@ public class Xcls_PopoverFiles : Object
             var child_0 = new Xcls_filemodel( _this );
             child_0.ref();
             this.el.set_model (  child_0.el  );
-            var child_1 = new Xcls_TreeViewColumn21( _this );
+            var child_1 = new Xcls_TreeViewColumn24( _this );
             child_1.ref();
             this.el.append_column (  child_1.el  );
 
@@ -1070,7 +1217,7 @@ public class Xcls_PopoverFiles : Object
         // user defined functions
     }
 
-    public class Xcls_TreeViewColumn21 : Object
+    public class Xcls_TreeViewColumn24 : Object
     {
         public Gtk.TreeViewColumn el;
         private Xcls_PopoverFiles  _this;
@@ -1079,7 +1226,7 @@ public class Xcls_PopoverFiles : Object
             // my vars (def)
 
         // ctor
-        public Xcls_TreeViewColumn21(Xcls_PopoverFiles _owner )
+        public Xcls_TreeViewColumn24(Xcls_PopoverFiles _owner )
         {
             _this = _owner;
             this.el = new Gtk.TreeViewColumn();
index 6d9ac28..82d2796 100644 (file)
     "        return;",
     "    }",
     "    ",
-    "    var filename = this.file.getIconFileName(false);",
     "    ",
     "    var  win = this.el.get_parent_window();",
     "    var width = win.get_width();",
     "  //  var height = win.get_height();",
     "    try { ",
     "        Gdk.Pixbuf screenshot = Gdk.pixbuf_get_from_window(win, 0, 0, width, this.paned.el.position);",
-    "        screenshot.save(filename,\"png\");",
+    "        this.file.writeIcon(screenshot);",
+    "        ",
     "    } catch(Error e) {",
     "        //noop",
     "    }",
index b567e92..19bc8ea 100644 (file)
@@ -238,14 +238,14 @@ public class Xcls_WindowRooView : Object
             return;
         }
         
-        var filename = this.file.getIconFileName(false);
         
         var  win = this.el.get_parent_window();
         var width = win.get_width();
       //  var height = win.get_height();
         try { 
             Gdk.Pixbuf screenshot = Gdk.pixbuf_get_from_window(win, 0, 0, width, this.paned.el.position);
-            screenshot.save(filename,"png");
+            this.file.writeIcon(screenshot);
+            
         } catch(Error e) {
             //noop
         }
@@ -1935,6 +1935,7 @@ public class Xcls_WindowRooView : Object
             // set gobject values
             this.el.always_show_image = true;
             this.el.visible = false;
+            this.el.show();
 
             //listeners
             this.el.button_press_event.connect( () => {
@@ -2198,6 +2199,7 @@ public class Xcls_WindowRooView : Object
 
             // set gobject values
             this.el.label = "Case Sensitive";
+            this.el.show();
 
             // init method
 
@@ -2228,6 +2230,7 @@ public class Xcls_WindowRooView : Object
 
             // set gobject values
             this.el.label = "Regex";
+            this.el.show();
 
             // init method
 
@@ -2258,6 +2261,7 @@ public class Xcls_WindowRooView : Object
 
             // set gobject values
             this.el.label = "Multi-line (add \\n)";
+            this.el.show();
 
             // init method
 
index 9016c84..adaf490 100644 (file)
             "../..//pixmaps",
             "../../..//gitlive",
             "..//codegen",
-            "..//ccode"
+            "..//ccode",
+            "../..//debian"
         ],
         "packages" : [
             "gdk-3.0",
index 2ef840c..51178f1 100644 (file)
@@ -174,9 +174,66 @@ namespace JsRender {
                        return ret;
                
                }
+               
+               Gdk.Pixbuf screenshot = null;
+               Gdk.Pixbuf screenshot92 = null;
+               Gdk.Pixbuf screenshot368 = null;
+               
+               public Gdk.Pixbuf? getIcon(int size = 0) {
+                   var fname = this.getIconFileName( );                
+                   if (!FileUtils.test(fname, FileTest.EXISTS)) {
+               GLib.debug("PIXBUF %s:  %s does not exist?", this.name, fname);
+                               return null;
+                       }
+                       
+                       switch (size) {
+                               case 0:
+                                       if (this.screenshot == null) {
+                                               this.screenshot = new Gdk.Pixbuf.from_file(fname);
+                                       }
+                                       return this.screenshot;
+                               
+                               case 92:
+                                       
+                                       if (this.screenshot == null) {
+                                               this.getIcon(0);
+                                               if (this.screenshot == null) {
+                                                       return null;
+                                               }
+                                       }
+                                       
+                                       this.screenshot92 = this.screenshot.scale_simple(92, (int) (this.screenshot.height * 92.0 /this.screenshot.width * 1.0 )
+                                               , Gdk.InterpType.NEAREST) ;
+                                   return this.screenshot92;
+                           
+                           case 368:
+                                       if (this.screenshot == null) {
+                                               this.getIcon(0);
+                                               if (this.screenshot == null) {
+                                                       return null;
+                                               }
+                                       }
+                                       
+                                       this.screenshot368 = this.screenshot.scale_simple(368, (int) (this.screenshot.height * 368.0 /this.screenshot.width * 1.0 )
+                                   , Gdk.InterpType.NEAREST) ;
+                                   return this.screenshot368;
+                   }
+                   return null;
+               }
+               
+               public void writeIcon(Gdk.Pixbuf pixbuf) {
+                       
+                       pixbuf.save(this.getIconFileName( ),"png");
+                       this.screenshot = pixbuf;
+                       this.screenshot92 = null;
+                       this.screenshot368 = null;
+                       
+               
+               }
+               
 
                
-               public string getIconFileName(bool return_default)
+               public string getIconFileName( )
                {
                         
                        var m5 = GLib.Checksum.compute_for_string(GLib.ChecksumType.MD5,this.path); 
@@ -191,19 +248,9 @@ namespace JsRender {
                        }
                        var fname = dir + "/" + m5 + ".png";
                        
-                       if (!return_default) {
-                               print("getIconFileName return %s\n", fname);
-                               return fname;
-                       }
-                       
-                       if (FileUtils.test(fname, FileTest.EXISTS)) {
-                               print("getIconFileName return %s\n", fname);
-                               return fname;
-                       }
-                       // we need to create this somehow...
-                       print("getIconFileName return %s\n", GLib.Environment.get_home_dir() + "/.Builder/test.jpg");
-                       return  GLib.Environment.get_home_dir() + "/.Builder/test.jpg";
-
+                        
+                       return fname;
+                         
                }
                
                public string toJsonString()