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
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
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
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
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
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
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
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
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
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
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
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
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
+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
-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
+++ /dev/null
-{
- "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
+++ /dev/null
-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
- }
-
-
-
-
-}
// set gobject values
this.el.always_show_image = true;
this.el.visible = false;
+ this.el.show();
//listeners
this.el.button_press_event.connect( () => {
// set gobject values
this.el.label = "Case Sensitive";
+ this.el.show();
// init method
// set gobject values
this.el.label = "Regex";
+ this.el.show();
// init method
// set gobject values
this.el.label = "Multi-line (add \\n)";
+ this.el.show();
// init method
" }",
" ",
" ",
- " 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) {",
" ",
" }",
}
- 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) {
}
// set gobject values
this.el.always_show_image = true;
this.el.visible = false;
+ this.el.show();
//listeners
this.el.button_press_event.connect( () => {
// set gobject values
this.el.label = "Case Sensitive";
+ this.el.show();
// init method
// set gobject values
this.el.label = "Regex";
+ this.el.show();
// init method
// set gobject values
this.el.label = "Multi-line (add \\n)";
+ this.el.show();
// init method
"items" : [
{
"# Gdk.Pixbuf missing_thumb_pixbuf" : "",
+ "# Gee.HashMap<string,Gdk.Pixbuf> image_cache" : "null",
"# Project.Project selectedProject" : "",
"# Xcls_MainWindow win" : "",
"# bool is_loaded" : false,
"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",
"}",
""
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;
// 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;
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;
// 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();
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();
//this.el.set_value(citer, 1, items.get(i) );
}
_this.fileview.el.expand_all();
-
+ this.in_onprojectselected = false;
}
public void selectProject (Project.Project project) {
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;
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 );
+ 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;
// init method
{
-
+
}
//listeners
+
public class Xcls_file_container : Object
{
public Gtk.ScrolledWindow el;
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 );
// user defined functions
}
- public class Xcls_TreeViewColumn21 : Object
+ public class Xcls_TreeViewColumn24 : Object
{
public Gtk.TreeViewColumn el;
private Xcls_PopoverFiles _this;
// my vars (def)
// ctor
- public Xcls_TreeViewColumn21(Xcls_PopoverFiles _owner )
+ public Xcls_TreeViewColumn24(Xcls_PopoverFiles _owner )
{
_this = _owner;
this.el = new Gtk.TreeViewColumn();
" 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",
" }",
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
}
// set gobject values
this.el.always_show_image = true;
this.el.visible = false;
+ this.el.show();
//listeners
this.el.button_press_event.connect( () => {
// set gobject values
this.el.label = "Case Sensitive";
+ this.el.show();
// init method
// set gobject values
this.el.label = "Regex";
+ this.el.show();
// init method
// set gobject values
this.el.label = "Multi-line (add \\n)";
+ this.el.show();
// init method
"../..//pixmaps",
"../../..//gitlive",
"..//codegen",
- "..//ccode"
+ "..//ccode",
+ "../..//debian"
],
"packages" : [
"gdk-3.0",
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);
}
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()