Warning, /rolisteam/rolisteam/src/libraries/mindmap/resources/qml/MindMap.qml is written in an unsupported language. File is not indexed.
0001 import QtQuick 0002 import QtQuick.Controls 0003 import QtQuick.Layouts 0004 import Customization 0005 import mindmap 0006 0007 Flickable { 0008 id: _flick 0009 property real zoomLevel: 1 0010 required property MindMapController ctrl 0011 property QtObject styleSheet: Theme.styleSheet("mindmapinteral") 0012 property string selectedNodeId:"" 0013 property bool addSubLink: false 0014 property alias innerItem: inner 0015 property real marginW: 100 0016 0017 0018 onZoomLevelChanged: { 0019 updateZoom() 0020 } 0021 0022 function updateZoom(){ 0023 var zoomPoint = Qt.point(_flick.width/2 + _flick.contentX, 0024 _flick.height/2 + _flick.contentY); 0025 _flick.resizeContent((inner.width * _flick.zoomLevel), (inner.height * _flick.zoomLevel), zoomPoint); 0026 _flick.returnToBounds(); 0027 } 0028 0029 signal openImage(var id) 0030 signal pressed(var mouse) 0031 signal positionChanged(var mouse) 0032 signal released(var mouse) 0033 0034 function makeScreenShot(path){ 0035 inner.grabToImage(function(result){ 0036 result.saveToFile(path) 0037 }); 0038 } 0039 0040 contentHeight: inner.height 0041 contentWidth: inner.width 0042 interactive: true 0043 boundsBehavior: Flickable.StopAtBounds 0044 0045 Shortcut { 0046 sequences: [StandardKey.Undo] 0047 onActivated: ctrl.undo(); 0048 onActivatedAmbiguously: ctrl.undo() 0049 } 0050 Shortcut { 0051 sequences: [StandardKey.Redo] 0052 onActivated: ctrl.redo(); 0053 onActivatedAmbiguously: ctrl.redo() 0054 } 0055 Component { 0056 id: linkComp 0057 Link { 0058 id: linkItem 0059 x: objectItem.topLeftCorner.x 0060 y: objectItem.topLeftCorner.y 0061 width: objectItem.normalizedWidth 0062 height: objectItem.normalizedHeight 0063 color: _flick.styleSheet.linkColor 0064 opacity: objectItem.constraint ? 1.0 : 0.4 0065 controller: objectItem 0066 visible: objectItem.visible 0067 text: objectItem.text ? objectItem.text : qsTr("is linked") 0068 visibleLabel: _flick.ctrl.linkLabelVisibility 0069 0070 onSelected: { 0071 _flick.ctrl.selectionCtrl.clearSelection() 0072 _flick.ctrl.selectionCtrl.addToSelection(objectItem) 0073 } 0074 0075 Rectangle { 0076 border.width: 1 0077 border.color: "red" 0078 color: "transparent" 0079 visible: objectItem.selected 0080 anchors.fill: parent 0081 } 0082 0083 } 0084 } 0085 0086 Component { 0087 id: packComp 0088 PackageItem { 0089 packageItem: objectItem 0090 width: objectItem.width 0091 height: objectItem.height 0092 visible: objectItem.visible 0093 selected: objectItem.selected 0094 title: objectItem.title 0095 onAddItem: (itemid)=>{ 0096 _flick.ctrl.addItemIntoPackage(itemid, objectItem.id) 0097 } 0098 onClicked: (mouse) => { 0099 if(_flick.addSubLink) 0100 { 0101 if(_flick.selectedNodeId.length > 0) 0102 { 0103 _flick.ctrl.addLink(_flick.selectedNodeId, objectItem.id) 0104 _flick.selectedNodeId = "" 0105 } 0106 else 0107 _flick.selectedNodeId = objectItem.id 0108 0109 } 0110 else if(mouse.modifiers & Qt.ControlModifier) { 0111 if(selected) 0112 _flick.ctrl.selectionCtrl.removeFromSelection(objectItem) 0113 else 0114 _flick.ctrl.selectionCtrl.addToSelection(objectItem) 0115 } 0116 else if(!selected){ 0117 _flick.ctrl.selectionCtrl.clearSelection() 0118 _flick.ctrl.selectionCtrl.addToSelection(objectItem) 0119 } 0120 0121 } 0122 0123 } 0124 } 0125 0126 0127 Component { 0128 id: nodeComp 0129 Node { 0130 id: nodeItem 0131 currentNode: objectItem 0132 nodeStyle: _flick.ctrl.style(objectItem.styleIndex) 0133 readWrite: _flick.ctrl.hasNetwork ? _flick.ctrl.readWrite : true 0134 focus: true 0135 text : objectItem.text ? objectItem.text : "new node" 0136 source: hasAvatar ? "image://nodeImages/%1".arg(objectItem.id) : "" 0137 visible: objectItem.visible 0138 selected: objectItem.selected 0139 onTextEdited: { 0140 objectItem.text = nodeItem.text 0141 } 0142 0143 //color: _flick.styleSheet.linkColor 0144 buttonColor: _flick.styleSheet.textColor 0145 onAddChild: { 0146 _flick.ctrl.addNode(objectItem.id) 0147 updateZoom() 0148 } 0149 onOpenChanged: _flick.ctrl.itemModel.openItem(objectItem.id, open) 0150 onReparenting: (id) => {_flick.ctrl.reparenting(objectItem,id)} 0151 onAddImage: (img, data)=>{ _flick.ctrl.addImageFor(objectItem.id, img, data)} 0152 onSelectStyle: { 0153 _stylePopup.parent = nodeItem 0154 _stylePopup.node = objectItem 0155 _stylePopup.open() 0156 } 0157 0158 onClicked: (mouse) => { 0159 if(_flick.addSubLink) 0160 { 0161 if(_flick.selectedNodeId.length > 0) 0162 { 0163 _flick.ctrl.addLink(_flick.selectedNodeId, objectItem.id) 0164 _flick.selectedNodeId = "" 0165 } 0166 else 0167 _flick.selectedNodeId = objectItem.id 0168 0169 } 0170 else if(mouse.modifiers & Qt.ControlModifier) { 0171 if(selected) 0172 _flick.ctrl.selectionCtrl.removeFromSelection(objectItem) 0173 else 0174 _flick.ctrl.selectionCtrl.addToSelection(objectItem) 0175 } 0176 else if(!selected){ 0177 _flick.ctrl.selectionCtrl.clearSelection() 0178 _flick.ctrl.selectionCtrl.addToSelection(objectItem) 0179 } 0180 } 0181 0182 } 0183 } 0184 0185 NodeSettingPopup { 0186 id: _stylePopup 0187 ctrl: _flick.ctrl 0188 } 0189 0190 Item { 0191 id: inner 0192 width: _flick.ctrl.contentRect.width+_flick.marginW 0193 height: _flick.ctrl.contentRect.height 0194 anchors.centerIn: parent 0195 scale: _flick.zoomLevel 0196 0197 MouseArea { 0198 anchors.fill:parent 0199 acceptedButtons:Qt.LeftButton 0200 preventStealing: true 0201 0202 onPressed: (mouse)=>{ 0203 _flick.pressed(mouse) 0204 ctrl.selectionCtrl.clearSelection() 0205 _stylePopup.node = null 0206 } 0207 onPositionChanged: (mouse)=> { 0208 _flick.positionChanged(mouse) 0209 } 0210 onReleased: (mouse)=>{ 0211 _flick.released(mouse) 0212 } 0213 } 0214 0215 Repeater { 0216 id: itemLoop 0217 anchors.fill: parent 0218 0219 model: _flick.ctrl.itemModel 0220 0221 0222 delegate: Loader { 0223 property string text: label 0224 property QtObject objectItem: object 0225 property bool isSelected: selected 0226 property bool isVisible: visible 0227 property bool hasAvatar: hasPicture 0228 0229 0230 sourceComponent: type == MindItem.PackageType ? packComp : type == MindItem.LinkType ? linkComp : nodeComp 0231 } 0232 } 0233 } 0234 }