Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 27 additions & 1 deletion Realm Object Editor.xcodeproj/project.pbxproj
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -234,11 +234,12 @@
attributes = {
LastSwiftMigration = 0700;
LastSwiftUpdateCheck = 0700;
LastUpgradeCheck = 0700;
LastUpgradeCheck = 0940;
ORGANIZATIONNAME = "Ahmed Ali";
TargetAttributes = {
60BE92E91A4CE0EC00019B4F = {
CreatedOnToolsVersion = 6.1.1;
LastSwiftMigration = 0940;
};
};
};
Expand Down Expand Up @@ -331,13 +332,23 @@
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "-";
Expand All @@ -346,6 +357,7 @@
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
Expand Down Expand Up @@ -374,13 +386,23 @@
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "-";
Expand All @@ -389,6 +411,7 @@
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
Expand All @@ -398,6 +421,7 @@
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
};
name = Release;
};
Expand All @@ -410,6 +434,7 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "eng.ahmed.ali.awad-gmail.com.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 4.0;
};
name = Debug;
};
Expand All @@ -422,6 +447,7 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "eng.ahmed.ali.awad-gmail.com.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 4.0;
};
name = Release;
};
Expand Down
6 changes: 3 additions & 3 deletions Realm Object Editor/AttributeDescriptor.swift
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,8 @@ class AttributeDescriptor: NSObject {
"hasDefault" : hasDefault,
"defaultValue" : defaultValue,
"typeName" : type.typeName
]
] as [String : Any]

return dictionary
return dictionary as NSDictionary
}
}
}
4 changes: 2 additions & 2 deletions Realm Object Editor/AttributeNameCell.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

