Warning, /graphics/krita/libs/ui/forms/wdgperformancesettings.ui is written in an unsupported language. File is not indexed.
0001 <?xml version="1.0" encoding="UTF-8"?> 0002 <ui version="4.0"> 0003 <author> 0004 SPDX-FileCopyrightText: none 0005 SPDX-License-Identifier: GPL-3.0-or-later 0006 </author> 0007 <class>WdgPerformanceSettings</class> 0008 <widget class="QWidget" name="WdgPerformanceSettings"> 0009 <property name="geometry"> 0010 <rect> 0011 <x>0</x> 0012 <y>0</y> 0013 <width>509</width> 0014 <height>490</height> 0015 </rect> 0016 </property> 0017 <layout class="QVBoxLayout" name="verticalLayout_3"> 0018 <property name="leftMargin"> 0019 <number>0</number> 0020 </property> 0021 <property name="topMargin"> 0022 <number>0</number> 0023 </property> 0024 <property name="rightMargin"> 0025 <number>0</number> 0026 </property> 0027 <property name="bottomMargin"> 0028 <number>0</number> 0029 </property> 0030 <item> 0031 <widget class="QLabel" name="label_10"> 0032 <property name="font"> 0033 <font> 0034 <weight>75</weight> 0035 <bold>true</bold> 0036 </font> 0037 </property> 0038 <property name="text"> 0039 <string>Note: Krita will need to be restarted for changes to take effect</string> 0040 </property> 0041 </widget> 0042 </item> 0043 <item> 0044 <widget class="QTabWidget" name="tabWidget"> 0045 <property name="currentIndex"> 0046 <number>0</number> 0047 </property> 0048 <widget class="QWidget" name="tab"> 0049 <attribute name="title"> 0050 <string>General</string> 0051 </attribute> 0052 <layout class="QVBoxLayout" name="verticalLayout_2"> 0053 <item> 0054 <widget class="QGroupBox" name="groupBox"> 0055 <property name="title"> 0056 <string>RAM</string> 0057 </property> 0058 <layout class="QFormLayout" name="formLayout"> 0059 <item row="0" column="0"> 0060 <widget class="QLabel" name="label_2"> 0061 <property name="text"> 0062 <string>Memory available:</string> 0063 </property> 0064 </widget> 0065 </item> 0066 <item row="0" column="1"> 0067 <widget class="QLabel" name="lblTotalMemory"> 0068 <property name="sizePolicy"> 0069 <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred"> 0070 <horstretch>0</horstretch> 0071 <verstretch>0</verstretch> 0072 </sizepolicy> 0073 </property> 0074 <property name="text"> 0075 <string>XXX MiB</string> 0076 </property> 0077 <property name="alignment"> 0078 <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> 0079 </property> 0080 </widget> 0081 </item> 0082 <item row="1" column="0"> 0083 <widget class="QLabel" name="label"> 0084 <property name="toolTip"> 0085 <string>Krita will not use more memory than this limit.</string> 0086 </property> 0087 <property name="text"> 0088 <string>Memory Limit:</string> 0089 </property> 0090 </widget> 0091 </item> 0092 <item row="1" column="1"> 0093 <layout class="QGridLayout" name="gridLayout" columnstretch="4,1"> 0094 <item row="0" column="0"> 0095 <widget class="KisDoubleSliderSpinBox" name="sliderMemoryLimit" native="true"> 0096 <property name="sizePolicy"> 0097 <sizepolicy hsizetype="MinimumExpanding" vsizetype="Minimum"> 0098 <horstretch>0</horstretch> 0099 <verstretch>0</verstretch> 0100 </sizepolicy> 0101 </property> 0102 <property name="toolTip"> 0103 <string>Krita will not use more memory than this limit.</string> 0104 </property> 0105 </widget> 0106 </item> 0107 <item row="0" column="1"> 0108 <widget class="KisIntParseSpinBox" name="intMemoryLimit"> 0109 <property name="suffix"> 0110 <string> MiB</string> 0111 </property> 0112 </widget> 0113 </item> 0114 </layout> 0115 </item> 0116 <item row="2" column="0"> 0117 <widget class="QLabel" name="label_5"> 0118 <property name="text"> 0119 <string>Internal Pool:</string> 0120 </property> 0121 </widget> 0122 </item> 0123 <item row="2" column="1"> 0124 <layout class="QGridLayout" name="gridLayout_2" columnstretch="4,1"> 0125 <item row="0" column="0"> 0126 <widget class="KisDoubleSliderSpinBox" name="sliderPoolLimit" native="true"> 0127 <property name="sizePolicy"> 0128 <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred"> 0129 <horstretch>0</horstretch> 0130 <verstretch>0</verstretch> 0131 </sizepolicy> 0132 </property> 0133 </widget> 0134 </item> 0135 <item row="0" column="1"> 0136 <widget class="KisIntParseSpinBox" name="intPoolLimit"> 0137 <property name="suffix"> 0138 <string> MiB</string> 0139 </property> 0140 </widget> 0141 </item> 0142 </layout> 0143 </item> 0144 <item row="3" column="0"> 0145 <widget class="QLabel" name="label_4"> 0146 <property name="toolTip"> 0147 <string>When undo information reaches this limit, it will be stored in a temporary file and memory will be freed. Undo will be slower.</string> 0148 </property> 0149 <property name="text"> 0150 <string>Swap Undo After:</string> 0151 </property> 0152 </widget> 0153 </item> 0154 <item row="3" column="1"> 0155 <layout class="QGridLayout" name="gridLayout_3" columnstretch="4,1"> 0156 <item row="0" column="0"> 0157 <widget class="KisDoubleSliderSpinBox" name="sliderUndoLimit" native="true"> 0158 <property name="sizePolicy"> 0159 <sizepolicy hsizetype="MinimumExpanding" vsizetype="Minimum"> 0160 <horstretch>0</horstretch> 0161 <verstretch>0</verstretch> 0162 </sizepolicy> 0163 </property> 0164 <property name="toolTip"> 0165 <string>When undo information reaches this limit, it will be stored in a temporary file and memory will be freed. Undo will be slower.</string> 0166 </property> 0167 </widget> 0168 </item> 0169 <item row="0" column="1"> 0170 <widget class="KisIntParseSpinBox" name="intUndoLimit"> 0171 <property name="suffix"> 0172 <string> MiB</string> 0173 </property> 0174 </widget> 0175 </item> 0176 </layout> 0177 </item> 0178 </layout> 0179 </widget> 0180 </item> 0181 <item> 0182 <widget class="QGroupBox" name="groupBox_2"> 0183 <property name="title"> 0184 <string>Swap File</string> 0185 </property> 0186 <layout class="QFormLayout" name="formLayout_2"> 0187 <item row="0" column="0"> 0188 <widget class="QLabel" name="label_6"> 0189 <property name="toolTip"> 0190 <string>The swap file will not be bigger than this limit.</string> 0191 </property> 0192 <property name="text"> 0193 <string>Size Limit:</string> 0194 </property> 0195 </widget> 0196 </item> 0197 <item row="0" column="1"> 0198 <layout class="QGridLayout" name="gridLayout_4" columnstretch="4,1"> 0199 <item row="0" column="0"> 0200 <widget class="KisSliderSpinBox" name="sliderSwapSize" native="true"> 0201 <property name="sizePolicy"> 0202 <sizepolicy hsizetype="MinimumExpanding" vsizetype="Minimum"> 0203 <horstretch>0</horstretch> 0204 <verstretch>0</verstretch> 0205 </sizepolicy> 0206 </property> 0207 <property name="toolTip"> 0208 <string>The swap file will not be bigger than this limit.</string> 0209 </property> 0210 </widget> 0211 </item> 0212 <item row="0" column="1"> 0213 <widget class="KisIntParseSpinBox" name="intSwapSize"> 0214 <property name="suffix"> 0215 <string> GiB</string> 0216 </property> 0217 </widget> 0218 </item> 0219 </layout> 0220 </item> 0221 <item row="1" column="0"> 0222 <widget class="QLabel" name="label_3"> 0223 <property name="text"> 0224 <string>Location:</string> 0225 </property> 0226 </widget> 0227 </item> 0228 <item row="1" column="1"> 0229 <widget class="KisFileNameRequester" name="swapFileLocation" native="true"/> 0230 </item> 0231 </layout> 0232 </widget> 0233 </item> 0234 <item> 0235 <spacer name="verticalSpacer_2"> 0236 <property name="orientation"> 0237 <enum>Qt::Vertical</enum> 0238 </property> 0239 <property name="sizeHint" stdset="0"> 0240 <size> 0241 <width>20</width> 0242 <height>5</height> 0243 </size> 0244 </property> 0245 </spacer> 0246 </item> 0247 </layout> 0248 </widget> 0249 <widget class="QWidget" name="tab_2"> 0250 <attribute name="title"> 0251 <string>Advanced</string> 0252 </attribute> 0253 <layout class="QFormLayout" name="formLayout_5"> 0254 <item row="0" column="0" colspan="2"> 0255 <widget class="QGroupBox" name="groupBox_4"> 0256 <property name="title"> 0257 <string>Multithreading</string> 0258 </property> 0259 <layout class="QFormLayout" name="formLayout_3"> 0260 <item row="0" column="0"> 0261 <widget class="QLabel" name="label_8"> 0262 <property name="text"> 0263 <string>CPU Limit:</string> 0264 </property> 0265 </widget> 0266 </item> 0267 <item row="0" column="1"> 0268 <widget class="KisSliderSpinBox" name="sliderThreadsLimit" native="true"> 0269 <property name="sizePolicy"> 0270 <sizepolicy hsizetype="MinimumExpanding" vsizetype="Minimum"> 0271 <horstretch>0</horstretch> 0272 <verstretch>0</verstretch> 0273 </sizepolicy> 0274 </property> 0275 <property name="toolTip"> 0276 <string><html><head/><body><p>Krita will not use more CPU cores than selected by this limit</p></body></html></string> 0277 </property> 0278 </widget> 0279 </item> 0280 <item row="1" column="0"> 0281 <widget class="QLabel" name="label_9"> 0282 <property name="text"> 0283 <string>Frame Rendering Clones Limit</string> 0284 </property> 0285 </widget> 0286 </item> 0287 <item row="1" column="1"> 0288 <widget class="KisSliderSpinBox" name="sliderFrameClonesLimit" native="true"> 0289 <property name="sizePolicy"> 0290 <sizepolicy hsizetype="MinimumExpanding" vsizetype="Minimum"> 0291 <horstretch>0</horstretch> 0292 <verstretch>0</verstretch> 0293 </sizepolicy> 0294 </property> 0295 <property name="toolTip"> 0296 <string><html><head/><body><p>When rendering animation frames (into files or during animation cache regeneration), Krita will make the specified number of copies of your image and will work on them in parallel. Each copy will demand more RAM for its storage (about 20% of the size of you image), so raise this limit only if you have enough RAM installed.</p><p><br/></p><p><span style=" font-weight:600;">Recommended value:</span> set Clones Limit to the number of <span style=" text-decoration: underline;">physical</span> (non-hyperthreaded) cores your CPU has</p></body></html></string> 0297 </property> 0298 </widget> 0299 </item> 0300 <item row="2" column="0"> 0301 <widget class="QLabel" name="label_11"> 0302 <property name="text"> 0303 <string>Frame Rendering Timeout</string> 0304 </property> 0305 </widget> 0306 </item> 0307 <item row="2" column="1"> 0308 <widget class="KisSliderSpinBox" name="sliderFrameTimeout" native="true"> 0309 <property name="sizePolicy"> 0310 <sizepolicy hsizetype="MinimumExpanding" vsizetype="Minimum"> 0311 <horstretch>0</horstretch> 0312 <verstretch>0</verstretch> 0313 </sizepolicy> 0314 </property> 0315 <property name="toolTip"> 0316 <string><html><head/><body><p>The timeout for rendering one frame. If your animation rendering fails regularly with a timeout, try increasing this value</p><p><br/></p><p><span style=" font-weight:600;">Recommended value:</span> 30...60 seconds</p></body></html></string> 0317 </property> 0318 </widget> 0319 </item> 0320 </layout> 0321 </widget> 0322 </item> 0323 <item row="1" column="0"> 0324 <widget class="QLabel" name="label_fps"> 0325 <property name="text"> 0326 <string>Limit frames per second while painting:</string> 0327 </property> 0328 </widget> 0329 </item> 0330 <item row="1" column="1"> 0331 <widget class="KisSliderSpinBox" name="sliderFpsLimit" native="true"> 0332 <property name="sizePolicy"> 0333 <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred"> 0334 <horstretch>0</horstretch> 0335 <verstretch>0</verstretch> 0336 </sizepolicy> 0337 </property> 0338 <property name="toolTip"> 0339 <string><html><head/><body><p>Krita will try to limit the number of screen updates per second to the given number. A lower number will decrease visual responsiveness but increase stylus precision on some systems like macOS.<p></body></html></string> 0340 </property> 0341 </widget> 0342 </item> 0343 <item row="2" column="0" colspan="2"> 0344 <widget class="QGroupBox" name="groupBox_7"> 0345 <property name="title"> 0346 <string>Debug options</string> 0347 </property> 0348 <layout class="QFormLayout" name="formLayout_9"> 0349 <item row="0" column="0"> 0350 <widget class="QCheckBox" name="chkOpenGLFramerateLogging"> 0351 <property name="text"> 0352 <string>Debug logging of OpenGL framerate</string> 0353 </property> 0354 </widget> 0355 </item> 0356 <item row="1" column="0"> 0357 <widget class="QCheckBox" name="chkBrushSpeedLogging"> 0358 <property name="text"> 0359 <string>Debug logging for brush rendering speed</string> 0360 </property> 0361 </widget> 0362 </item> 0363 <item row="2" column="0"> 0364 <widget class="QCheckBox" name="chkDisableAVXOptimizations"> 0365 <property name="text"> 0366 <string>Disable AVX vector optimizations</string> 0367 </property> 0368 </widget> 0369 </item> 0370 <item row="3" column="0"> 0371 <widget class="QCheckBox" name="chkDisableVectorOptimizations"> 0372 <property name="text"> 0373 <string>Disable all vector optimizations</string> 0374 </property> 0375 </widget> 0376 </item> 0377 <item row="4" column="0"> 0378 <widget class="QCheckBox" name="chkProgressReporting"> 0379 <property name="text"> 0380 <string>Progress reporting (might affect performance)</string> 0381 </property> 0382 </widget> 0383 </item> 0384 <item row="5" column="0"> 0385 <widget class="QCheckBox" name="chkPerformanceLogging"> 0386 <property name="text"> 0387 <string>Performance logging</string> 0388 </property> 0389 </widget> 0390 </item> 0391 </layout> 0392 </widget> 0393 </item> 0394 <item row="3" column="0" colspan="2"> 0395 <widget class="QLabel" name="label_7"> 0396 <property name="frameShape"> 0397 <enum>QFrame::NoFrame</enum> 0398 </property> 0399 <property name="text"> 0400 <string><html><head/><body><p>When performance logging is enabled Krita saves timing information into the <tt>&lt;working_dir&gt;/log</tt> folder. If you experience performance problems and want to help us, enable this option and add the contents of the directory to a bug report.</p></body></html></string> 0401 </property> 0402 <property name="alignment"> 0403 <set>Qt::AlignJustify|Qt::AlignVCenter</set> 0404 </property> 0405 <property name="wordWrap"> 0406 <bool>true</bool> 0407 </property> 0408 </widget> 0409 </item> 0410 <item row="4" column="0" colspan="2"> 0411 <spacer name="verticalSpacer_3"> 0412 <property name="orientation"> 0413 <enum>Qt::Vertical</enum> 0414 </property> 0415 <property name="sizeHint" stdset="0"> 0416 <size> 0417 <width>20</width> 0418 <height>5</height> 0419 </size> 0420 </property> 0421 </spacer> 0422 </item> 0423 </layout> 0424 </widget> 0425 <widget class="QWidget" name="tab_3"> 0426 <attribute name="title"> 0427 <string>Animation Cache</string> 0428 </attribute> 0429 <layout class="QFormLayout" name="formLayout_8"> 0430 <item row="0" column="0" colspan="2"> 0431 <widget class="QGroupBox" name="groupBox_3"> 0432 <property name="title"> 0433 <string>Cache Storage Backend</string> 0434 </property> 0435 <layout class="QFormLayout" name="formLayout_6"> 0436 <item row="0" column="1"> 0437 <widget class="QRadioButton" name="optInMemory"> 0438 <property name="toolTip"> 0439 <string><html><head/><body><p>Animation frame cache will be stored in RAM completely without any limitations</p><p><span style=" font-weight:600;">WARNING:</span> please make sure your computer has enough RAM <span style=" text-decoration: underline;">above</span> the amount you requested in General tab. Otherwise you might face system freezes.</p><p>* for 1 second of FullHD@25fps video you need extra 200 MiB of memory</p><p>* for 1 second of 4K UltraHD@25fps video you need extra 800 MiB of memory</p></body></html></string> 0440 </property> 0441 <property name="text"> 0442 <string>In-memory</string> 0443 </property> 0444 </widget> 0445 </item> 0446 <item row="1" column="1"> 0447 <widget class="QRadioButton" name="optOnDisk"> 0448 <property name="toolTip"> 0449 <string><html><head/><body><p>Animation frames are stored on hard disk in the same folder as swap file. The cache is stored in a compressed way. Little amount of extra RAM is needed.</p><p>Since data transfer speed of the hard drive is low, you might want to limit cached frame size to be able to play your video at 25 fps. The limit of 2500 px is usually a good choice.</p></body></html></string> 0450 </property> 0451 <property name="text"> 0452 <string>On-disk</string> 0453 </property> 0454 </widget> 0455 </item> 0456 </layout> 0457 </widget> 0458 </item> 0459 <item row="1" column="0" colspan="2"> 0460 <widget class="QGroupBox" name="groupBox_5"> 0461 <property name="title"> 0462 <string>Cache Generation Options</string> 0463 </property> 0464 <layout class="QFormLayout" name="formLayout_4"> 0465 <item row="0" column="0"> 0466 <widget class="QCheckBox" name="chkCachedFramesSizeLimit"> 0467 <property name="toolTip"> 0468 <string><html><head/><body><p>Render scaled down version of the frame if the image is bigger than the provided limit. Make sure you enable this option when using on-disk storage backend.</p></body></html></string> 0469 </property> 0470 <property name="text"> 0471 <string>Limit cached frame size:</string> 0472 </property> 0473 </widget> 0474 </item> 0475 <item row="0" column="1"> 0476 <widget class="KisSliderSpinBox" name="intCachedFramesSizeLimit" native="true"> 0477 <property name="sizePolicy"> 0478 <sizepolicy hsizetype="MinimumExpanding" vsizetype="Minimum"> 0479 <horstretch>0</horstretch> 0480 <verstretch>0</verstretch> 0481 </sizepolicy> 0482 </property> 0483 <property name="toolTip"> 0484 <string><html><head/><body><p>Size limit after which the frames will be scaled down</p><p><span style=" font-weight:600;">Recommended value:</span> 2500&nbsp;px</p></body></html></string> 0485 </property> 0486 </widget> 0487 </item> 0488 <item row="1" column="0"> 0489 <widget class="QCheckBox" name="chkUseRegionOfInterest"> 0490 <property name="toolTip"> 0491 <string><html><head/><body><p>When the image is too big, render only currently visible part of it</p></body></html></string> 0492 </property> 0493 <property name="text"> 0494 <string>Use region of interest</string> 0495 </property> 0496 </widget> 0497 </item> 0498 <item row="1" column="1"> 0499 <widget class="KisSliderSpinBox" name="intRegionOfInterestMargin" native="true"> 0500 <property name="sizePolicy"> 0501 <sizepolicy hsizetype="MinimumExpanding" vsizetype="Minimum"> 0502 <horstretch>0</horstretch> 0503 <verstretch>0</verstretch> 0504 </sizepolicy> 0505 </property> 0506 <property name="toolTip"> 0507 <string><html><head/><body><p>Add extra area to the region of interest to each side of the canvas.</p><p><span style=" font-weight:600;">Recommended value:</span> 25%. The region of interest will be extended by 25% to each side.</p></body></html></string> 0508 </property> 0509 </widget> 0510 </item> 0511 <item row="2" column="0"> 0512 <widget class="QCheckBox" name="chkBackgroundCacheGeneration"> 0513 <property name="toolTip"> 0514 <string><html><head/><body><p>Automatically prerender animation cache in background when the user is idle</p></body></html></string> 0515 </property> 0516 <property name="text"> 0517 <string>Enable background cache generation</string> 0518 </property> 0519 </widget> 0520 </item> 0521 </layout> 0522 </widget> 0523 </item> 0524 <item row="2" column="0" colspan="2"> 0525 <spacer name="verticalSpacer"> 0526 <property name="orientation"> 0527 <enum>Qt::Vertical</enum> 0528 </property> 0529 <property name="sizeHint" stdset="0"> 0530 <size> 0531 <width>20</width> 0532 <height>40</height> 0533 </size> 0534 </property> 0535 </spacer> 0536 </item> 0537 </layout> 0538 </widget> 0539 <widget class="QWidget" name="tab_4"> 0540 <attribute name="title"> 0541 <string>Instant Preview</string> 0542 </attribute> 0543 <layout class="QVBoxLayout" name="verticalLayout_6"> 0544 <item> 0545 <widget class="QCheckBox" name="chkTransformToolUseInStackPreview"> 0546 <property name="toolTip"> 0547 <string/> 0548 </property> 0549 <property name="text"> 0550 <string>Use in-stack preview in Transform Tool</string> 0551 </property> 0552 </widget> 0553 </item> 0554 <item> 0555 <widget class="QGroupBox" name="groupBox_6"> 0556 <property name="title"> 0557 <string>Force Instant Preview</string> 0558 </property> 0559 <layout class="QFormLayout" name="formLayout_7"> 0560 <item row="2" column="1"> 0561 <widget class="QCheckBox" name="chkFiltersForceLodMode"> 0562 <property name="toolTip"> 0563 <string><html><head/><body><p>The filter dialog will always use instant preview, even if instant preview is disabled in the &quot;View&quot; menu</p></body></html></string> 0564 </property> 0565 <property name="text"> 0566 <string>in Filters</string> 0567 </property> 0568 </widget> 0569 </item> 0570 <item row="1" column="1"> 0571 <widget class="QCheckBox" name="chkTransformToolForceLodMode"> 0572 <property name="toolTip"> 0573 <string><html><head/><body><p>The transform tool preview will always use instant preview, even if instant preview is disabled in the &quot;View&quot; menu</p></body></html></string> 0574 </property> 0575 <property name="text"> 0576 <string>in Transform Tool</string> 0577 </property> 0578 </widget> 0579 </item> 0580 <item row="0" column="1"> 0581 <widget class="QCheckBox" name="chkMoveToolForceLodMode"> 0582 <property name="toolTip"> 0583 <string><html><head/><body><p>The move tool preview will always use instant preview, even if instant preview is disabled in the &quot;View&quot; menu</p></body></html></string> 0584 </property> 0585 <property name="text"> 0586 <string>in Move Tool</string> 0587 </property> 0588 </widget> 0589 </item> 0590 </layout> 0591 </widget> 0592 </item> 0593 <item> 0594 <spacer name="verticalSpacer_4"> 0595 <property name="orientation"> 0596 <enum>Qt::Vertical</enum> 0597 </property> 0598 <property name="sizeHint" stdset="0"> 0599 <size> 0600 <width>20</width> 0601 <height>0</height> 0602 </size> 0603 </property> 0604 </spacer> 0605 </item> 0606 </layout> 0607 </widget> 0608 </widget> 0609 </item> 0610 </layout> 0611 </widget> 0612 <customwidgets> 0613 <customwidget> 0614 <class>KisSliderSpinBox</class> 0615 <extends>QSpinBox</extends> 0616 <header location="global">kis_slider_spin_box.h</header> 0617 <container>1</container> 0618 </customwidget> 0619 <customwidget> 0620 <class>KisIntParseSpinBox</class> 0621 <extends>QSpinBox</extends> 0622 <header>kis_int_parse_spin_box.h</header> 0623 </customwidget> 0624 <customwidget> 0625 <class>KisDoubleSliderSpinBox</class> 0626 <extends>QDoubleSpinBox</extends> 0627 <header location="global">kis_slider_spin_box.h</header> 0628 <container>1</container> 0629 </customwidget> 0630 <customwidget> 0631 <class>KisFileNameRequester</class> 0632 <extends>QWidget</extends> 0633 <header>kis_file_name_requester.h</header> 0634 <container>1</container> 0635 </customwidget> 0636 </customwidgets> 0637 <resources/> 0638 <connections/> 0639 </ui>