Date parsing works, but too many false positives
This commit is contained in:
parent
e9e87825ed
commit
5f00a54b60
|
@ -26,6 +26,7 @@
|
|||
950BB7AA13F46BAF00D8E669 /* MAAddMediaSheet.mm in Sources */ = {isa = PBXBuildFile; fileRef = 950BB7A913F46BAF00D8E669 /* MAAddMediaSheet.mm */; };
|
||||
950BB7AD13F46ECF00D8E669 /* MAAppController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 950BB7AC13F46ECF00D8E669 /* MAAppController.mm */; };
|
||||
9556F185140426EB00B81D2E /* MAToolbarButton.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9556F184140426EB00B81D2E /* MAToolbarButton.mm */; };
|
||||
958AAE3414052FC600365087 /* DateHypotheses.plist in Resources */ = {isa = PBXBuildFile; fileRef = 958AAE3314052FC600365087 /* DateHypotheses.plist */; };
|
||||
95BCFA2113F76A04000F650F /* app.icns in Resources */ = {isa = PBXBuildFile; fileRef = 95BCFA1F13F76A04000F650F /* app.icns */; };
|
||||
95BCFA2213F76A04000F650F /* doc.icns in Resources */ = {isa = PBXBuildFile; fileRef = 95BCFA2013F76A04000F650F /* doc.icns */; };
|
||||
95BCFA2E13F8A3AD000F650F /* MAShortenQTTime.mm in Sources */ = {isa = PBXBuildFile; fileRef = 95BCFA2D13F8A3AD000F650F /* MAShortenQTTime.mm */; };
|
||||
|
@ -80,6 +81,7 @@
|
|||
950BB7AC13F46ECF00D8E669 /* MAAppController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MAAppController.mm; sourceTree = "<group>"; };
|
||||
9556F183140426EB00B81D2E /* MAToolbarButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MAToolbarButton.h; sourceTree = "<group>"; };
|
||||
9556F184140426EB00B81D2E /* MAToolbarButton.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MAToolbarButton.mm; sourceTree = "<group>"; };
|
||||
958AAE3314052FC600365087 /* DateHypotheses.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = DateHypotheses.plist; path = Medianno/Resources/DateHypotheses.plist; sourceTree = "<group>"; };
|
||||
95BCFA1F13F76A04000F650F /* app.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = app.icns; path = Resources/app.icns; sourceTree = "<group>"; };
|
||||
95BCFA2013F76A04000F650F /* doc.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = doc.icns; path = Resources/doc.icns; sourceTree = "<group>"; };
|
||||
95BCFA2C13F8A3AD000F650F /* MAShortenQTTime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MAShortenQTTime.h; sourceTree = "<group>"; };
|
||||
|
@ -164,16 +166,6 @@
|
|||
950BB67113F1F26200D8E669 /* Supporting Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
95D803AE140355E6000C0779 /* custom.icns */,
|
||||
95D803AF140355E6000C0779 /* print.icns */,
|
||||
95D803AC1403505F000C0779 /* del.icns */,
|
||||
95D803AA14034E5F000C0779 /* anno.icns */,
|
||||
95D803A1140344CF000C0779 /* fwd.icns */,
|
||||
95D803A2140344CF000C0779 /* pause.icns */,
|
||||
95D803A3140344CF000C0779 /* play.icns */,
|
||||
95D803A4140344CF000C0779 /* rev.icns */,
|
||||
95BCFA1F13F76A04000F650F /* app.icns */,
|
||||
95BCFA2013F76A04000F650F /* doc.icns */,
|
||||
950BB67213F1F26200D8E669 /* Medianno-Info.plist */,
|
||||
950BB67313F1F26200D8E669 /* InfoPlist.strings */,
|
||||
950BB67613F1F26200D8E669 /* main.m */,
|
||||
|
@ -187,11 +179,13 @@
|
|||
950BB7AE13F47FCA00D8E669 /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
958AAE3214052F7400365087 /* Icons */,
|
||||
950BB67F13F1F26200D8E669 /* MADocument.xib */,
|
||||
950BB7A513F467A400D8E669 /* MAAddMedia.xib */,
|
||||
950BB68213F1F26200D8E669 /* MainMenu.xib */,
|
||||
95E2027F13FE9C6C00369B31 /* MAMovie.xib */,
|
||||
95CB6973140012FE005A0346 /* MATag.xib */,
|
||||
958AAE3314052FC600365087 /* DateHypotheses.plist */,
|
||||
);
|
||||
name = Resources;
|
||||
path = ..;
|
||||
|
@ -244,6 +238,24 @@
|
|||
name = Classes;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
958AAE3214052F7400365087 /* Icons */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
95D803AE140355E6000C0779 /* custom.icns */,
|
||||
95D803AF140355E6000C0779 /* print.icns */,
|
||||
95D803AC1403505F000C0779 /* del.icns */,
|
||||
95D803AA14034E5F000C0779 /* anno.icns */,
|
||||
95D803A1140344CF000C0779 /* fwd.icns */,
|
||||
95D803A2140344CF000C0779 /* pause.icns */,
|
||||
95D803A3140344CF000C0779 /* play.icns */,
|
||||
95D803A4140344CF000C0779 /* rev.icns */,
|
||||
95BCFA1F13F76A04000F650F /* app.icns */,
|
||||
95BCFA2013F76A04000F650F /* doc.icns */,
|
||||
);
|
||||
name = Icons;
|
||||
path = Medianno;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
|
@ -313,6 +325,7 @@
|
|||
95D803AD1403505F000C0779 /* del.icns in Resources */,
|
||||
95D803B0140355E6000C0779 /* custom.icns in Resources */,
|
||||
95D803B1140355E6000C0779 /* print.icns in Resources */,
|
||||
958AAE3414052FC600365087 /* DateHypotheses.plist in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
|
@ -9,12 +9,16 @@
|
|||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
@interface MAAddMediaSheet : NSWindowController {
|
||||
IBOutlet NSMenu * dateFormatMenu;
|
||||
}
|
||||
|
||||
@property (readonly) NSArray * media;
|
||||
@property (readonly) NSArray * media;
|
||||
@property (readonly) NSArray * dateFormats;
|
||||
@property (assign) NSDictionary * selectedDateFormat;
|
||||
|
||||
- (void)runWithParentWindow:(NSWindowController *)parent media:(NSArray *)urls;
|
||||
|
||||
- (IBAction)useModificationDates:(id)sender;
|
||||
- (IBAction)useFileNameDates:(id)sender;
|
||||
|
||||
@end
|
||||
|
|
|
@ -12,17 +12,62 @@
|
|||
|
||||
@implementation MAAddMediaSheet
|
||||
|
||||
@synthesize media;
|
||||
static NSArray * sDateHypotheses;
|
||||
|
||||
@synthesize media, dateFormats, selectedDateFormat;
|
||||
|
||||
- (id)init
|
||||
{
|
||||
self = [super initWithWindowNibName:@"MAAddMedia"];
|
||||
|
||||
if (!sDateHypotheses)
|
||||
sDateHypotheses = [[NSArray alloc] initWithContentsOfURL:
|
||||
[[NSBundle mainBundle] URLForResource:@"DateHypotheses" withExtension:@"plist"]];
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)guessDateFormats:(NSArray *)urls
|
||||
{
|
||||
[self window];
|
||||
[self willChangeValueForKey:@"dateFormats"];
|
||||
[dateFormats release];
|
||||
dateFormats = nil;
|
||||
while ([dateFormatMenu numberOfItems] > 2)
|
||||
[dateFormatMenu removeItemAtIndex:2];
|
||||
|
||||
if (![urls count])
|
||||
return;
|
||||
|
||||
NSMutableArray * formats = [NSMutableArray array];
|
||||
|
||||
NSString * fileName = [[[urls objectAtIndex:0] lastPathComponent] stringByDeletingPathExtension];
|
||||
NSRange nameRange= NSMakeRange(0, [fileName length]);
|
||||
for (NSDictionary * hypo in sDateHypotheses) {
|
||||
NSRegularExpression * regexp =
|
||||
[NSRegularExpression regularExpressionWithPattern:[hypo objectForKey:@"regexp"] options:0 error:nil];
|
||||
NSTextCheckingResult* match = [regexp firstMatchInString:fileName options:0 range:nameRange];
|
||||
if (match && [match range].location != NSNotFound) {
|
||||
for (NSString * format in [hypo objectForKey:@"formats"]) {
|
||||
NSString * dateFormat = [regexp replacementStringForResult:match inString:fileName offset:0 template:format];
|
||||
NSString * dateTitle = [NSString stringWithFormat:NSLocalizedString(@"File Name Date", @"File Name yyyy-mm-dd"), dateFormat];
|
||||
NSMenuItem * item = [dateFormatMenu addItemWithTitle:dateTitle action:@selector(useFileNameDates:) keyEquivalent:@""];
|
||||
[item setTag:[formats count]];
|
||||
[formats addObject:[NSDictionary dictionaryWithObjectsAndKeys:
|
||||
dateFormat, @"format",
|
||||
regexp, @"regexp",
|
||||
nil]];
|
||||
}
|
||||
}
|
||||
}
|
||||
if ([formats count] > 0)
|
||||
dateFormats = [formats retain];
|
||||
[self didChangeValueForKey:@"dateFormats"];
|
||||
}
|
||||
|
||||
- (void)runWithParentWindow:(NSWindowController *)parent media:(NSArray *)mediaUrls
|
||||
{
|
||||
[self guessDateFormats:mediaUrls];
|
||||
NSMutableArray * m = [[NSMutableArray alloc] initWithCapacity:[mediaUrls count]];
|
||||
for (NSURL * url in mediaUrls)
|
||||
[m addObject:[NSMutableDictionary dictionaryWithObject:url forKey:@"url"]];
|
||||
|
@ -47,11 +92,46 @@
|
|||
|
||||
- (IBAction)useModificationDates:(id)sender
|
||||
{
|
||||
[self setSelectedDateFormat:nil];
|
||||
[self willChangeValueForKey:@"media"];
|
||||
for (NSMutableDictionary * m in media) {
|
||||
NSDate * modificationDate;
|
||||
[[m objectForKey:@"url"] getResourceValue:&modificationDate forKey:NSURLContentModificationDateKey error:nil];
|
||||
if (![[m objectForKey:@"url"] getResourceValue:&modificationDate forKey:NSURLContentModificationDateKey error:nil])
|
||||
modificationDate = nil;
|
||||
[m setObject:(modificationDate ? modificationDate : [NSDate date]) forKey:@"date"];
|
||||
}
|
||||
[self didChangeValueForKey:@"media"];
|
||||
}
|
||||
|
||||
- (IBAction)useFileNameDates:(id)sender
|
||||
{
|
||||
[self setSelectedDateFormat:[dateFormats objectAtIndex:[sender tag]]];
|
||||
NSRegularExpression * regexp = [selectedDateFormat objectForKey:@"regexp"];
|
||||
NSString * format = [selectedDateFormat objectForKey:@"format"];
|
||||
NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
|
||||
[formatter setDateFormat:format];
|
||||
|
||||
[self willChangeValueForKey:@"media"];
|
||||
for (NSMutableDictionary * m in media) {
|
||||
NSString * name = [[[m objectForKey:@"url"] lastPathComponent] stringByDeletingPathExtension];
|
||||
NSTextCheckingResult * match= [regexp firstMatchInString:name options:0 range:NSMakeRange(0, [name length])];
|
||||
NSDate * modificationDate = nil;
|
||||
if (match && [match range].location != NSNotFound) {
|
||||
//
|
||||
// First and last capture is for leading and trailing context
|
||||
//
|
||||
NSRange dateRange = [match rangeAtIndex:1];
|
||||
dateRange.location += dateRange.length;
|
||||
dateRange.length = [match rangeAtIndex:[match numberOfRanges]-1].location - dateRange.location;
|
||||
NSString * dateString = [name substringWithRange:dateRange];
|
||||
modificationDate = [formatter dateFromString:dateString];
|
||||
}
|
||||
if (!modificationDate)
|
||||
if (![[m objectForKey:@"url"] getResourceValue:&modificationDate forKey:NSURLContentModificationDateKey error:nil])
|
||||
modificationDate = nil;
|
||||
[m setObject:(modificationDate ? modificationDate : [NSDate date]) forKey:@"date"];
|
||||
}
|
||||
[self didChangeValueForKey:@"media"];
|
||||
}
|
||||
|
||||
- (IBAction)endSheet:(id)sender
|
||||
|
|
126
Medianno/Resources/DateHypotheses.plist
Normal file
126
Medianno/Resources/DateHypotheses.plist
Normal file
|
@ -0,0 +1,126 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<array>
|
||||
<dict>
|
||||
<key>regexp</key>
|
||||
<string>^(.*\D|)\d\d\d\d(\D{0,2})\d\d?(\D{0,2})\d\d?(\D?\s\D?)\d\d?(\D?)\d\d(\D?)\d\d(\s+)[APap][mM](\W.*|)$</string>
|
||||
<key>comment</key>
|
||||
<string>4 digit year, seconds, AM/PM</string>
|
||||
<key>formats</key>
|
||||
<array>
|
||||
<string>yyyy$2dd$3mm$4hh$5mm$6ss$7a</string>
|
||||
<string>yyyy$2mm$3dd$4hh$5mm$6ss$7a</string>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>regexp</key>
|
||||
<string>^(.*\D|)\d\d\d\d(\D{0,2})\d\d?(\D{0,2})\d\d?(\D?\s\D?)\d\d?(\D?)\d\d(\s+)[APap][mM](\W.*|)$</string>
|
||||
<key>comment</key>
|
||||
<string>4 digit year, no seconds, AM/PM</string>
|
||||
<key>formats</key>
|
||||
<array>
|
||||
<string>yyyy$2dd$3mm$4hh$5mm$6a</string>
|
||||
<string>yyyy$2mm$3dd$4hh$5mm$6a</string>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>regexp</key>
|
||||
<string>^(.*\D|)\d\d\d\d(\D{0,2})\d\d?(\D{0,2})\d\d?(\D?\s\D?)\d\d?(\D?)\d\d(\D?)\d\d(\D.*|)$</string>
|
||||
<key>comment</key>
|
||||
<string>4 digit year, seconds, no AM/PM</string>
|
||||
<key>formats</key>
|
||||
<array>
|
||||
<string>yyyy$2dd$3mm$4hh$5mm$6ss</string>
|
||||
<string>yyyy$2mm$3dd$4hh$5mm$6ss</string>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>regexp</key>
|
||||
<string>^(.*\D|)\d\d\d\d(\D{0,2})\d\d?(\D{0,2})\d\d?(\D?\s\D?)\d\d?(\D?)\d\d(\D.*|)$</string>
|
||||
<key>comment</key>
|
||||
<string>4 digit year, no seconds, AM/PM</string>
|
||||
<key>formats</key>
|
||||
<array>
|
||||
<string>yyyy$2dd$3mm$4hh$5mm</string>
|
||||
<string>yyyy$2mm$3dd$4hh$5mm</string>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>regexp</key>
|
||||
<string>^(.*\D|)\d\d\d\d(\D{0,2})\d\d(\D{0,2})\d\d(\D.*|)$</string>
|
||||
<key>comment</key>
|
||||
<string>4 digit year, date only</string>
|
||||
<key>formats</key>
|
||||
<array>
|
||||
<string>yyyy$2dd$3mm</string>
|
||||
<string>yyyy$2mm$3dd</string>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>regexp</key>
|
||||
<string>^(.*\D|)\d\d?(\D{0,2})\d\d?(\D{0,2})\d\d?(\D?\s\D?)\d\d?(\D?)\d\d(\D?)\d\d(\s+)[APap][mM](\W.*|)$</string>
|
||||
<key>comment</key>
|
||||
<string>2 digit year, seconds, AM/PM</string>
|
||||
<key>formats</key>
|
||||
<array>
|
||||
<string>yy$2dd$3mm$4hh$5mm$6ss$7a</string>
|
||||
<string>yy$2mm$3dd$4hh$5mm$6ss$7a</string>
|
||||
<string>mm$2dd$3yy$4hh$5mm$6ss$7a</string>
|
||||
<string>dd$2mm$3yy$4hh$5mm$6ss$7a</string>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>regexp</key>
|
||||
<string>^(.*\D|)\d\d?(\D{0,2})\d\d?(\D{0,2})\d\d?(\D?\s\D?)\d\d?(\D?)\d\d(\s+)[APap][mM](\W.*|)$</string>
|
||||
<key>comment</key>
|
||||
<string>2 digit year, no seconds, AM/PM</string>
|
||||
<key>formats</key>
|
||||
<array>
|
||||
<string>yy$2dd$3mm$4hh$5mm$6a</string>
|
||||
<string>yy$2mm$3dd$4hh$5mm$6a</string>
|
||||
<string>mm$2dd$3yy$4hh$5mm$6a</string>
|
||||
<string>dd$2mm$3yy$4hh$5mm$6a</string>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>regexp</key>
|
||||
<string>^(.*\D|)\d\d?(\D{0,2})\d\d?(\D{0,2})\d\d?(\D?\s\D?)\d\d?(\D?)\d\d(\D?)\d\d(\D.*|)$</string>
|
||||
<key>comment</key>
|
||||
<string>2 digit year, seconds, no AM/PM</string>
|
||||
<key>formats</key>
|
||||
<array>
|
||||
<string>yy$2dd$3mm$4hh$5mm$6ss</string>
|
||||
<string>yy$2mm$3dd$4hh$5mm$6ss</string>
|
||||
<string>mm$2dd$3yy$4hh$5mm$6ss</string>
|
||||
<string>dd$2mm$3yy$4hh$5mm$6ss</string>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>regexp</key>
|
||||
<string>^(.*\D|)\d\d?(\D{0,2})\d\d?(\D{0,2})\d\d?(\D?\s\D?)\d\d?(\D?)\d\d(\D.*|)$</string>
|
||||
<key>comment</key>
|
||||
<string>2 digit year, no seconds, AM/PM</string>
|
||||
<key>formats</key>
|
||||
<array>
|
||||
<string>yy$2dd$3mm$4hh$5mm</string>
|
||||
<string>yy$2mm$3dd$4hh$5mm</string>
|
||||
<string>mm$2dd$3yy$4hh$5mm</string>
|
||||
<string>dd$2mm$3yy$4hh$5mm</string>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>regexp</key>
|
||||
<string>^(.*\D|)\d\d?(\D{0,2})\d\d(\D{0,2})\d\d(\D.*|)$</string>
|
||||
<key>comment</key>
|
||||
<string>2 digit year, date only</string>
|
||||
<key>formats</key>
|
||||
<array>
|
||||
<string>yy$2dd$3mm</string>
|
||||
<string>yy$2mm$3dd</string>
|
||||
<string>mm$2dd$3yy</string>
|
||||
<string>dd$2mm$3yy</string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</plist>
|
|
@ -6,5 +6,6 @@
|
|||
Copyright 2011 Matthias Neeracher. All rights reserved.
|
||||
*/
|
||||
|
||||
"Play" = "Play";
|
||||
"Pause"= "Pause";
|
||||
"Play" = "Play";
|
||||
"Pause" = "Pause";
|
||||
"File Name Date" = "File Name <%@>";
|
||||
|
|
|
@ -74,6 +74,7 @@
|
|||
<string key="NSFrame">{{660, 12}, {107, 32}}</string>
|
||||
<reference key="NSSuperview" ref="1006"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:161</string>
|
||||
<int key="NSTag">1000</int>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
|
@ -137,7 +138,7 @@
|
|||
<string key="NSFrameSize">{781, 380}</string>
|
||||
<reference key="NSSuperview" ref="482978525"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="106724295"/>
|
||||
<reference key="NSNextKeyView" ref="635678385"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:1197</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTableHeaderView" key="NSHeaderView" id="678384619">
|
||||
|
@ -340,7 +341,7 @@
|
|||
<string key="NSFrame">{{-1, 54}, {783, 398}}</string>
|
||||
<reference key="NSSuperview" ref="1006"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="482978525"/>
|
||||
<reference key="NSNextKeyView" ref="106724295"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:1193</string>
|
||||
<int key="NSsFlags">133682</int>
|
||||
<reference key="NSVScroller" ref="635678385"/>
|
||||
|
@ -352,10 +353,10 @@
|
|||
<object class="NSPopUpButton" id="19618719">
|
||||
<reference key="NSNextResponder" ref="1006"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{137, 456}, {371, 26}}</string>
|
||||
<string key="NSFrame">{{137, 456}, {468, 26}}</string>
|
||||
<reference key="NSSuperview" ref="1006"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<reference key="NSNextKeyView" ref="333350533"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:179</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSPopUpButtonCell" key="NSCell" id="247335376">
|
||||
|
@ -370,34 +371,34 @@
|
|||
<string key="NSKeyEquivalent"/>
|
||||
<int key="NSPeriodicDelay">400</int>
|
||||
<int key="NSPeriodicInterval">75</int>
|
||||
<object class="NSMenuItem" key="NSMenuItem" id="1014844797">
|
||||
<reference key="NSMenu" ref="694863336"/>
|
||||
<string key="NSTitle">Modification Date</string>
|
||||
<string key="NSKeyEquiv"/>
|
||||
<int key="NSKeyEquivModMask">1048576</int>
|
||||
<int key="NSMnemonicLoc">2147483647</int>
|
||||
<int key="NSState">1</int>
|
||||
<object class="NSCustomResource" key="NSOnImage" id="218087945">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">NSMenuCheckmark</string>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="NSMixedImage" id="207621535">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">NSMenuMixedState</string>
|
||||
</object>
|
||||
<string key="NSAction">_popUpItemAction:</string>
|
||||
<reference key="NSTarget" ref="247335376"/>
|
||||
</object>
|
||||
<nil key="NSMenuItem"/>
|
||||
<bool key="NSMenuItemRespectAlignment">YES</bool>
|
||||
<object class="NSMenu" key="NSMenu" id="694863336">
|
||||
<string key="NSTitle">OtherViews</string>
|
||||
<object class="NSMutableArray" key="NSMenuItems">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference ref="1014844797"/>
|
||||
<object class="NSMenuItem" id="1014844797">
|
||||
<reference key="NSMenu" ref="694863336"/>
|
||||
<string key="NSTitle">Modification Date</string>
|
||||
<string key="NSKeyEquiv"/>
|
||||
<int key="NSKeyEquivModMask">1048576</int>
|
||||
<int key="NSMnemonicLoc">2147483647</int>
|
||||
<object class="NSCustomResource" key="NSOnImage" id="218087945">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">NSMenuCheckmark</string>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="NSMixedImage" id="207621535">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">NSMenuMixedState</string>
|
||||
</object>
|
||||
<string key="NSAction">_popUpItemAction:</string>
|
||||
<reference key="NSTarget" ref="247335376"/>
|
||||
</object>
|
||||
<object class="NSMenuItem" id="398634218">
|
||||
<reference key="NSMenu" ref="694863336"/>
|
||||
<bool key="NSIsDisabled">YES</bool>
|
||||
<bool key="NSIsSeparator">YES</bool>
|
||||
<bool key="NSIsHidden">YES</bool>
|
||||
<string key="NSTitle"/>
|
||||
<string key="NSKeyEquiv"/>
|
||||
<int key="NSMnemonicLoc">2147483647</int>
|
||||
|
@ -409,6 +410,7 @@
|
|||
</object>
|
||||
<reference key="NSMenuFont" ref="706852951"/>
|
||||
</object>
|
||||
<int key="NSSelectedIndex">-1</int>
|
||||
<int key="NSPreferredEdge">1</int>
|
||||
<bool key="NSUsesItemFromMenu">YES</bool>
|
||||
<bool key="NSAltersState">YES</bool>
|
||||
|
@ -560,6 +562,75 @@
|
|||
</object>
|
||||
<int key="connectionID">76</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBBindingConnection" key="connection">
|
||||
<string key="label">hidden: dateFormats</string>
|
||||
<reference key="source" ref="398634218"/>
|
||||
<reference key="destination" ref="1001"/>
|
||||
<object class="NSNibBindingConnector" key="connector">
|
||||
<reference key="NSSource" ref="398634218"/>
|
||||
<reference key="NSDestination" ref="1001"/>
|
||||
<string key="NSLabel">hidden: dateFormats</string>
|
||||
<string key="NSBinding">hidden</string>
|
||||
<string key="NSKeyPath">dateFormats</string>
|
||||
<object class="NSDictionary" key="NSOptions">
|
||||
<string key="NS.key.0">NSValueTransformerName</string>
|
||||
<string key="NS.object.0">NSIsNil</string>
|
||||
</object>
|
||||
<int key="NSNibBindingConnectorVersion">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<int key="connectionID">87</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBBindingConnection" key="connection">
|
||||
<string key="label">value: selectedDateFormat</string>
|
||||
<reference key="source" ref="1014844797"/>
|
||||
<reference key="destination" ref="1001"/>
|
||||
<object class="NSNibBindingConnector" key="connector">
|
||||
<reference key="NSSource" ref="1014844797"/>
|
||||
<reference key="NSDestination" ref="1001"/>
|
||||
<string key="NSLabel">value: selectedDateFormat</string>
|
||||
<string key="NSBinding">value</string>
|
||||
<string key="NSKeyPath">selectedDateFormat</string>
|
||||
<object class="NSDictionary" key="NSOptions">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>NSAllowsEditingMultipleValuesSelection</string>
|
||||
<string>NSConditionallySetsEnabled</string>
|
||||
<string>NSRaisesForNotApplicableKeys</string>
|
||||
<string>NSValueTransformerName</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<boolean value="NO"/>
|
||||
<boolean value="NO"/>
|
||||
<boolean value="NO"/>
|
||||
<string>NSIsNil</string>
|
||||
</object>
|
||||
</object>
|
||||
<int key="NSNibBindingConnectorVersion">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<int key="connectionID">93</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBActionConnection" key="connection">
|
||||
<string key="label">useModificationDates:</string>
|
||||
<reference key="source" ref="1001"/>
|
||||
<reference key="destination" ref="1014844797"/>
|
||||
</object>
|
||||
<int key="connectionID">97</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBOutletConnection" key="connection">
|
||||
<string key="label">dateFormatMenu</string>
|
||||
<reference key="source" ref="1001"/>
|
||||
<reference key="destination" ref="694863336"/>
|
||||
</object>
|
||||
<int key="connectionID">101</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<object class="NSArray" key="orderedObjects">
|
||||
|
@ -860,7 +931,7 @@
|
|||
<reference key="dict.values" ref="0"/>
|
||||
</object>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">76</int>
|
||||
<int key="maxID">101</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
|
@ -869,14 +940,46 @@
|
|||
<string key="className">MAAddMediaSheet</string>
|
||||
<string key="superclassName">NSWindowController</string>
|
||||
<object class="NSMutableDictionary" key="actions">
|
||||
<string key="NS.key.0">useModificationDates:</string>
|
||||
<string key="NS.object.0">id</string>
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>useFileNameDates:</string>
|
||||
<string>useModificationDates:</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="actionInfosByName">
|
||||
<string key="NS.key.0">useModificationDates:</string>
|
||||
<object class="IBActionInfo" key="NS.object.0">
|
||||
<string key="name">useModificationDates:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>useFileNameDates:</string>
|
||||
<string>useModificationDates:</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBActionInfo">
|
||||
<string key="name">useFileNameDates:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBActionInfo">
|
||||
<string key="name">useModificationDates:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="outlets">
|
||||
<string key="NS.key.0">dateFormatMenu</string>
|
||||
<string key="NS.object.0">NSMenu</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<string key="NS.key.0">dateFormatMenu</string>
|
||||
<object class="IBToOneOutletInfo" key="NS.object.0">
|
||||
<string key="name">dateFormatMenu</string>
|
||||
<string key="candidateClassName">NSMenu</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
|
|
|
@ -550,7 +550,7 @@
|
|||
<string key="NSFrameSize">{1279, 183}</string>
|
||||
<reference key="NSSuperview" ref="204692115"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="332479500"/>
|
||||
<reference key="NSNextKeyView" ref="502749411"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:1197</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTableHeaderView" key="NSHeaderView" id="117432108">
|
||||
|
@ -775,7 +775,7 @@
|
|||
<string key="NSFrameSize">{1281, 201}</string>
|
||||
<reference key="NSSuperview" ref="196617426"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="502749411"/>
|
||||
<reference key="NSNextKeyView" ref="204692115"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:1193</string>
|
||||
<int key="NSsFlags">133682</int>
|
||||
<reference key="NSVScroller" ref="332479500"/>
|
||||
|
@ -837,7 +837,7 @@
|
|||
<string key="NSFrameSize">{1278, 565}</string>
|
||||
<reference key="NSSuperview" ref="51131752"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="742629842"/>
|
||||
<reference key="NSNextKeyView" ref="794153134"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:1197</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTableHeaderView" key="NSHeaderView" id="995480265">
|
||||
|
@ -984,7 +984,6 @@
|
|||
<string key="NSFrame">{{1, 566}, {1279, 15}}</string>
|
||||
<reference key="NSSuperview" ref="1054473103"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:1216</string>
|
||||
<int key="NSsFlags">1</int>
|
||||
<reference key="NSTarget" ref="1054473103"/>
|
||||
|
@ -1010,7 +1009,7 @@
|
|||
<string key="NSFrameSize">{1280, 583}</string>
|
||||
<reference key="NSSuperview" ref="1058980817"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="794153134"/>
|
||||
<reference key="NSNextKeyView" ref="51131752"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:1193</string>
|
||||
<int key="NSsFlags">133682</int>
|
||||
<reference key="NSVScroller" ref="715872882"/>
|
||||
|
|
Loading…
Reference in New Issue
Block a user