@@ -17,8 +17,9 @@ discard block |
||
17 | 17 | 'data' => $data |
18 | 18 | ])); |
19 | 19 | |
20 | - while (file_exists ('__debug_answer')) |
|
21 | - usleep (100); |
|
20 | + while (file_exists ('__debug_answer')) { |
|
21 | + usleep (100); |
|
22 | + } |
|
22 | 23 | } |
23 | 24 | |
24 | 25 | static function seekObjects (WFObject $object): array |
@@ -33,9 +34,7 @@ discard block |
||
33 | 34 | }); |
34 | 35 | |
35 | 36 | return array_unique ($objects); |
36 | - } |
|
37 | - |
|
38 | - catch (\Throwable $e) |
|
37 | + } catch (\Throwable $e) |
|
39 | 38 | { |
40 | 39 | return $objects; |
41 | 40 | } |
@@ -62,18 +61,18 @@ discard block |
||
62 | 61 | { |
63 | 62 | $debug = &$GLOBALS['__DEBUG']; |
64 | 63 | |
65 | - if (!isset ($debug['last_timestamp'])) |
|
66 | - $debug['last_timestamp'] = 0; |
|
64 | + if (!isset ($debug['last_timestamp'])) { |
|
65 | + $debug['last_timestamp'] = 0; |
|
66 | + } |
|
67 | 67 | |
68 | 68 | $components = crc32 (serialize (Components::$components)); |
69 | 69 | Components::cleanJunk (); |
70 | 70 | |
71 | - if (crc32 (serialize (Components::$components)) != $components) |
|
72 | - $debugger::debugOutput ([ |
|
71 | + if (crc32 (serialize (Components::$components)) != $components) { |
|
72 | + $debugger::debugOutput ([ |
|
73 | 73 | 'type' => 'beginJunkCatching' |
74 | 74 | ], true); |
75 | - |
|
76 | - elseif (file_exists ('__debug_request')) |
|
75 | + } elseif (file_exists ('__debug_request')) |
|
77 | 76 | { |
78 | 77 | $request = unserialize (file_get_contents ('__debug_request')); |
79 | 78 | unlink ('__debug_request'); |
@@ -87,9 +86,10 @@ discard block |
||
87 | 86 | case 'get_objects': |
88 | 87 | $referenced = []; |
89 | 88 | |
90 | - foreach (Components::$components as $selector => $component) |
|
91 | - $referenced = array_merge ($referenced, array_diff ($debugger::seekObjects ($component), $component->getType ()->isSubclassOf (VoidEngine::objectType ('System.Windows.Forms.Form', 'System.Windows.Forms')) ? |
|
89 | + foreach (Components::$components as $selector => $component) { |
|
90 | + $referenced = array_merge ($referenced, array_diff ($debugger::seekObjects ($component), $component->getType ()->isSubclassOf (VoidEngine::objectType ('System.Windows.Forms.Form', 'System.Windows.Forms')) ? |
|
92 | 91 | [] : [$selector])); |
92 | + } |
|
93 | 93 | |
94 | 94 | // array_slice потому, что первым компонентом в списке всегда будет таймер debug hooker'а |
95 | 95 | $debugger::debugOutput (array_slice (array_map (function ($object) use ($referenced) |
@@ -105,42 +105,39 @@ discard block |
||
105 | 105 | break; |
106 | 106 | |
107 | 107 | case 'bulb_objects': |
108 | - foreach ($request['arguments']['selectors'] as $selector) |
|
109 | - try |
|
108 | + foreach ($request['arguments']['selectors'] as $selector) { |
|
109 | + try |
|
110 | 110 | { |
111 | 111 | if (!isset ($debug['colors'][$selector])) |
112 | 112 | $debug['colors'][$selector] = VoidEngine::getProperty ($selector, ['BackColor', 'color']); |
113 | + } |
|
113 | 114 | |
114 | 115 | VoidEngine::setProperty ($selector, 'BackColor', [clYellow, 'color']); |
115 | - } |
|
116 | - |
|
117 | - catch (\Throwable $e) |
|
116 | + } catch (\Throwable $e) |
|
118 | 117 | { |
119 | 118 | continue; |
120 | 119 | } |
121 | 120 | break; |
122 | 121 | |
123 | 122 | case 'unbulb_objects': |
124 | - foreach ($request['arguments']['selectors'] as $selector) |
|
125 | - try |
|
123 | + foreach ($request['arguments']['selectors'] as $selector) { |
|
124 | + try |
|
126 | 125 | { |
127 | 126 | VoidEngine::setProperty ($selector, 'BackColor', [$debug['colors'][$selector], 'color']); |
128 | - } |
|
129 | - |
|
130 | - catch (\Throwable $e) |
|
127 | + } |
|
128 | + } catch (\Throwable $e) |
|
131 | 129 | { |
132 | 130 | continue; |
133 | 131 | } |
134 | 132 | break; |
135 | 133 | |
136 | 134 | case 'remove_objects': |
137 | - foreach ($request['arguments']['selectors'] as $selector) |
|
138 | - try |
|
135 | + foreach ($request['arguments']['selectors'] as $selector) { |
|
136 | + try |
|
139 | 137 | { |
140 | 138 | VoidEngine::callMethod ($selector, 'Dispose'); |
141 | - } |
|
142 | - |
|
143 | - catch (\Throwable $e) |
|
139 | + } |
|
140 | + } catch (\Throwable $e) |
|
144 | 141 | { |
145 | 142 | continue; |
146 | 143 | } |
@@ -17,10 +17,11 @@ |
||
17 | 17 | |
18 | 18 | VoidStudioAPI::getObjects ('addPackage')['Package__Add']->enabled = true; |
19 | 19 | |
20 | - foreach (VoidStudioAPI::getObjects ('modules')['ModulesList__QeroPackages']->items->list as $line) |
|
21 | - if ((($pos = strrpos ($line, '@')) !== false && substr ($line, 0, $pos) == $package) || ($pos === false && $line == $package)) |
|
20 | + foreach (VoidStudioAPI::getObjects ('modules')['ModulesList__QeroPackages']->items->list as $line) { |
|
21 | + if ((($pos = strrpos ($line, '@')) !== false && substr ($line, 0, $pos) == $package) || ($pos === false && $line == $package)) |
|
22 | 22 | { |
23 | 23 | VoidStudioAPI::getObjects ('addPackage')['Package__Add']->enabled = false; |
24 | + } |
|
24 | 25 | |
25 | 26 | break; |
26 | 27 | } |
@@ -40,15 +40,14 @@ discard block |
||
40 | 40 | |
41 | 41 | $path = APP_DIR .'/components/icons/'. $component .'_16x.png'; |
42 | 42 | |
43 | - if (!file_exists ($path)) |
|
44 | - $path = APP_DIR .'/components/icons/Unknown_16x.png'; |
|
43 | + if (!file_exists ($path)) { |
|
44 | + $path = APP_DIR .'/components/icons/Unknown_16x.png'; |
|
45 | + } |
|
45 | 46 | |
46 | 47 | $imageList->images->add ((new Image)->loadFromFile ($path)); |
47 | 48 | $componentsList->items->add ($item); |
48 | 49 | } |
49 | - } |
|
50 | - |
|
51 | - else |
|
50 | + } else |
|
52 | 51 | { |
53 | 52 | $item = new ListViewItem (' '. $comps); |
54 | 53 | $item->group = $controlGroup; |
@@ -56,8 +55,9 @@ discard block |
||
56 | 55 | |
57 | 56 | $path = APP_DIR .'/components/icons/'. substr ($groupName, 1) .'_16x.png'; |
58 | 57 | |
59 | - if (!file_exists ($path)) |
|
60 | - $path = APP_DIR .'/components/icons/Unknown_16x.png'; |
|
58 | + if (!file_exists ($path)) { |
|
59 | + $path = APP_DIR .'/components/icons/Unknown_16x.png'; |
|
60 | + } |
|
61 | 61 | |
62 | 62 | $imageList->images->add ((new Image)->loadFromFile ($path)); |
63 | 63 | $componentsList->items->add ($item); |
@@ -18,8 +18,9 @@ discard block |
||
18 | 18 | $this->form = $form === null ? new Form : |
19 | 19 | EngineAdditions::coupleSelector ($form); |
20 | 20 | |
21 | - if (!is_object ($this->form)) |
|
22 | - throw new \Exception ('$form param in "VoidEngine\VoidDesigner" constructor must be instance of "VoidEngine\WFObject" ("VoidEngine\Form") or be object selector'); |
|
21 | + if (!is_object ($this->form)) { |
|
22 | + throw new \Exception ('$form param in "VoidEngine\VoidDesigner" constructor must be instance of "VoidEngine\WFObject" ("VoidEngine\Form") or be object selector'); |
|
23 | + } |
|
23 | 24 | |
24 | 25 | $this->propertyGrid = $propertyGrid; |
25 | 26 | $this->eventsList = $eventsList; |
@@ -44,8 +45,9 @@ discard block |
||
44 | 45 | |
45 | 46 | Events::setObjectEvent ($this->control, 'KeyDown', function ($self, $args) |
46 | 47 | { |
47 | - if ($args->keycode == 46) |
|
48 | - $this->removeSelected (); |
|
48 | + if ($args->keycode == 46) { |
|
49 | + $this->removeSelected (); |
|
50 | + } |
|
49 | 51 | }); |
50 | 52 | |
51 | 53 | $this->selectionChangedEvent = function () |
@@ -56,9 +58,10 @@ discard block |
||
56 | 58 | $this->eventsList->selectedObject = $object; |
57 | 59 | $this->currentSelectedItem->selectedItem = $this->getComponentName ($object); |
58 | 60 | |
59 | - if (isset (VoidStudioAPI::$events[$object])) |
|
60 | - foreach (VoidStudioAPI::$events[$object] as $eventName => $code) |
|
61 | + if (isset (VoidStudioAPI::$events[$object])) { |
|
62 | + foreach (VoidStudioAPI::$events[$object] as $eventName => $code) |
|
61 | 63 | $this->eventsList->getEventByName ($eventName)->value = '(добавлено)'; |
64 | + } |
|
62 | 65 | |
63 | 66 | $this->eventsList->refresh (); |
64 | 67 | }; |
@@ -188,17 +191,17 @@ discard block |
||
188 | 191 | |
189 | 192 | foreach ($this->getSelectedComponents ()->list as $object) |
190 | 193 | { |
191 | - if ($object->getType ()->toString () != 'System.Windows.Forms.Form') |
|
192 | - $toUnset[] = $this->getComponentName ($object->selector); |
|
193 | - |
|
194 | - else |
|
194 | + if ($object->getType ()->toString () != 'System.Windows.Forms.Form') { |
|
195 | + $toUnset[] = $this->getComponentName ($object->selector); |
|
196 | + } else |
|
195 | 197 | { |
196 | 198 | if ($this->formsList->items->count > 1) |
197 | 199 | { |
198 | 200 | if (messageBox ('Вы действительно хотите удалить форму "'. $this->form->name .'"?', 'Подтвердите действие', enum ('System.Windows.Forms.MessageBoxButtons.YesNo'), enum ('System.Windows.Forms.MessageBoxIcon.Question')) == 6) |
199 | 201 | { |
200 | - foreach ($this->objects as $name => $obj) |
|
201 | - unset ($this->objects[$name]); |
|
202 | + foreach ($this->objects as $name => $obj) { |
|
203 | + unset ($this->objects[$name]); |
|
204 | + } |
|
202 | 205 | |
203 | 206 | unset ($this->formsList->items[array_flip ($this->formsList->items->names)[$form = $this->getComponentName ($object->selector)]]); |
204 | 207 | |
@@ -215,9 +218,7 @@ discard block |
||
215 | 218 | |
216 | 219 | return; |
217 | 220 | } |
218 | - } |
|
219 | - |
|
220 | - else |
|
221 | + } else |
|
221 | 222 | { |
222 | 223 | messageBox ('Нельзя удалить единственную форму проекта', 'Ошибка удаления', enum ('System.Windows.Forms.MessageBoxButtons.OK'), enum ('System.Windows.Forms.MessageBoxIcon.Error')); |
223 | 224 | |
@@ -226,14 +227,16 @@ discard block |
||
226 | 227 | } |
227 | 228 | } |
228 | 229 | |
229 | - foreach ($toUnset as $name) |
|
230 | - unset ($this->objects[$name]); |
|
230 | + foreach ($toUnset as $name) { |
|
231 | + unset ($this->objects[$name]); |
|
232 | + } |
|
231 | 233 | |
232 | 234 | $this->callMethod ('DeleteSelected'); |
233 | 235 | |
234 | - foreach ($this->objects as $objectName => $object) |
|
235 | - if (!is_int ($this->getComponentByName ($objectName))) |
|
236 | + foreach ($this->objects as $objectName => $object) { |
|
237 | + if (!is_int ($this->getComponentByName ($objectName))) |
|
236 | 238 | unset ($this->objects[$objectName]); |
239 | + } |
|
237 | 240 | |
238 | 241 | $this->currentSelectedItem->items->clear (); |
239 | 242 | $this->currentSelectedItem->items->addRange (array_keys ($this->objects)); |
@@ -242,8 +245,9 @@ discard block |
||
242 | 245 | |
243 | 246 | public function renameComponent (int $component, string $name, string $fromName = null): void |
244 | 247 | { |
245 | - if ($fromName === null) |
|
246 | - $fromName = $this->getComponentName ($component); |
|
248 | + if ($fromName === null) { |
|
249 | + $fromName = $this->getComponentName ($component); |
|
250 | + } |
|
247 | 251 | |
248 | 252 | $info = $this->objects[$fromName]; |
249 | 253 | unset ($this->objects[$fromName]); |
@@ -8,19 +8,21 @@ discard block |
||
8 | 8 | |
9 | 9 | public static function createProject (string $name = 'default'): bool |
10 | 10 | { |
11 | - if (!is_dir ($dir = 'C:/Users/'. USERNAME .'/Documents/VoidStudio')) |
|
12 | - dir_create ($dir); |
|
11 | + if (!is_dir ($dir = 'C:/Users/'. USERNAME .'/Documents/VoidStudio')) { |
|
12 | + dir_create ($dir); |
|
13 | + } |
|
13 | 14 | |
14 | 15 | if (is_dir ($dir = $dir .'/'. $name)) |
15 | 16 | { |
16 | - if (messageBox ('Проект "'. $name .'" уже создан. Перезаписать его?', 'Подтвердите действие', enum ('System.Windows.Forms.MessageBoxButtons.YesNo'), enum ('System.Windows.Forms.MessageBoxIcon.Question')) == 6) |
|
17 | - dir_clean ($dir); |
|
18 | - |
|
19 | - else return false; |
|
17 | + if (messageBox ('Проект "'. $name .'" уже создан. Перезаписать его?', 'Подтвердите действие', enum ('System.Windows.Forms.MessageBoxButtons.YesNo'), enum ('System.Windows.Forms.MessageBoxIcon.Question')) == 6) { |
|
18 | + dir_clean ($dir); |
|
19 | + } else { |
|
20 | + return false; |
|
21 | + } |
|
22 | + } else { |
|
23 | + dir_create ($dir); |
|
20 | 24 | } |
21 | 25 | |
22 | - else dir_create ($dir); |
|
23 | - |
|
24 | 26 | self::$projectPath = $dir; |
25 | 27 | |
26 | 28 | VoidStudioAPI::getObjects ('main')['MainForm']->caption = $name .' — VoidStudio'; |
@@ -50,15 +52,17 @@ discard block |
||
50 | 52 | $info['forms'][$item] = (string) VoidStudioBuilder::appendDesignerData ($designer->getSharpCode ($item, true), $designer); |
51 | 53 | $info['objects'][$item] = array_keys ($designer->objects); |
52 | 54 | |
53 | - foreach ($designer->objects as $name => $objectType) |
|
54 | - if (isset (Components::$events[$designer->getComponentByName ($name)]) && sizeof (Components::$events[$designer->getComponentByName ($name)]) > 0) |
|
55 | + foreach ($designer->objects as $name => $objectType) { |
|
56 | + if (isset (Components::$events[$designer->getComponentByName ($name)]) && sizeof (Components::$events[$designer->getComponentByName ($name)]) > 0) |
|
55 | 57 | $info['events'][$item][$name] = Components::$events[$designer->getComponentByName ($name)]; |
58 | + } |
|
56 | 59 | } |
57 | 60 | |
58 | 61 | file_put_contents ($file, gzdeflate (serialize ($info), 9)); |
59 | 62 | |
60 | - if (replaceSl (self::$projectPath) != replaceSl (dirname ($file))) |
|
61 | - dir_copy (self::$projectPath .'/modules', dirname ($file) .'/modules'); |
|
63 | + if (replaceSl (self::$projectPath) != replaceSl (dirname ($file))) { |
|
64 | + dir_copy (self::$projectPath .'/modules', dirname ($file) .'/modules'); |
|
65 | + } |
|
62 | 66 | |
63 | 67 | VoidStudioAPI::getObjects ('main')['ToolsPanel__LogList']->items->add ('Проект успешно сохранён'); |
64 | 68 | } |
@@ -83,9 +87,7 @@ discard block |
||
83 | 87 | $designer->control->dispose (); |
84 | 88 | |
85 | 89 | unset ($designer, VoidStudioAPI::$objects['main']['Designer__'. $value->text .'Designer']); |
86 | - } |
|
87 | - |
|
88 | - catch (\Throwable $e) {} |
|
90 | + } catch (\Throwable $e) {} |
|
89 | 91 | }); |
90 | 92 | |
91 | 93 | $objects['Designer__FormsList']->items->clear (); |
@@ -99,9 +101,10 @@ discard block |
||
99 | 101 | |
100 | 102 | $formObjects = array_flip ($info['objects'][$formName]); |
101 | 103 | |
102 | - foreach ($form as $name => $selector) |
|
103 | - if (!isset ($formObjects[$name])) |
|
104 | + foreach ($form as $name => $selector) { |
|
105 | + if (!isset ($formObjects[$name])) |
|
104 | 106 | unset ($form[$name]); |
107 | + } |
|
105 | 108 | |
106 | 109 | $page = new TabPage ($formName); |
107 | 110 | $page->backgroundColor = clWhite; |
@@ -113,18 +116,20 @@ discard block |
||
113 | 116 | { |
114 | 117 | $designer->addComponent ($selector, $name); |
115 | 118 | |
116 | - if (isset ($info['events'][$formName][$name])) |
|
117 | - foreach ($info['events'][$formName][$name] as $eventName => $event) |
|
119 | + if (isset ($info['events'][$formName][$name])) { |
|
120 | + foreach ($info['events'][$formName][$name] as $eventName => $event) |
|
118 | 121 | { |
119 | 122 | Events::reserveObjectEvent ($selector, $eventName); |
123 | + } |
|
120 | 124 | VoidEngine::setObjectEvent ($selector, $eventName, $event); |
121 | 125 | } |
122 | 126 | } |
123 | 127 | |
124 | - if (isset ($info['events'][$formName][$formName])) |
|
125 | - foreach ($info['events'][$formName][$formName] as $eventName => $event) |
|
128 | + if (isset ($info['events'][$formName][$formName])) { |
|
129 | + foreach ($info['events'][$formName][$formName] as $eventName => $event) |
|
126 | 130 | { |
127 | 131 | Events::reserveObjectEvent ($designer->form->selector, $eventName); |
132 | + } |
|
128 | 133 | VoidEngine::setObjectEvent ($designer->form->selector, $eventName, $event); |
129 | 134 | } |
130 | 135 |
@@ -9,19 +9,21 @@ discard block |
||
9 | 9 | |
10 | 10 | public function __construct (WFObject $process) |
11 | 11 | { |
12 | - if ($process->getType ()->toString () == 'System.Diagnostics.Process') |
|
13 | - $this->process = $process; |
|
14 | - |
|
15 | - else throw new \Exception ('$process argument must be an "Process" object'); |
|
12 | + if ($process->getType ()->toString () == 'System.Diagnostics.Process') { |
|
13 | + $this->process = $process; |
|
14 | + } else { |
|
15 | + throw new \Exception ('$process argument must be an "Process" object'); |
|
16 | + } |
|
16 | 17 | } |
17 | 18 | |
18 | 19 | public function dump (string $savePath, string $properties = '', bool $waitForExit = true) |
19 | 20 | { |
20 | 21 | $process = run ('"'. APP_DIR .'/system/procdump/procdump.exe"', $properties .' '. $this->process->id .' "'. filepathNoExt ($savePath) .'"'); |
21 | 22 | |
22 | - if ($waitForExit) |
|
23 | - while (!$process->hasExited) |
|
23 | + if ($waitForExit) { |
|
24 | + while (!$process->hasExited) |
|
24 | 25 | usleep (200); |
26 | + } |
|
25 | 27 | } |
26 | 28 | |
27 | 29 | public function debugRequest (string $command, array $arguments = []) |
@@ -37,9 +39,10 @@ discard block |
||
37 | 39 | { |
38 | 40 | $file = VoidStudioProjectManager::$projectPath .'/build/__debug_answer'; |
39 | 41 | |
40 | - if ($wait) |
|
41 | - while (!file_exists ($file)) |
|
42 | + if ($wait) { |
|
43 | + while (!file_exists ($file)) |
|
42 | 44 | usleep (100); |
45 | + } |
|
43 | 46 | |
44 | 47 | if (file_exists ($file)) |
45 | 48 | { |
@@ -55,9 +55,7 @@ |
||
55 | 55 | VoidStudioBuilder::compileProject (VoidStudioProjectManager::$projectPath .'/build.exe', $formsList->items[0]->text, VoidStudioBuilder::getReferences (ENGINE_DIR .'/VoidEngine.php'), [], false, $debug); |
56 | 56 | |
57 | 57 | self::$project = run (VoidStudioProjectManager::$projectPath .'/build/build.exe'); |
58 | - } |
|
59 | - |
|
60 | - catch (\Throwable $e) |
|
58 | + } catch (\Throwable $e) |
|
61 | 59 | { |
62 | 60 | messageBox ('Нельзя сохранить проект или произошла ошибка компиляции' ."\n\nПодробнее:\n\n". print_r ($e, true), 'Ошибка запуска проекта', enum ('System.Windows.Forms.MessageBoxButtons.OK'), enum ('System.Windows.Forms.MessageBoxIcon.Error')); |
63 | 61 |
@@ -17,9 +17,10 @@ |
||
17 | 17 | |
18 | 18 | spl_autoload_register (function ($class) use ($classes) |
19 | 19 | { |
20 | - if (isset ($classes[$class])) |
|
21 | - include __DIR__ .'/'. $classes[$class]; |
|
22 | -}); |
|
20 | + if (isset ($classes[$class])) { |
|
21 | + include __DIR__ .'/'. $classes[$class]; |
|
22 | + } |
|
23 | + }); |
|
23 | 24 | |
24 | 25 | $required_packages = array |
25 | 26 | ( |
@@ -22,8 +22,9 @@ |
||
22 | 22 | |
23 | 23 | namespace VoidBuilder; |
24 | 24 | |
25 | -if (is_dir ('qero-packages')) |
|
25 | +if (is_dir ('qero-packages')) { |
|
26 | 26 | require_once 'qero-packages/autoload.php'; |
27 | +} |
|
27 | 28 | |
28 | 29 | require 'php/Builder.php'; |
29 | 30 | require 'php/Joiner.php'; |