Skip to content

Commit

Permalink
implement enable disable service
Browse files Browse the repository at this point in the history
  • Loading branch information
trunkmaster committed Apr 23, 2024
1 parent e09a1a5 commit 20756ca
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@
"## Comment" = "Do NOT change this file, Gorm maintains it";
FirstResponder = {
Actions = (
"setSeriviceState:"
"setServiceState:"
);
Super = NSObject;
};
Services = {
Actions = (
"setSeriviceState:"
"setServiceState:"
);
Outlets = (
view,
Expand Down
Binary file not shown.
39 changes: 30 additions & 9 deletions Applications/Preferences/Modules/Services/Services.m
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
//

#import "Services.h"
#include "Foundation/NSString.h"
#include "Foundation/NSDictionary.h"
#include "Foundation/NSObjCRuntime.h"
#include "GNUstepGUI/GSServicesManager.h"
Expand Down Expand Up @@ -48,6 +49,7 @@ - (void)dealloc

- (void)_fetchServices
{
[serviceManager rebuildServices];
NSDictionary *menuServices = [serviceManager menuServices];
NSString *appName;

Expand All @@ -70,7 +72,8 @@ - (void)_fetchServices
}
}

NSLog(@"SERVICES: %@", [applications allKeys]);
NSLog(@"SERVICES: %@", applications);
[menuServices writeToFile:@"Services.plist" atomically:YES];

ASSIGN(services, applications);
[applications release];
Expand Down Expand Up @@ -114,14 +117,30 @@ - (NSImage *)buttonImage
//
- (void)setServiceState:(id)sender
{
NSString *item = [[servicesList selectedCellInColumn:1] representedObject];

if (item) {
BOOL show = ![serviceManager showsServicesMenuItem:item];
[serviceManager setShowsServicesMenuItem:item to:show];

[servicesList reloadColumn:0];
NSString *selected = nil;
// NSString *selected = [servicesList path];
// NSString *service;
// NSString *item = [[servicesList selectedCellInColumn:1] representedObject];

NSLog(@"Selected service path: %@", selected);

if ([servicesList selectedColumn] == 1) {
NSDictionary *service = [[servicesList selectedCellInColumn:1] representedObject];
selected = [service valueForKeyPath:@"NSMenuItem.default"];
NSLog(@"Setting state to service: %@", selected);
[serviceManager setShowsServicesMenuItem:selected
to:![serviceManager showsServicesMenuItem:selected]];
} else {
NSString *appName = [[servicesList selectedCellInColumn:0] title];
NSArray *appServices = [services objectForKey:appName];
for (NSDictionary *service in appServices) {
selected = [service valueForKeyPath:@"NSMenuItem.default"];
[serviceManager setShowsServicesMenuItem:selected
to:![serviceManager showsServicesMenuItem:selected]];
}
}
[self _fetchServices];
[servicesList reloadColumn:[servicesList selectedColumn]];
}

- (NSString *)menuItemForService:(NSDictionary *)svc level:(int)level
Expand Down Expand Up @@ -165,8 +184,10 @@ - (void)browser:(NSBrowser *)browser
} else {
NSArray *appServices = [[browser selectedCellInColumn:0] representedObject];
NSDictionary *svc = [appServices objectAtIndex:row];

[cell setStringValue:[self menuItemForService:svc level:1]];
// [cell setEnabled:[serviceManager
// showsServicesMenuItem:[svc valueForKeyPath:@"NSMenuItem.default"]]];
[cell setLeaf:YES];
[cell setRepresentedObject:svc];
}
Expand Down

0 comments on commit 20756ca

Please sign in to comment.