Sun, 09 Apr 2023 16:27:22 +0300
Also connect up "Select all"
<?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"> <class>MainWindow</class> <widget class="QMainWindow" name="MainWindow"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>1333</width> <height>695</height> </rect> </property> <property name="dockNestingEnabled"> <bool>false</bool> </property> <widget class="QWidget" name="centralwidget"> <layout class="QVBoxLayout" name="verticalLayout_3"> <item> <widget class="QMdiArea" name="mdiArea"> <property name="verticalScrollBarPolicy"> <enum>Qt::ScrollBarAsNeeded</enum> </property> <property name="horizontalScrollBarPolicy"> <enum>Qt::ScrollBarAsNeeded</enum> </property> <property name="viewMode"> <enum>QMdiArea::TabbedView</enum> </property> <property name="documentMode"> <bool>true</bool> </property> <property name="tabsClosable"> <bool>true</bool> </property> <property name="tabsMovable"> <bool>true</bool> </property> </widget> </item> </layout> </widget> <widget class="QMenuBar" name="menubar"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>1333</width> <height>38</height> </rect> </property> <widget class="QMenu" name="menuFile"> <property name="title"> <string>File</string> </property> <widget class="QMenu" name="menuRecentFiles"> <property name="title"> <string>Recent files</string> </property> </widget> <addaction name="actionNew"/> <addaction name="actionOpen"/> <addaction name="menuRecentFiles"/> <addaction name="actionSave"/> <addaction name="actionSaveAs"/> <addaction name="actionClose"/> <addaction name="separator"/> <addaction name="actionSettingsEditor"/> <addaction name="separator"/> <addaction name="actionQuit"/> </widget> <widget class="QMenu" name="menuView"> <property name="title"> <string>View</string> </property> <addaction name="actionRenderStyleNormal"/> <addaction name="actionRenderStyleBfc"/> <addaction name="actionRenderStyleRandom"/> <addaction name="actionRenderStylePickScene"/> <addaction name="actionWireframe"/> <addaction name="separator"/> <addaction name="actionDrawAxes"/> <addaction name="separator"/> <addaction name="actionTileSubWindows"/> <addaction name="actionCascadeSubWindows"/> </widget> <widget class="QMenu" name="menuEdit"> <property name="title"> <string>Edit</string> </property> <addaction name="actionUndo"/> <addaction name="actionRedo"/> <addaction name="separator"/> <addaction name="actionCut"/> <addaction name="actionCopy"/> <addaction name="actionPaste"/> <addaction name="separator"/> <addaction name="actionSelectAll"/> <addaction name="separator"/> <addaction name="actionInvert"/> <addaction name="separator"/> <addaction name="actionGridFine"/> <addaction name="actionGridMedium"/> <addaction name="actionGridCoarse"/> <addaction name="separator"/> <addaction name="actionMakeUnofficial"/> </widget> <widget class="QMenu" name="menuHelp"> <property name="title"> <string>Help</string> </property> <addaction name="actionAbout"/> <addaction name="actionAboutQt"/> </widget> <addaction name="menuFile"/> <addaction name="menuView"/> <addaction name="menuEdit"/> <addaction name="menuHelp"/> </widget> <widget class="QStatusBar" name="statusbar"/> <widget class="QToolBar" name="fileToolBar"> <property name="windowTitle"> <string>toolBar</string> </property> <attribute name="toolBarArea"> <enum>TopToolBarArea</enum> </attribute> <attribute name="toolBarBreak"> <bool>false</bool> </attribute> <addaction name="actionNew"/> <addaction name="actionOpen"/> <addaction name="actionSave"/> <addaction name="actionSaveAs"/> </widget> <widget class="QToolBar" name="toolBar"> <property name="windowTitle"> <string>toolBar</string> </property> <attribute name="toolBarArea"> <enum>TopToolBarArea</enum> </attribute> <attribute name="toolBarBreak"> <bool>false</bool> </attribute> <addaction name="actionRenderStyleNormal"/> <addaction name="actionRenderStyleBfc"/> <addaction name="actionRenderStyleRandom"/> <addaction name="actionWireframe"/> <addaction name="actionDrawAxes"/> </widget> <widget class="QToolBar" name="editToolBar"> <property name="windowTitle"> <string>toolBar_2</string> </property> <attribute name="toolBarArea"> <enum>TopToolBarArea</enum> </attribute> <attribute name="toolBarBreak"> <bool>false</bool> </attribute> <addaction name="actionInvert"/> <addaction name="actionDelete"/> </widget> <widget class="QToolBar" name="editingModesToolBar"> <property name="windowTitle"> <string>toolBar_2</string> </property> <attribute name="toolBarArea"> <enum>LeftToolBarArea</enum> </attribute> <attribute name="toolBarBreak"> <bool>false</bool> </attribute> </widget> <widget class="QDockWidget" name="toolOptionsDock"> <property name="features"> <set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set> </property> <property name="windowTitle"> <string>Tool options</string> </property> <attribute name="dockWidgetArea"> <number>8</number> </attribute> <widget class="QWidget" name="dockWidgetContents_2"> <layout class="QVBoxLayout" name="verticalLayout_2"> <item> <widget class="QStackedWidget" name="toolWidgetStack"/> </item> </layout> </widget> </widget> <widget class="QDockWidget" name="dockWidget_3"> <property name="features"> <set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set> </property> <property name="windowTitle"> <string>Model body</string> </property> <attribute name="dockWidgetArea"> <number>2</number> </attribute> <widget class="QWidget" name="dockWidgetContents_3"> <layout class="QVBoxLayout" name="verticalLayout_4"> <item> <widget class="QPlainTextEdit" name="modelEdit"> <property name="enabled"> <bool>false</bool> </property> </widget> </item> </layout> </widget> </widget> <widget class="QDockWidget" name="messageLogDock"> <property name="features"> <set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set> </property> <property name="windowTitle"> <string>Message log</string> </property> <attribute name="dockWidgetArea"> <number>8</number> </attribute> <widget class="QWidget" name="dockWidgetContents"> <layout class="QVBoxLayout" name="verticalLayout"> <item> <widget class="QTableView" name="messageLog"> <property name="verticalScrollBarPolicy"> <enum>Qt::ScrollBarAlwaysOn</enum> </property> <property name="horizontalScrollBarPolicy"> <enum>Qt::ScrollBarAlwaysOn</enum> </property> <property name="alternatingRowColors"> <bool>true</bool> </property> <property name="verticalScrollMode"> <enum>QAbstractItemView::ScrollPerPixel</enum> </property> <property name="horizontalScrollMode"> <enum>QAbstractItemView::ScrollPerPixel</enum> </property> <property name="gridStyle"> <enum>Qt::DotLine</enum> </property> <attribute name="horizontalHeaderDefaultSectionSize"> <number>150</number> </attribute> <attribute name="horizontalHeaderStretchLastSection"> <bool>true</bool> </attribute> <attribute name="verticalHeaderVisible"> <bool>false</bool> </attribute> </widget> </item> </layout> </widget> </widget> <widget class="QToolBar" name="gridToolBar"> <property name="windowTitle"> <string>toolBar_2</string> </property> <attribute name="toolBarArea"> <enum>TopToolBarArea</enum> </attribute> <attribute name="toolBarBreak"> <bool>false</bool> </attribute> <addaction name="actionGridFine"/> <addaction name="actionGridMedium"/> <addaction name="actionGridCoarse"/> </widget> <widget class="QDockWidget" name="dockWidget"> <property name="features"> <set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set> </property> <property name="windowTitle"> <string>Grid matrix</string> </property> <attribute name="dockWidgetArea"> <number>2</number> </attribute> <widget class="QWidget" name="dockWidgetContents_4"> <layout class="QVBoxLayout" name="verticalLayout_5"> <item> <layout class="QHBoxLayout" name="horizontalLayout"> <item> <widget class="MatrixEditor" name="gridMatrix"/> </item> <item> <spacer name="horizontalSpacer"> <property name="orientation"> <enum>Qt::Horizontal</enum> </property> <property name="sizeHint" stdset="0"> <size> <width>40</width> <height>20</height> </size> </property> </spacer> </item> </layout> </item> <item> <spacer name="verticalSpacer"> <property name="orientation"> <enum>Qt::Vertical</enum> </property> <property name="sizeHint" stdset="0"> <size> <width>20</width> <height>40</height> </size> </property> </spacer> </item> </layout> </widget> </widget> <widget class="QToolBar" name="editToolbar"> <property name="windowTitle"> <string>toolBar_2</string> </property> <attribute name="toolBarArea"> <enum>TopToolBarArea</enum> </attribute> <attribute name="toolBarBreak"> <bool>false</bool> </attribute> <addaction name="actionCut"/> <addaction name="actionCopy"/> <addaction name="actionPaste"/> <addaction name="actionSelectAll"/> </widget> <action name="actionQuit"> <property name="icon"> <iconset resource="../resources.qrc"> <normaloff>:/icons/close.png</normaloff>:/icons/close.png</iconset> </property> <property name="text"> <string>Quit</string> </property> </action> <action name="actionOpen"> <property name="icon"> <iconset resource="../resources.qrc"> <normaloff>:/icons/folder-open-outline.png</normaloff>:/icons/folder-open-outline.png</iconset> </property> <property name="text"> <string>Open…</string> </property> <property name="shortcut"> <string>Ctrl+O</string> </property> </action> <action name="actionNew"> <property name="icon"> <iconset resource="../resources.qrc"> <normaloff>:/icons/document-outline.png</normaloff>:/icons/document-outline.png</iconset> </property> <property name="text"> <string>New</string> </property> <property name="shortcut"> <string>Ctrl+N</string> </property> </action> <action name="actionSettingsEditor"> <property name="icon"> <iconset resource="../resources.qrc"> <normaloff>:/icons/settings-outline.png</normaloff>:/icons/settings-outline.png</iconset> </property> <property name="text"> <string>Preferences…</string> </property> </action> <action name="actionRenderStyleNormal"> <property name="checkable"> <bool>true</bool> </property> <property name="icon"> <iconset resource="../resources.qrc"> <normaloff>:/icons/renderstyle-normal.png</normaloff>:/icons/renderstyle-normal.png</iconset> </property> <property name="text"> <string>Normal colours</string> </property> </action> <action name="actionRenderStyleBfc"> <property name="checkable"> <bool>true</bool> </property> <property name="icon"> <iconset resource="../resources.qrc"> <normaloff>:/icons/renderstyle-bfc.png</normaloff>:/icons/renderstyle-bfc.png</iconset> </property> <property name="text"> <string>BFC color coding</string> </property> </action> <action name="actionRenderStyleRandom"> <property name="checkable"> <bool>true</bool> </property> <property name="icon"> <iconset resource="../resources.qrc"> <normaloff>:/icons/renderstyle-randomcolors.png</normaloff>:/icons/renderstyle-randomcolors.png</iconset> </property> <property name="text"> <string>Random colours</string> </property> </action> <action name="actionRenderStylePickScene"> <property name="checkable"> <bool>true</bool> </property> <property name="text"> <string>Pick scene colours</string> </property> </action> <action name="actionSave"> <property name="icon"> <iconset resource="../resources.qrc"> <normaloff>:/icons/save-outline.png</normaloff>:/icons/save-outline.png</iconset> </property> <property name="text"> <string>Save</string> </property> <property name="shortcut"> <string>Ctrl+S</string> </property> </action> <action name="actionSaveAs"> <property name="icon"> <iconset resource="../resources.qrc"> <normaloff>:/icons/save-as-outline.png</normaloff>:/icons/save-as-outline.png</iconset> </property> <property name="text"> <string>Save as…</string> </property> <property name="shortcut"> <string>Ctrl+Shift+S</string> </property> </action> <action name="actionClose"> <property name="icon"> <iconset resource="../resources.qrc"> <normaloff>:/icons/close-circle-outline.png</normaloff>:/icons/close-circle-outline.png</iconset> </property> <property name="text"> <string>Close</string> </property> <property name="shortcut"> <string>Ctrl+W</string> </property> </action> <action name="actionDelete"> <property name="icon"> <iconset resource="../resources.qrc"> <normaloff>:/icons/trash-bin-outline.png</normaloff>:/icons/trash-bin-outline.png</iconset> </property> <property name="text"> <string>Delete</string> </property> <property name="shortcut"> <string>Del</string> </property> </action> <action name="actionDrawAxes"> <property name="checkable"> <bool>true</bool> </property> <property name="icon"> <iconset resource="../resources.qrc"> <normaloff>:/icons/axes.png</normaloff>:/icons/axes.png</iconset> </property> <property name="text"> <string>Draw axes</string> </property> </action> <action name="actionGridFine"> <property name="checkable"> <bool>true</bool> </property> <property name="text"> <string>Fine grid</string> </property> <property name="shortcut"> <string>Ctrl+1</string> </property> </action> <action name="actionGridMedium"> <property name="checkable"> <bool>true</bool> </property> <property name="text"> <string>Medium grid</string> </property> <property name="shortcut"> <string>Ctrl+2</string> </property> </action> <action name="actionGridCoarse"> <property name="checkable"> <bool>true</bool> </property> <property name="text"> <string>Coarse grid</string> </property> <property name="shortcut"> <string>Ctrl+3</string> </property> </action> <action name="actionInvert"> <property name="icon"> <iconset resource="../resources.qrc"> <normaloff>:/icons/invert.png</normaloff>:/icons/invert.png</iconset> </property> <property name="text"> <string>Invert</string> </property> </action> <action name="actionAboutQt"> <property name="text"> <string>About Qt</string> </property> </action> <action name="actionWireframe"> <property name="checkable"> <bool>true</bool> </property> <property name="icon"> <iconset resource="../resources.qrc"> <normaloff>:/icons/renderstyle-wireframe.png</normaloff>:/icons/renderstyle-wireframe.png</iconset> </property> <property name="text"> <string>Wireframe</string> </property> </action> <action name="actionMakeUnofficial"> <property name="text"> <string>Make unofficial</string> </property> </action> <action name="actionAbout"> <property name="icon"> <iconset resource="../resources.qrc"> <normaloff>:/icons/appicon.png</normaloff>:/icons/appicon.png</iconset> </property> <property name="text"> <string>About %1</string> </property> </action> <action name="actionTileSubWindows"> <property name="text"> <string>Tile subwindows</string> </property> </action> <action name="actionCascadeSubWindows"> <property name="text"> <string>Cascade subwindows</string> </property> </action> <action name="actionSelectAll"> <property name="text"> <string>Select all</string> </property> <property name="shortcut"> <string>Ctrl+A</string> </property> </action> <action name="actionCopy"> <property name="icon"> <iconset resource="../resources.qrc"> <normaloff>:/icons/copy.png</normaloff>:/icons/copy.png</iconset> </property> <property name="text"> <string>Copy</string> </property> <property name="shortcut"> <string>Ctrl+C</string> </property> </action> <action name="actionCut"> <property name="icon"> <iconset resource="../resources.qrc"> <normaloff>:/icons/cut.png</normaloff>:/icons/cut.png</iconset> </property> <property name="text"> <string>Cut</string> </property> <property name="shortcut"> <string>Ctrl+X</string> </property> </action> <action name="actionPaste"> <property name="icon"> <iconset resource="../resources.qrc"> <normaloff>:/icons/paste.png</normaloff>:/icons/paste.png</iconset> </property> <property name="text"> <string>Paste</string> </property> <property name="shortcut"> <string>Ctrl+V</string> </property> </action> <action name="actionUndo"> <property name="text"> <string>Undo</string> </property> <property name="shortcut"> <string>Ctrl+Z</string> </property> </action> <action name="actionRedo"> <property name="text"> <string>Redo</string> </property> <property name="shortcut"> <string>Ctrl+Y</string> </property> </action> </widget> <customwidgets> <customwidget> <class>MatrixEditor</class> <extends>QWidget</extends> <header>widgets/matrixeditor.h</header> </customwidget> </customwidgets> <resources> <include location="../resources.qrc"/> <include location="../resources.qrc"/> </resources> <connections> <connection> <sender>actionTileSubWindows</sender> <signal>triggered()</signal> <receiver>mdiArea</receiver> <slot>tileSubWindows()</slot> <hints> <hint type="sourcelabel"> <x>-1</x> <y>-1</y> </hint> <hint type="destinationlabel"> <x>231</x> <y>202</y> </hint> </hints> </connection> <connection> <sender>actionCascadeSubWindows</sender> <signal>triggered()</signal> <receiver>mdiArea</receiver> <slot>cascadeSubWindows()</slot> <hints> <hint type="sourcelabel"> <x>-1</x> <y>-1</y> </hint> <hint type="destinationlabel"> <x>231</x> <y>202</y> </hint> </hints> </connection> <connection> <sender>actionUndo</sender> <signal>triggered()</signal> <receiver>modelEdit</receiver> <slot>undo()</slot> <hints> <hint type="sourcelabel"> <x>-1</x> <y>-1</y> </hint> <hint type="destinationlabel"> <x>1041</x> <y>163</y> </hint> </hints> </connection> <connection> <sender>actionRedo</sender> <signal>triggered()</signal> <receiver>modelEdit</receiver> <slot>redo()</slot> <hints> <hint type="sourcelabel"> <x>-1</x> <y>-1</y> </hint> <hint type="destinationlabel"> <x>1041</x> <y>163</y> </hint> </hints> </connection> <connection> <sender>actionCut</sender> <signal>triggered()</signal> <receiver>modelEdit</receiver> <slot>cut()</slot> <hints> <hint type="sourcelabel"> <x>-1</x> <y>-1</y> </hint> <hint type="destinationlabel"> <x>1041</x> <y>163</y> </hint> </hints> </connection> <connection> <sender>actionCopy</sender> <signal>triggered()</signal> <receiver>modelEdit</receiver> <slot>copy()</slot> <hints> <hint type="sourcelabel"> <x>-1</x> <y>-1</y> </hint> <hint type="destinationlabel"> <x>1041</x> <y>163</y> </hint> </hints> </connection> <connection> <sender>actionPaste</sender> <signal>triggered()</signal> <receiver>modelEdit</receiver> <slot>paste()</slot> <hints> <hint type="sourcelabel"> <x>-1</x> <y>-1</y> </hint> <hint type="destinationlabel"> <x>1041</x> <y>163</y> </hint> </hints> </connection> <connection> <sender>actionSelectAll</sender> <signal>triggered()</signal> <receiver>modelEdit</receiver> <slot>selectAll()</slot> <hints> <hint type="sourcelabel"> <x>-1</x> <y>-1</y> </hint> <hint type="destinationlabel"> <x>1041</x> <y>163</y> </hint> </hints> </connection> </connections> </ui>