Skip to content

Commit 573ddc3

Browse files
committed
New mime type criteria for the plain files.
1 parent 7f42803 commit 573ddc3

File tree

12 files changed

+508
-104
lines changed

12 files changed

+508
-104
lines changed

Application/PlainSettingsEditorViewController.swift

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import AppKit
1010

1111
class PlainSettingsEditorViewController: NSViewController {
1212
@IBOutlet weak var patternTextField: NSTextField!
13+
@IBOutlet weak var patternMimeTextField: NSTextField!
1314
@IBOutlet weak var regExpButton: NSButton!
1415
@IBOutlet weak var caseSensitiveButton: NSButton!
1516
@IBOutlet weak var syntaxPopupButton: NSPopUpButton!
@@ -63,7 +64,8 @@ class PlainSettingsEditorViewController: NSViewController {
6364
}
6465

6566
func initSettings() {
66-
patternTextField?.stringValue = plainSettings?.pattern ?? ""
67+
patternTextField?.stringValue = plainSettings?.patternFile ?? ""
68+
patternMimeTextField?.stringValue = plainSettings?.patternMime ?? ""
6769
regExpButton?.state = plainSettings?.isRegExp ?? false ? .on : .off
6870
caseSensitiveButton?.state = plainSettings?.isCaseSensitive ?? false ? .on : .off
6971
availableSyntax = HighlightWrapper.shared.languages
@@ -96,7 +98,7 @@ class PlainSettingsEditorViewController: NSViewController {
9698
tableView?.selectRowIndexes(IndexSet(integer: index), byExtendingSelection: false)
9799
tableView?.scrollRowToVisible(index)
98100

99-
doneButton?.isEnabled = !(plainSettings?.pattern ?? "").isEmpty
101+
doneButton?.isEnabled = !(plainSettings?.patternFile ?? "").isEmpty || !(plainSettings?.patternMime ?? "").isEmpty
100102
}
101103

102104
@IBAction func handleCancel(_ sender: Any) {
@@ -124,7 +126,7 @@ class PlainSettingsEditorViewController: NSViewController {
124126
uti = allFileTypes[tableView.selectedRow - 2].UTI
125127
}
126128

127-
handler?(PlainSettings(pattern: self.patternTextField.stringValue, isRegExp: regExpButton.state == .on, isCaseInsensitive: caseSensitiveButton.state == .off, UTI: uti, syntax: stx))
129+
handler?(PlainSettings(patternFile: self.patternTextField.stringValue, patternMime: self.patternMimeTextField.stringValue, isRegExp: regExpButton.state == .on, isCaseInsensitive: caseSensitiveButton.state == .off, UTI: uti, syntax: stx))
128130

129131
self.dismiss(self)
130132
}
@@ -184,10 +186,10 @@ extension PlainSettingsEditorViewController: NSTableViewDelegate {
184186

185187
extension PlainSettingsEditorViewController: NSTextFieldDelegate {
186188
func controlTextDidChange(_ obj: Notification) {
187-
guard let textFiled = obj.object as? NSTextField, textFiled == patternTextField else {
189+
guard let textFiled = obj.object as? NSTextField, textFiled == patternTextField || textFiled == patternMimeTextField else {
188190
return
189191
}
190-
doneButton.isEnabled = !textFiled.stringValue.isEmpty
192+
doneButton.isEnabled = !patternTextField.stringValue.isEmpty || !patternMimeTextField.stringValue.isEmpty
191193
}
192194
}
193195

Application/PlainSettingsView.swift

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -189,10 +189,12 @@ extension PlainSettingsView: NSTableViewDelegate {
189189
let s: String
190190
switch column {
191191
case 0:
192-
s = setting.pattern
192+
s = setting.patternFile
193193
case 1:
194-
s = setting.UTI.isEmpty ? "General" : setting.UTI
194+
s = setting.patternMime
195195
case 2:
196+
s = setting.UTI.isEmpty ? "General" : setting.UTI
197+
case 3:
196198
s = setting.syntax.isEmpty ? "Plain text" : setting.syntax
197199
default:
198200
break outerLoop
@@ -219,7 +221,9 @@ extension PlainSettingsView: NSTableViewDataSource {
219221

220222
func tableView(_ tableView: NSTableView, objectValueFor tableColumn: NSTableColumn?, row: Int) -> Any? {
221223
if tableColumn?.identifier.rawValue == "pattern" {
222-
return self.plainSettings[row].pattern
224+
return self.plainSettings[row].patternFile
225+
} else if tableColumn?.identifier.rawValue == "mime" {
226+
return self.plainSettings[row].patternMime
223227
} else if tableColumn?.identifier.rawValue == "uti" {
224228
return self.plainSettings[row].UTI.isEmpty ? "General" : self.plainSettings[row].UTI
225229
} else if tableColumn?.identifier.rawValue == "syntax" {
@@ -232,7 +236,13 @@ extension PlainSettingsView: NSTableViewDataSource {
232236
func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
233237
if tableColumn?.identifier.rawValue == "pattern" {
234238
let cellView = tableView.makeView(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "PatternCell"), owner: nil) as! PatternTableCellView
235-
cellView.textField?.stringValue = self.plainSettings[row].pattern
239+
cellView.textField?.stringValue = self.plainSettings[row].patternFile
240+
cellView.caseSensitiveImageView.isHidden = !self.plainSettings[row].isCaseSensitive
241+
cellView.regExpImageView.isHidden = !self.plainSettings[row].isRegExp
242+
return cellView
243+
} else if tableColumn?.identifier.rawValue == "mime" {
244+
let cellView = tableView.makeView(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "PatternCell"), owner: nil) as! PatternTableCellView
245+
cellView.textField?.stringValue = self.plainSettings[row].patternMime
236246
cellView.caseSensitiveImageView.isHidden = !self.plainSettings[row].isCaseSensitive
237247
cellView.regExpImageView.isHidden = !self.plainSettings[row].isRegExp
238248
return cellView

0 commit comments

Comments
 (0)