mirror of
https://github.com/ksherlock/ample.git
synced 2024-10-31 15:04:56 +00:00
3d5a2951bb
commit 78c81626670fdf41fa6bdd71a4243a89a0746615 Author: Kelvin Sherlock <ksherlock@gmail.com> Date: Mon Jun 7 00:33:48 2021 -0400 check if software set has a particular entry. commit ef5ab6b6948dc3bbbe2947ea099fcacd08435e86 Author: Kelvin Sherlock <ksherlock@gmail.com> Date: Sun Jun 6 22:20:34 2021 -0400 fix scroller background on recent disk images window. commit dee56fa50e87299b396b48361bd0a780aaaaa768 Author: Kelvin Sherlock <ksherlock@gmail.com> Date: Sun Jun 6 21:26:23 2021 -0400 update cheat sheet javascript to work with 10.11 * => functions not supported * NodeList.prototype.forEach not supported. commit b00cc05413f4ebd6d6d58f96e24303008608f3a6 Author: Kelvin Sherlock <ksherlock@gmail.com> Date: Sun Jun 6 17:10:41 2021 -0400 default full machine name for bookmark entry. commit a671cafdc98051b56b12cdd3ccd13c22f54f605a Author: Kelvin Sherlock <ksherlock@gmail.com> Date: Sun Jun 6 15:39:32 2021 -0400 loading a bookmark wasn't updating the media. commit 3000e0eb1b10bede3345aaab8478e9ec209f328c Author: Kelvin Sherlock <ksherlock@gmail.com> Date: Sun Jun 6 15:38:53 2021 -0400 bump copyright year. commit 45222dacd4aa0047fae63a9112509de57139df63 Author: Kelvin Sherlock <ksherlock@gmail.com> Date: Sun Jun 6 13:38:23 2021 -0400 add reset w/ value for setting the item explicitely. commit cc7fde1253b71c4d8655eb4c010bbf4e61333a15 Author: Kelvin Sherlock <ksherlock@gmail.com> Date: Sun Jun 6 13:37:48 2021 -0400 add checkboxes for bitbanger/share directory. The general idea is it's easier to toggle a checkbox than to type/retype a path. commit 5674b2d7f6b0e2f0b973197bf3493ad61bf46428 Author: Kelvin Sherlock <ksherlock@gmail.com> Date: Sat Jun 5 19:11:43 2021 -0400 commentary on searches with diacritics. commit ec60634dcd9c573130dc34673b4d3fe597ea2b42 Author: Kelvin Sherlock <ksherlock@gmail.com> Date: Sat Jun 5 19:11:22 2021 -0400 clean up auto-complete a little bit when setting a value directly. commit 1a182bbdab237c89d355d8294b5a4a64b785783a Author: Kelvin Sherlock <ksherlock@gmail.com> Date: Sat Jun 5 13:08:29 2021 -0400 fix text color when value is set. There are still some bugs relating to multiple copies of the value being stored. commit 49c0bc15c73446259d8cc151cf52d6058644db76 Author: Kelvin Sherlock <ksherlock@gmail.com> Date: Sat Jun 5 12:09:44 2021 -0400 reset all controls first. commit 059797ad85b057e296cc707b4645f839bfccac13 Author: Kelvin Sherlock <ksherlock@gmail.com> Date: Sat Jun 5 10:52:06 2021 -0400 more bookmark loading. commit e5a612d9f8e7414dd15c66dbaa540b637765eeec Author: Kelvin Sherlock <ksherlock@gmail.com> Date: Fri Jun 4 23:52:38 2021 -0400 bookmark - restore the software commit f9411a1e84df7bd46e352cc5ca995b585c2a0523 Author: Kelvin Sherlock <ksherlock@gmail.com> Date: Fri Jun 4 23:52:25 2021 -0400 clean up software / name logic. commitf628d99e4a
Author: Kelvin Sherlock <ksherlock@gmail.com> Date: Fri Jun 4 00:21:08 2021 -0400 load bookmark... commit0b248e6aad
Author: Kelvin Sherlock <ksherlock@gmail.com> Date: Fri Jun 4 00:20:42 2021 -0400 stringValue can't be nil. commit94aac38af4
Author: Kelvin Sherlock <ksherlock@gmail.com> Date: Thu Jun 3 23:04:37 2021 -0400 add bookmark menu commit6215a0df12
Author: Kelvin Sherlock <ksherlock@gmail.com> Date: Thu Jun 3 23:03:29 2021 -0400 slot view needs to know the machine. commitd348c15dc5
Author: Kelvin Sherlock <ksherlock@gmail.com> Date: Thu Jun 3 23:02:58 2021 -0400 transformer to enable/disable control based on string length. commite14336a009
Author: Kelvin Sherlock <ksherlock@gmail.com> Date: Thu Jun 3 23:02:14 2021 -0400 shut up compiler warning. commit4baf545245
Author: Kelvin Sherlock <ksherlock@gmail.com> Date: Thu Jun 3 23:01:15 2021 -0400 bookmark manager commit0f3e6c8307
Author: Kelvin Sherlock <ksherlock@gmail.com> Date: Mon May 31 23:54:29 2021 -0400 more (untested) bookmark code commit8fdb149eb3
Author: Kelvin Sherlock <ksherlock@gmail.com> Date: Mon May 31 16:13:43 2021 -0400 start of bookmarking support. Untested. commit787eac87f6
Author: Kelvin Sherlock <ksherlock@gmail.com> Date: Mon May 31 16:12:45 2021 -0400 shut up warnings about content clipping. maybe it's a 10.11 thing. The size was chosen by interface builder.
108 lines
2.4 KiB
Objective-C
108 lines
2.4 KiB
Objective-C
//
|
|
// Transformers.m
|
|
// Ample
|
|
//
|
|
// Created by Kelvin Sherlock on 9/13/2020.
|
|
// Copyright © 2020 Kelvin Sherlock. All rights reserved.
|
|
//
|
|
|
|
#import "Transformers.h"
|
|
|
|
#import <AppKit/NSColor.h>
|
|
|
|
@implementation FilePathTransformer
|
|
|
|
+ (Class)transformedValueClass {
|
|
return [NSString class];
|
|
}
|
|
|
|
+ (BOOL)allowsReverseTransformation {
|
|
return NO;
|
|
}
|
|
|
|
- (id)transformedValue:(id)value {
|
|
if (!value) return value;
|
|
|
|
return [(NSString *)value lastPathComponent];
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation FileSizeTransformer
|
|
|
|
+ (Class)transformedValueClass {
|
|
return [NSString class];
|
|
}
|
|
|
|
+ (BOOL)allowsReverseTransformation {
|
|
return NO;
|
|
}
|
|
|
|
- (id)transformedValue:(id)value {
|
|
if (!value) return value;
|
|
if (![value respondsToSelector: @selector(integerValue)]) {
|
|
[NSException raise: NSInternalInconsistencyException
|
|
format: @"Value (%@) does not respond to -integerValue.",
|
|
[value class]];
|
|
}
|
|
NSInteger size = [(NSNumber *)value integerValue];
|
|
|
|
if (size < 0) return nil;
|
|
if (size < 1024*1024) return [NSString stringWithFormat: @"%.1fKB", (float)size / 1024];
|
|
if (size < 1024*1024*1024) return [NSString stringWithFormat: @"%.1fMB", (float)size / (1024*1024)];
|
|
|
|
return [NSString stringWithFormat: @"%.1fGB", (float)size / (1024*1024*1024)];
|
|
}
|
|
|
|
@end
|
|
|
|
|
|
@implementation ValidColorTransformer
|
|
+ (BOOL)allowsReverseTransformation {
|
|
return NO;
|
|
}
|
|
+ (Class)transformedValueClass {
|
|
return [NSColor class];
|
|
}
|
|
|
|
- (id)transformedValue:(id)value {
|
|
BOOL valid = [(NSNumber *)value boolValue];
|
|
return valid ? nil : [NSColor systemRedColor];
|
|
}
|
|
|
|
@end
|
|
|
|
|
|
@implementation StringNotEmptyTransformer
|
|
+ (BOOL)allowsReverseTransformation {
|
|
return NO;
|
|
}
|
|
+ (Class)transformedValueClass {
|
|
return [NSNumber class];
|
|
}
|
|
|
|
- (id)transformedValue:(id)value {
|
|
NSUInteger length = [(NSString *)value length];
|
|
return [NSNumber numberWithBool: length ? YES : NO];
|
|
}
|
|
|
|
@end
|
|
|
|
|
|
void RegisterTransformers(void) {
|
|
|
|
NSValueTransformer *t;
|
|
t = [FileSizeTransformer new];
|
|
[NSValueTransformer setValueTransformer: t forName: @"FileSizeTransformer"];
|
|
|
|
t = [FilePathTransformer new];
|
|
[NSValueTransformer setValueTransformer: t forName: @"FilePathTransformer"];
|
|
|
|
t = [ValidColorTransformer new];
|
|
[NSValueTransformer setValueTransformer: t forName: @"ValidColorTransformer"];
|
|
|
|
t = [StringNotEmptyTransformer new];
|
|
[NSValueTransformer setValueTransformer: t forName: @"StringNotEmptyTransformer"];
|
|
|
|
}
|