Creammonkey Debug mode
diff -ur /Volumes/Creammonkey/Source/CMController.h Creammonkey/CMController.h
--- /Volumes/Creammonkey/Source/CMController.h 2006-03-22 01:07:05.000000000 +0900
+++ Creammonkey/CMController.h 2006-11-02 00:27:29.000000000 +0900
@@ -12,9 +12,12 @@
NSMutableArray* scripts_;
NSString* scriptDir_;
NSMutableSet* targetPages_;
+
+ BOOL isDebug;
}
- (IBAction) toggleScriptEnable: (id) sender;
+- (IBAction) toggleDebug: (id) sender;
- (IBAction) uninstallSelected: (id) sender;
- (IBAction) orderFrontAboutPanel: (id) sender;
- (IBAction) reloadUserScripts: (id) sender;
diff -ur /Volumes/Creammonkey/Source/CMController.m Creammonkey/CMController.m
--- /Volumes/Creammonkey/Source/CMController.m 2006-07-05 23:28:50.000000000 +0900
+++ Creammonkey/CMController.m 2006-11-02 00:34:43.000000000 +0900
@@ -233,6 +233,9 @@
[webView stringByEvaluatingJavaScriptFromString: @"document.body.__creammonkeyed__ = true;"];
}
+ if (isDebug)
+ [self reloadUserScripts: nil];
+
// Eval!
NSArray* ary = [self matchedScripts: url];
int i;
@@ -248,8 +251,14 @@
[script setEnabled: [sender state] != NSOnState];
[sender setState: [script isEnabled] ? NSOnState : NSOffState];
-
- [self saveScriptsConfig];
+}
+
+- (IBAction) toggleDebug: (id) sender
+{
+ isDebug = !isDebug;
+ [sender setState: isDebug ? NSOnState : NSOffState];
+
+ [self saveScriptsConfig];
}
- (IBAction) uninstallSelected: (id) sender
@@ -305,6 +314,8 @@
scripts_ = nil;
targetPages_ = [[NSMutableSet alloc] init];
+ isDebug = FALSE;
+
[NSBundle loadNibNamed: @"Menu.nib" owner: self];
return self;
diff -ur /Volumes/Creammonkey/Source/English.lproj/Menu.nib/classes.nib Creammonkey/English.lproj/Menu.nib/classes.nib
--- /Volumes/Creammonkey/Source/English.lproj/Menu.nib/classes.nib 2006-03-22 01:07:18.000000000 +0900
+++ Creammonkey/English.lproj/Menu.nib/classes.nib 2006-11-02 00:38:41.000000000 +0900
@@ -4,6 +4,7 @@
ACTIONS = {
orderFrontAboutPanel = id;
reloadUserScripts = id;
+ toggleDebug = id;
toggleScriptEnable = id;
uninstallSelected = id;
};
@@ -12,7 +13,13 @@
OUTLETS = {menu = NSMenu; scriptsController = NSArrayController; };
SUPERCLASS = NSObject;
},
- {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }
+ {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
+ {
+ ACTIONS = {toggleDebug = id; };
+ CLASS = NSArrayController;
+ LANGUAGE = ObjC;
+ SUPERCLASS = NSObjectController;
+ }
);
IBVersion = 1;
}
¥ No newline at end of filediff 取りにくいなぁ……このパッチあててもだめかも。手元では動いているけど……
やった変更:
- Interface Builder で Debug 項目を作成
- FileOwner の Action に toggleDebug: を追加
- その二つを connect
- CMController.{h,m} を編集
これでメニューの Debug にチェックがついているときのみ毎回リロードするようになる。別の言語ファイルとかよくわからんので放置した。