From a22f40a4d384bcb4f8fb3ce4d7d4e6a4b02e55ab Mon Sep 17 00:00:00 2001 From: "sfraser%netscape.com" Date: Thu, 27 Jun 2002 22:03:30 +0000 Subject: [PATCH] Fixing history tab in sidebar to show history. Also hiding history tab by default. git-svn-id: svn://10.0.0.236/trunk@124223 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/camino/BrowserWindow.nib/classes.nib | 1 + mozilla/camino/BrowserWindow.nib/info.nib | 10 +- mozilla/camino/BrowserWindow.nib/objects.nib | Bin 14342 -> 14589 bytes mozilla/camino/BrowserWindowController.mm | 13 ++ mozilla/camino/CHHistoryDataSource.h | 7 +- mozilla/camino/CHHistoryDataSource.mm | 120 ++++++++++++++++++ mozilla/camino/CHRDFOutlineViewDataSource.h | 4 +- mozilla/camino/CHRDFOutlineViewDataSource.mm | 115 ++++++++--------- .../BrowserWindow.nib/classes.nib | 1 + .../English.lproj/BrowserWindow.nib/info.nib | 10 +- .../BrowserWindow.nib/objects.nib | Bin 14342 -> 14589 bytes mozilla/camino/FindDlgController.mm | 1 + .../BrowserWindow.nib/classes.nib | 1 + .../English.lproj/BrowserWindow.nib/info.nib | 10 +- .../BrowserWindow.nib/objects.nib | Bin 14342 -> 14589 bytes .../src/browser/BrowserWindowController.mm | 13 ++ .../src/extensions/RDFOutlineViewDataSource.h | 4 +- .../extensions/RDFOutlineViewDataSource.mm | 115 ++++++++--------- mozilla/camino/src/find/FindDlgController.mm | 1 + .../camino/src/history/HistoryDataSource.h | 7 +- .../camino/src/history/HistoryDataSource.mm | 120 ++++++++++++++++++ mozilla/chimera/BrowserWindow.nib/classes.nib | 1 + mozilla/chimera/BrowserWindow.nib/info.nib | 10 +- mozilla/chimera/BrowserWindow.nib/objects.nib | Bin 14342 -> 14589 bytes mozilla/chimera/BrowserWindowController.mm | 13 ++ mozilla/chimera/CHHistoryDataSource.h | 7 +- mozilla/chimera/CHHistoryDataSource.mm | 120 ++++++++++++++++++ mozilla/chimera/CHRDFOutlineViewDataSource.h | 4 +- mozilla/chimera/CHRDFOutlineViewDataSource.mm | 115 ++++++++--------- .../BrowserWindow.nib/classes.nib | 1 + .../English.lproj/BrowserWindow.nib/info.nib | 10 +- .../BrowserWindow.nib/objects.nib | Bin 14342 -> 14589 bytes mozilla/chimera/FindDlgController.mm | 1 + .../BrowserWindow.nib/classes.nib | 1 + .../English.lproj/BrowserWindow.nib/info.nib | 10 +- .../BrowserWindow.nib/objects.nib | Bin 14342 -> 14589 bytes .../src/browser/BrowserWindowController.mm | 13 ++ .../src/extensions/RDFOutlineViewDataSource.h | 4 +- .../extensions/RDFOutlineViewDataSource.mm | 115 ++++++++--------- mozilla/chimera/src/find/FindDlgController.mm | 1 + .../chimera/src/history/HistoryDataSource.h | 7 +- .../chimera/src/history/HistoryDataSource.mm | 120 ++++++++++++++++++ 42 files changed, 832 insertions(+), 274 deletions(-) diff --git a/mozilla/camino/BrowserWindow.nib/classes.nib b/mozilla/camino/BrowserWindow.nib/classes.nib index 97dfc30f872..97f22639098 100644 --- a/mozilla/camino/BrowserWindow.nib/classes.nib +++ b/mozilla/camino/BrowserWindow.nib/classes.nib @@ -112,6 +112,7 @@ { CLASS = CHHistoryDataSource; LANGUAGE = ObjC; + OUTLETS = {mBrowserWindowController = id; }; SUPERCLASS = CHRDFOutlineViewDataSource; }, {CLASS = CHLocationBar; LANGUAGE = ObjC; SUPERCLASS = NSView; }, diff --git a/mozilla/camino/BrowserWindow.nib/info.nib b/mozilla/camino/BrowserWindow.nib/info.nib index f7881c3a983..dcd5f099040 100644 --- a/mozilla/camino/BrowserWindow.nib/info.nib +++ b/mozilla/camino/BrowserWindow.nib/info.nib @@ -3,15 +3,15 @@ IBDocumentLocation - 41 39 480 309 0 0 1152 746 + 31 46 632 495 0 0 1280 1002 IBEditorPositions 124 305 659 170 144 0 0 1152 848 160 - 478 172 195 666 0 0 1152 848 + 523 326 195 666 0 0 1280 1002 28 - 478 351 195 457 0 0 1152 848 + 523 439 195 457 0 0 1280 1002 297 233 646 176 162 0 0 1152 848 314 @@ -41,6 +41,10 @@ 497 + IBOpenObjects + + 160 + IBSystem Version 5S66 diff --git a/mozilla/camino/BrowserWindow.nib/objects.nib b/mozilla/camino/BrowserWindow.nib/objects.nib index df273de93a74bf1397e4971ebc081b730f0b84f1..f8f0e7211a079e5a2a8d5888ba45cd1af3168c4f 100644 GIT binary patch literal 14589 zcmbVT4SZD9m49~<5)u-U3E@*(2ZgOr3!7M3%vQ+?6V z%dXtv&HKsfwslNinTC}r{aTeGSfyCyt5UVL+O^bm-CcLFNbRfJx?5Xq?ZW=gz3;tw zGa(@sl6T)b_uO;NJ@=e*&pq#@bV_P#zZy=a5^6BUOWxF3v##q?JG(ks*YTy04jr0<9~Rh{XHYkj_3jvo)a&Ce_5JBJr>` z*rvr(2`w5`6Gq0+StMd&KxJpw8Z|!9ky2xv{eFmOmq`#;emJC;Mw*+O)7uqA(Rb}C zB}_wdUo(&j_C(c|L?XCV(e?7qE_pkYo1E3ZoE_1tF|wnBhBr4wn#J(-kiq~R#Yii) zijuzL{Q2`r2J~t>yX0(cQj^+1BBU-HGJyx89kF1aN@HrIP;DF4(56^0vB@wp`q#{_ zqX&aYt~HS@YPc&EOsVLClJMUUlI%$zgZO**dU<{|^UXpWlCPv~AZ3h+mXpK?anibA z5^TmqrTOn6#IhA?RJ|zXMCGgO0<};o&=QS~$=ld#2+pN#TL0EDu|{a+t6(Z2vWHJb z)IqMiE*75d7wY4;ssICNy9)*N z$wVE5GgG;*;gUIua>*QrE(|slYE~FVkzA5Qn;MNS7tbxBR78u@vtLY??pokGkx06f zom0|8Sudq&l6-PB89YQ?2??eT<>u>?{`#t=p$%og1ZU;kd1bXSpoEl&5>|rB4N3yn zIPO(YV!hQm3n>TK0p&m`Q~^d!!ZeTR70F~oI7c&Ao}FEmHdZvB-wRG;=hC%oKPGpv zEqzLlrU~P}O^d_GGo-2Gq;6Ls3!#u15Nn33kZ+PMo_;t#y?vgUJ)6lK6!N_As8@>T z^DHZRwJ2<0Ooq$$V3r3+oF+vvf-vf*~fBe<(TYc)QceA77ZqoU4y~?el@X(BJ}0Z z{fxHuR(lzfYX?%%NL-a(pjRWr=K)N3VK)U?>c93x_H-^?2a7B4tNXd{LnJ4)+0#-| zQb|UiB77D8+SC+*IR4HqL91O2Vm*oC+(TLY^+K^Nnm!|PenHd^2hU_J`qd{jH-|zY zP(oC0)1n&U!htfq#CDagt%!&*a^)Ez>8h>4(5AkGHV_XBY(xL`ffC)<+q+}=q6Z&h z6r&XejVh#3@@2`;X8V?{^E2dp)wdDHL|lrkNLAYlAp#6n9#EmvN?8w_-QL|C37|D=V z8uSkae= zcvku7j^!{@2w0oRq+e^^uE@oth?QY}X{)Zyl7XF}-zR@1EW&myxihH=uKeVLu+gIR z_D>OpPgh~1So3d!X(s!aUeep!r0iI}@$4V;s@uYvL#YWf4j^Dwk0Q5wH%y?0B)YGr zh}bhkXyDOjv0fPaR`xeE2g3Xo_bqW+vGk!L0Y$7Mn zckeFBr1s=0D66OwTlUPg{c1e0IuhR$h{OY(>R>>oZDa1@`JwfrhQjDCGA?}#f{mLM zNwMlElaOMq)2Hi?lFs5z4M+t8P-G zS}+`t$>dmRo0B?CcYHd~y)lv$a~N*|b>=>#Qx{%ckqR%62^q!1v9$mK60dxvmKY2s z!V^F(lhe8g=0y}cpVTi|7fpN}GVk#wE(czOyi2^6wwwUb40MSUe@wBRb&w_`MvTAE z3(V=W6gIl1A~e}c2%3^*~a*`+c@iEIK< zb?EkUEy}*VZho}vBy*$Pv=l;d@$OcZ57-sdFGDq=Wj3R;COU~+<1+T&%#|HtgWcgT zW-PK$rCIJS({9iLDJ}3RwI|@XUX$UDg1etI< zvfik&8P^o@;gAx1q&mOPV8fyfpn|iVcaYY1-XV2PiIrRt&OR~`0ev@UdEu@u7OvXJ zv?DWKYA#=D?jJGVJ!9%m(&>fFL8JsYO&~gwIhG#EuFmIF=sc9|l!zj&ka-{@VUY*2 zJF=ZpU@?#1{e~;w6AR$ChG`qqK2PP{Za6*mA@vYDFSAs3zEVvYDgE z@$rLZKYosK_C;Rv6}_~hqqi65wHkYJ!zR?Aug!Y3wjnQwuU`t{>(2}F{Mbi1uX=AG zDpGI0%~Ef^&DmQeofn`mUshlLW7125ahU9^l~l3;z9XTH#w`SGmr$e6qbPTIAJ5(b zmfPJd{q^jog1r3a*_daANr(ry?>eW=#-uPJgMLE)B_+rO<8K!xOrwPVKH$%8!id}H z*Un#xGFlfeAt`530C`8yv}Lpt*u72yOZ4mn7V3EK1ZF&cV=C3(v}DOfEv7DxtEprt z*sm@QX|W}pZ68a7doS;#G&WVs%U;&s_avv~?GaRn5?hUPZk~BkIgit%n>LoZJ=#g7 ztlVG<Y6elf1=Z(40!v7_aCJO6^RXJU*Kv`9rusLLgt@x-YqGMSZOs?6}pf{9LE z6^UwniC`>0SUbsnWy?h=X9cB{FEx)!DGL^nRH)Ifn^IO^NaK`3V&&;7R?$r%H&NEt z@ydPAx)~$cfOowpW85b)#(gyx82g#7_w9@^kxhAACx4>61>%vdaYe_kfqP&+m(Lez z(5PeR1`Ht6=o>5DD5EWzD?9)6bkZ68!4pavd68UzD|dPYoOp`pnN?AaLfP_oIf|1@ ze2^p-Gch|?oBA7vV3IT2+FJ%vTALQ@r%IliM;O;ofD|z@jo@kTE?n7VFE?vL6^7#~ z*X$w%uUvYOO~Z%vGqaL+ON=NhtB*2BqK*>~6buO-C6k5>@Hgn_SnUA+# zJU=@4F8uz(X+^rYEWB3qMYSIFwn#`58NHEIK8bpTXMj5E>B>T&2W!{5n*gisM z5xZ=?Cs!`bZ=djwI&o&2_(=;MFUHk)$6f50MT3M_Kn&m7{xNf2%Gqidc8 z8F8Jbj@PYe(Vikp2KEth10=kV-v_#~l|oX|o4(BE1wCCu=r)9m-#>%&iXGLk4klL~7skGOw}MQya&2m(EK4Ts zk|S-vuZci0ty4<{K24rOdj~BLtj|+?U>UrH(*3vfYyIo{>2M%lPS6Vis2ug$b<~l6 zgMrews4COTE<&f63^n8UrnlIyF7{>I(;-OU=;0xO*LlZ1Cu0 z^r|LBS=B_NJO=5}m;Isw!ngGIN6DU0E)shet>7y#7up@@Q0g+yaP~LOsjrZ3@xj!$ zc2)k|$CbCoIQbP*ubLS3QO91cyi?2p2VXi{N_Vvtm+=P^I1D8GMOwigRp6#&l%+RS zdS~#S*F7l$xFoM%1(K^SMskWB%{$_Sbl)F~ZtynF)`*hFni-?TrJ_e#X+{p8FMM$2 zTz*@{kh6tz5B)7?oel6wTt^cunE$%Y;O0ml1(?8KBpM9_!{I=R3TzSBGL<>DqAV0} z-f$%Y!4$gHK-8`|29o`1DAF5I!+{=D^9C1tHOUn3jJ?KHHyv3g#cy1T1hmadoLKyB z%`XViQo)|2XPsDyumfMZ{S!By-@BIrBI2fWOp%Srf>sIMlVYPm$~72Cg*GDCvGg_F{%d%WK% z7Yz}IW=Lw3nH+GxaCOo`E@wab-*|1=&0}xKkh`&r0u0KGfm@~g~QkYn+7(5`* zzF}N;4x9InnDglQKFT|}@*XL%yVKmJAtz$hXQukN@<-CGSbm`_Xr|1r?n|3-9`YJ{ zGsE5(t*ngD%@wp(=ZMX*!{&Dnf>iznr6v6>_T^KIemIjXry_Q<#$ zj>2S}2Z#OAahN|e0uEoKQxaG1q2@sXJVGmVIBXsqF=y79n{F|eEd}%)lHk?D=2Fh) znzuq-tb`y7NO7N+B<`l>Qc~ZGa)12+2_N17z%HB`&^(P)&D?M+?!HY-xbhup>WCUH zOGp=I<-FhIY!;q!!{!L}PM6E{3={(By~Id2DPfrAxOh4EO^O8nl34Cp9PD8s02bC- z4U@`+&dHLDMUbKoid<6f+oLdH@q)LJG{LF>Ew@9NVGiPHlnxM@0Jc9$vUPnG26qCQ zFEAUXhG)`(^BUhUS4a%Gz8KMmXGz{E5(^pp02eR%)qr7tkway6og_*p{*|m1T)Gj!Z2?IsMx)_G(>SfGE@^#gRtEgFkg zf(Lh|AE$0QIlDUCAiM4OLfsDo;?-&c@gpy*5owWYm|(RC&_Z1=0mQrJLe#SWLLZ)E zi(%dmSivl(7XuLKi-?KIJq}=@cvw!(P*j*_o{}`=stT`H?k*;K27p4}MZ^cpN4h(P z8;=DK8>MJ6Sf}(D+gIHw7Wld1Zp6J$@J|QPBbW>I+|bsz%Oy;>BL8G zmf@lbw=9p*7pnuwJOyE46)~qOr$Wy9fo{!fYvCp6reU;&Snq?EVdq(N-j7&sIW0Zdg z+`EokLGzf@gAXX&6w+$+D8aG_Tcv^*ic_Hb8gSfmg!kwcJIIkF9ljV(qyTLIWk z6k;NV752ytH%5Ui-*Fer>uzFPui*n8>g$N(>m6ypu4sthgyS#3fhIi&_YlIABtD!W zA}z^$7n@F9Rn#S<^7PGj2hl{_4&j!xkIaa9HtKFFfx1p(J1@oDnO-be7%oC%wCNY1 zjdD{`#5*L;%#iqkz{A+6=$EvG7&Pc!l>DmSj$*g7?l)Z)RYQ-8H> z3*8s6q8Dsi1VuSRSHG{yo?7`WsOz;JeqwK|_bN$zh~A@ZA!`!Vx{lU%HQMh+9>iGM zA}Aq8akx9uPra+ut@O5II%X|Dg+bZFWhd?Ol_QYzUx75uF75<9#d-(jltih!9^cB! zB8o%B!N8P=NWJ_3{X#gxLMU-5k0JiGqIzw6Tcfb3%{aG9cX!n!jBs2dpGiZKK0dBHko!I{rYlh)K!p5R6zCkQyl_A~C^4sx!pw(7 zVWdZdcI8Itu~X!ql7K(CQ5(#&>eXC5!B1%W85`lD47y8011Wb%jv$k0SzORQ0+sdC z-+Z{R{RAtQ0mB6zBw%Gy{FMg&NW+ESFKFURXh$-ULcnr>j`)1R_sfoXvCC-1#@WPC z!po6i`kEt%tDJqoqB0Q6S=?8_eN#}iIKq8Xt%o?%aF5CmA^aO>FQfSpXO9B-dCpd% zd5^Pu0Q`rWarp^n-$MhF9|obzxo@7eg8L=|>l|nIqUR7kh_Z5=eFpdVJZTFWq*}+( z{3k*Wns4B}Et+3*_6uu1XCK4;cRAZ(p(yhski=&fRRI0{r*T1H>LE10H=l0gRo-eX}ft$$h{Yl_CKKdH55N7vVS8%onaFnS&4>%U%%V-X8wiV4!p-MD+xbl58U*l{6 z8WfZ=Xi7MH3C(fNzHHskS;V@OvmaWAQBShE7g(JE&@`{X=l>*m?kY={XJ z%;vsJtPMB-p#L7upe>Z-*p29^#*Y<7)ykU5*-6m3-gGg-qa$MepQqlaDv$ueH7KQ>6 z(;=3%dM@B!!jZs&)_MW`5Pqx&IqL`fF{B)5z7WO*m5MjfyusP)Rv$u&HO%lh3npPf zcYW4}IeQwk@8s+T>qc0Tl3QkJ&_0l0Lf4_$%h`M|VEDT=3oH1%)yUaZfd4nl0r)8U z-Hq-`xNoj?C1-zbA?2(^_s=*x4fs6nyVP3N4Z#0!W}$hWvqvmQSc?0qN(;tHEASmG zm$iJob@eALM3Ym1?AwOXe(tNamUiKBCui%>AS52c!2jUv6*T8jFSnL(wirElB)c#^ zg<+R+--mJk&nN|>(Oc2|6a>KiX^gcNaJJBz$JvhozmKzT1OC}Lxc>oX2XT)j`5lOq z<83mU8vLMv75xDyFIHHHr*Uh9vzWD*vnv4u;0ZJ!y$j9JsUY!t&fdZOscMXz$$fJy z{N)#XPk9Nh&Hj-qWH7(r>sGu##QnXTwdc6+ svRo;4Ld2I7v>|e3k9p=S?(p-aEFxHKM{AoF(t<1Td6zn<(I4>rKM-DLumAu6 literal 14342 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 OPvKg|P?G+V?f(JY0Q{f; diff --git a/mozilla/camino/BrowserWindowController.mm b/mozilla/camino/BrowserWindowController.mm index a9781ab23bb..a52c9f3ab5a 100644 --- a/mozilla/camino/BrowserWindowController.mm +++ b/mozilla/camino/BrowserWindowController.mm @@ -967,8 +967,10 @@ static NSString *SearchToolbarItemIdentifier = @"Search Toolbar Item"; [panelsItem setView:[[mSidebarSourceTabView tabViewItemAtIndex:3] view]]; #endif + // remove default tab from nib [mSidebarTabView removeTabViewItem:[mSidebarTabView tabViewItemAtIndex:0]]; + // insert the tabs we want [mSidebarTabView insertTabViewItem:bookItem atIndex:0]; [mSidebarTabView insertTabViewItem:histItem atIndex:1]; #if USE_SEARCH_ITEM @@ -978,6 +980,17 @@ static NSString *SearchToolbarItemIdentifier = @"Search Toolbar Item"; [mSidebarTabView insertTabViewItem:panelsItem atIndex:3]; #endif + BOOL showHistory = NO; + nsCOMPtr pref(do_GetService("@mozilla.org/preferences-service;1")); + if (pref) { + PRBool historyPref = PR_FALSE; + if (NS_SUCCEEDED(pref->GetBoolPref("chimera.show_history", &historyPref))) + showHistory = historyPref ? YES : NO; + } + + if (!showHistory) + [mSidebarTabView removeTabViewItem:[mSidebarTabView tabViewItemAtIndex:1]]; + [mSidebarTabView selectFirstTabViewItem:self]; } diff --git a/mozilla/camino/CHHistoryDataSource.h b/mozilla/camino/CHHistoryDataSource.h index eb883d8340a..cad776e0291 100644 --- a/mozilla/camino/CHHistoryDataSource.h +++ b/mozilla/camino/CHHistoryDataSource.h @@ -10,8 +10,13 @@ #import "CHRDFOutlineViewDataSource.h" -@interface CHHistoryDataSource : CHRDFOutlineViewDataSource { +@interface CHHistoryDataSource : CHRDFOutlineViewDataSource +{ + + IBOutlet id mBrowserWindowController; } +-(IBAction)openHistoryItem: (id)aSender; + @end diff --git a/mozilla/camino/CHHistoryDataSource.mm b/mozilla/camino/CHHistoryDataSource.mm index 2edda3125a4..8682fc2ca47 100644 --- a/mozilla/camino/CHHistoryDataSource.mm +++ b/mozilla/camino/CHHistoryDataSource.mm @@ -7,11 +7,15 @@ // #import "CHHistoryDataSource.h" +#import "CHBrowserView.h" #include "nsIRDFService.h" #include "nsIRDFDataSource.h" #include "nsIRDFResource.h" +#include "nsXPIDLString.h" +#include "nsString.h" + #include "nsComponentManagerUtils.h" @implementation CHHistoryDataSource @@ -26,7 +30,123 @@ mRDFService->GetResource("NC:HistoryByDate", &mRootResource); [mOutlineView setTarget: self]; + [mOutlineView setDoubleAction: @selector(openHistoryItem:)]; + [mOutlineView reloadData]; } +- (id) outlineView: (NSOutlineView*) aOutlineView objectValueForTableColumn: (NSTableColumn*) aTableColumn + byItem: (id) aItem +{ + NSMutableAttributedString *cellValue = [[NSMutableAttributedString alloc] init]; + + if (!mDataSource || !aItem) + return nil; + + // The table column's identifier is the RDF Resource URI of the property being displayed in + // that column, e.g. "http://home.netscape.com/NC-rdf#Name" + NSString* columnPropertyURI = [aTableColumn identifier]; + + nsCOMPtr propertyResource; + mRDFService->GetResource([columnPropertyURI cString], getter_AddRefs(propertyResource)); + + nsCOMPtr resource = dont_AddRef([aItem resource]); + + nsCOMPtr valueNode; + mDataSource->GetTarget(resource, propertyResource, PR_TRUE, getter_AddRefs(valueNode)); + if (!valueNode) { + NSLog(@"ValueNode is null!"); + return nil; + } + + nsCOMPtr valueLiteral(do_QueryInterface(valueNode)); + if (!valueLiteral) + return nil; + + nsXPIDLString literalValue; + valueLiteral->GetValue(getter_Copies(literalValue)); + + //Set cell's textual contents + [cellValue replaceCharactersInRange:NSMakeRange(0, [cellValue length]) withString:[NSString stringWithCharacters: literalValue.get() length:literalValue.Length()]]; + + if ([columnPropertyURI isEqualToString: @"http://home.netscape.com/NC-rdf#Name"]) + { + NSMutableAttributedString *attachmentAttrString = nil; + NSFileWrapper *fileWrapper = [[NSFileWrapper alloc] initRegularFileWithContents:nil]; + NSTextAttachment *textAttachment = [[NSTextAttachment alloc] initWithFileWrapper:fileWrapper]; + NSCell *attachmentAttrStringCell; + + //Create an attributed string to hold the empty attachment, then release the components. + attachmentAttrString = [[NSMutableAttributedString attributedStringWithAttachment:textAttachment] retain]; + [textAttachment release]; + [fileWrapper release]; + + //Get the cell of the text attachment. + attachmentAttrStringCell = (NSCell *)[(NSTextAttachment *)[attachmentAttrString attribute: + NSAttachmentAttributeName atIndex:0 effectiveRange:nil] attachmentCell]; + + if ([self outlineView:mOutlineView isItemExpandable:aItem]) { + [attachmentAttrStringCell setImage:[NSImage imageNamed:@"folder"]]; + } + else + [attachmentAttrStringCell setImage:[NSImage imageNamed:@"smallbookmark"]]; + + //Insert the image + [cellValue replaceCharactersInRange:NSMakeRange(0, 0) withAttributedString:attachmentAttrString]; + + //Tweak the baseline to vertically center the text. + [cellValue addAttribute:NSBaselineOffsetAttributeName + value:[NSNumber numberWithFloat:-5.0] + range:NSMakeRange(0, 1)]; + } + + return cellValue; +} + +-(IBAction)openHistoryItem: (id)aSender +{ + int index = [mOutlineView selectedRow]; + if (index == -1) + return; + + id item = [mOutlineView itemAtRow: index]; + if (!item) + return; + + // expand if collapsed and double click + if ([mOutlineView isExpandable: item]) { + if ([mOutlineView isItemExpanded: item]) + [mOutlineView collapseItem: item]; + else + [mOutlineView expandItem: item]; + + return; + } + + // get uri + nsCOMPtr propertyResource; + mRDFService->GetResource("http://home.netscape.com/NC-rdf#URL", getter_AddRefs(propertyResource)); + + nsCOMPtr resource = dont_AddRef([item resource]); + + nsCOMPtr valueNode; + mDataSource->GetTarget(resource, propertyResource, PR_TRUE, getter_AddRefs(valueNode)); + if (!valueNode) { + NSLog(@"ValueNode is null!"); + return; + } + + nsCOMPtr valueLiteral(do_QueryInterface(valueNode)); + if (!valueLiteral) + return; + + nsXPIDLString literalValue; + valueLiteral->GetValue(getter_Copies(literalValue)); + + NSString* url = [NSString stringWithCharacters: literalValue.get() length: literalValue.Length()]; + [[[mBrowserWindowController getBrowserWrapper] getBrowserView] loadURI: url flags: NSLoadFlagsNone]; + // Focus and activate our content area. + [[[mBrowserWindowController getBrowserWrapper] getBrowserView] setActive: YES]; +} + @end diff --git a/mozilla/camino/CHRDFOutlineViewDataSource.h b/mozilla/camino/CHRDFOutlineViewDataSource.h index 5d08e5d8df6..2d66e0ef490 100644 --- a/mozilla/camino/CHRDFOutlineViewDataSource.h +++ b/mozilla/camino/CHRDFOutlineViewDataSource.h @@ -50,9 +50,11 @@ class nsIRDFService; nsIRDFContainer* mContainer; nsIRDFContainerUtils* mContainerUtils; nsIRDFResource* mRootResource; - nsIRDFService* mRDFService; + nsIRDFService* mRDFService; IBOutlet id mOutlineView; + + NSMutableDictionary* mDictionary; } // Initialization Methods diff --git a/mozilla/camino/CHRDFOutlineViewDataSource.mm b/mozilla/camino/CHRDFOutlineViewDataSource.mm index 1cd6d5c8826..8eb331fa9f8 100644 --- a/mozilla/camino/CHRDFOutlineViewDataSource.mm +++ b/mozilla/camino/CHRDFOutlineViewDataSource.mm @@ -69,6 +69,8 @@ mDataSource = nsnull; mRootResource = nsnull; + + mDictionary = [[NSMutableDictionary alloc] initWithCapacity: 30]; } - (void) dealloc @@ -80,29 +82,35 @@ NS_IF_RELEASE(mDataSource); NS_IF_RELEASE(mRootResource); + [mDictionary release]; + [super dealloc]; } - (nsIRDFDataSource*) dataSource { + NS_IF_ADDREF(mDataSource); return mDataSource; } - (nsIRDFResource*) rootResource { + NS_IF_ADDREF(mRootResource); return mRootResource; } - (void) setDataSource: (nsIRDFDataSource*) aDataSource { - NS_IF_RELEASE(mDataSource); + nsIRDFDataSource* oldDataSource = mDataSource; NS_IF_ADDREF(mDataSource = aDataSource); + NS_IF_RELEASE(oldDataSource); } - (void) setRootResource: (nsIRDFResource*) aResource { - NS_IF_RELEASE(mRootResource); + nsIRDFResource* oldResource = mRootResource; NS_IF_ADDREF(mRootResource = aResource); + NS_IF_RELEASE(oldResource); } // @@ -123,7 +131,7 @@ if (!aItem) return YES; // The root is always open - nsCOMPtr itemResource = [aItem resource]; + nsCOMPtr itemResource = dont_AddRef([aItem resource]); PRBool isSeq = PR_FALSE; mContainerUtils->IsSeq(mDataSource, itemResource, &isSeq); @@ -145,7 +153,7 @@ if (!mDataSource) return nil; - nsCOMPtr resource = !aItem ? mRootResource : [aItem resource]; + nsCOMPtr resource = !aItem ? dont_AddRef([self rootResource]) : dont_AddRef([aItem resource]); nsCOMPtr ordinalResource; mContainerUtils->IndexToOrdinalResource(aIndex + 1, getter_AddRefs(ordinalResource)); @@ -159,55 +167,43 @@ if (childResource) return [self MakeWrapperFor:childResource]; } -#if 0 - else { + else + { // Oh well, not a regular container. We need to count, dagnabbit. nsCOMPtr childProperty; mRDFService->GetResource("http://home.netscape.com/NC-rdf#child", getter_AddRefs(childProperty)); - NSLog(@"1"); nsCOMPtr childNodes; mDataSource->GetTargets(resource, childProperty, PR_TRUE, getter_AddRefs(childNodes)); - NSLog(@"2"); - PRBool hasMore = PR_FALSE; - childNodes->HasMoreElements(&hasMore); - - PRInt32 count = 0; - - NSLog(@"3"); nsCOMPtr supp; - while (hasMore && count < aIndex) { + PRInt32 count = 0; + + PRBool hasMore = PR_FALSE; + while (NS_SUCCEEDED(childNodes->HasMoreElements(&hasMore)) && hasMore) + { childNodes->GetNext(getter_AddRefs(supp)); - - NSLog(@"4"); - ++count; - - childNodes->HasMoreElements(&hasMore); - NSLog(@"5"); + if (count == aIndex) + break; + count ++; } + nsCOMPtr childResource(do_QueryInterface(supp)); - NSLog(@"6"); if (childResource) { - NSLog(@"6.5"); - RDFOutlineViewItem* thing = [self MakeWrapperFor:childResource]; - - NSLog(@"thing = %@", thing); - return thing; + return [self MakeWrapperFor:childResource]; } } - NSLog(@"7"); -#endif + return nil; } - (int) outlineView: (NSOutlineView*) aOutlineView numberOfChildrenOfItem: (id) aItem; { if (!mDataSource) - return nil; - - nsCOMPtr resource = !aItem ? mRootResource : [aItem resource]; + return 0; + nsCOMPtr resource = dont_AddRef(aItem ? [aItem resource] : [self rootResource]); + // XXX just assume NC:child is the only containment arc for now nsCOMPtr childProperty; mRDFService->GetResource("http://home.netscape.com/NC-rdf#child", getter_AddRefs(childProperty)); @@ -216,20 +212,16 @@ mDataSource->GetTargets(resource, childProperty, PR_TRUE, getter_AddRefs(childNodes)); PRBool hasMore = PR_FALSE; - childNodes->HasMoreElements(&hasMore); - PRInt32 count = 0; - - while (hasMore) { + + while (NS_SUCCEEDED(childNodes->HasMoreElements(&hasMore)) && hasMore) + { nsCOMPtr supp; childNodes->GetNext(getter_AddRefs(supp)); - - ++count; - - childNodes->HasMoreElements(&hasMore); + count ++; } - if (!count) { + if (count == 0) { nsresult rv = mContainer->Init(mDataSource, resource); if (NS_FAILED(rv)) return 0; @@ -243,27 +235,18 @@ - (id) outlineView: (NSOutlineView*) aOutlineView objectValueForTableColumn: (NSTableColumn*) aTableColumn byItem: (id) aItem { - NSLog(@"*** aItem = %@", aItem); if (!mDataSource || !aItem) return nil; - NSLog(@"1"); - // The table column's identifier is the RDF Resource URI of the property being displayed in // that column, e.g. "http://home.netscape.com/NC-rdf#Name" NSString* columnPropertyURI = [aTableColumn identifier]; - NSLog(@"2"); - nsCOMPtr propertyResource; mRDFService->GetResource([columnPropertyURI cString], getter_AddRefs(propertyResource)); - - NSLog(@"3"); - - nsCOMPtr resource = [aItem resource]; - - NSLog(@"4"); - + + nsCOMPtr resource = dont_AddRef([aItem resource]); + nsCOMPtr valueNode; mDataSource->GetTarget(resource, propertyResource, PR_TRUE, getter_AddRefs(valueNode)); if (!valueNode) { @@ -272,19 +255,13 @@ } nsCOMPtr valueLiteral(do_QueryInterface(valueNode)); - nsXPIDLString str3; - valueLiteral->GetValue(getter_Copies(str3)); - nsCAutoString str2; str2.AssignWithConversion(str3); - NSLog(@"Value = %@", [NSString stringWithCString: str2.get()]); - if (!valueLiteral) return nil; nsXPIDLString literalValue; valueLiteral->GetValue(getter_Copies(literalValue)); - - nsCAutoString str; str.AssignWithConversion(literalValue); - return [NSString stringWithCString: str.get()]; + + return [NSString stringWithCharacters: literalValue.get() length:literalValue.Length()]; } - (void) outlineView: (NSOutlineView*) aOutlineView setObjectValue: (id) aObject @@ -306,6 +283,11 @@ { RDFOutlineViewItem* item = [[[RDFOutlineViewItem alloc] init] autorelease]; [item setResource: aRDFResource]; + // keep a copy around + const char* resourceValue; + aRDFResource->GetValueConst(&resourceValue); + + [mDictionary setObject:item forKey:[NSString stringWithCString:resourceValue]]; return item; } @@ -314,14 +296,23 @@ @implementation RDFOutlineViewItem +- (void) dealloc +{ + NS_IF_RELEASE(mResource); + [super dealloc]; +} + - (nsIRDFResource*) resource { + NS_IF_ADDREF(mResource); return mResource; } - (void) setResource: (nsIRDFResource*) aResource { - mResource = aResource; + nsIRDFResource* oldResource = mResource; + NS_IF_ADDREF(mResource = aResource); + NS_IF_RELEASE(oldResource); } @end diff --git a/mozilla/camino/English.lproj/BrowserWindow.nib/classes.nib b/mozilla/camino/English.lproj/BrowserWindow.nib/classes.nib index 97dfc30f872..97f22639098 100644 --- a/mozilla/camino/English.lproj/BrowserWindow.nib/classes.nib +++ b/mozilla/camino/English.lproj/BrowserWindow.nib/classes.nib @@ -112,6 +112,7 @@ { CLASS = CHHistoryDataSource; LANGUAGE = ObjC; + OUTLETS = {mBrowserWindowController = id; }; SUPERCLASS = CHRDFOutlineViewDataSource; }, {CLASS = CHLocationBar; LANGUAGE = ObjC; SUPERCLASS = NSView; }, diff --git a/mozilla/camino/English.lproj/BrowserWindow.nib/info.nib b/mozilla/camino/English.lproj/BrowserWindow.nib/info.nib index f7881c3a983..dcd5f099040 100644 --- a/mozilla/camino/English.lproj/BrowserWindow.nib/info.nib +++ b/mozilla/camino/English.lproj/BrowserWindow.nib/info.nib @@ -3,15 +3,15 @@ IBDocumentLocation - 41 39 480 309 0 0 1152 746 + 31 46 632 495 0 0 1280 1002 IBEditorPositions 124 305 659 170 144 0 0 1152 848 160 - 478 172 195 666 0 0 1152 848 + 523 326 195 666 0 0 1280 1002 28 - 478 351 195 457 0 0 1152 848 + 523 439 195 457 0 0 1280 1002 297 233 646 176 162 0 0 1152 848 314 @@ -41,6 +41,10 @@ 497 + IBOpenObjects + + 160 + IBSystem Version 5S66 diff --git a/mozilla/camino/English.lproj/BrowserWindow.nib/objects.nib b/mozilla/camino/English.lproj/BrowserWindow.nib/objects.nib index df273de93a74bf1397e4971ebc081b730f0b84f1..f8f0e7211a079e5a2a8d5888ba45cd1af3168c4f 100644 GIT binary patch literal 14589 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 literal 14342 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 OPvKg|P?G+V?f(JY0Q{f; diff --git a/mozilla/camino/FindDlgController.mm b/mozilla/camino/FindDlgController.mm index e3bea8ac6c5..7e4e0d0d182 100644 --- a/mozilla/camino/FindDlgController.mm +++ b/mozilla/camino/FindDlgController.mm @@ -40,6 +40,7 @@ #import "CHFind.h" #include "nsCOMPtr.h" + @implementation FindDlgController - (id)initWithWindowNibName:(NSString *)windowNibName diff --git a/mozilla/camino/resources/localized/English.lproj/BrowserWindow.nib/classes.nib b/mozilla/camino/resources/localized/English.lproj/BrowserWindow.nib/classes.nib index 97dfc30f872..97f22639098 100644 --- a/mozilla/camino/resources/localized/English.lproj/BrowserWindow.nib/classes.nib +++ b/mozilla/camino/resources/localized/English.lproj/BrowserWindow.nib/classes.nib @@ -112,6 +112,7 @@ { CLASS = CHHistoryDataSource; LANGUAGE = ObjC; + OUTLETS = {mBrowserWindowController = id; }; SUPERCLASS = CHRDFOutlineViewDataSource; }, {CLASS = CHLocationBar; LANGUAGE = ObjC; SUPERCLASS = NSView; }, diff --git a/mozilla/camino/resources/localized/English.lproj/BrowserWindow.nib/info.nib b/mozilla/camino/resources/localized/English.lproj/BrowserWindow.nib/info.nib index f7881c3a983..dcd5f099040 100644 --- a/mozilla/camino/resources/localized/English.lproj/BrowserWindow.nib/info.nib +++ b/mozilla/camino/resources/localized/English.lproj/BrowserWindow.nib/info.nib @@ -3,15 +3,15 @@ IBDocumentLocation - 41 39 480 309 0 0 1152 746 + 31 46 632 495 0 0 1280 1002 IBEditorPositions 124 305 659 170 144 0 0 1152 848 160 - 478 172 195 666 0 0 1152 848 + 523 326 195 666 0 0 1280 1002 28 - 478 351 195 457 0 0 1152 848 + 523 439 195 457 0 0 1280 1002 297 233 646 176 162 0 0 1152 848 314 @@ -41,6 +41,10 @@ 497 + IBOpenObjects + + 160 + IBSystem Version 5S66 diff --git a/mozilla/camino/resources/localized/English.lproj/BrowserWindow.nib/objects.nib b/mozilla/camino/resources/localized/English.lproj/BrowserWindow.nib/objects.nib index df273de93a74bf1397e4971ebc081b730f0b84f1..f8f0e7211a079e5a2a8d5888ba45cd1af3168c4f 100644 GIT binary patch literal 14589 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 literal 14342 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 OPvKg|P?G+V?f(JY0Q{f; diff --git a/mozilla/camino/src/browser/BrowserWindowController.mm b/mozilla/camino/src/browser/BrowserWindowController.mm index a9781ab23bb..a52c9f3ab5a 100644 --- a/mozilla/camino/src/browser/BrowserWindowController.mm +++ b/mozilla/camino/src/browser/BrowserWindowController.mm @@ -967,8 +967,10 @@ static NSString *SearchToolbarItemIdentifier = @"Search Toolbar Item"; [panelsItem setView:[[mSidebarSourceTabView tabViewItemAtIndex:3] view]]; #endif + // remove default tab from nib [mSidebarTabView removeTabViewItem:[mSidebarTabView tabViewItemAtIndex:0]]; + // insert the tabs we want [mSidebarTabView insertTabViewItem:bookItem atIndex:0]; [mSidebarTabView insertTabViewItem:histItem atIndex:1]; #if USE_SEARCH_ITEM @@ -978,6 +980,17 @@ static NSString *SearchToolbarItemIdentifier = @"Search Toolbar Item"; [mSidebarTabView insertTabViewItem:panelsItem atIndex:3]; #endif + BOOL showHistory = NO; + nsCOMPtr pref(do_GetService("@mozilla.org/preferences-service;1")); + if (pref) { + PRBool historyPref = PR_FALSE; + if (NS_SUCCEEDED(pref->GetBoolPref("chimera.show_history", &historyPref))) + showHistory = historyPref ? YES : NO; + } + + if (!showHistory) + [mSidebarTabView removeTabViewItem:[mSidebarTabView tabViewItemAtIndex:1]]; + [mSidebarTabView selectFirstTabViewItem:self]; } diff --git a/mozilla/camino/src/extensions/RDFOutlineViewDataSource.h b/mozilla/camino/src/extensions/RDFOutlineViewDataSource.h index 5d08e5d8df6..2d66e0ef490 100644 --- a/mozilla/camino/src/extensions/RDFOutlineViewDataSource.h +++ b/mozilla/camino/src/extensions/RDFOutlineViewDataSource.h @@ -50,9 +50,11 @@ class nsIRDFService; nsIRDFContainer* mContainer; nsIRDFContainerUtils* mContainerUtils; nsIRDFResource* mRootResource; - nsIRDFService* mRDFService; + nsIRDFService* mRDFService; IBOutlet id mOutlineView; + + NSMutableDictionary* mDictionary; } // Initialization Methods diff --git a/mozilla/camino/src/extensions/RDFOutlineViewDataSource.mm b/mozilla/camino/src/extensions/RDFOutlineViewDataSource.mm index 1cd6d5c8826..8eb331fa9f8 100644 --- a/mozilla/camino/src/extensions/RDFOutlineViewDataSource.mm +++ b/mozilla/camino/src/extensions/RDFOutlineViewDataSource.mm @@ -69,6 +69,8 @@ mDataSource = nsnull; mRootResource = nsnull; + + mDictionary = [[NSMutableDictionary alloc] initWithCapacity: 30]; } - (void) dealloc @@ -80,29 +82,35 @@ NS_IF_RELEASE(mDataSource); NS_IF_RELEASE(mRootResource); + [mDictionary release]; + [super dealloc]; } - (nsIRDFDataSource*) dataSource { + NS_IF_ADDREF(mDataSource); return mDataSource; } - (nsIRDFResource*) rootResource { + NS_IF_ADDREF(mRootResource); return mRootResource; } - (void) setDataSource: (nsIRDFDataSource*) aDataSource { - NS_IF_RELEASE(mDataSource); + nsIRDFDataSource* oldDataSource = mDataSource; NS_IF_ADDREF(mDataSource = aDataSource); + NS_IF_RELEASE(oldDataSource); } - (void) setRootResource: (nsIRDFResource*) aResource { - NS_IF_RELEASE(mRootResource); + nsIRDFResource* oldResource = mRootResource; NS_IF_ADDREF(mRootResource = aResource); + NS_IF_RELEASE(oldResource); } // @@ -123,7 +131,7 @@ if (!aItem) return YES; // The root is always open - nsCOMPtr itemResource = [aItem resource]; + nsCOMPtr itemResource = dont_AddRef([aItem resource]); PRBool isSeq = PR_FALSE; mContainerUtils->IsSeq(mDataSource, itemResource, &isSeq); @@ -145,7 +153,7 @@ if (!mDataSource) return nil; - nsCOMPtr resource = !aItem ? mRootResource : [aItem resource]; + nsCOMPtr resource = !aItem ? dont_AddRef([self rootResource]) : dont_AddRef([aItem resource]); nsCOMPtr ordinalResource; mContainerUtils->IndexToOrdinalResource(aIndex + 1, getter_AddRefs(ordinalResource)); @@ -159,55 +167,43 @@ if (childResource) return [self MakeWrapperFor:childResource]; } -#if 0 - else { + else + { // Oh well, not a regular container. We need to count, dagnabbit. nsCOMPtr childProperty; mRDFService->GetResource("http://home.netscape.com/NC-rdf#child", getter_AddRefs(childProperty)); - NSLog(@"1"); nsCOMPtr childNodes; mDataSource->GetTargets(resource, childProperty, PR_TRUE, getter_AddRefs(childNodes)); - NSLog(@"2"); - PRBool hasMore = PR_FALSE; - childNodes->HasMoreElements(&hasMore); - - PRInt32 count = 0; - - NSLog(@"3"); nsCOMPtr supp; - while (hasMore && count < aIndex) { + PRInt32 count = 0; + + PRBool hasMore = PR_FALSE; + while (NS_SUCCEEDED(childNodes->HasMoreElements(&hasMore)) && hasMore) + { childNodes->GetNext(getter_AddRefs(supp)); - - NSLog(@"4"); - ++count; - - childNodes->HasMoreElements(&hasMore); - NSLog(@"5"); + if (count == aIndex) + break; + count ++; } + nsCOMPtr childResource(do_QueryInterface(supp)); - NSLog(@"6"); if (childResource) { - NSLog(@"6.5"); - RDFOutlineViewItem* thing = [self MakeWrapperFor:childResource]; - - NSLog(@"thing = %@", thing); - return thing; + return [self MakeWrapperFor:childResource]; } } - NSLog(@"7"); -#endif + return nil; } - (int) outlineView: (NSOutlineView*) aOutlineView numberOfChildrenOfItem: (id) aItem; { if (!mDataSource) - return nil; - - nsCOMPtr resource = !aItem ? mRootResource : [aItem resource]; + return 0; + nsCOMPtr resource = dont_AddRef(aItem ? [aItem resource] : [self rootResource]); + // XXX just assume NC:child is the only containment arc for now nsCOMPtr childProperty; mRDFService->GetResource("http://home.netscape.com/NC-rdf#child", getter_AddRefs(childProperty)); @@ -216,20 +212,16 @@ mDataSource->GetTargets(resource, childProperty, PR_TRUE, getter_AddRefs(childNodes)); PRBool hasMore = PR_FALSE; - childNodes->HasMoreElements(&hasMore); - PRInt32 count = 0; - - while (hasMore) { + + while (NS_SUCCEEDED(childNodes->HasMoreElements(&hasMore)) && hasMore) + { nsCOMPtr supp; childNodes->GetNext(getter_AddRefs(supp)); - - ++count; - - childNodes->HasMoreElements(&hasMore); + count ++; } - if (!count) { + if (count == 0) { nsresult rv = mContainer->Init(mDataSource, resource); if (NS_FAILED(rv)) return 0; @@ -243,27 +235,18 @@ - (id) outlineView: (NSOutlineView*) aOutlineView objectValueForTableColumn: (NSTableColumn*) aTableColumn byItem: (id) aItem { - NSLog(@"*** aItem = %@", aItem); if (!mDataSource || !aItem) return nil; - NSLog(@"1"); - // The table column's identifier is the RDF Resource URI of the property being displayed in // that column, e.g. "http://home.netscape.com/NC-rdf#Name" NSString* columnPropertyURI = [aTableColumn identifier]; - NSLog(@"2"); - nsCOMPtr propertyResource; mRDFService->GetResource([columnPropertyURI cString], getter_AddRefs(propertyResource)); - - NSLog(@"3"); - - nsCOMPtr resource = [aItem resource]; - - NSLog(@"4"); - + + nsCOMPtr resource = dont_AddRef([aItem resource]); + nsCOMPtr valueNode; mDataSource->GetTarget(resource, propertyResource, PR_TRUE, getter_AddRefs(valueNode)); if (!valueNode) { @@ -272,19 +255,13 @@ } nsCOMPtr valueLiteral(do_QueryInterface(valueNode)); - nsXPIDLString str3; - valueLiteral->GetValue(getter_Copies(str3)); - nsCAutoString str2; str2.AssignWithConversion(str3); - NSLog(@"Value = %@", [NSString stringWithCString: str2.get()]); - if (!valueLiteral) return nil; nsXPIDLString literalValue; valueLiteral->GetValue(getter_Copies(literalValue)); - - nsCAutoString str; str.AssignWithConversion(literalValue); - return [NSString stringWithCString: str.get()]; + + return [NSString stringWithCharacters: literalValue.get() length:literalValue.Length()]; } - (void) outlineView: (NSOutlineView*) aOutlineView setObjectValue: (id) aObject @@ -306,6 +283,11 @@ { RDFOutlineViewItem* item = [[[RDFOutlineViewItem alloc] init] autorelease]; [item setResource: aRDFResource]; + // keep a copy around + const char* resourceValue; + aRDFResource->GetValueConst(&resourceValue); + + [mDictionary setObject:item forKey:[NSString stringWithCString:resourceValue]]; return item; } @@ -314,14 +296,23 @@ @implementation RDFOutlineViewItem +- (void) dealloc +{ + NS_IF_RELEASE(mResource); + [super dealloc]; +} + - (nsIRDFResource*) resource { + NS_IF_ADDREF(mResource); return mResource; } - (void) setResource: (nsIRDFResource*) aResource { - mResource = aResource; + nsIRDFResource* oldResource = mResource; + NS_IF_ADDREF(mResource = aResource); + NS_IF_RELEASE(oldResource); } @end diff --git a/mozilla/camino/src/find/FindDlgController.mm b/mozilla/camino/src/find/FindDlgController.mm index e3bea8ac6c5..7e4e0d0d182 100644 --- a/mozilla/camino/src/find/FindDlgController.mm +++ b/mozilla/camino/src/find/FindDlgController.mm @@ -40,6 +40,7 @@ #import "CHFind.h" #include "nsCOMPtr.h" + @implementation FindDlgController - (id)initWithWindowNibName:(NSString *)windowNibName diff --git a/mozilla/camino/src/history/HistoryDataSource.h b/mozilla/camino/src/history/HistoryDataSource.h index eb883d8340a..cad776e0291 100644 --- a/mozilla/camino/src/history/HistoryDataSource.h +++ b/mozilla/camino/src/history/HistoryDataSource.h @@ -10,8 +10,13 @@ #import "CHRDFOutlineViewDataSource.h" -@interface CHHistoryDataSource : CHRDFOutlineViewDataSource { +@interface CHHistoryDataSource : CHRDFOutlineViewDataSource +{ + + IBOutlet id mBrowserWindowController; } +-(IBAction)openHistoryItem: (id)aSender; + @end diff --git a/mozilla/camino/src/history/HistoryDataSource.mm b/mozilla/camino/src/history/HistoryDataSource.mm index 2edda3125a4..8682fc2ca47 100644 --- a/mozilla/camino/src/history/HistoryDataSource.mm +++ b/mozilla/camino/src/history/HistoryDataSource.mm @@ -7,11 +7,15 @@ // #import "CHHistoryDataSource.h" +#import "CHBrowserView.h" #include "nsIRDFService.h" #include "nsIRDFDataSource.h" #include "nsIRDFResource.h" +#include "nsXPIDLString.h" +#include "nsString.h" + #include "nsComponentManagerUtils.h" @implementation CHHistoryDataSource @@ -26,7 +30,123 @@ mRDFService->GetResource("NC:HistoryByDate", &mRootResource); [mOutlineView setTarget: self]; + [mOutlineView setDoubleAction: @selector(openHistoryItem:)]; + [mOutlineView reloadData]; } +- (id) outlineView: (NSOutlineView*) aOutlineView objectValueForTableColumn: (NSTableColumn*) aTableColumn + byItem: (id) aItem +{ + NSMutableAttributedString *cellValue = [[NSMutableAttributedString alloc] init]; + + if (!mDataSource || !aItem) + return nil; + + // The table column's identifier is the RDF Resource URI of the property being displayed in + // that column, e.g. "http://home.netscape.com/NC-rdf#Name" + NSString* columnPropertyURI = [aTableColumn identifier]; + + nsCOMPtr propertyResource; + mRDFService->GetResource([columnPropertyURI cString], getter_AddRefs(propertyResource)); + + nsCOMPtr resource = dont_AddRef([aItem resource]); + + nsCOMPtr valueNode; + mDataSource->GetTarget(resource, propertyResource, PR_TRUE, getter_AddRefs(valueNode)); + if (!valueNode) { + NSLog(@"ValueNode is null!"); + return nil; + } + + nsCOMPtr valueLiteral(do_QueryInterface(valueNode)); + if (!valueLiteral) + return nil; + + nsXPIDLString literalValue; + valueLiteral->GetValue(getter_Copies(literalValue)); + + //Set cell's textual contents + [cellValue replaceCharactersInRange:NSMakeRange(0, [cellValue length]) withString:[NSString stringWithCharacters: literalValue.get() length:literalValue.Length()]]; + + if ([columnPropertyURI isEqualToString: @"http://home.netscape.com/NC-rdf#Name"]) + { + NSMutableAttributedString *attachmentAttrString = nil; + NSFileWrapper *fileWrapper = [[NSFileWrapper alloc] initRegularFileWithContents:nil]; + NSTextAttachment *textAttachment = [[NSTextAttachment alloc] initWithFileWrapper:fileWrapper]; + NSCell *attachmentAttrStringCell; + + //Create an attributed string to hold the empty attachment, then release the components. + attachmentAttrString = [[NSMutableAttributedString attributedStringWithAttachment:textAttachment] retain]; + [textAttachment release]; + [fileWrapper release]; + + //Get the cell of the text attachment. + attachmentAttrStringCell = (NSCell *)[(NSTextAttachment *)[attachmentAttrString attribute: + NSAttachmentAttributeName atIndex:0 effectiveRange:nil] attachmentCell]; + + if ([self outlineView:mOutlineView isItemExpandable:aItem]) { + [attachmentAttrStringCell setImage:[NSImage imageNamed:@"folder"]]; + } + else + [attachmentAttrStringCell setImage:[NSImage imageNamed:@"smallbookmark"]]; + + //Insert the image + [cellValue replaceCharactersInRange:NSMakeRange(0, 0) withAttributedString:attachmentAttrString]; + + //Tweak the baseline to vertically center the text. + [cellValue addAttribute:NSBaselineOffsetAttributeName + value:[NSNumber numberWithFloat:-5.0] + range:NSMakeRange(0, 1)]; + } + + return cellValue; +} + +-(IBAction)openHistoryItem: (id)aSender +{ + int index = [mOutlineView selectedRow]; + if (index == -1) + return; + + id item = [mOutlineView itemAtRow: index]; + if (!item) + return; + + // expand if collapsed and double click + if ([mOutlineView isExpandable: item]) { + if ([mOutlineView isItemExpanded: item]) + [mOutlineView collapseItem: item]; + else + [mOutlineView expandItem: item]; + + return; + } + + // get uri + nsCOMPtr propertyResource; + mRDFService->GetResource("http://home.netscape.com/NC-rdf#URL", getter_AddRefs(propertyResource)); + + nsCOMPtr resource = dont_AddRef([item resource]); + + nsCOMPtr valueNode; + mDataSource->GetTarget(resource, propertyResource, PR_TRUE, getter_AddRefs(valueNode)); + if (!valueNode) { + NSLog(@"ValueNode is null!"); + return; + } + + nsCOMPtr valueLiteral(do_QueryInterface(valueNode)); + if (!valueLiteral) + return; + + nsXPIDLString literalValue; + valueLiteral->GetValue(getter_Copies(literalValue)); + + NSString* url = [NSString stringWithCharacters: literalValue.get() length: literalValue.Length()]; + [[[mBrowserWindowController getBrowserWrapper] getBrowserView] loadURI: url flags: NSLoadFlagsNone]; + // Focus and activate our content area. + [[[mBrowserWindowController getBrowserWrapper] getBrowserView] setActive: YES]; +} + @end diff --git a/mozilla/chimera/BrowserWindow.nib/classes.nib b/mozilla/chimera/BrowserWindow.nib/classes.nib index 97dfc30f872..97f22639098 100644 --- a/mozilla/chimera/BrowserWindow.nib/classes.nib +++ b/mozilla/chimera/BrowserWindow.nib/classes.nib @@ -112,6 +112,7 @@ { CLASS = CHHistoryDataSource; LANGUAGE = ObjC; + OUTLETS = {mBrowserWindowController = id; }; SUPERCLASS = CHRDFOutlineViewDataSource; }, {CLASS = CHLocationBar; LANGUAGE = ObjC; SUPERCLASS = NSView; }, diff --git a/mozilla/chimera/BrowserWindow.nib/info.nib b/mozilla/chimera/BrowserWindow.nib/info.nib index f7881c3a983..dcd5f099040 100644 --- a/mozilla/chimera/BrowserWindow.nib/info.nib +++ b/mozilla/chimera/BrowserWindow.nib/info.nib @@ -3,15 +3,15 @@ IBDocumentLocation - 41 39 480 309 0 0 1152 746 + 31 46 632 495 0 0 1280 1002 IBEditorPositions 124 305 659 170 144 0 0 1152 848 160 - 478 172 195 666 0 0 1152 848 + 523 326 195 666 0 0 1280 1002 28 - 478 351 195 457 0 0 1152 848 + 523 439 195 457 0 0 1280 1002 297 233 646 176 162 0 0 1152 848 314 @@ -41,6 +41,10 @@ 497 + IBOpenObjects + + 160 + IBSystem Version 5S66 diff --git a/mozilla/chimera/BrowserWindow.nib/objects.nib b/mozilla/chimera/BrowserWindow.nib/objects.nib index df273de93a74bf1397e4971ebc081b730f0b84f1..f8f0e7211a079e5a2a8d5888ba45cd1af3168c4f 100644 GIT binary patch literal 14589 zcmbVT4SZD9m49~<5)u-U3E@*(2ZgOr3!7M3%vQ+?6V z%dXtv&HKsfwslNinTC}r{aTeGSfyCyt5UVL+O^bm-CcLFNbRfJx?5Xq?ZW=gz3;tw zGa(@sl6T)b_uO;NJ@=e*&pq#@bV_P#zZy=a5^6BUOWxF3v##q?JG(ks*YTy04jr0<9~Rh{XHYkj_3jvo)a&Ce_5JBJr>` z*rvr(2`w5`6Gq0+StMd&KxJpw8Z|!9ky2xv{eFmOmq`#;emJC;Mw*+O)7uqA(Rb}C zB}_wdUo(&j_C(c|L?XCV(e?7qE_pkYo1E3ZoE_1tF|wnBhBr4wn#J(-kiq~R#Yii) zijuzL{Q2`r2J~t>yX0(cQj^+1BBU-HGJyx89kF1aN@HrIP;DF4(56^0vB@wp`q#{_ zqX&aYt~HS@YPc&EOsVLClJMUUlI%$zgZO**dU<{|^UXpWlCPv~AZ3h+mXpK?anibA z5^TmqrTOn6#IhA?RJ|zXMCGgO0<};o&=QS~$=ld#2+pN#TL0EDu|{a+t6(Z2vWHJb z)IqMiE*75d7wY4;ssICNy9)*N z$wVE5GgG;*;gUIua>*QrE(|slYE~FVkzA5Qn;MNS7tbxBR78u@vtLY??pokGkx06f zom0|8Sudq&l6-PB89YQ?2??eT<>u>?{`#t=p$%og1ZU;kd1bXSpoEl&5>|rB4N3yn zIPO(YV!hQm3n>TK0p&m`Q~^d!!ZeTR70F~oI7c&Ao}FEmHdZvB-wRG;=hC%oKPGpv zEqzLlrU~P}O^d_GGo-2Gq;6Ls3!#u15Nn33kZ+PMo_;t#y?vgUJ)6lK6!N_As8@>T z^DHZRwJ2<0Ooq$$V3r3+oF+vvf-vf*~fBe<(TYc)QceA77ZqoU4y~?el@X(BJ}0Z z{fxHuR(lzfYX?%%NL-a(pjRWr=K)N3VK)U?>c93x_H-^?2a7B4tNXd{LnJ4)+0#-| zQb|UiB77D8+SC+*IR4HqL91O2Vm*oC+(TLY^+K^Nnm!|PenHd^2hU_J`qd{jH-|zY zP(oC0)1n&U!htfq#CDagt%!&*a^)Ez>8h>4(5AkGHV_XBY(xL`ffC)<+q+}=q6Z&h z6r&XejVh#3@@2`;X8V?{^E2dp)wdDHL|lrkNLAYlAp#6n9#EmvN?8w_-QL|C37|D=V z8uSkae= zcvku7j^!{@2w0oRq+e^^uE@oth?QY}X{)Zyl7XF}-zR@1EW&myxihH=uKeVLu+gIR z_D>OpPgh~1So3d!X(s!aUeep!r0iI}@$4V;s@uYvL#YWf4j^Dwk0Q5wH%y?0B)YGr zh}bhkXyDOjv0fPaR`xeE2g3Xo_bqW+vGk!L0Y$7Mn zckeFBr1s=0D66OwTlUPg{c1e0IuhR$h{OY(>R>>oZDa1@`JwfrhQjDCGA?}#f{mLM zNwMlElaOMq)2Hi?lFs5z4M+t8P-G zS}+`t$>dmRo0B?CcYHd~y)lv$a~N*|b>=>#Qx{%ckqR%62^q!1v9$mK60dxvmKY2s z!V^F(lhe8g=0y}cpVTi|7fpN}GVk#wE(czOyi2^6wwwUb40MSUe@wBRb&w_`MvTAE z3(V=W6gIl1A~e}c2%3^*~a*`+c@iEIK< zb?EkUEy}*VZho}vBy*$Pv=l;d@$OcZ57-sdFGDq=Wj3R;COU~+<1+T&%#|HtgWcgT zW-PK$rCIJS({9iLDJ}3RwI|@XUX$UDg1etI< zvfik&8P^o@;gAx1q&mOPV8fyfpn|iVcaYY1-XV2PiIrRt&OR~`0ev@UdEu@u7OvXJ zv?DWKYA#=D?jJGVJ!9%m(&>fFL8JsYO&~gwIhG#EuFmIF=sc9|l!zj&ka-{@VUY*2 zJF=ZpU@?#1{e~;w6AR$ChG`qqK2PP{Za6*mA@vYDFSAs3zEVvYDgE z@$rLZKYosK_C;Rv6}_~hqqi65wHkYJ!zR?Aug!Y3wjnQwuU`t{>(2}F{Mbi1uX=AG zDpGI0%~Ef^&DmQeofn`mUshlLW7125ahU9^l~l3;z9XTH#w`SGmr$e6qbPTIAJ5(b zmfPJd{q^jog1r3a*_daANr(ry?>eW=#-uPJgMLE)B_+rO<8K!xOrwPVKH$%8!id}H z*Un#xGFlfeAt`530C`8yv}Lpt*u72yOZ4mn7V3EK1ZF&cV=C3(v}DOfEv7DxtEprt z*sm@QX|W}pZ68a7doS;#G&WVs%U;&s_avv~?GaRn5?hUPZk~BkIgit%n>LoZJ=#g7 ztlVG<Y6elf1=Z(40!v7_aCJO6^RXJU*Kv`9rusLLgt@x-YqGMSZOs?6}pf{9LE z6^UwniC`>0SUbsnWy?h=X9cB{FEx)!DGL^nRH)Ifn^IO^NaK`3V&&;7R?$r%H&NEt z@ydPAx)~$cfOowpW85b)#(gyx82g#7_w9@^kxhAACx4>61>%vdaYe_kfqP&+m(Lez z(5PeR1`Ht6=o>5DD5EWzD?9)6bkZ68!4pavd68UzD|dPYoOp`pnN?AaLfP_oIf|1@ ze2^p-Gch|?oBA7vV3IT2+FJ%vTALQ@r%IliM;O;ofD|z@jo@kTE?n7VFE?vL6^7#~ z*X$w%uUvYOO~Z%vGqaL+ON=NhtB*2BqK*>~6buO-C6k5>@Hgn_SnUA+# zJU=@4F8uz(X+^rYEWB3qMYSIFwn#`58NHEIK8bpTXMj5E>B>T&2W!{5n*gisM z5xZ=?Cs!`bZ=djwI&o&2_(=;MFUHk)$6f50MT3M_Kn&m7{xNf2%Gqidc8 z8F8Jbj@PYe(Vikp2KEth10=kV-v_#~l|oX|o4(BE1wCCu=r)9m-#>%&iXGLk4klL~7skGOw}MQya&2m(EK4Ts zk|S-vuZci0ty4<{K24rOdj~BLtj|+?U>UrH(*3vfYyIo{>2M%lPS6Vis2ug$b<~l6 zgMrews4COTE<&f63^n8UrnlIyF7{>I(;-OU=;0xO*LlZ1Cu0 z^r|LBS=B_NJO=5}m;Isw!ngGIN6DU0E)shet>7y#7up@@Q0g+yaP~LOsjrZ3@xj!$ zc2)k|$CbCoIQbP*ubLS3QO91cyi?2p2VXi{N_Vvtm+=P^I1D8GMOwigRp6#&l%+RS zdS~#S*F7l$xFoM%1(K^SMskWB%{$_Sbl)F~ZtynF)`*hFni-?TrJ_e#X+{p8FMM$2 zTz*@{kh6tz5B)7?oel6wTt^cunE$%Y;O0ml1(?8KBpM9_!{I=R3TzSBGL<>DqAV0} z-f$%Y!4$gHK-8`|29o`1DAF5I!+{=D^9C1tHOUn3jJ?KHHyv3g#cy1T1hmadoLKyB z%`XViQo)|2XPsDyumfMZ{S!By-@BIrBI2fWOp%Srf>sIMlVYPm$~72Cg*GDCvGg_F{%d%WK% z7Yz}IW=Lw3nH+GxaCOo`E@wab-*|1=&0}xKkh`&r0u0KGfm@~g~QkYn+7(5`* zzF}N;4x9InnDglQKFT|}@*XL%yVKmJAtz$hXQukN@<-CGSbm`_Xr|1r?n|3-9`YJ{ zGsE5(t*ngD%@wp(=ZMX*!{&Dnf>iznr6v6>_T^KIemIjXry_Q<#$ zj>2S}2Z#OAahN|e0uEoKQxaG1q2@sXJVGmVIBXsqF=y79n{F|eEd}%)lHk?D=2Fh) znzuq-tb`y7NO7N+B<`l>Qc~ZGa)12+2_N17z%HB`&^(P)&D?M+?!HY-xbhup>WCUH zOGp=I<-FhIY!;q!!{!L}PM6E{3={(By~Id2DPfrAxOh4EO^O8nl34Cp9PD8s02bC- z4U@`+&dHLDMUbKoid<6f+oLdH@q)LJG{LF>Ew@9NVGiPHlnxM@0Jc9$vUPnG26qCQ zFEAUXhG)`(^BUhUS4a%Gz8KMmXGz{E5(^pp02eR%)qr7tkway6og_*p{*|m1T)Gj!Z2?IsMx)_G(>SfGE@^#gRtEgFkg zf(Lh|AE$0QIlDUCAiM4OLfsDo;?-&c@gpy*5owWYm|(RC&_Z1=0mQrJLe#SWLLZ)E zi(%dmSivl(7XuLKi-?KIJq}=@cvw!(P*j*_o{}`=stT`H?k*;K27p4}MZ^cpN4h(P z8;=DK8>MJ6Sf}(D+gIHw7Wld1Zp6J$@J|QPBbW>I+|bsz%Oy;>BL8G zmf@lbw=9p*7pnuwJOyE46)~qOr$Wy9fo{!fYvCp6reU;&Snq?EVdq(N-j7&sIW0Zdg z+`EokLGzf@gAXX&6w+$+D8aG_Tcv^*ic_Hb8gSfmg!kwcJIIkF9ljV(qyTLIWk z6k;NV752ytH%5Ui-*Fer>uzFPui*n8>g$N(>m6ypu4sthgyS#3fhIi&_YlIABtD!W zA}z^$7n@F9Rn#S<^7PGj2hl{_4&j!xkIaa9HtKFFfx1p(J1@oDnO-be7%oC%wCNY1 zjdD{`#5*L;%#iqkz{A+6=$EvG7&Pc!l>DmSj$*g7?l)Z)RYQ-8H> z3*8s6q8Dsi1VuSRSHG{yo?7`WsOz;JeqwK|_bN$zh~A@ZA!`!Vx{lU%HQMh+9>iGM zA}Aq8akx9uPra+ut@O5II%X|Dg+bZFWhd?Ol_QYzUx75uF75<9#d-(jltih!9^cB! zB8o%B!N8P=NWJ_3{X#gxLMU-5k0JiGqIzw6Tcfb3%{aG9cX!n!jBs2dpGiZKK0dBHko!I{rYlh)K!p5R6zCkQyl_A~C^4sx!pw(7 zVWdZdcI8Itu~X!ql7K(CQ5(#&>eXC5!B1%W85`lD47y8011Wb%jv$k0SzORQ0+sdC z-+Z{R{RAtQ0mB6zBw%Gy{FMg&NW+ESFKFURXh$-ULcnr>j`)1R_sfoXvCC-1#@WPC z!po6i`kEt%tDJqoqB0Q6S=?8_eN#}iIKq8Xt%o?%aF5CmA^aO>FQfSpXO9B-dCpd% zd5^Pu0Q`rWarp^n-$MhF9|obzxo@7eg8L=|>l|nIqUR7kh_Z5=eFpdVJZTFWq*}+( z{3k*Wns4B}Et+3*_6uu1XCK4;cRAZ(p(yhski=&fRRI0{r*T1H>LE10H=l0gRo-eX}ft$$h{Yl_CKKdH55N7vVS8%onaFnS&4>%U%%V-X8wiV4!p-MD+xbl58U*l{6 z8WfZ=Xi7MH3C(fNzHHskS;V@OvmaWAQBShE7g(JE&@`{X=l>*m?kY={XJ z%;vsJtPMB-p#L7upe>Z-*p29^#*Y<7)ykU5*-6m3-gGg-qa$MepQqlaDv$ueH7KQ>6 z(;=3%dM@B!!jZs&)_MW`5Pqx&IqL`fF{B)5z7WO*m5MjfyusP)Rv$u&HO%lh3npPf zcYW4}IeQwk@8s+T>qc0Tl3QkJ&_0l0Lf4_$%h`M|VEDT=3oH1%)yUaZfd4nl0r)8U z-Hq-`xNoj?C1-zbA?2(^_s=*x4fs6nyVP3N4Z#0!W}$hWvqvmQSc?0qN(;tHEASmG zm$iJob@eALM3Ym1?AwOXe(tNamUiKBCui%>AS52c!2jUv6*T8jFSnL(wirElB)c#^ zg<+R+--mJk&nN|>(Oc2|6a>KiX^gcNaJJBz$JvhozmKzT1OC}Lxc>oX2XT)j`5lOq z<83mU8vLMv75xDyFIHHHr*Uh9vzWD*vnv4u;0ZJ!y$j9JsUY!t&fdZOscMXz$$fJy z{N)#XPk9Nh&Hj-qWH7(r>sGu##QnXTwdc6+ svRo;4Ld2I7v>|e3k9p=S?(p-aEFxHKM{AoF(t<1Td6zn<(I4>rKM-DLumAu6 literal 14342 zcmbtb4|r5pmA`i~O@s4H7q#nM`_Pxk9qyVb2)*x$ML zy*Fw0ZZu&aG#->0>3 zW?3i`66{4?uj~mb2+QRaO2=S2lZ-3i!V%rqMoobh%%q};b$mqU@1574N)Dy9)W@QU zNOGtnnaHG)v6z-Ja)!>M>rFJM?g@5liNUUn78m@j5u#nLK!W{nME6JA+S;<48Dsj^ zt$xBZRPWt`nNVL$TbfFRhMBHc^aR!G$XI1wzdyfCpM{oPUDUj-CE6yN_ks%pbeNH4 z^^9fjzI5pl%Yj~fPf(3!wU$l}ro!675fgYI+7%D2)2L0IVya`k7QQncO5JG~IsGB? z8>m5J;;TElQHumKp^Szq2nqiT$;tNY5wO2=r?=0q=l<2j8B^}ZCcD}7<9X>4uV=Z6IdFHP1(1x(~vBdbqr>vMA~M8rvAVKB@?@S ztcqlDND`R0azIN2Zi^=F3`7%w9&IR~v}j7Ag{Dmtnyv};P19}~85}H7uM37YXo|6= z>6>o4X&S;bUvt`%NvSn~HS42k*>?Jd({SVps$TLV6*X|B4ArdGV#!b>pwxRRJ#yx< zkJ`@?@MuOG|j#+Y71Cf#rU=-bE2^2f<*)HpUQ zdp?#QAInz5?!EyGX5?}?CirhfS)h?IdgjN;K=U~=^Tv)&XMWOalF3+KC`A@;55j;I zKTFj9+@@AWy@r)^wxnroOVeEwSWiD&+_>Jv^a9ByMA zZcB$-ap`nuu~@4d$kH&$n7$jNFzIb61Qm^D{rn=!vNrfbKgj`n)-Fqi2jf~I(-Mdz z6L40t$#OW`IU{4&>oY#F_^-mBEC=%o@O$wRyNwO9FpIJX3$a^S3eN=IHBjXJGj$$j z2lxSYfMkXaTcjs@PA?0$!G}se+mVbVF_#C*^)kgkd2krsC{8k~2`e8jaSZ+C17*6e zzkkb;8+YyI27Q+w{yEU4Wblzl+(HwlwUho)W*C4s)f4CNfo zaxI#cdWs%N;k2OD|?C8S`^S{T2+m8a)OCKc{%( z=imm^s(Z=A(qbEzBXAXyY~5PDGP7Pw(e$JZ#nSzGzg%x-_arlcJG2aZ;y_FzdjbO< z&&YFFwDpFy1IdBj0peX5DH#anwgFm4743tWjIvzeYnG7|#Rh~fBc-q`cD10|1$b@q*X zBZNts`Q~>otA4eDWmmK?wxT89s3a`a@2wJjg9Mfi48+JP;k&wE;ZlQ+VqBzidA-5u zFemt@YSsi8TN5avIBT!+Zj~P-E#A7-w{nG1>x^!JUX@NqWjNO+*wa_>tdVWIw3D=E z7DBOeW7oje7kyB9x+ZiAPuB^r7GoRm%)sA;S;&|3e}l&?F;UOEqN_$c{853vug z0I?O9CpNPK@q9)LbS1nLZL6TCKev#t|OnFfd_97 zh3{OKN)9F>9$(JA{=SOPROPGW;b}~D-cf}=D|k;c@zB#;%7eS&k(gHXgf>Lik>d{x zMPso*C=v-|D5i?S!~&UQU>NaxpwAAs(t%J0)mk8Chb@8hfEJGSN3}?x4-wGNO&)>Y z>=jQzGaBaz_Bo0g@GN4@R#!QD4Nd?N2!SbNCh5XNE|x0d%XWU~qnCE>q=f+Mn6gRf zy@N92C_``r*M}uxD4GechwWf3gmuCL^Cty+l4L_=!2?U<&He2X!Gl=Y>FH&!+IU9r ze_Fw_5SM zPeAgcrhUp$Q0#sA44{=FZNwD8FeTMQSg@CzD4Co*&v%msRbM68KH*zMDokZTgR+gA z)fzs7mM{cP9kJ*D5o$S>?;gvtBhCtsS}ZLq2Q#r~LL&sOB4EnE>9h6u{A$n2Og%j) ze787des#g|<@A|Y?ECxi+tLyRVXPYn@nc%27DA3d)ULrGg2fEnAx(kE!uioN-wl#? z(62tDtu2iB!ig>C+OcJ+SNa9Aa>fz3Fd8)Ef=>^Jz>xk8eBsQf{^hWHXb^o z*jq^r8!tM`U+y5IX!?;Yx9p-&+8u4(dMUO-APxVjgH%)V#WuBw-np(orS~9v-+2Rp zRIg!_`QGPJsaltcdY$){C5&W6J}jGW+l;`A{waUdP%^hP5xw;L+$W`gZBEQ2whFA%0KapQcibR-27O@iila3DL(37k{iqV@S$uA--Bb>8|`mjUjO0O;lSs0bS@ptBs-E6L}oOa7nvg(XYxaKYf`LB##U z3TRIk&-uBXOnCcsqq*OK!ckA2-~*?(AfBRUeo%2rY0#{WPG>Kmy(C|@Ma(L$IU5 zw}I$Tna8TGXnha%i%DeP$1;gL1o&W)w^Is2JUBIrjFklMbl^a|SEeV(E#35_Jg@hF zGJMT~%}QP1V1s~+7CBWpmvcRv4;}|=+z#|F7e*kx4spE$vrJE_R-98bo;$67e3C8% zdw`_JsfBc$I~s@!v_p-0+E!cQ7CqQsQN5tWn4y1)n%lS#nC%N6bbO(rO|C+D!^jH| zmY)(@$my%~w87l(adTBp)RZo`C^)+H(TOhX$`hj+J24{ORAL0qmEYrX5ajvd_3&(G zCwjIW!uKvIUz9XdDWfsK zYTZ;61`pV-Ot7y2XS-t@dxh`)#5k3J!(HG>3L@Ay@w;1o*==5|u5N5pZjEeBDyrkx zTs_+>^=vQc84<(3X*NGdv!L;m$9@Akm#akrd^J44)e8zFWa8+idBBvJkBWs00kdEa z%aFM|Yb>J_PX@1QuYINy*{@aUC6Wn233zGeOVIgTbUycw==|_homXg)Xr|Edgid?^ zgb_bJRi{-Exr6U^OA|gJqJxK0bL5?Xg@1w!a#OO?pNt_)bJ@Y1Qy7Xf5VbqMM#I8~ z)Kl>P8^IAwR4$_k_z?fp`ULxfV82&+Om<)+b{yfo?OlC13M4fu7zSRxDwNP-X|<-D1eKF! zZ?~zNWO1`yA4x}XcG8fek;}cEWvS4Rmg4`J&p|Fv<3Eah`2Pr!KT-EJ-QU&K-w)%i zvwK6k$xmLeX5A02&i?UdFHYlkc={sPPrY5gld}eIyLWUd(OD;<#N60b21P% zZ*DXfHkyLHLLZMFG8-`~w$$k?$Uel}K31XFzaS;vD37eJ{GdxP)vnIl4tdm+`6TA{ zSKbaQZ>6oyM1OMX7E&QpH&=3wNGxTKz^P-9zLf)4M7PP_sG{S&<CK_Hs4IdY5i;N$)V4*D~RJ1=g`_?4w!hKBZ3pnXPi)Ur$HN~531!e_* zkFx<=+=Ck~IJ?5PCcOmf9{#Ac$s+vA-*XU zSGoO;PJ0ia#O*&!6wZ@tX&uGeThv6b$BEx<<1d?b$uZl2ANMomi*M#f|3i zaePzmV-5|P+la_(ijh;J=8kRVa%%M|F}a7>eVN{NZ8Mu1%{Hp}E#Y3NUK zL|B>$_iYsX7|oT653n{mA;F~a0Y*8gwW#1=(-4SX0C&7n@cHKOkhzc8d7B_LYNB2z zR-Pm#&JmOQx0%nK#>eMI%_E1*L!;(OOdqhTfjxG+c@S1er+D^}PII$ij!guO5{ORn z-jfcj9Kt3N&GzE}BI8xD?qX`$4G4DC3fp&!rB(onBl1EQ&5I246oAS(fR_q<;9Oi$ z0v$RsbJA+lPnGfv=r(L28Rl|)mvAiD8Nr?hOO%{d1fvnH4+*?^Grs6>&e^e8gnqGd z0ot%M5^C_g z?*kO#_A*1Pys5x0a&t2#XE%UeS(1QwHGsuE4icK<{A3hsKBkada@57k6JflDntIrm zJF2=YnDO}H};2i)%gl#8VAUF)S`73Z-Pb)<}xmC6QIV0HH;vVctN?qnt@OXR~GEW62t^g%UULNh0a7! zEp^4N990d=hveN%It`~LqvXAs;?A(_>rln*$nS}hDtX^-4RoG!!w76Nn-=+l53IOsIbtK-sfg3{&%w0Yo-Cm% z?p#@N!Q^UY#$o%;vSkxFJ}DPit_eOrUX(6CB+gx0hXv(R>l|(!Pgba=^>vO@tt_qt zNrndGGHT-9y=a?+3=Byk)sezhL}}dwDauwP34fdd0Exfla2t(jMjsA`-Fa%4!|zw; zz%FzdK`T=7x}rN{qcSvz%h*6V7-x`jIf~PIR0KxMM{LKXWtP;)03}Z5TBv~1uyfRL zQxca@sje%56jiCQ%No{j!f7bNfkZtB=LunE8W%>1$kKG7iZiOJp(@Fhr*661hz8Y&pDu zkeXmzQ)0->f%K*(R0t#sb4d=WKE6szrIU$J%(;MR&*&+{=cq5z9qjl*Q30(6JvF+5 zTqzZzx_Y&5>e_6fKU(>lyaJMUy8DtFNjK$rbXR+)78`KAj`Xv%@=?@^`=M*116034 z8>SFp4#urc^pW?v-6=gk2|dDXCmP{wd#58LuQDsH3rO%mgw*(9>@chQEDogt&f^NF zNnPol3=0}E3@R0I_&_?8vu$mK)Ta&DPgO?m3hPlhbw%o1qT-Jc#?%V_grq!)dLN~V zNt7EL(h^y#EV0<=P$&3Y)HcQ^roOg1^eT)=9FScz(f#nby~N984sG<;sF^{_5U%s9 z^>26+K-J{4?W0v&hMhE^S$+1sBC<jMn576IFxG>zi zgw-gA;R5#)usSXO;sJl~;KFxEnz-!d@FoL@VIadZPkQtZ-O6E0uHd^-R0v-sir?Z)#lj*V!23?YH=uY` za0>-COrAvXnWcDaco%S<7W@l%e@yUg_&O8CK94Fk1Cg%lTZ53Op8z_+P z{t^XTV$Kr2tAy`b%fk45v+!X(A^6jvgRQ6iDE=UL8&JP2*!S@T$sWenLxK;X*p9mu z)^&p4XJPYaE8276n+f<)!T%ivhVY8j2)^;oaJd0RSv82fF8H^tQ4V~Fy$*oS3HCK> z_^(m_&w@dm{87R0N3r>DfHPb8uEG1JcI##c57?*ZbC2MEXPpv!zcu(leEtl*S(uBb zEHpg>x$KSBEQC4_mP zG*9^64G{FQ6Ts>4u7)2MD7bEc!F6~) zftIMbunCVb!RxI~!EXW|b8t)#5c=DPB8N${E(!KUw1B+NTe}1w!251km9;|f#a1^Y z3Pemyz*;Q$v#6}Q-NFw0UxL^SXs2~r_-cUxz5Op#zJQzQ7Mg$BS}yqe0LR|yMZgaT zz6Hhn)fT$`fdy5FTKff000t4fWrcBAZymyPTbl&`7NGx#>9v*#ely--y+5~F1z(8w z<4|Q3fB!M`-ynQf;~fU~8x(ItOU8sRFy=RppD;Il7Fjji&;91`XXuJ)eOG%&GMo%8 OPvKg|P?G+V?f(JY0Q{f; diff --git a/mozilla/chimera/BrowserWindowController.mm b/mozilla/chimera/BrowserWindowController.mm index a9781ab23bb..a52c9f3ab5a 100644 --- a/mozilla/chimera/BrowserWindowController.mm +++ b/mozilla/chimera/BrowserWindowController.mm @@ -967,8 +967,10 @@ static NSString *SearchToolbarItemIdentifier = @"Search Toolbar Item"; [panelsItem setView:[[mSidebarSourceTabView tabViewItemAtIndex:3] view]]; #endif + // remove default tab from nib [mSidebarTabView removeTabViewItem:[mSidebarTabView tabViewItemAtIndex:0]]; + // insert the tabs we want [mSidebarTabView insertTabViewItem:bookItem atIndex:0]; [mSidebarTabView insertTabViewItem:histItem atIndex:1]; #if USE_SEARCH_ITEM @@ -978,6 +980,17 @@ static NSString *SearchToolbarItemIdentifier = @"Search Toolbar Item"; [mSidebarTabView insertTabViewItem:panelsItem atIndex:3]; #endif + BOOL showHistory = NO; + nsCOMPtr pref(do_GetService("@mozilla.org/preferences-service;1")); + if (pref) { + PRBool historyPref = PR_FALSE; + if (NS_SUCCEEDED(pref->GetBoolPref("chimera.show_history", &historyPref))) + showHistory = historyPref ? YES : NO; + } + + if (!showHistory) + [mSidebarTabView removeTabViewItem:[mSidebarTabView tabViewItemAtIndex:1]]; + [mSidebarTabView selectFirstTabViewItem:self]; } diff --git a/mozilla/chimera/CHHistoryDataSource.h b/mozilla/chimera/CHHistoryDataSource.h index eb883d8340a..cad776e0291 100644 --- a/mozilla/chimera/CHHistoryDataSource.h +++ b/mozilla/chimera/CHHistoryDataSource.h @@ -10,8 +10,13 @@ #import "CHRDFOutlineViewDataSource.h" -@interface CHHistoryDataSource : CHRDFOutlineViewDataSource { +@interface CHHistoryDataSource : CHRDFOutlineViewDataSource +{ + + IBOutlet id mBrowserWindowController; } +-(IBAction)openHistoryItem: (id)aSender; + @end diff --git a/mozilla/chimera/CHHistoryDataSource.mm b/mozilla/chimera/CHHistoryDataSource.mm index 2edda3125a4..8682fc2ca47 100644 --- a/mozilla/chimera/CHHistoryDataSource.mm +++ b/mozilla/chimera/CHHistoryDataSource.mm @@ -7,11 +7,15 @@ // #import "CHHistoryDataSource.h" +#import "CHBrowserView.h" #include "nsIRDFService.h" #include "nsIRDFDataSource.h" #include "nsIRDFResource.h" +#include "nsXPIDLString.h" +#include "nsString.h" + #include "nsComponentManagerUtils.h" @implementation CHHistoryDataSource @@ -26,7 +30,123 @@ mRDFService->GetResource("NC:HistoryByDate", &mRootResource); [mOutlineView setTarget: self]; + [mOutlineView setDoubleAction: @selector(openHistoryItem:)]; + [mOutlineView reloadData]; } +- (id) outlineView: (NSOutlineView*) aOutlineView objectValueForTableColumn: (NSTableColumn*) aTableColumn + byItem: (id) aItem +{ + NSMutableAttributedString *cellValue = [[NSMutableAttributedString alloc] init]; + + if (!mDataSource || !aItem) + return nil; + + // The table column's identifier is the RDF Resource URI of the property being displayed in + // that column, e.g. "http://home.netscape.com/NC-rdf#Name" + NSString* columnPropertyURI = [aTableColumn identifier]; + + nsCOMPtr propertyResource; + mRDFService->GetResource([columnPropertyURI cString], getter_AddRefs(propertyResource)); + + nsCOMPtr resource = dont_AddRef([aItem resource]); + + nsCOMPtr valueNode; + mDataSource->GetTarget(resource, propertyResource, PR_TRUE, getter_AddRefs(valueNode)); + if (!valueNode) { + NSLog(@"ValueNode is null!"); + return nil; + } + + nsCOMPtr valueLiteral(do_QueryInterface(valueNode)); + if (!valueLiteral) + return nil; + + nsXPIDLString literalValue; + valueLiteral->GetValue(getter_Copies(literalValue)); + + //Set cell's textual contents + [cellValue replaceCharactersInRange:NSMakeRange(0, [cellValue length]) withString:[NSString stringWithCharacters: literalValue.get() length:literalValue.Length()]]; + + if ([columnPropertyURI isEqualToString: @"http://home.netscape.com/NC-rdf#Name"]) + { + NSMutableAttributedString *attachmentAttrString = nil; + NSFileWrapper *fileWrapper = [[NSFileWrapper alloc] initRegularFileWithContents:nil]; + NSTextAttachment *textAttachment = [[NSTextAttachment alloc] initWithFileWrapper:fileWrapper]; + NSCell *attachmentAttrStringCell; + + //Create an attributed string to hold the empty attachment, then release the components. + attachmentAttrString = [[NSMutableAttributedString attributedStringWithAttachment:textAttachment] retain]; + [textAttachment release]; + [fileWrapper release]; + + //Get the cell of the text attachment. + attachmentAttrStringCell = (NSCell *)[(NSTextAttachment *)[attachmentAttrString attribute: + NSAttachmentAttributeName atIndex:0 effectiveRange:nil] attachmentCell]; + + if ([self outlineView:mOutlineView isItemExpandable:aItem]) { + [attachmentAttrStringCell setImage:[NSImage imageNamed:@"folder"]]; + } + else + [attachmentAttrStringCell setImage:[NSImage imageNamed:@"smallbookmark"]]; + + //Insert the image + [cellValue replaceCharactersInRange:NSMakeRange(0, 0) withAttributedString:attachmentAttrString]; + + //Tweak the baseline to vertically center the text. + [cellValue addAttribute:NSBaselineOffsetAttributeName + value:[NSNumber numberWithFloat:-5.0] + range:NSMakeRange(0, 1)]; + } + + return cellValue; +} + +-(IBAction)openHistoryItem: (id)aSender +{ + int index = [mOutlineView selectedRow]; + if (index == -1) + return; + + id item = [mOutlineView itemAtRow: index]; + if (!item) + return; + + // expand if collapsed and double click + if ([mOutlineView isExpandable: item]) { + if ([mOutlineView isItemExpanded: item]) + [mOutlineView collapseItem: item]; + else + [mOutlineView expandItem: item]; + + return; + } + + // get uri + nsCOMPtr propertyResource; + mRDFService->GetResource("http://home.netscape.com/NC-rdf#URL", getter_AddRefs(propertyResource)); + + nsCOMPtr resource = dont_AddRef([item resource]); + + nsCOMPtr valueNode; + mDataSource->GetTarget(resource, propertyResource, PR_TRUE, getter_AddRefs(valueNode)); + if (!valueNode) { + NSLog(@"ValueNode is null!"); + return; + } + + nsCOMPtr valueLiteral(do_QueryInterface(valueNode)); + if (!valueLiteral) + return; + + nsXPIDLString literalValue; + valueLiteral->GetValue(getter_Copies(literalValue)); + + NSString* url = [NSString stringWithCharacters: literalValue.get() length: literalValue.Length()]; + [[[mBrowserWindowController getBrowserWrapper] getBrowserView] loadURI: url flags: NSLoadFlagsNone]; + // Focus and activate our content area. + [[[mBrowserWindowController getBrowserWrapper] getBrowserView] setActive: YES]; +} + @end diff --git a/mozilla/chimera/CHRDFOutlineViewDataSource.h b/mozilla/chimera/CHRDFOutlineViewDataSource.h index 5d08e5d8df6..2d66e0ef490 100644 --- a/mozilla/chimera/CHRDFOutlineViewDataSource.h +++ b/mozilla/chimera/CHRDFOutlineViewDataSource.h @@ -50,9 +50,11 @@ class nsIRDFService; nsIRDFContainer* mContainer; nsIRDFContainerUtils* mContainerUtils; nsIRDFResource* mRootResource; - nsIRDFService* mRDFService; + nsIRDFService* mRDFService; IBOutlet id mOutlineView; + + NSMutableDictionary* mDictionary; } // Initialization Methods diff --git a/mozilla/chimera/CHRDFOutlineViewDataSource.mm b/mozilla/chimera/CHRDFOutlineViewDataSource.mm index 1cd6d5c8826..8eb331fa9f8 100644 --- a/mozilla/chimera/CHRDFOutlineViewDataSource.mm +++ b/mozilla/chimera/CHRDFOutlineViewDataSource.mm @@ -69,6 +69,8 @@ mDataSource = nsnull; mRootResource = nsnull; + + mDictionary = [[NSMutableDictionary alloc] initWithCapacity: 30]; } - (void) dealloc @@ -80,29 +82,35 @@ NS_IF_RELEASE(mDataSource); NS_IF_RELEASE(mRootResource); + [mDictionary release]; + [super dealloc]; } - (nsIRDFDataSource*) dataSource { + NS_IF_ADDREF(mDataSource); return mDataSource; } - (nsIRDFResource*) rootResource { + NS_IF_ADDREF(mRootResource); return mRootResource; } - (void) setDataSource: (nsIRDFDataSource*) aDataSource { - NS_IF_RELEASE(mDataSource); + nsIRDFDataSource* oldDataSource = mDataSource; NS_IF_ADDREF(mDataSource = aDataSource); + NS_IF_RELEASE(oldDataSource); } - (void) setRootResource: (nsIRDFResource*) aResource { - NS_IF_RELEASE(mRootResource); + nsIRDFResource* oldResource = mRootResource; NS_IF_ADDREF(mRootResource = aResource); + NS_IF_RELEASE(oldResource); } // @@ -123,7 +131,7 @@ if (!aItem) return YES; // The root is always open - nsCOMPtr itemResource = [aItem resource]; + nsCOMPtr itemResource = dont_AddRef([aItem resource]); PRBool isSeq = PR_FALSE; mContainerUtils->IsSeq(mDataSource, itemResource, &isSeq); @@ -145,7 +153,7 @@ if (!mDataSource) return nil; - nsCOMPtr resource = !aItem ? mRootResource : [aItem resource]; + nsCOMPtr resource = !aItem ? dont_AddRef([self rootResource]) : dont_AddRef([aItem resource]); nsCOMPtr ordinalResource; mContainerUtils->IndexToOrdinalResource(aIndex + 1, getter_AddRefs(ordinalResource)); @@ -159,55 +167,43 @@ if (childResource) return [self MakeWrapperFor:childResource]; } -#if 0 - else { + else + { // Oh well, not a regular container. We need to count, dagnabbit. nsCOMPtr childProperty; mRDFService->GetResource("http://home.netscape.com/NC-rdf#child", getter_AddRefs(childProperty)); - NSLog(@"1"); nsCOMPtr childNodes; mDataSource->GetTargets(resource, childProperty, PR_TRUE, getter_AddRefs(childNodes)); - NSLog(@"2"); - PRBool hasMore = PR_FALSE; - childNodes->HasMoreElements(&hasMore); - - PRInt32 count = 0; - - NSLog(@"3"); nsCOMPtr supp; - while (hasMore && count < aIndex) { + PRInt32 count = 0; + + PRBool hasMore = PR_FALSE; + while (NS_SUCCEEDED(childNodes->HasMoreElements(&hasMore)) && hasMore) + { childNodes->GetNext(getter_AddRefs(supp)); - - NSLog(@"4"); - ++count; - - childNodes->HasMoreElements(&hasMore); - NSLog(@"5"); + if (count == aIndex) + break; + count ++; } + nsCOMPtr childResource(do_QueryInterface(supp)); - NSLog(@"6"); if (childResource) { - NSLog(@"6.5"); - RDFOutlineViewItem* thing = [self MakeWrapperFor:childResource]; - - NSLog(@"thing = %@", thing); - return thing; + return [self MakeWrapperFor:childResource]; } } - NSLog(@"7"); -#endif + return nil; } - (int) outlineView: (NSOutlineView*) aOutlineView numberOfChildrenOfItem: (id) aItem; { if (!mDataSource) - return nil; - - nsCOMPtr resource = !aItem ? mRootResource : [aItem resource]; + return 0; + nsCOMPtr resource = dont_AddRef(aItem ? [aItem resource] : [self rootResource]); + // XXX just assume NC:child is the only containment arc for now nsCOMPtr childProperty; mRDFService->GetResource("http://home.netscape.com/NC-rdf#child", getter_AddRefs(childProperty)); @@ -216,20 +212,16 @@ mDataSource->GetTargets(resource, childProperty, PR_TRUE, getter_AddRefs(childNodes)); PRBool hasMore = PR_FALSE; - childNodes->HasMoreElements(&hasMore); - PRInt32 count = 0; - - while (hasMore) { + + while (NS_SUCCEEDED(childNodes->HasMoreElements(&hasMore)) && hasMore) + { nsCOMPtr supp; childNodes->GetNext(getter_AddRefs(supp)); - - ++count; - - childNodes->HasMoreElements(&hasMore); + count ++; } - if (!count) { + if (count == 0) { nsresult rv = mContainer->Init(mDataSource, resource); if (NS_FAILED(rv)) return 0; @@ -243,27 +235,18 @@ - (id) outlineView: (NSOutlineView*) aOutlineView objectValueForTableColumn: (NSTableColumn*) aTableColumn byItem: (id) aItem { - NSLog(@"*** aItem = %@", aItem); if (!mDataSource || !aItem) return nil; - NSLog(@"1"); - // The table column's identifier is the RDF Resource URI of the property being displayed in // that column, e.g. "http://home.netscape.com/NC-rdf#Name" NSString* columnPropertyURI = [aTableColumn identifier]; - NSLog(@"2"); - nsCOMPtr propertyResource; mRDFService->GetResource([columnPropertyURI cString], getter_AddRefs(propertyResource)); - - NSLog(@"3"); - - nsCOMPtr resource = [aItem resource]; - - NSLog(@"4"); - + + nsCOMPtr resource = dont_AddRef([aItem resource]); + nsCOMPtr valueNode; mDataSource->GetTarget(resource, propertyResource, PR_TRUE, getter_AddRefs(valueNode)); if (!valueNode) { @@ -272,19 +255,13 @@ } nsCOMPtr valueLiteral(do_QueryInterface(valueNode)); - nsXPIDLString str3; - valueLiteral->GetValue(getter_Copies(str3)); - nsCAutoString str2; str2.AssignWithConversion(str3); - NSLog(@"Value = %@", [NSString stringWithCString: str2.get()]); - if (!valueLiteral) return nil; nsXPIDLString literalValue; valueLiteral->GetValue(getter_Copies(literalValue)); - - nsCAutoString str; str.AssignWithConversion(literalValue); - return [NSString stringWithCString: str.get()]; + + return [NSString stringWithCharacters: literalValue.get() length:literalValue.Length()]; } - (void) outlineView: (NSOutlineView*) aOutlineView setObjectValue: (id) aObject @@ -306,6 +283,11 @@ { RDFOutlineViewItem* item = [[[RDFOutlineViewItem alloc] init] autorelease]; [item setResource: aRDFResource]; + // keep a copy around + const char* resourceValue; + aRDFResource->GetValueConst(&resourceValue); + + [mDictionary setObject:item forKey:[NSString stringWithCString:resourceValue]]; return item; } @@ -314,14 +296,23 @@ @implementation RDFOutlineViewItem +- (void) dealloc +{ + NS_IF_RELEASE(mResource); + [super dealloc]; +} + - (nsIRDFResource*) resource { + NS_IF_ADDREF(mResource); return mResource; } - (void) setResource: (nsIRDFResource*) aResource { - mResource = aResource; + nsIRDFResource* oldResource = mResource; + NS_IF_ADDREF(mResource = aResource); + NS_IF_RELEASE(oldResource); } @end diff --git a/mozilla/chimera/English.lproj/BrowserWindow.nib/classes.nib b/mozilla/chimera/English.lproj/BrowserWindow.nib/classes.nib index 97dfc30f872..97f22639098 100644 --- a/mozilla/chimera/English.lproj/BrowserWindow.nib/classes.nib +++ b/mozilla/chimera/English.lproj/BrowserWindow.nib/classes.nib @@ -112,6 +112,7 @@ { CLASS = CHHistoryDataSource; LANGUAGE = ObjC; + OUTLETS = {mBrowserWindowController = id; }; SUPERCLASS = CHRDFOutlineViewDataSource; }, {CLASS = CHLocationBar; LANGUAGE = ObjC; SUPERCLASS = NSView; }, diff --git a/mozilla/chimera/English.lproj/BrowserWindow.nib/info.nib b/mozilla/chimera/English.lproj/BrowserWindow.nib/info.nib index f7881c3a983..dcd5f099040 100644 --- a/mozilla/chimera/English.lproj/BrowserWindow.nib/info.nib +++ b/mozilla/chimera/English.lproj/BrowserWindow.nib/info.nib @@ -3,15 +3,15 @@ IBDocumentLocation - 41 39 480 309 0 0 1152 746 + 31 46 632 495 0 0 1280 1002 IBEditorPositions 124 305 659 170 144 0 0 1152 848 160 - 478 172 195 666 0 0 1152 848 + 523 326 195 666 0 0 1280 1002 28 - 478 351 195 457 0 0 1152 848 + 523 439 195 457 0 0 1280 1002 297 233 646 176 162 0 0 1152 848 314 @@ -41,6 +41,10 @@ 497 + IBOpenObjects + + 160 + IBSystem Version 5S66 diff --git a/mozilla/chimera/English.lproj/BrowserWindow.nib/objects.nib b/mozilla/chimera/English.lproj/BrowserWindow.nib/objects.nib index df273de93a74bf1397e4971ebc081b730f0b84f1..f8f0e7211a079e5a2a8d5888ba45cd1af3168c4f 100644 GIT binary patch literal 14589 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 literal 14342 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 OPvKg|P?G+V?f(JY0Q{f; diff --git a/mozilla/chimera/FindDlgController.mm b/mozilla/chimera/FindDlgController.mm index e3bea8ac6c5..7e4e0d0d182 100644 --- a/mozilla/chimera/FindDlgController.mm +++ b/mozilla/chimera/FindDlgController.mm @@ -40,6 +40,7 @@ #import "CHFind.h" #include "nsCOMPtr.h" + @implementation FindDlgController - (id)initWithWindowNibName:(NSString *)windowNibName diff --git a/mozilla/chimera/resources/localized/English.lproj/BrowserWindow.nib/classes.nib b/mozilla/chimera/resources/localized/English.lproj/BrowserWindow.nib/classes.nib index 97dfc30f872..97f22639098 100644 --- a/mozilla/chimera/resources/localized/English.lproj/BrowserWindow.nib/classes.nib +++ b/mozilla/chimera/resources/localized/English.lproj/BrowserWindow.nib/classes.nib @@ -112,6 +112,7 @@ { CLASS = CHHistoryDataSource; LANGUAGE = ObjC; + OUTLETS = {mBrowserWindowController = id; }; SUPERCLASS = CHRDFOutlineViewDataSource; }, {CLASS = CHLocationBar; LANGUAGE = ObjC; SUPERCLASS = NSView; }, diff --git a/mozilla/chimera/resources/localized/English.lproj/BrowserWindow.nib/info.nib b/mozilla/chimera/resources/localized/English.lproj/BrowserWindow.nib/info.nib index f7881c3a983..dcd5f099040 100644 --- a/mozilla/chimera/resources/localized/English.lproj/BrowserWindow.nib/info.nib +++ b/mozilla/chimera/resources/localized/English.lproj/BrowserWindow.nib/info.nib @@ -3,15 +3,15 @@ IBDocumentLocation - 41 39 480 309 0 0 1152 746 + 31 46 632 495 0 0 1280 1002 IBEditorPositions 124 305 659 170 144 0 0 1152 848 160 - 478 172 195 666 0 0 1152 848 + 523 326 195 666 0 0 1280 1002 28 - 478 351 195 457 0 0 1152 848 + 523 439 195 457 0 0 1280 1002 297 233 646 176 162 0 0 1152 848 314 @@ -41,6 +41,10 @@ 497 + IBOpenObjects + + 160 + IBSystem Version 5S66 diff --git a/mozilla/chimera/resources/localized/English.lproj/BrowserWindow.nib/objects.nib b/mozilla/chimera/resources/localized/English.lproj/BrowserWindow.nib/objects.nib index df273de93a74bf1397e4971ebc081b730f0b84f1..f8f0e7211a079e5a2a8d5888ba45cd1af3168c4f 100644 GIT binary patch literal 14589 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 literal 14342 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 OPvKg|P?G+V?f(JY0Q{f; diff --git a/mozilla/chimera/src/browser/BrowserWindowController.mm b/mozilla/chimera/src/browser/BrowserWindowController.mm index a9781ab23bb..a52c9f3ab5a 100644 --- a/mozilla/chimera/src/browser/BrowserWindowController.mm +++ b/mozilla/chimera/src/browser/BrowserWindowController.mm @@ -967,8 +967,10 @@ static NSString *SearchToolbarItemIdentifier = @"Search Toolbar Item"; [panelsItem setView:[[mSidebarSourceTabView tabViewItemAtIndex:3] view]]; #endif + // remove default tab from nib [mSidebarTabView removeTabViewItem:[mSidebarTabView tabViewItemAtIndex:0]]; + // insert the tabs we want [mSidebarTabView insertTabViewItem:bookItem atIndex:0]; [mSidebarTabView insertTabViewItem:histItem atIndex:1]; #if USE_SEARCH_ITEM @@ -978,6 +980,17 @@ static NSString *SearchToolbarItemIdentifier = @"Search Toolbar Item"; [mSidebarTabView insertTabViewItem:panelsItem atIndex:3]; #endif + BOOL showHistory = NO; + nsCOMPtr pref(do_GetService("@mozilla.org/preferences-service;1")); + if (pref) { + PRBool historyPref = PR_FALSE; + if (NS_SUCCEEDED(pref->GetBoolPref("chimera.show_history", &historyPref))) + showHistory = historyPref ? YES : NO; + } + + if (!showHistory) + [mSidebarTabView removeTabViewItem:[mSidebarTabView tabViewItemAtIndex:1]]; + [mSidebarTabView selectFirstTabViewItem:self]; } diff --git a/mozilla/chimera/src/extensions/RDFOutlineViewDataSource.h b/mozilla/chimera/src/extensions/RDFOutlineViewDataSource.h index 5d08e5d8df6..2d66e0ef490 100644 --- a/mozilla/chimera/src/extensions/RDFOutlineViewDataSource.h +++ b/mozilla/chimera/src/extensions/RDFOutlineViewDataSource.h @@ -50,9 +50,11 @@ class nsIRDFService; nsIRDFContainer* mContainer; nsIRDFContainerUtils* mContainerUtils; nsIRDFResource* mRootResource; - nsIRDFService* mRDFService; + nsIRDFService* mRDFService; IBOutlet id mOutlineView; + + NSMutableDictionary* mDictionary; } // Initialization Methods diff --git a/mozilla/chimera/src/extensions/RDFOutlineViewDataSource.mm b/mozilla/chimera/src/extensions/RDFOutlineViewDataSource.mm index 1cd6d5c8826..8eb331fa9f8 100644 --- a/mozilla/chimera/src/extensions/RDFOutlineViewDataSource.mm +++ b/mozilla/chimera/src/extensions/RDFOutlineViewDataSource.mm @@ -69,6 +69,8 @@ mDataSource = nsnull; mRootResource = nsnull; + + mDictionary = [[NSMutableDictionary alloc] initWithCapacity: 30]; } - (void) dealloc @@ -80,29 +82,35 @@ NS_IF_RELEASE(mDataSource); NS_IF_RELEASE(mRootResource); + [mDictionary release]; + [super dealloc]; } - (nsIRDFDataSource*) dataSource { + NS_IF_ADDREF(mDataSource); return mDataSource; } - (nsIRDFResource*) rootResource { + NS_IF_ADDREF(mRootResource); return mRootResource; } - (void) setDataSource: (nsIRDFDataSource*) aDataSource { - NS_IF_RELEASE(mDataSource); + nsIRDFDataSource* oldDataSource = mDataSource; NS_IF_ADDREF(mDataSource = aDataSource); + NS_IF_RELEASE(oldDataSource); } - (void) setRootResource: (nsIRDFResource*) aResource { - NS_IF_RELEASE(mRootResource); + nsIRDFResource* oldResource = mRootResource; NS_IF_ADDREF(mRootResource = aResource); + NS_IF_RELEASE(oldResource); } // @@ -123,7 +131,7 @@ if (!aItem) return YES; // The root is always open - nsCOMPtr itemResource = [aItem resource]; + nsCOMPtr itemResource = dont_AddRef([aItem resource]); PRBool isSeq = PR_FALSE; mContainerUtils->IsSeq(mDataSource, itemResource, &isSeq); @@ -145,7 +153,7 @@ if (!mDataSource) return nil; - nsCOMPtr resource = !aItem ? mRootResource : [aItem resource]; + nsCOMPtr resource = !aItem ? dont_AddRef([self rootResource]) : dont_AddRef([aItem resource]); nsCOMPtr ordinalResource; mContainerUtils->IndexToOrdinalResource(aIndex + 1, getter_AddRefs(ordinalResource)); @@ -159,55 +167,43 @@ if (childResource) return [self MakeWrapperFor:childResource]; } -#if 0 - else { + else + { // Oh well, not a regular container. We need to count, dagnabbit. nsCOMPtr childProperty; mRDFService->GetResource("http://home.netscape.com/NC-rdf#child", getter_AddRefs(childProperty)); - NSLog(@"1"); nsCOMPtr childNodes; mDataSource->GetTargets(resource, childProperty, PR_TRUE, getter_AddRefs(childNodes)); - NSLog(@"2"); - PRBool hasMore = PR_FALSE; - childNodes->HasMoreElements(&hasMore); - - PRInt32 count = 0; - - NSLog(@"3"); nsCOMPtr supp; - while (hasMore && count < aIndex) { + PRInt32 count = 0; + + PRBool hasMore = PR_FALSE; + while (NS_SUCCEEDED(childNodes->HasMoreElements(&hasMore)) && hasMore) + { childNodes->GetNext(getter_AddRefs(supp)); - - NSLog(@"4"); - ++count; - - childNodes->HasMoreElements(&hasMore); - NSLog(@"5"); + if (count == aIndex) + break; + count ++; } + nsCOMPtr childResource(do_QueryInterface(supp)); - NSLog(@"6"); if (childResource) { - NSLog(@"6.5"); - RDFOutlineViewItem* thing = [self MakeWrapperFor:childResource]; - - NSLog(@"thing = %@", thing); - return thing; + return [self MakeWrapperFor:childResource]; } } - NSLog(@"7"); -#endif + return nil; } - (int) outlineView: (NSOutlineView*) aOutlineView numberOfChildrenOfItem: (id) aItem; { if (!mDataSource) - return nil; - - nsCOMPtr resource = !aItem ? mRootResource : [aItem resource]; + return 0; + nsCOMPtr resource = dont_AddRef(aItem ? [aItem resource] : [self rootResource]); + // XXX just assume NC:child is the only containment arc for now nsCOMPtr childProperty; mRDFService->GetResource("http://home.netscape.com/NC-rdf#child", getter_AddRefs(childProperty)); @@ -216,20 +212,16 @@ mDataSource->GetTargets(resource, childProperty, PR_TRUE, getter_AddRefs(childNodes)); PRBool hasMore = PR_FALSE; - childNodes->HasMoreElements(&hasMore); - PRInt32 count = 0; - - while (hasMore) { + + while (NS_SUCCEEDED(childNodes->HasMoreElements(&hasMore)) && hasMore) + { nsCOMPtr supp; childNodes->GetNext(getter_AddRefs(supp)); - - ++count; - - childNodes->HasMoreElements(&hasMore); + count ++; } - if (!count) { + if (count == 0) { nsresult rv = mContainer->Init(mDataSource, resource); if (NS_FAILED(rv)) return 0; @@ -243,27 +235,18 @@ - (id) outlineView: (NSOutlineView*) aOutlineView objectValueForTableColumn: (NSTableColumn*) aTableColumn byItem: (id) aItem { - NSLog(@"*** aItem = %@", aItem); if (!mDataSource || !aItem) return nil; - NSLog(@"1"); - // The table column's identifier is the RDF Resource URI of the property being displayed in // that column, e.g. "http://home.netscape.com/NC-rdf#Name" NSString* columnPropertyURI = [aTableColumn identifier]; - NSLog(@"2"); - nsCOMPtr propertyResource; mRDFService->GetResource([columnPropertyURI cString], getter_AddRefs(propertyResource)); - - NSLog(@"3"); - - nsCOMPtr resource = [aItem resource]; - - NSLog(@"4"); - + + nsCOMPtr resource = dont_AddRef([aItem resource]); + nsCOMPtr valueNode; mDataSource->GetTarget(resource, propertyResource, PR_TRUE, getter_AddRefs(valueNode)); if (!valueNode) { @@ -272,19 +255,13 @@ } nsCOMPtr valueLiteral(do_QueryInterface(valueNode)); - nsXPIDLString str3; - valueLiteral->GetValue(getter_Copies(str3)); - nsCAutoString str2; str2.AssignWithConversion(str3); - NSLog(@"Value = %@", [NSString stringWithCString: str2.get()]); - if (!valueLiteral) return nil; nsXPIDLString literalValue; valueLiteral->GetValue(getter_Copies(literalValue)); - - nsCAutoString str; str.AssignWithConversion(literalValue); - return [NSString stringWithCString: str.get()]; + + return [NSString stringWithCharacters: literalValue.get() length:literalValue.Length()]; } - (void) outlineView: (NSOutlineView*) aOutlineView setObjectValue: (id) aObject @@ -306,6 +283,11 @@ { RDFOutlineViewItem* item = [[[RDFOutlineViewItem alloc] init] autorelease]; [item setResource: aRDFResource]; + // keep a copy around + const char* resourceValue; + aRDFResource->GetValueConst(&resourceValue); + + [mDictionary setObject:item forKey:[NSString stringWithCString:resourceValue]]; return item; } @@ -314,14 +296,23 @@ @implementation RDFOutlineViewItem +- (void) dealloc +{ + NS_IF_RELEASE(mResource); + [super dealloc]; +} + - (nsIRDFResource*) resource { + NS_IF_ADDREF(mResource); return mResource; } - (void) setResource: (nsIRDFResource*) aResource { - mResource = aResource; + nsIRDFResource* oldResource = mResource; + NS_IF_ADDREF(mResource = aResource); + NS_IF_RELEASE(oldResource); } @end diff --git a/mozilla/chimera/src/find/FindDlgController.mm b/mozilla/chimera/src/find/FindDlgController.mm index e3bea8ac6c5..7e4e0d0d182 100644 --- a/mozilla/chimera/src/find/FindDlgController.mm +++ b/mozilla/chimera/src/find/FindDlgController.mm @@ -40,6 +40,7 @@ #import "CHFind.h" #include "nsCOMPtr.h" + @implementation FindDlgController - (id)initWithWindowNibName:(NSString *)windowNibName diff --git a/mozilla/chimera/src/history/HistoryDataSource.h b/mozilla/chimera/src/history/HistoryDataSource.h index eb883d8340a..cad776e0291 100644 --- a/mozilla/chimera/src/history/HistoryDataSource.h +++ b/mozilla/chimera/src/history/HistoryDataSource.h @@ -10,8 +10,13 @@ #import "CHRDFOutlineViewDataSource.h" -@interface CHHistoryDataSource : CHRDFOutlineViewDataSource { +@interface CHHistoryDataSource : CHRDFOutlineViewDataSource +{ + + IBOutlet id mBrowserWindowController; } +-(IBAction)openHistoryItem: (id)aSender; + @end diff --git a/mozilla/chimera/src/history/HistoryDataSource.mm b/mozilla/chimera/src/history/HistoryDataSource.mm index 2edda3125a4..8682fc2ca47 100644 --- a/mozilla/chimera/src/history/HistoryDataSource.mm +++ b/mozilla/chimera/src/history/HistoryDataSource.mm @@ -7,11 +7,15 @@ // #import "CHHistoryDataSource.h" +#import "CHBrowserView.h" #include "nsIRDFService.h" #include "nsIRDFDataSource.h" #include "nsIRDFResource.h" +#include "nsXPIDLString.h" +#include "nsString.h" + #include "nsComponentManagerUtils.h" @implementation CHHistoryDataSource @@ -26,7 +30,123 @@ mRDFService->GetResource("NC:HistoryByDate", &mRootResource); [mOutlineView setTarget: self]; + [mOutlineView setDoubleAction: @selector(openHistoryItem:)]; + [mOutlineView reloadData]; } +- (id) outlineView: (NSOutlineView*) aOutlineView objectValueForTableColumn: (NSTableColumn*) aTableColumn + byItem: (id) aItem +{ + NSMutableAttributedString *cellValue = [[NSMutableAttributedString alloc] init]; + + if (!mDataSource || !aItem) + return nil; + + // The table column's identifier is the RDF Resource URI of the property being displayed in + // that column, e.g. "http://home.netscape.com/NC-rdf#Name" + NSString* columnPropertyURI = [aTableColumn identifier]; + + nsCOMPtr propertyResource; + mRDFService->GetResource([columnPropertyURI cString], getter_AddRefs(propertyResource)); + + nsCOMPtr resource = dont_AddRef([aItem resource]); + + nsCOMPtr valueNode; + mDataSource->GetTarget(resource, propertyResource, PR_TRUE, getter_AddRefs(valueNode)); + if (!valueNode) { + NSLog(@"ValueNode is null!"); + return nil; + } + + nsCOMPtr valueLiteral(do_QueryInterface(valueNode)); + if (!valueLiteral) + return nil; + + nsXPIDLString literalValue; + valueLiteral->GetValue(getter_Copies(literalValue)); + + //Set cell's textual contents + [cellValue replaceCharactersInRange:NSMakeRange(0, [cellValue length]) withString:[NSString stringWithCharacters: literalValue.get() length:literalValue.Length()]]; + + if ([columnPropertyURI isEqualToString: @"http://home.netscape.com/NC-rdf#Name"]) + { + NSMutableAttributedString *attachmentAttrString = nil; + NSFileWrapper *fileWrapper = [[NSFileWrapper alloc] initRegularFileWithContents:nil]; + NSTextAttachment *textAttachment = [[NSTextAttachment alloc] initWithFileWrapper:fileWrapper]; + NSCell *attachmentAttrStringCell; + + //Create an attributed string to hold the empty attachment, then release the components. + attachmentAttrString = [[NSMutableAttributedString attributedStringWithAttachment:textAttachment] retain]; + [textAttachment release]; + [fileWrapper release]; + + //Get the cell of the text attachment. + attachmentAttrStringCell = (NSCell *)[(NSTextAttachment *)[attachmentAttrString attribute: + NSAttachmentAttributeName atIndex:0 effectiveRange:nil] attachmentCell]; + + if ([self outlineView:mOutlineView isItemExpandable:aItem]) { + [attachmentAttrStringCell setImage:[NSImage imageNamed:@"folder"]]; + } + else + [attachmentAttrStringCell setImage:[NSImage imageNamed:@"smallbookmark"]]; + + //Insert the image + [cellValue replaceCharactersInRange:NSMakeRange(0, 0) withAttributedString:attachmentAttrString]; + + //Tweak the baseline to vertically center the text. + [cellValue addAttribute:NSBaselineOffsetAttributeName + value:[NSNumber numberWithFloat:-5.0] + range:NSMakeRange(0, 1)]; + } + + return cellValue; +} + +-(IBAction)openHistoryItem: (id)aSender +{ + int index = [mOutlineView selectedRow]; + if (index == -1) + return; + + id item = [mOutlineView itemAtRow: index]; + if (!item) + return; + + // expand if collapsed and double click + if ([mOutlineView isExpandable: item]) { + if ([mOutlineView isItemExpanded: item]) + [mOutlineView collapseItem: item]; + else + [mOutlineView expandItem: item]; + + return; + } + + // get uri + nsCOMPtr propertyResource; + mRDFService->GetResource("http://home.netscape.com/NC-rdf#URL", getter_AddRefs(propertyResource)); + + nsCOMPtr resource = dont_AddRef([item resource]); + + nsCOMPtr valueNode; + mDataSource->GetTarget(resource, propertyResource, PR_TRUE, getter_AddRefs(valueNode)); + if (!valueNode) { + NSLog(@"ValueNode is null!"); + return; + } + + nsCOMPtr valueLiteral(do_QueryInterface(valueNode)); + if (!valueLiteral) + return; + + nsXPIDLString literalValue; + valueLiteral->GetValue(getter_Copies(literalValue)); + + NSString* url = [NSString stringWithCharacters: literalValue.get() length: literalValue.Length()]; + [[[mBrowserWindowController getBrowserWrapper] getBrowserView] loadURI: url flags: NSLoadFlagsNone]; + // Focus and activate our content area. + [[[mBrowserWindowController getBrowserWrapper] getBrowserView] setActive: YES]; +} + @end