Warning, /rolisteam/rolisteam/src/libraries/mindmap/resources/qml/Content.qml is written in an unsupported language. File is not indexed.
0001 import QtQuick 0002 import QtQuick.Window 0003 import QtQuick.Controls 0004 import QtQuick.Layouts 0005 import QtQuick.Dialogs 0006 import mindmap 0007 import Customization 0008 import utils 0009 0010 Pane { 0011 id: root 0012 0013 property QtObject styleSheet: Theme.styleSheet("mindmap") 0014 property real viewScale: 1 0015 property int idx: 0 0016 property bool darkMode: false 0017 property alias addPackage: _buttonGrid.addPackage 0018 required property MindMapController ctrl 0019 property alias actions: _buttonGrid.actions 0020 0021 0022 0023 onDarkModeChanged: Theme.nightMode = root.darkMode 0024 0025 /*Component.onCompleted: { 0026 MindmapManager.ctrl.url = "file:///home/renaud/application/mine/renaudg/rolisteam/src/tests/manual/mindmap/campaign/media/test.rmap" 0027 //MindmapManager.ctrl.loadFile(); 0028 }*/ 0029 0030 MindMap { 0031 id: mindMap 0032 anchors.fill: parent 0033 ctrl: root.ctrl 0034 zoomLevel: root.ctrl.zoomLevel 0035 addSubLink: _buttonGrid.addArrow 0036 marginW: _minimized.width 0037 onOpenImage: (id)=>{ 0038 imgSelector.uuid = id 0039 imgSelector.open() 0040 } 0041 onPressed: (mouse)=> { 0042 if(root.addPackage) 0043 root.ctrl.addPackage(Qt.point(mouse.x, mouse.y)) 0044 else 0045 mouse.accepted = false 0046 } 0047 onPositionChanged: (mouse)=>{ 0048 if(root.addPackage) 0049 root.ctrl.updatePackage(Qt.point(mouse.x, mouse.y)) 0050 else 0051 mouse.accepted = false 0052 } 0053 onReleased: { 0054 if(root.addPackage) 0055 root.addPackage = false 0056 else 0057 mouse.accepted = false 0058 } 0059 } 0060 MindMenu { 0061 id: menu 0062 ctrl: root.ctrl 0063 } 0064 0065 FileDialog { 0066 id: imgSelector 0067 property string uuid 0068 fileMode: FileDialog.OpenFile 0069 nameFilters: [qsTr("Images (*.jpg *.png *.jpeg *.gif *.bmp)")] 0070 onAccepted: { 0071 root.ctrl.openImage(imgSelector.uuid, imgSelector.selectedFile) 0072 } 0073 } 0074 0075 FileDialog { 0076 id: screenShotSelector 0077 property string uuid 0078 defaultSuffix: "png" 0079 fileMode: FileDialog.SaveFile 0080 nameFilters: [qsTr("Images (*.png)")] 0081 onAccepted: { 0082 mindMap.makeScreenShot(screenShotSelector.selectedFile) 0083 } 0084 } 0085 0086 0087 RowLayout{ 0088 anchors.top: parent.top 0089 anchors.right: parent.right 0090 anchors.rightMargin: root.styleSheet.margin 0091 anchors.topMargin: root.styleSheet.margin 0092 0093 IconButton {//undo 0094 source: root.styleSheet.undoIcon 0095 enabled: root.ctrl.canUndo 0096 onClicked: root.ctrl.undo() 0097 } 0098 IconButton {//redo 0099 source: root.styleSheet.redoIcon 0100 enabled: root.ctrl.canRedo 0101 onClicked: root.ctrl.redo() 0102 } 0103 IconButton { 0104 source: root.styleSheet.listIcon 0105 onClicked: drawer.open() 0106 } 0107 } 0108 0109 ButtonGrid { 0110 id: _buttonGrid 0111 ctrl: root.ctrl 0112 anchors.top: parent.top 0113 anchors.right: parent.right 0114 anchors.rightMargin: 14 0115 anchors.topMargin: 14 0116 onOpenDrawer: drawer.open() 0117 automaticSpacing: root.ctrl.spacing 0118 onAutomaticSpacingChanged: root.ctrl.spacing = _buttonGrid.automaticSpacing 0119 onExportScene: { 0120 screenShotSelector.open() 0121 } 0122 } 0123 0124 SideMenu { 0125 id: drawer 0126 edge: Qt.RightEdge 0127 width: 0.4 * root.width 0128 height: root.height 0129 mediaCtrl: root.ctrl 0130 linkVisibility: root.ctrl.linkLabelVisibility 0131 darkMode: root.darkMode 0132 onDarkModeChanged: root.darkMode = darkMode 0133 onLinkVisibilityChanged: root.ctrl.linkLabelVisibility = linkVisibility 0134 onDefaultStyleChanged: root.ctrl.defaultStyleIndex = defaultStyle 0135 } 0136 0137 Rectangle { 0138 anchors.fill: _minimized 0139 anchors.margins: 2 0140 border.width: 2 0141 border.color: root.styleSheet.borderColor 0142 color: root.styleSheet.colorMiniMap 0143 visible: _buttonGrid.showLittleMap 0144 } 0145 0146 ShaderEffectSource { 0147 id: _minimized 0148 sourceItem: mindMap.innerItem 0149 anchors.bottom: _bottomControl.top 0150 anchors.right: parent.right 0151 live: true 0152 visible: _buttonGrid.showLittleMap 0153 MappingHelper { 0154 id: helper 0155 } 0156 width: _bottomControl.width 0157 height: width/2 0158 0159 sourceRect: helper.maxRect(Qt.rect(0,0, root.width, root.height), Qt.rect(0,0, mindMap.innerItem.width, mindMap.innerItem.height)) 0160 0161 Rectangle { 0162 border.width: 2 0163 border.color: "blue" 0164 color: "transparent" 0165 x: mindMap.visibleArea.xPosition * _minimized.width 0166 y: mindMap.visibleArea.yPosition * _minimized.height 0167 width: mindMap.visibleArea.widthRatio * _minimized.width 0168 height: mindMap.visibleArea.heightRatio * _minimized.height 0169 } 0170 } 0171 RowLayout { 0172 id: _bottomControl 0173 anchors.bottom: parent.bottom 0174 anchors.right: parent.right 0175 Slider { 0176 id: slider 0177 from: 0.1 0178 to: 3 0179 value: root.ctrl.zoomLevel 0180 onValueChanged: root.ctrl.zoomLevel = value 0181 0182 } 0183 Button { 0184 text: "reset" 0185 onClicked: slider.value = 1.0 0186 } 0187 } 0188 0189 MouseArea { 0190 anchors.fill:parent 0191 acceptedButtons:Qt.MiddleButton | Qt.RightButton 0192 propagateComposedEvents: true 0193 onClicked:(mouse)=>{ 0194 menu.x = mouse.x 0195 menu.y = mouse.y 0196 menu.open() 0197 } 0198 onWheel: (wheel)=>{ 0199 var step = (wheel.modifiers & Qt.ControlModifier) ? 0.1 : 0.01 0200 if(wheel.angleDelta.y>0) 0201 { 0202 root.viewScale = Math.min(root.viewScale+step,2.0) 0203 } 0204 else 0205 root.viewScale = Math.max(root.viewScale-step,0.2) 0206 } 0207 } 0208 }