Warning, /maui/arca/src/controls/NewArchiveDialog.qml is written in an unsupported language. File is not indexed.
0001 import QtQuick 2.15
0002 import QtQuick.Controls 2.15
0003 import QtQuick.Layouts 1.12
0004
0005 import org.mauikit.controls 1.3 as Maui
0006 import org.mauikit.filebrowsing 1.3 as FM
0007
0008 import org.kde.arca 1.0 as Arca
0009
0010 Maui.FileListingDialog
0011 {
0012 id: control
0013
0014 persistent: false
0015
0016 message: i18n("Create a new archive file.")
0017
0018 actions:[
0019 Action
0020 {
0021 text: i18n("Cancel")
0022 onTriggered: close()
0023 },
0024 Action
0025 {
0026 text: i18n("Create")
0027 onTriggered:
0028 {
0029 const ok = control.checkExistance(_archiveNameField.text, _locationField.text, control.extensionName(control.type))
0030
0031 if(!ok)
0032 {
0033 return
0034 }else
0035 {
0036 control.done(control.urls, _locationField.text, _archiveNameField.text, control.type)
0037 // control.close()
0038 }
0039 }
0040 }
0041 ]
0042
0043 onOpened: _archiveNameField.forceActiveFocus()
0044
0045
0046 signal done(var files, string path, string name, int type)
0047
0048 property int type : 0
0049 onTypeChanged:
0050 {
0051 control.checkExistance(_archiveNameField.text, _locationField.text, control.extensionName(control.type))
0052 }
0053
0054 TextField
0055 {
0056 id: _archiveNameField
0057 Layout.fillWidth: true
0058 placeholderText: i18n("Archive name...")
0059
0060 onTextChanged:
0061 {
0062 control.checkExistance(text, _locationField.text, control.extensionName(control.type))
0063 }
0064 }
0065
0066 TextField
0067 {
0068 id: _locationField
0069 Layout.fillWidth: true
0070 placeholderText: i18n("Location")
0071 text: Arca.Arc.defaultSaveDir
0072
0073 onTextChanged:
0074 {
0075 control.checkExistance(_archiveNameField.text, text, control.extensionName(control.type))
0076 }
0077 }
0078
0079 Maui.ToolActions
0080 {
0081 id: compressType
0082 autoExclusive: true
0083 expanded: true
0084 display: ToolButton.TextBesideIcon
0085
0086 Action
0087 {
0088 text: ".ZIP"
0089 icon.name: "application-zip"
0090 checked: control.type === 0
0091 onTriggered: control.type = 0
0092 }
0093
0094 Action
0095 {
0096 text: ".TAR"
0097 icon.name: "application-x-tar"
0098 checked: control.type === 1
0099 onTriggered: control.type = 1
0100 }
0101
0102 Action
0103 {
0104 text: ".7ZIP"
0105 icon.name: "application-x-rar"
0106 checked: control.type === 2
0107 onTriggered: control.type = 2
0108 }
0109 }
0110
0111 function checkExistance(name, path, extension)
0112 {
0113 if(!FM.FM.fileExists(path))
0114 {
0115 control.alert(i18n("Base location does not exists. Try with a different location."), 2)
0116 return false
0117 }
0118
0119 if(name.length === 0)
0120 {
0121 control.alert(i18n("File name can not be empty."), 2)
0122 return fals
0123 }
0124
0125 var file = path+"/"+name+extension
0126 var exists = FM.FM.fileExists(file)
0127
0128 if(exists)
0129 {
0130 control.alert(i18n("File already exists. Try with another name."), 1)
0131 return false
0132 }
0133
0134 control.alert(i18n("Looks good"), 0)
0135 return true
0136 }
0137
0138 function extensionName(type)
0139 {
0140 var extension = ""
0141 switch(control.type)
0142 {
0143 case 0: extension = ".zip"; break;
0144 case 1: extension = ".tar"; break;
0145 case 2: extension = ".7zip"; break;
0146 }
0147 return extension;
0148 }
0149 }
0150