From cbffc0589fe8e9f0ce3596e723508227e8315580 Mon Sep 17 00:00:00 2001 From: Mitchell Livingston Date: Sun, 28 Oct 2007 03:10:11 +0000 Subject: [PATCH] allow messages to take multiple rows in message --- .../MessageWindow.nib/classes.nib | 87 ++++++++++++++---- .../English.lproj/MessageWindow.nib/info.nib | 14 ++- .../MessageWindow.nib/keyedobjects.nib | Bin 10880 -> 17369 bytes macosx/MessageWindowController.h | 2 + macosx/MessageWindowController.m | 34 +++++++ macosx/PeerProgressIndicatorCell.m | 1 + 6 files changed, 115 insertions(+), 23 deletions(-) diff --git a/macosx/English.lproj/MessageWindow.nib/classes.nib b/macosx/English.lproj/MessageWindow.nib/classes.nib index 4520368a8..488c2b01a 100644 --- a/macosx/English.lproj/MessageWindow.nib/classes.nib +++ b/macosx/English.lproj/MessageWindow.nib/classes.nib @@ -1,18 +1,69 @@ -{ - IBClasses = ( - {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, - { - ACTIONS = {changeLevel = id; clearLog = id; writeToFile = id; }; - CLASS = MessageWindowController; - LANGUAGE = ObjC; - OUTLETS = { - fDebugWarningField = NSTextField; - fDebugWarningIcon = NSImageView; - fLevelButton = NSPopUpButton; - fMessageTable = NSTableView; - }; - SUPERCLASS = NSWindowController; - } - ); - IBVersion = 1; -} \ No newline at end of file + + + + + IBClasses + + + CLASS + NSApplication + LANGUAGE + ObjC + SUPERCLASS + NSResponder + + + CLASS + NSMenu + LANGUAGE + ObjC + SUPERCLASS + NSObject + + + CLASS + FirstResponder + LANGUAGE + ObjC + SUPERCLASS + NSObject + + + CLASS + NSObject + LANGUAGE + ObjC + + + ACTIONS + + changeLevel + id + clearLog + id + writeToFile + id + + CLASS + MessageWindowController + LANGUAGE + ObjC + OUTLETS + + fDebugWarningField + NSTextField + fDebugWarningIcon + NSImageView + fLevelButton + NSPopUpButton + fMessageTable + NSTableView + + SUPERCLASS + NSWindowController + + + IBVersion + 1 + + diff --git a/macosx/English.lproj/MessageWindow.nib/info.nib b/macosx/English.lproj/MessageWindow.nib/info.nib index 7685cb6e7..12d1e176f 100644 --- a/macosx/English.lproj/MessageWindow.nib/info.nib +++ b/macosx/English.lproj/MessageWindow.nib/info.nib @@ -1,16 +1,20 @@ - + - IBDocumentLocation - 42 94 356 240 0 0 1680 1028 IBFramework Version - 446.1 + 629 + IBLastKnownRelativeProjectPath + ../../../Transmission.xcodeproj + IBOldestOS + 5 IBOpenObjects 5 IBSystem Version - 8R4031 + 9A581 + targetFramework + IBCocoaFramework diff --git a/macosx/English.lproj/MessageWindow.nib/keyedobjects.nib b/macosx/English.lproj/MessageWindow.nib/keyedobjects.nib index 93564910c05aab1098bead0169f31894874fd17f..fd15bf9ad4e35a3f2ac7ecc38b57259c683c2258 100644 GIT binary patch literal 17369 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�Yjye)c=KVD1V?)0Pu}V72mjUoUxv)128R2k=Da9y)v+bQwLNVs_jy$ zt>s9;DM)V8UqrfAbrj`95?C>W3Z=q80Lx+MY?8%osR_7pVfE$9w{J%q$YIH_1EQI=d7#6-hj11>nSaj z2HXBMAUHZ=B6+ami6!~}(6f{)-b?8@J!>Qe65lJ^qM2CrUrWJK22ij{@IlwM8la*n zQL^zEj3(fe z0T&xJmKsM&mQdrV31lD{bPWhRiJDAJp{7#h)HG^3HG`T-&BEh>kpODg3&Hpx=Ri@; zGiEtfXw$Q+yn&%Htf69!WUZOROvLGfG+@B^gm=s9`QfE@! zRc603DhhnNh^7cq!~}Ub+VD%s;rokl%NToPo8+aSDBk^lW=%lbiofUiCZ3UxosdRMDBEG0B<=llHF9$zE`0n}1lzwv)r0jLx zu~q%ihgP>DH*#{`^^+T368mgmU`@|YuI-5naH;3bkW*(F4KOKj(#95LvD>LMD8+aqD9^>=o zG#ZnfIO?E-2gUpm+^x0vh~QetBszam6Ib3WG_a2D0&*N4UpXgb?m^gioYkfZQV~jm zAdyw%DObc39-Kbo@#0MJB61^0GPc3a&7RW_Ey}1vcz?|5gQ#bd)Wa0Bc&JX}*v-g2 zYw-s}clh##cIU^S@K(nUB^$Ao`ht0Wc${E66|!<{L&5Uc8w1_5f`(hqQv_dVF@g|h z9(nqSH@NOWfnadmMZyo}txcM3E;zMZ{V8V(&j+r6eHf0ufn-2?>A)- zeq*pDX&1NlKgU-;8Cqxcp&!Nd$}67_3C&vCq}QUX-TZcn4sR)Bi$MTD<6#h5@Nm>B zvk^Ol7r5gr5)o`%}=g8Yz}m@aJhfB$>{c4psP_GHJ(?B`c>b@RcEK6iK@UoDoI|GiI5 zt;7Tq!U|aPZ=Yo;2eaigOSv0c9$?Ogad0+UPS4h6KzT5fTbjDXg+X~GlqFe~@=ms# zW-0&1miwn?v3+kK#FHB`^ah0ZFQMEv18f|;X6MbwC`iwP@?>cDBQMVg<4d88nx^NQ zps$o2(}Tqe{KBU|iBOvygedo4b;<1zTDuy2rR#pxHOWNC5vaef=dZeVaU8C&Oli>SOU93d}JS1;e(W(_G6k_h4UuxzX;34ZEPsX1?eXFIQvY;R?ZTa`*pU|9aAr* ze%po$k1vg{G+o!cv}K%^i}!WqWIv7nRaL*hPwFDg+tw*=6-?b>FD0X06zxe!aeG|-yL%NSh8sB4T&uP7;C71V}+-F?M zh}0q4{%QTvvolh4y)zTDVzRsF+xKmj!_Rq`dnj+QVVE&9zjHsOsZN2g;FI~!!n^&i z54bS!?4Ywn=Zen{K3{TX$kCy@$(GU$WgCZW8oqtRzLCdAog001%&oBx#yuPVe8S6# zFD5;ie1FP~saMM%PkTRuH`8%egV`2#F$*ZReo^^fp^Uw9qlV6BlY=4>d%I?+mzban$d(*Dcrt;p~P49;P z-Q&IQ2g!$5AJ2c<@p+-5^GIH&`kh;KiH^#M9@KS0%;MOs zaYy4%b~~1EAaPIk9Z6eyZ0@dn|9QVTy5Jevf`_O!W)sf~V%wg&X=$8!%{K%Am+1-(uInc<|Gb(?d24ok>V( zVOi#|KEr#ANF13kDt>hAn7Fa=<6_1~Pl%itJV`aV#gwK~{mO%L$B(i=mTy_Hapk&It5+{sGk5Leb!F=dHe_s! z-xRXhYm4hv-qyFrRaNE#;*8l;f$&(?`#YKO29}?cAT|cU~BMvF9bv%hcr?SJq!0eyzv#me+sY zxOj8Xt-RYockrDvzgOHXz881D>HTkioPV(3Va}tV$MoYYvk|$G?!h zIQMewtGK_Kzm~oJ`sP99skd9+&G~!i`}7a(KQ{iv`*i>F-Y+x0=6wtQUg!IpABTVH zIr_VRz21Ra;tf$bdOF7?V;(}vX^_ZB>6}0 zSAFiJoJ!rLU6nQ`eQd^HU0!BbmR;7v>`i*oH#Vn!PG#=lylLQUR_EK~KkT>1G_@et z+^Mi}f2#lO0qX`94$>5%qLanb2d9>JmHZfTZs-D%SE?@Kmt7gQV0iWj?-B1tZXY#Z zbel1vF?YtUA2$Se!fnEz6L(A+Ho5B**C|h?ZYdu;t;2Nr^t&@w&McVKZnoX*zvi5q zyMErJ`MC=s7kVuGvFOI)%}d5r=$5uy=CbVF@^dTJtQ@r}b9ML{_cgEAZeKTOeVYx` zh7%jdZi?CLwE5na6A@yPA z@cAPPj^-ZI92XqFdScOUeNXzG{Br8x>9R9nXT@h9p4)$Z!G)rWiIUNJi&F_5v{nXth_h#K+@W{ubNE+60~op$f2rN#LQ0I)Ko;aR@aY4z}wBLNPW7 zbyFj%%Nazq$w&B)4yf9GxT9c{3Q0k;!EJpOeDOaZS;q%l_i5lUo&l*kr}0yYq3Tn? zkb*OmS_DZok7z#Kg6>M2={fWP`Uxbh_(OWiNM<8*+lpu9XO(I-(Q2R7U$C`};HA)CI8=CE)L2v|x+e}1S6B}cLti_6!V?A@dI(xVDvG#ec{LOcz-#Gt% z0ew_4fgwS@YIlu|=1Z%mtuMDZ)OJ(5<-v19CWVd*8xuaZ{nUtg9oBZ-AGxd3w$7Wn zY>e6*y{qf7n5(hR;&HdS3GEWox{piR)8kdIddWR{&**b8RjLh4OHZGiaX|MW%RAek z-`e+QZkN18h7b9%{WcZI&4q=x2LumXQDj%Vuq1rQb2786-LT3L3r9tb{yuii`0f*# zN!z9*my4%unbC8W^X#v4AI(3$aQWiV6*wyoL{P>YtnVTb#B9?&!TMV~=qk zIWX=8)Xh$}hyFhA-kv}1JpAxP_N@8yRxjKC)$vWl zTh-t7K3ILc_j&Wz5#KHLqcJ3H^n-xKdPo6#guYi%Kb@ogCP>Ztlj2d0sBkKS8cD69 z&QNb4RZ0WNPb26x^dL>F`|jVX^^ z33l&Mf-q6py-!kkkJG)FG+rPnlz0qfI@Va*0qhUB|7?6}O3XJG+bA&(xc!h^y~X|9*p24JUdGY1FTA zc9T9$lbR(ok82UvGR`x>E5W;mPqMPNZ<=3U|KflO)ukY;ZmvmcHN5r4Huu`ef;)!{ z4?P|(Zr?LvV@I3F^iHcgzl#cqp4#-r4#0yDnd#vkKCwWRAeoArby)0T00Xdj=EA}m$zM|i%m^J?E>TR$E>E>;-+tCOj zCfD~a+h2OH=i$~z8yy#&_k-UL^oV+Iov+}d(OSO_fJ14deq?Y ziKp4mzCJH`@!?gkzqY)=l>u*izZ?8_+52H13P1M#Rs%ho^0 z)JH^CmEUG)!#hLS4UR@sQFd4~l&zuco@t7RgEI8R&HHLQ#Xy-ot+&=065^}sJLQ{0 z**4BlpR6lrUtMo5%I?;^s{Ke)VO#=~J)q6B9Ajs;Jv;u+3|)8?Jou;~H@XYdJ3{>x zy*ZLQvqJefihww-31vYJnkS^au~~8vpgY-`>gPo6Szq&PY2^uiA+{&PfFT_>2du3L z<)!G$Oh{2R&Pm8^GeH|eb&by&pFe%RRX@R8M#yzDLYwLymXQ^;-snM|jaB0*V7#gx z>^ym!GyBgn4$>rMGmRNvCV&ZL+AwVyHBvB+j4Sd4OCH38FzuLD@J@a1<&Kv%^H|oL zRi&qJ28H((O+fX?&!vZVu;rx5nH_QwoiDE2wbm_NwG z#T~imZ%aj_A>9jt2R=T5$Py3H=IYZ-Z0H$W8^1iA7FX~*YJLSZpIT6zkioi1EvX~m zR|S7J=gNhmrS&4*X$hOAP}>h(K@!7#6jh-*RpQk#}go2nrDr%T=f&K7Fx z5^5`I1!1^aQJCA*_F7Sa9o2CGh)E?;yQw|YUTPmQQ2VI^)IkbC04K5l5>Oy_i;d&J zBliF>u>mR}`1VJV5eu9EnM!IOe5wW-}8dZ7CcXFqimoc+hCJr-xb zoGFDExrvM-BUq1rZ3Ld-La=`9$5*X}v@13uUlpUK&OuCmIdvYdq$uhVUPB@3DteFC zL*xg7XApgdAeh{~J{OaoPR78{sbn1K4xV)C26dCV1py8(vmO#<$2L54qJy&n;I*Lc z4)yyI>US>djD`IQbq~7Sr~aTGP!Fj`)MJRpd1Z1l0CK%x9+N(;5Mup6Krcw=D>P|y z$z(E(j2FOCsHfn!e@6XDy<+Fffn;A&UO_#lUQjQ|1Tv9Ks(@i%Q*WTh6fzZ}5|EOw zv%sIC^hxo7pps=SSWT!dTiai6Gl2)y(CZNgDiw>ZgFQb}Qrv*TC zrns0*HVR~ehc!V`OZbouqSZ@jwIzHAd|DmLzX{<<$ioA_4+JQ|3q6c(h00Mm-Ii`g zL70*bfpQq|J0yyNIx<7hGMTIs*(Y&*n=d4&bgDSSHS*vn%LqTFuPlx%UV8-7dzao=MUFxni8NldqNjWuRLTeVfxmD1eO3Hxz zi!9b$)WYi&7;iDOXb0n+VKsT}@ghNIR)uxxWu#<-)Q*b6zF@_=LdN(9dM#}6reY-( z4M*xJAcnSZ*f~62r`NxM+T+?Hh@Vo(Fg7+6J-J@_24@ieSir)K=4vwI+jU9 z@aw@nNue|wYNP;yNA<{8*^%vQF9#6u|8GIm|Gp%MfzvO!(dk$8U-WDG4P8mUrQgwi z)9>jI^hf#={h9tkf2F_C-{~LpPX>|8+?y=~sm%Uq#WBW1?n2H8xFD!DiGdnsW4mI#)|mRs%pKP`#z1N*v&&<3Gpw z^};TuupnDu5iCVhE?K^2{HDLMahoNxjM=0>(RBc1VfCs-xnz(M_NIWslKFP1CB`<($F$xq4B{TdPxx+-$U&*Hk zy34s;Fb9yLDVGP`td~VSRsmUugN_p(&UPxA)|k;|i57hZsD~`u!u%T4SjOqY!lJ0z zg8Y*bmL^pU$2gIaMb%~3TIISdtGH892qX)|a<_^)R!i7FSh5R9S?4M_i-fgXWUUh? zZAU=fPII@9gf((kn@taa?Cl2`XQgj9+)%Pe;9iRi0>d(GIVj*T6bwhAP$rBC2UkY~ z(}C&8L^7Sg?bU^eVxpO@Obipt#4+(qHzt8eWV$m+Ob@0f1D+xBg1jWJ$Y10&c|$76 zTk?+lP2Q6aL9g~ zx=HIwMbdiG`cfOInoB@}O!x27I#Rh*A#E&`NL|5c8Ys1wHkDdQn@F2WWgKQv1T&DR zYOq{f3(G^eGGs?GgehIZlybS+k)f80V?abLM3r4o1GxF8gqvmU;FKE&_qQ_P+T~d4 zDs=~T)s=98vL5Y8tKo`dJl%)RrANbc$5r$m`YL^oehHFZ2{Qg3r27j<_74WZrAG#? zI||{dqYYegl*0wbx=b^s1>*^5jRCY}z*WY9Oer%BJc=us)yx`ZE3*fDOXryD%uVJm z<_+_f`J4H`d}6*Z-_^^E&ckdA)eOd1<^Ho{2Y{H-WdB zx0iQe)%y;Iy^4<9EdS

