<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2800.1264" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2>Here's a quick patch which will allow you 
to click on a program title (in the web status screen) to pop-up the description 
of the episode being taped.</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2>-Brett</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2>Index: 
programs/mythbackend/mainserver.cpp<BR>===================================================================<BR>RCS 
file: 
/var/lib/mythcvs/mythtv/programs/mythbackend/mainserver.cpp,v<BR>retrieving 
revision 1.88<BR>diff -u -r1.88 mainserver.cpp<BR>--- 
programs/mythbackend/mainserver.cpp 1 Nov 2003 18:08:35 
-0000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.88<BR>+++ 
programs/mythbackend/mainserver.cpp 9 Nov 2003 06:15:11 -0000<BR>@@ -2356,6 
+2356,37 @@<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
playbackList.push_back(masterServer);<BR>&nbsp;}</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2>+string MainServer::escapeString(string 
source)<BR>+{<BR>+&nbsp;&nbsp; unsigned int i;<BR>+&nbsp;&nbsp; string result = 
"";<BR>+<BR>+&nbsp;&nbsp; for (i = 0; i &lt; source.length(); i++) 
{<BR>+<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; switch(source[i]) 
{<BR>+<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 
'\\':<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
result += "<A>\\\\</A>"; 
break;<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 
'&gt;':<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
result += "&amp;gt;"; 
break;<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 
'&lt;':<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
result += "&amp;lt;"; 
break;<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 
'&amp;':<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
result += "&amp;amp;"; 
break;<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 
'\"':<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
result += "&amp;quot;"; 
break;<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 
'\'':<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
result += "<A>\\\'</A>"; 
break;<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
default:<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
result += source[i];<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>+&nbsp;&nbsp; 
}<BR>+<BR>+&nbsp;&nbsp; return result;<BR>+}<BR>+<BR>+<BR>+<BR>&nbsp;void 
MainServer::PrintStatus(QSocket *socket)<BR>&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
QTextStream os(socket);<BR>@@ -2451,6 +2482,15 
@@<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;&lt; " 
that " &lt;&lt; (iNum == 1 ? "is" : 
"are")<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;&lt; 
" scheduled for recording:&lt;BR&gt;\r\n";</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; os 
&lt;&lt; "&lt;Script 
language=JavaScript&gt;";<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; os &lt;&lt; 
"function dispDesc(txt) {\r\n";<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; os 
&lt;&lt; "wnd=window.open(\"\", \"min\",\"width=250 
height=180\");";<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; os &lt;&lt; 
"wnd.document.write(\"&lt;font face=helvetica 
size=-1&gt;\");";<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; os &lt;&lt; 
"wnd.document.write(txt);";<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; os &lt;&lt; 
"wnd.document.write(\"&lt;/font&gt;\");";<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
os &lt;&lt; "}";<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; os &lt;&lt; 
"&lt;/script&gt;";<BR>+<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; os 
&lt;&lt; "&lt;TABLE BORDER 
WIDTH=80%&gt;\r\n";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; os &lt;&lt; 
"&lt;TR&gt;&lt;TH&gt;Start 
Time&lt;/TH&gt;&lt;TH&gt;Show&lt;/TH&gt;&lt;TH&gt;Encoder&lt;/TH&gt;&lt;/TR&gt;\r\n";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
list&lt;ProgramInfo *&gt;::iterator iter = recordinglist-&gt;begin();<BR>@@ 
-2467,7 +2507,9 
@@<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
os &lt;&lt; "&lt;TR " &lt;&lt; ((i % 2 == 0) ? "BGCOLOR=EEEEEE" : "") &lt;&lt; 
"&gt;"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;&lt; "&lt;TD&gt;" &lt;&lt; 
((*iter)-&gt;startts).toString(shortdateformat)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;&lt; " " &lt;&lt; ((*iter)-&gt;startts).toString(timeformat) &lt;&lt; 
"&lt;/TD&gt;"<BR>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;&lt; "&lt;TD&gt;" &lt;&lt; (*iter)-&gt;title &lt;&lt; 
"&lt;/TD&gt;"<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;&lt; "&lt;TD&gt;" &lt;&lt; "&lt;a href=\"javascript:dispDesc('" 
&lt;&lt;<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
escapeString((*iter)-&gt;description) &lt;&lt; 
"')\"&gt;"<BR>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;&lt; (*iter)-&gt;title &lt;&lt; 
"&lt;/a&gt;&lt;/TD&gt;"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;&lt; "&lt;TD&gt;" &lt;&lt; (*iter)-&gt;cardid &lt;&lt; 
"&lt;/TD&gt;&lt;/TR&gt;\r\n";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>Index: 
programs/mythbackend/mainserver.h<BR>===================================================================<BR>RCS 
file: /var/lib/mythcvs/mythtv/programs/mythbackend/mainserver.h,v<BR>retrieving 
revision 1.35<BR>diff -u -r1.35 mainserver.h<BR>--- 
programs/mythbackend/mainserver.h&nbsp;&nbsp; 1 Nov 2003 18:08:35 
-0000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.35<BR>+++ 
programs/mythbackend/mainserver.h&nbsp;&nbsp; 9 Nov 2003 06:15:11 -0000<BR>@@ 
-29,6 +29,7 @@<BR>&nbsp;&nbsp;&nbsp; ~MainServer();</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2>&nbsp;&nbsp;&nbsp;&nbsp; void 
customEvent(QCustomEvent *e);<BR>+&nbsp;&nbsp;&nbsp; string 
escapeString(string);<BR>&nbsp;&nbsp;&nbsp;&nbsp; void PrintStatus(QSocket 
*socket);</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2>&nbsp;&nbsp;&nbsp;&nbsp; void 
ProcessRequest(QSocket *sock);<BR></FONT></DIV></BODY></HTML>