⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 facemanagerwindowcontroller.mm

📁 lumaqq
💻 MM
📖 第 1 页 / 共 2 页
字号:
				// add face		[fm addFace:face groupIndex:[fm indexOfGroup:g]];	}}- (void) dealloc {	if(m_poifs)		[m_poifs release];	if(m_importGroups)		[m_importGroups release];	if(m_importFaces)		[m_importFaces release];	if(m_importPictures)		[m_importPictures release];	[m_mainWindowController release];	[super dealloc];}- (void)createGroupMenuItems {	// remove all item	NSMenu* menu = [m_pbGroup menu];	while([menu numberOfItems] > 0)		[menu removeItemAtIndex:0];		// create item for every group	NSEnumerator* e = [[[m_mainWindowController faceManager] groups] objectEnumerator];	while(FaceGroup* g = [e nextObject]) {		NSMenuItem* item = [[[NSMenuItem alloc] init] autorelease];		[item setTitle:[g name]];		[menu addItem:item];	}}#pragma mark -#pragma mark actions- (IBAction)onGroupChanged:(id)sender {	[m_faceTable reloadData];	[self onFaceTableSelectionChanged:m_faceTable];}- (IBAction)onDeleteFace:(id)sender {	if([m_faceTable numberOfSelectedRows] > 0) {		FaceManager* fm = [m_mainWindowController faceManager];		UInt32 QQ = [[m_mainWindowController me] QQ];				// get selected		int groupIndex = [m_pbGroup indexOfSelectedItem];		NSIndexSet* rows = [m_faceTable selectedRowIndexes];				// remove		int count = [fm faceCount:groupIndex]; 		for(int i = count - 1; i >= 0; i--) {			if([rows containsIndex:i]) {				Face* f = [fm face:groupIndex atIndex:i];				[fm removeFace:groupIndex face:i];				if(f) {					[FileTool deleteFile:[FileTool getCustomFacePath:QQ															   group:[[fm group:groupIndex] name]																file:[f thumbnail]]];					[FileTool deleteFile:[FileTool getCustomFacePath:QQ															   group:[[fm group:groupIndex] name]																file:[f original]]];				}			}		}				// reload table		[m_faceTable reloadData];				// refresh preview		[self onFaceTableSelectionChanged:m_faceTable];				// save face.plist to avoid inconsistence		[fm save];	}}- (IBAction)onDeleteGroup:(id)sender {	if([m_pbGroup numberOfItems] <= 1) {		[AlertTool showWarning:[self window] message:L(@"LQWarningAtLeastOne", @"FaceManager")];	} else {		// get face group object		FaceManager* fm = [m_mainWindowController faceManager];		FaceGroup* g = [fm group:[m_pbGroup indexOfSelectedItem]];				// delete group directory		NSString* path = [FileTool getCustomFaceGroupPath:[[m_mainWindowController me] QQ] group:[g name]];		if([FileTool deleteFile:path]) {			// remove group			[fm removeGroup:[m_pbGroup indexOfSelectedItem]];			[self createGroupMenuItems];			[m_pbGroup selectItemAtIndex:0];						// refresh ui			[m_faceTable reloadData];						// save face.plist to avoid inconsistence			[fm save];		} else {			[AlertTool showWarning:[self window] message:L(@"LQWarningDeleteGroupFailed", @"FaceManager")];		}	}}- (IBAction)onNewGroup:(id)sender {	[NSApp beginSheet:m_inputWindow	   modalForWindow:[self window]		modalDelegate:self	   didEndSelector:@selector(inputSheetDidEnd:returnCode:contextInfo:)		  contextInfo:nil];}- (IBAction)onImportPicture:(id)sender {	// set import type	m_importType = _kImportPicture;		// open open panel	NSOpenPanel* panel = [NSOpenPanel openPanel];	[panel setAllowsMultipleSelection:YES];	[panel setCanChooseDirectories:NO];	[panel setCanChooseFiles:YES];	[panel beginSheetForDirectory:NSHomeDirectory()							 file:nil							types:[NSArray arrayWithObjects:@"jpg", @"gif", nil]				   modalForWindow:[self window]					modalDelegate:self				   didEndSelector:@selector(openPanelDidEnd:returnCode:contextInfo:)					  contextInfo:nil];}- (IBAction)onImportFacePackage:(id)sender {	// set import type	m_importType = _kImportEIP;		// open open panel	NSOpenPanel* panel = [NSOpenPanel openPanel];	[panel setAllowsMultipleSelection:NO];	[panel setCanChooseDirectories:NO];	[panel setCanChooseFiles:YES];	[panel beginSheetForDirectory:NSHomeDirectory()							 file:nil							types:[NSArray arrayWithObject:@"eip"]				   modalForWindow:[self window]					modalDelegate:self				   didEndSelector:@selector(openPanelDidEnd:returnCode:contextInfo:)					  contextInfo:nil];}- (IBAction)onClose:(id)sender {	[[m_mainWindowController faceManager] save];	[self close];}- (IBAction)onInputOK:(id)sender {	[NSApp endSheet:m_inputWindow returnCode:YES];	[m_inputWindow orderOut:self];}- (IBAction)onInputCancel:(id)sender {	[NSApp endSheet:m_inputWindow returnCode:NO];	[m_inputWindow orderOut:self];}- (IBAction)onFaceTableSelectionChanged:(id)sender {	NSIndexSet* rows = [m_faceTable selectedRowIndexes];	int row = [rows firstIndex];	if(row == NSNotFound) {		[m_ivPreview setImage:nil];	} else {		// get face		FaceGroup* g = [[m_mainWindowController faceManager] group:[m_pbGroup indexOfSelectedItem]];		Face* f = [g face:row];				// set new image to image view		NSString* path = [FileTool getCustomFacePath:[[m_mainWindowController me] QQ]											   group:[g name] 												file:[f original]];		NSImage* image = [[[NSImage alloc] initWithContentsOfFile:path] autorelease];		[m_ivPreview setImage:image];		[m_ivPreview setAnimates:[f multiframe]];	}}#pragma mark -#pragma mark sheet delegate- (void)inputSheetDidEnd:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void*)contextInfo {	if(returnCode == YES) {		m_sheetType = _kSheetNewGroup;	}}#pragma mark -#pragma mark open panel delegate- (void)openPanelDidEnd:(NSOpenPanel*)panel returnCode:(int)returnCode contextInfo:(void*)contextInfo {	if(returnCode == NSOKButton) {		switch(m_importType) {			case _kImportEIP:				// load the file				NSString* file = [panel filename];				m_poifs = [[POIFSFileSystem alloc] initWithPath:file];				[m_poifs load];								// get data of face.xml				Property* faceConfig = [m_poifs property:@"/config/face.xml"];				if(!faceConfig)					return;				NSData* data = [m_poifs getFileBytes:faceConfig];								// create xml parser				FaceConfigParser* parser = [[[FaceConfigParser alloc] initWithData:data] autorelease];				[parser parse];								// get face groups				m_importGroups = [[parser groups] retain];				m_importFaces = [[parser faces] retain];								m_sheetType = _kSheetOpen;				break;			case _kImportPicture:				m_importPictures = [[panel filenames] retain];				m_sheetType = _kSheetOpen;				break;		}	}}#pragma mark -#pragma mark table data source- (int)numberOfRowsInTableView:(NSTableView *)aTableView {	int index = [m_pbGroup indexOfSelectedItem];	FaceGroup* g = [[m_mainWindowController faceManager] group:index];	return [g faceCount];}- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex {	int index = [m_pbGroup indexOfSelectedItem];	FaceGroup* g = [[m_mainWindowController faceManager] group:index];		if([[aTableColumn identifier] isEqualToString:@"0"]) {		Face* f = [g face:rowIndex];		NSString* path = [FileTool getCustomFacePath:[[m_mainWindowController me] QQ]											   group:[g name]												file:[f thumbnail]];		return [[[NSImage alloc] initWithContentsOfFile:path] autorelease];	} else		return [[g face:rowIndex] shortcut];}- (void)tableView:(NSTableView *)aTableView setObjectValue:(id)anObject forTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex {	int index = [m_pbGroup indexOfSelectedItem];	FaceGroup* g = [[m_mainWindowController faceManager] group:index];		if([[aTableColumn identifier] isEqualToString:@"1"]) {		Face* f = [g face:rowIndex];		[f setShortcut:anObject];	}}#pragma mark -#pragma mark face table delegate- (void)tableViewSelectionDidChange:(NSNotification *)aNotification {	NSTableView* table = [aNotification object];	if(table == m_faceTable) {		[self onFaceTableSelectionChanged:table];	}}#pragma mark -#pragma mark alert delegate- (void)includeGroupAlertDidEnd:(NSAlert *)alert returnCode:(int)returnCode contextInfo:(void *)contextInfo {	if(returnCode == NSAlertOtherReturn) {		[m_poifs release];		m_poifs = nil;		[m_importGroups release];		m_importGroups = nil;	} else {		m_includeGroup = returnCode == NSAlertDefaultReturn;		m_sheetType = _kSheetIncludeGroup;	}}@end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -