mirror of
https://github.com/MacPass/MacPass.git
synced 2026-02-02 02:48:23 +00:00
Merge branch 'master' into feature/use_local_plugins_json
# Conflicts: # MacPass/de.lproj/Localizable.strings # MacPass/en.lproj/Localizable.strings
This commit is contained in:
@@ -7,6 +7,8 @@
|
|||||||
objects = {
|
objects = {
|
||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
/* Begin PBXBuildFile section */
|
||||||
|
3C0CDECF21CFEDD200B2A10B /* NSTextView+MPTouchBarExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C0CDECE21CFEDD200B2A10B /* NSTextView+MPTouchBarExtension.m */; };
|
||||||
|
3C0CDED821D28BF700B2A10B /* MPTouchBarButtonCreator.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C0CDED721D28BF700B2A10B /* MPTouchBarButtonCreator.m */; };
|
||||||
4C00E33817D8FA3500F37192 /* DDHotKeyCenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C00E33717D8FA3500F37192 /* DDHotKeyCenter.m */; };
|
4C00E33817D8FA3500F37192 /* DDHotKeyCenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C00E33717D8FA3500F37192 /* DDHotKeyCenter.m */; };
|
||||||
4C00E33B17D8FAC100F37192 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C00E33A17D8FAC100F37192 /* Carbon.framework */; };
|
4C00E33B17D8FAC100F37192 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C00E33A17D8FAC100F37192 /* Carbon.framework */; };
|
||||||
4C01C2421764D8980016D5D0 /* MPContextMenuHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C01C2411764D8980016D5D0 /* MPContextMenuHelper.m */; };
|
4C01C2421764D8980016D5D0 /* MPContextMenuHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C01C2411764D8980016D5D0 /* MPContextMenuHelper.m */; };
|
||||||
@@ -35,6 +37,7 @@
|
|||||||
4C17F109184E6B6C00E85625 /* 30_TerminalTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C17F107184E6B6C00E85625 /* 30_TerminalTemplate.pdf */; };
|
4C17F109184E6B6C00E85625 /* 30_TerminalTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C17F107184E6B6C00E85625 /* 30_TerminalTemplate.pdf */; };
|
||||||
4C1BDF2B1E4392640012A3F0 /* MPPluginDataViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C1BDF291E4392640012A3F0 /* MPPluginDataViewController.m */; };
|
4C1BDF2B1E4392640012A3F0 /* MPPluginDataViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C1BDF291E4392640012A3F0 /* MPPluginDataViewController.m */; };
|
||||||
4C1E9885185F71A800943563 /* MPContextBarViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C1E9884185F71A800943563 /* MPContextBarViewController.m */; };
|
4C1E9885185F71A800943563 /* MPContextBarViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C1E9884185F71A800943563 /* MPContextBarViewController.m */; };
|
||||||
|
4C1ECAE322CCD30F00F46069 /* MPAutotypeDoctor.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C1ECAE222CCD30F00F46069 /* MPAutotypeDoctor.m */; };
|
||||||
4C1F7FA21E3A12E600D6A40E /* MPModifiedKey.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C1F7FA11E3A12E600D6A40E /* MPModifiedKey.m */; };
|
4C1F7FA21E3A12E600D6A40E /* MPModifiedKey.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C1F7FA11E3A12E600D6A40E /* MPModifiedKey.m */; };
|
||||||
4C1FA07B18231900003A3F8C /* MPDocument+Autotype.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C1FA07A18231900003A3F8C /* MPDocument+Autotype.m */; };
|
4C1FA07B18231900003A3F8C /* MPDocument+Autotype.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C1FA07A18231900003A3F8C /* MPDocument+Autotype.m */; };
|
||||||
4C224B4217DFCB2400FF6AEE /* MPNumericalInputFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C224B4117DFCB2400FF6AEE /* MPNumericalInputFormatter.m */; };
|
4C224B4217DFCB2400FF6AEE /* MPNumericalInputFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C224B4117DFCB2400FF6AEE /* MPNumericalInputFormatter.m */; };
|
||||||
@@ -226,6 +229,8 @@
|
|||||||
4CAD338F205169D30068587E /* MPPluginRepositoryItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CAD338E205169D30068587E /* MPPluginRepositoryItem.m */; };
|
4CAD338F205169D30068587E /* MPPluginRepositoryItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CAD338E205169D30068587E /* MPPluginRepositoryItem.m */; };
|
||||||
4CAD748C15B889B700104512 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CAD748B15B889B700104512 /* Security.framework */; };
|
4CAD748C15B889B700104512 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CAD748B15B889B700104512 /* Security.framework */; };
|
||||||
4CAD748E15B88AC100104512 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CAD748D15B88AC100104512 /* libz.dylib */; };
|
4CAD748E15B88AC100104512 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CAD748D15B88AC100104512 /* libz.dylib */; };
|
||||||
|
4CAD8AA622CF397B0090B2DD /* MPAutotypeDoctorReportViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CAD8AA422CF397B0090B2DD /* MPAutotypeDoctorReportViewController.m */; };
|
||||||
|
4CAD8AA722CF397B0090B2DD /* AutotypeDoctorReportViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4CAD8AA522CF397B0090B2DD /* AutotypeDoctorReportViewController.xib */; };
|
||||||
4CB33F861EAF54A000C9341E /* KPKNode+MPIsHistory.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CB33F851EAF54A000C9341E /* KPKNode+MPIsHistory.m */; };
|
4CB33F861EAF54A000C9341E /* KPKNode+MPIsHistory.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CB33F851EAF54A000C9341E /* KPKNode+MPIsHistory.m */; };
|
||||||
4CB9339916D3A0DD00A13B5D /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 4CB9339716D3A0DD00A13B5D /* Credits.rtf */; };
|
4CB9339916D3A0DD00A13B5D /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 4CB9339716D3A0DD00A13B5D /* Credits.rtf */; };
|
||||||
4CBA2ABA17074C07006D8139 /* MPSettingsHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CBA2AB917074C07006D8139 /* MPSettingsHelper.m */; };
|
4CBA2ABA17074C07006D8139 /* MPSettingsHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CBA2AB917074C07006D8139 /* MPSettingsHelper.m */; };
|
||||||
@@ -311,6 +316,10 @@
|
|||||||
/* End PBXCopyFilesBuildPhase section */
|
/* End PBXCopyFilesBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
|
3C0CDECD21CFED9000B2A10B /* NSTextView+MPTouchBarExtension.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSTextView+MPTouchBarExtension.h"; sourceTree = "<group>"; };
|
||||||
|
3C0CDECE21CFEDD200B2A10B /* NSTextView+MPTouchBarExtension.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSTextView+MPTouchBarExtension.m"; sourceTree = "<group>"; };
|
||||||
|
3C0CDED721D28BF700B2A10B /* MPTouchBarButtonCreator.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPTouchBarButtonCreator.m; sourceTree = "<group>"; };
|
||||||
|
3C0CDED921D28C0E00B2A10B /* MPTouchBarButtonCreator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPTouchBarButtonCreator.h; sourceTree = "<group>"; };
|
||||||
4825CC811C414D57003E37E9 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/DatabaseSettingsWindow.strings; sourceTree = "<group>"; };
|
4825CC811C414D57003E37E9 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/DatabaseSettingsWindow.strings; sourceTree = "<group>"; };
|
||||||
4825CC821C414D57003E37E9 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/PasswordEditWindow.strings; sourceTree = "<group>"; };
|
4825CC821C414D57003E37E9 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/PasswordEditWindow.strings; sourceTree = "<group>"; };
|
||||||
4825CC831C414D57003E37E9 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/WelcomeView.strings; sourceTree = "<group>"; };
|
4825CC831C414D57003E37E9 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/WelcomeView.strings; sourceTree = "<group>"; };
|
||||||
@@ -371,7 +380,6 @@
|
|||||||
4C10412A178CDD44001B5239 /* NSDate+Humanized.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDate+Humanized.h"; sourceTree = "<group>"; };
|
4C10412A178CDD44001B5239 /* NSDate+Humanized.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDate+Humanized.h"; sourceTree = "<group>"; };
|
||||||
4C10412B178CDD44001B5239 /* NSDate+Humanized.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDate+Humanized.m"; sourceTree = "<group>"; };
|
4C10412B178CDD44001B5239 /* NSDate+Humanized.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDate+Humanized.m"; sourceTree = "<group>"; };
|
||||||
4C15B74518BCA3B1003F8008 /* MPDocument+Search.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "MPDocument+Search.m"; sourceTree = "<group>"; };
|
4C15B74518BCA3B1003F8008 /* MPDocument+Search.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "MPDocument+Search.m"; sourceTree = "<group>"; };
|
||||||
4C168CB02216CEC300BB1EB0 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/GeneralPreferences.strings; sourceTree = "<group>"; };
|
|
||||||
4C17D11F2250EFBC00C650C4 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/SavePanelAccessoryView.xib; sourceTree = "<group>"; };
|
4C17D11F2250EFBC00C650C4 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/SavePanelAccessoryView.xib; sourceTree = "<group>"; };
|
||||||
4C17D1222250EFBF00C650C4 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/SavePanelAccessoryView.strings; sourceTree = "<group>"; };
|
4C17D1222250EFBF00C650C4 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/SavePanelAccessoryView.strings; sourceTree = "<group>"; };
|
||||||
4C17D1242250EFC500C650C4 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/SavePanelAccessoryView.strings; sourceTree = "<group>"; };
|
4C17D1242250EFC500C650C4 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/SavePanelAccessoryView.strings; sourceTree = "<group>"; };
|
||||||
@@ -395,6 +403,8 @@
|
|||||||
4C1D56382271F4BC00C3E594 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/PluginRepositoryBrowserView.strings; sourceTree = "<group>"; };
|
4C1D56382271F4BC00C3E594 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/PluginRepositoryBrowserView.strings; sourceTree = "<group>"; };
|
||||||
4C1E9883185F71A800943563 /* MPContextBarViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPContextBarViewController.h; sourceTree = "<group>"; };
|
4C1E9883185F71A800943563 /* MPContextBarViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPContextBarViewController.h; sourceTree = "<group>"; };
|
||||||
4C1E9884185F71A800943563 /* MPContextBarViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPContextBarViewController.m; sourceTree = "<group>"; };
|
4C1E9884185F71A800943563 /* MPContextBarViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPContextBarViewController.m; sourceTree = "<group>"; };
|
||||||
|
4C1ECAE122CCD30F00F46069 /* MPAutotypeDoctor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPAutotypeDoctor.h; sourceTree = "<group>"; };
|
||||||
|
4C1ECAE222CCD30F00F46069 /* MPAutotypeDoctor.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPAutotypeDoctor.m; sourceTree = "<group>"; };
|
||||||
4C1F7FA01E3A12E600D6A40E /* MPModifiedKey.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPModifiedKey.h; sourceTree = "<group>"; };
|
4C1F7FA01E3A12E600D6A40E /* MPModifiedKey.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPModifiedKey.h; sourceTree = "<group>"; };
|
||||||
4C1F7FA11E3A12E600D6A40E /* MPModifiedKey.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPModifiedKey.m; sourceTree = "<group>"; };
|
4C1F7FA11E3A12E600D6A40E /* MPModifiedKey.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPModifiedKey.m; sourceTree = "<group>"; };
|
||||||
4C1FA07A18231900003A3F8C /* MPDocument+Autotype.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "MPDocument+Autotype.m"; sourceTree = "<group>"; };
|
4C1FA07A18231900003A3F8C /* MPDocument+Autotype.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "MPDocument+Autotype.m"; sourceTree = "<group>"; };
|
||||||
@@ -517,6 +527,11 @@
|
|||||||
4C473A8518AFD7250073FD2E /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
|
4C473A8518AFD7250073FD2E /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
|
||||||
4C4A100D176286FD00BBF2CA /* MPTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPTableView.h; sourceTree = "<group>"; };
|
4C4A100D176286FD00BBF2CA /* MPTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPTableView.h; sourceTree = "<group>"; };
|
||||||
4C4A100E176286FD00BBF2CA /* MPTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPTableView.m; sourceTree = "<group>"; };
|
4C4A100E176286FD00BBF2CA /* MPTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPTableView.m; sourceTree = "<group>"; };
|
||||||
|
4C4B2ED022D8C9B400EB6BFD /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/GeneralPreferences.strings; sourceTree = "<group>"; };
|
||||||
|
4C4B2ED122D8CA6100EB6BFD /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/PluginRepositoryBrowserView.strings; sourceTree = "<group>"; };
|
||||||
|
4C4B2ED322D8D31F00EB6BFD /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/DatabaseSettingsWindow.strings; sourceTree = "<group>"; };
|
||||||
|
4C4B2ED522D8D3B100EB6BFD /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/IntegrationPreferences.strings; sourceTree = "<group>"; };
|
||||||
|
4C4B2ED822D8D40200EB6BFD /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/WorkflowPreferences.strings; sourceTree = "<group>"; };
|
||||||
4C4B728318E4B9B400A1A5D5 /* MPDockTileHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPDockTileHelper.h; sourceTree = "<group>"; };
|
4C4B728318E4B9B400A1A5D5 /* MPDockTileHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPDockTileHelper.h; sourceTree = "<group>"; };
|
||||||
4C4B728418E4B9B400A1A5D5 /* MPDockTileHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPDockTileHelper.m; sourceTree = "<group>"; };
|
4C4B728418E4B9B400A1A5D5 /* MPDockTileHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPDockTileHelper.m; sourceTree = "<group>"; };
|
||||||
4C4B7EE617A45EC5000234C7 /* MPDatePickingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPDatePickingViewController.h; sourceTree = "<group>"; };
|
4C4B7EE617A45EC5000234C7 /* MPDatePickingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPDatePickingViewController.h; sourceTree = "<group>"; };
|
||||||
@@ -614,7 +629,6 @@
|
|||||||
4C735FBF2035FCBF00708D53 /* MPPluginEntryActionContext.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPPluginEntryActionContext.m; sourceTree = "<group>"; };
|
4C735FBF2035FCBF00708D53 /* MPPluginEntryActionContext.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPPluginEntryActionContext.m; sourceTree = "<group>"; };
|
||||||
4C73B6EE215E64A7009787F7 /* MPWelcomeViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPWelcomeViewController.h; sourceTree = "<group>"; };
|
4C73B6EE215E64A7009787F7 /* MPWelcomeViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPWelcomeViewController.h; sourceTree = "<group>"; };
|
||||||
4C73B6EF215E64A7009787F7 /* MPWelcomeViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPWelcomeViewController.m; sourceTree = "<group>"; };
|
4C73B6EF215E64A7009787F7 /* MPWelcomeViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPWelcomeViewController.m; sourceTree = "<group>"; };
|
||||||
4C73EB941FBB58730033000F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/DatabaseSettingsWindow.strings; sourceTree = "<group>"; };
|
|
||||||
4C73EB951FBB5A8F0033000F /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/AutotypeCandidateSelectionView.strings; sourceTree = "<group>"; };
|
4C73EB951FBB5A8F0033000F /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/AutotypeCandidateSelectionView.strings; sourceTree = "<group>"; };
|
||||||
4C73EB961FBB5A910033000F /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/AutotypeBuilderView.strings; sourceTree = "<group>"; };
|
4C73EB961FBB5A910033000F /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/AutotypeBuilderView.strings; sourceTree = "<group>"; };
|
||||||
4C76155F1764C0590015A1A6 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/GeneralPreferences.xib; sourceTree = "<group>"; };
|
4C76155F1764C0590015A1A6 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/GeneralPreferences.xib; sourceTree = "<group>"; };
|
||||||
@@ -775,6 +789,9 @@
|
|||||||
4CAD338E205169D30068587E /* MPPluginRepositoryItem.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPPluginRepositoryItem.m; sourceTree = "<group>"; };
|
4CAD338E205169D30068587E /* MPPluginRepositoryItem.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPPluginRepositoryItem.m; sourceTree = "<group>"; };
|
||||||
4CAD748B15B889B700104512 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
|
4CAD748B15B889B700104512 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
|
||||||
4CAD748D15B88AC100104512 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
|
4CAD748D15B88AC100104512 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
|
||||||
|
4CAD8AA322CF397B0090B2DD /* MPAutotypeDoctorReportViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPAutotypeDoctorReportViewController.h; sourceTree = "<group>"; };
|
||||||
|
4CAD8AA422CF397B0090B2DD /* MPAutotypeDoctorReportViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPAutotypeDoctorReportViewController.m; sourceTree = "<group>"; };
|
||||||
|
4CAD8AA522CF397B0090B2DD /* AutotypeDoctorReportViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AutotypeDoctorReportViewController.xib; sourceTree = "<group>"; };
|
||||||
4CB33F841EAF54A000C9341E /* KPKNode+MPIsHistory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "KPKNode+MPIsHistory.h"; sourceTree = "<group>"; };
|
4CB33F841EAF54A000C9341E /* KPKNode+MPIsHistory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "KPKNode+MPIsHistory.h"; sourceTree = "<group>"; };
|
||||||
4CB33F851EAF54A000C9341E /* KPKNode+MPIsHistory.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "KPKNode+MPIsHistory.m"; sourceTree = "<group>"; };
|
4CB33F851EAF54A000C9341E /* KPKNode+MPIsHistory.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "KPKNode+MPIsHistory.m"; sourceTree = "<group>"; };
|
||||||
4CB63A6018986530002DEC4C /* MPFlagsHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPFlagsHelper.h; sourceTree = "<group>"; };
|
4CB63A6018986530002DEC4C /* MPFlagsHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPFlagsHelper.h; sourceTree = "<group>"; };
|
||||||
@@ -891,11 +908,9 @@
|
|||||||
6021FE5318E13F2900C3BC51 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/GroupInspectorView.strings; sourceTree = "<group>"; };
|
6021FE5318E13F2900C3BC51 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/GroupInspectorView.strings; sourceTree = "<group>"; };
|
||||||
6021FE5518E13F2A00C3BC51 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/GroupInspectorView.strings"; sourceTree = "<group>"; };
|
6021FE5518E13F2A00C3BC51 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/GroupInspectorView.strings"; sourceTree = "<group>"; };
|
||||||
6021FE5718E1429500C3BC51 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/IntegrationPreferences.xib; sourceTree = "<group>"; };
|
6021FE5718E1429500C3BC51 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/IntegrationPreferences.xib; sourceTree = "<group>"; };
|
||||||
6021FE5A18E142A000C3BC51 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/IntegrationPreferences.strings; sourceTree = "<group>"; };
|
|
||||||
6021FE5C18E142A200C3BC51 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/IntegrationPreferences.strings; sourceTree = "<group>"; };
|
6021FE5C18E142A200C3BC51 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/IntegrationPreferences.strings; sourceTree = "<group>"; };
|
||||||
6021FE5E18E142A300C3BC51 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/IntegrationPreferences.strings; sourceTree = "<group>"; };
|
6021FE5E18E142A300C3BC51 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/IntegrationPreferences.strings; sourceTree = "<group>"; };
|
||||||
6021FE6218E15D9100C3BC51 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/WorkflowPreferences.xib; sourceTree = "<group>"; };
|
6021FE6218E15D9100C3BC51 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/WorkflowPreferences.xib; sourceTree = "<group>"; };
|
||||||
6021FE6518E15D9800C3BC51 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/WorkflowPreferences.strings; sourceTree = "<group>"; };
|
|
||||||
6021FE6718E15D9A00C3BC51 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/WorkflowPreferences.strings; sourceTree = "<group>"; };
|
6021FE6718E15D9A00C3BC51 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/WorkflowPreferences.strings; sourceTree = "<group>"; };
|
||||||
6021FE6918E15D9B00C3BC51 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/WorkflowPreferences.strings; sourceTree = "<group>"; };
|
6021FE6918E15D9B00C3BC51 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/WorkflowPreferences.strings; sourceTree = "<group>"; };
|
||||||
6021FE6D18E15E6D00C3BC51 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/UpdatePreferences.xib; sourceTree = "<group>"; };
|
6021FE6D18E15E6D00C3BC51 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/UpdatePreferences.xib; sourceTree = "<group>"; };
|
||||||
@@ -1116,6 +1131,8 @@
|
|||||||
4C769CA8213D59BF00A3F60A /* KPKEntry+MPCustomAttributeProperties.m */,
|
4C769CA8213D59BF00A3F60A /* KPKEntry+MPCustomAttributeProperties.m */,
|
||||||
4C58A4A12192EC1600B13370 /* NSIndexPath+MPAdditions.h */,
|
4C58A4A12192EC1600B13370 /* NSIndexPath+MPAdditions.h */,
|
||||||
4C58A4A22192EC1600B13370 /* NSIndexPath+MPAdditions.m */,
|
4C58A4A22192EC1600B13370 /* NSIndexPath+MPAdditions.m */,
|
||||||
|
3C0CDECD21CFED9000B2A10B /* NSTextView+MPTouchBarExtension.h */,
|
||||||
|
3C0CDECE21CFEDD200B2A10B /* NSTextView+MPTouchBarExtension.m */,
|
||||||
);
|
);
|
||||||
name = Categories;
|
name = Categories;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -1168,6 +1185,8 @@
|
|||||||
4C4B728418E4B9B400A1A5D5 /* MPDockTileHelper.m */,
|
4C4B728418E4B9B400A1A5D5 /* MPDockTileHelper.m */,
|
||||||
4CB63A6018986530002DEC4C /* MPFlagsHelper.h */,
|
4CB63A6018986530002DEC4C /* MPFlagsHelper.h */,
|
||||||
4C978E0C19AE54AB003067DF /* MPFlagsHelper.m */,
|
4C978E0C19AE54AB003067DF /* MPFlagsHelper.m */,
|
||||||
|
3C0CDED921D28C0E00B2A10B /* MPTouchBarButtonCreator.h */,
|
||||||
|
3C0CDED721D28BF700B2A10B /* MPTouchBarButtonCreator.m */,
|
||||||
);
|
);
|
||||||
name = Helper;
|
name = Helper;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -1537,6 +1556,8 @@
|
|||||||
4C3499FF218852160055AF45 /* MPKeyTyper.m */,
|
4C3499FF218852160055AF45 /* MPKeyTyper.m */,
|
||||||
4C1F7FA01E3A12E600D6A40E /* MPModifiedKey.h */,
|
4C1F7FA01E3A12E600D6A40E /* MPModifiedKey.h */,
|
||||||
4C1F7FA11E3A12E600D6A40E /* MPModifiedKey.m */,
|
4C1F7FA11E3A12E600D6A40E /* MPModifiedKey.m */,
|
||||||
|
4C1ECAE122CCD30F00F46069 /* MPAutotypeDoctor.h */,
|
||||||
|
4C1ECAE222CCD30F00F46069 /* MPAutotypeDoctor.m */,
|
||||||
);
|
);
|
||||||
name = Autotype;
|
name = Autotype;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -1613,6 +1634,9 @@
|
|||||||
4C73B6EE215E64A7009787F7 /* MPWelcomeViewController.h */,
|
4C73B6EE215E64A7009787F7 /* MPWelcomeViewController.h */,
|
||||||
4C73B6EF215E64A7009787F7 /* MPWelcomeViewController.m */,
|
4C73B6EF215E64A7009787F7 /* MPWelcomeViewController.m */,
|
||||||
4C7F8B6A1A10B68400CCB83D /* WelcomeView.xib */,
|
4C7F8B6A1A10B68400CCB83D /* WelcomeView.xib */,
|
||||||
|
4CAD8AA322CF397B0090B2DD /* MPAutotypeDoctorReportViewController.h */,
|
||||||
|
4CAD8AA422CF397B0090B2DD /* MPAutotypeDoctorReportViewController.m */,
|
||||||
|
4CAD8AA522CF397B0090B2DD /* AutotypeDoctorReportViewController.xib */,
|
||||||
);
|
);
|
||||||
name = "View Controller";
|
name = "View Controller";
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -1845,6 +1869,7 @@
|
|||||||
4C3826B41AD04D8E007D7D67 /* 39_HistoryTemplate.pdf in Resources */,
|
4C3826B41AD04D8E007D7D67 /* 39_HistoryTemplate.pdf in Resources */,
|
||||||
4C77E37D15B84A240093A587 /* MainMenu.xib in Resources */,
|
4C77E37D15B84A240093A587 /* MainMenu.xib in Resources */,
|
||||||
4C3826CD1AD04D8E007D7D67 /* 66_MoneyTemplate.pdf in Resources */,
|
4C3826CD1AD04D8E007D7D67 /* 66_MoneyTemplate.pdf in Resources */,
|
||||||
|
4CAD8AA722CF397B0090B2DD /* AutotypeDoctorReportViewController.xib in Resources */,
|
||||||
4CA0B2ED15BCADAC00654E32 /* PreferencesWindow.xib in Resources */,
|
4CA0B2ED15BCADAC00654E32 /* PreferencesWindow.xib in Resources */,
|
||||||
4C76155C1764C04C0015A1A6 /* GeneralPreferences.xib in Resources */,
|
4C76155C1764C04C0015A1A6 /* GeneralPreferences.xib in Resources */,
|
||||||
4CD884B715BD47080042BBF8 /* DocumentWindow.xib in Resources */,
|
4CD884B715BD47080042BBF8 /* DocumentWindow.xib in Resources */,
|
||||||
@@ -1994,11 +2019,13 @@
|
|||||||
isa = PBXSourcesBuildPhase;
|
isa = PBXSourcesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
4C1ECAE322CCD30F00F46069 /* MPAutotypeDoctor.m in Sources */,
|
||||||
4CD034AC1BFE113B003C002C /* MPPluginHost.m in Sources */,
|
4CD034AC1BFE113B003C002C /* MPPluginHost.m in Sources */,
|
||||||
4C77E37315B84A240093A587 /* main.m in Sources */,
|
4C77E37315B84A240093A587 /* main.m in Sources */,
|
||||||
4C0F04402147A6FA000B8568 /* MPCustomFieldTableView.m in Sources */,
|
4C0F04402147A6FA000B8568 /* MPCustomFieldTableView.m in Sources */,
|
||||||
4CBA2ABA17074C07006D8139 /* MPSettingsHelper.m in Sources */,
|
4CBA2ABA17074C07006D8139 /* MPSettingsHelper.m in Sources */,
|
||||||
4C77E37A15B84A240093A587 /* MPAppDelegate.m in Sources */,
|
4C77E37A15B84A240093A587 /* MPAppDelegate.m in Sources */,
|
||||||
|
3C0CDED821D28BF700B2A10B /* MPTouchBarButtonCreator.m in Sources */,
|
||||||
4C37A84015B8B474005EF8EE /* MPOutlineDataSource.m in Sources */,
|
4C37A84015B8B474005EF8EE /* MPOutlineDataSource.m in Sources */,
|
||||||
4CA0B2F915BCAF6700654E32 /* MPGeneralPreferencesController.m in Sources */,
|
4CA0B2F915BCAF6700654E32 /* MPGeneralPreferencesController.m in Sources */,
|
||||||
4C8F0C791FD05A6A00BE157F /* NSString+MPPrettyPasswordDisplay.m in Sources */,
|
4C8F0C791FD05A6A00BE157F /* NSString+MPPrettyPasswordDisplay.m in Sources */,
|
||||||
@@ -2088,6 +2115,7 @@
|
|||||||
4CEE46DD181C301D006BF1E5 /* MPAutotypeDaemon.m in Sources */,
|
4CEE46DD181C301D006BF1E5 /* MPAutotypeDaemon.m in Sources */,
|
||||||
4C50CC041F6C18830095629D /* MPCollectionViewItem.m in Sources */,
|
4C50CC041F6C18830095629D /* MPCollectionViewItem.m in Sources */,
|
||||||
4CA78C001FD58C92003C8560 /* MPPluginRepository.m in Sources */,
|
4CA78C001FD58C92003C8560 /* MPPluginRepository.m in Sources */,
|
||||||
|
4CAD8AA622CF397B0090B2DD /* MPAutotypeDoctorReportViewController.m in Sources */,
|
||||||
4C8990F71EE978EB0043B48D /* MPDuplicateEntryOptionsWindowController.m in Sources */,
|
4C8990F71EE978EB0043B48D /* MPDuplicateEntryOptionsWindowController.m in Sources */,
|
||||||
4CA3530B18A53CB800839B0F /* MPKeyMapper.m in Sources */,
|
4CA3530B18A53CB800839B0F /* MPKeyMapper.m in Sources */,
|
||||||
4CE298EB1795FC2A00DF7BDB /* MPEntryContextMenuDelegate.m in Sources */,
|
4CE298EB1795FC2A00DF7BDB /* MPEntryContextMenuDelegate.m in Sources */,
|
||||||
@@ -2123,6 +2151,7 @@
|
|||||||
4C0F647B17B6BC9C00D9522A /* MPSavePanelAccessoryViewController.m in Sources */,
|
4C0F647B17B6BC9C00D9522A /* MPSavePanelAccessoryViewController.m in Sources */,
|
||||||
4C0949591FD6B89B004F2971 /* NSUserNotification+MPAdditions.m in Sources */,
|
4C0949591FD6B89B004F2971 /* NSUserNotification+MPAdditions.m in Sources */,
|
||||||
4C3B42871F935316007B04FD /* MPDayCountFormatter.m in Sources */,
|
4C3B42871F935316007B04FD /* MPDayCountFormatter.m in Sources */,
|
||||||
|
3C0CDECF21CFEDD200B2A10B /* NSTextView+MPTouchBarExtension.m in Sources */,
|
||||||
4C57AE1417BA422B00CA4F34 /* MPSegmentedContextCell.m in Sources */,
|
4C57AE1417BA422B00CA4F34 /* MPSegmentedContextCell.m in Sources */,
|
||||||
4CE2961518429AA5005F01CE /* MPAutotypeKeyPress.m in Sources */,
|
4CE2961518429AA5005F01CE /* MPAutotypeKeyPress.m in Sources */,
|
||||||
4C32B0E71A1D4436007E12F1 /* KPKFormat+MPUTIDetection.m in Sources */,
|
4C32B0E71A1D4436007E12F1 /* KPKFormat+MPUTIDetection.m in Sources */,
|
||||||
@@ -2277,7 +2306,7 @@
|
|||||||
4C840C471D773E5D0081F605 /* pl */,
|
4C840C471D773E5D0081F605 /* pl */,
|
||||||
4C4161041F50333B003BC0AF /* es */,
|
4C4161041F50333B003BC0AF /* es */,
|
||||||
6A74B0652076F4B40049BC29 /* sv-SE */,
|
6A74B0652076F4B40049BC29 /* sv-SE */,
|
||||||
4C168CB02216CEC300BB1EB0 /* en */,
|
4C4B2ED022D8C9B400EB6BFD /* en */,
|
||||||
);
|
);
|
||||||
name = GeneralPreferences.xib;
|
name = GeneralPreferences.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -2484,7 +2513,6 @@
|
|||||||
isa = PBXVariantGroup;
|
isa = PBXVariantGroup;
|
||||||
children = (
|
children = (
|
||||||
6021FE5718E1429500C3BC51 /* Base */,
|
6021FE5718E1429500C3BC51 /* Base */,
|
||||||
6021FE5A18E142A000C3BC51 /* en */,
|
|
||||||
6021FE5C18E142A200C3BC51 /* de */,
|
6021FE5C18E142A200C3BC51 /* de */,
|
||||||
6021FE5E18E142A300C3BC51 /* fr */,
|
6021FE5E18E142A300C3BC51 /* fr */,
|
||||||
BD6C365919484CF40089EB37 /* nl */,
|
BD6C365919484CF40089EB37 /* nl */,
|
||||||
@@ -2494,6 +2522,7 @@
|
|||||||
60ECAD271F12262400EA9DB3 /* zh-Hans */,
|
60ECAD271F12262400EA9DB3 /* zh-Hans */,
|
||||||
4C4161051F50333B003BC0AF /* es */,
|
4C4161051F50333B003BC0AF /* es */,
|
||||||
6A74B0662076F4B40049BC29 /* sv-SE */,
|
6A74B0662076F4B40049BC29 /* sv-SE */,
|
||||||
|
4C4B2ED522D8D3B100EB6BFD /* en */,
|
||||||
);
|
);
|
||||||
name = IntegrationPreferences.xib;
|
name = IntegrationPreferences.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -2502,7 +2531,6 @@
|
|||||||
isa = PBXVariantGroup;
|
isa = PBXVariantGroup;
|
||||||
children = (
|
children = (
|
||||||
6021FE6218E15D9100C3BC51 /* Base */,
|
6021FE6218E15D9100C3BC51 /* Base */,
|
||||||
6021FE6518E15D9800C3BC51 /* en */,
|
|
||||||
6021FE6718E15D9A00C3BC51 /* de */,
|
6021FE6718E15D9A00C3BC51 /* de */,
|
||||||
6021FE6918E15D9B00C3BC51 /* fr */,
|
6021FE6918E15D9B00C3BC51 /* fr */,
|
||||||
BD6C365A19484CF40089EB37 /* nl */,
|
BD6C365A19484CF40089EB37 /* nl */,
|
||||||
@@ -2512,6 +2540,7 @@
|
|||||||
60ECAD251F12253C00EA9DB3 /* zh-Hans */,
|
60ECAD251F12253C00EA9DB3 /* zh-Hans */,
|
||||||
4C4161061F50333B003BC0AF /* es */,
|
4C4161061F50333B003BC0AF /* es */,
|
||||||
6A74B0672076F4B40049BC29 /* sv-SE */,
|
6A74B0672076F4B40049BC29 /* sv-SE */,
|
||||||
|
4C4B2ED822D8D40200EB6BFD /* en */,
|
||||||
);
|
);
|
||||||
name = WorkflowPreferences.xib;
|
name = WorkflowPreferences.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -2600,8 +2629,8 @@
|
|||||||
4825CC811C414D57003E37E9 /* it */,
|
4825CC811C414D57003E37E9 /* it */,
|
||||||
4C840C441D773E5D0081F605 /* pl */,
|
4C840C441D773E5D0081F605 /* pl */,
|
||||||
4C4161021F50333B003BC0AF /* es */,
|
4C4161021F50333B003BC0AF /* es */,
|
||||||
4C73EB941FBB58730033000F /* en */,
|
|
||||||
6A74B0622076F4B30049BC29 /* sv-SE */,
|
6A74B0622076F4B30049BC29 /* sv-SE */,
|
||||||
|
4C4B2ED322D8D31F00EB6BFD /* en */,
|
||||||
);
|
);
|
||||||
name = DatabaseSettingsWindow.xib;
|
name = DatabaseSettingsWindow.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -2613,6 +2642,7 @@
|
|||||||
78371130225540D8009BD28D /* ru */,
|
78371130225540D8009BD28D /* ru */,
|
||||||
78371132225540DE009BD28D /* en */,
|
78371132225540DE009BD28D /* en */,
|
||||||
4C1D56382271F4BC00C3E594 /* fr */,
|
4C1D56382271F4BC00C3E594 /* fr */,
|
||||||
|
4C4B2ED122D8CA6100EB6BFD /* de */,
|
||||||
);
|
);
|
||||||
name = PluginRepositoryBrowserView.xib;
|
name = PluginRepositoryBrowserView.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
|||||||
138
MacPass/AutotypeDoctorReportViewController.xib
Normal file
138
MacPass/AutotypeDoctorReportViewController.xib
Normal file
@@ -0,0 +1,138 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
||||||
|
<dependencies>
|
||||||
|
<deployment identifier="macosx"/>
|
||||||
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/>
|
||||||
|
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||||
|
</dependencies>
|
||||||
|
<objects>
|
||||||
|
<customObject id="-2" userLabel="File's Owner" customClass="MPAutotypeDoctorReportViewController">
|
||||||
|
<connections>
|
||||||
|
<outlet property="accessibiltyStatusImageView" destination="Xzw-kJ-WoH" id="jEb-0z-dNB"/>
|
||||||
|
<outlet property="accessibiltyStatusTextField" destination="Pqa-Ff-7cc" id="h5M-ZN-GhR"/>
|
||||||
|
<outlet property="screenRecordingStatusImageView" destination="vvZ-Lj-v22" id="7h0-cF-Mxt"/>
|
||||||
|
<outlet property="screenRecordingStatusTextField" destination="IP0-CP-tlA" id="AfL-XZ-KRk"/>
|
||||||
|
<outlet property="view" destination="Hz6-mo-xeY" id="0bl-1N-x8E"/>
|
||||||
|
</connections>
|
||||||
|
</customObject>
|
||||||
|
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||||
|
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||||
|
<customView id="Hz6-mo-xeY">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="400" height="375"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<stackView orientation="horizontal" alignment="top" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" translatesAutoresizingMaskIntoConstraints="NO" id="T2c-ZD-ioV">
|
||||||
|
<rect key="frame" x="20" y="20" width="360" height="0.0"/>
|
||||||
|
<beginningViews>
|
||||||
|
<stackView orientation="vertical" alignment="leading" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ErP-eL-yKu"/>
|
||||||
|
</beginningViews>
|
||||||
|
<visibilityPriorities>
|
||||||
|
<integer value="1000"/>
|
||||||
|
</visibilityPriorities>
|
||||||
|
<customSpacing>
|
||||||
|
<real value="3.4028234663852886e+38"/>
|
||||||
|
</customSpacing>
|
||||||
|
</stackView>
|
||||||
|
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="Xzw-kJ-WoH">
|
||||||
|
<rect key="frame" x="20" y="339" width="16" height="16"/>
|
||||||
|
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="NSStatusAvailable" id="DWu-HI-z3k"/>
|
||||||
|
</imageView>
|
||||||
|
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Pqa-Ff-7cc">
|
||||||
|
<rect key="frame" x="42" y="338" width="80" height="17"/>
|
||||||
|
<textFieldCell key="cell" lineBreakMode="clipping" title="Accessibility" id="aIL-8W-63g">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" verticalCompressionResistancePriority="751" setsMaxLayoutWidthAtFirstLayout="YES" translatesAutoresizingMaskIntoConstraints="NO" id="hY9-T0-hke">
|
||||||
|
<rect key="frame" x="42" y="274" width="340" height="56"/>
|
||||||
|
<textFieldCell key="cell" controlSize="small" selectable="YES" id="6GI-KJ-Xue">
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
<string key="title">MacPass will send key press events to the system when Autotype or Global Autotype is executed. Since macOS 10.14 Mojave this is only possible, if Accessibility permissions are granted to the application.</string>
|
||||||
|
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="x9d-0h-hyJ">
|
||||||
|
<rect key="frame" x="38" y="226" width="236" height="32"/>
|
||||||
|
<buttonCell key="cell" type="push" title="Open Accessibilty Preferences…" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="8m1-vs-pd5">
|
||||||
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
</buttonCell>
|
||||||
|
<connections>
|
||||||
|
<action selector="openAccessibiltyPreferences:" target="-2" id="aZf-xi-w73"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="vvZ-Lj-v22">
|
||||||
|
<rect key="frame" x="20" y="188" width="16" height="16"/>
|
||||||
|
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="NSStatusAvailable" id="kCX-CB-5vQ"/>
|
||||||
|
</imageView>
|
||||||
|
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" verticalCompressionResistancePriority="751" setsMaxLayoutWidthAtFirstLayout="YES" translatesAutoresizingMaskIntoConstraints="NO" id="6vq-iM-inn">
|
||||||
|
<rect key="frame" x="42" y="81" width="340" height="98"/>
|
||||||
|
<textFieldCell key="cell" controlSize="small" selectable="YES" id="7of-1z-Nfk">
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
<string key="title">MacPass will read every window title when Global Autotype is executed to find a match. Since macOS 10.15 Catalina it is not possible to read any window title, if the user has not granted permissions to record the screen. If you are running macOS 10.15 or higher, MacPass will try to capture the left top most pixel on your screen to initate a request to record the screen. This pixel will not be stored and processed in any way.</string>
|
||||||
|
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="dek-ho-dPm">
|
||||||
|
<rect key="frame" x="38" y="33" width="256" height="32"/>
|
||||||
|
<buttonCell key="cell" type="push" title="Open Screen Sharing Preferences…" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="lgB-Ys-L9R">
|
||||||
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
</buttonCell>
|
||||||
|
<connections>
|
||||||
|
<action selector="openScreenRecordingPreferences:" target="-2" id="rvE-ff-sR2"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="IP0-CP-tlA">
|
||||||
|
<rect key="frame" x="42" y="187" width="112" height="17"/>
|
||||||
|
<textFieldCell key="cell" lineBreakMode="clipping" title="Screen Recording" id="9gr-mz-2I4">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
<box verticalHuggingPriority="750" boxType="separator" translatesAutoresizingMaskIntoConstraints="NO" id="BHb-cd-Q0r">
|
||||||
|
<rect key="frame" x="20" y="210" width="360" height="5"/>
|
||||||
|
</box>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="IP0-CP-tlA" firstAttribute="top" secondItem="BHb-cd-Q0r" secondAttribute="bottom" constant="8" symbolic="YES" id="0sS-li-mx4"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="hY9-T0-hke" secondAttribute="trailing" constant="20" symbolic="YES" id="1lC-Hg-bzq"/>
|
||||||
|
<constraint firstItem="vvZ-Lj-v22" firstAttribute="leading" secondItem="Xzw-kJ-WoH" secondAttribute="leading" id="2ZC-Uf-Pe3"/>
|
||||||
|
<constraint firstItem="vvZ-Lj-v22" firstAttribute="centerY" secondItem="IP0-CP-tlA" secondAttribute="centerY" id="2t3-9h-RIf"/>
|
||||||
|
<constraint firstItem="Pqa-Ff-7cc" firstAttribute="leading" secondItem="Xzw-kJ-WoH" secondAttribute="trailing" constant="8" symbolic="YES" id="57a-U7-goz"/>
|
||||||
|
<constraint firstItem="6vq-iM-inn" firstAttribute="top" secondItem="IP0-CP-tlA" secondAttribute="bottom" constant="8" symbolic="YES" id="5ag-ah-YEW"/>
|
||||||
|
<constraint firstItem="x9d-0h-hyJ" firstAttribute="top" secondItem="hY9-T0-hke" secondAttribute="bottom" constant="20" symbolic="YES" id="Avt-sj-8GL"/>
|
||||||
|
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="Pqa-Ff-7cc" secondAttribute="trailing" constant="20" symbolic="YES" id="Bmg-tH-M7Q"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="6vq-iM-inn" secondAttribute="trailing" constant="20" symbolic="YES" id="Cga-EU-fSf"/>
|
||||||
|
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="x9d-0h-hyJ" secondAttribute="trailing" constant="20" symbolic="YES" id="D8o-Gu-s2Y"/>
|
||||||
|
<constraint firstItem="T2c-ZD-ioV" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" constant="20" symbolic="YES" id="G27-G3-ORS"/>
|
||||||
|
<constraint firstItem="T2c-ZD-ioV" firstAttribute="top" relation="greaterThanOrEqual" secondItem="dek-ho-dPm" secondAttribute="bottom" constant="20" symbolic="YES" id="GL8-gK-2fL"/>
|
||||||
|
<constraint firstItem="x9d-0h-hyJ" firstAttribute="leading" secondItem="Pqa-Ff-7cc" secondAttribute="leading" id="J4Y-VM-MZt"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="T2c-ZD-ioV" secondAttribute="trailing" constant="20" symbolic="YES" id="M4d-KM-mLN"/>
|
||||||
|
<constraint firstItem="dek-ho-dPm" firstAttribute="leading" secondItem="6vq-iM-inn" secondAttribute="leading" id="TaR-vo-kBx"/>
|
||||||
|
<constraint firstItem="BHb-cd-Q0r" firstAttribute="top" secondItem="x9d-0h-hyJ" secondAttribute="bottom" constant="20" symbolic="YES" id="TlD-dn-LEm"/>
|
||||||
|
<constraint firstItem="BHb-cd-Q0r" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" constant="20" symbolic="YES" id="YdV-6E-JaO"/>
|
||||||
|
<constraint firstItem="IP0-CP-tlA" firstAttribute="leading" secondItem="Pqa-Ff-7cc" secondAttribute="leading" id="c76-Ak-WXw"/>
|
||||||
|
<constraint firstItem="Xzw-kJ-WoH" firstAttribute="centerY" secondItem="Pqa-Ff-7cc" secondAttribute="centerY" id="dF3-uj-K2q"/>
|
||||||
|
<constraint firstItem="Pqa-Ff-7cc" firstAttribute="top" secondItem="Hz6-mo-xeY" secondAttribute="top" constant="20" symbolic="YES" id="eyJ-B0-kI3"/>
|
||||||
|
<constraint firstItem="dek-ho-dPm" firstAttribute="top" secondItem="6vq-iM-inn" secondAttribute="bottom" constant="20" symbolic="YES" id="i0R-gb-coZ"/>
|
||||||
|
<constraint firstItem="hY9-T0-hke" firstAttribute="leading" secondItem="Pqa-Ff-7cc" secondAttribute="leading" id="kLD-8A-d1Y"/>
|
||||||
|
<constraint firstItem="6vq-iM-inn" firstAttribute="leading" secondItem="IP0-CP-tlA" secondAttribute="leading" id="nby-S7-orD"/>
|
||||||
|
<constraint firstItem="Xzw-kJ-WoH" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" constant="20" symbolic="YES" id="oAi-Zl-LCI"/>
|
||||||
|
<constraint firstItem="hY9-T0-hke" firstAttribute="top" secondItem="Pqa-Ff-7cc" secondAttribute="bottom" constant="8" symbolic="YES" id="oK3-FK-r0S"/>
|
||||||
|
<constraint firstAttribute="bottom" secondItem="T2c-ZD-ioV" secondAttribute="bottom" constant="20" symbolic="YES" id="pm7-eL-q1F"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="BHb-cd-Q0r" secondAttribute="trailing" constant="20" symbolic="YES" id="ryW-3O-g6b"/>
|
||||||
|
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="dek-ho-dPm" secondAttribute="trailing" constant="20" symbolic="YES" id="xcq-hp-Ay9"/>
|
||||||
|
</constraints>
|
||||||
|
<point key="canvasLocation" x="-409" y="-124"/>
|
||||||
|
</customView>
|
||||||
|
</objects>
|
||||||
|
<resources>
|
||||||
|
<image name="NSStatusAvailable" width="16" height="16"/>
|
||||||
|
</resources>
|
||||||
|
</document>
|
||||||
@@ -1,14 +1,15 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<deployment identifier="macosx"/>
|
<deployment identifier="macosx"/>
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14460.31"/>
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/>
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<objects>
|
<objects>
|
||||||
<customObject id="-2" userLabel="File's Owner" customClass="MPAutotypeCandidateSelectionViewController">
|
<customObject id="-2" userLabel="File's Owner" customClass="MPAutotypeCandidateSelectionViewController">
|
||||||
<connections>
|
<connections>
|
||||||
<outlet property="contextTableView" destination="Ih2-lo-t2W" id="8uy-Mz-1vc"/>
|
<outlet property="contextTableView" destination="Ih2-lo-t2W" id="8uy-Mz-1vc"/>
|
||||||
|
<outlet property="messageTextField" destination="kDw-2l-7gQ" id="7bW-as-yGU"/>
|
||||||
<outlet property="selectAutotypeContextButton" destination="V5B-Qq-GN8" id="mqv-H3-N01"/>
|
<outlet property="selectAutotypeContextButton" destination="V5B-Qq-GN8" id="mqv-H3-N01"/>
|
||||||
<outlet property="view" destination="Hz6-mo-xeY" id="0bl-1N-x8E"/>
|
<outlet property="view" destination="Hz6-mo-xeY" id="0bl-1N-x8E"/>
|
||||||
</connections>
|
</connections>
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<deployment identifier="macosx"/>
|
<deployment identifier="macosx"/>
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14460.31"/>
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/>
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<objects>
|
<objects>
|
||||||
@@ -51,13 +51,13 @@
|
|||||||
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES"/>
|
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES"/>
|
||||||
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
|
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
|
||||||
<rect key="contentRect" x="196" y="240" width="500" height="360"/>
|
<rect key="contentRect" x="196" y="240" width="500" height="360"/>
|
||||||
<rect key="screenRect" x="0.0" y="0.0" width="1680" height="1027"/>
|
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/>
|
||||||
<view key="contentView" id="2">
|
<view key="contentView" id="2">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="500" height="360"/>
|
<rect key="frame" x="0.0" y="0.0" width="553" height="484"/>
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="288">
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="288">
|
||||||
<rect key="frame" x="427" y="13" width="59" height="32"/>
|
<rect key="frame" x="480" y="13" width="59" height="32"/>
|
||||||
<buttonCell key="cell" type="push" title="OK" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="289">
|
<buttonCell key="cell" type="push" title="OK" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="289">
|
||||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
<font key="font" metaFont="system"/>
|
<font key="font" metaFont="system"/>
|
||||||
@@ -70,7 +70,7 @@ DQ
|
|||||||
</connections>
|
</connections>
|
||||||
</button>
|
</button>
|
||||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="956">
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="956">
|
||||||
<rect key="frame" x="345" y="13" width="82" height="32"/>
|
<rect key="frame" x="398" y="13" width="82" height="32"/>
|
||||||
<buttonCell key="cell" type="push" title="Cancel" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="957">
|
<buttonCell key="cell" type="push" title="Cancel" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="957">
|
||||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
<font key="font" metaFont="system"/>
|
<font key="font" metaFont="system"/>
|
||||||
@@ -83,7 +83,7 @@ Gw
|
|||||||
</connections>
|
</connections>
|
||||||
</button>
|
</button>
|
||||||
<tabView translatesAutoresizingMaskIntoConstraints="NO" id="357">
|
<tabView translatesAutoresizingMaskIntoConstraints="NO" id="357">
|
||||||
<rect key="frame" x="13" y="41" width="474" height="313"/>
|
<rect key="frame" x="13" y="41" width="527" height="437"/>
|
||||||
<font key="font" metaFont="system"/>
|
<font key="font" metaFont="system"/>
|
||||||
<tabViewItems>
|
<tabViewItems>
|
||||||
<tabViewItem label="General" identifier="1" id="358">
|
<tabViewItem label="General" identifier="1" id="358">
|
||||||
@@ -265,7 +265,7 @@ Gw
|
|||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="P98-Cu-Tha">
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="P98-Cu-Tha">
|
||||||
<rect key="frame" x="251.5" y="18" width="143" height="23"/>
|
<rect key="frame" x="251" y="18" width="143" height="23"/>
|
||||||
<buttonCell key="cell" type="roundTextured" title="Generate Parameters" bezelStyle="texturedRounded" alignment="center" lineBreakMode="truncatingTail" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="PoI-Er-Y8P">
|
<buttonCell key="cell" type="roundTextured" title="Generate Parameters" bezelStyle="texturedRounded" alignment="center" lineBreakMode="truncatingTail" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="PoI-Er-Y8P">
|
||||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
<font key="font" metaFont="system"/>
|
<font key="font" metaFont="system"/>
|
||||||
|
|||||||
@@ -26,34 +26,34 @@
|
|||||||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||||
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||||
<customView translatesAutoresizingMaskIntoConstraints="NO" id="1">
|
<customView translatesAutoresizingMaskIntoConstraints="NO" id="1">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="400" height="463"/>
|
<rect key="frame" x="0.0" y="0.0" width="400" height="449"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<box autoresizesSubviews="NO" verticalHuggingPriority="500" borderType="line" title="Autotype" translatesAutoresizingMaskIntoConstraints="NO" id="P9N-HM-wER">
|
<box autoresizesSubviews="NO" verticalHuggingPriority="500" borderType="line" title="Autotype" translatesAutoresizingMaskIntoConstraints="NO" id="P9N-HM-wER">
|
||||||
<rect key="frame" x="17" y="115" width="366" height="328"/>
|
<rect key="frame" x="17" y="115" width="366" height="314"/>
|
||||||
<view key="contentView" id="faU-Ok-HJ3">
|
<view key="contentView" id="faU-Ok-HJ3">
|
||||||
<rect key="frame" x="3" y="3" width="360" height="310"/>
|
<rect key="frame" x="3" y="3" width="360" height="296"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<stackView orientation="vertical" alignment="leading" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" translatesAutoresizingMaskIntoConstraints="NO" id="j52-9L-k7c">
|
<stackView orientation="vertical" alignment="leading" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" translatesAutoresizingMaskIntoConstraints="NO" id="j52-9L-k7c">
|
||||||
<rect key="frame" x="16" y="17" width="328" height="283"/>
|
<rect key="frame" x="16" y="17" width="328" height="269"/>
|
||||||
<beginningViews>
|
<beginningViews>
|
||||||
<textField verticalHuggingPriority="750" fixedFrame="YES" preferredMaxLayoutWidth="328" translatesAutoresizingMaskIntoConstraints="NO" id="hMJ-Mo-xOM">
|
<textField verticalHuggingPriority="750" fixedFrame="YES" preferredMaxLayoutWidth="328" translatesAutoresizingMaskIntoConstraints="NO" id="hMJ-Mo-xOM">
|
||||||
<rect key="frame" x="-2" y="227" width="332" height="56"/>
|
<rect key="frame" x="-2" y="227" width="332" height="42"/>
|
||||||
<textFieldCell key="cell" controlSize="small" id="H37-ku-aTc">
|
<textFieldCell key="cell" controlSize="small" id="H37-ku-aTc">
|
||||||
<font key="font" metaFont="smallSystem"/>
|
<font key="font" metaFont="smallSystem"/>
|
||||||
<string key="title">Autotype is not available, because MacPass is not allowed to control your computer. To enable Autotype, go to the Security and Privacy Preferences and add MacPass to the Accessibilty group. Changes require a restart of MacPass.</string>
|
<string key="title">Autotype might not work properly. Some issues where found that prevent Autotype or Global Autotype to work. Please run the Autotype Doctor to fix those issues.</string>
|
||||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
</textFieldCell>
|
</textFieldCell>
|
||||||
</textField>
|
</textField>
|
||||||
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="jai-b6-Qv4">
|
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="jai-b6-Qv4">
|
||||||
<rect key="frame" x="-6" y="191" width="160" height="32"/>
|
<rect key="frame" x="-6" y="191" width="177" height="32"/>
|
||||||
<buttonCell key="cell" type="push" title="Open Preferences…" bezelStyle="rounded" alignment="center" borderStyle="border" inset="2" id="NP0-R3-m6n">
|
<buttonCell key="cell" type="push" title="Run Autotype Doctor…" bezelStyle="rounded" alignment="center" borderStyle="border" inset="2" id="NP0-R3-m6n">
|
||||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
<font key="font" metaFont="system"/>
|
<font key="font" metaFont="system"/>
|
||||||
</buttonCell>
|
</buttonCell>
|
||||||
<connections>
|
<connections>
|
||||||
<action selector="openAccessibiltyPreferences:" target="-2" id="GTg-6Z-6nd"/>
|
<action selector="runAutotypeDoctor:" target="-2" id="u2q-ab-rQY"/>
|
||||||
</connections>
|
</connections>
|
||||||
</button>
|
</button>
|
||||||
<button fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="tik-Ar-FJg">
|
<button fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="tik-Ar-FJg">
|
||||||
@@ -229,7 +229,7 @@
|
|||||||
<constraint firstItem="P9N-HM-wER" firstAttribute="leading" secondItem="1" secondAttribute="leading" constant="20" id="ulV-xL-ldJ"/>
|
<constraint firstItem="P9N-HM-wER" firstAttribute="leading" secondItem="1" secondAttribute="leading" constant="20" id="ulV-xL-ldJ"/>
|
||||||
<constraint firstItem="VVs-b5-cX9" firstAttribute="leading" secondItem="P9N-HM-wER" secondAttribute="leading" id="z4a-9C-78h"/>
|
<constraint firstItem="VVs-b5-cX9" firstAttribute="leading" secondItem="P9N-HM-wER" secondAttribute="leading" id="z4a-9C-78h"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
<point key="canvasLocation" x="-357" y="-1007.5"/>
|
<point key="canvasLocation" x="-558" y="-1123"/>
|
||||||
</customView>
|
</customView>
|
||||||
</objects>
|
</objects>
|
||||||
</document>
|
</document>
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14313.18" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<deployment identifier="macosx"/>
|
<deployment identifier="macosx"/>
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14313.18"/>
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<objects>
|
<objects>
|
||||||
<customObject id="-2" userLabel="File's Owner" customClass="NSApplication">
|
<customObject id="-2" userLabel="File's Owner" customClass="NSApplication">
|
||||||
@@ -317,12 +317,18 @@ CA
|
|||||||
</connections>
|
</connections>
|
||||||
</menuItem>
|
</menuItem>
|
||||||
<menuItem isSeparatorItem="YES" id="1176"/>
|
<menuItem isSeparatorItem="YES" id="1176"/>
|
||||||
<menuItem title="Show Password Generator" keyEquivalent="p" id="1200">
|
<menuItem title="Password Generator" keyEquivalent="p" id="1200">
|
||||||
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
|
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
|
||||||
<connections>
|
<connections>
|
||||||
<action selector="showPasswordCreator:" target="494" id="1202"/>
|
<action selector="showPasswordCreator:" target="494" id="1202"/>
|
||||||
</connections>
|
</connections>
|
||||||
</menuItem>
|
</menuItem>
|
||||||
|
<menuItem title="Autotype Doctor" id="zWx-Re-iuJ">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="showAutotypeDoctor:" target="494" id="fsq-lt-9gZ"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
<menuItem isSeparatorItem="YES" id="92">
|
<menuItem isSeparatorItem="YES" id="92">
|
||||||
<modifierMask key="keyEquivalentModifierMask" command="YES"/>
|
<modifierMask key="keyEquivalentModifierMask" command="YES"/>
|
||||||
</menuItem>
|
</menuItem>
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<deployment identifier="macosx"/>
|
<deployment identifier="macosx"/>
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14460.31"/>
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/>
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<objects>
|
<objects>
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<deployment identifier="macosx"/>
|
<deployment identifier="macosx"/>
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14460.31"/>
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/>
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<objects>
|
<objects>
|
||||||
@@ -189,7 +189,7 @@ Gw
|
|||||||
<constraint firstItem="6" firstAttribute="leading" secondItem="9" secondAttribute="leading" id="zeJ-6i-fY3"/>
|
<constraint firstItem="6" firstAttribute="leading" secondItem="9" secondAttribute="leading" id="zeJ-6i-fY3"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
</view>
|
</view>
|
||||||
<point key="canvasLocation" x="-312" y="-21"/>
|
<point key="canvasLocation" x="-8" y="-14"/>
|
||||||
</window>
|
</window>
|
||||||
</objects>
|
</objects>
|
||||||
<resources>
|
<resources>
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<deployment identifier="macosx"/>
|
<deployment identifier="macosx"/>
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14460.31"/>
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/>
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<objects>
|
<objects>
|
||||||
@@ -152,7 +152,7 @@ Gw
|
|||||||
<constraint firstItem="d8O-Ha-rrS" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="1" secondAttribute="leading" constant="20" symbolic="YES" id="vxq-YP-UhR"/>
|
<constraint firstItem="d8O-Ha-rrS" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="1" secondAttribute="leading" constant="20" symbolic="YES" id="vxq-YP-UhR"/>
|
||||||
<constraint firstItem="2" firstAttribute="leading" secondItem="2pb-ZG-spA" secondAttribute="trailing" constant="12" id="ytJ-5Z-5rT"/>
|
<constraint firstItem="2" firstAttribute="leading" secondItem="2pb-ZG-spA" secondAttribute="trailing" constant="12" id="ytJ-5Z-5rT"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
<point key="canvasLocation" x="-217" y="-96"/>
|
<point key="canvasLocation" x="147" y="-80"/>
|
||||||
</customView>
|
</customView>
|
||||||
</objects>
|
</objects>
|
||||||
<resources>
|
<resources>
|
||||||
|
|||||||
@@ -105,7 +105,7 @@
|
|||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" setsMaxLayoutWidthAtFirstLayout="YES" translatesAutoresizingMaskIntoConstraints="NO" id="q1P-PD-0LW">
|
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" setsMaxLayoutWidthAtFirstLayout="YES" translatesAutoresizingMaskIntoConstraints="NO" id="q1P-PD-0LW">
|
||||||
<rect key="frame" x="0.0" y="18" width="127" height="17"/>
|
<rect key="frame" x="0.0" y="18" width="145" height="17"/>
|
||||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Table View Cell" id="fug-79-n9g">
|
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Table View Cell" id="fug-79-n9g">
|
||||||
<font key="font" metaFont="system"/>
|
<font key="font" metaFont="system"/>
|
||||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
@@ -126,7 +126,7 @@
|
|||||||
<constraint firstAttribute="trailing" secondItem="fQy-Sz-4VA" secondAttribute="trailing" constant="2" id="Iy0-iV-Mbx"/>
|
<constraint firstAttribute="trailing" secondItem="fQy-Sz-4VA" secondAttribute="trailing" constant="2" id="Iy0-iV-Mbx"/>
|
||||||
<constraint firstItem="fQy-Sz-4VA" firstAttribute="top" secondItem="q1P-PD-0LW" secondAttribute="bottom" constant="2" id="RZb-58-Zwr"/>
|
<constraint firstItem="fQy-Sz-4VA" firstAttribute="top" secondItem="q1P-PD-0LW" secondAttribute="bottom" constant="2" id="RZb-58-Zwr"/>
|
||||||
<constraint firstItem="q1P-PD-0LW" firstAttribute="leading" secondItem="vVt-P3-yLp" secondAttribute="leading" constant="2" id="bTc-2c-BYB"/>
|
<constraint firstItem="q1P-PD-0LW" firstAttribute="leading" secondItem="vVt-P3-yLp" secondAttribute="leading" constant="2" id="bTc-2c-BYB"/>
|
||||||
<constraint firstAttribute="trailing" secondItem="q1P-PD-0LW" secondAttribute="trailing" constant="20" symbolic="YES" id="gSi-vN-xzX"/>
|
<constraint firstAttribute="trailing" secondItem="q1P-PD-0LW" secondAttribute="trailing" constant="2" id="gSi-vN-xzX"/>
|
||||||
<constraint firstItem="q1P-PD-0LW" firstAttribute="top" secondItem="vVt-P3-yLp" secondAttribute="top" id="tTs-2E-33f"/>
|
<constraint firstItem="q1P-PD-0LW" firstAttribute="top" secondItem="vVt-P3-yLp" secondAttribute="top" id="tTs-2E-33f"/>
|
||||||
<constraint firstItem="fQy-Sz-4VA" firstAttribute="leading" secondItem="vVt-P3-yLp" secondAttribute="leading" constant="2" id="zLP-Ci-nUM"/>
|
<constraint firstItem="fQy-Sz-4VA" firstAttribute="leading" secondItem="vVt-P3-yLp" secondAttribute="leading" constant="2" id="zLP-Ci-nUM"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<deployment identifier="macosx"/>
|
<deployment identifier="macosx"/>
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14460.31"/>
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/>
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<objects>
|
<objects>
|
||||||
@@ -228,7 +228,7 @@
|
|||||||
<constraint firstItem="bGv-Zc-Vrk" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" constant="20" id="tk3-kF-k22"/>
|
<constraint firstItem="bGv-Zc-Vrk" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" constant="20" id="tk3-kF-k22"/>
|
||||||
<constraint firstItem="d2Q-7O-ilP" firstAttribute="leading" secondItem="fjQ-ni-Ayx" secondAttribute="trailing" constant="8" symbolic="YES" id="wHQ-Lk-2fv"/>
|
<constraint firstItem="d2Q-7O-ilP" firstAttribute="leading" secondItem="fjQ-ni-Ayx" secondAttribute="trailing" constant="8" symbolic="YES" id="wHQ-Lk-2fv"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
<point key="canvasLocation" x="-130" y="-66"/>
|
<point key="canvasLocation" x="193" y="-18"/>
|
||||||
</customView>
|
</customView>
|
||||||
</objects>
|
</objects>
|
||||||
</document>
|
</document>
|
||||||
|
|||||||
@@ -18,8 +18,8 @@
|
|||||||
<customView translatesAutoresizingMaskIntoConstraints="NO" id="1">
|
<customView translatesAutoresizingMaskIntoConstraints="NO" id="1">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="400" height="95"/>
|
<rect key="frame" x="0.0" y="0.0" width="400" height="95"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<button verticalHuggingPriority="500" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Z6x-oU-NC5">
|
<button verticalHuggingPriority="500" translatesAutoresizingMaskIntoConstraints="NO" id="Z6x-oU-NC5">
|
||||||
<rect key="frame" x="21" y="59" width="228" height="18"/>
|
<rect key="frame" x="22" y="59" width="221" height="18"/>
|
||||||
<constraints>
|
<constraints>
|
||||||
<constraint firstAttribute="height" constant="14" id="ppB-Ka-SVN"/>
|
<constraint firstAttribute="height" constant="14" id="ppB-Ka-SVN"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
@@ -28,8 +28,8 @@
|
|||||||
<font key="font" metaFont="system"/>
|
<font key="font" metaFont="system"/>
|
||||||
</buttonCell>
|
</buttonCell>
|
||||||
</button>
|
</button>
|
||||||
<popUpButton verticalHuggingPriority="750" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="pWJ-eJ-MBf">
|
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="pWJ-eJ-MBf">
|
||||||
<rect key="frame" x="145" y="17" width="112" height="26"/>
|
<rect key="frame" x="144" y="17" width="114" height="25"/>
|
||||||
<popUpButtonCell key="cell" type="push" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" id="Hl5-gO-B1c">
|
<popUpButtonCell key="cell" type="push" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" id="Hl5-gO-B1c">
|
||||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||||
<font key="font" metaFont="menu"/>
|
<font key="font" metaFont="menu"/>
|
||||||
@@ -45,8 +45,8 @@
|
|||||||
</menu>
|
</menu>
|
||||||
</popUpButtonCell>
|
</popUpButtonCell>
|
||||||
</popUpButton>
|
</popUpButton>
|
||||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ckg-9t-MDS">
|
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ckg-9t-MDS">
|
||||||
<rect key="frame" x="21" y="23" width="120" height="17"/>
|
<rect key="frame" x="22" y="22" width="118" height="17"/>
|
||||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Check for Updates" id="9tL-CA-Vdg">
|
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Check for Updates" id="9tL-CA-Vdg">
|
||||||
<font key="font" metaFont="system"/>
|
<font key="font" metaFont="system"/>
|
||||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
@@ -62,10 +62,11 @@
|
|||||||
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="pWJ-eJ-MBf" secondAttribute="trailing" constant="20" symbolic="YES" id="QsU-uT-lfo"/>
|
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="pWJ-eJ-MBf" secondAttribute="trailing" constant="20" symbolic="YES" id="QsU-uT-lfo"/>
|
||||||
<constraint firstItem="ckg-9t-MDS" firstAttribute="leading" secondItem="Z6x-oU-NC5" secondAttribute="leading" id="W0y-Rp-Ucq"/>
|
<constraint firstItem="ckg-9t-MDS" firstAttribute="leading" secondItem="Z6x-oU-NC5" secondAttribute="leading" id="W0y-Rp-Ucq"/>
|
||||||
<constraint firstItem="pWJ-eJ-MBf" firstAttribute="top" secondItem="Z6x-oU-NC5" secondAttribute="bottom" constant="20" symbolic="YES" id="fhM-Ri-Op9"/>
|
<constraint firstItem="pWJ-eJ-MBf" firstAttribute="top" secondItem="Z6x-oU-NC5" secondAttribute="bottom" constant="20" symbolic="YES" id="fhM-Ri-Op9"/>
|
||||||
|
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="Z6x-oU-NC5" secondAttribute="trailing" constant="20" symbolic="YES" id="mpe-6b-p3W"/>
|
||||||
<constraint firstItem="ckg-9t-MDS" firstAttribute="baseline" secondItem="pWJ-eJ-MBf" secondAttribute="baseline" id="ozZ-bW-f7y"/>
|
<constraint firstItem="ckg-9t-MDS" firstAttribute="baseline" secondItem="pWJ-eJ-MBf" secondAttribute="baseline" id="ozZ-bW-f7y"/>
|
||||||
<constraint firstAttribute="bottom" secondItem="pWJ-eJ-MBf" secondAttribute="bottom" constant="20" symbolic="YES" id="pHW-e8-EU6"/>
|
<constraint firstAttribute="bottom" secondItem="pWJ-eJ-MBf" secondAttribute="bottom" constant="20" symbolic="YES" id="pHW-e8-EU6"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
<point key="canvasLocation" x="504" y="511.5"/>
|
<point key="canvasLocation" x="21" y="2"/>
|
||||||
</customView>
|
</customView>
|
||||||
</objects>
|
</objects>
|
||||||
</document>
|
</document>
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ APPKIT_EXTERN NSString *const MPDidChangeStoredKeyFilesSettings;
|
|||||||
- (IBAction)showPreferences:(id)sender;
|
- (IBAction)showPreferences:(id)sender;
|
||||||
- (IBAction)showPluginPrefences:(id)sender;
|
- (IBAction)showPluginPrefences:(id)sender;
|
||||||
- (IBAction)showPasswordCreator:(id)sender;
|
- (IBAction)showPasswordCreator:(id)sender;
|
||||||
|
- (IBAction)showAutotypeDoctor:(id)sender;
|
||||||
- (IBAction)createNewDatabase:(id)sender;
|
- (IBAction)createNewDatabase:(id)sender;
|
||||||
- (IBAction)openDatabase:(id)sender;
|
- (IBAction)openDatabase:(id)sender;
|
||||||
- (IBAction)showHelp:(id)sender;
|
- (IBAction)showHelp:(id)sender;
|
||||||
|
|||||||
@@ -42,8 +42,10 @@
|
|||||||
#import "MPWelcomeViewController.h"
|
#import "MPWelcomeViewController.h"
|
||||||
#import "MPPlugin.h"
|
#import "MPPlugin.h"
|
||||||
#import "MPEntryContextMenuDelegate.h"
|
#import "MPEntryContextMenuDelegate.h"
|
||||||
|
#import "MPAutotypeDoctor.h"
|
||||||
|
|
||||||
#import "NSApplication+MPAdditions.h"
|
#import "NSApplication+MPAdditions.h"
|
||||||
|
#import "NSTextView+MPTouchBarExtension.h"
|
||||||
|
|
||||||
#import "KeePassKit/KeePassKit.h"
|
#import "KeePassKit/KeePassKit.h"
|
||||||
|
|
||||||
@@ -221,6 +223,12 @@ typedef NS_OPTIONS(NSInteger, MPAppStartupState) {
|
|||||||
[SUUpdater sharedUpdater];
|
[SUUpdater sharedUpdater];
|
||||||
#endif
|
#endif
|
||||||
self.startupState |= MPAppStartupStateFinishedLaunch;
|
self.startupState |= MPAppStartupStateFinishedLaunch;
|
||||||
|
// Here we just opt-in for allowing our bar to be customized throughout the app.
|
||||||
|
if([NSApplication.sharedApplication respondsToSelector:@selector(isAutomaticCustomizeTouchBarMenuItemEnabled)]) {
|
||||||
|
if(@available(macOS 10.12.2, *)) {
|
||||||
|
NSApplication.sharedApplication.automaticCustomizeTouchBarMenuItemEnabled = YES;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma mark -
|
#pragma mark -
|
||||||
@@ -334,6 +342,10 @@ typedef NS_OPTIONS(NSInteger, MPAppStartupState) {
|
|||||||
[NSWorkspace.sharedWorkspace openURL:[NSURL URLWithString:urlString]];
|
[NSWorkspace.sharedWorkspace openURL:[NSURL URLWithString:urlString]];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)showAutotypeDoctor:(id)sender {
|
||||||
|
[MPAutotypeDoctor.defaultDoctor runChecksAndPresentResults];
|
||||||
|
}
|
||||||
|
|
||||||
- (void)checkForUpdates:(id)sender {
|
- (void)checkForUpdates:(id)sender {
|
||||||
#if defined(DEBUG) || defined(NO_SPARKLE)
|
#if defined(DEBUG) || defined(NO_SPARKLE)
|
||||||
NSAlert *alert = [[NSAlert alloc] init];
|
NSAlert *alert = [[NSAlert alloc] init];
|
||||||
@@ -370,10 +382,6 @@ typedef NS_OPTIONS(NSInteger, MPAppStartupState) {
|
|||||||
if(showWelcomeScreen) {
|
if(showWelcomeScreen) {
|
||||||
[self showWelcomeWindow];
|
[self showWelcomeWindow];
|
||||||
}
|
}
|
||||||
/* run check for accessibilty after the windowserver should have presented the UI */
|
|
||||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.25 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
|
||||||
[MPAutotypeDaemon.defaultDaemon checkForAccessibiltyPermissions];
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -25,6 +25,7 @@
|
|||||||
@interface MPAutotypeCandidateSelectionViewController : NSViewController
|
@interface MPAutotypeCandidateSelectionViewController : NSViewController
|
||||||
|
|
||||||
@property (copy) NSArray *candidates;
|
@property (copy) NSArray *candidates;
|
||||||
|
@property (copy) NSString *windowTitle;
|
||||||
|
|
||||||
- (IBAction)selectAutotypeContext:(id)sender;
|
- (IBAction)selectAutotypeContext:(id)sender;
|
||||||
- (IBAction)cancelSelection:(id)sender;
|
- (IBAction)cancelSelection:(id)sender;
|
||||||
|
|||||||
@@ -28,8 +28,9 @@
|
|||||||
#import <KeePassKit/KeePassKit.h>
|
#import <KeePassKit/KeePassKit.h>
|
||||||
|
|
||||||
@interface MPAutotypeCandidateSelectionViewController () <NSTableViewDataSource, NSTableViewDelegate>
|
@interface MPAutotypeCandidateSelectionViewController () <NSTableViewDataSource, NSTableViewDelegate>
|
||||||
@property (weak) IBOutlet NSButton *selectAutotypeContextButton;
|
@property (strong) IBOutlet NSButton *selectAutotypeContextButton;
|
||||||
@property (weak) IBOutlet NSTableView *contextTableView;
|
@property (strong) IBOutlet NSTableView *contextTableView;
|
||||||
|
@property (strong) IBOutlet NSTextField *messageTextField;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@@ -41,6 +42,8 @@
|
|||||||
|
|
||||||
- (void)viewDidLoad {
|
- (void)viewDidLoad {
|
||||||
[super viewDidLoad];
|
[super viewDidLoad];
|
||||||
|
NSString *template = NSLocalizedString(@"AUTOTYPE_CANDIDATE_SELECTION_WINDOW_MESSAGE_%@", "Message text in the autotype selection window. Placeholder is %1 - windowTitle");
|
||||||
|
self.messageTextField.stringValue = [NSString stringWithFormat:template, self.windowTitle];
|
||||||
self.selectAutotypeContextButton.enabled = NO;
|
self.selectAutotypeContextButton.enabled = NO;
|
||||||
NSNotification *notification = [NSNotification notificationWithName:NSTableViewSelectionDidChangeNotification object:self.contextTableView];
|
NSNotification *notification = [NSNotification notificationWithName:NSTableViewSelectionDidChangeNotification object:self.contextTableView];
|
||||||
[self tableViewSelectionDidChange:notification];
|
[self tableViewSelectionDidChange:notification];
|
||||||
|
|||||||
@@ -35,13 +35,9 @@
|
|||||||
@property (weak) IBOutlet NSPopUpButton *matchSelectionButton;
|
@property (weak) IBOutlet NSPopUpButton *matchSelectionButton;
|
||||||
@property (readonly, strong) DDHotKey *registredHotKey;
|
@property (readonly, strong) DDHotKey *registredHotKey;
|
||||||
@property (readonly, strong, class) MPAutotypeDaemon *defaultDaemon;
|
@property (readonly, strong, class) MPAutotypeDaemon *defaultDaemon;
|
||||||
@property (nonatomic, readonly) BOOL autotypeSupported; // YES if the system allows for Autotype. NO if the user has denied this.
|
|
||||||
|
|
||||||
- (instancetype)init NS_UNAVAILABLE;
|
- (instancetype)init NS_UNAVAILABLE;
|
||||||
|
|
||||||
- (void)checkForAccessibiltyPermissions;
|
|
||||||
- (void)openAccessibiltyPreferences;
|
|
||||||
|
|
||||||
- (void)performAutotypeForEntry:(KPKEntry *)entry;
|
- (void)performAutotypeForEntry:(KPKEntry *)entry;
|
||||||
- (void)performAutotypeForEntry:(KPKEntry *)entry overrideSequence:(NSString *)sequence;
|
- (void)performAutotypeForEntry:(KPKEntry *)entry overrideSequence:(NSString *)sequence;
|
||||||
- (void)selectAutotypeCandiate:(MPAutotypeContext *)context;
|
- (void)selectAutotypeCandiate:(MPAutotypeContext *)context;
|
||||||
|
|||||||
@@ -31,6 +31,7 @@
|
|||||||
#import "MPSettingsHelper.h"
|
#import "MPSettingsHelper.h"
|
||||||
#import "MPAutotypeCandidateSelectionViewController.h"
|
#import "MPAutotypeCandidateSelectionViewController.h"
|
||||||
#import "MPUserNotificationCenterDelegate.h"
|
#import "MPUserNotificationCenterDelegate.h"
|
||||||
|
#import "MPAutotypeDoctor.h"
|
||||||
|
|
||||||
#import "MPPluginHost.h"
|
#import "MPPluginHost.h"
|
||||||
#import "MPPlugin.h"
|
#import "MPPlugin.h"
|
||||||
@@ -57,12 +58,11 @@ NSString *const kMPProcessIdentifierKey = @"kMPProcessIdentifierKey";
|
|||||||
@property (strong) NSRunningApplication *previousApplication; // The application that was active before we got invoked
|
@property (strong) NSRunningApplication *previousApplication; // The application that was active before we got invoked
|
||||||
@property (assign) NSTimeInterval userActionRequested;
|
@property (assign) NSTimeInterval userActionRequested;
|
||||||
@property (strong) id applicationActivationObserver;
|
@property (strong) id applicationActivationObserver;
|
||||||
|
@property (nonatomic, readonly) BOOL hasNecessaryAutotypePermissions;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@implementation MPAutotypeDaemon
|
@implementation MPAutotypeDaemon
|
||||||
|
|
||||||
@dynamic autotypeSupported;
|
|
||||||
|
|
||||||
#pragma mark -
|
#pragma mark -
|
||||||
#pragma mark Lifecylce
|
#pragma mark Lifecylce
|
||||||
|
|
||||||
@@ -117,13 +117,6 @@ static MPAutotypeDaemon *_sharedInstance;
|
|||||||
|
|
||||||
#pragma mark -
|
#pragma mark -
|
||||||
#pragma mark Properties
|
#pragma mark Properties
|
||||||
- (BOOL)autotypeSupported {
|
|
||||||
if(@available(macOS 10.14, *)) {
|
|
||||||
return AXIsProcessTrusted();
|
|
||||||
}
|
|
||||||
/* macOS 10.13 and lower allows us to send key events regardless of accessibilty trust */
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)setEnabled:(BOOL)enabled {
|
- (void)setEnabled:(BOOL)enabled {
|
||||||
if(_enabled != enabled) {
|
if(_enabled != enabled) {
|
||||||
@@ -142,50 +135,8 @@ static MPAutotypeDaemon *_sharedInstance;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)checkForAccessibiltyPermissions {
|
- (BOOL)hasNecessaryAutotypePermissions {
|
||||||
if(!self.enabled) {
|
return MPAutotypeDoctor.defaultDoctor.hasNecessaryAutotypePermissions;
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(NSApplication.sharedApplication.isRunningTests) {
|
|
||||||
return; // Do not display pop-up when running tests
|
|
||||||
}
|
|
||||||
|
|
||||||
BOOL hideAlert = NO;
|
|
||||||
if(nil != [NSUserDefaults.standardUserDefaults objectForKey:kMPSettingsKeyAutotypeHideAccessibiltyWarning]) {
|
|
||||||
hideAlert = [NSUserDefaults.standardUserDefaults boolForKey:kMPSettingsKeyAutotypeHideAccessibiltyWarning];
|
|
||||||
}
|
|
||||||
if(hideAlert || self.autotypeSupported) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
NSAlert *alert = [[NSAlert alloc] init];
|
|
||||||
alert.alertStyle = NSWarningAlertStyle;
|
|
||||||
alert.messageText = NSLocalizedString(@"ALERT_AUTOTYPE_MISSING_ACCESSIBILTY_PERMISSIONS_MESSAGE_TEXT", @"Alert message displayed when Autotype performs self check and lacks accessibilty permissions");
|
|
||||||
alert.informativeText = NSLocalizedString(@"ALERT_AUTOTYPE_MISSING_ACCESSIBILTY_PERMISSIONS_INFORMATIVE_TEXT", @"Alert informative text displayed when Autotype performs self check and lacks accessibilty permissions");
|
|
||||||
alert.showsSuppressionButton = YES;
|
|
||||||
[alert addButtonWithTitle:NSLocalizedString(@"ALERT_AUTOTYPE_MISSING_ACCESSIBILTY_PERMISSIONS_BUTTON_OK", @"Button in dialog to leave autotype disabled and continiue!")];
|
|
||||||
[alert addButtonWithTitle:NSLocalizedString(@"ALERT_AUTOTYPE_MISSING_ACCESSIBILTY_PERMISSIONS_BUTTON_OPEN_PREFERENCES", @"Button in dialog to open accessibilty preferences pane!")];
|
|
||||||
NSModalResponse returnCode = [alert runModal];
|
|
||||||
BOOL suppressWarning = (alert.suppressionButton.state == NSOnState);
|
|
||||||
[NSUserDefaults.standardUserDefaults setBool:suppressWarning forKey:kMPSettingsKeyAutotypeHideAccessibiltyWarning];
|
|
||||||
switch(returnCode) {
|
|
||||||
case NSAlertFirstButtonReturn: {
|
|
||||||
/* ok, ignore */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case NSAlertSecondButtonReturn:
|
|
||||||
/* open prefs */
|
|
||||||
[self openAccessibiltyPreferences];
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)openAccessibiltyPreferences {
|
|
||||||
[NSWorkspace.sharedWorkspace openURL:[NSURL URLWithString:@"x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility"]];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma mark -
|
#pragma mark -
|
||||||
@@ -225,16 +176,16 @@ static MPAutotypeDaemon *_sharedInstance;
|
|||||||
#pragma mark Autotype Execution
|
#pragma mark Autotype Execution
|
||||||
|
|
||||||
- (void)_performAutotypeForEntry:(KPKEntry *)entryOrNil {
|
- (void)_performAutotypeForEntry:(KPKEntry *)entryOrNil {
|
||||||
/*if(!self.autotypeSupported) {
|
if(!self.hasNecessaryAutotypePermissions) {
|
||||||
NSUserNotification *notification = [[NSUserNotification alloc] init];
|
NSUserNotification *notification = [[NSUserNotification alloc] init];
|
||||||
notification.title = NSApp.applicationName;
|
notification.title = NSApp.applicationName;
|
||||||
notification.informativeText = NSLocalizedString(@"AUTOTYPE_NOTIFICATION_MACPASS_HAS_NO_ACCESSIBILTY_PERMISSIONS", "Notification: Autotype failed, MacPass has no permission to send key strokes");
|
notification.informativeText = NSLocalizedString(@"AUTOTYPE_NOTIFICATION_MACPASS_IS_MISSING_PERMISSIONS", "Notification: Autotype failed, MacPass has not enough permissions to perform autotype");
|
||||||
notification.actionButtonTitle = NSLocalizedString(@"OPEN_PREFERENCES", "Action button in Notification to show the Accessibilty preferences");
|
notification.actionButtonTitle = NSLocalizedString(@"SHOW_AUTOTYPE_DOCTOR", "Action button in Notification to show the Autotype Doctor");
|
||||||
notification.userInfo = @{ MPUserNotificationTypeKey: MPUserNotificationTypeShowAccessibiltyPreferences };
|
notification.userInfo = @{ MPUserNotificationTypeKey: MPUserNotificationTypeRunAutotypeDoctor };
|
||||||
notification.showsButtons = YES;
|
notification.showsButtons = YES;
|
||||||
[NSUserNotificationCenter.defaultUserNotificationCenter deliverNotification:notification];
|
[NSUserNotificationCenter.defaultUserNotificationCenter deliverNotification:notification];
|
||||||
return;
|
return;
|
||||||
}*/
|
}
|
||||||
NSInteger pid = NSProcessInfo.processInfo.processIdentifier;
|
NSInteger pid = NSProcessInfo.processInfo.processIdentifier;
|
||||||
if(self.targetPID == pid) {
|
if(self.targetPID == pid) {
|
||||||
return; // We do not perform Autotype on ourselves
|
return; // We do not perform Autotype on ourselves
|
||||||
@@ -275,7 +226,7 @@ static MPAutotypeDaemon *_sharedInstance;
|
|||||||
}
|
}
|
||||||
|
|
||||||
MPAutotypeContext *context = [self _autotypeContextForDocuments:documents forWindowTitle:self.targetWindowTitle preferredEntry:entryOrNil];
|
MPAutotypeContext *context = [self _autotypeContextForDocuments:documents forWindowTitle:self.targetWindowTitle preferredEntry:entryOrNil];
|
||||||
/* TODO: that's popping up if the mulit selection dialog goes up! */
|
/* TODO: that's popping up if the multi selection dialog goes up! */
|
||||||
if(self.matchSelectionWindow) {
|
if(self.matchSelectionWindow) {
|
||||||
return; // we present the match selection window, just return
|
return; // we present the match selection window, just return
|
||||||
}
|
}
|
||||||
@@ -313,7 +264,7 @@ static MPAutotypeDaemon *_sharedInstance;
|
|||||||
if(candidates == 1 ) {
|
if(candidates == 1 ) {
|
||||||
return autotypeCandidates.lastObject;
|
return autotypeCandidates.lastObject;
|
||||||
}
|
}
|
||||||
[self _presentSelectionWindow:autotypeCandidates];
|
[self _presentCandiadates:autotypeCandidates forWindowTitle:windowTitle];
|
||||||
return nil; // Nothing to do, we get called back by the window
|
return nil; // Nothing to do, we get called back by the window
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -394,10 +345,14 @@ static MPAutotypeDaemon *_sharedInstance;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(currentWindows.count > 0 && infoDict.count == 0) {
|
||||||
|
// show some information about not being able to determine any windows
|
||||||
|
NSLog(@"Unable to retrieve any window names. If you encounter this issue you might be running 10.15 and MacPass has no permission for screen recording.");
|
||||||
|
}
|
||||||
return infoDict;
|
return infoDict;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)_presentSelectionWindow:(NSArray *)candidates {
|
- (void)_presentCandiadates:(NSArray *)candidates forWindowTitle:(NSString *)windowTitle {
|
||||||
if(!self.matchSelectionWindow) {
|
if(!self.matchSelectionWindow) {
|
||||||
self.matchSelectionWindow = [[NSPanel alloc] initWithContentRect:NSMakeRect(0, 0, 100, 100)
|
self.matchSelectionWindow = [[NSPanel alloc] initWithContentRect:NSMakeRect(0, 0, 100, 100)
|
||||||
styleMask:NSWindowStyleMaskNonactivatingPanel|NSWindowStyleMaskTitled
|
styleMask:NSWindowStyleMaskNonactivatingPanel|NSWindowStyleMaskTitled
|
||||||
@@ -406,6 +361,7 @@ static MPAutotypeDaemon *_sharedInstance;
|
|||||||
self.matchSelectionWindow.level = kCGAssistiveTechHighWindowLevel;
|
self.matchSelectionWindow.level = kCGAssistiveTechHighWindowLevel;
|
||||||
MPAutotypeCandidateSelectionViewController *vc = [[MPAutotypeCandidateSelectionViewController alloc] init];
|
MPAutotypeCandidateSelectionViewController *vc = [[MPAutotypeCandidateSelectionViewController alloc] init];
|
||||||
vc.candidates = candidates;
|
vc.candidates = candidates;
|
||||||
|
vc.windowTitle = windowTitle;
|
||||||
self.matchSelectionWindow.collectionBehavior |= (NSWindowCollectionBehaviorFullScreenAuxiliary |
|
self.matchSelectionWindow.collectionBehavior |= (NSWindowCollectionBehaviorFullScreenAuxiliary |
|
||||||
NSWindowCollectionBehaviorMoveToActiveSpace |
|
NSWindowCollectionBehaviorMoveToActiveSpace |
|
||||||
NSWindowCollectionBehaviorTransient );
|
NSWindowCollectionBehaviorTransient );
|
||||||
|
|||||||
29
MacPass/MPAutotypeDoctor.h
Normal file
29
MacPass/MPAutotypeDoctor.h
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
//
|
||||||
|
// MPAutotypeDoctor.h
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 03.07.19.
|
||||||
|
// Copyright © 2019 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
|
@interface MPAutotypeDoctor : NSObject
|
||||||
|
|
||||||
|
|
||||||
|
@property (class, readonly, strong) MPAutotypeDoctor *defaultDoctor;
|
||||||
|
@property (nonatomic, readonly) BOOL hasNecessaryAutotypePermissions; // MacPass has all the permissions it needs to run autotype on the current system
|
||||||
|
|
||||||
|
- (BOOL)hasScreenRecordingPermissions:(NSError *__autoreleasing*)error;
|
||||||
|
- (BOOL)hasAccessibiltyPermissions:(NSError *__autoreleasing*)error;
|
||||||
|
|
||||||
|
- (void)runChecksAndPresentResults;
|
||||||
|
- (void)openScreenRecordingPreferences;
|
||||||
|
- (void)openAccessibiltyPreferences;
|
||||||
|
- (void)openAutomationPreferences;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_END
|
||||||
136
MacPass/MPAutotypeDoctor.m
Normal file
136
MacPass/MPAutotypeDoctor.m
Normal file
@@ -0,0 +1,136 @@
|
|||||||
|
//
|
||||||
|
// MPAutotypeDoctor.m
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 03.07.19.
|
||||||
|
// Copyright © 2019 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "MPAutotypeDoctor.h"
|
||||||
|
#import "MPSettingsHelper.h"
|
||||||
|
#import "NSApplication+MPAdditions.h"
|
||||||
|
#import "MPAutotypeDoctorReportViewController.h"
|
||||||
|
#import "NSError+Messages.h"
|
||||||
|
|
||||||
|
|
||||||
|
@interface MPReportItem : NSObject
|
||||||
|
|
||||||
|
@property (copy) NSString *statusDescription;
|
||||||
|
@property (copy) NSString *label;
|
||||||
|
@property (copy) NSString *actionLabel;
|
||||||
|
@property BOOL isOK;
|
||||||
|
@property (weak) id target;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation MPReportItem
|
||||||
|
|
||||||
|
- (instancetype)init {
|
||||||
|
self = [super init];
|
||||||
|
if(self) {
|
||||||
|
_isOK = NO;
|
||||||
|
}
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
@interface MPAutotypeDoctor () <NSWindowDelegate>
|
||||||
|
@property (strong) NSWindow *reportWindow;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation MPAutotypeDoctor
|
||||||
|
|
||||||
|
+ (MPAutotypeDoctor *)defaultDoctor {
|
||||||
|
static MPAutotypeDoctor *instance;
|
||||||
|
static dispatch_once_t onceToken;
|
||||||
|
dispatch_once(&onceToken, ^{
|
||||||
|
instance = [[MPAutotypeDoctor alloc] init];
|
||||||
|
});
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)hasNecessaryAutotypePermissions {
|
||||||
|
if(![self hasAccessibiltyPermissions:NULL]) {
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
if(![self hasScreenRecordingPermissions:NULL]) {
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)hasScreenRecordingPermissions:(NSError *__autoreleasing*)error {
|
||||||
|
BOOL canRecordScreen = YES;
|
||||||
|
/* macos 10.14 and lower do not require screen recording permission to get window titles */
|
||||||
|
if(@available(macos 10.15, *)) {
|
||||||
|
/*
|
||||||
|
To minimize the intrusion just make a 1px image of the upper left corner
|
||||||
|
This way there is no real possibilty to access any private data
|
||||||
|
*/
|
||||||
|
CGImageRef screenshot = CGWindowListCreateImage(
|
||||||
|
CGRectMake(0, 0, 1, 1),
|
||||||
|
kCGWindowListOptionOnScreenOnly,
|
||||||
|
kCGNullWindowID,
|
||||||
|
kCGWindowImageDefault);
|
||||||
|
BOOL canRecordScreen = !screenshot;
|
||||||
|
if(!canRecordScreen) {
|
||||||
|
CFRelease(screenshot);
|
||||||
|
}
|
||||||
|
if(!canRecordScreen && error) {
|
||||||
|
*error = [NSError errorInDomain:MPAutotypeErrorDomain withCode:MPErrorAutotypeIsMissingScreenRecordingPermissions description:NSLocalizedString(@"ERROR_NO_PERMISSION_TO_RECORD_SCREEN", "Error description for missing screen recording permissions")];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return canRecordScreen;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)hasAccessibiltyPermissions:(NSError *__autoreleasing*)error {
|
||||||
|
BOOL isTrusted = YES;
|
||||||
|
/* macOS 10.13 and lower allows us to send key events regardless of accessibilty trust */
|
||||||
|
if(@available(macOS 10.14, *)) {
|
||||||
|
isTrusted = AXIsProcessTrusted();
|
||||||
|
if(!isTrusted && error) {
|
||||||
|
*error = [NSError errorInDomain:MPAutotypeErrorDomain withCode:MPErrorAutotypeIsMissingAccessibiltyPermissions description:NSLocalizedString(@"ERROR_NO_ACCESSIBILTY_PERMISSIONS", "Error description for missing accessibilty permissions")];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return isTrusted;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)openAccessibiltyPreferences {
|
||||||
|
[NSWorkspace.sharedWorkspace openURL:[NSURL URLWithString:@"x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility"]];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)openScreenRecordingPreferences {
|
||||||
|
//TODO fix this in macOS 10.15 to use the correct URL
|
||||||
|
[NSWorkspace.sharedWorkspace openURL:[NSURL URLWithString:@"x-apple.systempreferences:com.apple.preference.security"]];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)openAutomationPreferences {
|
||||||
|
[NSWorkspace.sharedWorkspace openURL:[NSURL URLWithString:@"x-apple.systempreferences:com.apple.preference.security?Privacy_Automation"]];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)runChecksAndPresentResults {
|
||||||
|
if(!self.reportWindow) {
|
||||||
|
self.reportWindow = [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, 100, 100)
|
||||||
|
styleMask:NSWindowStyleMaskTitled|NSWindowStyleMaskClosable|NSWindowStyleMaskResizable
|
||||||
|
backing:NSBackingStoreBuffered
|
||||||
|
defer:NO];
|
||||||
|
self.reportWindow.releasedWhenClosed = NO;
|
||||||
|
self.reportWindow.title = NSLocalizedString(@"AUTOTYPE_DOCTOR_RESULTS_WINDOW_TITLE", @"Window title for the stand-alone password creator window");
|
||||||
|
self.reportWindow.delegate = self;
|
||||||
|
}
|
||||||
|
MPAutotypeDoctorReportViewController *vc = [[MPAutotypeDoctorReportViewController alloc] init];
|
||||||
|
self.reportWindow.contentViewController = vc;
|
||||||
|
|
||||||
|
[self.reportWindow center];
|
||||||
|
[self.reportWindow makeKeyAndOrderFront:vc];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)windowWillClose:(NSNotification *)notification {
|
||||||
|
if(notification.object == self.reportWindow) {
|
||||||
|
self.reportWindow = nil;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
28
MacPass/MPAutotypeDoctorReportViewController.h
Normal file
28
MacPass/MPAutotypeDoctorReportViewController.h
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
//
|
||||||
|
// MPAutotypeDoctorReportViewController.h
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 05.07.19.
|
||||||
|
// Copyright © 2019 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Cocoa/Cocoa.h>
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
|
@interface MPAutotypeDoctorReportViewController : NSViewController
|
||||||
|
|
||||||
|
@property (strong) IBOutlet NSImageView *accessibiltyStatusImageView;
|
||||||
|
@property (strong) IBOutlet NSTextField *accessibiltyStatusTextField;
|
||||||
|
|
||||||
|
@property (strong) IBOutlet NSImageView *screenRecordingStatusImageView;
|
||||||
|
@property (strong) IBOutlet NSTextField *screenRecordingStatusTextField;
|
||||||
|
|
||||||
|
- (IBAction)openAccessibiltyPreferences:(id)sender;
|
||||||
|
- (IBAction)openScreenRecordingPreferences:(id)sender;
|
||||||
|
- (IBAction)openAutomationPreferences:(id)sender;
|
||||||
|
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_END
|
||||||
67
MacPass/MPAutotypeDoctorReportViewController.m
Normal file
67
MacPass/MPAutotypeDoctorReportViewController.m
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
//
|
||||||
|
// MPAutotypeDoctorReportViewController.m
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 05.07.19.
|
||||||
|
// Copyright © 2019 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "MPAutotypeDoctorReportViewController.h"
|
||||||
|
#import "MPAutotypeDoctor.h"
|
||||||
|
|
||||||
|
@implementation MPAutotypeDoctorReportViewController
|
||||||
|
|
||||||
|
- (NSNibName)nibName {
|
||||||
|
return @"AutotypeDoctorReportViewController";
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)viewDidLoad {
|
||||||
|
[super viewDidLoad];
|
||||||
|
[self _updateView];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)openAccessibiltyPreferences:(id)sender {
|
||||||
|
[MPAutotypeDoctor.defaultDoctor openAccessibiltyPreferences];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)openScreenRecordingPreferences:(id)sender {
|
||||||
|
[MPAutotypeDoctor.defaultDoctor openScreenRecordingPreferences];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)openAutomationPreferences:(id)sender {
|
||||||
|
[MPAutotypeDoctor.defaultDoctor openAutomationPreferences];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
- (void)_updateView {
|
||||||
|
NSError *error;
|
||||||
|
if([MPAutotypeDoctor.defaultDoctor hasAccessibiltyPermissions:&error]) {
|
||||||
|
self.accessibiltyStatusImageView.image = [NSImage imageNamed:NSImageNameStatusAvailable];
|
||||||
|
self.accessibiltyStatusTextField.stringValue = NSLocalizedString(@"AUTOTYPE_STATUS_ACCESSIBILTY_PERMISSIONS_OK", "Status lable when no issue were found in accessibilty");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
self.accessibiltyStatusImageView.image = [NSImage imageNamed:NSImageNameStatusUnavailable];
|
||||||
|
if(error && error.localizedDescription) {
|
||||||
|
self.accessibiltyStatusTextField.stringValue = error.localizedDescription;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
self.accessibiltyStatusTextField.stringValue = NSLocalizedString(@"AUTOTYPE_STATUS_NO_ACCESSIBILTY_PERMISSIONS", "Status MacPass has no accessibilty permissions");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if([MPAutotypeDoctor.defaultDoctor hasScreenRecordingPermissions:&error]) {
|
||||||
|
self.screenRecordingStatusImageView.image = [NSImage imageNamed:NSImageNameStatusAvailable];
|
||||||
|
self.screenRecordingStatusTextField.stringValue = NSLocalizedString(@"AUTOTYPE_STATUS_SCREEN_RECORDING_PERMISSIONS_OK", "Status lable when no issue were found in screen recording permissions");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
self.screenRecordingStatusImageView.image = [NSImage imageNamed:NSImageNameStatusUnavailable];
|
||||||
|
if(error && error.localizedDescription) {
|
||||||
|
self.screenRecordingStatusTextField.stringValue = error.localizedDescription;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
self.screenRecordingStatusTextField.stringValue = NSLocalizedString(@"AUTOTYPE_STATUS_NO_SCREEN_RECORDING_PERMISSIONS", "Status MacPass has no screen recording permissions");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
@@ -168,7 +168,7 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGrou
|
|||||||
NSRecoveryAttempterErrorKey : recovery
|
NSRecoveryAttempterErrorKey : recovery
|
||||||
};
|
};
|
||||||
if(outError != NULL) {
|
if(outError != NULL) {
|
||||||
*outError = [NSError errorWithDomain:MPErrorDomain code:MPErrorNoPasswordOrKeyFile userInfo:userInfo];
|
*outError = [NSError errorWithDomain:MPDefaultErrorDomain code:MPErrorNoPasswordOrKeyFile userInfo:userInfo];
|
||||||
}
|
}
|
||||||
return NO;
|
return NO;
|
||||||
}
|
}
|
||||||
@@ -181,7 +181,7 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGrou
|
|||||||
if(!self.compositeKey.hasPasswordOrKeyFile) {
|
if(!self.compositeKey.hasPasswordOrKeyFile) {
|
||||||
if(outError != NULL) {
|
if(outError != NULL) {
|
||||||
NSDictionary *userInfo = @{ NSLocalizedDescriptionKey: NSLocalizedString(@"WARNING_ON_SAVE_NO_PASSWORD_OR_KEY_SET", "") };
|
NSDictionary *userInfo = @{ NSLocalizedDescriptionKey: NSLocalizedString(@"WARNING_ON_SAVE_NO_PASSWORD_OR_KEY_SET", "") };
|
||||||
*outError = [NSError errorWithDomain:MPErrorDomain code:0 userInfo:userInfo];
|
*outError = [NSError errorWithDomain:MPDefaultErrorDomain code:0 userInfo:userInfo];
|
||||||
}
|
}
|
||||||
return nil; // Saving without a password/key is not possible
|
return nil; // Saving without a password/key is not possible
|
||||||
}
|
}
|
||||||
@@ -190,7 +190,7 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGrou
|
|||||||
if(format == KPKDatabaseFormatUnknown) {
|
if(format == KPKDatabaseFormatUnknown) {
|
||||||
if(outError != NULL) {
|
if(outError != NULL) {
|
||||||
NSDictionary *userInfo = @{ NSLocalizedDescriptionKey: NSLocalizedString(@"UNKNOWN_FILE_VERSION", "") };
|
NSDictionary *userInfo = @{ NSLocalizedDescriptionKey: NSLocalizedString(@"UNKNOWN_FILE_VERSION", "") };
|
||||||
*outError = [NSError errorWithDomain:MPErrorDomain code:0 userInfo:userInfo];
|
*outError = [NSError errorWithDomain:MPDefaultErrorDomain code:0 userInfo:userInfo];
|
||||||
}
|
}
|
||||||
return nil; // We do not know what version to save!
|
return nil; // We do not know what version to save!
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
@class MPOutlineViewController;
|
@class MPOutlineViewController;
|
||||||
@class MPToolbarDelegate;
|
@class MPToolbarDelegate;
|
||||||
|
|
||||||
@interface MPDocumentWindowController : NSWindowController
|
@interface MPDocumentWindowController : NSWindowController <NSTouchBarDelegate>
|
||||||
|
|
||||||
@property (readonly, strong) MPPasswordInputController *passwordInputController;
|
@property (readonly, strong) MPPasswordInputController *passwordInputController;
|
||||||
@property (readonly, strong) MPEntryViewController *entryViewController;
|
@property (readonly, strong) MPEntryViewController *entryViewController;
|
||||||
@@ -39,8 +39,7 @@
|
|||||||
@property (readonly, strong) MPInspectorViewController *inspectorViewController;
|
@property (readonly, strong) MPInspectorViewController *inspectorViewController;
|
||||||
@property (readonly, strong) MPToolbarDelegate *toolbarDelegate;
|
@property (readonly, strong) MPToolbarDelegate *toolbarDelegate;
|
||||||
|
|
||||||
#pragma mark Search
|
@property (readonly, nonatomic, strong) NSSearchField *searchField;
|
||||||
- (NSSearchField *)searchField;
|
|
||||||
|
|
||||||
- (void)showEntries;
|
- (void)showEntries;
|
||||||
- (void)showPasswordInput;
|
- (void)showPasswordInput;
|
||||||
|
|||||||
@@ -39,6 +39,8 @@
|
|||||||
#import "MPSettingsHelper.h"
|
#import "MPSettingsHelper.h"
|
||||||
#import "MPToolbarDelegate.h"
|
#import "MPToolbarDelegate.h"
|
||||||
#import "MPTitlebarColorAccessoryViewController.h"
|
#import "MPTitlebarColorAccessoryViewController.h"
|
||||||
|
#import "MPTouchBarButtonCreator.h"
|
||||||
|
#import "MPIconHelper.h"
|
||||||
|
|
||||||
#import "MPPluginHost.h"
|
#import "MPPluginHost.h"
|
||||||
#import "MPPlugin.h"
|
#import "MPPlugin.h"
|
||||||
@@ -652,4 +654,97 @@ typedef void (^MPPasswordChangedBlock)(BOOL didChangePassword);
|
|||||||
return (nil != inspectorView.superview);
|
return (nil != inspectorView.superview);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (NSTouchBar *)makeTouchBar {
|
||||||
|
NSTouchBar *touchBar = [[NSTouchBar alloc] init];
|
||||||
|
touchBar.delegate = self;
|
||||||
|
touchBar.customizationIdentifier = MPTouchBarCustomizationIdentifierDocument;
|
||||||
|
NSArray<NSTouchBarItemIdentifier> *defaultItemIdentifiers = @[MPTouchBarItemIdentifierSearch, MPTouchBarItemIdentifierEditPopover, MPTouchBarItemIdentifierCopyUsername, MPTouchBarItemIdentifierCopyPassword, MPTouchBarItemIdentifierPerformAutotype, NSTouchBarItemIdentifierFlexibleSpace, MPTouchBarItemIdentifierLock];
|
||||||
|
touchBar.defaultItemIdentifiers = defaultItemIdentifiers;
|
||||||
|
touchBar.customizationAllowedItemIdentifiers = defaultItemIdentifiers;
|
||||||
|
return touchBar;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSTouchBarItem *)touchBar:(NSTouchBar *)touchBar makeItemForIdentifier:(NSTouchBarItemIdentifier)identifier API_AVAILABLE(macos(10.12.2)) {
|
||||||
|
#pragma mark primary touchbar elements
|
||||||
|
if([identifier isEqualToString:MPTouchBarItemIdentifierSearch]) {
|
||||||
|
return [MPTouchBarButtonCreator touchBarButtonWithImage:[NSImage imageNamed:NSImageNameTouchBarSearchTemplate]
|
||||||
|
identifier:MPTouchBarItemIdentifierSearch
|
||||||
|
target:self
|
||||||
|
selector:@selector(focusSearchField)
|
||||||
|
customizationLabel:NSLocalizedString(@"TOUCHBAR_SEARCH","Touchbar button label for searching the database")];
|
||||||
|
}
|
||||||
|
|
||||||
|
if([identifier isEqualToString:MPTouchBarItemIdentifierEditPopover]) {
|
||||||
|
NSTouchBar *secondaryTouchBar = [[NSTouchBar alloc] init];
|
||||||
|
secondaryTouchBar.delegate = self;
|
||||||
|
secondaryTouchBar.defaultItemIdentifiers = @[MPTouchBarItemIdentifierNewEntry, MPTouchBarItemIdentifierNewGroup, MPTouchBarItemIdentifierDelete];
|
||||||
|
return [MPTouchBarButtonCreator popoverTouchBarButton:NSLocalizedString(@"TOUCHBAR_EDIT","Touchbar button label for opening the popover to edit")
|
||||||
|
identifier:MPTouchBarItemIdentifierEditPopover
|
||||||
|
popoverTouchBar:secondaryTouchBar
|
||||||
|
customizationLabel:NSLocalizedString(@"TOUCHBAR_EDIT","Touchbar button label for opening the popover to edit")];
|
||||||
|
}
|
||||||
|
|
||||||
|
if([identifier isEqualToString:MPTouchBarItemIdentifierCopyUsername]) {
|
||||||
|
return [MPTouchBarButtonCreator touchBarButtonWithTitle:NSLocalizedString(@"TOUCHBAR_COPY_USERNAME","Touchbar button label for copying the username")
|
||||||
|
identifier:MPTouchBarItemIdentifierCopyUsername
|
||||||
|
target:self
|
||||||
|
selector:@selector(copyUsername:)
|
||||||
|
customizationLabel:NSLocalizedString(@"TOUCHBAR_COPY_USERNAME","Touchbar button label for copying the username")];
|
||||||
|
}
|
||||||
|
|
||||||
|
if([identifier isEqualToString:MPTouchBarItemIdentifierCopyPassword]) {
|
||||||
|
return [MPTouchBarButtonCreator touchBarButtonWithTitle:NSLocalizedString(@"TOUCHBAR_COPY_PASSWORD","Touchbar button label for copying the password")
|
||||||
|
identifier:MPTouchBarItemIdentifierCopyPassword
|
||||||
|
target:self
|
||||||
|
selector:@selector(copyPassword:)
|
||||||
|
customizationLabel:NSLocalizedString(@"TOUCHBAR_COPY_PASSWORD","Touchbar button label for copying the password")];
|
||||||
|
}
|
||||||
|
|
||||||
|
if([identifier isEqualToString:MPTouchBarItemIdentifierPerformAutotype]) {
|
||||||
|
return [MPTouchBarButtonCreator touchBarButtonWithTitle:NSLocalizedString(@"TOUCHBAR_PERFORM_AUTOTYPE","Touchbar button label for performing autotype")
|
||||||
|
identifier:MPTouchBarItemIdentifierPerformAutotype
|
||||||
|
target:self
|
||||||
|
selector:@selector(performAutotypeForEntry:)
|
||||||
|
customizationLabel:NSLocalizedString(@"TOUCHBAR_PERFORM_AUTOTYPE","Touchbar button label for performing autotype")];
|
||||||
|
}
|
||||||
|
if([identifier isEqualToString:MPTouchBarItemIdentifierLock]) {
|
||||||
|
return [MPTouchBarButtonCreator touchBarButtonWithImage:[NSImage imageNamed:NSImageNameLockLockedTemplate]
|
||||||
|
identifier:MPTouchBarItemIdentifierLock
|
||||||
|
target:self
|
||||||
|
selector:@selector(lock:)
|
||||||
|
customizationLabel:NSLocalizedString(@"TOUCHBAR_LOCK_DATABASE","Touchbar button label for locking the database")];
|
||||||
|
}
|
||||||
|
#pragma mark secondary/popover touchbar elements
|
||||||
|
if([identifier isEqualToString:MPTouchBarItemIdentifierNewEntry]) {
|
||||||
|
return [MPTouchBarButtonCreator touchBarButtonWithTitleAndImage:NSLocalizedString(@"TOUCHBAR_NEW_ENTRY","Touchbar button label for creating a new item")
|
||||||
|
identifier:MPTouchBarItemIdentifierNewEntry
|
||||||
|
image:[MPIconHelper icon:MPIconAddEntry]
|
||||||
|
target:self
|
||||||
|
selector:@selector(createEntry:)
|
||||||
|
customizationLabel:NSLocalizedString(@"TOUCHBAR_NEW_ENTRY","Touchbar button label for creating a new item")];
|
||||||
|
}
|
||||||
|
if([identifier isEqualToString:MPTouchBarItemIdentifierNewGroup]) {
|
||||||
|
return [MPTouchBarButtonCreator touchBarButtonWithTitleAndImage:NSLocalizedString(@"TOUCHBAR_NEW_GROUP","Touchbar button label for creating a new group")
|
||||||
|
identifier:MPTouchBarItemIdentifierNewGroup
|
||||||
|
image:[MPIconHelper icon:MPIconAddFolder]
|
||||||
|
target:self
|
||||||
|
selector:@selector(createGroup:)
|
||||||
|
customizationLabel:NSLocalizedString(@"TOUCHBAR_NEW_GROUP","Touchbar button label for creating a new group")];
|
||||||
|
}
|
||||||
|
if([identifier isEqualToString:MPTouchBarItemIdentifierDelete]) {
|
||||||
|
return [MPTouchBarButtonCreator touchBarButtonWithTitleAndImageAndColor:NSLocalizedString(@"TOUCHBAR_DELETE","Touchbar button label for deleting elements")
|
||||||
|
identifier:MPTouchBarItemIdentifierDelete
|
||||||
|
image:[MPIconHelper icon:MPIconTrash]
|
||||||
|
color:NSColor.systemRedColor
|
||||||
|
target:self
|
||||||
|
selector:@selector(delete:)
|
||||||
|
customizationLabel:NSLocalizedString(@"TOUCHBAR_DELETE","Touchbar button label for deleting elements")];
|
||||||
|
}
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)focusSearchField {
|
||||||
|
[self.window makeFirstResponder:self.searchField];
|
||||||
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -44,6 +44,6 @@
|
|||||||
/* Preview */
|
/* Preview */
|
||||||
@property (strong) IBOutlet NSButton *enableQuicklookCheckBox;
|
@property (strong) IBOutlet NSButton *enableQuicklookCheckBox;
|
||||||
|
|
||||||
- (IBAction)openAccessibiltyPreferences:(id)sender;
|
- (IBAction)runAutotypeDoctor:(id)sender;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
#import "MPIntegrationPreferencesController.h"
|
#import "MPIntegrationPreferencesController.h"
|
||||||
#import "MPSettingsHelper.h"
|
#import "MPSettingsHelper.h"
|
||||||
#import "MPIconHelper.h"
|
#import "MPIconHelper.h"
|
||||||
#import "MPAutotypeDaemon.h"
|
#import "MPAutotypeDoctor.h"
|
||||||
|
|
||||||
#import "DDHotKeyCenter.h"
|
#import "DDHotKeyCenter.h"
|
||||||
#import "DDHotKey+MacPassAdditions.h"
|
#import "DDHotKey+MacPassAdditions.h"
|
||||||
@@ -105,7 +105,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
- (void)_updateAccessabilityWarning {
|
- (void)_updateAccessabilityWarning {
|
||||||
BOOL hasAutotypeSupport = MPAutotypeDaemon.defaultDaemon.autotypeSupported;
|
|
||||||
|
BOOL hasAutotypeSupport = MPAutotypeDoctor.defaultDoctor.hasNecessaryAutotypePermissions;
|
||||||
|
|
||||||
if(hasAutotypeSupport) {
|
if(hasAutotypeSupport) {
|
||||||
[self.autotypeStackView setVisibilityPriority:NSStackViewVisibilityPriorityNotVisible forView:self.autotypeWarningTextField];
|
[self.autotypeStackView setVisibilityPriority:NSStackViewVisibilityPriorityNotVisible forView:self.autotypeWarningTextField];
|
||||||
@@ -117,7 +118,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)openAccessibiltyPreferences:(id)sender {
|
- (void)runAutotypeDoctor:(id)sender {
|
||||||
[MPAutotypeDaemon.defaultDaemon openAccessibiltyPreferences];
|
[MPAutotypeDoctor.defaultDoctor runChecksAndPresentResults];
|
||||||
}
|
}
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
|
|
||||||
@class KPKCompositeKey;
|
@class KPKCompositeKey;
|
||||||
|
|
||||||
@interface MPPasswordInputController : MPViewController
|
@interface MPPasswordInputController : MPViewController <NSTouchBarDelegate>
|
||||||
|
|
||||||
typedef BOOL (^passwordInputCompletionBlock)(NSString *password, NSURL *keyURL, BOOL didCancel, NSError *__autoreleasing*error);
|
typedef BOOL (^passwordInputCompletionBlock)(NSString *password, NSURL *keyURL, BOOL didCancel, NSError *__autoreleasing*error);
|
||||||
|
|
||||||
|
|||||||
@@ -26,6 +26,7 @@
|
|||||||
#import "MPDocument.h"
|
#import "MPDocument.h"
|
||||||
#import "MPSettingsHelper.h"
|
#import "MPSettingsHelper.h"
|
||||||
#import "MPPathControl.h"
|
#import "MPPathControl.h"
|
||||||
|
#import "MPTouchBarButtonCreator.h"
|
||||||
|
|
||||||
#import "HNHUi/HNHUi.h"
|
#import "HNHUi/HNHUi.h"
|
||||||
|
|
||||||
@@ -33,6 +34,7 @@
|
|||||||
|
|
||||||
@interface MPPasswordInputController ()
|
@interface MPPasswordInputController ()
|
||||||
|
|
||||||
|
@property (strong) NSButton *showPasswordButton;
|
||||||
@property (weak) IBOutlet HNHUISecureTextField *passwordTextField;
|
@property (weak) IBOutlet HNHUISecureTextField *passwordTextField;
|
||||||
@property (weak) IBOutlet MPPathControl *keyPathControl;
|
@property (weak) IBOutlet MPPathControl *keyPathControl;
|
||||||
@property (weak) IBOutlet NSImageView *messageImageView;
|
@property (weak) IBOutlet NSImageView *messageImageView;
|
||||||
@@ -177,4 +179,36 @@
|
|||||||
self.messageInfoTextField.hidden = NO;
|
self.messageInfoTextField.hidden = NO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
- (NSTouchBar *)makeTouchBar {
|
||||||
|
NSTouchBar *touchBar = [[NSTouchBar alloc] init];
|
||||||
|
touchBar.delegate = self;
|
||||||
|
touchBar.customizationIdentifier = MPTouchBarCustomizationIdentifierPasswordInput;
|
||||||
|
NSArray<NSTouchBarItemIdentifier> *defaultItemIdentifiers = @[MPTouchBarItemIdentifierShowPassword, MPTouchBarItemIdentifierChooseKeyfile, NSTouchBarItemIdentifierFlexibleSpace,MPTouchBarItemIdentifierUnlock];
|
||||||
|
touchBar.defaultItemIdentifiers = defaultItemIdentifiers;
|
||||||
|
touchBar.customizationAllowedItemIdentifiers = defaultItemIdentifiers;
|
||||||
|
return touchBar;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSTouchBarItem *)touchBar:(NSTouchBar *)touchBar makeItemForIdentifier:(NSTouchBarItemIdentifier)identifier API_AVAILABLE(macos(10.12.2)) {
|
||||||
|
if (identifier == MPTouchBarItemIdentifierChooseKeyfile) {
|
||||||
|
return [MPTouchBarButtonCreator touchBarButtonWithTitleAndImage:NSLocalizedString(@"TOUCHBAR_CHOOSE_KEYFILE","Touchbar button label for choosing the keyfile") identifier:MPTouchBarItemIdentifierChooseKeyfile image:[NSImage imageNamed:NSImageNameTouchBarFolderTemplate] target:self.keyPathControl selector:@selector(showOpenPanel:) customizationLabel:NSLocalizedString(@"TOUCHBAR_CHOOSE_KEYFILE","Touchbar button label for choosing the keyfile")];
|
||||||
|
} else if (identifier == MPTouchBarItemIdentifierShowPassword) {
|
||||||
|
NSTouchBarItem *item = [MPTouchBarButtonCreator touchBarButtonWithTitleAndImage:NSLocalizedString(@"TOUCHBAR_SHOW_PASSWORD","Touchbar button label for showing the password") identifier:MPTouchBarItemIdentifierShowPassword image:[NSImage imageNamed:NSImageNameTouchBarQuickLookTemplate] target:self selector:@selector(toggleShowPassword) customizationLabel:NSLocalizedString(@"TOUCHBAR_SHOW_PASSWORD","Touchbar button label for showing the password")];
|
||||||
|
_showPasswordButton = (NSButton *) item.view;
|
||||||
|
return item;
|
||||||
|
} else if (identifier == MPTouchBarItemIdentifierUnlock) {
|
||||||
|
return [MPTouchBarButtonCreator touchBarButtonWithImage:[NSImage imageNamed:NSImageNameLockUnlockedTemplate] identifier:MPTouchBarItemIdentifierUnlock target:self selector:@selector(_submit:) customizationLabel:NSLocalizedString(@"TOUCHBAR_UNLOCK_DATABASE","Touchbar button label for unlocking the database")];
|
||||||
|
} else {
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)toggleShowPassword {
|
||||||
|
self.showPassword = !self.showPassword;
|
||||||
|
if (@available(macOS 10.12.2, *)) {
|
||||||
|
_showPasswordButton.bezelColor = self.showPassword ? [NSColor selectedControlColor] : [NSColor controlColor];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -282,7 +282,7 @@ NSString *const MPPluginHostPluginBundleIdentifiyerKey = @"MPPluginHostPluginBun
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(incompatiblePlugins.count > 0) {
|
if(incompatiblePlugins.count > 0) {
|
||||||
BOOL hideAlert = NO;
|
BOOL hideAlert = NSApplication.sharedApplication.isRunningTests ? YES : NO;
|
||||||
if(nil != [NSUserDefaults.standardUserDefaults objectForKey:kMPSettingsKeyHideIncopatiblePluginsWarning]) {
|
if(nil != [NSUserDefaults.standardUserDefaults objectForKey:kMPSettingsKeyHideIncopatiblePluginsWarning]) {
|
||||||
hideAlert = [NSUserDefaults.standardUserDefaults boolForKey:kMPSettingsKeyHideIncopatiblePluginsWarning];
|
hideAlert = [NSUserDefaults.standardUserDefaults boolForKey:kMPSettingsKeyHideIncopatiblePluginsWarning];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ APPKIT_EXTERN NSString *const kMPSettingsKeyAutotypeMatchTitle; //
|
|||||||
APPKIT_EXTERN NSString *const kMPSettingsKeyAutotypeMatchURL; // Autotype lookup includes entry URL
|
APPKIT_EXTERN NSString *const kMPSettingsKeyAutotypeMatchURL; // Autotype lookup includes entry URL
|
||||||
APPKIT_EXTERN NSString *const kMPSettingsKeyAutotypeMatchHost; // Autotype lookup includes host part of entry URL
|
APPKIT_EXTERN NSString *const kMPSettingsKeyAutotypeMatchHost; // Autotype lookup includes host part of entry URL
|
||||||
APPKIT_EXTERN NSString *const kMPSettingsKeyAutotypeMatchTags; // Autotype lookup includes tags for entries
|
APPKIT_EXTERN NSString *const kMPSettingsKeyAutotypeMatchTags; // Autotype lookup includes tags for entries
|
||||||
APPKIT_EXTERN NSString *const kMPSettingsKeyAutotypeHideAccessibiltyWarning; // Do not show an alert, when MacPass has no support for Autotype
|
APPKIT_EXTERN NSString *const kMPSettingsKeyAutotpyeHideMissingPermissionsWarning;
|
||||||
|
|
||||||
/* Search */
|
/* Search */
|
||||||
APPKIT_EXTERN NSString *const kMPSettingsKeyEntrySearchFilterContext;
|
APPKIT_EXTERN NSString *const kMPSettingsKeyEntrySearchFilterContext;
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ NSString *const kMPSettingsKeyAutotypeMatchTitle = @"Autoty
|
|||||||
NSString *const kMPSettingsKeyAutotypeMatchURL = @"AutotypeMatchURL";
|
NSString *const kMPSettingsKeyAutotypeMatchURL = @"AutotypeMatchURL";
|
||||||
NSString *const kMPSettingsKeyAutotypeMatchHost = @"AutotypeMatchHost";
|
NSString *const kMPSettingsKeyAutotypeMatchHost = @"AutotypeMatchHost";
|
||||||
NSString *const kMPSettingsKeyAutotypeMatchTags = @"AutotypeMatchTags";
|
NSString *const kMPSettingsKeyAutotypeMatchTags = @"AutotypeMatchTags";
|
||||||
NSString *const kMPSettingsKeyAutotypeHideAccessibiltyWarning = @"AutotypeHideAccessibiltyWarning";
|
NSString *const kMPSettingsKeyAutotpyeHideMissingPermissionsWarning = @"AutotpyeHideMissingPermissionsWarning";
|
||||||
|
|
||||||
NSString *const kMPSettingsKeyEntrySearchFilterContext = @"EntrySearchFilterContext";
|
NSString *const kMPSettingsKeyEntrySearchFilterContext = @"EntrySearchFilterContext";
|
||||||
|
|
||||||
@@ -97,7 +97,7 @@ NSString *const kMPDeprecatedSettingsKeyEnableHttpServer = @"En
|
|||||||
NSString *const kMPDeprecatedSettingsKeyShowMenuItem = @"ShowMenuItem";
|
NSString *const kMPDeprecatedSettingsKeyShowMenuItem = @"ShowMenuItem";
|
||||||
NSString *const kMPDeprecatedSettingsKeyDefaultPasswordRounds = @"KeyDefaultPasswordRounds";
|
NSString *const kMPDeprecatedSettingsKeyDefaultPasswordRounds = @"KeyDefaultPasswordRounds";
|
||||||
NSString *const kMPDepricatedSettingsKeyLoadUnsecurePlugins = @"MPLoadUnsecurePlugins";
|
NSString *const kMPDepricatedSettingsKeyLoadUnsecurePlugins = @"MPLoadUnsecurePlugins";
|
||||||
|
NSString *const kMPDepricatedSettingsKeyAutotypeHideAccessibiltyWarning = @"AutotypeHideAccessibiltyWarning";
|
||||||
|
|
||||||
@implementation MPSettingsHelper
|
@implementation MPSettingsHelper
|
||||||
|
|
||||||
@@ -182,7 +182,8 @@ NSString *const kMPDepricatedSettingsKeyLoadUnsecurePlugins = @"MP
|
|||||||
kMPDeprecatedSettingsKeyHttpPort,
|
kMPDeprecatedSettingsKeyHttpPort,
|
||||||
kMPDeprecatedSettingsKeyEnableHttpServer,
|
kMPDeprecatedSettingsKeyEnableHttpServer,
|
||||||
kMPDeprecatedSettingsKeyShowMenuItem,
|
kMPDeprecatedSettingsKeyShowMenuItem,
|
||||||
kMPDepricatedSettingsKeyLoadUnsecurePlugins
|
kMPDepricatedSettingsKeyLoadUnsecurePlugins,
|
||||||
|
kMPDepricatedSettingsKeyAutotypeHideAccessibiltyWarning
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
return deprecatedSettings;
|
return deprecatedSettings;
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
if(self) {
|
if(self) {
|
||||||
self.focusRingType = NSFocusRingTypeNone;
|
self.focusRingType = NSFocusRingTypeNone;
|
||||||
self.bezelStyle = NSTexturedRoundedBezelStyle;
|
self.bezelStyle = NSTexturedRoundedBezelStyle;
|
||||||
[self.cell setImageScaling:NSImageScaleProportionallyDown];
|
((NSButtonCell *)(self.cell)).imageScaling = NSImageScaleProportionallyDown;
|
||||||
[self setButtonType:NSMomentaryPushInButton];
|
[self setButtonType:NSMomentaryPushInButton];
|
||||||
self.imagePosition = NSImageOnly;
|
self.imagePosition = NSImageOnly;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -111,6 +111,7 @@ NSString *const MPToolbarItemAutotype = @"TOOLBAR_AUTOTYPE";
|
|||||||
item = [[MPToolbarItem alloc] initWithItemIdentifier:itemIdentifier];
|
item = [[MPToolbarItem alloc] initWithItemIdentifier:itemIdentifier];
|
||||||
NSString *itemLabel = [self _localizedLabelForToolbarItemIdentifier:itemIdentifier];
|
NSString *itemLabel = [self _localizedLabelForToolbarItemIdentifier:itemIdentifier];
|
||||||
item.label = itemLabel;
|
item.label = itemLabel;
|
||||||
|
item.paletteLabel = itemLabel;
|
||||||
|
|
||||||
if([itemIdentifier isEqualToString:MPToolbarItemAction]) {
|
if([itemIdentifier isEqualToString:MPToolbarItemAction]) {
|
||||||
NSPopUpButton *popupButton = [[NSPopUpButton alloc] initWithFrame:NSMakeRect(0, 0, 50, 32) pullsDown:YES];
|
NSPopUpButton *popupButton = [[NSPopUpButton alloc] initWithFrame:NSMakeRect(0, 0, 50, 32) pullsDown:YES];
|
||||||
@@ -215,7 +216,7 @@ NSString *const MPToolbarItemAutotype = @"TOOLBAR_AUTOTYPE";
|
|||||||
}
|
}
|
||||||
|
|
||||||
- (NSDictionary *)createToolbarImages {
|
- (NSDictionary *)createToolbarImages {
|
||||||
NSDictionary *imageDict = @{ MPToolbarItemLock: [NSImage imageNamed:NSImageNameLockUnlockedTemplate],
|
NSDictionary *imageDict = @{ MPToolbarItemLock: [NSImage imageNamed:NSImageNameLockLockedTemplate],
|
||||||
MPToolbarItemAddEntry: [MPIconHelper icon:MPIconAddEntry],
|
MPToolbarItemAddEntry: [MPIconHelper icon:MPIconAddEntry],
|
||||||
MPToolbarItemAddGroup: [MPIconHelper icon:MPIconAddFolder],
|
MPToolbarItemAddGroup: [MPIconHelper icon:MPIconAddFolder],
|
||||||
MPToolbarItemCopyUsername : [MPIconHelper icon:MPIconIdentity],
|
MPToolbarItemCopyUsername : [MPIconHelper icon:MPIconIdentity],
|
||||||
|
|||||||
40
MacPass/MPTouchBarButtonCreator.h
Normal file
40
MacPass/MPTouchBarButtonCreator.h
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
//
|
||||||
|
// MPTouchBarButtonCreator.h
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Veit-Hendrik Schlenker on 25.12.18.
|
||||||
|
// Copyright © 2018 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
#import "MPPasswordInputController.h"
|
||||||
|
|
||||||
|
@interface MPTouchBarButtonCreator: NSObject
|
||||||
|
|
||||||
|
APPKIT_EXTERN NSTouchBarCustomizationIdentifier MPTouchBarCustomizationIdentifierPasswordInput;
|
||||||
|
APPKIT_EXTERN NSTouchBarItemIdentifier MPTouchBarItemIdentifierChooseKeyfile;
|
||||||
|
APPKIT_EXTERN NSTouchBarItemIdentifier MPTouchBarItemIdentifierShowPassword;
|
||||||
|
APPKIT_EXTERN NSTouchBarItemIdentifier MPTouchBarItemIdentifierUnlock;
|
||||||
|
|
||||||
|
APPKIT_EXTERN NSTouchBarCustomizationIdentifier MPTouchBarCustomizationIdentifierDocument;
|
||||||
|
APPKIT_EXTERN NSTouchBarItemIdentifier MPTouchBarItemIdentifierSearch;
|
||||||
|
APPKIT_EXTERN NSTouchBarItemIdentifier MPTouchBarItemIdentifierEditPopover;
|
||||||
|
APPKIT_EXTERN NSTouchBarItemIdentifier MPTouchBarItemIdentifierCopyUsername;
|
||||||
|
APPKIT_EXTERN NSTouchBarItemIdentifier MPTouchBarItemIdentifierCopyPassword;
|
||||||
|
APPKIT_EXTERN NSTouchBarItemIdentifier MPTouchBarItemIdentifierPerformAutotype;
|
||||||
|
APPKIT_EXTERN NSTouchBarItemIdentifier MPTouchBarItemIdentifierLock;
|
||||||
|
|
||||||
|
APPKIT_EXTERN NSTouchBarItemIdentifier MPTouchBarItemIdentifierNewEntry;
|
||||||
|
APPKIT_EXTERN NSTouchBarItemIdentifier MPTouchBarItemIdentifierNewGroup;
|
||||||
|
APPKIT_EXTERN NSTouchBarItemIdentifier MPTouchBarItemIdentifierDelete;
|
||||||
|
|
||||||
|
|
||||||
|
+ (NSTouchBarItem *)touchBarButtonWithTitle:(NSString *)title identifier:(NSTouchBarItemIdentifier)identifier target:(id)target selector:(SEL)selector customizationLabel:(NSString *)customizationLabel API_AVAILABLE(macos(10.12.2));
|
||||||
|
|
||||||
|
+ (NSTouchBarItem *)touchBarButtonWithTitleAndImage:(NSString *)title identifier:(NSTouchBarItemIdentifier)identifier image:(NSImage *)image target:(id)target selector:(SEL)selector customizationLabel:(NSString *)customizationLabel API_AVAILABLE(macos(10.12.2));
|
||||||
|
|
||||||
|
+ (NSTouchBarItem *)touchBarButtonWithTitleAndImageAndColor:(NSString *)title identifier:(NSTouchBarItemIdentifier)identifier image:(NSImage *)image color:(NSColor *)color target:(id)target selector:(SEL)selector customizationLabel:(NSString *)customizationLabel API_AVAILABLE(macos(10.12.2));
|
||||||
|
|
||||||
|
+ (NSTouchBarItem *)touchBarButtonWithImage:(NSImage *)image identifier:(NSTouchBarItemIdentifier)identifier target:(id)target selector:(SEL)selector customizationLabel:(NSString *)customizationLabel API_AVAILABLE(macos(10.12.2));
|
||||||
|
|
||||||
|
+ (NSPopoverTouchBarItem *)popoverTouchBarButton:(NSString *)title identifier:(NSTouchBarItemIdentifier)identifier popoverTouchBar:(NSTouchBar *)popoverTouchBar customizationLabel:(NSString *)customizationLabel API_AVAILABLE(macos(10.12.2));
|
||||||
|
|
||||||
|
@end
|
||||||
68
MacPass/MPTouchBarButtonCreator.m
Normal file
68
MacPass/MPTouchBarButtonCreator.m
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
//
|
||||||
|
// MPTouchBarButtonCreator.m
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Veit-Hendrik Schlenker on 25.12.18.
|
||||||
|
// Copyright © 2018 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "MPTouchBarButtonCreator.h"
|
||||||
|
|
||||||
|
NSTouchBarCustomizationIdentifier MPTouchBarCustomizationIdentifierPasswordInput = @"com.hicknhacksoftware.MacPass.TouchBar.passwordInput";
|
||||||
|
NSTouchBarItemIdentifier MPTouchBarItemIdentifierChooseKeyfile = @"com.hicknhacksoftware.MacPass.TouchBar.passwordInput.chooseKeyfile";
|
||||||
|
NSTouchBarItemIdentifier MPTouchBarItemIdentifierShowPassword = @"com.hicknhacksoftware.MacPass.TouchBar.passwordInput.showPassword";
|
||||||
|
NSTouchBarItemIdentifier MPTouchBarItemIdentifierUnlock = @"com.hicknhacksoftware.MacPass.TouchBar.passwordInput.unlock";
|
||||||
|
|
||||||
|
NSTouchBarCustomizationIdentifier MPTouchBarCustomizationIdentifierDocument = @"com.hicknhacksoftware.MacPass.TouchBar.documentWindow";
|
||||||
|
NSTouchBarItemIdentifier MPTouchBarItemIdentifierSearch = @"com.hicknhacksoftware.MacPass.TouchBar.documentWindow.search";
|
||||||
|
NSTouchBarItemIdentifier MPTouchBarItemIdentifierEditPopover = @"com.hicknhacksoftware.MacPass.TouchBar.documentWindow.editPopover";
|
||||||
|
NSTouchBarItemIdentifier MPTouchBarItemIdentifierCopyUsername = @"com.hicknhacksoftware.MacPass.TouchBar.documentWindow.copyUsername";
|
||||||
|
NSTouchBarItemIdentifier MPTouchBarItemIdentifierCopyPassword = @"com.hicknhacksoftware.MacPass.TouchBar.documentWindow.copyPassword";
|
||||||
|
NSTouchBarItemIdentifier MPTouchBarItemIdentifierPerformAutotype = @"com.hicknhacksoftware.MacPass.TouchBar.documentWindow.performAutotype";
|
||||||
|
NSTouchBarItemIdentifier MPTouchBarItemIdentifierLock = @"com.hicknhacksoftware.MacPass.TouchBar.documentWindow.lock";
|
||||||
|
|
||||||
|
NSTouchBarItemIdentifier MPTouchBarItemIdentifierNewEntry = @"com.hicknhacksoftware.MacPass.TouchBar.documentWindow.newEntry";
|
||||||
|
NSTouchBarItemIdentifier MPTouchBarItemIdentifierNewGroup = @"com.hicknhacksoftware.MacPass.TouchBar.documentWindow.newGroup";
|
||||||
|
NSTouchBarItemIdentifier MPTouchBarItemIdentifierDelete = @"com.hicknhacksoftware.MacPass.TouchBar.documentWindow.delete";
|
||||||
|
|
||||||
|
|
||||||
|
@implementation MPTouchBarButtonCreator
|
||||||
|
|
||||||
|
+ (NSTouchBarItem *)touchBarButtonWithTitle:(NSString *)title identifier:(NSTouchBarItemIdentifier)identifier target:(id)target selector:(SEL)selector customizationLabel:(NSString *)customizationLabel API_AVAILABLE(macos(10.12.2)){
|
||||||
|
NSCustomTouchBarItem *item = [[NSCustomTouchBarItem alloc] initWithIdentifier:identifier];
|
||||||
|
NSButton *button = [NSButton buttonWithTitle:title target:target action:selector];
|
||||||
|
item.view = button;
|
||||||
|
item.customizationLabel = customizationLabel;
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ (NSTouchBarItem *)touchBarButtonWithTitleAndImage:(NSString *)title identifier:(NSTouchBarItemIdentifier)identifier image:(NSImage *)image target:(id)target selector:(SEL)selector customizationLabel:(NSString *)customizationLabel API_AVAILABLE(macos(10.12.2)){
|
||||||
|
return [self touchBarButtonWithTitleAndImageAndColor:title identifier:identifier image:image color:nil target:target selector:selector customizationLabel:customizationLabel];
|
||||||
|
}
|
||||||
|
|
||||||
|
+ (NSTouchBarItem *)touchBarButtonWithTitleAndImageAndColor:(NSString *)title identifier:(NSTouchBarItemIdentifier)identifier image:(NSImage *)image color:(NSColor *)color target:(id)target selector:(SEL)selector customizationLabel:(NSString *)customizationLabel API_AVAILABLE(macos(10.12.2)){
|
||||||
|
NSCustomTouchBarItem *item = [[NSCustomTouchBarItem alloc] initWithIdentifier:identifier];
|
||||||
|
NSButton *button = [NSButton buttonWithTitle:title image:image target:target action:selector];
|
||||||
|
button.bezelColor = color;
|
||||||
|
item.view = button;
|
||||||
|
item.customizationLabel = customizationLabel;
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ (NSTouchBarItem *)touchBarButtonWithImage:(NSImage *)image identifier:(NSTouchBarItemIdentifier)identifier target:(id)target selector:(SEL)selector customizationLabel:(NSString *)customizationLabel API_AVAILABLE(macos(10.12.2)){
|
||||||
|
NSCustomTouchBarItem *item = [[NSCustomTouchBarItem alloc] initWithIdentifier:identifier];
|
||||||
|
NSButton *button = [NSButton buttonWithImage:image target:target action:selector];
|
||||||
|
item.view = button;
|
||||||
|
item.customizationLabel = customizationLabel;
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ (NSPopoverTouchBarItem *)popoverTouchBarButton:(NSString *)title identifier:(NSTouchBarItemIdentifier)identifier popoverTouchBar:(NSTouchBar *)popoverTouchBar customizationLabel:(NSString *)customizationLabel API_AVAILABLE(macos(10.12.2)){
|
||||||
|
NSPopoverTouchBarItem *item = [[NSPopoverTouchBarItem alloc] initWithIdentifier:identifier];
|
||||||
|
item.collapsedRepresentationLabel = title;
|
||||||
|
item.popoverTouchBar = popoverTouchBar;
|
||||||
|
item.customizationLabel = customizationLabel;
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
FOUNDATION_EXTERN NSString *const MPUserNotificationTypeKey;
|
FOUNDATION_EXTERN NSString *const MPUserNotificationTypeKey;
|
||||||
FOUNDATION_EXTERN NSString *const MPUserNotificationTypeAutotypeFeedback;
|
FOUNDATION_EXTERN NSString *const MPUserNotificationTypeAutotypeFeedback;
|
||||||
FOUNDATION_EXTERN NSString *const MPUserNotificationTypeAutotypeOpenDocumentRequest;
|
FOUNDATION_EXTERN NSString *const MPUserNotificationTypeAutotypeOpenDocumentRequest;
|
||||||
FOUNDATION_EXTERN NSString *const MPUserNotificationTypeShowAccessibiltyPreferences;
|
FOUNDATION_EXTERN NSString *const MPUserNotificationTypeRunAutotypeDoctor;
|
||||||
|
|
||||||
@interface MPUserNotificationCenterDelegate : NSObject <NSUserNotificationCenterDelegate>
|
@interface MPUserNotificationCenterDelegate : NSObject <NSUserNotificationCenterDelegate>
|
||||||
|
|
||||||
|
|||||||
@@ -22,12 +22,12 @@
|
|||||||
|
|
||||||
#import "MPUserNotificationCenterDelegate.h"
|
#import "MPUserNotificationCenterDelegate.h"
|
||||||
#import "MPDocumentController.h"
|
#import "MPDocumentController.h"
|
||||||
#import "MPAutotypeDaemon.h"
|
#import "MPAutotypeDoctor.h"
|
||||||
|
|
||||||
NSString *const MPUserNotificationTypeKey = @"MPUserNotificationTypeKey";
|
NSString *const MPUserNotificationTypeKey = @"MPUserNotificationTypeKey";
|
||||||
NSString *const MPUserNotificationTypeAutotypeFeedback = @"MPUserNotificationTypeAutotypeFeedback";
|
NSString *const MPUserNotificationTypeAutotypeFeedback = @"MPUserNotificationTypeAutotypeFeedback";
|
||||||
NSString *const MPUserNotificationTypeAutotypeOpenDocumentRequest = @"MPUserNotificationTypeAutotypeOpenDocumentRequest";
|
NSString *const MPUserNotificationTypeAutotypeOpenDocumentRequest = @"MPUserNotificationTypeAutotypeOpenDocumentRequest";
|
||||||
NSString *const MPUserNotificationTypeShowAccessibiltyPreferences = @"MPUserNotificationTypeShowAccessibiltyPreferences";
|
NSString *const MPUserNotificationTypeRunAutotypeDoctor = @"MPUserNotificationTypeRunAutotypeDoctor";
|
||||||
|
|
||||||
@implementation MPUserNotificationCenterDelegate
|
@implementation MPUserNotificationCenterDelegate
|
||||||
|
|
||||||
@@ -45,8 +45,8 @@ NSString *const MPUserNotificationTypeShowAccessibiltyPreferences = @"MPUserNoti
|
|||||||
if([notificationType isEqualToString:MPUserNotificationTypeAutotypeOpenDocumentRequest]) {
|
if([notificationType isEqualToString:MPUserNotificationTypeAutotypeOpenDocumentRequest]) {
|
||||||
[((MPDocumentController*)NSDocumentController.sharedDocumentController) reopenLastDocument];
|
[((MPDocumentController*)NSDocumentController.sharedDocumentController) reopenLastDocument];
|
||||||
}
|
}
|
||||||
else if([notificationType isEqualToString:MPUserNotificationTypeShowAccessibiltyPreferences]) {
|
else if([notificationType isEqualToString:MPUserNotificationTypeRunAutotypeDoctor]) {
|
||||||
[MPAutotypeDaemon.defaultDaemon openAccessibiltyPreferences];
|
[MPAutotypeDoctor.defaultDoctor runChecksAndPresentResults];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,7 +55,7 @@ NSString *const MPUserNotificationTypeShowAccessibiltyPreferences = @"MPUserNoti
|
|||||||
if([notificationType isEqualToString:MPUserNotificationTypeAutotypeFeedback]) {
|
if([notificationType isEqualToString:MPUserNotificationTypeAutotypeFeedback]) {
|
||||||
return YES;
|
return YES;
|
||||||
}
|
}
|
||||||
if([notificationType isEqualToString:MPUserNotificationTypeShowAccessibiltyPreferences]) {
|
if([notificationType isEqualToString:MPUserNotificationTypeRunAutotypeDoctor]) {
|
||||||
return YES;
|
return YES;
|
||||||
}
|
}
|
||||||
return NO;
|
return NO;
|
||||||
|
|||||||
@@ -22,16 +22,20 @@
|
|||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
FOUNDATION_EXPORT NSString *const MPErrorDomain;
|
FOUNDATION_EXPORT NSString *const MPDefaultErrorDomain;
|
||||||
|
FOUNDATION_EXPORT NSString *const MPAutotypeErrorDomain;
|
||||||
|
|
||||||
typedef NS_ENUM(NSInteger, MPErrorCodes) {
|
typedef NS_ENUM(NSInteger, MPErrorCodes) {
|
||||||
MPErrorNoPasswordOrKeyFile = 10000,
|
MPErrorNoPasswordOrKeyFile = 10000,
|
||||||
MPErrorInvalidPlugin
|
MPErrorInvalidPlugin,
|
||||||
|
MPErrorAutotypeIsMissingAccessibiltyPermissions,
|
||||||
|
MPErrorAutotypeIsMissingScreenRecordingPermissions
|
||||||
};
|
};
|
||||||
|
|
||||||
@interface NSError (Messages)
|
@interface NSError (Messages)
|
||||||
|
|
||||||
+ (NSError *)errorWithCode:(NSInteger)code description:(NSString *)description;
|
+ (NSError *)errorWithCode:(NSInteger)code description:(NSString *)description;
|
||||||
|
+ (NSError *)errorInDomain:(NSString *)domain withCode:(NSInteger)code description:(NSString *)description;
|
||||||
|
|
||||||
@property (nonatomic, readonly, copy) NSString *descriptionForErrorCode;
|
@property (nonatomic, readonly, copy) NSString *descriptionForErrorCode;
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,8 @@
|
|||||||
|
|
||||||
#import "NSError+Messages.h"
|
#import "NSError+Messages.h"
|
||||||
|
|
||||||
NSString *const MPErrorDomain = @"com.hicknhack.macpass.error";
|
NSString *const MPDefaultErrorDomain = @"com.hicknhack.macpass.error";
|
||||||
|
NSString *const MPAutotypeErrorDomain = @"com.hicknhack.macpass.error.autotype";
|
||||||
|
|
||||||
@implementation NSError (Messages)
|
@implementation NSError (Messages)
|
||||||
|
|
||||||
@@ -30,7 +31,12 @@ NSString *const MPErrorDomain = @"com.hicknhack.macpass.error";
|
|||||||
return [NSString stringWithFormat:@"%@ (%ld)", self.localizedDescription, self.code ];
|
return [NSString stringWithFormat:@"%@ (%ld)", self.localizedDescription, self.code ];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
+ (NSError *)errorInDomain:(NSString *)domain withCode:(NSInteger)code description:(NSString *)description {
|
||||||
|
return [[NSError alloc] initWithDomain:domain code:code userInfo:@{ NSLocalizedDescriptionKey: description }];
|
||||||
|
}
|
||||||
|
|
||||||
+ (NSError *)errorWithCode:(NSInteger)code description:(NSString *)description {
|
+ (NSError *)errorWithCode:(NSInteger)code description:(NSString *)description {
|
||||||
return [[NSError alloc] initWithDomain:MPErrorDomain code:code userInfo:@{ NSLocalizedDescriptionKey: description }];
|
return [NSError errorInDomain:MPDefaultErrorDomain withCode:code description:description];
|
||||||
|
|
||||||
}
|
}
|
||||||
@end
|
@end
|
||||||
|
|||||||
13
MacPass/NSTextView+MPTouchBarExtension.h
Normal file
13
MacPass/NSTextView+MPTouchBarExtension.h
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
//
|
||||||
|
// NSTextView+MPNSTextView_TouchBarExtension_h.h
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Veit-Hendrik Schlenker on 23.12.18.
|
||||||
|
// Copyright © 2018 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Cocoa/Cocoa.h>
|
||||||
|
|
||||||
|
@interface NSTextView (TouchBarExtension)
|
||||||
|
|
||||||
|
@end
|
||||||
17
MacPass/NSTextView+MPTouchBarExtension.m
Normal file
17
MacPass/NSTextView+MPTouchBarExtension.m
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
//
|
||||||
|
// MP.m
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Veit-Hendrik Schlenker on 23.12.18.
|
||||||
|
// Copyright © 2018 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "NSTextView+MPTouchBarExtension.h"
|
||||||
|
|
||||||
|
@implementation NSTextView (TouchBarExtension)
|
||||||
|
|
||||||
|
- (NSTouchBar *) makeTouchBar {
|
||||||
|
return [self.window makeTouchBar];
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
@@ -46,18 +46,12 @@
|
|||||||
/* Class = "NSButtonCell"; title = "Lock after sleep"; ObjectID = "631"; */
|
/* Class = "NSButtonCell"; title = "Lock after sleep"; ObjectID = "631"; */
|
||||||
"631.title" = "Datenbank im Ruhezustand sperren";
|
"631.title" = "Datenbank im Ruhezustand sperren";
|
||||||
|
|
||||||
/* Class = "NSButtonCell"; title = "Enable Autosave"; ObjectID = ""wG7-bi-2fi""; */
|
|
||||||
"wG7-bi-2fi.title" = "Automatisches Speichern aktivieren";
|
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "Never"; ObjectID = "804"; */
|
/* Class = "NSMenuItem"; title = "Never"; ObjectID = "804"; */
|
||||||
"804.title" = "Nie";
|
"804.title" = "Nie";
|
||||||
|
|
||||||
/* Class = "NSTextFieldCell"; title = "Lock while idle"; ObjectID = "806"; */
|
/* Class = "NSTextFieldCell"; title = "Lock while idle"; ObjectID = "806"; */
|
||||||
"806.title" = "Sperren nach Inaktivität";
|
"806.title" = "Sperren nach Inaktivität";
|
||||||
|
|
||||||
/* Class = "NSTextFieldCell"; title = "Close and open all documents for changes to take effect"; ObjectID = "3Bo-Ml-1KB"; */
|
|
||||||
"3Bo-Ml-1KB.title" = "Die Änderungen werden erst für Dokumente wirksam, welche geschlossen und erneut geöffnet werden.";
|
|
||||||
|
|
||||||
/* Class = "NSBox"; title = "File Handling"; ObjectID = "888"; */
|
/* Class = "NSBox"; title = "File Handling"; ObjectID = "888"; */
|
||||||
"888.title" = "Dateibehandlung";
|
"888.title" = "Dateibehandlung";
|
||||||
|
|
||||||
@@ -79,3 +73,9 @@
|
|||||||
/* Class = "NSButtonCell"; title = "Remember Keyfile for Databases"; ObjectID = "r6q-He-nYU"; */
|
/* Class = "NSButtonCell"; title = "Remember Keyfile for Databases"; ObjectID = "r6q-He-nYU"; */
|
||||||
"r6q-He-nYU.title" = "Schlüsseldatei merken";
|
"r6q-He-nYU.title" = "Schlüsseldatei merken";
|
||||||
|
|
||||||
|
/* Class = "NSButtonCell"; title = "Enable Autosave"; ObjectID = "wG7-bi-2fi"; */
|
||||||
|
"wG7-bi-2fi.title" = "Automatisches Speichern aktivieren";
|
||||||
|
|
||||||
|
/* Class = "NSTextFieldCell"; title = "Close and open all documents for changes to take effect"; ObjectID = "ya5-ps-c4W"; */
|
||||||
|
"ya5-ps-c4W.title" = "Die Änderungen werden erst für Dokumente wirksam, welche geschlossen und erneut geöffnet werden.";
|
||||||
|
|
||||||
|
|||||||
@@ -10,13 +10,13 @@
|
|||||||
/* Class = "NSButtonCell"; title = "Enable Quicklook Preview"; ObjectID = "ERs-ct-Eyx"; */
|
/* Class = "NSButtonCell"; title = "Enable Quicklook Preview"; ObjectID = "ERs-ct-Eyx"; */
|
||||||
"ERs-ct-Eyx.title" = "Quicklook Preview aktivieren";
|
"ERs-ct-Eyx.title" = "Quicklook Preview aktivieren";
|
||||||
|
|
||||||
/* Class = "NSTextFieldCell"; title = "Autotype is not available, because MacPass is not allowed to control your computer. To enable Autotype, go to the Security and Privacy Preferences and add MacPass to the Accessibilty group. Changes require a restart of MacPass."; ObjectID = "H37-ku-aTc"; */
|
/* Class = "NSTextFieldCell"; title = "Autotype might not work properly. Some issues where found that prevent Autotype or Global Autotype to work. Please run the Autotype Doctor to fix those issues."; ObjectID = "H37-ku-aTc"; */
|
||||||
"H37-ku-aTc.title" = "Autotype steht nicht zur Verfügung, da MacPass den Computer nicht steuern darf. Um Autotype zu ermöglichen, fügen Sie MacPass in den Einstellungen zur Privatsphäre zu den Bedienungshilfen hinzu.";
|
"H37-ku-aTc.title" = "Autotype steht nicht zur Verfügung, da MacPass den Computer nicht steuern darf. Um Autotype zu ermöglichen, fügen Sie MacPass in den Einstellungen zur Privatsphäre zu den Bedienungshilfen hinzu.";
|
||||||
|
|
||||||
/* Class = "NSTextFieldCell"; title = "Shortcut is missing Key"; ObjectID = "Lxp-wI-yQy"; */
|
/* Class = "NSTextFieldCell"; title = "Shortcut is missing Key"; ObjectID = "Lxp-wI-yQy"; */
|
||||||
"Lxp-wI-yQy.title" = "Der Kurzbefehl ist unvollständig";
|
"Lxp-wI-yQy.title" = "Der Kurzbefehl ist unvollständig";
|
||||||
|
|
||||||
/* Class = "NSButtonCell"; title = "Open Preferences…"; ObjectID = "NP0-R3-m6n"; */
|
/* Class = "NSButtonCell"; title = "Run Autotype Doctor…"; ObjectID = "NP0-R3-m6n"; */
|
||||||
"NP0-R3-m6n.title" = "Systemeinstellungen öffnen…";
|
"NP0-R3-m6n.title" = "Systemeinstellungen öffnen…";
|
||||||
|
|
||||||
/* Class = "NSBox"; title = "Autotype"; ObjectID = "P9N-HM-wER"; */
|
/* Class = "NSBox"; title = "Autotype"; ObjectID = "P9N-HM-wER"; */
|
||||||
|
|||||||
@@ -113,6 +113,12 @@
|
|||||||
/* Menu item for automatic trash creation */
|
/* Menu item for automatic trash creation */
|
||||||
"AUTOCREATE_TRASH_FOLDER" = "Automatisch erstellen";
|
"AUTOCREATE_TRASH_FOLDER" = "Automatisch erstellen";
|
||||||
|
|
||||||
|
/* Message text in the autotype selection window. Placeholder is %1 - windowTitle */
|
||||||
|
"AUTOTYPE_CANDIDATE_SELECTION_WINDOW_MESSAGE_%@" = "Es gibt mehrere Treffer für den aktuellen Fenstertitel: %@. Bitte wählen Sie den Eintrag aus der Liste aus, welcher verwendet werden soll.";
|
||||||
|
|
||||||
|
/* Window title for the stand-alone password creator window */
|
||||||
|
"AUTOTYPE_DOCTOR_RESULTS_WINDOW_TITLE" = "Autotype Doktor";
|
||||||
|
|
||||||
/* Inherit autotype settings menu item */
|
/* Inherit autotype settings menu item */
|
||||||
"AUTOTYPE_INHERIT" = "Autotype Einstellungen vererben";
|
"AUTOTYPE_INHERIT" = "Autotype Einstellungen vererben";
|
||||||
|
|
||||||
@@ -122,8 +128,8 @@
|
|||||||
/* Disable autotype menu item */
|
/* Disable autotype menu item */
|
||||||
"AUTOTYPE_NO" = "Autotype deaktivieren";
|
"AUTOTYPE_NO" = "Autotype deaktivieren";
|
||||||
|
|
||||||
/* Notification: Autotype failed, MacPass has no permission to send key strokes */
|
/* Notification: Autotype failed, MacPass has not enough permissions to perform autotype */
|
||||||
"AUTOTYPE_NOTIFICATION_MACPASS_HAS_NO_ACCESSIBILTY_PERMISSIONS" = "Autotype ist deaktivert, weil keine Rechte zum Steuern des Computers vorhanden sind.";
|
"AUTOTYPE_NOTIFICATION_MACPASS_IS_MISSING_PERMISSIONS" = "MacPass hat nicht alle notwendigen Berechtigungen um Autotype ausführen zu können";
|
||||||
|
|
||||||
/* Notification: Autotype failed, no documents are open */
|
/* Notification: Autotype failed, no documents are open */
|
||||||
"AUTOTYPE_OVERLAY_NO_DOCUMENTS" = "Bitte öffnen Sie eine Datei, um Global-Autotype zu nutzen!";
|
"AUTOTYPE_OVERLAY_NO_DOCUMENTS" = "Bitte öffnen Sie eine Datei, um Global-Autotype zu nutzen!";
|
||||||
@@ -134,6 +140,18 @@
|
|||||||
/* Notification: Autotype found a single match for %@ (string placeholder). */
|
/* Notification: Autotype found a single match for %@ (string placeholder). */
|
||||||
"AUTOTYPE_OVERLAY_SINGLE_MATCH_FOR_%@" = "Treffer für %@!";
|
"AUTOTYPE_OVERLAY_SINGLE_MATCH_FOR_%@" = "Treffer für %@!";
|
||||||
|
|
||||||
|
/* Status lable when no issue were found in accessibilty */
|
||||||
|
"AUTOTYPE_STATUS_ACCESSIBILTY_PERMISSIONS_OK" = "MacPass hat die Berechtigung den Computer zu steuern (Eingabehilfe)";
|
||||||
|
|
||||||
|
/* Status MacPass has no accessibilty permissions */
|
||||||
|
"AUTOTYPE_STATUS_NO_ACCESSIBILTY_PERMISSIONS" = "MacPass hat keine Berechtigung den Computer zu steuern (Eingabehilfe)";
|
||||||
|
|
||||||
|
/* Status MacPass has no screen recording permissions */
|
||||||
|
"AUTOTYPE_STATUS_NO_SCREEN_RECORDING_PERMISSIONS" = "MacPass hat keine Berechtigung den Bildschirminhalt aufzuzeichnen";
|
||||||
|
|
||||||
|
/* Status lable when no issue were found in screen recording permissions */
|
||||||
|
"AUTOTYPE_STATUS_SCREEN_RECORDING_PERMISSIONS_OK" = "MacPass hat die Berechtigung den Bildschirminhalt aufzuzeichnen";
|
||||||
|
|
||||||
/* Notficication: Autotype timed out */
|
/* Notficication: Autotype timed out */
|
||||||
"AUTOTYPE_TIMED_OUT" = "Autotype wegen zu langer Wartezeit abgebrochen";
|
"AUTOTYPE_TIMED_OUT" = "Autotype wegen zu langer Wartezeit abgebrochen";
|
||||||
|
|
||||||
@@ -337,6 +355,12 @@
|
|||||||
/* Error description given when adding an invalid plugin */
|
/* Error description given when adding an invalid plugin */
|
||||||
"ERROR_INVALID_PLUGIN" = "Kein MacPass-Plugin";
|
"ERROR_INVALID_PLUGIN" = "Kein MacPass-Plugin";
|
||||||
|
|
||||||
|
/* Error description for missing accessibilty permissions */
|
||||||
|
"ERROR_NO_ACCESSIBILTY_PERMISSIONS" = "MacPass hat keine Berechtigung den Bildschirminhalt aufzuzeichen.";
|
||||||
|
|
||||||
|
/* Error description for missing screen recording permissions */
|
||||||
|
"ERROR_NO_PERMISSION_TO_RECORD_SCREEN" = "MacPass hat keine Berechtigungen den Bildschirminhalt aufzuzeichnen";
|
||||||
|
|
||||||
/* Passwords do not match */
|
/* Passwords do not match */
|
||||||
"ERROR_PASSWORD_MISSMATCH" = "Passwörter stimmen nicht überein";
|
"ERROR_PASSWORD_MISSMATCH" = "Passwörter stimmen nicht überein";
|
||||||
|
|
||||||
@@ -498,9 +522,6 @@
|
|||||||
/* Action button in Notification to open a document */
|
/* Action button in Notification to open a document */
|
||||||
"OPEN_DOCUMENT" = "Datei öffnen";
|
"OPEN_DOCUMENT" = "Datei öffnen";
|
||||||
|
|
||||||
/* Action button in Notification to show the Accessibilty preferences */
|
|
||||||
"OPEN_PREFERENCES" = "Systemeinstellung Bedienungshilfen öffnen …";
|
|
||||||
|
|
||||||
/* Menu item to open the URL with the default application */
|
/* Menu item to open the URL with the default application */
|
||||||
"OPEN_URL" = "Adresse öffnen";
|
"OPEN_URL" = "Adresse öffnen";
|
||||||
|
|
||||||
@@ -672,6 +693,9 @@
|
|||||||
/* Checkbox in dialog to set the selection as default file change strategy! */
|
/* Checkbox in dialog to set the selection as default file change strategy! */
|
||||||
"SET_AS_DEFAULT_FILE_CHANGE_STRATEGY" = "Die gewählte Strategie immer verwenden. Sie können die Strategie jederzeit in den Einstellungen anpassen.";
|
"SET_AS_DEFAULT_FILE_CHANGE_STRATEGY" = "Die gewählte Strategie immer verwenden. Sie können die Strategie jederzeit in den Einstellungen anpassen.";
|
||||||
|
|
||||||
|
/* Action button in Notification to show the Autotype Doctor */
|
||||||
|
"SHOW_AUTOTYPE_DOCTOR" = "Autotype Doktor anzeigen";
|
||||||
|
|
||||||
/* Menu item to show the history of the selected entry
|
/* Menu item to show the history of the selected entry
|
||||||
Toolbar item to toggle history display */
|
Toolbar item to toggle history display */
|
||||||
"SHOW_HISTORY" = "Historie anzeigen";
|
"SHOW_HISTORY" = "Historie anzeigen";
|
||||||
@@ -688,6 +712,42 @@
|
|||||||
/* Toolbar item to perform autotype */
|
/* Toolbar item to perform autotype */
|
||||||
"TOOLBAR_PERFORM_AUTOTYPE_FOR_ENTRY" = "Autotype";
|
"TOOLBAR_PERFORM_AUTOTYPE_FOR_ENTRY" = "Autotype";
|
||||||
|
|
||||||
|
/* Touchbar button label for choosing the keyfile */
|
||||||
|
"TOUCHBAR_CHOOSE_KEYFILE" = "Schlüsseldatei wählen";
|
||||||
|
|
||||||
|
/* Touchbar button label for copying the password */
|
||||||
|
"TOUCHBAR_COPY_PASSWORD" = "Passwort kopieren";
|
||||||
|
|
||||||
|
/* Touchbar button label for copying the username */
|
||||||
|
"TOUCHBAR_COPY_USERNAME" = "Benutzername kopieren";
|
||||||
|
|
||||||
|
/* Touchbar button label for deleting elements */
|
||||||
|
"TOUCHBAR_DELETE" = "Löschen";
|
||||||
|
|
||||||
|
/* Touchbar button label for opening the popover to edit */
|
||||||
|
"TOUCHBAR_EDIT" = "Bearbeiten";
|
||||||
|
|
||||||
|
/* Touchbar button label for locking the database */
|
||||||
|
"TOUCHBAR_LOCK_DATABASE" = "Datenbank sperren";
|
||||||
|
|
||||||
|
/* Touchbar button label for creating a new item */
|
||||||
|
"TOUCHBAR_NEW_ENTRY" = "Neuer Eintrag";
|
||||||
|
|
||||||
|
/* Touchbar button label for creating a new group */
|
||||||
|
"TOUCHBAR_NEW_GROUP" = "Neue Gruppe";
|
||||||
|
|
||||||
|
/* Touchbar button label for performing autotype */
|
||||||
|
"TOUCHBAR_PERFORM_AUTOTYPE" = "Autotype ausführen";
|
||||||
|
|
||||||
|
/* Touchbar button label for searching the database */
|
||||||
|
"TOUCHBAR_SEARCH" = "Datenbank durchsuchen";
|
||||||
|
|
||||||
|
/* Touchbar button label for showing the password */
|
||||||
|
"TOUCHBAR_SHOW_PASSWORD" = "Password anzeigen";
|
||||||
|
|
||||||
|
/* Touchbar button label for unlocking the database */
|
||||||
|
"TOUCHBAR_UNLOCK_DATABASE" = "Datenbank entsperren";
|
||||||
|
|
||||||
/* Move Entry to Trash */
|
/* Move Entry to Trash */
|
||||||
"TRASH_ENTRY" = "Eintrag löschen";
|
"TRASH_ENTRY" = "Eintrag löschen";
|
||||||
|
|
||||||
|
|||||||
@@ -139,7 +139,7 @@
|
|||||||
/* Class = "NSMenuItem"; title = "Toggle Inspector"; ObjectID = "1181"; */
|
/* Class = "NSMenuItem"; title = "Toggle Inspector"; ObjectID = "1181"; */
|
||||||
"1181.title" = "Inspector ein/ausblenden";
|
"1181.title" = "Inspector ein/ausblenden";
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "Show Password Generator"; ObjectID = "1200"; */
|
/* Class = "NSMenuItem"; title = "Password Generator"; ObjectID = "1200"; */
|
||||||
"1200.title" = "Passwortgenerator anzeigen";
|
"1200.title" = "Passwortgenerator anzeigen";
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "Change Master Password…"; ObjectID = "1203"; */
|
/* Class = "NSMenuItem"; title = "Change Master Password…"; ObjectID = "1203"; */
|
||||||
@@ -193,3 +193,6 @@
|
|||||||
/* Class = "NSMenuItem"; title = "Merge With…"; ObjectID = "zvE-0h-UxI"; */
|
/* Class = "NSMenuItem"; title = "Merge With…"; ObjectID = "zvE-0h-UxI"; */
|
||||||
"zvE-0h-UxI.title" = "Synchronisieren…";
|
"zvE-0h-UxI.title" = "Synchronisieren…";
|
||||||
|
|
||||||
|
/* Class = "NSMenuItem"; title = "Autotype Doctor"; ObjectID = "zWx-Re-iuJ"; */
|
||||||
|
"zWx-Re-iuJ.title" = "Autotype Doktor";
|
||||||
|
|
||||||
|
|||||||
24
MacPass/de.lproj/PluginRepositoryBrowserView.strings
Normal file
24
MacPass/de.lproj/PluginRepositoryBrowserView.strings
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
/* Class = "NSButtonCell"; title = "Action"; ObjectID = "6jQ-Uk-uqD"; */
|
||||||
|
"6jQ-Uk-uqD.title" = "Aktion";
|
||||||
|
|
||||||
|
/* Class = "NSTextFieldCell"; title = "Updated at"; ObjectID = "DhR-ED-6gV"; */
|
||||||
|
"DhR-ED-6gV.title" = "Aktualisiert am";
|
||||||
|
|
||||||
|
/* Class = "NSTableColumn"; headerCell.title = "Status"; ObjectID = "g1Q-BS-vCR"; */
|
||||||
|
"g1Q-BS-vCR.headerCell.title" = "Status";
|
||||||
|
|
||||||
|
/* Class = "NSTableColumn"; headerCell.title = "Latest Version"; ObjectID = "hFg-AD-SqD"; */
|
||||||
|
"hFg-AD-SqD.headerCell.title" = "Aktuelle Version";
|
||||||
|
|
||||||
|
/* Class = "NSButtonCell"; title = "Done"; ObjectID = "j9a-fn-Pye"; */
|
||||||
|
"j9a-fn-Pye.title" = "Fertig";
|
||||||
|
|
||||||
|
/* Class = "NSTextFieldCell"; title = "Last updated:"; ObjectID = "ntD-sJ-NRw"; */
|
||||||
|
"ntD-sJ-NRw.title" = "Letze Aktualisierung:";
|
||||||
|
|
||||||
|
/* Class = "NSTableColumn"; headerCell.title = "Plugin"; ObjectID = "Nzo-rR-Hfx"; */
|
||||||
|
"Nzo-rR-Hfx.headerCell.title" = "Plugin";
|
||||||
|
|
||||||
|
/* Class = "NSButtonCell"; title = "Refresh"; ObjectID = "NZw-nO-lZ3"; */
|
||||||
|
"NZw-nO-lZ3.title" = "Aktualisieren";
|
||||||
|
|
||||||
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "4"; */
|
/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "4"; */
|
||||||
"4.title" = "OtherViews";
|
"4.title" = "OtherViews";
|
||||||
|
|
||||||
@@ -13,3 +12,4 @@
|
|||||||
|
|
||||||
/* Class = "NSTextFieldCell"; title = "Not all Information inside your current database can be stored with this format."; ObjectID = "52"; */
|
/* Class = "NSTextFieldCell"; title = "Not all Information inside your current database can be stored with this format."; ObjectID = "52"; */
|
||||||
"52.title" = "Es können nicht alle Informationen der Datenbank in diesem Format gespeichert werden.";
|
"52.title" = "Es können nicht alle Informationen der Datenbank in diesem Format gespeichert werden.";
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
|
/* Class = "NSButtonCell"; title = "Hide application after copying to clipboard "; ObjectID = "1Vr-nY-Ogv"; */
|
||||||
|
"1Vr-nY-Ogv.title" = "MacPass nach dem jedem Kopieren in die Zwischenablage ausblenden";
|
||||||
|
|
||||||
/* Class = "NSBox"; title = "Entry Table"; ObjectID = "2"; */
|
/* Class = "NSBox"; title = "Entry Table"; ObjectID = "2"; */
|
||||||
"2.title" = "Passwort-Tabelle";
|
"2.title" = "Passwort-Tabelle";
|
||||||
|
|
||||||
@@ -31,6 +34,9 @@
|
|||||||
/* Class = "NSMenuItem"; title = "Item 2"; ObjectID = "gej-kA-GzQ"; */
|
/* Class = "NSMenuItem"; title = "Item 2"; ObjectID = "gej-kA-GzQ"; */
|
||||||
"gej-kA-GzQ.title" = "Item 2";
|
"gej-kA-GzQ.title" = "Item 2";
|
||||||
|
|
||||||
|
/* Class = "NSBox"; title = "Clipboard"; ObjectID = "Kff-Xp-hAT"; */
|
||||||
|
"Kff-Xp-hAT.title" = "Zwischenablage";
|
||||||
|
|
||||||
/* Class = "NSButtonCell"; title = "Update password for new entries"; ObjectID = "RaM-t2-DVR"; */
|
/* Class = "NSButtonCell"; title = "Update password for new entries"; ObjectID = "RaM-t2-DVR"; */
|
||||||
"RaM-t2-DVR.title" = "Passwörter für neue Einträge aktualisieren";
|
"RaM-t2-DVR.title" = "Passwörter für neue Einträge aktualisieren";
|
||||||
|
|
||||||
|
|||||||
@@ -1,18 +1,7 @@
|
|||||||
|
|
||||||
/* Class = "NSWindow"; title = "Window"; ObjectID = "1"; */
|
/* Class = "NSWindow"; title = "Window"; ObjectID = "1"; */
|
||||||
"1.title" = "Window";
|
"1.title" = "Window";
|
||||||
|
|
||||||
/* Class = "NSTextFieldCell"; title = "Threads"; ObjectID = "2QI-ne-N5d"; */
|
|
||||||
"2QI-ne-N5d.title" = "Threads";
|
|
||||||
|
|
||||||
/* Class = "NSTextFieldCell"; title = "Iterations"; ObjectID = "2ZA-Gc-JdZ"; */
|
|
||||||
"2ZA-Gc-JdZ.title" = "Iterations";
|
|
||||||
|
|
||||||
/* Class = "NSTextFieldCell"; title = "Enforce key change"; ObjectID = "5QH-N1-FHK"; */
|
|
||||||
"5QH-N1-FHK.title" = "Enforce key change";
|
|
||||||
|
|
||||||
/* Class = "NSTabViewItem"; label = "Argon2"; ObjectID = "6qB-sH-9FI"; */
|
|
||||||
"6qB-sH-9FI.label" = "Argon2";
|
|
||||||
|
|
||||||
/* Class = "NSTextFieldCell"; title = "Database name:"; ObjectID = "190"; */
|
/* Class = "NSTextFieldCell"; title = "Database name:"; ObjectID = "190"; */
|
||||||
"190.title" = "Database name:";
|
"190.title" = "Database name:";
|
||||||
|
|
||||||
@@ -73,18 +62,39 @@
|
|||||||
/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "1740"; */
|
/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "1740"; */
|
||||||
"1740.title" = "OtherViews";
|
"1740.title" = "OtherViews";
|
||||||
|
|
||||||
/* Class = "NSTextFieldCell"; title = "File format:"; ObjectID = "bTk-YZ-x0G"; */
|
/* Class = "NSTextFieldCell"; title = "Threads"; ObjectID = "2QI-ne-N5d"; */
|
||||||
"bTk-YZ-x0G.title" = "File format:";
|
"2QI-ne-N5d.title" = "Threads";
|
||||||
|
|
||||||
|
/* Class = "NSTextFieldCell"; title = "Iterations"; ObjectID = "2ZA-Gc-JdZ"; */
|
||||||
|
"2ZA-Gc-JdZ.title" = "Iterations";
|
||||||
|
|
||||||
|
/* Class = "NSTextFieldCell"; title = "Enforce key change"; ObjectID = "5QH-N1-FHK"; */
|
||||||
|
"5QH-N1-FHK.title" = "Enforce key change";
|
||||||
|
|
||||||
|
/* Class = "NSTabViewItem"; label = "Argon2"; ObjectID = "6qB-sH-9FI"; */
|
||||||
|
"6qB-sH-9FI.label" = "Argon2";
|
||||||
|
|
||||||
/* Class = "NSButtonCell"; title = "Recommend key change"; ObjectID = "CtU-Eq-dgy"; */
|
/* Class = "NSButtonCell"; title = "Recommend key change"; ObjectID = "CtU-Eq-dgy"; */
|
||||||
"CtU-Eq-dgy.title" = "Recommend key change";
|
"CtU-Eq-dgy.title" = "Recommend key change";
|
||||||
|
|
||||||
/* Class = "NSTabViewItem"; label = "Aes"; ObjectID = "ft1-pl-lpO"; */
|
|
||||||
"ft1-pl-lpO.label" = "Aes";
|
|
||||||
|
|
||||||
/* Class = "NSTextFieldCell"; title = "Algorithm"; ObjectID = "GVd-KH-pHc"; */
|
/* Class = "NSTextFieldCell"; title = "Algorithm"; ObjectID = "GVd-KH-pHc"; */
|
||||||
"GVd-KH-pHc.title" = "Algorithm";
|
"GVd-KH-pHc.title" = "Algorithm";
|
||||||
|
|
||||||
|
/* Class = "NSButtonCell"; title = "Generate Parameters"; ObjectID = "PoI-Er-Y8P"; */
|
||||||
|
"PoI-Er-Y8P.title" = "Generate Parameters";
|
||||||
|
|
||||||
|
/* Class = "NSTextFieldCell"; title = "VersionInfo"; ObjectID = "Ush-4r-A1A"; */
|
||||||
|
"Ush-4r-A1A.title" = "VersionInfo";
|
||||||
|
|
||||||
|
/* Class = "NSTextFieldCell"; title = "Recommend key change"; ObjectID = "Xib-Fn-sqx"; */
|
||||||
|
"Xib-Fn-sqx.title" = "Recommend key change";
|
||||||
|
|
||||||
|
/* Class = "NSTextFieldCell"; title = "File format:"; ObjectID = "bTk-YZ-x0G"; */
|
||||||
|
"bTk-YZ-x0G.title" = "File format:";
|
||||||
|
|
||||||
|
/* Class = "NSTabViewItem"; label = "Aes"; ObjectID = "ft1-pl-lpO"; */
|
||||||
|
"ft1-pl-lpO.label" = "Aes";
|
||||||
|
|
||||||
/* Class = "NSTextFieldCell"; title = "Encryption:"; ObjectID = "gxY-UL-bEG"; */
|
/* Class = "NSTextFieldCell"; title = "Encryption:"; ObjectID = "gxY-UL-bEG"; */
|
||||||
"gxY-UL-bEG.title" = "Encryption:";
|
"gxY-UL-bEG.title" = "Encryption:";
|
||||||
|
|
||||||
@@ -100,18 +110,8 @@
|
|||||||
/* Class = "NSBox"; title = "Key derivation"; ObjectID = "pbl-Mb-r8V"; */
|
/* Class = "NSBox"; title = "Key derivation"; ObjectID = "pbl-Mb-r8V"; */
|
||||||
"pbl-Mb-r8V.title" = "Key derivation";
|
"pbl-Mb-r8V.title" = "Key derivation";
|
||||||
|
|
||||||
/* Class = "NSButtonCell"; title = "Generate Parameters"; ObjectID = "PoI-Er-Y8P"; */
|
|
||||||
"PoI-Er-Y8P.title" = "Generate Parameters";
|
|
||||||
|
|
||||||
/* Class = "NSTextFieldCell"; title = "VersionInfo"; ObjectID = "Ush-4r-A1A"; */
|
|
||||||
"Ush-4r-A1A.title" = "VersionInfo";
|
|
||||||
|
|
||||||
/* Class = "NSTextFieldCell"; title = "Rounds"; ObjectID = "uUQ-9s-M5E"; */
|
/* Class = "NSTextFieldCell"; title = "Rounds"; ObjectID = "uUQ-9s-M5E"; */
|
||||||
"uUQ-9s-M5E.title" = "Rounds";
|
"uUQ-9s-M5E.title" = "Rounds";
|
||||||
|
|
||||||
/* Class = "NSTextFieldCell"; title = "Recommend key change"; ObjectID = "Xib-Fn-sqx"; */
|
|
||||||
"Xib-Fn-sqx.title" = "Recommend key change";
|
|
||||||
|
|
||||||
/* Class = "NSButtonCell"; title = "Force key change"; ObjectID = "z6u-YT-7LE"; */
|
/* Class = "NSButtonCell"; title = "Force key change"; ObjectID = "z6u-YT-7LE"; */
|
||||||
"z6u-YT-7LE.title" = "Force key change";
|
"z6u-YT-7LE.title" = "Force key change";
|
||||||
|
|
||||||
|
|||||||
@@ -62,8 +62,8 @@
|
|||||||
/* Class = "NSButtonCell"; title = "Lock after log out"; ObjectID = "Dzn-9R-JjE"; */
|
/* Class = "NSButtonCell"; title = "Lock after log out"; ObjectID = "Dzn-9R-JjE"; */
|
||||||
"Dzn-9R-JjE.title" = "Lock after log out";
|
"Dzn-9R-JjE.title" = "Lock after log out";
|
||||||
|
|
||||||
/* Class = "NSTextFieldCell"; title = "Disabling this compromises security. If disabled, anything copied to the Clipboard in MacPass will be available on your connected iOS devices. You should clear the clipboard on those devices manually."; ObjectID = "JGX-Tp-KJk"; */
|
/* Class = "NSTextFieldCell"; title = "Disabling this compromises security. If enabled, anything copied to the Clipboard in MacPass will be available on your connected iOS devices. You should clear the clipboard on those devices manually."; ObjectID = "JGX-Tp-KJk"; */
|
||||||
"JGX-Tp-KJk.title" = "Disabling this compromises security. If disabled, anything copied to the Clipboard in MacPass will be available on your connected iOS devices. You should clear the clipboard on those devices manually.";
|
"JGX-Tp-KJk.title" = "Disabling this compromises security. If enabled, anything copied to the Clipboard in MacPass will be available on your connected iOS devices. You should clear the clipboard on those devices manually.";
|
||||||
|
|
||||||
/* Class = "NSTextFieldCell"; title = "If file changes:"; ObjectID = "QrK-hM-Xt1"; */
|
/* Class = "NSTextFieldCell"; title = "If file changes:"; ObjectID = "QrK-hM-Xt1"; */
|
||||||
"QrK-hM-Xt1.title" = "If file changes:";
|
"QrK-hM-Xt1.title" = "If file changes:";
|
||||||
@@ -73,3 +73,9 @@
|
|||||||
|
|
||||||
/* Class = "NSButtonCell"; title = "Remember Keyfile for Databases"; ObjectID = "r6q-He-nYU"; */
|
/* Class = "NSButtonCell"; title = "Remember Keyfile for Databases"; ObjectID = "r6q-He-nYU"; */
|
||||||
"r6q-He-nYU.title" = "Remember Keyfile for Databases";
|
"r6q-He-nYU.title" = "Remember Keyfile for Databases";
|
||||||
|
|
||||||
|
/* Class = "NSButtonCell"; title = "Enable Autosave"; ObjectID = "wG7-bi-2fi"; */
|
||||||
|
"wG7-bi-2fi.title" = "Enable Autosave";
|
||||||
|
|
||||||
|
/* Class = "NSTextFieldCell"; title = "Close and open all documents for changes to take effect"; ObjectID = "ya5-ps-c4W"; */
|
||||||
|
"ya5-ps-c4W.title" = "Close and open all documents for changes to take effect";
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
|
||||||
/* Class = "NSButtonCell"; title = "Enable global Autotype"; ObjectID = "1qb-Rd-jYu"; */
|
/* Class = "NSButtonCell"; title = "Enable global Autotype"; ObjectID = "1qb-Rd-jYu"; */
|
||||||
"1qb-Rd-jYu.title" = "Enable global Autotype";
|
"1qb-Rd-jYu.title" = "Enable global Autotype";
|
||||||
|
|
||||||
@@ -10,29 +11,23 @@
|
|||||||
/* Class = "NSButtonCell"; title = "Enable Quicklook Preview"; ObjectID = "ERs-ct-Eyx"; */
|
/* Class = "NSButtonCell"; title = "Enable Quicklook Preview"; ObjectID = "ERs-ct-Eyx"; */
|
||||||
"ERs-ct-Eyx.title" = "Enable Quicklook Preview";
|
"ERs-ct-Eyx.title" = "Enable Quicklook Preview";
|
||||||
|
|
||||||
/* Class = "NSTextFieldCell"; title = "Autotype is not available, because MacPass is not allowed to control your computer. To enable Autotype, go to the Security and Privacy Preferences and add MacPass to the Accessibilty group. Changes require a restart of MacPass."; ObjectID = "H37-ku-aTc"; */
|
/* Class = "NSTextFieldCell"; title = "Autotype might not work properly. Some issues where found that prevent Autotype or Global Autotype to work. Please run the Autotype Doctor to fix those issues."; ObjectID = "H37-ku-aTc"; */
|
||||||
"H37-ku-aTc.title" = "Autotype is not available, because MacPass is not allowed to control your computer. To enable Autotype, go to the Security and Privacy Preferences and add MacPass to the Accessibilty group. Changes require a restart of MacPass.";
|
"H37-ku-aTc.title" = "Autotype might not work properly. Some issues where found that prevent Autotype or Global Autotype to work. Please run the Autotype Doctor to fix those issues.";
|
||||||
|
|
||||||
/* Class = "NSTextFieldCell"; title = "Shortcut is missing Key"; ObjectID = "Lxp-wI-yQy"; */
|
/* Class = "NSTextFieldCell"; title = "Shortcut is missing Key"; ObjectID = "Lxp-wI-yQy"; */
|
||||||
"Lxp-wI-yQy.title" = "Shortcut is missing Key";
|
"Lxp-wI-yQy.title" = "Shortcut is missing Key";
|
||||||
|
|
||||||
/* Class = "NSButtonCell"; title = "Open Preferences…"; ObjectID = "NP0-R3-m6n"; */
|
/* Class = "NSButtonCell"; title = "Run Autotype Doctor…"; ObjectID = "NP0-R3-m6n"; */
|
||||||
"NP0-R3-m6n.title" = "Open Preferences…";
|
"NP0-R3-m6n.title" = "Run Autotype Doctor…";
|
||||||
|
|
||||||
/* Class = "NSBox"; title = "Autotype"; ObjectID = "P9N-HM-wER"; */
|
/* Class = "NSBox"; title = "Autotype"; ObjectID = "P9N-HM-wER"; */
|
||||||
"P9N-HM-wER.title" = "Autotype";
|
"P9N-HM-wER.title" = "Autotype";
|
||||||
|
|
||||||
/* Class = "NSButtonCell"; title = "Interpret ⌃ as ⌘"; ObjectID = "QfO-yG-l3F"; */
|
|
||||||
"QfO-yG-l3F.title" = "Interpret ⌃ as ⌘";
|
|
||||||
|
|
||||||
/* Class = "NSTextFieldCell"; title = "If enabled, every {CONTROL} command will be sent as ⌘. Only disable this if you are sure you need to."; ObjectID = "QRy-CY-ENC"; */
|
/* Class = "NSTextFieldCell"; title = "If enabled, every {CONTROL} command will be sent as ⌘. Only disable this if you are sure you need to."; ObjectID = "QRy-CY-ENC"; */
|
||||||
"QRy-CY-ENC.title" = "If enabled, every {CONTROL} command will be sent as ⌘. Only disable this if you are sure you need to.";
|
"QRy-CY-ENC.title" = "If enabled, every {CONTROL} command will be sent as ⌘. Only disable this if you are sure you need to.";
|
||||||
|
|
||||||
/* Class = "NSButtonCell"; title = "Include Entry Tags for matches"; ObjectID = "rbu-G7-MT8"; */
|
/* Class = "NSButtonCell"; title = "Interpret ⌃ as ⌘"; ObjectID = "QfO-yG-l3F"; */
|
||||||
"rbu-G7-MT8.title" = "Include Entry Tags for matches";
|
"QfO-yG-l3F.title" = "Interpret ⌃ as ⌘";
|
||||||
|
|
||||||
/* Class = "NSButtonCell"; title = "Include Entry Title for matches"; ObjectID = "tmL-dT-D0G"; */
|
|
||||||
"tmL-dT-D0G.title" = "Include Entry Title for matches";
|
|
||||||
|
|
||||||
/* Class = "NSButtonCell"; title = "Include Entry URL for matches"; ObjectID = "TzR-00-Vp3"; */
|
/* Class = "NSButtonCell"; title = "Include Entry URL for matches"; ObjectID = "TzR-00-Vp3"; */
|
||||||
"TzR-00-Vp3.title" = "Include Entry URL for matches";
|
"TzR-00-Vp3.title" = "Include Entry URL for matches";
|
||||||
@@ -43,3 +38,8 @@
|
|||||||
/* Class = "NSTextFieldCell"; title = "If enabled attached files will be copied to a temporary location for preview and deleted after the preview is closed."; ObjectID = "WmI-IB-Aso"; */
|
/* Class = "NSTextFieldCell"; title = "If enabled attached files will be copied to a temporary location for preview and deleted after the preview is closed."; ObjectID = "WmI-IB-Aso"; */
|
||||||
"WmI-IB-Aso.title" = "If enabled attached files will be copied to a temporary location for preview and deleted after the preview is closed.";
|
"WmI-IB-Aso.title" = "If enabled attached files will be copied to a temporary location for preview and deleted after the preview is closed.";
|
||||||
|
|
||||||
|
/* Class = "NSButtonCell"; title = "Include Entry Tags for matches"; ObjectID = "rbu-G7-MT8"; */
|
||||||
|
"rbu-G7-MT8.title" = "Include Entry Tags for matches";
|
||||||
|
|
||||||
|
/* Class = "NSButtonCell"; title = "Include Entry Title for matches"; ObjectID = "tmL-dT-D0G"; */
|
||||||
|
"tmL-dT-D0G.title" = "Include Entry Title for matches";
|
||||||
|
|||||||
@@ -113,6 +113,12 @@
|
|||||||
/* Menu item for automatic trash creation */
|
/* Menu item for automatic trash creation */
|
||||||
"AUTOCREATE_TRASH_FOLDER" = "Create Automatically";
|
"AUTOCREATE_TRASH_FOLDER" = "Create Automatically";
|
||||||
|
|
||||||
|
/* Message text in the autotype selection window. Placeholder is %1 - windowTitle */
|
||||||
|
"AUTOTYPE_CANDIDATE_SELECTION_WINDOW_MESSAGE_%@" = "There are multiple matches for the current window: %@. Please select which match should be used.";
|
||||||
|
|
||||||
|
/* Window title for the stand-alone password creator window */
|
||||||
|
"AUTOTYPE_DOCTOR_RESULTS_WINDOW_TITLE" = "Autotype Doctor";
|
||||||
|
|
||||||
/* Inherit autotype settings menu item */
|
/* Inherit autotype settings menu item */
|
||||||
"AUTOTYPE_INHERIT" = "Inherit Autotype Settings";
|
"AUTOTYPE_INHERIT" = "Inherit Autotype Settings";
|
||||||
|
|
||||||
@@ -122,8 +128,8 @@
|
|||||||
/* Disable autotype menu item */
|
/* Disable autotype menu item */
|
||||||
"AUTOTYPE_NO" = "Disable Autotype";
|
"AUTOTYPE_NO" = "Disable Autotype";
|
||||||
|
|
||||||
/* Notification: Autotype failed, MacPass has no permission to send key strokes */
|
/* Notification: Autotype failed, MacPass has not enough permissions to perform autotype */
|
||||||
"AUTOTYPE_NOTIFICATION_MACPASS_HAS_NO_ACCESSIBILTY_PERMISSIONS" = "Autotype disabled because of missing accessibilty access.";
|
"AUTOTYPE_NOTIFICATION_MACPASS_IS_MISSING_PERMISSIONS" = "MacPass does not have all necessary permissions to perform Autotype.";
|
||||||
|
|
||||||
/* Notification: Autotype failed, no documents are open */
|
/* Notification: Autotype failed, no documents are open */
|
||||||
"AUTOTYPE_OVERLAY_NO_DOCUMENTS" = "Please open a database file to use Global Autotype!";
|
"AUTOTYPE_OVERLAY_NO_DOCUMENTS" = "Please open a database file to use Global Autotype!";
|
||||||
@@ -134,6 +140,18 @@
|
|||||||
/* Notification: Autotype found a single match for %@ (string placeholder). */
|
/* Notification: Autotype found a single match for %@ (string placeholder). */
|
||||||
"AUTOTYPE_OVERLAY_SINGLE_MATCH_FOR_%@" = "Found Match for %@!";
|
"AUTOTYPE_OVERLAY_SINGLE_MATCH_FOR_%@" = "Found Match for %@!";
|
||||||
|
|
||||||
|
/* Status lable when no issue were found in accessibilty */
|
||||||
|
"AUTOTYPE_STATUS_ACCESSIBILTY_PERMISSIONS_OK" = "MacPass has permission to control your computer (Accessibilty)";
|
||||||
|
|
||||||
|
/* Status MacPass has no accessibilty permissions */
|
||||||
|
"AUTOTYPE_STATUS_NO_ACCESSIBILTY_PERMISSIONS" = "MacPass has no permission to control your computer (Accessibilty)";
|
||||||
|
|
||||||
|
/* Status MacPass has no screen recording permissions */
|
||||||
|
"AUTOTYPE_STATUS_NO_SCREEN_RECORDING_PERMISSIONS" = "MacPass has no permission to record your screen";
|
||||||
|
|
||||||
|
/* Status lable when no issue were found in screen recording permissions */
|
||||||
|
"AUTOTYPE_STATUS_SCREEN_RECORDING_PERMISSIONS_OK" = "MacPass has permission to record your screen";
|
||||||
|
|
||||||
/* Notficication: Autotype timed out */
|
/* Notficication: Autotype timed out */
|
||||||
"AUTOTYPE_TIMED_OUT" = "Autotype timed out.";
|
"AUTOTYPE_TIMED_OUT" = "Autotype timed out.";
|
||||||
|
|
||||||
@@ -337,6 +355,12 @@
|
|||||||
/* Error description given when adding an invalid plugin */
|
/* Error description given when adding an invalid plugin */
|
||||||
"ERROR_INVALID_PLUGIN" = "Invalid plugin";
|
"ERROR_INVALID_PLUGIN" = "Invalid plugin";
|
||||||
|
|
||||||
|
/* Error description for missing accessibilty permissions */
|
||||||
|
"ERROR_NO_ACCESSIBILTY_PERMISSIONS" = "MacPass has no permission to control your computer (Accessibilty)";
|
||||||
|
|
||||||
|
/* Error description for missing screen recording permissions */
|
||||||
|
"ERROR_NO_PERMISSION_TO_RECORD_SCREEN" = "MacPass has no permission to record your screen";
|
||||||
|
|
||||||
/* Passwords do not match */
|
/* Passwords do not match */
|
||||||
"ERROR_PASSWORD_MISSMATCH" = "Passwords do not match!";
|
"ERROR_PASSWORD_MISSMATCH" = "Passwords do not match!";
|
||||||
|
|
||||||
@@ -498,9 +522,6 @@
|
|||||||
/* Action button in Notification to open a document */
|
/* Action button in Notification to open a document */
|
||||||
"OPEN_DOCUMENT" = "Open Document";
|
"OPEN_DOCUMENT" = "Open Document";
|
||||||
|
|
||||||
/* Action button in Notification to show the Accessibilty preferences */
|
|
||||||
"OPEN_PREFERENCES" = "Open Accessiblity Preferences…";
|
|
||||||
|
|
||||||
/* Menu item to open the URL with the default application */
|
/* Menu item to open the URL with the default application */
|
||||||
"OPEN_URL" = "Open URL";
|
"OPEN_URL" = "Open URL";
|
||||||
|
|
||||||
@@ -672,6 +693,9 @@
|
|||||||
/* Checkbox in dialog to set the selection as default file change strategy! */
|
/* Checkbox in dialog to set the selection as default file change strategy! */
|
||||||
"SET_AS_DEFAULT_FILE_CHANGE_STRATEGY" = "Use this method as default. You can change this at any time in the preferences.";
|
"SET_AS_DEFAULT_FILE_CHANGE_STRATEGY" = "Use this method as default. You can change this at any time in the preferences.";
|
||||||
|
|
||||||
|
/* Action button in Notification to show the Autotype Doctor */
|
||||||
|
"SHOW_AUTOTYPE_DOCTOR" = "Show Autotype Doctor";
|
||||||
|
|
||||||
/* Menu item to show the history of the selected entry
|
/* Menu item to show the history of the selected entry
|
||||||
Toolbar item to toggle history display */
|
Toolbar item to toggle history display */
|
||||||
"SHOW_HISTORY" = "Show History";
|
"SHOW_HISTORY" = "Show History";
|
||||||
@@ -688,6 +712,42 @@
|
|||||||
/* Toolbar item to perform autotype */
|
/* Toolbar item to perform autotype */
|
||||||
"TOOLBAR_PERFORM_AUTOTYPE_FOR_ENTRY" = "Autotype";
|
"TOOLBAR_PERFORM_AUTOTYPE_FOR_ENTRY" = "Autotype";
|
||||||
|
|
||||||
|
/* Touchbar button label for choosing the keyfile */
|
||||||
|
"TOUCHBAR_CHOOSE_KEYFILE" = "Choose Keyfile";
|
||||||
|
|
||||||
|
/* Touchbar button label for copying the password */
|
||||||
|
"TOUCHBAR_COPY_PASSWORD" = "Copy Password";
|
||||||
|
|
||||||
|
/* Touchbar button label for copying the username */
|
||||||
|
"TOUCHBAR_COPY_USERNAME" = "Copy Username";
|
||||||
|
|
||||||
|
/* Touchbar button label for deleting elements */
|
||||||
|
"TOUCHBAR_DELETE" = "Delete";
|
||||||
|
|
||||||
|
/* Touchbar button label for opening the popover to edit */
|
||||||
|
"TOUCHBAR_EDIT" = "Edit";
|
||||||
|
|
||||||
|
/* Touchbar button label for locking the database */
|
||||||
|
"TOUCHBAR_LOCK_DATABASE" = "Lock Database";
|
||||||
|
|
||||||
|
/* Touchbar button label for creating a new item */
|
||||||
|
"TOUCHBAR_NEW_ENTRY" = "New Entry";
|
||||||
|
|
||||||
|
/* Touchbar button label for creating a new group */
|
||||||
|
"TOUCHBAR_NEW_GROUP" = "New Group";
|
||||||
|
|
||||||
|
/* Touchbar button label for performing autotype */
|
||||||
|
"TOUCHBAR_PERFORM_AUTOTYPE" = "Perform Autotype";
|
||||||
|
|
||||||
|
/* Touchbar button label for searching the database */
|
||||||
|
"TOUCHBAR_SEARCH" = "Search Database";
|
||||||
|
|
||||||
|
/* Touchbar button label for showing the password */
|
||||||
|
"TOUCHBAR_SHOW_PASSWORD" = "Show Password";
|
||||||
|
|
||||||
|
/* Touchbar button label for unlocking the database */
|
||||||
|
"TOUCHBAR_UNLOCK_DATABASE" = "Unlock Database";
|
||||||
|
|
||||||
/* Move Entry to Trash */
|
/* Move Entry to Trash */
|
||||||
"TRASH_ENTRY" = "Trash Entry";
|
"TRASH_ENTRY" = "Trash Entry";
|
||||||
|
|
||||||
|
|||||||
BIN
MacPass/en.lproj/Localizable.strings.updated
Normal file
BIN
MacPass/en.lproj/Localizable.strings.updated
Normal file
Binary file not shown.
@@ -1,9 +1,7 @@
|
|||||||
|
|
||||||
/* Class = "NSBox"; title = "Entry Table"; ObjectID = "2"; */
|
/* Class = "NSBox"; title = "Entry Table"; ObjectID = "2"; */
|
||||||
"2.title" = "Entry Table";
|
"2.title" = "Entry Table";
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "Default Browser"; ObjectID = "7YX-EA-9KA"; */
|
|
||||||
"7YX-EA-9KA.title" = "Default Browser";
|
|
||||||
|
|
||||||
/* Class = "NSTextFieldCell"; title = "Double-click on URL:"; ObjectID = "10"; */
|
/* Class = "NSTextFieldCell"; title = "Double-click on URL:"; ObjectID = "10"; */
|
||||||
"10.title" = "Double-click on URL:";
|
"10.title" = "Double-click on URL:";
|
||||||
|
|
||||||
@@ -28,21 +26,29 @@
|
|||||||
/* Class = "NSMenuItem"; title = "Opens Inspector"; ObjectID = "44"; */
|
/* Class = "NSMenuItem"; title = "Opens Inspector"; ObjectID = "44"; */
|
||||||
"44.title" = "Opens Inspector";
|
"44.title" = "Opens Inspector";
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "Item 2"; ObjectID = "gej-kA-GzQ"; */
|
/* Class = "NSButtonCell"; title = "Hide application after copying to clipboard "; ObjectID = "1Vr-nY-Ogv"; */
|
||||||
"gej-kA-GzQ.title" = "Item 2";
|
"1Vr-nY-Ogv.title" = "Hide application after copying to clipboard ";
|
||||||
|
|
||||||
|
/* Class = "NSMenuItem"; title = "Default Browser"; ObjectID = "7YX-EA-9KA"; */
|
||||||
|
"7YX-EA-9KA.title" = "Default Browser";
|
||||||
|
|
||||||
|
/* Class = "NSBox"; title = "Clipboard"; ObjectID = "Kff-Xp-hAT"; */
|
||||||
|
"Kff-Xp-hAT.title" = "Clipboard";
|
||||||
|
|
||||||
/* Class = "NSButtonCell"; title = "Update password for new entries"; ObjectID = "RaM-t2-DVR"; */
|
/* Class = "NSButtonCell"; title = "Update password for new entries"; ObjectID = "RaM-t2-DVR"; */
|
||||||
"RaM-t2-DVR.title" = "Update password for new entries";
|
"RaM-t2-DVR.title" = "Update password for new entries";
|
||||||
|
|
||||||
/* Class = "NSTextFieldCell"; title = "Open URLs in:"; ObjectID = "soD-wI-YOH"; */
|
|
||||||
"soD-wI-YOH.title" = "Open URLs in:";
|
|
||||||
|
|
||||||
/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "XgO-Tj-QjO"; */
|
/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "XgO-Tj-QjO"; */
|
||||||
"XgO-Tj-QjO.title" = "OtherViews";
|
"XgO-Tj-QjO.title" = "OtherViews";
|
||||||
|
|
||||||
/* Class = "NSBox"; title = "Templates"; ObjectID = "Xvt-tP-TbR"; */
|
/* Class = "NSBox"; title = "Templates"; ObjectID = "Xvt-tP-TbR"; */
|
||||||
"Xvt-tP-TbR.title" = "Templates";
|
"Xvt-tP-TbR.title" = "Templates";
|
||||||
|
|
||||||
|
/* Class = "NSMenuItem"; title = "Item 2"; ObjectID = "gej-kA-GzQ"; */
|
||||||
|
"gej-kA-GzQ.title" = "Item 2";
|
||||||
|
|
||||||
|
/* Class = "NSTextFieldCell"; title = "Open URLs in:"; ObjectID = "soD-wI-YOH"; */
|
||||||
|
"soD-wI-YOH.title" = "Open URLs in:";
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "Item 3"; ObjectID = "zC2-cM-KDv"; */
|
/* Class = "NSMenuItem"; title = "Item 3"; ObjectID = "zC2-cM-KDv"; */
|
||||||
"zC2-cM-KDv.title" = "Item 3";
|
"zC2-cM-KDv.title" = "Item 3";
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user