Custom Plugins stopped working in DVDpedia 5.1.3
-
- Addicted to Bruji
- Posts: 71
- Joined: Tue May 30, 2006 4:57 pm
Custom Plugins stopped working in DVDpedia 5.1.3
Hello, I finally updated my DVDpedia to the latest version (5.1.3) and my custom plugins stopped working. I was using 4.6.8 and they have worked great forever. Is there something simple I need to tweak to get them working in the latest version? In 4.6.8, it created an extra menu - I don't see this extra menu in the latest DVDpedia. Thanks for info.
Re: Custom Plugins stopped working in DVDpedia 5.1.3
The plug-ins still work but they need a slight tweak to be compatible with version 5. Simply needs to be rebuilt to add garbage collection support. The setting is in the build settings and needs to be switched to:
Open Xcode select the blue project icon at the top of the navigation column on the left, select the plugin name on the pane, select "build settings" tab and copy paste the above line into it. Build and install into DVDpedia and you're set to go.
There are other improvements. Plugins will appear under the "Movie" menu now and you can give them a menu name to appear under, old menu plugins appear in the generic "Plugins" sub menu.
The new format gives you more control as you declare as many menu items as you need in a single plugin as well as their attributes including keyboard shortcuts. Your init method would look like this:
For others reading this and using a search plug-in instead, there are other improvements that can be included now such as search limiters (search by title, author, etc.).
Code: Select all
GCC_ENABLE_OBJC_GC = supported
There are other improvements. Plugins will appear under the "Movie" menu now and you can give them a menu name to appear under, old menu plugins appear in the generic "Plugins" sub menu.
The new format gives you more control as you declare as many menu items as you need in a single plugin as well as their attributes including keyboard shortcuts. Your init method would look like this:
Code: Select all
- (id)init {
self = [super init];
if (self) {
NSMenuItem *aMenuItem = [[[NSMenuItem alloc] init] autorelease];
[aMenuItem setTitle:@"A Test Menu"];
[aMenuItem setTarget:self];
[aMenuItem setAction:@selector(doTest:)];
[aMenuItem setKeyEquivalent:@"k"];
[aMenuItem setKeyEquivalentModifierMask:NSCommandKeyMask | NSShiftKeyMask];
NSMenuItem *secondMenuItem = [[[NSMenuItem alloc] init] autorelease];
[secondMenuItem setTitle:@"A Second Menu"];
[secondMenuItem setTarget:self];
[secondMenuItem setAction:@selector(doSecondTest:)];
MyPluginManager *pluginManager = [[NSApp delegate] pluginManager];
[pluginManager addMenuItem:aMenuItem menuTitle:@"Awesome Commands"]; // Adds to a sub menu called Awesome Commands
[pluginManager addMenuItem:secondMenuItem]; // Adds to the generic menu
[pluginManager addMenuItem:[NSMenuItem separatorItem] menuTitle:@"Awesome Commands"]; //Example of adding a separator
}
return self;
}
- (IBAction)doTest:(id)sender {
NSLog(@"Doing a test");
}
- (IBAction)doSecondTest:(id)sender {
NSLog(@"Doing another test");
}
-
- Addicted to Bruji
- Posts: 71
- Joined: Tue May 30, 2006 4:57 pm
Re: Custom Plugins stopped working in DVDpedia 5.1.3
Thank you for the reply and the details. You guys never fail to impress with your great customer service. Thanks again.
-
- Addicted to Bruji
- Posts: 71
- Joined: Tue May 30, 2006 4:57 pm
Re: Custom Plugins stopped working in DVDpedia 5.1.3
In the previous plugin, I used the "MOEntry" bit of code to indicate the selected item. What would I use with this new menu format? Thanks for helping the rookie out.
Code: Select all
OLD Plugin style:
- (NSArray *)menuCommandFor:(NSArray *)selectedObjects {
MOEntry *aDVD = [selectedObjects lastObject];
NEW Plugin style:
- (IBAction)doTest:(id)sender {
NSLog(@"Doing a test");
}
Re: Custom Plugins stopped working in DVDpedia 5.1.3
There are a number of new methods to work with selections, but if you just want the main selected DVD use:
You will get an warning that no object responds to selectedEntry so paste the following declaration at the top of your file.
The above is enough to get you working with the selection. If you want the full new header file that declares these selection methods and more you can find it in the Sample Plugin. It would be the MyControllerForPlugins.h that you would then include in your project and use #include MyControllerForPlugins.h in your plugin.m file to use other methods there.
Code: Select all
NSManagedObject *aDVD = [[NSApp delegate] selectedEntry];
Code: Select all
@interface MyControllerForPlugins : NSObject
- (NSManagedObject *)selectedEntry; // Main selected entry
- (NSArray *)arrangedEntries; // All entries
- (NSArray *)selectedEntries; // Entire selection
@end
-
- Addicted to Bruji
- Posts: 71
- Joined: Tue May 30, 2006 4:57 pm
Re: Custom Plugins stopped working in DVDpedia 5.1.3
Conor, you guys saved the day again. This fixed me right up. THANK YOU SO MUCH!!!!