Warning, /maui/index-fm/src/widgets/views/FileMenu.qml is written in an unsupported language. File is not indexed.
0001 import QtQuick 2.15 0002 import QtQuick.Controls 2.15 0003 import QtQml 2.14 0004 0005 import org.mauikit.controls 1.3 as Maui 0006 0007 import org.mauikit.filebrowsing 1.3 as FB 0008 0009 import ".." 0010 0011 Maui.ContextualMenu 0012 { 0013 id: control 0014 0015 /** 0016 * 0017 */ 0018 property var item : ({}) 0019 0020 /** 0021 * 0022 */ 0023 property int index : -1 0024 0025 /** 0026 * 0027 */ 0028 property bool isDir : false 0029 0030 /** 0031 * 0032 */ 0033 property bool isExec : false 0034 0035 /** 0036 * 0037 */ 0038 property bool isFav: false 0039 0040 title: control.item.label 0041 subtitle: control.item.mime ? (control.item.mime === "inode/directory" ? (control.item.count ? control.item.count + i18n(" items") : "") : Maui.Handy.formatSize(control.item.size)) : "" 0042 titleImageSource: control.item.thumbnail 0043 titleIconSource: control.item.icon 0044 0045 Maui.MenuItemActionRow 0046 { 0047 Action 0048 { 0049 enabled: !control.isExec 0050 text: i18n("Copy") 0051 icon.name: "edit-copy" 0052 onTriggered: 0053 { 0054 _browser.copy(_browser.filterSelection(currentPath, control.item.path)) 0055 } 0056 } 0057 0058 Action 0059 { 0060 enabled: !control.isExec 0061 text: i18n("Cut") 0062 icon.name: "edit-cut" 0063 onTriggered: 0064 { 0065 _browser.cut(_browser.filterSelection(currentPath, control.item.path)) 0066 } 0067 } 0068 0069 Action 0070 { 0071 enabled: !control.isExec 0072 text: i18n("Rename") 0073 icon.name: "edit-rename" 0074 onTriggered: 0075 { 0076 _browser.renameItem() 0077 } 0078 } 0079 0080 Action 0081 { 0082 text: i18n("Remove") 0083 Maui.Theme.textColor: Maui.Theme.negativeTextColor 0084 icon.name: "edit-delete" 0085 onTriggered: 0086 { 0087 _browser.remove(_browser.filterSelection(currentPath, control.item.path)) 0088 0089 } 0090 } 0091 } 0092 0093 MenuSeparator{} 0094 0095 MenuItem 0096 { 0097 enabled: !control.isExec 0098 text: i18n("Select") 0099 icon.name: "edit-select" 0100 onTriggered: 0101 { 0102 _browser.addToSelection(control.item) 0103 if(Maui.Handy.isTouch) 0104 _browser.selectionMode = true 0105 } 0106 } 0107 0108 MenuItem 0109 { 0110 id: openWithMenuItem 0111 enabled: !control.isExec 0112 text: i18n("Open with") 0113 icon.name: "document-open" 0114 onTriggered: 0115 { 0116 openWith(_browser.filterSelection(currentPath, control.item.path)) 0117 } 0118 } 0119 0120 MenuItem 0121 { 0122 enabled: !control.isExec 0123 text: i18n("Preview and Info") 0124 icon.name: "view-preview" 0125 onTriggered: 0126 { 0127 openPreview(_browser.currentFMModel, _browser.currentIndex) 0128 } 0129 } 0130 0131 MenuSeparator {} 0132 0133 Maui.MenuItemActionRow 0134 { 0135 Action 0136 { 0137 text: control.isFav ? i18n("UnFav") : i18n("Fav") 0138 checked: control.isFav 0139 checkable: true 0140 icon.name: "love" 0141 onTriggered: 0142 { 0143 if(FB.Tagging.toggleFav(item.path)) 0144 { 0145 control.isFav = !control.isFav 0146 } 0147 } 0148 } 0149 0150 Action 0151 { 0152 enabled: !control.isExec 0153 text: i18n("Tags") 0154 icon.name: "tag" 0155 onTriggered: 0156 { 0157 dialogLoader.sourceComponent = _tagsDialogComponent 0158 dialog.composerList.urls = _browser.filterSelection(currentPath, control.item.path) 0159 dialog.open() 0160 } 0161 } 0162 0163 Action 0164 { 0165 enabled: !control.isExec 0166 text: i18n("Share") 0167 icon.name: "document-share" 0168 onTriggered: 0169 { 0170 shareFiles(_browser.filterSelection(currentPath, control.item.path)) 0171 } 0172 } 0173 0174 Action 0175 { 0176 enabled: !control.isExec && control.isDir 0177 text: i18n("Bookmark") 0178 icon.name: "bookmark-new" 0179 onTriggered: 0180 { 0181 _browser.bookmarkFolder([control.item.path]) 0182 } 0183 } 0184 } 0185 0186 MenuSeparator {} 0187 0188 MenuItem 0189 { 0190 enabled: control.isDir 0191 text: i18n("Open in New Tab") 0192 icon.name: "tab-new" 0193 onTriggered: root.openTab(control.item.path) 0194 } 0195 0196 MenuItem 0197 { 0198 enabled: control.isDir && Maui.Handy.isLinux 0199 text: i18n("Open in New Window") 0200 icon.name: "window-new" 0201 onTriggered: inx.openNewWindow(control.item.path) 0202 } 0203 0204 MenuItem 0205 { 0206 enabled: control.isDir && root.currentTab.count === 1 0207 text: i18n("Open in Split View") 0208 icon.name: "view-split-left-right" 0209 onTriggered: root.currentTab.split(control.item.path, Qt.Horizontal) 0210 } 0211 0212 MenuSeparator {} 0213 0214 MenuItem 0215 { 0216 enabled: FB.FM.checkFileType(FB.FMList.COMPRESSED, control.item.mime) 0217 text: i18n("Extract") 0218 icon.name: "archive-extract" 0219 onTriggered: 0220 { 0221 _compressedFile.url = control.item.path 0222 dialogLoader.sourceComponent= _extractDialogComponent 0223 dialog.open() 0224 } 0225 } 0226 0227 MenuItem 0228 { 0229 text: i18n("Compress") 0230 icon.name: "archive-insert" 0231 onTriggered: 0232 { 0233 dialogLoader.sourceComponent= _compressDialogComponent 0234 dialog.urls = _browser.filterSelection(currentPath, control.item.path) 0235 dialog.open() 0236 } 0237 } 0238 0239 MenuSeparator {} 0240 0241 ColorsBar 0242 { 0243 id: colorBar 0244 padding: control.padding 0245 width: parent.width 0246 enabled: control.isDir 0247 0248 Binding on folderColor { 0249 value: control.item.icon 0250 restoreMode: Binding.RestoreBindingOrValue 0251 } 0252 0253 onFolderColorPicked: 0254 { 0255 _browser.currentFMList.setDirIcon(control.index, color) 0256 control.close() 0257 } 0258 } 0259 0260 0261 onClosed: 0262 { 0263 control.index = -1 0264 } 0265 0266 function showFor(index) 0267 { 0268 control.item = _browser.currentFMList.get(index) 0269 console.log("CURRENT ITEM" , item.name) 0270 if(item.path.startsWith("tags://") || item.path.startsWith("applications://")) 0271 return 0272 0273 if(item) 0274 { 0275 console.log("GOT ITEM FILE", index, item.path) 0276 control.index = index 0277 control.isDir = item.isdir == true || item.isdir == "true" 0278 control.isExec = item.executable == true || item.executable == "true" 0279 control.isFav = FB.Tagging.isFav(item.path) 0280 control.show() 0281 } 0282 } 0283 }