Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > by-pkgid > 98d6b53e11e983e268c3e19f14e091a0 > files > 1033

kdepim-devel-doc-3.5.9-9mdv2008.1.x86_64.rpm

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en_US" xml:lang="en_US">

<head>
  <title>kalarm: dcophandler.cpp Source File (kalarm)</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

  <meta http-equiv="Content-Style-Type" content="text/css" />

  <meta http-equiv="pics-label" content='(pics-1.1 "http://www.icra.org/ratingsv02.html" comment "ICRAonline DE v2.0" l gen true for "http://www.kde.org"  r (nz 1 vz 1 lz 1 oz 1 cb 1) "http://www.rsac.org/ratingsv01.html" l gen true for "http://www.kde.org"  r (n 0 s 0 v 0 l 0))' />

  <meta name="trademark" content="KDE e.V." />
  <meta name="description" content="K Desktop Environment Homepage, KDE.org" />
  <meta name="MSSmartTagsPreventParsing" content="true" />
  <meta name="robots" content="all" />

  <link rel="shortcut icon" href="../../favicon.ico" />

<link rel="stylesheet" media="screen" type="text/css" title="APIDOX" href="doxygen.css" />



<style type="text/css">
<!--
hr { display: none; }
#content h2 { margin-left: 0px; }
table.mdTable { background-color: #f8f8f8; border: .2em solid #d7d7d7; }
td.mdRow { padding: 8px 20px; }
td.md { font-weight: bold; }
td.mdname1 { font-weight: bold; color: #602020; }
td.mdname { font-weight: bold; color: #602020;  }

-->
</style>

</head>

<body>

<div id="nav_header_top" align="right">
  <a href="#content" class="doNotDisplay" accesskey="2">Skip to main content ::</a>

  <a href="../.."><img id="nav_header_logo" alt="Home" align="left" src="../../kde_gear_64.png" border="0" /></a>
  <span class="doNotDisplay">::</span>
  <img id="nav_header_logo_right" alt="" align="right" src="../../pimlogo.png" border="0" />

  <div id="nav_header_title" align="left">KDE PIM API Reference</div>


</div>

<div id="nav_header_bottom" align="right">
  <span class="doNotDisplay">:: <a href="#navigation" accesskey="5">Skip to Link Menu</a><br/></span>
  <div id="nav_header_bottom_left" style="text-align: left;">
/ <a href="../../">API Reference</a>
 / <a href=".">kalarm</a>
  </div>
</div>


<table id="main" border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
      <td valign="top" class="menuheader" height="0"></td>

  <td id="contentcolumn" valign="top" rowspan="2" >
    <div id="content" style="padding-top: 0px;"><div style="width:100%; margin: 0px; padding: 0px;">
    <h2><a name="content"></a>kalarm</h2>


<!-- Generated by Doxygen 1.5.5 -->
<h1>dcophandler.cpp</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> *  dcophandler.cpp  -  handler for DCOP calls by other applications</span>
<a name="l00003"></a>00003 <span class="comment"> *  Program:  kalarm</span>
<a name="l00004"></a>00004 <span class="comment"> *  Copyright © 2002-2006,2008 by David Jarvie &lt;djarvie@kde.org&gt;</span>
<a name="l00005"></a>00005 <span class="comment"> *</span>
<a name="l00006"></a>00006 <span class="comment"> *  This program is free software; you can redistribute it and/or modify</span>
<a name="l00007"></a>00007 <span class="comment"> *  it under the terms of the GNU General Public License as published by</span>
<a name="l00008"></a>00008 <span class="comment"> *  the Free Software Foundation; either version 2 of the License, or</span>
<a name="l00009"></a>00009 <span class="comment"> *  (at your option) any later version.</span>
<a name="l00010"></a>00010 <span class="comment"> *</span>
<a name="l00011"></a>00011 <span class="comment"> *  This program is distributed in the hope that it will be useful,</span>
<a name="l00012"></a>00012 <span class="comment"> *  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00013"></a>00013 <span class="comment"> *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
<a name="l00014"></a>00014 <span class="comment"> *  GNU General Public License for more details.</span>
<a name="l00015"></a>00015 <span class="comment"> *</span>
<a name="l00016"></a>00016 <span class="comment"> *  You should have received a copy of the GNU General Public License along</span>
<a name="l00017"></a>00017 <span class="comment"> *  with this program; if not, write to the Free Software Foundation, Inc.,</span>
<a name="l00018"></a>00018 <span class="comment"> *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</span>
<a name="l00019"></a>00019 <span class="comment"> */</span>
<a name="l00020"></a>00020 
<a name="l00021"></a>00021 <span class="preprocessor">#include "kalarm.h"</span>
<a name="l00022"></a>00022 
<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
<a name="l00024"></a>00024 
<a name="l00025"></a>00025 <span class="preprocessor">#include &lt;kdebug.h&gt;</span>
<a name="l00026"></a>00026 
<a name="l00027"></a>00027 <span class="preprocessor">#include "alarmcalendar.h"</span>
<a name="l00028"></a>00028 <span class="preprocessor">#include "daemon.h"</span>
<a name="l00029"></a>00029 <span class="preprocessor">#include "<a class="code" href="functions_8h.html" title="miscellaneous functions">functions.h</a>"</span>
<a name="l00030"></a>00030 <span class="preprocessor">#include "<a class="code" href="kalarmapp_8h.html" title="the KAlarm application object">kalarmapp.h</a>"</span>
<a name="l00031"></a>00031 <span class="preprocessor">#include "kamail.h"</span>
<a name="l00032"></a>00032 <span class="preprocessor">#include "karecurrence.h"</span>
<a name="l00033"></a>00033 <span class="preprocessor">#include "<a class="code" href="mainwindow_8h.html" title="main application window">mainwindow.h</a>"</span>
<a name="l00034"></a>00034 <span class="preprocessor">#include "preferences.h"</span>
<a name="l00035"></a>00035 <span class="preprocessor">#include "dcophandler.moc"</span>
<a name="l00036"></a>00036 
<a name="l00037"></a>00037 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>*  DCOP_OBJECT_NAME = <span class="stringliteral">"request"</span>;   <span class="comment">// DCOP name of KAlarm's request interface</span>
<a name="l00038"></a>00038 <span class="preprocessor">#ifdef OLD_DCOP</span>
<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>*  DCOP_OLD_OBJECT_NAME = <span class="stringliteral">"display"</span>;
<a name="l00040"></a>00040 <span class="preprocessor">#endif</span>
<a name="l00041"></a>00041 <span class="preprocessor"></span>
<a name="l00042"></a>00042 
<a name="l00043"></a>00043 <span class="comment">/*=============================================================================</span>
<a name="l00044"></a>00044 <span class="comment">= DcopHandler</span>
<a name="l00045"></a>00045 <span class="comment">= This class's function is to handle DCOP requests by other applications.</span>
<a name="l00046"></a>00046 <span class="comment">=============================================================================*/</span>
<a name="l00047"></a>00047 DcopHandler::DcopHandler()
<a name="l00048"></a>00048     : DCOPObject(DCOP_OBJECT_NAME),
<a name="l00049"></a>00049       QWidget()
<a name="l00050"></a>00050 {
<a name="l00051"></a>00051     kdDebug(5950) &lt;&lt; <span class="stringliteral">"DcopHandler::DcopHandler()\n"</span>;
<a name="l00052"></a>00052 }
<a name="l00053"></a>00053 
<a name="l00054"></a>00054 
<a name="l00055"></a>00055 <span class="keywordtype">bool</span> DcopHandler::cancelEvent(<span class="keyword">const</span> QString&amp; url,<span class="keyword">const</span> QString&amp; eventId)
<a name="l00056"></a>00056 {
<a name="l00057"></a>00057     <span class="keywordflow">return</span> theApp()-&gt;deleteEvent(url, eventId);
<a name="l00058"></a>00058 }
<a name="l00059"></a>00059 
<a name="l00060"></a>00060 <span class="keywordtype">bool</span> DcopHandler::triggerEvent(<span class="keyword">const</span> QString&amp; url,<span class="keyword">const</span> QString&amp; eventId)
<a name="l00061"></a>00061 {
<a name="l00062"></a>00062     <span class="keywordflow">return</span> theApp()-&gt;triggerEvent(url, eventId);
<a name="l00063"></a>00063 }
<a name="l00064"></a>00064 
<a name="l00065"></a>00065 <span class="keywordtype">bool</span> DcopHandler::scheduleMessage(<span class="keyword">const</span> QString&amp; message, <span class="keyword">const</span> QString&amp; startDateTime, <span class="keywordtype">int</span> lateCancel, <span class="keywordtype">unsigned</span> flags,
<a name="l00066"></a>00066                                   <span class="keyword">const</span> QString&amp; bgColor, <span class="keyword">const</span> QString&amp; fgColor, <span class="keyword">const</span> QString&amp; font,
<a name="l00067"></a>00067                                   <span class="keyword">const</span> KURL&amp; audioFile, <span class="keywordtype">int</span> reminderMins, <span class="keyword">const</span> QString&amp; recurrence,
<a name="l00068"></a>00068                                   <span class="keywordtype">int</span> subRepeatInterval, <span class="keywordtype">int</span> subRepeatCount)
<a name="l00069"></a>00069 {
<a name="l00070"></a>00070     DateTime start;
<a name="l00071"></a>00071     KARecurrence recur;
<a name="l00072"></a>00072     <span class="keywordflow">if</span> (!convertRecurrence(start, recur, startDateTime, recurrence, subRepeatInterval))
<a name="l00073"></a>00073         <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00074"></a>00074     <span class="keywordflow">return</span> scheduleMessage(message, start, lateCancel, flags, bgColor, fgColor, font, audioFile, reminderMins, recur, subRepeatInterval, subRepeatCount);
<a name="l00075"></a>00075 }
<a name="l00076"></a>00076 
<a name="l00077"></a>00077 <span class="keywordtype">bool</span> DcopHandler::scheduleMessage(<span class="keyword">const</span> QString&amp; message, <span class="keyword">const</span> QString&amp; startDateTime, <span class="keywordtype">int</span> lateCancel, <span class="keywordtype">unsigned</span> flags,
<a name="l00078"></a>00078                                   <span class="keyword">const</span> QString&amp; bgColor, <span class="keyword">const</span> QString&amp; fgColor, <span class="keyword">const</span> QString&amp; font,
<a name="l00079"></a>00079                                   <span class="keyword">const</span> KURL&amp; audioFile, <span class="keywordtype">int</span> reminderMins,
<a name="l00080"></a>00080                                   <span class="keywordtype">int</span> recurType, <span class="keywordtype">int</span> recurInterval, <span class="keywordtype">int</span> recurCount)
<a name="l00081"></a>00081 {
<a name="l00082"></a>00082     DateTime start;
<a name="l00083"></a>00083     KARecurrence recur;
<a name="l00084"></a>00084     <span class="keywordflow">if</span> (!convertRecurrence(start, recur, startDateTime, recurType, recurInterval, recurCount))
<a name="l00085"></a>00085         <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00086"></a>00086     <span class="keywordflow">return</span> scheduleMessage(message, start, lateCancel, flags, bgColor, fgColor, font, audioFile, reminderMins, recur);
<a name="l00087"></a>00087 }
<a name="l00088"></a>00088 
<a name="l00089"></a>00089 <span class="keywordtype">bool</span> DcopHandler::scheduleMessage(<span class="keyword">const</span> QString&amp; message, <span class="keyword">const</span> QString&amp; startDateTime, <span class="keywordtype">int</span> lateCancel, <span class="keywordtype">unsigned</span> flags,
<a name="l00090"></a>00090                                   <span class="keyword">const</span> QString&amp; bgColor, <span class="keyword">const</span> QString&amp; fgColor, <span class="keyword">const</span> QString&amp; font,
<a name="l00091"></a>00091                                   <span class="keyword">const</span> KURL&amp; audioFile, <span class="keywordtype">int</span> reminderMins,
<a name="l00092"></a>00092                                   <span class="keywordtype">int</span> recurType, <span class="keywordtype">int</span> recurInterval, <span class="keyword">const</span> QString&amp; endDateTime)
<a name="l00093"></a>00093 {
<a name="l00094"></a>00094     DateTime start;
<a name="l00095"></a>00095     KARecurrence recur;
<a name="l00096"></a>00096     <span class="keywordflow">if</span> (!convertRecurrence(start, recur, startDateTime, recurType, recurInterval, endDateTime))
<a name="l00097"></a>00097         <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00098"></a>00098     <span class="keywordflow">return</span> scheduleMessage(message, start, lateCancel, flags, bgColor, fgColor, font, audioFile, reminderMins, recur);
<a name="l00099"></a>00099 }
<a name="l00100"></a>00100 
<a name="l00101"></a>00101 <span class="keywordtype">bool</span> DcopHandler::scheduleFile(<span class="keyword">const</span> KURL&amp; file, <span class="keyword">const</span> QString&amp; startDateTime, <span class="keywordtype">int</span> lateCancel, <span class="keywordtype">unsigned</span> flags, <span class="keyword">const</span> QString&amp; bgColor,
<a name="l00102"></a>00102                                <span class="keyword">const</span> KURL&amp; audioFile, <span class="keywordtype">int</span> reminderMins, <span class="keyword">const</span> QString&amp; recurrence,
<a name="l00103"></a>00103                                <span class="keywordtype">int</span> subRepeatInterval, <span class="keywordtype">int</span> subRepeatCount)
<a name="l00104"></a>00104 {
<a name="l00105"></a>00105     DateTime start;
<a name="l00106"></a>00106     KARecurrence recur;
<a name="l00107"></a>00107     <span class="keywordflow">if</span> (!convertRecurrence(start, recur, startDateTime, recurrence, subRepeatInterval))
<a name="l00108"></a>00108         <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00109"></a>00109     <span class="keywordflow">return</span> scheduleFile(file, start, lateCancel, flags, bgColor, audioFile, reminderMins, recur, subRepeatInterval, subRepeatCount);
<a name="l00110"></a>00110 }
<a name="l00111"></a>00111 
<a name="l00112"></a>00112 <span class="keywordtype">bool</span> DcopHandler::scheduleFile(<span class="keyword">const</span> KURL&amp; file, <span class="keyword">const</span> QString&amp; startDateTime, <span class="keywordtype">int</span> lateCancel, <span class="keywordtype">unsigned</span> flags, <span class="keyword">const</span> QString&amp; bgColor,
<a name="l00113"></a>00113                                <span class="keyword">const</span> KURL&amp; audioFile, <span class="keywordtype">int</span> reminderMins, <span class="keywordtype">int</span> recurType, <span class="keywordtype">int</span> recurInterval, <span class="keywordtype">int</span> recurCount)
<a name="l00114"></a>00114 {
<a name="l00115"></a>00115     DateTime start;
<a name="l00116"></a>00116     KARecurrence recur;
<a name="l00117"></a>00117     <span class="keywordflow">if</span> (!convertRecurrence(start, recur, startDateTime, recurType, recurInterval, recurCount))
<a name="l00118"></a>00118         <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00119"></a>00119     <span class="keywordflow">return</span> scheduleFile(file, start, lateCancel, flags, bgColor, audioFile, reminderMins, recur);
<a name="l00120"></a>00120 }
<a name="l00121"></a>00121 
<a name="l00122"></a>00122 <span class="keywordtype">bool</span> DcopHandler::scheduleFile(<span class="keyword">const</span> KURL&amp; file, <span class="keyword">const</span> QString&amp; startDateTime, <span class="keywordtype">int</span> lateCancel, <span class="keywordtype">unsigned</span> flags, <span class="keyword">const</span> QString&amp; bgColor,
<a name="l00123"></a>00123                                <span class="keyword">const</span> KURL&amp; audioFile, <span class="keywordtype">int</span> reminderMins, <span class="keywordtype">int</span> recurType, <span class="keywordtype">int</span> recurInterval, <span class="keyword">const</span> QString&amp; endDateTime)
<a name="l00124"></a>00124 {
<a name="l00125"></a>00125     DateTime start;
<a name="l00126"></a>00126     KARecurrence recur;
<a name="l00127"></a>00127     <span class="keywordflow">if</span> (!convertRecurrence(start, recur, startDateTime, recurType, recurInterval, endDateTime))
<a name="l00128"></a>00128         <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00129"></a>00129     <span class="keywordflow">return</span> scheduleFile(file, start, lateCancel, flags, bgColor, audioFile, reminderMins, recur);
<a name="l00130"></a>00130 }
<a name="l00131"></a>00131 
<a name="l00132"></a>00132 <span class="keywordtype">bool</span> DcopHandler::scheduleCommand(<span class="keyword">const</span> QString&amp; commandLine, <span class="keyword">const</span> QString&amp; startDateTime, <span class="keywordtype">int</span> lateCancel, <span class="keywordtype">unsigned</span> flags,
<a name="l00133"></a>00133                                   <span class="keyword">const</span> QString&amp; recurrence, <span class="keywordtype">int</span> subRepeatInterval, <span class="keywordtype">int</span> subRepeatCount)
<a name="l00134"></a>00134 {
<a name="l00135"></a>00135     DateTime start;
<a name="l00136"></a>00136     KARecurrence recur;
<a name="l00137"></a>00137     <span class="keywordflow">if</span> (!convertRecurrence(start, recur, startDateTime, recurrence, subRepeatInterval))
<a name="l00138"></a>00138         <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00139"></a>00139     <span class="keywordflow">return</span> scheduleCommand(commandLine, start, lateCancel, flags, recur, subRepeatInterval, subRepeatCount);
<a name="l00140"></a>00140 }
<a name="l00141"></a>00141 
<a name="l00142"></a>00142 <span class="keywordtype">bool</span> DcopHandler::scheduleCommand(<span class="keyword">const</span> QString&amp; commandLine, <span class="keyword">const</span> QString&amp; startDateTime, <span class="keywordtype">int</span> lateCancel, <span class="keywordtype">unsigned</span> flags,
<a name="l00143"></a>00143                                   <span class="keywordtype">int</span> recurType, <span class="keywordtype">int</span> recurInterval, <span class="keywordtype">int</span> recurCount)
<a name="l00144"></a>00144 {
<a name="l00145"></a>00145     DateTime start = convertStartDateTime(startDateTime);
<a name="l00146"></a>00146     <span class="keywordflow">if</span> (!start.isValid())
<a name="l00147"></a>00147         <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00148"></a>00148     KARecurrence recur;
<a name="l00149"></a>00149     <span class="keywordflow">if</span> (!convertRecurrence(start, recur, startDateTime, recurType, recurInterval, recurCount))
<a name="l00150"></a>00150         <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00151"></a>00151     <span class="keywordflow">return</span> scheduleCommand(commandLine, start, lateCancel, flags, recur);
<a name="l00152"></a>00152 }
<a name="l00153"></a>00153 
<a name="l00154"></a>00154 <span class="keywordtype">bool</span> DcopHandler::scheduleCommand(<span class="keyword">const</span> QString&amp; commandLine, <span class="keyword">const</span> QString&amp; startDateTime, <span class="keywordtype">int</span> lateCancel, <span class="keywordtype">unsigned</span> flags,
<a name="l00155"></a>00155                                   <span class="keywordtype">int</span> recurType, <span class="keywordtype">int</span> recurInterval, <span class="keyword">const</span> QString&amp; endDateTime)
<a name="l00156"></a>00156 {
<a name="l00157"></a>00157     DateTime start;
<a name="l00158"></a>00158     KARecurrence recur;
<a name="l00159"></a>00159     <span class="keywordflow">if</span> (!convertRecurrence(start, recur, startDateTime, recurType, recurInterval, endDateTime))
<a name="l00160"></a>00160         <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00161"></a>00161     <span class="keywordflow">return</span> scheduleCommand(commandLine, start, lateCancel, flags, recur);
<a name="l00162"></a>00162 }
<a name="l00163"></a>00163 
<a name="l00164"></a>00164 <span class="keywordtype">bool</span> DcopHandler::scheduleEmail(<span class="keyword">const</span> QString&amp; fromID, <span class="keyword">const</span> QString&amp; addresses, <span class="keyword">const</span> QString&amp; subject, <span class="keyword">const</span> QString&amp; message,
<a name="l00165"></a>00165                                 <span class="keyword">const</span> QString&amp; attachments, <span class="keyword">const</span> QString&amp; startDateTime, <span class="keywordtype">int</span> lateCancel, <span class="keywordtype">unsigned</span> flags,
<a name="l00166"></a>00166                                 <span class="keyword">const</span> QString&amp; recurrence, <span class="keywordtype">int</span> subRepeatInterval, <span class="keywordtype">int</span> subRepeatCount)
<a name="l00167"></a>00167 {
<a name="l00168"></a>00168     DateTime start;
<a name="l00169"></a>00169     KARecurrence recur;
<a name="l00170"></a>00170     <span class="keywordflow">if</span> (!convertRecurrence(start, recur, startDateTime, recurrence, subRepeatInterval))
<a name="l00171"></a>00171         <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00172"></a>00172     <span class="keywordflow">return</span> scheduleEmail(fromID, addresses, subject, message, attachments, start, lateCancel, flags, recur, subRepeatInterval, subRepeatCount);
<a name="l00173"></a>00173 }
<a name="l00174"></a>00174 
<a name="l00175"></a>00175 <span class="keywordtype">bool</span> DcopHandler::scheduleEmail(<span class="keyword">const</span> QString&amp; fromID, <span class="keyword">const</span> QString&amp; addresses, <span class="keyword">const</span> QString&amp; subject, <span class="keyword">const</span> QString&amp; message,
<a name="l00176"></a>00176                                 <span class="keyword">const</span> QString&amp; attachments, <span class="keyword">const</span> QString&amp; startDateTime, <span class="keywordtype">int</span> lateCancel, <span class="keywordtype">unsigned</span> flags,
<a name="l00177"></a>00177                                 <span class="keywordtype">int</span> recurType, <span class="keywordtype">int</span> recurInterval, <span class="keywordtype">int</span> recurCount)
<a name="l00178"></a>00178 {
<a name="l00179"></a>00179     DateTime start;
<a name="l00180"></a>00180     KARecurrence recur;
<a name="l00181"></a>00181     <span class="keywordflow">if</span> (!convertRecurrence(start, recur, startDateTime, recurType, recurInterval, recurCount))
<a name="l00182"></a>00182         <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00183"></a>00183     <span class="keywordflow">return</span> scheduleEmail(fromID, addresses, subject, message, attachments, start, lateCancel, flags, recur);
<a name="l00184"></a>00184 }
<a name="l00185"></a>00185 
<a name="l00186"></a>00186 <span class="keywordtype">bool</span> DcopHandler::scheduleEmail(<span class="keyword">const</span> QString&amp; fromID, <span class="keyword">const</span> QString&amp; addresses, <span class="keyword">const</span> QString&amp; subject, <span class="keyword">const</span> QString&amp; message,
<a name="l00187"></a>00187                                 <span class="keyword">const</span> QString&amp; attachments, <span class="keyword">const</span> QString&amp; startDateTime, <span class="keywordtype">int</span> lateCancel, <span class="keywordtype">unsigned</span> flags,
<a name="l00188"></a>00188                                 <span class="keywordtype">int</span> recurType, <span class="keywordtype">int</span> recurInterval, <span class="keyword">const</span> QString&amp; endDateTime)
<a name="l00189"></a>00189 {
<a name="l00190"></a>00190     DateTime start;
<a name="l00191"></a>00191     KARecurrence recur;
<a name="l00192"></a>00192     <span class="keywordflow">if</span> (!convertRecurrence(start, recur, startDateTime, recurType, recurInterval, endDateTime))
<a name="l00193"></a>00193         <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00194"></a>00194     <span class="keywordflow">return</span> scheduleEmail(fromID, addresses, subject, message, attachments, start, lateCancel, flags, recur);
<a name="l00195"></a>00195 }
<a name="l00196"></a>00196 
<a name="l00197"></a>00197 <span class="keywordtype">bool</span> DcopHandler::edit(<span class="keyword">const</span> QString&amp; eventID)
<a name="l00198"></a>00198 {
<a name="l00199"></a>00199     <span class="keywordflow">return</span> KAlarm::edit(eventID);
<a name="l00200"></a>00200 }
<a name="l00201"></a>00201 
<a name="l00202"></a>00202 <span class="keywordtype">bool</span> DcopHandler::editNew(<span class="keyword">const</span> QString&amp; templateName)
<a name="l00203"></a>00203 {
<a name="l00204"></a>00204     <span class="keywordflow">return</span> KAlarm::editNew(templateName);
<a name="l00205"></a>00205 }
<a name="l00206"></a>00206 
<a name="l00207"></a>00207 
<a name="l00208"></a>00208 <span class="comment">/******************************************************************************</span>
<a name="l00209"></a>00209 <span class="comment">* Schedule a message alarm, after converting the parameters from strings.</span>
<a name="l00210"></a>00210 <span class="comment">*/</span>
<a name="l00211"></a>00211 <span class="keywordtype">bool</span> DcopHandler::scheduleMessage(<span class="keyword">const</span> QString&amp; message, <span class="keyword">const</span> DateTime&amp; start, <span class="keywordtype">int</span> lateCancel, <span class="keywordtype">unsigned</span> flags,
<a name="l00212"></a>00212                                   <span class="keyword">const</span> QString&amp; bgColor, <span class="keyword">const</span> QString&amp; fgColor, <span class="keyword">const</span> QString&amp; fontStr,
<a name="l00213"></a>00213                                   <span class="keyword">const</span> KURL&amp; audioFile, <span class="keywordtype">int</span> reminderMins, <span class="keyword">const</span> KARecurrence&amp; recurrence,
<a name="l00214"></a>00214                                   <span class="keywordtype">int</span> subRepeatInterval, <span class="keywordtype">int</span> subRepeatCount)
<a name="l00215"></a>00215 {
<a name="l00216"></a>00216     <span class="keywordtype">unsigned</span> kaEventFlags = convertStartFlags(start, flags);
<a name="l00217"></a>00217     QColor bg = convertBgColour(bgColor);
<a name="l00218"></a>00218     <span class="keywordflow">if</span> (!bg.isValid())
<a name="l00219"></a>00219         <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00220"></a>00220     QColor fg;
<a name="l00221"></a>00221     <span class="keywordflow">if</span> (fgColor.isEmpty())
<a name="l00222"></a>00222         fg = Preferences::defaultFgColour();
<a name="l00223"></a>00223     <span class="keywordflow">else</span>
<a name="l00224"></a>00224     {
<a name="l00225"></a>00225         fg.setNamedColor(fgColor);
<a name="l00226"></a>00226         <span class="keywordflow">if</span> (!fg.isValid())
<a name="l00227"></a>00227         {
<a name="l00228"></a>00228             kdError(5950) &lt;&lt; <span class="stringliteral">"DCOP call: invalid foreground color: "</span> &lt;&lt; fgColor &lt;&lt; endl;
<a name="l00229"></a>00229             <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00230"></a>00230         }
<a name="l00231"></a>00231     }
<a name="l00232"></a>00232     QFont font;
<a name="l00233"></a>00233     <span class="keywordflow">if</span> (fontStr.isEmpty())
<a name="l00234"></a>00234         kaEventFlags |= KAEvent::DEFAULT_FONT;
<a name="l00235"></a>00235     <span class="keywordflow">else</span>
<a name="l00236"></a>00236     {
<a name="l00237"></a>00237         <span class="keywordflow">if</span> (!font.fromString(fontStr))    <span class="comment">// N.B. this doesn't do good validation</span>
<a name="l00238"></a>00238         {
<a name="l00239"></a>00239             kdError(5950) &lt;&lt; <span class="stringliteral">"DCOP call: invalid font: "</span> &lt;&lt; fontStr &lt;&lt; endl;
<a name="l00240"></a>00240             <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00241"></a>00241         }
<a name="l00242"></a>00242     }
<a name="l00243"></a>00243     <span class="keywordflow">return</span> theApp()-&gt;scheduleEvent(KAEvent::MESSAGE, message, start.dateTime(), lateCancel, kaEventFlags, bg, fg, font,
<a name="l00244"></a>00244                                    audioFile.url(), -1, reminderMins, recurrence, subRepeatInterval, subRepeatCount);
<a name="l00245"></a>00245 }
<a name="l00246"></a>00246 
<a name="l00247"></a>00247 <span class="comment">/******************************************************************************</span>
<a name="l00248"></a>00248 <span class="comment">* Schedule a file alarm, after converting the parameters from strings.</span>
<a name="l00249"></a>00249 <span class="comment">*/</span>
<a name="l00250"></a>00250 <span class="keywordtype">bool</span> DcopHandler::scheduleFile(<span class="keyword">const</span> KURL&amp; file,
<a name="l00251"></a>00251                                <span class="keyword">const</span> DateTime&amp; start, <span class="keywordtype">int</span> lateCancel, <span class="keywordtype">unsigned</span> flags, <span class="keyword">const</span> QString&amp; bgColor,
<a name="l00252"></a>00252                                <span class="keyword">const</span> KURL&amp; audioFile, <span class="keywordtype">int</span> reminderMins, <span class="keyword">const</span> KARecurrence&amp; recurrence,
<a name="l00253"></a>00253                                <span class="keywordtype">int</span> subRepeatInterval, <span class="keywordtype">int</span> subRepeatCount)
<a name="l00254"></a>00254 {
<a name="l00255"></a>00255     <span class="keywordtype">unsigned</span> kaEventFlags = convertStartFlags(start, flags);
<a name="l00256"></a>00256     QColor bg = convertBgColour(bgColor);
<a name="l00257"></a>00257     <span class="keywordflow">if</span> (!bg.isValid())
<a name="l00258"></a>00258         <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00259"></a>00259     <span class="keywordflow">return</span> theApp()-&gt;scheduleEvent(KAEvent::FILE, file.url(), start.dateTime(), lateCancel, kaEventFlags, bg, Qt::black, QFont(),
<a name="l00260"></a>00260                                    audioFile.url(), -1, reminderMins, recurrence, subRepeatInterval, subRepeatCount);
<a name="l00261"></a>00261 }
<a name="l00262"></a>00262 
<a name="l00263"></a>00263 <span class="comment">/******************************************************************************</span>
<a name="l00264"></a>00264 <span class="comment">* Schedule a command alarm, after converting the parameters from strings.</span>
<a name="l00265"></a>00265 <span class="comment">*/</span>
<a name="l00266"></a>00266 <span class="keywordtype">bool</span> DcopHandler::scheduleCommand(<span class="keyword">const</span> QString&amp; commandLine,
<a name="l00267"></a>00267                                   <span class="keyword">const</span> DateTime&amp; start, <span class="keywordtype">int</span> lateCancel, <span class="keywordtype">unsigned</span> flags,
<a name="l00268"></a>00268                                   <span class="keyword">const</span> KARecurrence&amp; recurrence, <span class="keywordtype">int</span> subRepeatInterval, <span class="keywordtype">int</span> subRepeatCount)
<a name="l00269"></a>00269 {
<a name="l00270"></a>00270     <span class="keywordtype">unsigned</span> kaEventFlags = convertStartFlags(start, flags);
<a name="l00271"></a>00271     <span class="keywordflow">return</span> theApp()-&gt;scheduleEvent(KAEvent::COMMAND, commandLine, start.dateTime(), lateCancel, kaEventFlags, Qt::black, Qt::black, QFont(),
<a name="l00272"></a>00272                                    QString::null, -1, 0, recurrence, subRepeatInterval, subRepeatCount);
<a name="l00273"></a>00273 }
<a name="l00274"></a>00274 
<a name="l00275"></a>00275 <span class="comment">/******************************************************************************</span>
<a name="l00276"></a>00276 <span class="comment">* Schedule an email alarm, after validating the addresses and attachments.</span>
<a name="l00277"></a>00277 <span class="comment">*/</span>
<a name="l00278"></a>00278 <span class="keywordtype">bool</span> DcopHandler::scheduleEmail(<span class="keyword">const</span> QString&amp; fromID, <span class="keyword">const</span> QString&amp; addresses, <span class="keyword">const</span> QString&amp; subject,
<a name="l00279"></a>00279                                 <span class="keyword">const</span> QString&amp; message, <span class="keyword">const</span> QString&amp; attachments,
<a name="l00280"></a>00280                                 <span class="keyword">const</span> DateTime&amp; start, <span class="keywordtype">int</span> lateCancel, <span class="keywordtype">unsigned</span> flags,
<a name="l00281"></a>00281                                 <span class="keyword">const</span> KARecurrence&amp; recurrence, <span class="keywordtype">int</span> subRepeatInterval, <span class="keywordtype">int</span> subRepeatCount)
<a name="l00282"></a>00282 {
<a name="l00283"></a>00283     <span class="keywordtype">unsigned</span> kaEventFlags = convertStartFlags(start, flags);
<a name="l00284"></a>00284     uint senderId = 0;
<a name="l00285"></a>00285     <span class="keywordflow">if</span> (!fromID.isEmpty())
<a name="l00286"></a>00286     {
<a name="l00287"></a>00287         senderId = KAMail::identityUoid(fromID);
<a name="l00288"></a>00288         <span class="keywordflow">if</span> (!senderId)
<a name="l00289"></a>00289         {
<a name="l00290"></a>00290             kdError(5950) &lt;&lt; <span class="stringliteral">"DCOP call scheduleEmail(): unknown sender ID: "</span> &lt;&lt; fromID &lt;&lt; endl;
<a name="l00291"></a>00291             <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00292"></a>00292         }
<a name="l00293"></a>00293     }
<a name="l00294"></a>00294     EmailAddressList addrs;
<a name="l00295"></a>00295     QString bad = KAMail::convertAddresses(addresses, addrs);
<a name="l00296"></a>00296     <span class="keywordflow">if</span> (!bad.isEmpty())
<a name="l00297"></a>00297     {
<a name="l00298"></a>00298         kdError(5950) &lt;&lt; <span class="stringliteral">"DCOP call scheduleEmail(): invalid email addresses: "</span> &lt;&lt; bad &lt;&lt; endl;
<a name="l00299"></a>00299         <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00300"></a>00300     }
<a name="l00301"></a>00301     <span class="keywordflow">if</span> (addrs.isEmpty())
<a name="l00302"></a>00302     {
<a name="l00303"></a>00303         kdError(5950) &lt;&lt; <span class="stringliteral">"DCOP call scheduleEmail(): no email address\n"</span>;
<a name="l00304"></a>00304         <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00305"></a>00305     }
<a name="l00306"></a>00306     QStringList atts;
<a name="l00307"></a>00307     bad = KAMail::convertAttachments(attachments, atts);
<a name="l00308"></a>00308     <span class="keywordflow">if</span> (!bad.isEmpty())
<a name="l00309"></a>00309     {
<a name="l00310"></a>00310         kdError(5950) &lt;&lt; <span class="stringliteral">"DCOP call scheduleEmail(): invalid email attachment: "</span> &lt;&lt; bad &lt;&lt; endl;
<a name="l00311"></a>00311         <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00312"></a>00312     }
<a name="l00313"></a>00313     <span class="keywordflow">return</span> theApp()-&gt;scheduleEvent(KAEvent::EMAIL, message, start.dateTime(), lateCancel, kaEventFlags, Qt::black, Qt::black, QFont(),
<a name="l00314"></a>00314                                    QString::null, -1, 0, recurrence, subRepeatInterval, subRepeatCount, senderId, addrs, subject, atts);
<a name="l00315"></a>00315 }
<a name="l00316"></a>00316 
<a name="l00317"></a>00317 
<a name="l00318"></a>00318 <span class="comment">/******************************************************************************</span>
<a name="l00319"></a>00319 <span class="comment">* Convert the start date/time string to a DateTime. The date/time string is in</span>
<a name="l00320"></a>00320 <span class="comment">* the format YYYY-MM-DD[THH:MM[:SS]] or [T]HH:MM[:SS]</span>
<a name="l00321"></a>00321 <span class="comment">*/</span>
<a name="l00322"></a>00322 DateTime DcopHandler::convertStartDateTime(<span class="keyword">const</span> QString&amp; startDateTime)
<a name="l00323"></a>00323 {
<a name="l00324"></a>00324     DateTime start;
<a name="l00325"></a>00325     <span class="keywordflow">if</span> (startDateTime.length() &gt; 10)
<a name="l00326"></a>00326     {
<a name="l00327"></a>00327         <span class="comment">// Both a date and a time are specified</span>
<a name="l00328"></a>00328         start = QDateTime::fromString(startDateTime, Qt::ISODate);
<a name="l00329"></a>00329     }
<a name="l00330"></a>00330     <span class="keywordflow">else</span>
<a name="l00331"></a>00331     {
<a name="l00332"></a>00332         <span class="comment">// Check whether a time is specified</span>
<a name="l00333"></a>00333         QString t;
<a name="l00334"></a>00334         <span class="keywordflow">if</span> (startDateTime[0] == <span class="charliteral">'T'</span>)
<a name="l00335"></a>00335             t = startDateTime.mid(1);     <span class="comment">// it's a time: remove the leading 'T'</span>
<a name="l00336"></a>00336         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!startDateTime[2].isDigit())
<a name="l00337"></a>00337             t = startDateTime;            <span class="comment">// it's a time with no leading 'T'</span>
<a name="l00338"></a>00338 
<a name="l00339"></a>00339         <span class="keywordflow">if</span> (t.isEmpty())
<a name="l00340"></a>00340         {
<a name="l00341"></a>00341             <span class="comment">// It's a date</span>
<a name="l00342"></a>00342             start = QDate::fromString(startDateTime, Qt::ISODate);
<a name="l00343"></a>00343         }
<a name="l00344"></a>00344         <span class="keywordflow">else</span>
<a name="l00345"></a>00345         {
<a name="l00346"></a>00346             <span class="comment">// It's a time, so use today as the date</span>
<a name="l00347"></a>00347             start.set(QDate::currentDate(), QTime::fromString(t, Qt::ISODate));
<a name="l00348"></a>00348         }
<a name="l00349"></a>00349     }
<a name="l00350"></a>00350     <span class="keywordflow">if</span> (!start.isValid())
<a name="l00351"></a>00351         kdError(5950) &lt;&lt; <span class="stringliteral">"DCOP call: invalid start date/time: "</span> &lt;&lt; startDateTime &lt;&lt; endl;
<a name="l00352"></a>00352     <span class="keywordflow">return</span> start;
<a name="l00353"></a>00353 }
<a name="l00354"></a>00354 
<a name="l00355"></a>00355 <span class="comment">/******************************************************************************</span>
<a name="l00356"></a>00356 <span class="comment">* Convert the flag bits to KAEvent flag bits.</span>
<a name="l00357"></a>00357 <span class="comment">*/</span>
<a name="l00358"></a>00358 <span class="keywordtype">unsigned</span> DcopHandler::convertStartFlags(<span class="keyword">const</span> DateTime&amp; start, <span class="keywordtype">unsigned</span> flags)
<a name="l00359"></a>00359 {
<a name="l00360"></a>00360     <span class="keywordtype">unsigned</span> kaEventFlags = 0;
<a name="l00361"></a>00361     <span class="keywordflow">if</span> (flags &amp; REPEAT_AT_LOGIN) kaEventFlags |= KAEvent::REPEAT_AT_LOGIN;
<a name="l00362"></a>00362     <span class="keywordflow">if</span> (flags &amp; BEEP)            kaEventFlags |= KAEvent::BEEP;
<a name="l00363"></a>00363     <span class="keywordflow">if</span> (flags &amp; SPEAK)           kaEventFlags |= KAEvent::SPEAK;
<a name="l00364"></a>00364     <span class="keywordflow">if</span> (flags &amp; CONFIRM_ACK)     kaEventFlags |= KAEvent::CONFIRM_ACK;
<a name="l00365"></a>00365     <span class="keywordflow">if</span> (flags &amp; REPEAT_SOUND)    kaEventFlags |= KAEvent::REPEAT_SOUND;
<a name="l00366"></a>00366     <span class="keywordflow">if</span> (flags &amp; AUTO_CLOSE)      kaEventFlags |= KAEvent::AUTO_CLOSE;
<a name="l00367"></a>00367     <span class="keywordflow">if</span> (flags &amp; EMAIL_BCC)       kaEventFlags |= KAEvent::EMAIL_BCC;
<a name="l00368"></a>00368     <span class="keywordflow">if</span> (flags &amp; SCRIPT)          kaEventFlags |= KAEvent::SCRIPT;
<a name="l00369"></a>00369     <span class="keywordflow">if</span> (flags &amp; EXEC_IN_XTERM)   kaEventFlags |= KAEvent::EXEC_IN_XTERM;
<a name="l00370"></a>00370     <span class="keywordflow">if</span> (flags &amp; SHOW_IN_KORG)    kaEventFlags |= KAEvent::COPY_KORGANIZER;
<a name="l00371"></a>00371     <span class="keywordflow">if</span> (flags &amp; DISABLED)        kaEventFlags |= KAEvent::DISABLED;
<a name="l00372"></a>00372     <span class="keywordflow">if</span> (start.isDateOnly())      kaEventFlags |= KAEvent::ANY_TIME;
<a name="l00373"></a>00373     <span class="keywordflow">return</span> kaEventFlags;
<a name="l00374"></a>00374 }
<a name="l00375"></a>00375 
<a name="l00376"></a>00376 <span class="comment">/******************************************************************************</span>
<a name="l00377"></a>00377 <span class="comment">* Convert the background colour string to a QColor.</span>
<a name="l00378"></a>00378 <span class="comment">*/</span>
<a name="l00379"></a>00379 QColor DcopHandler::convertBgColour(<span class="keyword">const</span> QString&amp; bgColor)
<a name="l00380"></a>00380 {
<a name="l00381"></a>00381     <span class="keywordflow">if</span> (bgColor.isEmpty())
<a name="l00382"></a>00382         <span class="keywordflow">return</span> Preferences::defaultBgColour();
<a name="l00383"></a>00383     QColor bg(bgColor);
<a name="l00384"></a>00384     <span class="keywordflow">if</span> (!bg.isValid())
<a name="l00385"></a>00385             kdError(5950) &lt;&lt; <span class="stringliteral">"DCOP call: invalid background color: "</span> &lt;&lt; bgColor &lt;&lt; endl;
<a name="l00386"></a>00386     <span class="keywordflow">return</span> bg;
<a name="l00387"></a>00387 }
<a name="l00388"></a>00388 
<a name="l00389"></a>00389 <span class="keywordtype">bool</span> DcopHandler::convertRecurrence(DateTime&amp; start, KARecurrence&amp; recurrence, 
<a name="l00390"></a>00390                                     <span class="keyword">const</span> QString&amp; startDateTime, <span class="keyword">const</span> QString&amp; icalRecurrence,
<a name="l00391"></a>00391                                     <span class="keywordtype">int</span>&amp; subRepeatInterval)
<a name="l00392"></a>00392 {
<a name="l00393"></a>00393     start = convertStartDateTime(startDateTime);
<a name="l00394"></a>00394     <span class="keywordflow">if</span> (!start.isValid())
<a name="l00395"></a>00395         <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00396"></a>00396     <span class="keywordflow">if</span> (!recurrence.set(icalRecurrence))
<a name="l00397"></a>00397         <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00398"></a>00398     <span class="keywordflow">if</span> (subRepeatInterval  &amp;&amp;  recurrence.type() == KARecurrence::NO_RECUR)
<a name="l00399"></a>00399     {
<a name="l00400"></a>00400         subRepeatInterval = 0;
<a name="l00401"></a>00401         kdWarning(5950) &lt;&lt; <span class="stringliteral">"DCOP call: no recurrence specified, so sub-repetition ignored"</span> &lt;&lt; endl;
<a name="l00402"></a>00402     }
<a name="l00403"></a>00403     <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l00404"></a>00404 }
<a name="l00405"></a>00405 
<a name="l00406"></a>00406 <span class="keywordtype">bool</span> DcopHandler::convertRecurrence(DateTime&amp; start, KARecurrence&amp; recurrence, <span class="keyword">const</span> QString&amp; startDateTime,
<a name="l00407"></a>00407                                     <span class="keywordtype">int</span> recurType, <span class="keywordtype">int</span> recurInterval, <span class="keywordtype">int</span> recurCount)
<a name="l00408"></a>00408 {
<a name="l00409"></a>00409     start = convertStartDateTime(startDateTime);
<a name="l00410"></a>00410     <span class="keywordflow">if</span> (!start.isValid())
<a name="l00411"></a>00411         <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00412"></a>00412     <span class="keywordflow">return</span> convertRecurrence(recurrence, start, recurType, recurInterval, recurCount, QDateTime());
<a name="l00413"></a>00413 }
<a name="l00414"></a>00414 
<a name="l00415"></a>00415 <span class="keywordtype">bool</span> DcopHandler::convertRecurrence(DateTime&amp; start, KARecurrence&amp; recurrence, <span class="keyword">const</span> QString&amp; startDateTime,
<a name="l00416"></a>00416                                     <span class="keywordtype">int</span> recurType, <span class="keywordtype">int</span> recurInterval, <span class="keyword">const</span> QString&amp; endDateTime)
<a name="l00417"></a>00417 {
<a name="l00418"></a>00418     start = convertStartDateTime(startDateTime);
<a name="l00419"></a>00419     <span class="keywordflow">if</span> (!start.isValid())
<a name="l00420"></a>00420         <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00421"></a>00421     QDateTime end;
<a name="l00422"></a>00422     <span class="keywordflow">if</span> (endDateTime.find(<span class="charliteral">'T'</span>) &lt; 0)
<a name="l00423"></a>00423     {
<a name="l00424"></a>00424         <span class="keywordflow">if</span> (!start.isDateOnly())
<a name="l00425"></a>00425         {
<a name="l00426"></a>00426             kdError(5950) &lt;&lt; <span class="stringliteral">"DCOP call: alarm is date-only, but recurrence end is date/time"</span> &lt;&lt; endl;
<a name="l00427"></a>00427             <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00428"></a>00428         }
<a name="l00429"></a>00429         end.setDate(QDate::fromString(endDateTime, Qt::ISODate));
<a name="l00430"></a>00430     }
<a name="l00431"></a>00431     <span class="keywordflow">else</span>
<a name="l00432"></a>00432     {
<a name="l00433"></a>00433         <span class="keywordflow">if</span> (start.isDateOnly())
<a name="l00434"></a>00434         {
<a name="l00435"></a>00435             kdError(5950) &lt;&lt; <span class="stringliteral">"DCOP call: alarm is timed, but recurrence end is date-only"</span> &lt;&lt; endl;
<a name="l00436"></a>00436             <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00437"></a>00437         }
<a name="l00438"></a>00438         end = QDateTime::fromString(endDateTime, Qt::ISODate);
<a name="l00439"></a>00439     }
<a name="l00440"></a>00440     <span class="keywordflow">if</span> (!end.isValid())
<a name="l00441"></a>00441     {
<a name="l00442"></a>00442         kdError(5950) &lt;&lt; <span class="stringliteral">"DCOP call: invalid recurrence end date/time: "</span> &lt;&lt; endDateTime &lt;&lt; endl;
<a name="l00443"></a>00443         <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00444"></a>00444     }
<a name="l00445"></a>00445     <span class="keywordflow">return</span> convertRecurrence(recurrence, start, recurType, recurInterval, 0, end);
<a name="l00446"></a>00446 }
<a name="l00447"></a>00447 
<a name="l00448"></a>00448 <span class="keywordtype">bool</span> DcopHandler::convertRecurrence(KARecurrence&amp; recurrence, <span class="keyword">const</span> DateTime&amp; start, <span class="keywordtype">int</span> recurType,
<a name="l00449"></a>00449                                     <span class="keywordtype">int</span> recurInterval, <span class="keywordtype">int</span> recurCount, <span class="keyword">const</span> QDateTime&amp; end)
<a name="l00450"></a>00450 {
<a name="l00451"></a>00451     KARecurrence::Type type;
<a name="l00452"></a>00452     <span class="keywordflow">switch</span> (recurType)
<a name="l00453"></a>00453     {
<a name="l00454"></a>00454         <span class="keywordflow">case</span> MINUTELY:  type = KARecurrence::MINUTELY;  <span class="keywordflow">break</span>;
<a name="l00455"></a>00455         <span class="keywordflow">case</span> DAILY:     type = KARecurrence::DAILY;  <span class="keywordflow">break</span>;
<a name="l00456"></a>00456         <span class="keywordflow">case</span> WEEKLY:    type = KARecurrence::WEEKLY;  <span class="keywordflow">break</span>;
<a name="l00457"></a>00457         <span class="keywordflow">case</span> MONTHLY:   type = KARecurrence::MONTHLY_DAY;  <span class="keywordflow">break</span>;
<a name="l00458"></a>00458         <span class="keywordflow">case</span> YEARLY:    type = KARecurrence::ANNUAL_DATE;  <span class="keywordflow">break</span>;
<a name="l00459"></a>00459             <span class="keywordflow">break</span>;
<a name="l00460"></a>00460         <span class="keywordflow">default</span>:
<a name="l00461"></a>00461             kdError(5950) &lt;&lt; <span class="stringliteral">"DCOP call: invalid recurrence type: "</span> &lt;&lt; recurType &lt;&lt; endl;
<a name="l00462"></a>00462             <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00463"></a>00463     }
<a name="l00464"></a>00464     recurrence.set(type, recurInterval, recurCount, start, end);
<a name="l00465"></a>00465     <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l00466"></a>00466 }
<a name="l00467"></a>00467 
<a name="l00468"></a>00468 
<a name="l00469"></a>00469 <span class="preprocessor">#ifdef OLD_DCOP</span>
<a name="l00470"></a>00470 <span class="preprocessor"></span><span class="comment">/*=============================================================================</span>
<a name="l00471"></a>00471 <span class="comment">= DcopHandlerOld</span>
<a name="l00472"></a>00472 <span class="comment">= This class's function is simply to act as a receiver for DCOP requests.</span>
<a name="l00473"></a>00473 <span class="comment">=============================================================================*/</span>
<a name="l00474"></a>00474 DcopHandlerOld::DcopHandlerOld()
<a name="l00475"></a>00475     : QWidget(),
<a name="l00476"></a>00476       DCOPObject(DCOP_OLD_OBJECT_NAME)
<a name="l00477"></a>00477 {
<a name="l00478"></a>00478     kdDebug(5950) &lt;&lt; <span class="stringliteral">"DcopHandlerOld::DcopHandlerOld()\n"</span>;
<a name="l00479"></a>00479 }
<a name="l00480"></a>00480 
<a name="l00481"></a>00481 <span class="comment">/******************************************************************************</span>
<a name="l00482"></a>00482 <span class="comment">* Process a DCOP request.</span>
<a name="l00483"></a>00483 <span class="comment">*/</span>
<a name="l00484"></a>00484 <span class="keywordtype">bool</span> DcopHandlerOld::process(<span class="keyword">const</span> QCString&amp; func, <span class="keyword">const</span> QByteArray&amp; data, QCString&amp; replyType, QByteArray&amp;)
<a name="l00485"></a>00485 {
<a name="l00486"></a>00486     kdDebug(5950) &lt;&lt; <span class="stringliteral">"DcopHandlerOld::process(): "</span> &lt;&lt; func &lt;&lt; endl;
<a name="l00487"></a>00487     <span class="keyword">enum</span>
<a name="l00488"></a>00488     {
<a name="l00489"></a>00489         OPERATION      = 0x0007,    <span class="comment">// mask for main operation</span>
<a name="l00490"></a>00490           HANDLE       = 0x0001,
<a name="l00491"></a>00491           CANCEL       = 0x0002,
<a name="l00492"></a>00492           TRIGGER      = 0x0003,
<a name="l00493"></a>00493           SCHEDULE     = 0x0004,
<a name="l00494"></a>00494         ALARM_TYPE     = 0x00F0,    <span class="comment">// mask for SCHEDULE alarm type</span>
<a name="l00495"></a>00495           MESSAGE      = 0x0010,
<a name="l00496"></a>00496           FILE         = 0x0020,
<a name="l00497"></a>00497           COMMAND      = 0x0030,
<a name="l00498"></a>00498           EMAIL        = 0x0040,
<a name="l00499"></a>00499         SCH_FLAGS      = 0x0F00,    <span class="comment">// mask for SCHEDULE flags</span>
<a name="l00500"></a>00500           REP_COUNT    = 0x0100,
<a name="l00501"></a>00501           REP_END      = 0x0200,
<a name="l00502"></a>00502           FONT         = 0x0400,
<a name="l00503"></a>00503         PRE_096        = 0x1000,           <span class="comment">// old-style pre-0.9.6 deprecated method</span>
<a name="l00504"></a>00504         PRE_091        = 0x2000 | PRE_096  <span class="comment">// old-style pre-0.9.1 deprecated method</span>
<a name="l00505"></a>00505     };
<a name="l00506"></a>00506     replyType = <span class="stringliteral">"void"</span>;
<a name="l00507"></a>00507     <span class="keywordtype">int</span> function;
<a name="l00508"></a>00508     <span class="keywordflow">if</span> (func == <span class="stringliteral">"handleEvent(const QString&amp;,const QString&amp;)"</span>
<a name="l00509"></a>00509     ||       func == <span class="stringliteral">"handleEvent(QString,QString)"</span>)
<a name="l00510"></a>00510         function = HANDLE;
<a name="l00511"></a>00511     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (func == <span class="stringliteral">"cancelEvent(const QString&amp;,const QString&amp;)"</span>
<a name="l00512"></a>00512     ||       func == <span class="stringliteral">"cancelEvent(QString,QString)"</span>)
<a name="l00513"></a>00513         function = CANCEL;
<a name="l00514"></a>00514     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (func == <span class="stringliteral">"triggerEvent(const QString&amp;,const QString&amp;)"</span>
<a name="l00515"></a>00515     ||       func == <span class="stringliteral">"triggerEvent(QString,QString)"</span>)
<a name="l00516"></a>00516         function = TRIGGER;
<a name="l00517"></a>00517 
<a name="l00518"></a>00518     <span class="comment">//                scheduleMessage(message, dateTime, colour, colourfg, flags, audioURL, reminder, recurrence)</span>
<a name="l00519"></a>00519     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (func == <span class="stringliteral">"scheduleMessage(const QString&amp;,const QDateTime&amp;,const QColor&amp;,const QColor&amp;,Q_UINT32,const QString&amp;,Q_INT32,const QString&amp;)"</span>
<a name="l00520"></a>00520     ||       func == <span class="stringliteral">"scheduleMessage(QString,QDateTime,QColor,QColor,Q_UINT32,QString,Q_UINT32,QString)"</span>)
<a name="l00521"></a>00521         function = SCHEDULE | MESSAGE;
<a name="l00522"></a>00522     <span class="comment">//                scheduleMessage(message, dateTime, colour, colourfg, font, flags, audioURL, reminder, recurrence)</span>
<a name="l00523"></a>00523     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (func == <span class="stringliteral">"scheduleMessage(const QString&amp;,const QDateTime&amp;,const QColor&amp;,const QColor&amp;,const QFont&amp;,Q_UINT32,const QString&amp;,Q_INT32,const QString&amp;)"</span>
<a name="l00524"></a>00524     ||       func == <span class="stringliteral">"scheduleMessage(QString,QDateTime,QColor,QColor,QFont,Q_UINT32,QString,Q_UINT32,QString)"</span>)
<a name="l00525"></a>00525         function = SCHEDULE | MESSAGE | FONT;
<a name="l00526"></a>00526     <span class="comment">//                scheduleFile(URL, dateTime, colour, flags, audioURL, reminder, recurrence)</span>
<a name="l00527"></a>00527     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (func == <span class="stringliteral">"scheduleFile(const QString&amp;,const QDateTime&amp;,const QColor&amp;,Q_UINT32,const QString&amp;,Q_INT32,Q_INT32,const QString&amp;)"</span>
<a name="l00528"></a>00528     ||       func == <span class="stringliteral">"scheduleFile(QString,QDateTime,QColor,Q_UINT32,QString,Q_UINT32,QString)"</span>)
<a name="l00529"></a>00529         function = SCHEDULE | FILE;
<a name="l00530"></a>00530     <span class="comment">//                scheduleCommand(commandLine, dateTime, flags, recurrence)</span>
<a name="l00531"></a>00531     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (func == <span class="stringliteral">"scheduleCommand(const QString&amp;,const QDateTime&amp;,Q_UINT32,const QString&amp;)"</span>
<a name="l00532"></a>00532     ||       func == <span class="stringliteral">"scheduleCommand(QString,QDateTime,Q_UINT32,QString)"</span>)
<a name="l00533"></a>00533         function = SCHEDULE | COMMAND;
<a name="l00534"></a>00534     <span class="comment">//                scheduleEmail(addresses, subject, message, attachments, dateTime, flags, recurrence)</span>
<a name="l00535"></a>00535     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (func == <span class="stringliteral">"scheduleEmail(const QString&amp;,const QString&amp;,const QString&amp;,const QString&amp;,const QDateTime&amp;,Q_UINT32,const QString&amp;)"</span>
<a name="l00536"></a>00536     ||       func == <span class="stringliteral">"scheduleEmail(QString,QString,QString,QString,QDateTime,Q_UINT32,QString)"</span>)
<a name="l00537"></a>00537         function = SCHEDULE | EMAIL;
<a name="l00538"></a>00538 
<a name="l00539"></a>00539     <span class="comment">//                scheduleMessage(message, dateTime, colour, colourfg, flags, audioURL, reminder, recurType, interval, recurCount)</span>
<a name="l00540"></a>00540     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (func == <span class="stringliteral">"scheduleMessage(const QString&amp;,const QDateTime&amp;,const QColor&amp;,const QColor&amp;,Q_UINT32,const QString&amp;,Q_INT32,Q_INT32,Q_INT32,Q_INT32)"</span>
<a name="l00541"></a>00541     ||       func == <span class="stringliteral">"scheduleMessage(QString,QDateTime,QColor,QColor,Q_UINT32,QString,Q_INT32,Q_INT32,Q_INT32,Q_INT32)"</span>)
<a name="l00542"></a>00542         function = SCHEDULE | MESSAGE | REP_COUNT;
<a name="l00543"></a>00543     <span class="comment">//                scheduleFile(URL, dateTime, colour, flags, audioURL, reminder, recurType, interval, recurCount)</span>
<a name="l00544"></a>00544     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (func == <span class="stringliteral">"scheduleFile(const QString&amp;,const QDateTime&amp;,const QColor&amp;,Q_UINT32,const QString&amp;,Q_INT32,Q_INT32,Q_INT32,Q_INT32)"</span>
<a name="l00545"></a>00545     ||       func == <span class="stringliteral">"scheduleFile(QString,QDateTime,QColor,Q_UINT32,QString,Q_INT32,Q_INT32,Q_INT32,Q_INT32)"</span>)
<a name="l00546"></a>00546         function = SCHEDULE | FILE | REP_COUNT;
<a name="l00547"></a>00547     <span class="comment">//                scheduleCommand(commandLine, dateTime, flags, recurType, interval, recurCount)</span>
<a name="l00548"></a>00548     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (func == <span class="stringliteral">"scheduleCommand(const QString&amp;,const QDateTime&amp;,Q_UINT32,Q_INT32,Q_INT32,Q_INT32)"</span>
<a name="l00549"></a>00549     ||       func == <span class="stringliteral">"scheduleCommand(QString,QDateTime,Q_UINT32,Q_INT32,Q_INT32,Q_INT32)"</span>)
<a name="l00550"></a>00550         function = SCHEDULE | COMMAND | REP_COUNT;
<a name="l00551"></a>00551     <span class="comment">//                scheduleEmail(addresses, subject, message, attachments, dateTime, flags, recurType, interval, recurCount)</span>
<a name="l00552"></a>00552     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (func == <span class="stringliteral">"scheduleEmail(const QString&amp;,const QString&amp;,const QString&amp;,const QString&amp;,const QDateTime&amp;,Q_UINT32,Q_INT32,Q_INT32,Q_INT32)"</span>
<a name="l00553"></a>00553     ||       func == <span class="stringliteral">"scheduleEmail(QString,QString,QString,QString,QDateTime,Q_UINT32,Q_INT32,Q_INT32,Q_INT32)"</span>)
<a name="l00554"></a>00554         function = SCHEDULE | EMAIL | REP_COUNT;
<a name="l00555"></a>00555 
<a name="l00556"></a>00556     <span class="comment">//                scheduleMessage(message, dateTime, colour, colourfg, flags, audioURL, reminder, recurType, interval, endTime)</span>
<a name="l00557"></a>00557     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (func == <span class="stringliteral">"scheduleMessage(const QString&amp;,const QDateTime&amp;,const QColor&amp;,const QColor&amp;,Q_UINT32,const QString&amp;,Q_INT32,Q_INT32,Q_INT32,const QDateTime&amp;)"</span>
<a name="l00558"></a>00558     ||       func == <span class="stringliteral">"scheduleMessage(QString,QDateTime,QColor,QColor,Q_UINT32,QString,Q_INT32,Q_INT32,Q_INT32,QDateTime)"</span>)
<a name="l00559"></a>00559         function = SCHEDULE | MESSAGE | REP_END;
<a name="l00560"></a>00560     <span class="comment">//                scheduleFile(URL, dateTime, colour, flags, audioURL, reminder, recurType, interval, endTime)</span>
<a name="l00561"></a>00561     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (func == <span class="stringliteral">"scheduleFile(const QString&amp;,const QDateTime&amp;,const QColor&amp;,Q_UINT32,const QString&amp;,Q_INT32,Q_INT32,Q_INT32,const QDateTime&amp;)"</span>
<a name="l00562"></a>00562     ||       func == <span class="stringliteral">"scheduleFile(QString,QDateTime,QColor,Q_UINT32,QString,Q_INT32,Q_INT32,Q_INT32,QDateTime)"</span>)
<a name="l00563"></a>00563         function = SCHEDULE | FILE | REP_END;
<a name="l00564"></a>00564     <span class="comment">//                scheduleCommand(commandLine, dateTime, flags, recurType, interval, endTime)</span>
<a name="l00565"></a>00565     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (func == <span class="stringliteral">"scheduleCommand(const QString&amp;,const QDateTime&amp;,Q_UINT32,Q_INT32,Q_INT32,const QDateTime&amp;)"</span>
<a name="l00566"></a>00566     ||       func == <span class="stringliteral">"scheduleCommand(QString,QDateTime,Q_UINT32,Q_INT32,Q_INT32,QDateTime)"</span>)
<a name="l00567"></a>00567         function = SCHEDULE | COMMAND | REP_END;
<a name="l00568"></a>00568     <span class="comment">//                scheduleEmail(addresses, subject, message, attachments, dateTime, flags, recurType, interval, endTime)</span>
<a name="l00569"></a>00569     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (func == <span class="stringliteral">"scheduleEmail(const QString&amp;,const QString&amp;,const QString&amp;,const QString&amp;,const QDateTime&amp;,Q_UINT32,Q_INT32,Q_INT32,const QDateTime&amp;)"</span>
<a name="l00570"></a>00570     ||       func == <span class="stringliteral">"scheduleEmail(QString,QString,QString,QString,QDateTime,Q_UINT32,Q_INT32,Q_INT32,QDateTime)"</span>)
<a name="l00571"></a>00571         function = SCHEDULE | EMAIL | REP_END;
<a name="l00572"></a>00572 
<a name="l00573"></a>00573     <span class="comment">// Deprecated methods: backwards compatibility with KAlarm pre-0.9.6</span>
<a name="l00574"></a>00574     <span class="comment">//                scheduleMessage(message, dateTime, colour, flags, audioURL, reminder, recurrence)</span>
<a name="l00575"></a>00575     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (func == <span class="stringliteral">"scheduleMessage(const QString&amp;,const QDateTime&amp;,const QColor&amp;,Q_UINT32,const QString&amp;,Q_INT32,const QString&amp;)"</span>
<a name="l00576"></a>00576     ||       func == <span class="stringliteral">"scheduleMessage(QString,QDateTime,QColor,Q_UINT32,QString,Q_UINT32,QString)"</span>)
<a name="l00577"></a>00577         function = SCHEDULE | MESSAGE | PRE_096;
<a name="l00578"></a>00578     <span class="comment">//                scheduleMessage(message, dateTime, colour, font, flags, audioURL, reminder, recurrence)</span>
<a name="l00579"></a>00579     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (func == <span class="stringliteral">"scheduleMessage(const QString&amp;,const QDateTime&amp;,const QColor&amp;,const QFont&amp;,Q_UINT32,const QString&amp;,Q_INT32,const QString&amp;)"</span>
<a name="l00580"></a>00580     ||       func == <span class="stringliteral">"scheduleMessage(QString,QDateTime,QColor,QFont,Q_UINT32,QString,Q_UINT32,QString)"</span>)
<a name="l00581"></a>00581         function = SCHEDULE | MESSAGE | FONT | PRE_096;
<a name="l00582"></a>00582     <span class="comment">//                scheduleMessage(message, dateTime, colour, flags, audioURL, reminder, recurType, interval, recurCount)</span>
<a name="l00583"></a>00583     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (func == <span class="stringliteral">"scheduleMessage(const QString&amp;,const QDateTime&amp;,const QColor&amp;,Q_UINT32,const QString&amp;,Q_INT32,Q_INT32,Q_INT32,Q_INT32)"</span>
<a name="l00584"></a>00584     ||       func == <span class="stringliteral">"scheduleMessage(QString,QDateTime,QColor,Q_UINT32,QString,Q_INT32,Q_INT32,Q_INT32,Q_INT32)"</span>)
<a name="l00585"></a>00585         function = SCHEDULE | MESSAGE | REP_COUNT | PRE_096;
<a name="l00586"></a>00586     <span class="comment">//                scheduleMessage(message, dateTime, colour, flags, audioURL, reminder, recurType, interval, endTime)</span>
<a name="l00587"></a>00587     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (func == <span class="stringliteral">"scheduleMessage(const QString&amp;,const QDateTime&amp;,const QColor&amp;,Q_UINT32,const QString&amp;,Q_INT32,Q_INT32,Q_INT32,const QDateTime&amp;)"</span>
<a name="l00588"></a>00588     ||       func == <span class="stringliteral">"scheduleMessage(QString,QDateTime,QColor,Q_UINT32,QString,Q_INT32,Q_INT32,Q_INT32,QDateTime)"</span>)
<a name="l00589"></a>00589         function = SCHEDULE | MESSAGE | REP_END | PRE_096;
<a name="l00590"></a>00590 
<a name="l00591"></a>00591     <span class="comment">// Deprecated methods: backwards compatibility with KAlarm pre-0.9.1</span>
<a name="l00592"></a>00592     <span class="comment">//                scheduleMessage(message, dateTime, colour, flags, audioURL)</span>
<a name="l00593"></a>00593     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (func == <span class="stringliteral">"scheduleMessage(const QString&amp;,const QDateTime&amp;,const QColor&amp;,Q_UINT32,const QString&amp;)"</span>
<a name="l00594"></a>00594     ||       func == <span class="stringliteral">"scheduleMessage(QString,QDateTime,QColor,Q_UINT32,QString)"</span>)
<a name="l00595"></a>00595         function = SCHEDULE | MESSAGE | PRE_091;
<a name="l00596"></a>00596     <span class="comment">//                scheduleFile(URL, dateTime, colour, flags, audioURL)</span>
<a name="l00597"></a>00597     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (func == <span class="stringliteral">"scheduleFile(const QString&amp;,const QDateTime&amp;,const QColor&amp;,Q_UINT32,const QString&amp;)"</span>
<a name="l00598"></a>00598     ||       func == <span class="stringliteral">"scheduleFile(QString,QDateTime,QColor,Q_UINT32,QString)"</span>)
<a name="l00599"></a>00599         function = SCHEDULE | FILE | PRE_091;
<a name="l00600"></a>00600     <span class="comment">//                scheduleMessage(message, dateTime, colour, flags, audioURL, recurType, interval, recurCount)</span>
<a name="l00601"></a>00601     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (func == <span class="stringliteral">"scheduleMessage(const QString&amp;,const QDateTime&amp;,const QColor&amp;,Q_UINT32,const QString&amp;,Q_INT32,Q_INT32,Q_INT32)"</span>
<a name="l00602"></a>00602     ||       func == <span class="stringliteral">"scheduleMessage(QString,QDateTime,QColor,Q_UINT32,QString,Q_INT32,Q_INT32,Q_INT32)"</span>)
<a name="l00603"></a>00603         function = SCHEDULE | MESSAGE | REP_COUNT | PRE_091;
<a name="l00604"></a>00604     <span class="comment">//                scheduleFile(URL, dateTime, colour, flags, audioURL, recurType, interval, recurCount)</span>
<a name="l00605"></a>00605     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (func == <span class="stringliteral">"scheduleFile(const QString&amp;,const QDateTime&amp;,const QColor&amp;,Q_UINT32,const QString&amp;,Q_INT32,Q_INT32,Q_INT32)"</span>
<a name="l00606"></a>00606     ||       func == <span class="stringliteral">"scheduleFile(QString,QDateTime,QColor,Q_UINT32,QString,Q_INT32,Q_INT32,Q_INT32)"</span>)
<a name="l00607"></a>00607         function = SCHEDULE | FILE | REP_COUNT | PRE_091;
<a name="l00608"></a>00608     <span class="comment">//                scheduleMessage(message, dateTime, colour, flags, audioURL, recurType, interval, endTime)</span>
<a name="l00609"></a>00609     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (func == <span class="stringliteral">"scheduleMessage(const QString&amp;,const QDateTime&amp;,const QColor&amp;,Q_UINT32,const QString&amp;,Q_INT32,Q_INT32,const QDateTime&amp;)"</span>
<a name="l00610"></a>00610     ||       func == <span class="stringliteral">"scheduleMessage(QString,QDateTime,QColor,Q_UINT32,QString,Q_INT32,Q_INT32,QDateTime)"</span>)
<a name="l00611"></a>00611         function = SCHEDULE | MESSAGE | REP_END | PRE_091;
<a name="l00612"></a>00612     <span class="comment">//                scheduleFile(URL, dateTime, colour, flags, audioURL, recurType, interval, endTime)</span>
<a name="l00613"></a>00613     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (func == <span class="stringliteral">"scheduleFile(const QString&amp;,const QDateTime&amp;,const QColor&amp;,Q_UINT32,const QString&amp;,Q_INT32,Q_INT32,const QDateTime&amp;)"</span>
<a name="l00614"></a>00614     ||       func == <span class="stringliteral">"scheduleFile(QString,QDateTime,QColor,Q_UINT32,QString,Q_INT32,Q_INT32,QDateTime)"</span>)
<a name="l00615"></a>00615         function = SCHEDULE | FILE | REP_END | PRE_091;
<a name="l00616"></a>00616 
<a name="l00617"></a>00617     <span class="comment">// Obsolete methods: backwards compatibility with KAlarm pre-0.7</span>
<a name="l00618"></a>00618     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (func == <span class="stringliteral">"scheduleMessage(const QString&amp;,const QDateTime&amp;,const QColor&amp;,Q_UINT32,Q_INT32,Q_INT32)"</span>
<a name="l00619"></a>00619     ||       func == <span class="stringliteral">"scheduleMessage(QString,QDateTime,QColor,Q_UINT32,Q_INT32,Q_INT32)"</span>
<a name="l00620"></a>00620     ||       func == <span class="stringliteral">"scheduleFile(const QString&amp;,const QDateTime&amp;,const QColor&amp;,Q_UINT32,Q_INT32,Q_INT32)"</span>
<a name="l00621"></a>00621     ||       func == <span class="stringliteral">"scheduleFile(QString,QDateTime,QColor,Q_UINT32,Q_INT32,Q_INT32)"</span>
<a name="l00622"></a>00622     ||       func == <span class="stringliteral">"scheduleCommand(const QString&amp;,const QDateTime&amp;,Q_UINT32,Q_INT32,Q_INT32)"</span>
<a name="l00623"></a>00623     ||       func == <span class="stringliteral">"scheduleCommand(QString,QDateTime,Q_UINT32,Q_INT32,Q_INT32)"</span>
<a name="l00624"></a>00624     <span class="comment">// Obsolete methods: backwards compatibility with KAlarm pre-0.6</span>
<a name="l00625"></a>00625     ||       func == <span class="stringliteral">"cancelMessage(const QString&amp;,const QString&amp;)"</span>
<a name="l00626"></a>00626     ||       func == <span class="stringliteral">"cancelMessage(QString,QString)"</span>
<a name="l00627"></a>00627     ||       func == <span class="stringliteral">"displayMessage(const QString&amp;,const QString&amp;)"</span>
<a name="l00628"></a>00628     ||       func == <span class="stringliteral">"displayMessage(QString,QString)"</span>)
<a name="l00629"></a>00629     {
<a name="l00630"></a>00630         kdError(5950) &lt;&lt; <span class="stringliteral">"DcopHandlerOld::process(): obsolete DCOP function call: '"</span> &lt;&lt; func &lt;&lt; <span class="stringliteral">"'"</span> &lt;&lt; endl;
<a name="l00631"></a>00631         <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00632"></a>00632     }
<a name="l00633"></a>00633     <span class="keywordflow">else</span>
<a name="l00634"></a>00634     {
<a name="l00635"></a>00635         kdError(5950) &lt;&lt; <span class="stringliteral">"DcopHandlerOld::process(): unknown DCOP function"</span> &lt;&lt; endl;
<a name="l00636"></a>00636         <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00637"></a>00637     }
<a name="l00638"></a>00638 
<a name="l00639"></a>00639     <span class="keywordflow">switch</span> (function &amp; OPERATION)
<a name="l00640"></a>00640     {
<a name="l00641"></a>00641         <span class="keywordflow">case</span> HANDLE:        <span class="comment">// trigger or cancel event with specified ID from calendar file</span>
<a name="l00642"></a>00642         <span class="keywordflow">case</span> CANCEL:        <span class="comment">// cancel event with specified ID from calendar file</span>
<a name="l00643"></a>00643         <span class="keywordflow">case</span> TRIGGER:       <span class="comment">// trigger event with specified ID in calendar file</span>
<a name="l00644"></a>00644         {
<a name="l00645"></a>00645 
<a name="l00646"></a>00646             QDataStream arg(data, IO_ReadOnly);
<a name="l00647"></a>00647             QString urlString, vuid;
<a name="l00648"></a>00648             arg &gt;&gt; urlString &gt;&gt; vuid;
<a name="l00649"></a>00649             <span class="keywordflow">switch</span> (function)
<a name="l00650"></a>00650             {
<a name="l00651"></a>00651                 <span class="keywordflow">case</span> HANDLE:
<a name="l00652"></a>00652                     <span class="keywordflow">return</span> theApp()-&gt;handleEvent(urlString, vuid);
<a name="l00653"></a>00653                 <span class="keywordflow">case</span> CANCEL:
<a name="l00654"></a>00654                     <span class="keywordflow">return</span> theApp()-&gt;deleteEvent(urlString, vuid);
<a name="l00655"></a>00655                 <span class="keywordflow">case</span> TRIGGER:
<a name="l00656"></a>00656                     <span class="keywordflow">return</span> theApp()-&gt;triggerEvent(urlString, vuid);
<a name="l00657"></a>00657             }
<a name="l00658"></a>00658             <span class="keywordflow">break</span>;
<a name="l00659"></a>00659         }
<a name="l00660"></a>00660         <span class="keywordflow">case</span> SCHEDULE:      <span class="comment">// schedule a new event</span>
<a name="l00661"></a>00661         {
<a name="l00662"></a>00662             KAEvent::Action action;
<a name="l00663"></a>00663             <span class="keywordflow">switch</span> (function &amp; ALARM_TYPE)
<a name="l00664"></a>00664             {
<a name="l00665"></a>00665                 <span class="keywordflow">case</span> MESSAGE:  action = KAEvent::MESSAGE;  <span class="keywordflow">break</span>;
<a name="l00666"></a>00666                 <span class="keywordflow">case</span> FILE:     action = KAEvent::FILE;     <span class="keywordflow">break</span>;
<a name="l00667"></a>00667                 <span class="keywordflow">case</span> COMMAND:  action = KAEvent::COMMAND;  <span class="keywordflow">break</span>;
<a name="l00668"></a>00668                 <span class="keywordflow">case</span> EMAIL:    action = KAEvent::EMAIL;    <span class="keywordflow">break</span>;
<a name="l00669"></a>00669                 <span class="keywordflow">default</span>:  <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00670"></a>00670             }
<a name="l00671"></a>00671             QDataStream  arg(data, IO_ReadOnly);
<a name="l00672"></a>00672             QString      text, audioFile, mailSubject;
<a name="l00673"></a>00673             <span class="keywordtype">float</span>        audioVolume = -1;
<a name="l00674"></a>00674             EmailAddressList mailAddresses;
<a name="l00675"></a>00675             QStringList  mailAttachments;
<a name="l00676"></a>00676             QDateTime    dateTime, endTime;
<a name="l00677"></a>00677             QColor       bgColour;
<a name="l00678"></a>00678             QColor       fgColour(Qt::black);
<a name="l00679"></a>00679             QFont        font;
<a name="l00680"></a>00680             Q_UINT32     flags;
<a name="l00681"></a>00681             <span class="keywordtype">int</span>          lateCancel = 0;
<a name="l00682"></a>00682             KARecurrence recurrence;
<a name="l00683"></a>00683             Q_INT32      reminderMinutes = 0;
<a name="l00684"></a>00684             <span class="keywordflow">if</span> (action == KAEvent::EMAIL)
<a name="l00685"></a>00685             {
<a name="l00686"></a>00686                 QString addresses, attachments;
<a name="l00687"></a>00687                 arg &gt;&gt; addresses &gt;&gt; mailSubject &gt;&gt; text &gt;&gt; attachments;
<a name="l00688"></a>00688                 QString bad = KAMail::convertAddresses(addresses, mailAddresses);
<a name="l00689"></a>00689                 <span class="keywordflow">if</span> (!bad.isEmpty())
<a name="l00690"></a>00690                 {
<a name="l00691"></a>00691                     kdError(5950) &lt;&lt; <span class="stringliteral">"DcopHandlerOld::process(): invalid email addresses: "</span> &lt;&lt; bad &lt;&lt; endl;
<a name="l00692"></a>00692                     <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00693"></a>00693                 }
<a name="l00694"></a>00694                 <span class="keywordflow">if</span> (mailAddresses.isEmpty())
<a name="l00695"></a>00695                 {
<a name="l00696"></a>00696                     kdError(5950) &lt;&lt; <span class="stringliteral">"DcopHandlerOld::process(): no email address\n"</span>;
<a name="l00697"></a>00697                     <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00698"></a>00698                 }
<a name="l00699"></a>00699                 bad = KAMail::convertAttachments(attachments, mailAttachments);
<a name="l00700"></a>00700                 <span class="keywordflow">if</span> (!bad.isEmpty())
<a name="l00701"></a>00701                 {
<a name="l00702"></a>00702                     kdError(5950) &lt;&lt; <span class="stringliteral">"DcopHandlerOld::process(): invalid email attachment: "</span> &lt;&lt; bad &lt;&lt; endl;
<a name="l00703"></a>00703                     <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00704"></a>00704                 }
<a name="l00705"></a>00705             }
<a name="l00706"></a>00706             <span class="keywordflow">else</span>
<a name="l00707"></a>00707                 arg &gt;&gt; text;
<a name="l00708"></a>00708             arg.readRawBytes((<span class="keywordtype">char</span>*)&amp;dateTime, <span class="keyword">sizeof</span>(dateTime));
<a name="l00709"></a>00709             <span class="keywordflow">if</span> (action != KAEvent::COMMAND)
<a name="l00710"></a>00710                 arg.readRawBytes((<span class="keywordtype">char</span>*)&amp;bgColour, <span class="keyword">sizeof</span>(bgColour));
<a name="l00711"></a>00711             <span class="keywordflow">if</span> (action == KAEvent::MESSAGE  &amp;&amp;  !(function &amp; PRE_096))
<a name="l00712"></a>00712                 arg.readRawBytes((<span class="keywordtype">char</span>*)&amp;fgColour, <span class="keyword">sizeof</span>(fgColour));
<a name="l00713"></a>00713             <span class="keywordflow">if</span> (function &amp; FONT)
<a name="l00714"></a>00714             {
<a name="l00715"></a>00715                 arg.readRawBytes((<span class="keywordtype">char</span>*)&amp;font, <span class="keyword">sizeof</span>(font));
<a name="l00716"></a>00716                 arg &gt;&gt; flags;
<a name="l00717"></a>00717             }
<a name="l00718"></a>00718             <span class="keywordflow">else</span>
<a name="l00719"></a>00719             {
<a name="l00720"></a>00720                 arg &gt;&gt; flags;
<a name="l00721"></a>00721                 flags |= KAEvent::DEFAULT_FONT;
<a name="l00722"></a>00722             }
<a name="l00723"></a>00723             <span class="keywordflow">if</span> (flags &amp; KAEvent::LATE_CANCEL)
<a name="l00724"></a>00724                 lateCancel = 1;
<a name="l00725"></a>00725             <span class="keywordflow">if</span> (action == KAEvent::MESSAGE  ||  action == KAEvent::FILE)
<a name="l00726"></a>00726             {
<a name="l00727"></a>00727                 arg &gt;&gt; audioFile;
<a name="l00728"></a>00728                 <span class="keywordflow">if</span> (!(function &amp; PRE_091))
<a name="l00729"></a>00729                     arg &gt;&gt; reminderMinutes;
<a name="l00730"></a>00730             }
<a name="l00731"></a>00731             <span class="keywordflow">if</span> (function &amp; (REP_COUNT | REP_END))
<a name="l00732"></a>00732             {           
<a name="l00733"></a>00733                 KARecurrence::Type recurType;
<a name="l00734"></a>00734                 Q_INT32 recurCount = 0;
<a name="l00735"></a>00735                 Q_INT32 recurInterval;
<a name="l00736"></a>00736                 Q_INT32 type;
<a name="l00737"></a>00737                 arg &gt;&gt; type &gt;&gt; recurInterval;
<a name="l00738"></a>00738                 <span class="keywordflow">switch</span> (type)
<a name="l00739"></a>00739                 {
<a name="l00740"></a>00740                     <span class="keywordflow">case</span> 1:  recurType = KARecurrence::MINUTELY;     <span class="keywordflow">break</span>;
<a name="l00741"></a>00741                     <span class="keywordflow">case</span> 3:  recurType = KARecurrence::DAILY;        <span class="keywordflow">break</span>;
<a name="l00742"></a>00742                     <span class="keywordflow">case</span> 4:  recurType = KARecurrence::WEEKLY;       <span class="keywordflow">break</span>;
<a name="l00743"></a>00743                     <span class="keywordflow">case</span> 6:  recurType = KARecurrence::MONTHLY_DAY;  <span class="keywordflow">break</span>;
<a name="l00744"></a>00744                     <span class="keywordflow">case</span> 7:  recurType = KARecurrence::ANNUAL_DATE;  <span class="keywordflow">break</span>;
<a name="l00745"></a>00745                     <span class="keywordflow">default</span>:
<a name="l00746"></a>00746                         kdError(5950) &lt;&lt; <span class="stringliteral">"DcopHandlerOld::process(): invalid simple repetition type: "</span> &lt;&lt; type &lt;&lt; endl;
<a name="l00747"></a>00747                         <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00748"></a>00748                 }
<a name="l00749"></a>00749                 <span class="keywordflow">if</span> (function &amp; REP_COUNT)
<a name="l00750"></a>00750                     arg &gt;&gt; recurCount;
<a name="l00751"></a>00751                 <span class="keywordflow">else</span>
<a name="l00752"></a>00752                     arg.readRawBytes((<span class="keywordtype">char</span>*)&amp;endTime, <span class="keyword">sizeof</span>(endTime));
<a name="l00753"></a>00753                 recurrence.set(recurType, recurInterval, recurCount,
<a name="l00754"></a>00754                                DateTime(dateTime, flags &amp; KAEvent::ANY_TIME), endTime);
<a name="l00755"></a>00755             }
<a name="l00756"></a>00756             <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!(function &amp; PRE_091))
<a name="l00757"></a>00757             {
<a name="l00758"></a>00758                 QString rule;
<a name="l00759"></a>00759                 arg &gt;&gt; rule;
<a name="l00760"></a>00760                 recurrence.set(rule);
<a name="l00761"></a>00761             }
<a name="l00762"></a>00762             <span class="keywordflow">return</span> theApp()-&gt;scheduleEvent(action, text, dateTime, lateCancel, flags, bgColour, fgColour, font, audioFile,
<a name="l00763"></a>00763                                            audioVolume, reminderMinutes, recurrence, 0, 0, 0, mailAddresses, mailSubject, mailAttachments);
<a name="l00764"></a>00764         }
<a name="l00765"></a>00765     }
<a name="l00766"></a>00766     <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00767"></a>00767 }
<a name="l00768"></a>00768 <span class="preprocessor">#endif // OLD_DCOP</span>
</pre></div></div>
    </div></div>


      </td>
  </tr>
  <tr>
    <td valign="top" id="leftmenu" width="25%">
      <a name="navigation"></a>
      <div class="menu_box"><h2>kalarm</h2>
<div class="nav_list">
<ul><li><a href="index.html">Main Page</a></li><li><a href="hierarchy.html">Class Hierarchy</a></li><li><a href="classes.html">Alphabetical List</a></li><li><a href="annotated.html">Class List</a></li><li><a href="files.html">File List</a></li><li><a href="functions.html">Class Members</a></li></ul>
<!--
<h2>Class Picker</h2>
<div style="text-align: center;">
<form name="guideform">
<select name="guidelinks" style="width:100%;" onChange="window.location=document.guideform.guidelinks.options[document.guideform.guidelinks.selectedIndex].value">
<option value="annotated.html">-- Choose --</option>
  <option value="classAlarmCalendar.html">alarmcalendar</option>,  <option value="classKAEvent.html">kaevent</option>,  <option value="classKAlarmIface.html">kalarmiface</option>,  <option value="classMainWindowBase.html">mainwindowbase</option>,  <option value="classMessageWin.html">messagewin</option>,  <option value="classPickFileRadio.html">pickfileradio</option>,  <option value="classStartOfDayTimer.html">startofdaytimer</option>,
</select>
</form>
</div>
-->
</div></div>
<div class="menu_box"><h2>API Dox</h2>
<div class="nav_list">
<ul>
<li><a href="../../akregator/html/index.html">akregator</a></li><li>&nbsp;&nbsp;<a href="../../akregator/src/html/index.html">src</a></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<a href="../../akregator/src/librss/html/index.html">librss</a></li><li><a href="../../certmanager/html/index.html">certmanager</a></li><li>&nbsp;&nbsp;<a href="../../certmanager/lib/html/index.html">lib</a></li><li><a href="../../kaddressbook/html/index.html">kaddressbook</a></li><li><a href="../../kalarm/html/index.html">kalarm</a></li><li>&nbsp;&nbsp;<a href="../../kalarm/lib/html/index.html">lib</a></li><li><a href="../../kandy/html/index.html">kandy</a></li><li><a href="../../karm/html/index.html">karm</a></li><li><a href="../../kdgantt/html/index.html">kdgantt</a></li><li><a href="../../kgantt/html/index.html">kgantt</a></li><li><a href="../../kioslaves/html/index.html">kioslaves</a></li><li>&nbsp;&nbsp;<a href="../../kioslaves/imap4/html/index.html">imap4</a></li><li>&nbsp;&nbsp;<a href="../../kioslaves/mbox/html/index.html">mbox</a></li><li><a href="../../kitchensync/html/index.html">kitchensync</a></li><li><a href="../../kmail/html/index.html">kmail</a></li><li><a href="../../knotes/html/index.html">knotes</a></li><li><a href="../../konsolekalendar/html/index.html">konsolekalendar</a></li><li><a href="../../kontact/html/index.html">kontact</a></li><li><a href="../../korganizer/html/index.html">korganizer</a></li><li><a href="../../kpilot/html/index.html">kpilot</a></li><li>&nbsp;&nbsp;<a href="../../kpilot/kpilot/html/index.html">kpilot</a></li><li>&nbsp;&nbsp;<a href="../../kpilot/lib/html/index.html">lib</a></li><li><a href="../../libemailfunctions/html/index.html">libemailfunctions</a></li><li><a href="../../libkcal/html/index.html">libkcal</a></li><li><a href="../../libkdepim/html/index.html">libkdepim</a></li><li><a href="../../libkholidays/html/index.html">libkholidays</a></li><li><a href="../../libkmime/html/index.html">libkmime</a></li><li><a href="../../libkpgp/html/index.html">libkpgp</a></li><li><a href="../../libkpimidentities/html/index.html">libkpimidentities</a></li>
</ul></div></div>


        </td>
</tr>
</table>

<span class="doNotDisplay">
  <a href="http://www.kde.org/" accesskey="8">KDE Home</a> |
  <a href="http://accessibility.kde.org/" accesskey="9">KDE Accessibility Home</a> |
  <a href="http://www.kde.org/media/accesskeys.php" accesskey="0">Description of Access Keys</a>
</span>


<div style="height: 8px"></div>

<div id="footer">
  <div id="footer_left">
    Maintained by <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;groo&#116;&#64;kde&#46;or&#x67;">Adriaan de Groot</a>
and
<a href="&#109;a&#105;&#108;&#116;&#111;&#58;w&#105;nter&#64;kde&#46;or&#x67">Allen Winter</a>.
<br/>
    KDE and K Desktop Environment are trademarks of <a href="http://www.kde.org/areas/kde-ev/" title="Homepage of the KDE non-profit Organization">KDE e.V.</a> |
    <a href="http://www.kde.org/contact/impressum.php">Legal</a>
  </div>
  <div id="footer_right"><img src="/media/images/footer_right.png" style="margin: 0px" alt="" /></div>
</div>

<!--
WARNING: DO NOT SEND MAIL TO THE FOLLOWING EMAIL ADDRESS! YOU WILL
BE BLOCKED INSTANTLY AND PERMANENTLY!
<a href="mailto:aaaatrap-425acc3b5374943f@kde.org">Block me</a>
WARNING END
-->

</body>
</html>