?&>~_7k@e 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 ZO`WEPb}#%9={yYnxK_$%(|elxe*h#+QBVK? diff --git a/macosx/MessageWindowController.h b/macosx/MessageWindowController.h index 43dbce391..8dcd15755 100644 --- a/macosx/MessageWindowController.h +++ b/macosx/MessageWindowController.h @@ -32,6 +32,8 @@ NSMutableArray * fMessages; + NSDictionary * fAttributes; + NSTimer * fTimer; NSImage * fErrorImage, * fInfoImage, * fDebugImage; diff --git a/macosx/MessageWindowController.m b/macosx/MessageWindowController.m index d3199b97d..b83c659a5 100644 --- a/macosx/MessageWindowController.m +++ b/macosx/MessageWindowController.m @@ -34,6 +34,7 @@ @interface MessageWindowController (Private) +- (void) resizeColumn; - (NSString *) stringForMessage: (NSDictionary *) message; - (void) setDebugWarningHidden: (BOOL) hide; @@ -61,6 +62,8 @@ [fTimer invalidate]; [fMessages release]; + [fAttributes release]; + [super dealloc]; } @@ -70,6 +73,9 @@ [window setFrameAutosaveName: @"MessageWindowFrame"]; [window setFrameUsingName: @"MessageWindowFrame"]; + [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(resizeColumn) + name: @"NSTableViewColumnDidResizeNotification" object: fMessageTable]; + //initially sort peer table by IP if ([[fMessageTable sortDescriptors] count] == 0) { @@ -128,6 +134,8 @@ [descriptors release]; [fMessages removeObjectsInRange: NSMakeRange(0, total-MAX_MESSAGES)]; + + [fMessageTable noteHeightOfRowsWithIndexesChanged: [NSIndexSet indexSetWithIndexesInRange: NSMakeRange(0, MAX_MESSAGES)]]; } [fMessages sortUsingDescriptors: [fMessageTable sortDescriptors]]; @@ -165,6 +173,26 @@ return [message objectForKey: @"Message"]; } +- (float) tableView: (NSTableView *) tableView heightOfRow: (int) row +{ + NSTableColumn * column = [tableView tableColumnWithIdentifier: @"Message"]; + + int count = 0; + float width = [column width]; + if (width > 0) + { + if (!fAttributes) + fAttributes = [[[[column dataCell] attributedStringValue] attributesAtIndex: 0 effectiveRange: NULL] retain]; + + NSAttributedString * string = [[NSAttributedString alloc] initWithString: [[fMessages objectAtIndex: row] + objectForKey: @"Message"] attributes: fAttributes]; + count = [string size].width / width; + [string release]; + } + + return [tableView rowHeight] * (float)(count+1); +} + - (NSString *) tableView: (NSTableView *) tableView toolTipForCell: (NSCell *) cell rect: (NSRectPointer) rect tableColumn: (NSTableColumn *) column row: (int) row mouseLocation: (NSPoint) mouseLocation { @@ -286,6 +314,12 @@ @implementation MessageWindowController (Private) +- (void) resizeColumn +{ + [fMessageTable noteHeightOfRowsWithIndexesChanged: [NSIndexSet indexSetWithIndexesInRange: + NSMakeRange(0, [fMessageTable numberOfRows])]]; +} + - (NSString *) stringForMessage: (NSDictionary *) message { NSString * level; diff --git a/macosx/PeerProgressIndicatorCell.m b/macosx/PeerProgressIndicatorCell.m index ae6037c02..8afeae4ee 100644 --- a/macosx/PeerProgressIndicatorCell.m +++ b/macosx/PeerProgressIndicatorCell.m @@ -26,6 +26,7 @@ @implementation PeerProgressIndicatorCell +#warning exists in 10.5 - (BOOL) hidden { return fIsHidden;