import Cocoa
protocol AttributeNameCellDelegate : class{
func attributeNameDidChange(attribute: AttributeDescriptor!, newName: String)
func attributeNameDidChange(_ attribute: AttributeDescriptor!, newName: String)
}
class AttributeNameCell: ClickableCell {

Expand All @@ -30,7 +30,7 @@ class AttributeNameCell: ClickableCell {
}


override func nameDidChange(newName: String)
override func nameDidChange(_ newName: String)
{
super.nameDidChange(newName)
delegate?.attributeNameDidChange(attribute, newName: newName)
Expand Down
4 changes: 2 additions & 2 deletions Realm Object Editor/AttributeType.swift
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ let arrayOfSupportedTypes : [TypeDescriptor] = [InvalidType(),
BinaryDataType(),
BoolType()]

func indexOfType(type : TypeDescriptor) -> Int?
func indexOfType(_ type : TypeDescriptor) -> Int?
{
for i in 0 ..< arrayOfSupportedTypes.count{
let t = arrayOfSupportedTypes[i]
Expand All @@ -61,7 +61,7 @@ func supportedTypesAsStringsArray() -> [String]
return typesAsStrings
}

func findTypeByTypeName(typeName: String) -> TypeDescriptor?
func findTypeByTypeName(_ typeName: String) -> TypeDescriptor?
{
for type in arrayOfSupportedTypes{
if type.typeName == typeName{
Expand Down
8 changes: 4 additions & 4 deletions Realm Object Editor/AttributeTypeCell.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import Cocoa

protocol AttributeTypeCellDelegate : class
{
func attributeTypeDidChange(attribute attribute: AttributeDescriptor)
func attributeTypeDidChange(attribute: AttributeDescriptor)
}

class AttributeTypeCell: NSTableCellView {
Expand All @@ -20,7 +20,7 @@ class AttributeTypeCell: NSTableCellView {
var attribute : AttributeDescriptor!{
didSet{

typesPopupButton.selectItemWithTitle(attribute.type.typeName)
typesPopupButton.selectItem(withTitle: attribute.type.typeName)
}
}

Expand All @@ -29,11 +29,11 @@ class AttributeTypeCell: NSTableCellView {
override func awakeFromNib() {
super.awakeFromNib()
typesPopupButton.removeAllItems()
typesPopupButton.addItemsWithTitles(supportedTypesAsStringsArray())
typesPopupButton.addItems(withTitles: supportedTypesAsStringsArray())
}


@IBAction func changeType(sender: AnyObject)
@IBAction func changeType(_ sender: AnyObject)
{
attribute.type = arrayOfSupportedTypes[typesPopupButton.indexOfSelectedItem]
delegate?.attributeTypeDidChange(attribute: attribute)
Expand Down
24 changes: 12 additions & 12 deletions Realm Object Editor/ClickableCell.swift
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@ class ClickableCell: NSTableCellView, NSTextFieldDelegate{
var allowsEmptyValue = false
var prevName : String = ""

override func mouseUp(theEvent: NSEvent) {
override func mouseUp(with theEvent: NSEvent) {
if editableLabel == nil{
return
}
let globalLocation = theEvent.locationInWindow
let localLocation = convertPoint(globalLocation, fromView: nil)
let localLocation = convert(globalLocation, from: nil)

if NSPointInRect(localLocation, editableLabel.frame){
beginEditing()
Expand All @@ -37,39 +37,39 @@ class ClickableCell: NSTableCellView, NSTextFieldDelegate{
func beginEditing()
{
prevName = editableLabel.stringValue
editableLabel.editable = true
editableLabel.isEditable = true
window?.makeFirstResponder(editableLabel)
}

func endEditing()
{
editableLabel.editable = false
editableLabel.isEditable = false
window?.resignFirstResponder()
if prevName != editableLabel.stringValue && prevName.characters.count > 0{
if prevName != editableLabel.stringValue && prevName.count > 0{
nameDidChange(editableLabel.stringValue)
}
}

func nameDidChange(newName: String)
func nameDidChange(_ newName: String)
{

prevName = editableLabel.stringValue
}

//MARK: - NSTextFieldDelegate
func control(control: NSControl, textShouldBeginEditing fieldEditor: NSText) -> Bool
func control(_ control: NSControl, textShouldBeginEditing fieldEditor: NSText) -> Bool
{
return true
}


func control(control: NSControl, textShouldEndEditing fieldEditor: NSText) -> Bool
func control(_ control: NSControl, textShouldEndEditing fieldEditor: NSText) -> Bool
{
if allowsEmptyValue{
endEditing()
return true
}
if editableLabel.stringValue.characters.count == 0{
if editableLabel.stringValue.count == 0{
showEmptyNameError()
return false
}
Expand All @@ -84,10 +84,10 @@ class ClickableCell: NSTableCellView, NSTextFieldDelegate{
{
let alert = NSAlert()
alert.messageText = "Name must contain characters"
alert.addButtonWithTitle("Ok")
alert.addButtonWithTitle("Discard changes")
alert.addButton(withTitle: "Ok")
alert.addButton(withTitle: "Discard changes")
let response = alert.runModal()
if response == NSAlertSecondButtonReturn{
if response == NSApplication.ModalResponse.alertSecondButtonReturn{
//discard changes
editableLabel.stringValue = prevName
editableLabel.endEditing(NSText())
Expand Down
30 changes: 15 additions & 15 deletions Realm Object Editor/ClickableTableView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,34 +10,34 @@ import Cocoa

protocol ExtendedTableViewDelegate : class
{
func tableView(tableView: ClickableTableView, didClickOnRow row: Int)
func tableView(_ tableView: ClickableTableView, didClickOnRow row: Int)
}

class ClickableTableView: NSTableView {

weak var extendedDelegate : ExtendedTableViewDelegate!
private var prevSelectedRow = -1
override func mouseDown(theEvent: NSEvent) {
fileprivate var prevSelectedRow = -1
override func mouseDown(with theEvent: NSEvent) {

let globalLocation = theEvent.locationInWindow
let localLocation = convertPoint(globalLocation, fromView: nil)
let clickedRow = rowAtPoint(localLocation)
let localLocation = convert(globalLocation, from: nil)
let clickedRow = row(at: localLocation)
// super.mouseDown(theEvent)
prevSelectedRow = selectedRow
if clickedRow > -1{
selectRowIndexes(NSIndexSet(index: clickedRow), byExtendingSelection: false)
selectRowIndexes(IndexSet(integer: clickedRow), byExtendingSelection: false)
extendedDelegate?.tableView(self, didClickOnRow: clickedRow)
}


}


override func keyDown(theEvent: NSEvent) {
override func keyDown(with theEvent: NSEvent) {
//36 enter button is down
//53 is the esc button
if selectedRow > -1{
if let cell = viewAtColumn(0, row: selectedRow, makeIfNecessary: false) as? ClickableCell{
if let cell = view(atColumn: 0, row: selectedRow, makeIfNecessary: false) as? ClickableCell{
if theEvent.keyCode == 36{
cell.beginEditing()
}else if theEvent.keyCode == 53{
Expand All @@ -47,27 +47,27 @@ class ClickableTableView: NSTableView {
}

}
override func mouseUp(theEvent: NSEvent) {
override func mouseUp(with theEvent: NSEvent) {
let globalLocation = theEvent.locationInWindow
let localLocation = convertPoint(globalLocation, fromView: nil)
let clickedRow = rowAtPoint(localLocation)
let localLocation = convert(globalLocation, from: nil)
let clickedRow = row(at: localLocation)

if clickedRow == prevSelectedRow && clickedRow > -1{
if let cell = viewAtColumn(0, row: clickedRow, makeIfNecessary: false) as? ClickableCell{
if let cell = view(atColumn: 0, row: clickedRow, makeIfNecessary: false) as? ClickableCell{
//forward the touch event...
cell.mouseUp(theEvent)
cell.mouseUp(with: theEvent)
}
}else{
//ask previous cell to stop editing
if prevSelectedRow > -1{
if let cell = viewAtColumn(0, row: prevSelectedRow, makeIfNecessary: false) as? ClickableCell{
if let cell = view(atColumn: 0, row: prevSelectedRow, makeIfNecessary: false) as? ClickableCell{
cell.endEditing()
}
prevSelectedRow = clickedRow
}

}

super.mouseUp(theEvent)
super.mouseUp(with: theEvent)
}
}
Loading