Sophie

Sophie

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

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>kmail: accountdialog.cpp Source File (kmail)</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=".">kmail</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>kmail</h2>


<!-- Generated by Doxygen 1.5.5 -->
<h1>accountdialog.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"> *   kmail: KDE mail client</span>
<a name="l00003"></a>00003 <span class="comment"> *   This file: Copyright (C) 2000 Espen Sand, espen@kde.org</span>
<a name="l00004"></a>00004 <span class="comment"> *</span>
<a name="l00005"></a>00005 <span class="comment"> *   This program is free software; you can redistribute it and/or modify</span>
<a name="l00006"></a>00006 <span class="comment"> *   it under the terms of the GNU General Public License as published by</span>
<a name="l00007"></a>00007 <span class="comment"> *   the Free Software Foundation; either version 2 of the License, or</span>
<a name="l00008"></a>00008 <span class="comment"> *   (at your option) any later version.</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *   This program is distributed in the hope that it will be useful,</span>
<a name="l00011"></a>00011 <span class="comment"> *   but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00012"></a>00012 <span class="comment"> *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span>
<a name="l00013"></a>00013 <span class="comment"> *   GNU General Public License for more details.</span>
<a name="l00014"></a>00014 <span class="comment"> *</span>
<a name="l00015"></a>00015 <span class="comment"> *   You should have received a copy of the GNU General Public License</span>
<a name="l00016"></a>00016 <span class="comment"> *   along with this program; if not, write to the Free Software</span>
<a name="l00017"></a>00017 <span class="comment"> *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</span>
<a name="l00018"></a>00018 <span class="comment"> *</span>
<a name="l00019"></a>00019 <span class="comment"> */</span>
<a name="l00020"></a>00020 <span class="preprocessor">#include &lt;config.h&gt;</span>
<a name="l00021"></a>00021 
<a name="l00022"></a>00022 <span class="preprocessor">#include "accountdialog.h"</span>
<a name="l00023"></a>00023 
<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;qbuttongroup.h&gt;</span>
<a name="l00025"></a>00025 <span class="preprocessor">#include &lt;qcheckbox.h&gt;</span>
<a name="l00026"></a>00026 <span class="preprocessor">#include &lt;qlayout.h&gt;</span>
<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;qtabwidget.h&gt;</span>
<a name="l00028"></a>00028 <span class="preprocessor">#include &lt;qradiobutton.h&gt;</span>
<a name="l00029"></a>00029 <span class="preprocessor">#include &lt;qvalidator.h&gt;</span>
<a name="l00030"></a>00030 <span class="preprocessor">#include &lt;qlabel.h&gt;</span>
<a name="l00031"></a>00031 <span class="preprocessor">#include &lt;qpushbutton.h&gt;</span>
<a name="l00032"></a>00032 <span class="preprocessor">#include &lt;qwhatsthis.h&gt;</span>
<a name="l00033"></a>00033 <span class="preprocessor">#include &lt;qhbox.h&gt;</span>
<a name="l00034"></a>00034 <span class="preprocessor">#include &lt;qcombobox.h&gt;</span>
<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;qheader.h&gt;</span>
<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;qtoolbutton.h&gt;</span>
<a name="l00037"></a>00037 <span class="preprocessor">#include &lt;qgrid.h&gt;</span>
<a name="l00038"></a>00038 
<a name="l00039"></a>00039 <span class="preprocessor">#include &lt;kfiledialog.h&gt;</span>
<a name="l00040"></a>00040 <span class="preprocessor">#include &lt;klocale.h&gt;</span>
<a name="l00041"></a>00041 <span class="preprocessor">#include &lt;kdebug.h&gt;</span>
<a name="l00042"></a>00042 <span class="preprocessor">#include &lt;kmessagebox.h&gt;</span>
<a name="l00043"></a>00043 <span class="preprocessor">#include &lt;knuminput.h&gt;</span>
<a name="l00044"></a>00044 <span class="preprocessor">#include &lt;kseparator.h&gt;</span>
<a name="l00045"></a>00045 <span class="preprocessor">#include &lt;kapplication.h&gt;</span>
<a name="l00046"></a>00046 <span class="preprocessor">#include &lt;kmessagebox.h&gt;</span>
<a name="l00047"></a>00047 <span class="preprocessor">#include &lt;kprotocolinfo.h&gt;</span>
<a name="l00048"></a>00048 <span class="preprocessor">#include &lt;kiconloader.h&gt;</span>
<a name="l00049"></a>00049 <span class="preprocessor">#include &lt;kpopupmenu.h&gt;</span>
<a name="l00050"></a>00050 
<a name="l00051"></a>00051 <span class="preprocessor">#include &lt;netdb.h&gt;</span>
<a name="l00052"></a>00052 <span class="preprocessor">#include &lt;netinet/in.h&gt;</span>
<a name="l00053"></a>00053 
<a name="l00054"></a>00054 <span class="preprocessor">#include "sieveconfig.h"</span>
<a name="l00055"></a>00055 <span class="preprocessor">#include "kmacctmaildir.h"</span>
<a name="l00056"></a>00056 <span class="preprocessor">#include "kmacctlocal.h"</span>
<a name="l00057"></a>00057 <span class="preprocessor">#include "accountmanager.h"</span>
<a name="l00058"></a>00058 <span class="preprocessor">#include "popaccount.h"</span>
<a name="l00059"></a>00059 <span class="preprocessor">#include "kmacctimap.h"</span>
<a name="l00060"></a>00060 <span class="preprocessor">#include "kmacctcachedimap.h"</span>
<a name="l00061"></a>00061 <span class="preprocessor">#include "kmfoldermgr.h"</span>
<a name="l00062"></a>00062 <span class="preprocessor">#include "kmservertest.h"</span>
<a name="l00063"></a>00063 <span class="preprocessor">#include "protocols.h"</span>
<a name="l00064"></a>00064 <span class="preprocessor">#include "folderrequester.h"</span>
<a name="l00065"></a>00065 <span class="preprocessor">#include "kmmainwidget.h"</span>
<a name="l00066"></a>00066 <span class="preprocessor">#include "kmfolder.h"</span>
<a name="l00067"></a>00067 <span class="preprocessor">#include &lt;libkpimidentities/identitymanager.h&gt;</span>
<a name="l00068"></a>00068 <span class="preprocessor">#include &lt;libkpimidentities/identitycombo.h&gt;</span>
<a name="l00069"></a>00069 <span class="preprocessor">#include &lt;libkpimidentities/identity.h&gt;</span>
<a name="l00070"></a>00070 <span class="preprocessor">#include "globalsettings.h"</span>
<a name="l00071"></a>00071 
<a name="l00072"></a>00072 <span class="preprocessor">#include &lt;cassert&gt;</span>
<a name="l00073"></a>00073 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
<a name="l00074"></a>00074 
<a name="l00075"></a>00075 <span class="preprocessor">#ifdef HAVE_PATHS_H</span>
<a name="l00076"></a>00076 <span class="preprocessor"></span><span class="preprocessor">#include &lt;paths.h&gt;</span>  <span class="comment">/* defines _PATH_MAILDIR */</span>
<a name="l00077"></a>00077 <span class="preprocessor">#endif</span>
<a name="l00078"></a>00078 <span class="preprocessor"></span>
<a name="l00079"></a>00079 <span class="preprocessor">#ifndef _PATH_MAILDIR</span>
<a name="l00080"></a>00080 <span class="preprocessor"></span><span class="preprocessor">#define _PATH_MAILDIR "/var/spool/mail"</span>
<a name="l00081"></a>00081 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00082"></a>00082 <span class="preprocessor"></span>
<a name="l00083"></a>00083 <span class="keyword">namespace </span>KMail {
<a name="l00084"></a>00084 
<a name="l00085"></a>00085 <span class="keyword">class </span>ProcmailRCParser
<a name="l00086"></a>00086 {
<a name="l00087"></a>00087 <span class="keyword">public</span>:
<a name="l00088"></a>00088   ProcmailRCParser(QString fileName = QString::null);
<a name="l00089"></a>00089   ~ProcmailRCParser();
<a name="l00090"></a>00090 
<a name="l00091"></a>00091   QStringList getLockFilesList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mLockFiles; }
<a name="l00092"></a>00092   QStringList getSpoolFilesList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mSpoolFiles; }
<a name="l00093"></a>00093 
<a name="l00094"></a>00094 <span class="keyword">protected</span>:
<a name="l00095"></a>00095   <span class="keywordtype">void</span> processGlobalLock(<span class="keyword">const</span> QString&amp;);
<a name="l00096"></a>00096   <span class="keywordtype">void</span> processLocalLock(<span class="keyword">const</span> QString&amp;);
<a name="l00097"></a>00097   <span class="keywordtype">void</span> processVariableSetting(<span class="keyword">const</span> QString&amp;, <span class="keywordtype">int</span>);
<a name="l00098"></a>00098   QString expandVars(<span class="keyword">const</span> QString&amp;);
<a name="l00099"></a>00099 
<a name="l00100"></a>00100   QFile mProcmailrc;
<a name="l00101"></a>00101   QTextStream *mStream;
<a name="l00102"></a>00102   QStringList mLockFiles;
<a name="l00103"></a>00103   QStringList mSpoolFiles;
<a name="l00104"></a>00104   QAsciiDict&lt;QString&gt; mVars;
<a name="l00105"></a>00105 };
<a name="l00106"></a>00106 
<a name="l00107"></a>00107 ProcmailRCParser::ProcmailRCParser(QString fname)
<a name="l00108"></a>00108   : mProcmailrc(fname),
<a name="l00109"></a>00109     mStream(new QTextStream(&amp;mProcmailrc))
<a name="l00110"></a>00110 {
<a name="l00111"></a>00111   mVars.setAutoDelete(<span class="keyword">true</span>);
<a name="l00112"></a>00112 
<a name="l00113"></a>00113   <span class="comment">// predefined</span>
<a name="l00114"></a>00114   mVars.insert( <span class="stringliteral">"HOME"</span>, <span class="keyword">new</span> QString( QDir::homeDirPath() ) );
<a name="l00115"></a>00115 
<a name="l00116"></a>00116   <span class="keywordflow">if</span>( !fname || fname.isEmpty() ) {
<a name="l00117"></a>00117     fname = QDir::homeDirPath() + <span class="stringliteral">"/.procmailrc"</span>;
<a name="l00118"></a>00118     mProcmailrc.setName(fname);
<a name="l00119"></a>00119   }
<a name="l00120"></a>00120 
<a name="l00121"></a>00121   QRegExp lockFileGlobal(<span class="stringliteral">"^LOCKFILE="</span>, <span class="keyword">true</span>);
<a name="l00122"></a>00122   QRegExp lockFileLocal(<span class="stringliteral">"^:0"</span>, <span class="keyword">true</span>);
<a name="l00123"></a>00123 
<a name="l00124"></a>00124   <span class="keywordflow">if</span>(  mProcmailrc.open(IO_ReadOnly) ) {
<a name="l00125"></a>00125 
<a name="l00126"></a>00126     QString s;
<a name="l00127"></a>00127 
<a name="l00128"></a>00128     <span class="keywordflow">while</span>( !mStream-&gt;eof() ) {
<a name="l00129"></a>00129 
<a name="l00130"></a>00130       s = mStream-&gt;readLine().stripWhiteSpace();
<a name="l00131"></a>00131 
<a name="l00132"></a>00132       <span class="keywordflow">if</span>(  s[0] == <span class="charliteral">'#'</span> ) <span class="keywordflow">continue</span>; <span class="comment">// skip comments</span>
<a name="l00133"></a>00133 
<a name="l00134"></a>00134       <span class="keywordtype">int</span> commentPos = -1;
<a name="l00135"></a>00135 
<a name="l00136"></a>00136       <span class="keywordflow">if</span>( (commentPos = s.find(<span class="charliteral">'#'</span>)) &gt; -1 ) {
<a name="l00137"></a>00137         <span class="comment">// get rid of trailing comment</span>
<a name="l00138"></a>00138         s.truncate(commentPos);
<a name="l00139"></a>00139         s = s.stripWhiteSpace();
<a name="l00140"></a>00140       }
<a name="l00141"></a>00141 
<a name="l00142"></a>00142       <span class="keywordflow">if</span>(  lockFileGlobal.search(s) != -1 ) {
<a name="l00143"></a>00143         processGlobalLock(s);
<a name="l00144"></a>00144       } <span class="keywordflow">else</span> <span class="keywordflow">if</span>( lockFileLocal.search(s) != -1 ) {
<a name="l00145"></a>00145         processLocalLock(s);
<a name="l00146"></a>00146       } <span class="keywordflow">else</span> <span class="keywordflow">if</span>( <span class="keywordtype">int</span> i = s.find(<span class="charliteral">'='</span>) ) {
<a name="l00147"></a>00147         processVariableSetting(s,i);
<a name="l00148"></a>00148       }
<a name="l00149"></a>00149     }
<a name="l00150"></a>00150 
<a name="l00151"></a>00151   }
<a name="l00152"></a>00152   QString default_Location = getenv(<span class="stringliteral">"MAIL"</span>);
<a name="l00153"></a>00153 
<a name="l00154"></a>00154   <span class="keywordflow">if</span> (default_Location.isNull()) {
<a name="l00155"></a>00155     default_Location = _PATH_MAILDIR;
<a name="l00156"></a>00156     default_Location += <span class="charliteral">'/'</span>;
<a name="l00157"></a>00157     default_Location += getenv(<span class="stringliteral">"USER"</span>);
<a name="l00158"></a>00158   }
<a name="l00159"></a>00159   <span class="keywordflow">if</span> ( !mSpoolFiles.contains(default_Location) )
<a name="l00160"></a>00160     mSpoolFiles &lt;&lt; default_Location;
<a name="l00161"></a>00161 
<a name="l00162"></a>00162   default_Location = default_Location + <span class="stringliteral">".lock"</span>;
<a name="l00163"></a>00163   <span class="keywordflow">if</span> ( !mLockFiles.contains(default_Location) )
<a name="l00164"></a>00164     mLockFiles &lt;&lt; default_Location;
<a name="l00165"></a>00165 }
<a name="l00166"></a>00166 
<a name="l00167"></a>00167 ProcmailRCParser::~ProcmailRCParser()
<a name="l00168"></a>00168 {
<a name="l00169"></a>00169   <span class="keyword">delete</span> mStream;
<a name="l00170"></a>00170 }
<a name="l00171"></a>00171 
<a name="l00172"></a>00172 <span class="keywordtype">void</span>
<a name="l00173"></a>00173 ProcmailRCParser::processGlobalLock(<span class="keyword">const</span> QString &amp;s)
<a name="l00174"></a>00174 {
<a name="l00175"></a>00175   QString val = expandVars(s.mid(s.find(<span class="charliteral">'='</span>) + 1).stripWhiteSpace());
<a name="l00176"></a>00176   <span class="keywordflow">if</span> ( !mLockFiles.contains(val) )
<a name="l00177"></a>00177     mLockFiles &lt;&lt; val;
<a name="l00178"></a>00178 }
<a name="l00179"></a>00179 
<a name="l00180"></a>00180 <span class="keywordtype">void</span>
<a name="l00181"></a>00181 ProcmailRCParser::processLocalLock(<span class="keyword">const</span> QString &amp;s)
<a name="l00182"></a>00182 {
<a name="l00183"></a>00183   QString val;
<a name="l00184"></a>00184   <span class="keywordtype">int</span> colonPos = s.findRev(<span class="charliteral">':'</span>);
<a name="l00185"></a>00185 
<a name="l00186"></a>00186   <span class="keywordflow">if</span> (colonPos &gt; 0) { <span class="comment">// we don't care about the leading one</span>
<a name="l00187"></a>00187     val = s.mid(colonPos + 1).stripWhiteSpace();
<a name="l00188"></a>00188 
<a name="l00189"></a>00189     <span class="keywordflow">if</span> ( val.length() ) {
<a name="l00190"></a>00190       <span class="comment">// user specified a lockfile, so process it</span>
<a name="l00191"></a>00191       <span class="comment">//</span>
<a name="l00192"></a>00192       val = expandVars(val);
<a name="l00193"></a>00193       <span class="keywordflow">if</span>( val[0] != <span class="charliteral">'/'</span> &amp;&amp; mVars.find(<span class="stringliteral">"MAILDIR"</span>) )
<a name="l00194"></a>00194         val.insert(0, *(mVars[<span class="stringliteral">"MAILDIR"</span>]) + <span class="charliteral">'/'</span>);
<a name="l00195"></a>00195     } <span class="comment">// else we'll deduce the lockfile name one we</span>
<a name="l00196"></a>00196     <span class="comment">// get the spoolfile name</span>
<a name="l00197"></a>00197   }
<a name="l00198"></a>00198 
<a name="l00199"></a>00199   <span class="comment">// parse until we find the spoolfile</span>
<a name="l00200"></a>00200   QString line, prevLine;
<a name="l00201"></a>00201   <span class="keywordflow">do</span> {
<a name="l00202"></a>00202     prevLine = line;
<a name="l00203"></a>00203     line = mStream-&gt;readLine().stripWhiteSpace();
<a name="l00204"></a>00204   } <span class="keywordflow">while</span> ( !mStream-&gt;eof() &amp;&amp; (line[0] == <span class="charliteral">'*'</span> ||
<a name="l00205"></a>00205                                 prevLine[prevLine.length() - 1] == <span class="charliteral">'\\'</span> ));
<a name="l00206"></a>00206 
<a name="l00207"></a>00207   <span class="keywordflow">if</span>( line[0] != <span class="charliteral">'!'</span> &amp;&amp; line[0] != <span class="charliteral">'|'</span> &amp;&amp;  line[0] != <span class="charliteral">'{'</span> ) {
<a name="l00208"></a>00208     <span class="comment">// this is a filename, expand it</span>
<a name="l00209"></a>00209     <span class="comment">//</span>
<a name="l00210"></a>00210     line =  line.stripWhiteSpace();
<a name="l00211"></a>00211     line = expandVars(line);
<a name="l00212"></a>00212 
<a name="l00213"></a>00213     <span class="comment">// prepend default MAILDIR if needed</span>
<a name="l00214"></a>00214     <span class="keywordflow">if</span>( line[0] != <span class="charliteral">'/'</span> &amp;&amp; mVars.find(<span class="stringliteral">"MAILDIR"</span>) )
<a name="l00215"></a>00215       line.insert(0, *(mVars[<span class="stringliteral">"MAILDIR"</span>]) + <span class="charliteral">'/'</span>);
<a name="l00216"></a>00216 
<a name="l00217"></a>00217     <span class="comment">// now we have the spoolfile name</span>
<a name="l00218"></a>00218     <span class="keywordflow">if</span> ( !mSpoolFiles.contains(line) )
<a name="l00219"></a>00219       mSpoolFiles &lt;&lt; line;
<a name="l00220"></a>00220 
<a name="l00221"></a>00221     <span class="keywordflow">if</span>( colonPos &gt; 0 &amp;&amp; (!val || val.isEmpty()) ) {
<a name="l00222"></a>00222       <span class="comment">// there is a local lockfile, but the user didn't</span>
<a name="l00223"></a>00223       <span class="comment">// specify the name so compute it from the spoolfile's name</span>
<a name="l00224"></a>00224       val = line;
<a name="l00225"></a>00225 
<a name="l00226"></a>00226       <span class="comment">// append lock extension</span>
<a name="l00227"></a>00227       <span class="keywordflow">if</span>( mVars.find(<span class="stringliteral">"LOCKEXT"</span>) )
<a name="l00228"></a>00228         val += *(mVars[<span class="stringliteral">"LOCKEXT"</span>]);
<a name="l00229"></a>00229       <span class="keywordflow">else</span>
<a name="l00230"></a>00230         val += <span class="stringliteral">".lock"</span>;
<a name="l00231"></a>00231     }
<a name="l00232"></a>00232 
<a name="l00233"></a>00233     <span class="keywordflow">if</span> ( !val.isNull() &amp;&amp; !mLockFiles.contains(val) ) {
<a name="l00234"></a>00234       mLockFiles &lt;&lt; val;
<a name="l00235"></a>00235     }
<a name="l00236"></a>00236   }
<a name="l00237"></a>00237 
<a name="l00238"></a>00238 }
<a name="l00239"></a>00239 
<a name="l00240"></a>00240 <span class="keywordtype">void</span>
<a name="l00241"></a>00241 ProcmailRCParser::processVariableSetting(<span class="keyword">const</span> QString &amp;s, <span class="keywordtype">int</span> eqPos)
<a name="l00242"></a>00242 {
<a name="l00243"></a>00243   <span class="keywordflow">if</span>( eqPos == -1) <span class="keywordflow">return</span>;
<a name="l00244"></a>00244 
<a name="l00245"></a>00245   QString varName = s.left(eqPos),
<a name="l00246"></a>00246     varValue = expandVars(s.mid(eqPos + 1).stripWhiteSpace());
<a name="l00247"></a>00247 
<a name="l00248"></a>00248   mVars.insert(varName.latin1(), <span class="keyword">new</span> QString(varValue));
<a name="l00249"></a>00249 }
<a name="l00250"></a>00250 
<a name="l00251"></a>00251 QString
<a name="l00252"></a>00252 ProcmailRCParser::expandVars(<span class="keyword">const</span> QString &amp;s)
<a name="l00253"></a>00253 {
<a name="l00254"></a>00254   <span class="keywordflow">if</span>( s.isEmpty()) <span class="keywordflow">return</span> s;
<a name="l00255"></a>00255 
<a name="l00256"></a>00256   QString expS = s;
<a name="l00257"></a>00257 
<a name="l00258"></a>00258   QAsciiDictIterator&lt;QString&gt; it( mVars ); <span class="comment">// iterator for dict</span>
<a name="l00259"></a>00259 
<a name="l00260"></a>00260   <span class="keywordflow">while</span> ( it.current() ) {
<a name="l00261"></a>00261     expS.replace(QString::fromLatin1(<span class="stringliteral">"$"</span>) + it.currentKey(), *it.current());
<a name="l00262"></a>00262     ++it;
<a name="l00263"></a>00263   }
<a name="l00264"></a>00264 
<a name="l00265"></a>00265   <span class="keywordflow">return</span> expS;
<a name="l00266"></a>00266 }
<a name="l00267"></a>00267 
<a name="l00268"></a>00268 
<a name="l00269"></a>00269 
<a name="l00270"></a>00270 AccountDialog::AccountDialog( <span class="keyword">const</span> QString &amp; caption, KMAccount *account,
<a name="l00271"></a>00271                   QWidget *parent, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">bool</span> modal )
<a name="l00272"></a>00272   : KDialogBase( parent, name, modal, caption, Ok|Cancel|Help, Ok, true ),
<a name="l00273"></a>00273     mAccount( account ),
<a name="l00274"></a>00274     mServerTest( 0 ),
<a name="l00275"></a>00275     mCurCapa( AllCapa ),
<a name="l00276"></a>00276     mCapaNormal( AllCapa ),
<a name="l00277"></a>00277     mCapaSSL( AllCapa ),
<a name="l00278"></a>00278     mCapaTLS( AllCapa ),
<a name="l00279"></a>00279     mSieveConfigEditor( 0 )
<a name="l00280"></a>00280 {
<a name="l00281"></a>00281   mValidator = <span class="keyword">new</span> QRegExpValidator( QRegExp( <span class="stringliteral">"[A-Za-z0-9-_:.]*"</span> ), 0 );
<a name="l00282"></a>00282   setHelp(<span class="stringliteral">"receiving-mail"</span>);
<a name="l00283"></a>00283 
<a name="l00284"></a>00284   QString accountType = mAccount-&gt;type();
<a name="l00285"></a>00285 
<a name="l00286"></a>00286   <span class="keywordflow">if</span>( accountType == <span class="stringliteral">"local"</span> )
<a name="l00287"></a>00287   {
<a name="l00288"></a>00288     makeLocalAccountPage();
<a name="l00289"></a>00289   }
<a name="l00290"></a>00290   <span class="keywordflow">else</span> <span class="keywordflow">if</span>( accountType == <span class="stringliteral">"maildir"</span> )
<a name="l00291"></a>00291   {
<a name="l00292"></a>00292     makeMaildirAccountPage();
<a name="l00293"></a>00293   }
<a name="l00294"></a>00294   <span class="keywordflow">else</span> <span class="keywordflow">if</span>( accountType == <span class="stringliteral">"pop"</span> )
<a name="l00295"></a>00295   {
<a name="l00296"></a>00296     makePopAccountPage();
<a name="l00297"></a>00297   }
<a name="l00298"></a>00298   <span class="keywordflow">else</span> <span class="keywordflow">if</span>( accountType == <span class="stringliteral">"imap"</span> )
<a name="l00299"></a>00299   {
<a name="l00300"></a>00300     makeImapAccountPage();
<a name="l00301"></a>00301   }
<a name="l00302"></a>00302   <span class="keywordflow">else</span> <span class="keywordflow">if</span>( accountType == <span class="stringliteral">"cachedimap"</span> )
<a name="l00303"></a>00303   {
<a name="l00304"></a>00304     makeImapAccountPage(<span class="keyword">true</span>);
<a name="l00305"></a>00305   }
<a name="l00306"></a>00306   <span class="keywordflow">else</span>
<a name="l00307"></a>00307   {
<a name="l00308"></a>00308     QString msg = i18n( <span class="stringliteral">"Account type is not supported."</span> );
<a name="l00309"></a>00309     KMessageBox::information( topLevelWidget(),msg,i18n(<span class="stringliteral">"Configure Account"</span>) );
<a name="l00310"></a>00310     <span class="keywordflow">return</span>;
<a name="l00311"></a>00311   }
<a name="l00312"></a>00312 
<a name="l00313"></a>00313   setupSettings();
<a name="l00314"></a>00314 }
<a name="l00315"></a>00315 
<a name="l00316"></a>00316 AccountDialog::~AccountDialog()
<a name="l00317"></a>00317 {
<a name="l00318"></a>00318   <span class="keyword">delete</span> mValidator;
<a name="l00319"></a>00319   mValidator = 0;
<a name="l00320"></a>00320   <span class="keyword">delete</span> mServerTest;
<a name="l00321"></a>00321   mServerTest = 0;
<a name="l00322"></a>00322 }
<a name="l00323"></a>00323 
<a name="l00324"></a>00324 <span class="keywordtype">void</span> AccountDialog::makeLocalAccountPage()
<a name="l00325"></a>00325 {
<a name="l00326"></a>00326   ProcmailRCParser procmailrcParser;
<a name="l00327"></a>00327   QFrame *page = makeMainWidget();
<a name="l00328"></a>00328   QGridLayout *topLayout = <span class="keyword">new</span> QGridLayout( page, 12, 3, 0, spacingHint() );
<a name="l00329"></a>00329   topLayout-&gt;addColSpacing( 1, fontMetrics().maxWidth()*15 );
<a name="l00330"></a>00330   topLayout-&gt;setRowStretch( 11, 10 );
<a name="l00331"></a>00331   topLayout-&gt;setColStretch( 1, 10 );
<a name="l00332"></a>00332 
<a name="l00333"></a>00333   mLocal.titleLabel = <span class="keyword">new</span> QLabel( i18n(<span class="stringliteral">"Account Type: Local Account"</span>), page );
<a name="l00334"></a>00334   topLayout-&gt;addMultiCellWidget( mLocal.titleLabel, 0, 0, 0, 2 );
<a name="l00335"></a>00335   QFont titleFont( mLocal.titleLabel-&gt;font() );
<a name="l00336"></a>00336   titleFont.setBold( <span class="keyword">true</span> );
<a name="l00337"></a>00337   mLocal.titleLabel-&gt;setFont( titleFont );
<a name="l00338"></a>00338   KSeparator *hline = <span class="keyword">new</span> KSeparator( KSeparator::HLine, page);
<a name="l00339"></a>00339   topLayout-&gt;addMultiCellWidget( hline, 1, 1, 0, 2 );
<a name="l00340"></a>00340 
<a name="l00341"></a>00341   QLabel *label = <span class="keyword">new</span> QLabel( i18n(<span class="stringliteral">"Account &amp;name:"</span>), page );
<a name="l00342"></a>00342   topLayout-&gt;addWidget( label, 2, 0 );
<a name="l00343"></a>00343   mLocal.nameEdit = <span class="keyword">new</span> KLineEdit( page );
<a name="l00344"></a>00344   label-&gt;setBuddy( mLocal.nameEdit );
<a name="l00345"></a>00345   topLayout-&gt;addWidget( mLocal.nameEdit, 2, 1 );
<a name="l00346"></a>00346 
<a name="l00347"></a>00347   label = <span class="keyword">new</span> QLabel( i18n(<span class="stringliteral">"File &amp;location:"</span>), page );
<a name="l00348"></a>00348   topLayout-&gt;addWidget( label, 3, 0 );
<a name="l00349"></a>00349   mLocal.locationEdit = <span class="keyword">new</span> QComboBox( <span class="keyword">true</span>, page );
<a name="l00350"></a>00350   label-&gt;setBuddy( mLocal.locationEdit );
<a name="l00351"></a>00351   topLayout-&gt;addWidget( mLocal.locationEdit, 3, 1 );
<a name="l00352"></a>00352   mLocal.locationEdit-&gt;insertStringList(procmailrcParser.getSpoolFilesList());
<a name="l00353"></a>00353 
<a name="l00354"></a>00354   QPushButton *choose = <span class="keyword">new</span> QPushButton( i18n(<span class="stringliteral">"Choo&amp;se..."</span>), page );
<a name="l00355"></a>00355   choose-&gt;setAutoDefault( <span class="keyword">false</span> );
<a name="l00356"></a>00356   connect( choose, SIGNAL(clicked()), <span class="keyword">this</span>, SLOT(slotLocationChooser()) );
<a name="l00357"></a>00357   topLayout-&gt;addWidget( choose, 3, 2 );
<a name="l00358"></a>00358 
<a name="l00359"></a>00359   QButtonGroup *group = <span class="keyword">new</span> QButtonGroup(i18n(<span class="stringliteral">"Locking Method"</span>), page );
<a name="l00360"></a>00360   group-&gt;setColumnLayout(0, Qt::Horizontal);
<a name="l00361"></a>00361   group-&gt;layout()-&gt;setSpacing( 0 );
<a name="l00362"></a>00362   group-&gt;layout()-&gt;setMargin( 0 );
<a name="l00363"></a>00363   QGridLayout *groupLayout = <span class="keyword">new</span> QGridLayout( group-&gt;layout() );
<a name="l00364"></a>00364   groupLayout-&gt;setAlignment( Qt::AlignTop );
<a name="l00365"></a>00365   groupLayout-&gt;setSpacing( 6 );
<a name="l00366"></a>00366   groupLayout-&gt;setMargin( 11 );
<a name="l00367"></a>00367 
<a name="l00368"></a>00368   mLocal.lockProcmail = <span class="keyword">new</span> QRadioButton( i18n(<span class="stringliteral">"Procmail loc&amp;kfile:"</span>), group);
<a name="l00369"></a>00369   groupLayout-&gt;addWidget(mLocal.lockProcmail, 0, 0);
<a name="l00370"></a>00370 
<a name="l00371"></a>00371   mLocal.procmailLockFileName = <span class="keyword">new</span> QComboBox( <span class="keyword">true</span>, group );
<a name="l00372"></a>00372   groupLayout-&gt;addWidget(mLocal.procmailLockFileName, 0, 1);
<a name="l00373"></a>00373   mLocal.procmailLockFileName-&gt;insertStringList(procmailrcParser.getLockFilesList());
<a name="l00374"></a>00374   mLocal.procmailLockFileName-&gt;setEnabled(<span class="keyword">false</span>);
<a name="l00375"></a>00375 
<a name="l00376"></a>00376   QObject::connect(mLocal.lockProcmail, SIGNAL(toggled(<span class="keywordtype">bool</span>)),
<a name="l00377"></a>00377                    mLocal.procmailLockFileName, SLOT(setEnabled(<span class="keywordtype">bool</span>)));
<a name="l00378"></a>00378 
<a name="l00379"></a>00379   mLocal.lockMutt = <span class="keyword">new</span> QRadioButton(
<a name="l00380"></a>00380     i18n(<span class="stringliteral">"&amp;Mutt dotlock"</span>), group);
<a name="l00381"></a>00381   groupLayout-&gt;addWidget(mLocal.lockMutt, 1, 0);
<a name="l00382"></a>00382 
<a name="l00383"></a>00383   mLocal.lockMuttPriv = <span class="keyword">new</span> QRadioButton(
<a name="l00384"></a>00384     i18n(<span class="stringliteral">"M&amp;utt dotlock privileged"</span>), group);
<a name="l00385"></a>00385   groupLayout-&gt;addWidget(mLocal.lockMuttPriv, 2, 0);
<a name="l00386"></a>00386 
<a name="l00387"></a>00387   mLocal.lockFcntl = <span class="keyword">new</span> QRadioButton(
<a name="l00388"></a>00388     i18n(<span class="stringliteral">"&amp;FCNTL"</span>), group);
<a name="l00389"></a>00389   groupLayout-&gt;addWidget(mLocal.lockFcntl, 3, 0);
<a name="l00390"></a>00390 
<a name="l00391"></a>00391   mLocal.lockNone = <span class="keyword">new</span> QRadioButton(
<a name="l00392"></a>00392     i18n(<span class="stringliteral">"Non&amp;e (use with care)"</span>), group);
<a name="l00393"></a>00393   groupLayout-&gt;addWidget(mLocal.lockNone, 4, 0);
<a name="l00394"></a>00394 
<a name="l00395"></a>00395   topLayout-&gt;addMultiCellWidget( group, 4, 4, 0, 2 );
<a name="l00396"></a>00396 
<a name="l00397"></a>00397 <span class="preprocessor">#if 0</span>
<a name="l00398"></a>00398 <span class="preprocessor"></span>  QHBox* resourceHB = <span class="keyword">new</span> QHBox( page );
<a name="l00399"></a>00399   resourceHB-&gt;setSpacing( 11 );
<a name="l00400"></a>00400   mLocal.resourceCheck =
<a name="l00401"></a>00401       <span class="keyword">new</span> QCheckBox( i18n( <span class="stringliteral">"Account for semiautomatic resource handling"</span> ), resourceHB );
<a name="l00402"></a>00402   mLocal.resourceClearButton =
<a name="l00403"></a>00403       <span class="keyword">new</span> QPushButton( i18n( <span class="stringliteral">"Clear"</span> ), resourceHB );
<a name="l00404"></a>00404   QWhatsThis::add( mLocal.resourceClearButton,
<a name="l00405"></a>00405                    i18n( <span class="stringliteral">"Delete all allocations for the resource represented by this account."</span> ) );
<a name="l00406"></a>00406   mLocal.resourceClearButton-&gt;setEnabled( <span class="keyword">false</span> );
<a name="l00407"></a>00407   connect( mLocal.resourceCheck, SIGNAL( toggled(<span class="keywordtype">bool</span>) ),
<a name="l00408"></a>00408            mLocal.resourceClearButton, SLOT( setEnabled(<span class="keywordtype">bool</span>) ) );
<a name="l00409"></a>00409   connect( mLocal.resourceClearButton, SIGNAL( clicked() ),
<a name="l00410"></a>00410            <span class="keyword">this</span>, SLOT( slotClearResourceAllocations() ) );
<a name="l00411"></a>00411   mLocal.resourceClearPastButton =
<a name="l00412"></a>00412       <span class="keyword">new</span> QPushButton( i18n( <span class="stringliteral">"Clear Past"</span> ), resourceHB );
<a name="l00413"></a>00413   mLocal.resourceClearPastButton-&gt;setEnabled( <span class="keyword">false</span> );
<a name="l00414"></a>00414   connect( mLocal.resourceCheck, SIGNAL( toggled(<span class="keywordtype">bool</span>) ),
<a name="l00415"></a>00415            mLocal.resourceClearPastButton, SLOT( setEnabled(<span class="keywordtype">bool</span>) ) );
<a name="l00416"></a>00416   QWhatsThis::add( mLocal.resourceClearPastButton,
<a name="l00417"></a>00417                    i18n( <span class="stringliteral">"Delete all outdated allocations for the resource represented by this account."</span> ) );
<a name="l00418"></a>00418   connect( mLocal.resourceClearPastButton, SIGNAL( clicked() ),
<a name="l00419"></a>00419            <span class="keyword">this</span>, SLOT( slotClearPastResourceAllocations() ) );
<a name="l00420"></a>00420   topLayout-&gt;addMultiCellWidget( resourceHB, 5, 5, 0, 2 );
<a name="l00421"></a>00421 <span class="preprocessor">#endif</span>
<a name="l00422"></a>00422 <span class="preprocessor"></span>
<a name="l00423"></a>00423   mLocal.includeInCheck =
<a name="l00424"></a>00424     <span class="keyword">new</span> QCheckBox( i18n(<span class="stringliteral">"Include in m&amp;anual mail check"</span>),
<a name="l00425"></a>00425                    page );
<a name="l00426"></a>00426   topLayout-&gt;addMultiCellWidget( mLocal.includeInCheck, 5, 5, 0, 2 );
<a name="l00427"></a>00427 
<a name="l00428"></a>00428   mLocal.intervalCheck =
<a name="l00429"></a>00429     <span class="keyword">new</span> QCheckBox( i18n(<span class="stringliteral">"Enable &amp;interval mail checking"</span>), page );
<a name="l00430"></a>00430   topLayout-&gt;addMultiCellWidget( mLocal.intervalCheck, 6, 6, 0, 2 );
<a name="l00431"></a>00431   connect( mLocal.intervalCheck, SIGNAL(toggled(<span class="keywordtype">bool</span>)),
<a name="l00432"></a>00432        <span class="keyword">this</span>, SLOT(slotEnableLocalInterval(<span class="keywordtype">bool</span>)) );
<a name="l00433"></a>00433   mLocal.intervalLabel = <span class="keyword">new</span> QLabel( i18n(<span class="stringliteral">"Check inter&amp;val:"</span>), page );
<a name="l00434"></a>00434   topLayout-&gt;addWidget( mLocal.intervalLabel, 7, 0 );
<a name="l00435"></a>00435   mLocal.intervalSpin = <span class="keyword">new</span> KIntNumInput( page );
<a name="l00436"></a>00436   mLocal.intervalLabel-&gt;setBuddy( mLocal.intervalSpin );
<a name="l00437"></a>00437   mLocal.intervalSpin-&gt;setRange( GlobalSettings::self()-&gt;minimumCheckInterval(), 10000, 1, <span class="keyword">false</span> );
<a name="l00438"></a>00438   mLocal.intervalSpin-&gt;setSuffix( i18n(<span class="stringliteral">" min"</span>) );
<a name="l00439"></a>00439   mLocal.intervalSpin-&gt;setValue( defaultmailcheckintervalmin );
<a name="l00440"></a>00440   topLayout-&gt;addWidget( mLocal.intervalSpin, 7, 1 );
<a name="l00441"></a>00441 
<a name="l00442"></a>00442   label = <span class="keyword">new</span> QLabel( i18n(<span class="stringliteral">"&amp;Destination folder:"</span>), page );
<a name="l00443"></a>00443   topLayout-&gt;addWidget( label, 8, 0 );
<a name="l00444"></a>00444   mLocal.folderCombo = <span class="keyword">new</span> QComboBox( <span class="keyword">false</span>, page );
<a name="l00445"></a>00445   label-&gt;setBuddy( mLocal.folderCombo );
<a name="l00446"></a>00446   topLayout-&gt;addWidget( mLocal.folderCombo, 8, 1 );
<a name="l00447"></a>00447 
<a name="l00448"></a>00448   label = <span class="keyword">new</span> QLabel( i18n(<span class="stringliteral">"&amp;Pre-command:"</span>), page );
<a name="l00449"></a>00449   topLayout-&gt;addWidget( label, 9, 0 );
<a name="l00450"></a>00450   mLocal.precommand = <span class="keyword">new</span> KLineEdit( page );
<a name="l00451"></a>00451   label-&gt;setBuddy( mLocal.precommand );
<a name="l00452"></a>00452   topLayout-&gt;addWidget( mLocal.precommand, 9, 1 );
<a name="l00453"></a>00453 
<a name="l00454"></a>00454   mLocal.identityLabel = <span class="keyword">new</span> QLabel( i18n(<span class="stringliteral">"Identity:"</span>), page );
<a name="l00455"></a>00455   topLayout-&gt;addWidget( mLocal.identityLabel, 10, 0 );
<a name="l00456"></a>00456   mLocal.identityCombo = <span class="keyword">new</span> KPIM::IdentityCombo(kmkernel-&gt;identityManager(), page );
<a name="l00457"></a>00457   mLocal.identityLabel-&gt;setBuddy( mLocal.identityCombo );
<a name="l00458"></a>00458   topLayout-&gt;addWidget( mLocal.identityCombo, 10, 1 );
<a name="l00459"></a>00459 
<a name="l00460"></a>00460   connect(kapp,SIGNAL(kdisplayFontChanged()),SLOT(slotFontChanged()));
<a name="l00461"></a>00461 }
<a name="l00462"></a>00462 
<a name="l00463"></a>00463 <span class="keywordtype">void</span> AccountDialog::makeMaildirAccountPage()
<a name="l00464"></a>00464 {
<a name="l00465"></a>00465   ProcmailRCParser procmailrcParser;
<a name="l00466"></a>00466 
<a name="l00467"></a>00467   QFrame *page = makeMainWidget();
<a name="l00468"></a>00468   QGridLayout *topLayout = <span class="keyword">new</span> QGridLayout( page, 11, 3, 0, spacingHint() );
<a name="l00469"></a>00469   topLayout-&gt;addColSpacing( 1, fontMetrics().maxWidth()*15 );
<a name="l00470"></a>00470   topLayout-&gt;setRowStretch( 11, 10 );
<a name="l00471"></a>00471   topLayout-&gt;setColStretch( 1, 10 );
<a name="l00472"></a>00472 
<a name="l00473"></a>00473   mMaildir.titleLabel = <span class="keyword">new</span> QLabel( i18n(<span class="stringliteral">"Account Type: Maildir Account"</span>), page );
<a name="l00474"></a>00474   topLayout-&gt;addMultiCellWidget( mMaildir.titleLabel, 0, 0, 0, 2 );
<a name="l00475"></a>00475   QFont titleFont( mMaildir.titleLabel-&gt;font() );
<a name="l00476"></a>00476   titleFont.setBold( <span class="keyword">true</span> );
<a name="l00477"></a>00477   mMaildir.titleLabel-&gt;setFont( titleFont );
<a name="l00478"></a>00478   QFrame *hline = <span class="keyword">new</span> QFrame( page );
<a name="l00479"></a>00479   hline-&gt;setFrameStyle( QFrame::Sunken | QFrame::HLine );
<a name="l00480"></a>00480   topLayout-&gt;addMultiCellWidget( hline, 1, 1, 0, 2 );
<a name="l00481"></a>00481 
<a name="l00482"></a>00482   mMaildir.nameEdit = <span class="keyword">new</span> KLineEdit( page );
<a name="l00483"></a>00483   topLayout-&gt;addWidget( mMaildir.nameEdit, 2, 1 );
<a name="l00484"></a>00484   QLabel *label = <span class="keyword">new</span> QLabel( mMaildir.nameEdit, i18n(<span class="stringliteral">"Account &amp;name:"</span>), page );
<a name="l00485"></a>00485   topLayout-&gt;addWidget( label, 2, 0 );
<a name="l00486"></a>00486 
<a name="l00487"></a>00487   mMaildir.locationEdit = <span class="keyword">new</span> QComboBox( <span class="keyword">true</span>, page );
<a name="l00488"></a>00488   topLayout-&gt;addWidget( mMaildir.locationEdit, 3, 1 );
<a name="l00489"></a>00489   mMaildir.locationEdit-&gt;insertStringList(procmailrcParser.getSpoolFilesList());
<a name="l00490"></a>00490   label = <span class="keyword">new</span> QLabel( mMaildir.locationEdit, i18n(<span class="stringliteral">"Folder &amp;location:"</span>), page );
<a name="l00491"></a>00491   topLayout-&gt;addWidget( label, 3, 0 );
<a name="l00492"></a>00492 
<a name="l00493"></a>00493   QPushButton *choose = <span class="keyword">new</span> QPushButton( i18n(<span class="stringliteral">"Choo&amp;se..."</span>), page );
<a name="l00494"></a>00494   choose-&gt;setAutoDefault( <span class="keyword">false</span> );
<a name="l00495"></a>00495   connect( choose, SIGNAL(clicked()), <span class="keyword">this</span>, SLOT(slotMaildirChooser()) );
<a name="l00496"></a>00496   topLayout-&gt;addWidget( choose, 3, 2 );
<a name="l00497"></a>00497 
<a name="l00498"></a>00498 <span class="preprocessor">#if 0</span>
<a name="l00499"></a>00499 <span class="preprocessor"></span>  QHBox* resourceHB = <span class="keyword">new</span> QHBox( page );
<a name="l00500"></a>00500   resourceHB-&gt;setSpacing( 11 );
<a name="l00501"></a>00501   mMaildir.resourceCheck =
<a name="l00502"></a>00502       <span class="keyword">new</span> QCheckBox( i18n( <span class="stringliteral">"Account for semiautomatic resource handling"</span> ), resourceHB );
<a name="l00503"></a>00503   mMaildir.resourceClearButton =
<a name="l00504"></a>00504       <span class="keyword">new</span> QPushButton( i18n( <span class="stringliteral">"Clear"</span> ), resourceHB );
<a name="l00505"></a>00505   mMaildir.resourceClearButton-&gt;setEnabled( <span class="keyword">false</span> );
<a name="l00506"></a>00506   connect( mMaildir.resourceCheck, SIGNAL( toggled(<span class="keywordtype">bool</span>) ),
<a name="l00507"></a>00507            mMaildir.resourceClearButton, SLOT( setEnabled(<span class="keywordtype">bool</span>) ) );
<a name="l00508"></a>00508   QWhatsThis::add( mMaildir.resourceClearButton,
<a name="l00509"></a>00509                    i18n( <span class="stringliteral">"Delete all allocations for the resource represented by this account."</span> ) );
<a name="l00510"></a>00510   connect( mMaildir.resourceClearButton, SIGNAL( clicked() ),
<a name="l00511"></a>00511            <span class="keyword">this</span>, SLOT( slotClearResourceAllocations() ) );
<a name="l00512"></a>00512   mMaildir.resourceClearPastButton =
<a name="l00513"></a>00513       <span class="keyword">new</span> QPushButton( i18n( <span class="stringliteral">"Clear Past"</span> ), resourceHB );
<a name="l00514"></a>00514   mMaildir.resourceClearPastButton-&gt;setEnabled( <span class="keyword">false</span> );
<a name="l00515"></a>00515   connect( mMaildir.resourceCheck, SIGNAL( toggled(<span class="keywordtype">bool</span>) ),
<a name="l00516"></a>00516            mMaildir.resourceClearPastButton, SLOT( setEnabled(<span class="keywordtype">bool</span>) ) );
<a name="l00517"></a>00517   QWhatsThis::add( mMaildir.resourceClearPastButton,
<a name="l00518"></a>00518                    i18n( <span class="stringliteral">"Delete all outdated allocations for the resource represented by this account."</span> ) );
<a name="l00519"></a>00519   connect( mMaildir.resourceClearPastButton, SIGNAL( clicked() ),
<a name="l00520"></a>00520            <span class="keyword">this</span>, SLOT( slotClearPastResourceAllocations() ) );
<a name="l00521"></a>00521   topLayout-&gt;addMultiCellWidget( resourceHB, 4, 4, 0, 2 );
<a name="l00522"></a>00522 <span class="preprocessor">#endif</span>
<a name="l00523"></a>00523 <span class="preprocessor"></span>
<a name="l00524"></a>00524   mMaildir.includeInCheck =
<a name="l00525"></a>00525     <span class="keyword">new</span> QCheckBox( i18n(<span class="stringliteral">"Include in &amp;manual mail check"</span>), page );
<a name="l00526"></a>00526   topLayout-&gt;addMultiCellWidget( mMaildir.includeInCheck, 4, 4, 0, 2 );
<a name="l00527"></a>00527 
<a name="l00528"></a>00528   mMaildir.intervalCheck =
<a name="l00529"></a>00529     <span class="keyword">new</span> QCheckBox( i18n(<span class="stringliteral">"Enable &amp;interval mail checking"</span>), page );
<a name="l00530"></a>00530   topLayout-&gt;addMultiCellWidget( mMaildir.intervalCheck, 5, 5, 0, 2 );
<a name="l00531"></a>00531   connect( mMaildir.intervalCheck, SIGNAL(toggled(<span class="keywordtype">bool</span>)),
<a name="l00532"></a>00532        <span class="keyword">this</span>, SLOT(slotEnableMaildirInterval(<span class="keywordtype">bool</span>)) );
<a name="l00533"></a>00533   mMaildir.intervalLabel = <span class="keyword">new</span> QLabel( i18n(<span class="stringliteral">"Check inter&amp;val:"</span>), page );
<a name="l00534"></a>00534   topLayout-&gt;addWidget( mMaildir.intervalLabel, 6, 0 );
<a name="l00535"></a>00535   mMaildir.intervalSpin = <span class="keyword">new</span> KIntNumInput( page );
<a name="l00536"></a>00536   mMaildir.intervalSpin-&gt;setRange( GlobalSettings::self()-&gt;minimumCheckInterval(), 10000, 1, <span class="keyword">false</span> );
<a name="l00537"></a>00537   mMaildir.intervalSpin-&gt;setSuffix( i18n(<span class="stringliteral">" min"</span>) );
<a name="l00538"></a>00538   mMaildir.intervalSpin-&gt;setValue( defaultmailcheckintervalmin );
<a name="l00539"></a>00539   mMaildir.intervalLabel-&gt;setBuddy( mMaildir.intervalSpin );
<a name="l00540"></a>00540   topLayout-&gt;addWidget( mMaildir.intervalSpin, 6, 1 );
<a name="l00541"></a>00541 
<a name="l00542"></a>00542   mMaildir.folderCombo = <span class="keyword">new</span> QComboBox( <span class="keyword">false</span>, page );
<a name="l00543"></a>00543   topLayout-&gt;addWidget( mMaildir.folderCombo, 7, 1 );
<a name="l00544"></a>00544   label = <span class="keyword">new</span> QLabel( mMaildir.folderCombo,
<a name="l00545"></a>00545               i18n(<span class="stringliteral">"&amp;Destination folder:"</span>), page );
<a name="l00546"></a>00546   topLayout-&gt;addWidget( label, 7, 0 );
<a name="l00547"></a>00547 
<a name="l00548"></a>00548   mMaildir.precommand = <span class="keyword">new</span> KLineEdit( page );
<a name="l00549"></a>00549   topLayout-&gt;addWidget( mMaildir.precommand, 8, 1 );
<a name="l00550"></a>00550   label = <span class="keyword">new</span> QLabel( mMaildir.precommand, i18n(<span class="stringliteral">"&amp;Pre-command:"</span>), page );
<a name="l00551"></a>00551   topLayout-&gt;addWidget( label, 8, 0 );
<a name="l00552"></a>00552 
<a name="l00553"></a>00553 
<a name="l00554"></a>00554   mMaildir.identityLabel = <span class="keyword">new</span> QLabel( i18n(<span class="stringliteral">"Identity:"</span>), page );
<a name="l00555"></a>00555   topLayout-&gt;addWidget( mMaildir.identityLabel, 9, 0 );
<a name="l00556"></a>00556   mMaildir.identityCombo = <span class="keyword">new</span> KPIM::IdentityCombo(kmkernel-&gt;identityManager(), page );
<a name="l00557"></a>00557   mMaildir.identityLabel-&gt;setBuddy( mMaildir.identityCombo );
<a name="l00558"></a>00558   topLayout-&gt;addWidget( mMaildir.identityCombo, 9, 1 );
<a name="l00559"></a>00559 
<a name="l00560"></a>00560   connect(kapp,SIGNAL(kdisplayFontChanged()),SLOT(slotFontChanged()));
<a name="l00561"></a>00561 }
<a name="l00562"></a>00562 
<a name="l00563"></a>00563 
<a name="l00564"></a>00564 <span class="keywordtype">void</span> AccountDialog::makePopAccountPage()
<a name="l00565"></a>00565 {
<a name="l00566"></a>00566   QFrame *page = makeMainWidget();
<a name="l00567"></a>00567   QVBoxLayout *topLayout = <span class="keyword">new</span> QVBoxLayout( page, 0, spacingHint() );
<a name="l00568"></a>00568 
<a name="l00569"></a>00569   mPop.titleLabel = <span class="keyword">new</span> QLabel( page );
<a name="l00570"></a>00570   mPop.titleLabel-&gt;setText( i18n(<span class="stringliteral">"Account Type: POP Account"</span>) );
<a name="l00571"></a>00571   QFont titleFont( mPop.titleLabel-&gt;font() );
<a name="l00572"></a>00572   titleFont.setBold( <span class="keyword">true</span> );
<a name="l00573"></a>00573   mPop.titleLabel-&gt;setFont( titleFont );
<a name="l00574"></a>00574   topLayout-&gt;addWidget( mPop.titleLabel );
<a name="l00575"></a>00575   KSeparator *hline = <span class="keyword">new</span> KSeparator( KSeparator::HLine, page);
<a name="l00576"></a>00576   topLayout-&gt;addWidget( hline );
<a name="l00577"></a>00577 
<a name="l00578"></a>00578   QTabWidget *tabWidget = <span class="keyword">new</span> QTabWidget(page);
<a name="l00579"></a>00579   topLayout-&gt;addWidget( tabWidget );
<a name="l00580"></a>00580 
<a name="l00581"></a>00581   QWidget *page1 = <span class="keyword">new</span> QWidget( tabWidget );
<a name="l00582"></a>00582   tabWidget-&gt;addTab( page1, i18n(<span class="stringliteral">"&amp;General"</span>) );
<a name="l00583"></a>00583 
<a name="l00584"></a>00584   QGridLayout *grid = <span class="keyword">new</span> QGridLayout( page1, 16, 2, marginHint(), spacingHint() );
<a name="l00585"></a>00585   grid-&gt;addColSpacing( 1, fontMetrics().maxWidth()*15 );
<a name="l00586"></a>00586   grid-&gt;setRowStretch( 15, 10 );
<a name="l00587"></a>00587   grid-&gt;setColStretch( 1, 10 );
<a name="l00588"></a>00588 
<a name="l00589"></a>00589   QLabel *label = <span class="keyword">new</span> QLabel( i18n(<span class="stringliteral">"Account &amp;name:"</span>), page1 );
<a name="l00590"></a>00590   grid-&gt;addWidget( label, 0, 0 );
<a name="l00591"></a>00591   mPop.nameEdit = <span class="keyword">new</span> KLineEdit( page1 );
<a name="l00592"></a>00592   label-&gt;setBuddy( mPop.nameEdit );
<a name="l00593"></a>00593   grid-&gt;addWidget( mPop.nameEdit, 0, 1 );
<a name="l00594"></a>00594 
<a name="l00595"></a>00595   label = <span class="keyword">new</span> QLabel( i18n(<span class="stringliteral">"&amp;Login:"</span>), page1 );
<a name="l00596"></a>00596   QWhatsThis::add( label, i18n(<span class="stringliteral">"Your Internet Service Provider gave you a &lt;em&gt;user name&lt;/em&gt; which is used to authenticate you with their servers. It usually is the first part of your email address (the part before &lt;em&gt;@&lt;/em&gt;)."</span>) );
<a name="l00597"></a>00597   grid-&gt;addWidget( label, 1, 0 );
<a name="l00598"></a>00598   mPop.loginEdit = <span class="keyword">new</span> KLineEdit( page1 );
<a name="l00599"></a>00599   label-&gt;setBuddy( mPop.loginEdit );
<a name="l00600"></a>00600   grid-&gt;addWidget( mPop.loginEdit, 1, 1 );
<a name="l00601"></a>00601 
<a name="l00602"></a>00602   label = <span class="keyword">new</span> QLabel( i18n(<span class="stringliteral">"P&amp;assword:"</span>), page1 );
<a name="l00603"></a>00603   grid-&gt;addWidget( label, 2, 0 );
<a name="l00604"></a>00604   mPop.passwordEdit = <span class="keyword">new</span> KLineEdit( page1 );
<a name="l00605"></a>00605   mPop.passwordEdit-&gt;setEchoMode( QLineEdit::Password );
<a name="l00606"></a>00606   label-&gt;setBuddy( mPop.passwordEdit );
<a name="l00607"></a>00607   grid-&gt;addWidget( mPop.passwordEdit, 2, 1 );
<a name="l00608"></a>00608 
<a name="l00609"></a>00609   label = <span class="keyword">new</span> QLabel( i18n(<span class="stringliteral">"Ho&amp;st:"</span>), page1 );
<a name="l00610"></a>00610   grid-&gt;addWidget( label, 3, 0 );
<a name="l00611"></a>00611   mPop.hostEdit = <span class="keyword">new</span> KLineEdit( page1 );
<a name="l00612"></a>00612   <span class="comment">// only letters, digits, '-', '.', ':' (IPv6) and '_' (for Windows</span>
<a name="l00613"></a>00613   <span class="comment">// compatibility) are allowed</span>
<a name="l00614"></a>00614   mPop.hostEdit-&gt;setValidator(mValidator);
<a name="l00615"></a>00615   label-&gt;setBuddy( mPop.hostEdit );
<a name="l00616"></a>00616   grid-&gt;addWidget( mPop.hostEdit, 3, 1 );
<a name="l00617"></a>00617 
<a name="l00618"></a>00618   label = <span class="keyword">new</span> QLabel( i18n(<span class="stringliteral">"&amp;Port:"</span>), page1 );
<a name="l00619"></a>00619   grid-&gt;addWidget( label, 4, 0 );
<a name="l00620"></a>00620   mPop.portEdit = <span class="keyword">new</span> KLineEdit( page1 );
<a name="l00621"></a>00621   mPop.portEdit-&gt;setValidator( <span class="keyword">new</span> QIntValidator(<span class="keyword">this</span>) );
<a name="l00622"></a>00622   label-&gt;setBuddy( mPop.portEdit );
<a name="l00623"></a>00623   grid-&gt;addWidget( mPop.portEdit, 4, 1 );
<a name="l00624"></a>00624 
<a name="l00625"></a>00625   mPop.storePasswordCheck =
<a name="l00626"></a>00626     <span class="keyword">new</span> QCheckBox( i18n(<span class="stringliteral">"Sto&amp;re POP password"</span>), page1 );
<a name="l00627"></a>00627   QWhatsThis::add( mPop.storePasswordCheck,
<a name="l00628"></a>00628                    i18n(<span class="stringliteral">"Check this option to have KMail store "</span>
<a name="l00629"></a>00629                    <span class="stringliteral">"the password.\nIf KWallet is available "</span>
<a name="l00630"></a>00630                    <span class="stringliteral">"the password will be stored there which is considered "</span>
<a name="l00631"></a>00631                    <span class="stringliteral">"safe.\nHowever, if KWallet is not available, "</span>
<a name="l00632"></a>00632                    <span class="stringliteral">"the password will be stored in KMail's configuration "</span>
<a name="l00633"></a>00633                    <span class="stringliteral">"file. The password is stored in an "</span>
<a name="l00634"></a>00634                    <span class="stringliteral">"obfuscated format, but should not be "</span>
<a name="l00635"></a>00635                    <span class="stringliteral">"considered secure from decryption efforts "</span>
<a name="l00636"></a>00636                    <span class="stringliteral">"if access to the configuration file is obtained."</span>) );
<a name="l00637"></a>00637   grid-&gt;addMultiCellWidget( mPop.storePasswordCheck, 5, 5, 0, 1 );
<a name="l00638"></a>00638 
<a name="l00639"></a>00639   mPop.leaveOnServerCheck =
<a name="l00640"></a>00640     <span class="keyword">new</span> QCheckBox( i18n(<span class="stringliteral">"Lea&amp;ve fetched messages on the server"</span>), page1 );
<a name="l00641"></a>00641   connect( mPop.leaveOnServerCheck, SIGNAL( clicked() ),
<a name="l00642"></a>00642            <span class="keyword">this</span>, SLOT( slotLeaveOnServerClicked() ) );
<a name="l00643"></a>00643   grid-&gt;addMultiCellWidget( mPop.leaveOnServerCheck, 6, 6, 0, 1 );
<a name="l00644"></a>00644   QHBox *afterDaysBox = <span class="keyword">new</span> QHBox( page1 );
<a name="l00645"></a>00645   afterDaysBox-&gt;setSpacing( KDialog::spacingHint() );
<a name="l00646"></a>00646   mPop.leaveOnServerDaysCheck =
<a name="l00647"></a>00647     <span class="keyword">new</span> QCheckBox( i18n(<span class="stringliteral">"Leave messages on the server for"</span>), afterDaysBox );
<a name="l00648"></a>00648   connect( mPop.leaveOnServerDaysCheck, SIGNAL( toggled(<span class="keywordtype">bool</span>) ),
<a name="l00649"></a>00649            <span class="keyword">this</span>, SLOT( slotEnableLeaveOnServerDays(<span class="keywordtype">bool</span>)) );
<a name="l00650"></a>00650   mPop.leaveOnServerDaysSpin = <span class="keyword">new</span> KIntNumInput( afterDaysBox );
<a name="l00651"></a>00651   mPop.leaveOnServerDaysSpin-&gt;setRange( 1, 365, 1, <span class="keyword">false</span> );
<a name="l00652"></a>00652   connect( mPop.leaveOnServerDaysSpin, SIGNAL(valueChanged(<span class="keywordtype">int</span>)),
<a name="l00653"></a>00653            SLOT(slotLeaveOnServerDaysChanged(<span class="keywordtype">int</span>)));
<a name="l00654"></a>00654   mPop.leaveOnServerDaysSpin-&gt;setValue( 1 );
<a name="l00655"></a>00655   afterDaysBox-&gt;setStretchFactor( mPop.leaveOnServerDaysSpin, 1 );
<a name="l00656"></a>00656   grid-&gt;addMultiCellWidget( afterDaysBox, 7, 7, 0, 1 );
<a name="l00657"></a>00657   QHBox *leaveOnServerCountBox = <span class="keyword">new</span> QHBox( page1 );
<a name="l00658"></a>00658   leaveOnServerCountBox-&gt;setSpacing( KDialog::spacingHint() );
<a name="l00659"></a>00659   mPop.leaveOnServerCountCheck =
<a name="l00660"></a>00660     <span class="keyword">new</span> QCheckBox( i18n(<span class="stringliteral">"Keep only the last"</span>), leaveOnServerCountBox );
<a name="l00661"></a>00661   connect( mPop.leaveOnServerCountCheck, SIGNAL( toggled(<span class="keywordtype">bool</span>) ),
<a name="l00662"></a>00662            <span class="keyword">this</span>, SLOT( slotEnableLeaveOnServerCount(<span class="keywordtype">bool</span>)) );
<a name="l00663"></a>00663   mPop.leaveOnServerCountSpin = <span class="keyword">new</span> KIntNumInput( leaveOnServerCountBox );
<a name="l00664"></a>00664   mPop.leaveOnServerCountSpin-&gt;setRange( 1, 999999, 1, <span class="keyword">false</span> );
<a name="l00665"></a>00665   connect( mPop.leaveOnServerCountSpin, SIGNAL(valueChanged(<span class="keywordtype">int</span>)),
<a name="l00666"></a>00666            SLOT(slotLeaveOnServerCountChanged(<span class="keywordtype">int</span>)));
<a name="l00667"></a>00667   mPop.leaveOnServerCountSpin-&gt;setValue( 100 );
<a name="l00668"></a>00668   grid-&gt;addMultiCellWidget( leaveOnServerCountBox, 8, 8, 0, 1 );
<a name="l00669"></a>00669   QHBox *leaveOnServerSizeBox = <span class="keyword">new</span> QHBox( page1 );
<a name="l00670"></a>00670   leaveOnServerSizeBox-&gt;setSpacing( KDialog::spacingHint() );
<a name="l00671"></a>00671   mPop.leaveOnServerSizeCheck =
<a name="l00672"></a>00672     <span class="keyword">new</span> QCheckBox( i18n(<span class="stringliteral">"Keep only the last"</span>), leaveOnServerSizeBox );
<a name="l00673"></a>00673   connect( mPop.leaveOnServerSizeCheck, SIGNAL( toggled(<span class="keywordtype">bool</span>) ),
<a name="l00674"></a>00674            <span class="keyword">this</span>, SLOT( slotEnableLeaveOnServerSize(<span class="keywordtype">bool</span>)) );
<a name="l00675"></a>00675   mPop.leaveOnServerSizeSpin = <span class="keyword">new</span> KIntNumInput( leaveOnServerSizeBox );
<a name="l00676"></a>00676   mPop.leaveOnServerSizeSpin-&gt;setRange( 1, 999999, 1, <span class="keyword">false</span> );
<a name="l00677"></a>00677   mPop.leaveOnServerSizeSpin-&gt;setSuffix( i18n(<span class="stringliteral">" MB"</span>) );
<a name="l00678"></a>00678   mPop.leaveOnServerSizeSpin-&gt;setValue( 10 );
<a name="l00679"></a>00679   grid-&gt;addMultiCellWidget( leaveOnServerSizeBox, 9, 9, 0, 1 );
<a name="l00680"></a>00680 <span class="preprocessor">#if 0</span>
<a name="l00681"></a>00681 <span class="preprocessor"></span>  QHBox *resourceHB = <span class="keyword">new</span> QHBox( page1 );
<a name="l00682"></a>00682   resourceHB-&gt;setSpacing( 11 );
<a name="l00683"></a>00683   mPop.resourceCheck =
<a name="l00684"></a>00684       <span class="keyword">new</span> QCheckBox( i18n( <span class="stringliteral">"Account for semiautomatic resource handling"</span> ), resourceHB );
<a name="l00685"></a>00685   mPop.resourceClearButton =
<a name="l00686"></a>00686       <span class="keyword">new</span> QPushButton( i18n( <span class="stringliteral">"Clear"</span> ), resourceHB );
<a name="l00687"></a>00687   mPop.resourceClearButton-&gt;setEnabled( <span class="keyword">false</span> );
<a name="l00688"></a>00688   connect( mPop.resourceCheck, SIGNAL( toggled(<span class="keywordtype">bool</span>) ),
<a name="l00689"></a>00689            mPop.resourceClearButton, SLOT( setEnabled(<span class="keywordtype">bool</span>) ) );
<a name="l00690"></a>00690   QWhatsThis::add( mPop.resourceClearButton,
<a name="l00691"></a>00691                    i18n( <span class="stringliteral">"Delete all allocations for the resource represented by this account."</span> ) );
<a name="l00692"></a>00692   connect( mPop.resourceClearButton, SIGNAL( clicked() ),
<a name="l00693"></a>00693            <span class="keyword">this</span>, SLOT( slotClearResourceAllocations() ) );
<a name="l00694"></a>00694   mPop.resourceClearPastButton =
<a name="l00695"></a>00695       <span class="keyword">new</span> QPushButton( i18n( <span class="stringliteral">"Clear Past"</span> ), resourceHB );
<a name="l00696"></a>00696   mPop.resourceClearPastButton-&gt;setEnabled( <span class="keyword">false</span> );
<a name="l00697"></a>00697   connect( mPop.resourceCheck, SIGNAL( toggled(<span class="keywordtype">bool</span>) ),
<a name="l00698"></a>00698            mPop.resourceClearPastButton, SLOT( setEnabled(<span class="keywordtype">bool</span>) ) );
<a name="l00699"></a>00699   QWhatsThis::add( mPop.resourceClearPastButton,
<a name="l00700"></a>00700                    i18n( <span class="stringliteral">"Delete all outdated allocations for the resource represented by this account."</span> ) );
<a name="l00701"></a>00701   connect( mPop.resourceClearPastButton, SIGNAL( clicked() ),
<a name="l00702"></a>00702            <span class="keyword">this</span>, SLOT( slotClearPastResourceAllocations() ) );
<a name="l00703"></a>00703   grid-&gt;addMultiCellWidget( resourceHB, 10, 10, 0, 2 );
<a name="l00704"></a>00704 <span class="preprocessor">#endif</span>
<a name="l00705"></a>00705 <span class="preprocessor"></span>
<a name="l00706"></a>00706   mPop.includeInCheck =
<a name="l00707"></a>00707     <span class="keyword">new</span> QCheckBox( i18n(<span class="stringliteral">"Include in man&amp;ual mail check"</span>), page1 );
<a name="l00708"></a>00708   grid-&gt;addMultiCellWidget( mPop.includeInCheck, 10, 10, 0, 1 );
<a name="l00709"></a>00709 
<a name="l00710"></a>00710   QHBox * hbox = <span class="keyword">new</span> QHBox( page1 );
<a name="l00711"></a>00711   hbox-&gt;setSpacing( KDialog::spacingHint() );
<a name="l00712"></a>00712   mPop.filterOnServerCheck =
<a name="l00713"></a>00713     <span class="keyword">new</span> QCheckBox( i18n(<span class="stringliteral">"&amp;Filter messages if they are greater than"</span>), hbox );
<a name="l00714"></a>00714   mPop.filterOnServerSizeSpin = <span class="keyword">new</span> KIntNumInput ( hbox );
<a name="l00715"></a>00715   mPop.filterOnServerSizeSpin-&gt;setEnabled( <span class="keyword">false</span> );
<a name="l00716"></a>00716   hbox-&gt;setStretchFactor( mPop.filterOnServerSizeSpin, 1 );
<a name="l00717"></a>00717   mPop.filterOnServerSizeSpin-&gt;setRange( 1, 10000000, 100, <span class="keyword">false</span> );
<a name="l00718"></a>00718   connect(mPop.filterOnServerSizeSpin, SIGNAL(valueChanged(<span class="keywordtype">int</span>)),
<a name="l00719"></a>00719           SLOT(slotFilterOnServerSizeChanged(<span class="keywordtype">int</span>)));
<a name="l00720"></a>00720   mPop.filterOnServerSizeSpin-&gt;setValue( 50000 );
<a name="l00721"></a>00721   grid-&gt;addMultiCellWidget( hbox, 11, 11, 0, 1 );
<a name="l00722"></a>00722   connect( mPop.filterOnServerCheck, SIGNAL(toggled(<span class="keywordtype">bool</span>)),
<a name="l00723"></a>00723        mPop.filterOnServerSizeSpin, SLOT(setEnabled(<span class="keywordtype">bool</span>)) );
<a name="l00724"></a>00724   connect( mPop.filterOnServerCheck, SIGNAL( clicked() ),
<a name="l00725"></a>00725            <span class="keyword">this</span>, SLOT( slotFilterOnServerClicked() ) );
<a name="l00726"></a>00726   QString msg = i18n(<span class="stringliteral">"If you select this option, POP Filters will be used to "</span>
<a name="l00727"></a>00727              <span class="stringliteral">"decide what to do with messages. You can then select "</span>
<a name="l00728"></a>00728              <span class="stringliteral">"to download, delete or keep them on the server."</span> );
<a name="l00729"></a>00729   QWhatsThis::add( mPop.filterOnServerCheck, msg );
<a name="l00730"></a>00730   QWhatsThis::add( mPop.filterOnServerSizeSpin, msg );
<a name="l00731"></a>00731 
<a name="l00732"></a>00732   mPop.intervalCheck =
<a name="l00733"></a>00733     <span class="keyword">new</span> QCheckBox( i18n(<span class="stringliteral">"Enable &amp;interval mail checking"</span>), page1 );
<a name="l00734"></a>00734   grid-&gt;addMultiCellWidget( mPop.intervalCheck, 12, 12, 0, 1 );
<a name="l00735"></a>00735   connect( mPop.intervalCheck, SIGNAL(toggled(<span class="keywordtype">bool</span>)),
<a name="l00736"></a>00736        <span class="keyword">this</span>, SLOT(slotEnablePopInterval(<span class="keywordtype">bool</span>)) );
<a name="l00737"></a>00737   mPop.intervalLabel = <span class="keyword">new</span> QLabel( i18n(<span class="stringliteral">"Chec&amp;k interval:"</span>), page1 );
<a name="l00738"></a>00738   grid-&gt;addWidget( mPop.intervalLabel, 13, 0 );
<a name="l00739"></a>00739   mPop.intervalSpin = <span class="keyword">new</span> KIntNumInput( page1 );
<a name="l00740"></a>00740   mPop.intervalSpin-&gt;setRange( GlobalSettings::self()-&gt;minimumCheckInterval(), 10000, 1, <span class="keyword">false</span> );
<a name="l00741"></a>00741   mPop.intervalSpin-&gt;setSuffix( i18n(<span class="stringliteral">" min"</span>) );
<a name="l00742"></a>00742   mPop.intervalSpin-&gt;setValue( defaultmailcheckintervalmin );
<a name="l00743"></a>00743   mPop.intervalLabel-&gt;setBuddy( mPop.intervalSpin );
<a name="l00744"></a>00744   grid-&gt;addWidget( mPop.intervalSpin, 13, 1 );
<a name="l00745"></a>00745 
<a name="l00746"></a>00746   label = <span class="keyword">new</span> QLabel( i18n(<span class="stringliteral">"Des&amp;tination folder:"</span>), page1 );
<a name="l00747"></a>00747   grid-&gt;addWidget( label, 14, 0 );
<a name="l00748"></a>00748   mPop.folderCombo = <span class="keyword">new</span> QComboBox( <span class="keyword">false</span>, page1 );
<a name="l00749"></a>00749   label-&gt;setBuddy( mPop.folderCombo );
<a name="l00750"></a>00750   grid-&gt;addWidget( mPop.folderCombo, 14, 1 );
<a name="l00751"></a>00751 
<a name="l00752"></a>00752   label = <span class="keyword">new</span> QLabel( i18n(<span class="stringliteral">"Pre-com&amp;mand:"</span>), page1 );
<a name="l00753"></a>00753   grid-&gt;addWidget( label, 15, 0 );
<a name="l00754"></a>00754   mPop.precommand = <span class="keyword">new</span> KLineEdit( page1 );
<a name="l00755"></a>00755   label-&gt;setBuddy(mPop.precommand);
<a name="l00756"></a>00756   grid-&gt;addWidget( mPop.precommand, 15, 1 );
<a name="l00757"></a>00757 
<a name="l00758"></a>00758   mPop.identityLabel = <span class="keyword">new</span> QLabel( i18n(<span class="stringliteral">"Identity:"</span>), page1 );
<a name="l00759"></a>00759   grid-&gt;addWidget( mPop.identityLabel, 16, 0 );
<a name="l00760"></a>00760   mPop.identityCombo = <span class="keyword">new</span> KPIM::IdentityCombo(kmkernel-&gt;identityManager(), page1 );
<a name="l00761"></a>00761   mPop.identityLabel-&gt;setBuddy( mPop.identityCombo );
<a name="l00762"></a>00762   grid-&gt;addWidget( mPop.identityCombo, 16, 1 );
<a name="l00763"></a>00763 
<a name="l00764"></a>00764   QWidget *page2 = <span class="keyword">new</span> QWidget( tabWidget );
<a name="l00765"></a>00765   tabWidget-&gt;addTab( page2, i18n(<span class="stringliteral">"&amp;Extras"</span>) );
<a name="l00766"></a>00766   QVBoxLayout *vlay = <span class="keyword">new</span> QVBoxLayout( page2, marginHint(), spacingHint() );
<a name="l00767"></a>00767 
<a name="l00768"></a>00768   vlay-&gt;addSpacing( KDialog::spacingHint() );
<a name="l00769"></a>00769 
<a name="l00770"></a>00770   QHBoxLayout *buttonLay = <span class="keyword">new</span> QHBoxLayout( vlay );
<a name="l00771"></a>00771   mPop.checkCapabilities =
<a name="l00772"></a>00772     <span class="keyword">new</span> QPushButton( i18n(<span class="stringliteral">"Check &amp;What the Server Supports"</span>), page2 );
<a name="l00773"></a>00773   connect(mPop.checkCapabilities, SIGNAL(clicked()),
<a name="l00774"></a>00774     SLOT(slotCheckPopCapabilities()));
<a name="l00775"></a>00775   buttonLay-&gt;addStretch();
<a name="l00776"></a>00776   buttonLay-&gt;addWidget( mPop.checkCapabilities );
<a name="l00777"></a>00777   buttonLay-&gt;addStretch();
<a name="l00778"></a>00778 
<a name="l00779"></a>00779   vlay-&gt;addSpacing( KDialog::spacingHint() );
<a name="l00780"></a>00780 
<a name="l00781"></a>00781   mPop.encryptionGroup = <span class="keyword">new</span> QButtonGroup( 1, Qt::Horizontal,
<a name="l00782"></a>00782     i18n(<span class="stringliteral">"Encryption"</span>), page2 );
<a name="l00783"></a>00783   mPop.encryptionNone =
<a name="l00784"></a>00784     <span class="keyword">new</span> QRadioButton( i18n(<span class="stringliteral">"&amp;None"</span>), mPop.encryptionGroup );
<a name="l00785"></a>00785   mPop.encryptionSSL =
<a name="l00786"></a>00786     <span class="keyword">new</span> QRadioButton( i18n(<span class="stringliteral">"Use &amp;SSL for secure mail download"</span>),
<a name="l00787"></a>00787     mPop.encryptionGroup );
<a name="l00788"></a>00788   mPop.encryptionTLS =
<a name="l00789"></a>00789     <span class="keyword">new</span> QRadioButton( i18n(<span class="stringliteral">"Use &amp;TLS for secure mail download"</span>),
<a name="l00790"></a>00790     mPop.encryptionGroup );
<a name="l00791"></a>00791   connect(mPop.encryptionGroup, SIGNAL(clicked(<span class="keywordtype">int</span>)),
<a name="l00792"></a>00792     SLOT(slotPopEncryptionChanged(<span class="keywordtype">int</span>)));
<a name="l00793"></a>00793   vlay-&gt;addWidget( mPop.encryptionGroup );
<a name="l00794"></a>00794 
<a name="l00795"></a>00795   mPop.authGroup = <span class="keyword">new</span> QButtonGroup( 1, Qt::Horizontal,
<a name="l00796"></a>00796     i18n(<span class="stringliteral">"Authentication Method"</span>), page2 );
<a name="l00797"></a>00797   mPop.authUser = <span class="keyword">new</span> QRadioButton( i18n(<span class="stringliteral">"Clear te&amp;xt"</span>) , mPop.authGroup,
<a name="l00798"></a>00798                                     <span class="stringliteral">"auth clear text"</span> );
<a name="l00799"></a>00799   mPop.authLogin = <span class="keyword">new</span> QRadioButton( i18n(<span class="stringliteral">"Please translate this "</span>
<a name="l00800"></a>00800     <span class="stringliteral">"authentication method only if you have a good reason"</span>, <span class="stringliteral">"&amp;LOGIN"</span>),
<a name="l00801"></a>00801     mPop.authGroup, <span class="stringliteral">"auth login"</span> );
<a name="l00802"></a>00802   mPop.authPlain = <span class="keyword">new</span> QRadioButton( i18n(<span class="stringliteral">"Please translate this "</span>
<a name="l00803"></a>00803     <span class="stringliteral">"authentication method only if you have a good reason"</span>, <span class="stringliteral">"&amp;PLAIN"</span>),
<a name="l00804"></a>00804     mPop.authGroup, <span class="stringliteral">"auth plain"</span>  );
<a name="l00805"></a>00805   mPop.authCRAM_MD5 = <span class="keyword">new</span> QRadioButton( i18n(<span class="stringliteral">"CRAM-MD&amp;5"</span>), mPop.authGroup, <span class="stringliteral">"auth cram-md5"</span> );
<a name="l00806"></a>00806   mPop.authDigestMd5 = <span class="keyword">new</span> QRadioButton( i18n(<span class="stringliteral">"&amp;DIGEST-MD5"</span>), mPop.authGroup, <span class="stringliteral">"auth digest-md5"</span> );
<a name="l00807"></a>00807   mPop.authNTLM = <span class="keyword">new</span> QRadioButton( i18n(<span class="stringliteral">"&amp;NTLM"</span>), mPop.authGroup, <span class="stringliteral">"auth ntlm"</span> );
<a name="l00808"></a>00808   mPop.authGSSAPI = <span class="keyword">new</span> QRadioButton( i18n(<span class="stringliteral">"&amp;GSSAPI"</span>), mPop.authGroup, <span class="stringliteral">"auth gssapi"</span> );
<a name="l00809"></a>00809   <span class="keywordflow">if</span> ( KProtocolInfo::capabilities(<span class="stringliteral">"pop3"</span>).contains(<span class="stringliteral">"SASL"</span>) == 0 )
<a name="l00810"></a>00810   {
<a name="l00811"></a>00811     mPop.authNTLM-&gt;hide();
<a name="l00812"></a>00812     mPop.authGSSAPI-&gt;hide();
<a name="l00813"></a>00813   }
<a name="l00814"></a>00814   mPop.authAPOP = <span class="keyword">new</span> QRadioButton( i18n(<span class="stringliteral">"&amp;APOP"</span>), mPop.authGroup, <span class="stringliteral">"auth apop"</span> );
<a name="l00815"></a>00815 
<a name="l00816"></a>00816   vlay-&gt;addWidget( mPop.authGroup );
<a name="l00817"></a>00817 
<a name="l00818"></a>00818   mPop.usePipeliningCheck =
<a name="l00819"></a>00819     <span class="keyword">new</span> QCheckBox( i18n(<span class="stringliteral">"&amp;Use pipelining for faster mail download"</span>), page2 );
<a name="l00820"></a>00820   connect(mPop.usePipeliningCheck, SIGNAL(clicked()),
<a name="l00821"></a>00821     SLOT(slotPipeliningClicked()));
<a name="l00822"></a>00822   vlay-&gt;addWidget( mPop.usePipeliningCheck );
<a name="l00823"></a>00823 
<a name="l00824"></a>00824   vlay-&gt;addStretch();
<a name="l00825"></a>00825 
<a name="l00826"></a>00826   connect(kapp,SIGNAL(kdisplayFontChanged()),SLOT(slotFontChanged()));
<a name="l00827"></a>00827 }
<a name="l00828"></a>00828 
<a name="l00829"></a>00829 
<a name="l00830"></a>00830 <span class="keywordtype">void</span> AccountDialog::makeImapAccountPage( <span class="keywordtype">bool</span> connected )
<a name="l00831"></a>00831 {
<a name="l00832"></a>00832   QFrame *page = makeMainWidget();
<a name="l00833"></a>00833   QVBoxLayout *topLayout = <span class="keyword">new</span> QVBoxLayout( page, 0, spacingHint() );
<a name="l00834"></a>00834 
<a name="l00835"></a>00835   mImap.titleLabel = <span class="keyword">new</span> QLabel( page );
<a name="l00836"></a>00836   <span class="keywordflow">if</span>( connected )
<a name="l00837"></a>00837     mImap.titleLabel-&gt;setText( i18n(<span class="stringliteral">"Account Type: Disconnected IMAP Account"</span>) );
<a name="l00838"></a>00838   <span class="keywordflow">else</span>
<a name="l00839"></a>00839     mImap.titleLabel-&gt;setText( i18n(<span class="stringliteral">"Account Type: IMAP Account"</span>) );
<a name="l00840"></a>00840   QFont titleFont( mImap.titleLabel-&gt;font() );
<a name="l00841"></a>00841   titleFont.setBold( <span class="keyword">true</span> );
<a name="l00842"></a>00842   mImap.titleLabel-&gt;setFont( titleFont );
<a name="l00843"></a>00843   topLayout-&gt;addWidget( mImap.titleLabel );
<a name="l00844"></a>00844   KSeparator *hline = <span class="keyword">new</span> KSeparator( KSeparator::HLine, page);
<a name="l00845"></a>00845   topLayout-&gt;addWidget( hline );
<a name="l00846"></a>00846 
<a name="l00847"></a>00847   QTabWidget *tabWidget = <span class="keyword">new</span> QTabWidget(page);
<a name="l00848"></a>00848   topLayout-&gt;addWidget( tabWidget );
<a name="l00849"></a>00849 
<a name="l00850"></a>00850   QWidget *page1 = <span class="keyword">new</span> QWidget( tabWidget );
<a name="l00851"></a>00851   tabWidget-&gt;addTab( page1, i18n(<span class="stringliteral">"&amp;General"</span>) );
<a name="l00852"></a>00852 
<a name="l00853"></a>00853   <span class="keywordtype">int</span> row = -1;
<a name="l00854"></a>00854   QGridLayout *grid = <span class="keyword">new</span> QGridLayout( page1, 16, 2, marginHint(), spacingHint() );
<a name="l00855"></a>00855   grid-&gt;addColSpacing( 1, fontMetrics().maxWidth()*16 );
<a name="l00856"></a>00856 
<a name="l00857"></a>00857   ++row;
<a name="l00858"></a>00858   QLabel *label = <span class="keyword">new</span> QLabel( i18n(<span class="stringliteral">"Account &amp;name:"</span>), page1 );
<a name="l00859"></a>00859   grid-&gt;addWidget( label, row, 0 );
<a name="l00860"></a>00860   mImap.nameEdit = <span class="keyword">new</span> KLineEdit( page1 );
<a name="l00861"></a>00861   label-&gt;setBuddy( mImap.nameEdit );
<a name="l00862"></a>00862   grid-&gt;addWidget( mImap.nameEdit, row, 1 );
<a name="l00863"></a>00863 
<a name="l00864"></a>00864   ++row;
<a name="l00865"></a>00865   label = <span class="keyword">new</span> QLabel( i18n(<span class="stringliteral">"&amp;Login:"</span>), page1 );
<a name="l00866"></a>00866   QWhatsThis::add( label, i18n(<span class="stringliteral">"Your Internet Service Provider gave you a &lt;em&gt;user name&lt;/em&gt; which is used to authenticate you with their servers. It usually is the first part of your email address (the part before &lt;em&gt;@&lt;/em&gt;)."</span>) );
<a name="l00867"></a>00867   grid-&gt;addWidget( label, row, 0 );
<a name="l00868"></a>00868   mImap.loginEdit = <span class="keyword">new</span> KLineEdit( page1 );
<a name="l00869"></a>00869   label-&gt;setBuddy( mImap.loginEdit );
<a name="l00870"></a>00870   grid-&gt;addWidget( mImap.loginEdit, row, 1 );
<a name="l00871"></a>00871 
<a name="l00872"></a>00872   ++row;
<a name="l00873"></a>00873   label = <span class="keyword">new</span> QLabel( i18n(<span class="stringliteral">"P&amp;assword:"</span>), page1 );
<a name="l00874"></a>00874   grid-&gt;addWidget( label, row, 0 );
<a name="l00875"></a>00875   mImap.passwordEdit = <span class="keyword">new</span> KLineEdit( page1 );
<a name="l00876"></a>00876   mImap.passwordEdit-&gt;setEchoMode( QLineEdit::Password );
<a name="l00877"></a>00877   label-&gt;setBuddy( mImap.passwordEdit );
<a name="l00878"></a>00878   grid-&gt;addWidget( mImap.passwordEdit, row, 1 );
<a name="l00879"></a>00879 
<a name="l00880"></a>00880   ++row;
<a name="l00881"></a>00881   label = <span class="keyword">new</span> QLabel( i18n(<span class="stringliteral">"Ho&amp;st:"</span>), page1 );
<a name="l00882"></a>00882   grid-&gt;addWidget( label, row, 0 );
<a name="l00883"></a>00883   mImap.hostEdit = <span class="keyword">new</span> KLineEdit( page1 );
<a name="l00884"></a>00884   <span class="comment">// only letters, digits, '-', '.', ':' (IPv6) and '_' (for Windows</span>
<a name="l00885"></a>00885   <span class="comment">// compatibility) are allowed</span>
<a name="l00886"></a>00886   mImap.hostEdit-&gt;setValidator(mValidator);
<a name="l00887"></a>00887   label-&gt;setBuddy( mImap.hostEdit );
<a name="l00888"></a>00888   grid-&gt;addWidget( mImap.hostEdit, row, 1 );
<a name="l00889"></a>00889 
<a name="l00890"></a>00890   ++row;
<a name="l00891"></a>00891   label = <span class="keyword">new</span> QLabel( i18n(<span class="stringliteral">"&amp;Port:"</span>), page1 );
<a name="l00892"></a>00892   grid-&gt;addWidget( label, row, 0 );
<a name="l00893"></a>00893   mImap.portEdit = <span class="keyword">new</span> KLineEdit( page1 );
<a name="l00894"></a>00894   mImap.portEdit-&gt;setValidator( <span class="keyword">new</span> QIntValidator(<span class="keyword">this</span>) );
<a name="l00895"></a>00895   label-&gt;setBuddy( mImap.portEdit );
<a name="l00896"></a>00896   grid-&gt;addWidget( mImap.portEdit, row, 1 );
<a name="l00897"></a>00897 
<a name="l00898"></a>00898   <span class="comment">// namespace list</span>
<a name="l00899"></a>00899   ++row;
<a name="l00900"></a>00900   QHBox* box = <span class="keyword">new</span> QHBox( page1 );
<a name="l00901"></a>00901   label = <span class="keyword">new</span> QLabel( i18n(<span class="stringliteral">"Namespaces:"</span>), box );
<a name="l00902"></a>00902   QWhatsThis::add( label, i18n( <span class="stringliteral">"Here you see the different namespaces that your IMAP server supports."</span>
<a name="l00903"></a>00903         <span class="stringliteral">"Each namespace represents a prefix that separates groups of folders."</span>
<a name="l00904"></a>00904         <span class="stringliteral">"Namespaces allow KMail for example to display your personal folders and shared folders in one account."</span> ) );
<a name="l00905"></a>00905   <span class="comment">// button to reload</span>
<a name="l00906"></a>00906   QToolButton* button = <span class="keyword">new</span> QToolButton( box );
<a name="l00907"></a>00907   button-&gt;setAutoRaise(<span class="keyword">true</span>);
<a name="l00908"></a>00908   button-&gt;setSizePolicy( QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ) );
<a name="l00909"></a>00909   button-&gt;setFixedSize( 22, 22 );
<a name="l00910"></a>00910   button-&gt;setIconSet(
<a name="l00911"></a>00911       KGlobal::iconLoader()-&gt;loadIconSet( <span class="stringliteral">"reload"</span>, KIcon::Small, 0 ) );
<a name="l00912"></a>00912   connect( button, SIGNAL(clicked()), <span class="keyword">this</span>, SLOT(slotReloadNamespaces()) );
<a name="l00913"></a>00913   QWhatsThis::add( button,
<a name="l00914"></a>00914       i18n(<span class="stringliteral">"Reload the namespaces from the server. This overwrites any changes."</span>) );
<a name="l00915"></a>00915   grid-&gt;addWidget( box, row, 0 );
<a name="l00916"></a>00916 
<a name="l00917"></a>00917   <span class="comment">// grid with label, namespace list and edit button</span>
<a name="l00918"></a>00918   QGrid* listbox = <span class="keyword">new</span> QGrid( 3, page1 );
<a name="l00919"></a>00919   label = <span class="keyword">new</span> QLabel( i18n(<span class="stringliteral">"Personal"</span>), listbox );
<a name="l00920"></a>00920   QWhatsThis::add( label, i18n( <span class="stringliteral">"Personal namespaces include your personal folders."</span> ) );
<a name="l00921"></a>00921   mImap.personalNS = <span class="keyword">new</span> KLineEdit( listbox );
<a name="l00922"></a>00922   mImap.personalNS-&gt;setReadOnly( <span class="keyword">true</span> );
<a name="l00923"></a>00923   mImap.editPNS = <span class="keyword">new</span> QToolButton( listbox );
<a name="l00924"></a>00924   mImap.editPNS-&gt;setIconSet(
<a name="l00925"></a>00925       KGlobal::iconLoader()-&gt;loadIconSet( <span class="stringliteral">"edit"</span>, KIcon::Small, 0 ) );
<a name="l00926"></a>00926   mImap.editPNS-&gt;setAutoRaise( <span class="keyword">true</span> );
<a name="l00927"></a>00927   mImap.editPNS-&gt;setSizePolicy( QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ) );
<a name="l00928"></a>00928   mImap.editPNS-&gt;setFixedSize( 22, 22 );
<a name="l00929"></a>00929   connect( mImap.editPNS, SIGNAL(clicked()), <span class="keyword">this</span>, SLOT(slotEditPersonalNamespace()) );
<a name="l00930"></a>00930 
<a name="l00931"></a>00931   label = <span class="keyword">new</span> QLabel( i18n(<span class="stringliteral">"Other Users"</span>), listbox );
<a name="l00932"></a>00932   QWhatsThis::add( label, i18n( <span class="stringliteral">"These namespaces include the folders of other users."</span> ) );
<a name="l00933"></a>00933   mImap.otherUsersNS = <span class="keyword">new</span> KLineEdit( listbox );
<a name="l00934"></a>00934   mImap.otherUsersNS-&gt;setReadOnly( <span class="keyword">true</span> );
<a name="l00935"></a>00935   mImap.editONS = <span class="keyword">new</span> QToolButton( listbox );
<a name="l00936"></a>00936   mImap.editONS-&gt;setIconSet(
<a name="l00937"></a>00937       KGlobal::iconLoader()-&gt;loadIconSet( <span class="stringliteral">"edit"</span>, KIcon::Small, 0 ) );
<a name="l00938"></a>00938   mImap.editONS-&gt;setAutoRaise( <span class="keyword">true</span> );
<a name="l00939"></a>00939   mImap.editONS-&gt;setSizePolicy( QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ) );
<a name="l00940"></a>00940   mImap.editONS-&gt;setFixedSize( 22, 22 );
<a name="l00941"></a>00941   connect( mImap.editONS, SIGNAL(clicked()), <span class="keyword">this</span>, SLOT(slotEditOtherUsersNamespace()) );
<a name="l00942"></a>00942 
<a name="l00943"></a>00943   label = <span class="keyword">new</span> QLabel( i18n(<span class="stringliteral">"Shared"</span>), listbox );
<a name="l00944"></a>00944   QWhatsThis::add( label, i18n( <span class="stringliteral">"These namespaces include the shared folders."</span> ) );
<a name="l00945"></a>00945   mImap.sharedNS = <span class="keyword">new</span> KLineEdit( listbox );
<a name="l00946"></a>00946   mImap.sharedNS-&gt;setReadOnly( <span class="keyword">true</span> );
<a name="l00947"></a>00947   mImap.editSNS = <span class="keyword">new</span> QToolButton( listbox );
<a name="l00948"></a>00948   mImap.editSNS-&gt;setIconSet(
<a name="l00949"></a>00949       KGlobal::iconLoader()-&gt;loadIconSet( <span class="stringliteral">"edit"</span>, KIcon::Small, 0 ) );
<a name="l00950"></a>00950   mImap.editSNS-&gt;setAutoRaise( <span class="keyword">true</span> );
<a name="l00951"></a>00951   mImap.editSNS-&gt;setSizePolicy( QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ) );
<a name="l00952"></a>00952   mImap.editSNS-&gt;setFixedSize( 22, 22 );
<a name="l00953"></a>00953   connect( mImap.editSNS, SIGNAL(clicked()), <span class="keyword">this</span>, SLOT(slotEditSharedNamespace()) );
<a name="l00954"></a>00954 
<a name="l00955"></a>00955   label-&gt;setBuddy( listbox );
<a name="l00956"></a>00956   grid-&gt;addWidget( listbox, row, 1 );
<a name="l00957"></a>00957 
<a name="l00958"></a>00958   ++row;
<a name="l00959"></a>00959   mImap.storePasswordCheck =
<a name="l00960"></a>00960     <span class="keyword">new</span> QCheckBox( i18n(<span class="stringliteral">"Sto&amp;re IMAP password"</span>), page1 );
<a name="l00961"></a>00961   QWhatsThis::add( mImap.storePasswordCheck,
<a name="l00962"></a>00962                    i18n(<span class="stringliteral">"Check this option to have KMail store "</span>
<a name="l00963"></a>00963                    <span class="stringliteral">"the password.\nIf KWallet is available "</span>
<a name="l00964"></a>00964                    <span class="stringliteral">"the password will be stored there which is considered "</span>
<a name="l00965"></a>00965                    <span class="stringliteral">"safe.\nHowever, if KWallet is not available, "</span>
<a name="l00966"></a>00966                    <span class="stringliteral">"the password will be stored in KMail's configuration "</span>
<a name="l00967"></a>00967                    <span class="stringliteral">"file. The password is stored in an "</span>
<a name="l00968"></a>00968                    <span class="stringliteral">"obfuscated format, but should not be "</span>
<a name="l00969"></a>00969                    <span class="stringliteral">"considered secure from decryption efforts "</span>
<a name="l00970"></a>00970                    <span class="stringliteral">"if access to the configuration file is obtained."</span>) );
<a name="l00971"></a>00971   grid-&gt;addMultiCellWidget( mImap.storePasswordCheck, row, row, 0, 1 );
<a name="l00972"></a>00972 
<a name="l00973"></a>00973   <span class="keywordflow">if</span>( !connected ) {
<a name="l00974"></a>00974     ++row;
<a name="l00975"></a>00975     mImap.autoExpungeCheck =
<a name="l00976"></a>00976       <span class="keyword">new</span> QCheckBox( i18n(<span class="stringliteral">"Automaticall&amp;y compact folders (expunges deleted messages)"</span>), page1);
<a name="l00977"></a>00977     grid-&gt;addMultiCellWidget( mImap.autoExpungeCheck, row, row, 0, 1 );
<a name="l00978"></a>00978   }
<a name="l00979"></a>00979 
<a name="l00980"></a>00980   ++row;
<a name="l00981"></a>00981   mImap.hiddenFoldersCheck = <span class="keyword">new</span> QCheckBox( i18n(<span class="stringliteral">"Sho&amp;w hidden folders"</span>), page1);
<a name="l00982"></a>00982   grid-&gt;addMultiCellWidget( mImap.hiddenFoldersCheck, row, row, 0, 1 );
<a name="l00983"></a>00983 
<a name="l00984"></a>00984 
<a name="l00985"></a>00985   ++row;
<a name="l00986"></a>00986   mImap.subscribedFoldersCheck = <span class="keyword">new</span> QCheckBox(
<a name="l00987"></a>00987     i18n(<span class="stringliteral">"Show only s&amp;ubscribed folders"</span>), page1);
<a name="l00988"></a>00988   grid-&gt;addMultiCellWidget( mImap.subscribedFoldersCheck, row, row, 0, 1 );
<a name="l00989"></a>00989 
<a name="l00990"></a>00990   ++row;
<a name="l00991"></a>00991   mImap.locallySubscribedFoldersCheck = <span class="keyword">new</span> QCheckBox(
<a name="l00992"></a>00992     i18n(<span class="stringliteral">"Show only &amp;locally subscribed folders"</span>), page1);
<a name="l00993"></a>00993   grid-&gt;addMultiCellWidget( mImap.locallySubscribedFoldersCheck, row, row, 0, 1 );
<a name="l00994"></a>00994 
<a name="l00995"></a>00995   <span class="keywordflow">if</span> ( !connected ) {
<a name="l00996"></a>00996     <span class="comment">// not implemented for disconnected yet</span>
<a name="l00997"></a>00997     ++row;
<a name="l00998"></a>00998     mImap.loadOnDemandCheck = <span class="keyword">new</span> QCheckBox(
<a name="l00999"></a>00999         i18n(<span class="stringliteral">"Load attach&amp;ments on demand"</span>), page1);
<a name="l01000"></a>01000     QWhatsThis::add( mImap.loadOnDemandCheck,
<a name="l01001"></a>01001         i18n(<span class="stringliteral">"Activate this to load attachments not automatically when you select the email but only when you click on the attachment. This way also big emails are shown instantly."</span>) );
<a name="l01002"></a>01002     grid-&gt;addMultiCellWidget( mImap.loadOnDemandCheck, row, row, 0, 1 );
<a name="l01003"></a>01003   }
<a name="l01004"></a>01004 
<a name="l01005"></a>01005   <span class="keywordflow">if</span> ( !connected ) {
<a name="l01006"></a>01006     <span class="comment">// not implemented for disconnected yet</span>
<a name="l01007"></a>01007     ++row;
<a name="l01008"></a>01008     mImap.listOnlyOpenCheck = <span class="keyword">new</span> QCheckBox(
<a name="l01009"></a>01009         i18n(<span class="stringliteral">"List only open folders"</span>), page1);
<a name="l01010"></a>01010     QWhatsThis::add( mImap.listOnlyOpenCheck,
<a name="l01011"></a>01011         i18n(<span class="stringliteral">"Only folders that are open (expanded) in the folder tree are checked for subfolders. Use this if there are many folders on the server."</span>) );
<a name="l01012"></a>01012     grid-&gt;addMultiCellWidget( mImap.listOnlyOpenCheck, row, row, 0, 1 );
<a name="l01013"></a>01013   }
<a name="l01014"></a>01014 
<a name="l01015"></a>01015 <span class="preprocessor">#if 0</span>
<a name="l01016"></a>01016 <span class="preprocessor"></span>  ++row;
<a name="l01017"></a>01017   QHBox* resourceHB = <span class="keyword">new</span> QHBox( page1 );
<a name="l01018"></a>01018   resourceHB-&gt;setSpacing( 11 );
<a name="l01019"></a>01019   mImap.resourceCheck =
<a name="l01020"></a>01020       <span class="keyword">new</span> QCheckBox( i18n( <span class="stringliteral">"Account for semiautomatic resource handling"</span> ), resourceHB );
<a name="l01021"></a>01021   mImap.resourceClearButton =
<a name="l01022"></a>01022       <span class="keyword">new</span> QPushButton( i18n( <span class="stringliteral">"Clear"</span> ), resourceHB );
<a name="l01023"></a>01023   mImap.resourceClearButton-&gt;setEnabled( <span class="keyword">false</span> );
<a name="l01024"></a>01024   connect( mImap.resourceCheck, SIGNAL( toggled(<span class="keywordtype">bool</span>) ),
<a name="l01025"></a>01025            mImap.resourceClearButton, SLOT( setEnabled(<span class="keywordtype">bool</span>) ) );
<a name="l01026"></a>01026   QWhatsThis::add( mImap.resourceClearButton,
<a name="l01027"></a>01027                    i18n( <span class="stringliteral">"Delete all allocations for the resource represented by this account."</span> ) );
<a name="l01028"></a>01028   connect( mImap.resourceClearButton, SIGNAL( clicked() ),
<a name="l01029"></a>01029            <span class="keyword">this</span>, SLOT( slotClearResourceAllocations() ) );
<a name="l01030"></a>01030   mImap.resourceClearPastButton =
<a name="l01031"></a>01031       <span class="keyword">new</span> QPushButton( i18n( <span class="stringliteral">"Clear Past"</span> ), resourceHB );
<a name="l01032"></a>01032   mImap.resourceClearPastButton-&gt;setEnabled( <span class="keyword">false</span> );
<a name="l01033"></a>01033   connect( mImap.resourceCheck, SIGNAL( toggled(<span class="keywordtype">bool</span>) ),
<a name="l01034"></a>01034            mImap.resourceClearPastButton, SLOT( setEnabled(<span class="keywordtype">bool</span>) ) );
<a name="l01035"></a>01035   QWhatsThis::add( mImap.resourceClearPastButton,
<a name="l01036"></a>01036                    i18n( <span class="stringliteral">"Delete all outdated allocations for the resource represented by this account."</span> ) );
<a name="l01037"></a>01037   connect( mImap.resourceClearPastButton, SIGNAL( clicked() ),
<a name="l01038"></a>01038            <span class="keyword">this</span>, SLOT( slotClearPastResourceAllocations() ) );
<a name="l01039"></a>01039   grid-&gt;addMultiCellWidget( resourceHB, row, row, 0, 2 );
<a name="l01040"></a>01040 <span class="preprocessor">#endif</span>
<a name="l01041"></a>01041 <span class="preprocessor"></span>
<a name="l01042"></a>01042   ++row;
<a name="l01043"></a>01043   mImap.includeInCheck =
<a name="l01044"></a>01044     <span class="keyword">new</span> QCheckBox( i18n(<span class="stringliteral">"Include in manual mail chec&amp;k"</span>), page1 );
<a name="l01045"></a>01045   grid-&gt;addMultiCellWidget( mImap.includeInCheck, row, row, 0, 1 );
<a name="l01046"></a>01046 
<a name="l01047"></a>01047   ++row;
<a name="l01048"></a>01048   mImap.intervalCheck =
<a name="l01049"></a>01049     <span class="keyword">new</span> QCheckBox( i18n(<span class="stringliteral">"Enable &amp;interval mail checking"</span>), page1 );
<a name="l01050"></a>01050   grid-&gt;addMultiCellWidget( mImap.intervalCheck, row, row, 0, 2 );
<a name="l01051"></a>01051   connect( mImap.intervalCheck, SIGNAL(toggled(<span class="keywordtype">bool</span>)),
<a name="l01052"></a>01052        <span class="keyword">this</span>, SLOT(slotEnableImapInterval(<span class="keywordtype">bool</span>)) );
<a name="l01053"></a>01053   ++row;
<a name="l01054"></a>01054   mImap.intervalLabel = <span class="keyword">new</span> QLabel( i18n(<span class="stringliteral">"Check inter&amp;val:"</span>), page1 );
<a name="l01055"></a>01055   grid-&gt;addWidget( mImap.intervalLabel, row, 0 );
<a name="l01056"></a>01056   mImap.intervalSpin = <span class="keyword">new</span> KIntNumInput( page1 );
<a name="l01057"></a>01057   mImap.intervalSpin-&gt;setRange( GlobalSettings::minimumCheckInterval(), 60, 1, <span class="keyword">false</span> );
<a name="l01058"></a>01058   mImap.intervalSpin-&gt;setValue( defaultmailcheckintervalmin );
<a name="l01059"></a>01059   mImap.intervalSpin-&gt;setSuffix( i18n( <span class="stringliteral">" min"</span> ) );
<a name="l01060"></a>01060   mImap.intervalLabel-&gt;setBuddy( mImap.intervalSpin );
<a name="l01061"></a>01061   grid-&gt;addWidget( mImap.intervalSpin, row, 1 );
<a name="l01062"></a>01062 
<a name="l01063"></a>01063   ++row;
<a name="l01064"></a>01064   label = <span class="keyword">new</span> QLabel( i18n(<span class="stringliteral">"&amp;Trash folder:"</span>), page1 );
<a name="l01065"></a>01065   grid-&gt;addWidget( label, row, 0 );
<a name="l01066"></a>01066   mImap.trashCombo = <span class="keyword">new</span> FolderRequester( page1,
<a name="l01067"></a>01067       kmkernel-&gt;getKMMainWidget()-&gt;folderTree() );
<a name="l01068"></a>01068   mImap.trashCombo-&gt;setShowOutbox( <span class="keyword">false</span> );
<a name="l01069"></a>01069   label-&gt;setBuddy( mImap.trashCombo );
<a name="l01070"></a>01070   grid-&gt;addWidget( mImap.trashCombo, row, 1 );
<a name="l01071"></a>01071 
<a name="l01072"></a>01072   ++row;
<a name="l01073"></a>01073   mImap.identityLabel = <span class="keyword">new</span> QLabel( i18n(<span class="stringliteral">"Identity:"</span>), page1 );
<a name="l01074"></a>01074   grid-&gt;addWidget( mImap.identityLabel, row, 0 );
<a name="l01075"></a>01075   mImap.identityCombo = <span class="keyword">new</span> KPIM::IdentityCombo(kmkernel-&gt;identityManager(), page1 );
<a name="l01076"></a>01076   mImap.identityLabel-&gt;setBuddy( mImap.identityCombo );
<a name="l01077"></a>01077   grid-&gt;addWidget( mImap.identityCombo, row, 1 );
<a name="l01078"></a>01078 
<a name="l01079"></a>01079   QWidget *page2 = <span class="keyword">new</span> QWidget( tabWidget );
<a name="l01080"></a>01080   tabWidget-&gt;addTab( page2, i18n(<span class="stringliteral">"S&amp;ecurity"</span>) );
<a name="l01081"></a>01081   QVBoxLayout *vlay = <span class="keyword">new</span> QVBoxLayout( page2, marginHint(), spacingHint() );
<a name="l01082"></a>01082 
<a name="l01083"></a>01083   vlay-&gt;addSpacing( KDialog::spacingHint() );
<a name="l01084"></a>01084 
<a name="l01085"></a>01085   QHBoxLayout *buttonLay = <span class="keyword">new</span> QHBoxLayout( vlay );
<a name="l01086"></a>01086   mImap.checkCapabilities =
<a name="l01087"></a>01087     <span class="keyword">new</span> QPushButton( i18n(<span class="stringliteral">"Check &amp;What the Server Supports"</span>), page2 );
<a name="l01088"></a>01088   connect(mImap.checkCapabilities, SIGNAL(clicked()),
<a name="l01089"></a>01089     SLOT(slotCheckImapCapabilities()));
<a name="l01090"></a>01090   buttonLay-&gt;addStretch();
<a name="l01091"></a>01091   buttonLay-&gt;addWidget( mImap.checkCapabilities );
<a name="l01092"></a>01092   buttonLay-&gt;addStretch();
<a name="l01093"></a>01093 
<a name="l01094"></a>01094   vlay-&gt;addSpacing( KDialog::spacingHint() );
<a name="l01095"></a>01095 
<a name="l01096"></a>01096   mImap.encryptionGroup = <span class="keyword">new</span> QButtonGroup( 1, Qt::Horizontal,
<a name="l01097"></a>01097     i18n(<span class="stringliteral">"Encryption"</span>), page2 );
<a name="l01098"></a>01098   mImap.encryptionNone =
<a name="l01099"></a>01099     <span class="keyword">new</span> QRadioButton( i18n(<span class="stringliteral">"&amp;None"</span>), mImap.encryptionGroup );
<a name="l01100"></a>01100   mImap.encryptionSSL =
<a name="l01101"></a>01101     <span class="keyword">new</span> QRadioButton( i18n(<span class="stringliteral">"Use &amp;SSL for secure mail download"</span>),
<a name="l01102"></a>01102     mImap.encryptionGroup );
<a name="l01103"></a>01103   mImap.encryptionTLS =
<a name="l01104"></a>01104     <span class="keyword">new</span> QRadioButton( i18n(<span class="stringliteral">"Use &amp;TLS for secure mail download"</span>),
<a name="l01105"></a>01105     mImap.encryptionGroup );
<a name="l01106"></a>01106   connect(mImap.encryptionGroup, SIGNAL(clicked(<span class="keywordtype">int</span>)),
<a name="l01107"></a>01107     SLOT(slotImapEncryptionChanged(<span class="keywordtype">int</span>)));
<a name="l01108"></a>01108   vlay-&gt;addWidget( mImap.encryptionGroup );
<a name="l01109"></a>01109 
<a name="l01110"></a>01110   mImap.authGroup = <span class="keyword">new</span> QButtonGroup( 1, Qt::Horizontal,
<a name="l01111"></a>01111     i18n(<span class="stringliteral">"Authentication Method"</span>), page2 );
<a name="l01112"></a>01112   mImap.authUser = <span class="keyword">new</span> QRadioButton( i18n(<span class="stringliteral">"Clear te&amp;xt"</span>), mImap.authGroup );
<a name="l01113"></a>01113   mImap.authLogin = <span class="keyword">new</span> QRadioButton( i18n(<span class="stringliteral">"Please translate this "</span>
<a name="l01114"></a>01114     <span class="stringliteral">"authentication method only if you have a good reason"</span>, <span class="stringliteral">"&amp;LOGIN"</span>),
<a name="l01115"></a>01115     mImap.authGroup );
<a name="l01116"></a>01116   mImap.authPlain = <span class="keyword">new</span> QRadioButton( i18n(<span class="stringliteral">"Please translate this "</span>
<a name="l01117"></a>01117     <span class="stringliteral">"authentication method only if you have a good reason"</span>, <span class="stringliteral">"&amp;PLAIN"</span>),
<a name="l01118"></a>01118      mImap.authGroup );
<a name="l01119"></a>01119   mImap.authCramMd5 = <span class="keyword">new</span> QRadioButton( i18n(<span class="stringliteral">"CRAM-MD&amp;5"</span>), mImap.authGroup );
<a name="l01120"></a>01120   mImap.authDigestMd5 = <span class="keyword">new</span> QRadioButton( i18n(<span class="stringliteral">"&amp;DIGEST-MD5"</span>), mImap.authGroup );
<a name="l01121"></a>01121   mImap.authNTLM = <span class="keyword">new</span> QRadioButton( i18n(<span class="stringliteral">"&amp;NTLM"</span>), mImap.authGroup );
<a name="l01122"></a>01122   mImap.authGSSAPI = <span class="keyword">new</span> QRadioButton( i18n(<span class="stringliteral">"&amp;GSSAPI"</span>), mImap.authGroup );
<a name="l01123"></a>01123   mImap.authAnonymous = <span class="keyword">new</span> QRadioButton( i18n(<span class="stringliteral">"&amp;Anonymous"</span>), mImap.authGroup );
<a name="l01124"></a>01124   vlay-&gt;addWidget( mImap.authGroup );
<a name="l01125"></a>01125 
<a name="l01126"></a>01126   vlay-&gt;addStretch();
<a name="l01127"></a>01127 
<a name="l01128"></a>01128   <span class="comment">// TODO (marc/bo): Test this</span>
<a name="l01129"></a>01129   mSieveConfigEditor = <span class="keyword">new</span> SieveConfigEditor( tabWidget );
<a name="l01130"></a>01130   mSieveConfigEditor-&gt;layout()-&gt;setMargin( KDialog::marginHint() );
<a name="l01131"></a>01131   tabWidget-&gt;addTab( mSieveConfigEditor, i18n(<span class="stringliteral">"&amp;Filtering"</span>) );
<a name="l01132"></a>01132 
<a name="l01133"></a>01133   connect(kapp,SIGNAL(kdisplayFontChanged()),SLOT(slotFontChanged()));
<a name="l01134"></a>01134 }
<a name="l01135"></a>01135 
<a name="l01136"></a>01136 
<a name="l01137"></a>01137 <span class="keywordtype">void</span> AccountDialog::setupSettings()
<a name="l01138"></a>01138 {
<a name="l01139"></a>01139   QComboBox *folderCombo = 0;
<a name="l01140"></a>01140   <span class="keywordtype">int</span> interval = mAccount-&gt;checkInterval();
<a name="l01141"></a>01141 
<a name="l01142"></a>01142   QString accountType = mAccount-&gt;type();
<a name="l01143"></a>01143   <span class="keywordflow">if</span>( accountType == <span class="stringliteral">"local"</span> )
<a name="l01144"></a>01144   {
<a name="l01145"></a>01145     ProcmailRCParser procmailrcParser;
<a name="l01146"></a>01146     KMAcctLocal *acctLocal = <span class="keyword">dynamic_cast&lt;</span>KMAcctLocal*<span class="keyword">&gt;</span>(mAccount);
<a name="l01147"></a>01147 
<a name="l01148"></a>01148     <span class="keywordflow">if</span> ( acctLocal-&gt;location().isEmpty() )
<a name="l01149"></a>01149         acctLocal-&gt;setLocation( procmailrcParser.getSpoolFilesList().first() );
<a name="l01150"></a>01150     <span class="keywordflow">else</span>
<a name="l01151"></a>01151         mLocal.locationEdit-&gt;insertItem( acctLocal-&gt;location() );
<a name="l01152"></a>01152 
<a name="l01153"></a>01153     <span class="keywordflow">if</span> ( acctLocal-&gt;procmailLockFileName().isEmpty() )
<a name="l01154"></a>01154         acctLocal-&gt;setProcmailLockFileName( procmailrcParser.getLockFilesList().first() );
<a name="l01155"></a>01155     <span class="keywordflow">else</span>
<a name="l01156"></a>01156         mLocal.procmailLockFileName-&gt;insertItem( acctLocal-&gt;procmailLockFileName() );
<a name="l01157"></a>01157 
<a name="l01158"></a>01158     mLocal.nameEdit-&gt;setText( mAccount-&gt;name() );
<a name="l01159"></a>01159     mLocal.nameEdit-&gt;setFocus();
<a name="l01160"></a>01160     mLocal.locationEdit-&gt;setEditText( acctLocal-&gt;location() );
<a name="l01161"></a>01161     <span class="keywordflow">if</span> (acctLocal-&gt;lockType() == mutt_dotlock)
<a name="l01162"></a>01162       mLocal.lockMutt-&gt;setChecked(<span class="keyword">true</span>);
<a name="l01163"></a>01163     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (acctLocal-&gt;lockType() == mutt_dotlock_privileged)
<a name="l01164"></a>01164       mLocal.lockMuttPriv-&gt;setChecked(<span class="keyword">true</span>);
<a name="l01165"></a>01165     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (acctLocal-&gt;lockType() == procmail_lockfile) {
<a name="l01166"></a>01166       mLocal.lockProcmail-&gt;setChecked(<span class="keyword">true</span>);
<a name="l01167"></a>01167       mLocal.procmailLockFileName-&gt;setEditText(acctLocal-&gt;procmailLockFileName());
<a name="l01168"></a>01168     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (acctLocal-&gt;lockType() == FCNTL)
<a name="l01169"></a>01169       mLocal.lockFcntl-&gt;setChecked(<span class="keyword">true</span>);
<a name="l01170"></a>01170     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (acctLocal-&gt;lockType() == lock_none)
<a name="l01171"></a>01171       mLocal.lockNone-&gt;setChecked(<span class="keyword">true</span>);
<a name="l01172"></a>01172 
<a name="l01173"></a>01173     <span class="keywordflow">if</span> ( interval &lt;= 0 ) mLocal.intervalSpin-&gt;setValue( defaultmailcheckintervalmin );
<a name="l01174"></a>01174     <span class="keywordflow">else</span> mLocal.intervalSpin-&gt;setValue( interval );
<a name="l01175"></a>01175     mLocal.intervalCheck-&gt;setChecked( interval &gt;= 1 );
<a name="l01176"></a>01176 <span class="preprocessor">#if 0</span>
<a name="l01177"></a>01177 <span class="preprocessor"></span>    mLocal.resourceCheck-&gt;setChecked( mAccount-&gt;resource() );
<a name="l01178"></a>01178 <span class="preprocessor">#endif</span>
<a name="l01179"></a>01179 <span class="preprocessor"></span>    mLocal.includeInCheck-&gt;setChecked( !mAccount-&gt;checkExclude() );
<a name="l01180"></a>01180     mLocal.precommand-&gt;setText( mAccount-&gt;precommand() );
<a name="l01181"></a>01181 
<a name="l01182"></a>01182     slotEnableLocalInterval( interval &gt;= 1 );
<a name="l01183"></a>01183     folderCombo = mLocal.folderCombo;
<a name="l01184"></a>01184     mLocal.identityCombo-&gt; setCurrentIdentity( mAccount-&gt;identityId() );
<a name="l01185"></a>01185   }
<a name="l01186"></a>01186   <span class="keywordflow">else</span> <span class="keywordflow">if</span>( accountType == <span class="stringliteral">"pop"</span> )
<a name="l01187"></a>01187   {
<a name="l01188"></a>01188     PopAccount &amp;ap = *(PopAccount*)mAccount;
<a name="l01189"></a>01189     mPop.nameEdit-&gt;setText( mAccount-&gt;name() );
<a name="l01190"></a>01190     mPop.nameEdit-&gt;setFocus();
<a name="l01191"></a>01191     mPop.loginEdit-&gt;setText( ap.login() );
<a name="l01192"></a>01192     mPop.passwordEdit-&gt;setText( ap.passwd());
<a name="l01193"></a>01193     mPop.hostEdit-&gt;setText( ap.host() );
<a name="l01194"></a>01194     mPop.portEdit-&gt;setText( QString(<span class="stringliteral">"%1"</span>).arg( ap.port() ) );
<a name="l01195"></a>01195     mPop.usePipeliningCheck-&gt;setChecked( ap.usePipelining() );
<a name="l01196"></a>01196     mPop.storePasswordCheck-&gt;setChecked( ap.storePasswd() );
<a name="l01197"></a>01197     mPop.leaveOnServerCheck-&gt;setChecked( ap.leaveOnServer() );
<a name="l01198"></a>01198     mPop.leaveOnServerDaysCheck-&gt;setEnabled( ap.leaveOnServer() );
<a name="l01199"></a>01199     mPop.leaveOnServerDaysCheck-&gt;setChecked( ap.leaveOnServerDays() &gt;= 1 );
<a name="l01200"></a>01200     mPop.leaveOnServerDaysSpin-&gt;setValue( ap.leaveOnServerDays() &gt;= 1 ?
<a name="l01201"></a>01201                                             ap.leaveOnServerDays() : 7 );
<a name="l01202"></a>01202     mPop.leaveOnServerCountCheck-&gt;setEnabled( ap.leaveOnServer() );
<a name="l01203"></a>01203     mPop.leaveOnServerCountCheck-&gt;setChecked( ap.leaveOnServerCount() &gt;= 1 );
<a name="l01204"></a>01204     mPop.leaveOnServerCountSpin-&gt;setValue( ap.leaveOnServerCount() &gt;= 1 ?
<a name="l01205"></a>01205                                             ap.leaveOnServerCount() : 100 );
<a name="l01206"></a>01206     mPop.leaveOnServerSizeCheck-&gt;setEnabled( ap.leaveOnServer() );
<a name="l01207"></a>01207     mPop.leaveOnServerSizeCheck-&gt;setChecked( ap.leaveOnServerSize() &gt;= 1 );
<a name="l01208"></a>01208     mPop.leaveOnServerSizeSpin-&gt;setValue( ap.leaveOnServerSize() &gt;= 1 ?
<a name="l01209"></a>01209                                             ap.leaveOnServerSize() : 10 );
<a name="l01210"></a>01210     mPop.filterOnServerCheck-&gt;setChecked( ap.filterOnServer() );
<a name="l01211"></a>01211     mPop.filterOnServerSizeSpin-&gt;setValue( ap.filterOnServerCheckSize() );
<a name="l01212"></a>01212     mPop.intervalCheck-&gt;setChecked( interval &gt;= 1 );
<a name="l01213"></a>01213     <span class="keywordflow">if</span> ( interval &lt;= 0 ) mPop.intervalSpin-&gt;setValue( defaultmailcheckintervalmin );
<a name="l01214"></a>01214     <span class="keywordflow">else</span> mPop.intervalSpin-&gt;setValue( interval );
<a name="l01215"></a>01215 <span class="preprocessor">#if 0</span>
<a name="l01216"></a>01216 <span class="preprocessor"></span>    mPop.resourceCheck-&gt;setChecked( mAccount-&gt;resource() );
<a name="l01217"></a>01217 <span class="preprocessor">#endif</span>
<a name="l01218"></a>01218 <span class="preprocessor"></span>    mPop.includeInCheck-&gt;setChecked( !mAccount-&gt;checkExclude() );
<a name="l01219"></a>01219     mPop.precommand-&gt;setText( ap.precommand() );
<a name="l01220"></a>01220     mPop.identityCombo-&gt; setCurrentIdentity( mAccount-&gt;identityId() );
<a name="l01221"></a>01221     <span class="keywordflow">if</span> (ap.useSSL())
<a name="l01222"></a>01222       mPop.encryptionSSL-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01223"></a>01223     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ap.useTLS())
<a name="l01224"></a>01224       mPop.encryptionTLS-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01225"></a>01225     <span class="keywordflow">else</span> mPop.encryptionNone-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01226"></a>01226     <span class="keywordflow">if</span> (ap.auth() == <span class="stringliteral">"LOGIN"</span>)
<a name="l01227"></a>01227       mPop.authLogin-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01228"></a>01228     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ap.auth() == <span class="stringliteral">"PLAIN"</span>)
<a name="l01229"></a>01229       mPop.authPlain-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01230"></a>01230     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ap.auth() == <span class="stringliteral">"CRAM-MD5"</span>)
<a name="l01231"></a>01231       mPop.authCRAM_MD5-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01232"></a>01232     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ap.auth() == <span class="stringliteral">"DIGEST-MD5"</span>)
<a name="l01233"></a>01233       mPop.authDigestMd5-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01234"></a>01234     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ap.auth() == <span class="stringliteral">"NTLM"</span>)
<a name="l01235"></a>01235       mPop.authNTLM-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01236"></a>01236     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ap.auth() == <span class="stringliteral">"GSSAPI"</span>)
<a name="l01237"></a>01237       mPop.authGSSAPI-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01238"></a>01238     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ap.auth() == <span class="stringliteral">"APOP"</span>)
<a name="l01239"></a>01239       mPop.authAPOP-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01240"></a>01240     <span class="keywordflow">else</span> mPop.authUser-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01241"></a>01241 
<a name="l01242"></a>01242     slotEnableLeaveOnServerDays( mPop.leaveOnServerDaysCheck-&gt;isEnabled() ?
<a name="l01243"></a>01243                                    ap.leaveOnServerDays() &gt;= 1 : 0);
<a name="l01244"></a>01244     slotEnableLeaveOnServerCount( mPop.leaveOnServerCountCheck-&gt;isEnabled() ?
<a name="l01245"></a>01245                                     ap.leaveOnServerCount() &gt;= 1 : 0);
<a name="l01246"></a>01246     slotEnableLeaveOnServerSize( mPop.leaveOnServerSizeCheck-&gt;isEnabled() ?
<a name="l01247"></a>01247                                     ap.leaveOnServerSize() &gt;= 1 : 0);
<a name="l01248"></a>01248     slotEnablePopInterval( interval &gt;= 1 );
<a name="l01249"></a>01249     folderCombo = mPop.folderCombo;
<a name="l01250"></a>01250   }
<a name="l01251"></a>01251   <span class="keywordflow">else</span> <span class="keywordflow">if</span>( accountType == <span class="stringliteral">"imap"</span> )
<a name="l01252"></a>01252   {
<a name="l01253"></a>01253     KMAcctImap &amp;ai = *(KMAcctImap*)mAccount;
<a name="l01254"></a>01254     mImap.nameEdit-&gt;setText( mAccount-&gt;name() );
<a name="l01255"></a>01255     mImap.nameEdit-&gt;setFocus();
<a name="l01256"></a>01256     mImap.loginEdit-&gt;setText( ai.login() );
<a name="l01257"></a>01257     mImap.passwordEdit-&gt;setText( ai.passwd());
<a name="l01258"></a>01258     mImap.hostEdit-&gt;setText( ai.host() );
<a name="l01259"></a>01259     mImap.portEdit-&gt;setText( QString(<span class="stringliteral">"%1"</span>).arg( ai.port() ) );
<a name="l01260"></a>01260     mImap.autoExpungeCheck-&gt;setChecked( ai.autoExpunge() );
<a name="l01261"></a>01261     mImap.hiddenFoldersCheck-&gt;setChecked( ai.hiddenFolders() );
<a name="l01262"></a>01262     mImap.subscribedFoldersCheck-&gt;setChecked( ai.onlySubscribedFolders() );
<a name="l01263"></a>01263     mImap.locallySubscribedFoldersCheck-&gt;setChecked( ai.onlyLocallySubscribedFolders() );
<a name="l01264"></a>01264     mImap.loadOnDemandCheck-&gt;setChecked( ai.loadOnDemand() );
<a name="l01265"></a>01265     mImap.listOnlyOpenCheck-&gt;setChecked( ai.listOnlyOpenFolders() );
<a name="l01266"></a>01266     mImap.storePasswordCheck-&gt;setChecked( ai.storePasswd() );
<a name="l01267"></a>01267 <span class="preprocessor">#if 0</span>
<a name="l01268"></a>01268 <span class="preprocessor"></span>    mImap.resourceCheck-&gt;setChecked( ai.resource() );
<a name="l01269"></a>01269 <span class="preprocessor">#endif</span>
<a name="l01270"></a>01270 <span class="preprocessor"></span>    mImap.includeInCheck-&gt;setChecked( !ai.checkExclude() );
<a name="l01271"></a>01271     mImap.intervalCheck-&gt;setChecked( interval &gt;= 1 );
<a name="l01272"></a>01272     <span class="keywordflow">if</span> ( interval &lt;= 0 ) mImap.intervalSpin-&gt;setValue( defaultmailcheckintervalmin );
<a name="l01273"></a>01273     <span class="keywordflow">else</span> mImap.intervalSpin-&gt;setValue( interval );
<a name="l01274"></a>01274     QString trashfolder = ai.trash();
<a name="l01275"></a>01275     <span class="keywordflow">if</span> (trashfolder.isEmpty())
<a name="l01276"></a>01276       trashfolder = kmkernel-&gt;trashFolder()-&gt;idString();
<a name="l01277"></a>01277     mImap.trashCombo-&gt;setFolder( trashfolder );
<a name="l01278"></a>01278     slotEnableImapInterval( interval &gt;= 1 );
<a name="l01279"></a>01279     mImap.identityCombo-&gt; setCurrentIdentity( mAccount-&gt;identityId() );
<a name="l01280"></a>01280     <span class="comment">//mImap.identityCombo-&gt;insertStringList( kmkernel-&gt;identityManager()-&gt;shadowIdentities() );</span>
<a name="l01281"></a>01281     <span class="keywordflow">if</span> (ai.useSSL())
<a name="l01282"></a>01282       mImap.encryptionSSL-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01283"></a>01283     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ai.useTLS())
<a name="l01284"></a>01284       mImap.encryptionTLS-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01285"></a>01285     <span class="keywordflow">else</span> mImap.encryptionNone-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01286"></a>01286     <span class="keywordflow">if</span> (ai.auth() == <span class="stringliteral">"CRAM-MD5"</span>)
<a name="l01287"></a>01287       mImap.authCramMd5-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01288"></a>01288     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ai.auth() == <span class="stringliteral">"DIGEST-MD5"</span>)
<a name="l01289"></a>01289       mImap.authDigestMd5-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01290"></a>01290     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ai.auth() == <span class="stringliteral">"NTLM"</span>)
<a name="l01291"></a>01291       mImap.authNTLM-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01292"></a>01292     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ai.auth() == <span class="stringliteral">"GSSAPI"</span>)
<a name="l01293"></a>01293       mImap.authGSSAPI-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01294"></a>01294     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ai.auth() == <span class="stringliteral">"ANONYMOUS"</span>)
<a name="l01295"></a>01295       mImap.authAnonymous-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01296"></a>01296     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ai.auth() == <span class="stringliteral">"PLAIN"</span>)
<a name="l01297"></a>01297       mImap.authPlain-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01298"></a>01298     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ai.auth() == <span class="stringliteral">"LOGIN"</span>)
<a name="l01299"></a>01299       mImap.authLogin-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01300"></a>01300     <span class="keywordflow">else</span> mImap.authUser-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01301"></a>01301     <span class="keywordflow">if</span> ( mSieveConfigEditor )
<a name="l01302"></a>01302       mSieveConfigEditor-&gt;setConfig( ai.sieveConfig() );
<a name="l01303"></a>01303   }
<a name="l01304"></a>01304   <span class="keywordflow">else</span> <span class="keywordflow">if</span>( accountType == <span class="stringliteral">"cachedimap"</span> )
<a name="l01305"></a>01305   {
<a name="l01306"></a>01306     KMAcctCachedImap &amp;ai = *(KMAcctCachedImap*)mAccount;
<a name="l01307"></a>01307     mImap.nameEdit-&gt;setText( mAccount-&gt;name() );
<a name="l01308"></a>01308     mImap.nameEdit-&gt;setFocus();
<a name="l01309"></a>01309     mImap.loginEdit-&gt;setText( ai.login() );
<a name="l01310"></a>01310     mImap.passwordEdit-&gt;setText( ai.passwd());
<a name="l01311"></a>01311     mImap.hostEdit-&gt;setText( ai.host() );
<a name="l01312"></a>01312     mImap.portEdit-&gt;setText( QString(<span class="stringliteral">"%1"</span>).arg( ai.port() ) );
<a name="l01313"></a>01313 <span class="preprocessor">#if 0</span>
<a name="l01314"></a>01314 <span class="preprocessor"></span>    mImap.resourceCheck-&gt;setChecked( ai.resource() );
<a name="l01315"></a>01315 <span class="preprocessor">#endif</span>
<a name="l01316"></a>01316 <span class="preprocessor"></span>    mImap.hiddenFoldersCheck-&gt;setChecked( ai.hiddenFolders() );
<a name="l01317"></a>01317     mImap.subscribedFoldersCheck-&gt;setChecked( ai.onlySubscribedFolders() );
<a name="l01318"></a>01318     mImap.locallySubscribedFoldersCheck-&gt;setChecked( ai.onlyLocallySubscribedFolders() );
<a name="l01319"></a>01319     mImap.storePasswordCheck-&gt;setChecked( ai.storePasswd() );
<a name="l01320"></a>01320     mImap.intervalCheck-&gt;setChecked( interval &gt;= 1 );
<a name="l01321"></a>01321     <span class="keywordflow">if</span> ( interval &lt;= 0 ) mImap.intervalSpin-&gt;setValue( defaultmailcheckintervalmin );
<a name="l01322"></a>01322     <span class="keywordflow">else</span> mImap.intervalSpin-&gt;setValue( interval );
<a name="l01323"></a>01323     mImap.includeInCheck-&gt;setChecked( !ai.checkExclude() );
<a name="l01324"></a>01324     QString trashfolder = ai.trash();
<a name="l01325"></a>01325     <span class="keywordflow">if</span> (trashfolder.isEmpty())
<a name="l01326"></a>01326       trashfolder = kmkernel-&gt;trashFolder()-&gt;idString();
<a name="l01327"></a>01327     mImap.trashCombo-&gt;setFolder( trashfolder );
<a name="l01328"></a>01328     slotEnableImapInterval( interval &gt;= 1 );
<a name="l01329"></a>01329     mImap.identityCombo-&gt; setCurrentIdentity( mAccount-&gt;identityId() );
<a name="l01330"></a>01330     <span class="comment">//mImap.identityCombo-&gt;insertStringList( kmkernel-&gt;identityManager()-&gt;shadowIdentities() );</span>
<a name="l01331"></a>01331     <span class="keywordflow">if</span> (ai.useSSL())
<a name="l01332"></a>01332       mImap.encryptionSSL-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01333"></a>01333     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ai.useTLS())
<a name="l01334"></a>01334       mImap.encryptionTLS-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01335"></a>01335     <span class="keywordflow">else</span> mImap.encryptionNone-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01336"></a>01336     <span class="keywordflow">if</span> (ai.auth() == <span class="stringliteral">"CRAM-MD5"</span>)
<a name="l01337"></a>01337       mImap.authCramMd5-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01338"></a>01338     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ai.auth() == <span class="stringliteral">"DIGEST-MD5"</span>)
<a name="l01339"></a>01339       mImap.authDigestMd5-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01340"></a>01340     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ai.auth() == <span class="stringliteral">"GSSAPI"</span>)
<a name="l01341"></a>01341       mImap.authGSSAPI-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01342"></a>01342     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ai.auth() == <span class="stringliteral">"NTLM"</span>)
<a name="l01343"></a>01343       mImap.authNTLM-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01344"></a>01344     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ai.auth() == <span class="stringliteral">"ANONYMOUS"</span>)
<a name="l01345"></a>01345       mImap.authAnonymous-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01346"></a>01346     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ai.auth() == <span class="stringliteral">"PLAIN"</span>)
<a name="l01347"></a>01347       mImap.authPlain-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01348"></a>01348     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ai.auth() == <span class="stringliteral">"LOGIN"</span>)
<a name="l01349"></a>01349       mImap.authLogin-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01350"></a>01350     <span class="keywordflow">else</span> mImap.authUser-&gt;setChecked( <span class="keyword">true</span> );
<a name="l01351"></a>01351     <span class="keywordflow">if</span> ( mSieveConfigEditor )
<a name="l01352"></a>01352       mSieveConfigEditor-&gt;setConfig( ai.sieveConfig() );
<a name="l01353"></a>01353   }
<a name="l01354"></a>01354   <span class="keywordflow">else</span> <span class="keywordflow">if</span>( accountType == <span class="stringliteral">"maildir"</span> )
<a name="l01355"></a>01355   {
<a name="l01356"></a>01356     KMAcctMaildir *acctMaildir = <span class="keyword">dynamic_cast&lt;</span>KMAcctMaildir*<span class="keyword">&gt;</span>(mAccount);
<a name="l01357"></a>01357 
<a name="l01358"></a>01358     mMaildir.nameEdit-&gt;setText( mAccount-&gt;name() );
<a name="l01359"></a>01359     mMaildir.nameEdit-&gt;setFocus();
<a name="l01360"></a>01360     mMaildir.locationEdit-&gt;setEditText( acctMaildir-&gt;location() );
<a name="l01361"></a>01361 
<a name="l01362"></a>01362     <span class="keywordflow">if</span> ( interval &lt;= 0 ) mMaildir.intervalSpin-&gt;setValue( defaultmailcheckintervalmin );
<a name="l01363"></a>01363     <span class="keywordflow">else</span> mMaildir.intervalSpin-&gt;setValue( interval );
<a name="l01364"></a>01364     mMaildir.intervalCheck-&gt;setChecked( interval &gt;= 1 );
<a name="l01365"></a>01365 <span class="preprocessor">#if 0</span>
<a name="l01366"></a>01366 <span class="preprocessor"></span>    mMaildir.resourceCheck-&gt;setChecked( mAccount-&gt;resource() );
<a name="l01367"></a>01367 <span class="preprocessor">#endif</span>
<a name="l01368"></a>01368 <span class="preprocessor"></span>    mMaildir.includeInCheck-&gt;setChecked( !mAccount-&gt;checkExclude() );
<a name="l01369"></a>01369     mMaildir.precommand-&gt;setText( mAccount-&gt;precommand() );
<a name="l01370"></a>01370     mMaildir.identityCombo-&gt; setCurrentIdentity( mAccount-&gt;identityId() );
<a name="l01371"></a>01371     slotEnableMaildirInterval( interval &gt;= 1 );
<a name="l01372"></a>01372     folderCombo = mMaildir.folderCombo;
<a name="l01373"></a>01373   }
<a name="l01374"></a>01374   <span class="keywordflow">else</span> <span class="comment">// Unknown account type</span>
<a name="l01375"></a>01375     <span class="keywordflow">return</span>;
<a name="l01376"></a>01376 
<a name="l01377"></a>01377   <span class="keywordflow">if</span> ( accountType == <span class="stringliteral">"imap"</span> || accountType == <span class="stringliteral">"cachedimap"</span> )
<a name="l01378"></a>01378   {
<a name="l01379"></a>01379     <span class="comment">// settings for imap in general</span>
<a name="l01380"></a>01380     ImapAccountBase &amp;ai = *(ImapAccountBase*)mAccount;
<a name="l01381"></a>01381     <span class="comment">// namespaces</span>
<a name="l01382"></a>01382     <span class="keywordflow">if</span> ( ( ai.namespaces().isEmpty() || ai.namespaceToDelimiter().isEmpty() ) &amp;&amp;
<a name="l01383"></a>01383          !ai.login().isEmpty() &amp;&amp; !ai.passwd().isEmpty() &amp;&amp; !ai.host().isEmpty() )
<a name="l01384"></a>01384     {
<a name="l01385"></a>01385       slotReloadNamespaces();
<a name="l01386"></a>01386     } <span class="keywordflow">else</span> {
<a name="l01387"></a>01387       slotSetupNamespaces( ai.namespacesWithDelimiter() );
<a name="l01388"></a>01388     }
<a name="l01389"></a>01389   }
<a name="l01390"></a>01390 
<a name="l01391"></a>01391   <span class="keywordflow">if</span> (!folderCombo) <span class="keywordflow">return</span>;
<a name="l01392"></a>01392 
<a name="l01393"></a>01393   <a class="code" href="classKMFolderDir.html" title="KMail list that manages the contents of one directory that may contain folders and/or...">KMFolderDir</a> *fdir = (<a class="code" href="classKMFolderDir.html" title="KMail list that manages the contents of one directory that may contain folders and/or...">KMFolderDir</a>*)&amp;kmkernel-&gt;folderMgr()-&gt;dir();
<a name="l01394"></a>01394   <a class="code" href="classKMFolder.html" title="Mail folder.">KMFolder</a> *acctFolder = mAccount-&gt;folder();
<a name="l01395"></a>01395   <span class="keywordflow">if</span>( acctFolder == 0 )
<a name="l01396"></a>01396   {
<a name="l01397"></a>01397     acctFolder = (<a class="code" href="classKMFolder.html" title="Mail folder.">KMFolder</a>*)fdir-&gt;first();
<a name="l01398"></a>01398   }
<a name="l01399"></a>01399   <span class="keywordflow">if</span>( acctFolder == 0 )
<a name="l01400"></a>01400   {
<a name="l01401"></a>01401     folderCombo-&gt;insertItem( i18n(<span class="stringliteral">"&lt;none&gt;"</span>) );
<a name="l01402"></a>01402   }
<a name="l01403"></a>01403   <span class="keywordflow">else</span>
<a name="l01404"></a>01404   {
<a name="l01405"></a>01405     uint i = 0;
<a name="l01406"></a>01406     <span class="keywordtype">int</span> curIndex = -1;
<a name="l01407"></a>01407     kmkernel-&gt;folderMgr()-&gt;createI18nFolderList(&amp;mFolderNames, &amp;mFolderList);
<a name="l01408"></a>01408     <span class="keywordflow">while</span> (i &lt; mFolderNames.count())
<a name="l01409"></a>01409     {
<a name="l01410"></a>01410       QValueList&lt;QGuardedPtr&lt;KMFolder&gt; &gt;::Iterator it = mFolderList.at(i);
<a name="l01411"></a>01411       <a class="code" href="classKMFolder.html" title="Mail folder.">KMFolder</a> *folder = *it;
<a name="l01412"></a>01412       <span class="keywordflow">if</span> (folder-&gt;<a class="code" href="classKMFolder.html#775598752860ff7bf869b0f822b4fcb4" title="Returns true if the folder is a kmail system folder.">isSystemFolder</a>())
<a name="l01413"></a>01413       {
<a name="l01414"></a>01414         mFolderList.remove(it);
<a name="l01415"></a>01415         mFolderNames.remove(mFolderNames.at(i));
<a name="l01416"></a>01416       } <span class="keywordflow">else</span> {
<a name="l01417"></a>01417         <span class="keywordflow">if</span> (folder == acctFolder) curIndex = i;
<a name="l01418"></a>01418         i++;
<a name="l01419"></a>01419       }
<a name="l01420"></a>01420     }
<a name="l01421"></a>01421     mFolderNames.prepend(i18n(<span class="stringliteral">"inbox"</span>));
<a name="l01422"></a>01422     mFolderList.prepend(kmkernel-&gt;inboxFolder());
<a name="l01423"></a>01423     folderCombo-&gt;insertStringList(mFolderNames);
<a name="l01424"></a>01424     folderCombo-&gt;setCurrentItem(curIndex + 1);
<a name="l01425"></a>01425 
<a name="l01426"></a>01426     <span class="comment">// -sanders hack for startup users. Must investigate this properly</span>
<a name="l01427"></a>01427     <span class="keywordflow">if</span> (folderCombo-&gt;count() == 0)
<a name="l01428"></a>01428       folderCombo-&gt;insertItem( i18n(<span class="stringliteral">"inbox"</span>) );
<a name="l01429"></a>01429   }
<a name="l01430"></a>01430 }
<a name="l01431"></a>01431 
<a name="l01432"></a>01432 <span class="keywordtype">void</span> AccountDialog::slotLeaveOnServerClicked()
<a name="l01433"></a>01433 {
<a name="l01434"></a>01434   <span class="keywordtype">bool</span> state = mPop.leaveOnServerCheck-&gt;isChecked();
<a name="l01435"></a>01435   mPop.leaveOnServerDaysCheck-&gt;setEnabled( state );
<a name="l01436"></a>01436   mPop.leaveOnServerCountCheck-&gt;setEnabled( state );
<a name="l01437"></a>01437   mPop.leaveOnServerSizeCheck-&gt;setEnabled( state );
<a name="l01438"></a>01438   <span class="keywordflow">if</span> ( state ) {
<a name="l01439"></a>01439     <span class="keywordflow">if</span> ( mPop.leaveOnServerDaysCheck-&gt;isChecked() ) {
<a name="l01440"></a>01440       slotEnableLeaveOnServerDays( state );
<a name="l01441"></a>01441     }
<a name="l01442"></a>01442     <span class="keywordflow">if</span> ( mPop.leaveOnServerCountCheck-&gt;isChecked() ) {
<a name="l01443"></a>01443       slotEnableLeaveOnServerCount( state );
<a name="l01444"></a>01444     }
<a name="l01445"></a>01445     <span class="keywordflow">if</span> ( mPop.leaveOnServerSizeCheck-&gt;isChecked() ) {
<a name="l01446"></a>01446       slotEnableLeaveOnServerSize( state );
<a name="l01447"></a>01447     }
<a name="l01448"></a>01448   } <span class="keywordflow">else</span> {
<a name="l01449"></a>01449     slotEnableLeaveOnServerDays( state );
<a name="l01450"></a>01450     slotEnableLeaveOnServerCount( state );
<a name="l01451"></a>01451     slotEnableLeaveOnServerSize( state );
<a name="l01452"></a>01452   }
<a name="l01453"></a>01453   <span class="keywordflow">if</span> ( !( mCurCapa &amp; UIDL ) &amp;&amp; mPop.leaveOnServerCheck-&gt;isChecked() ) {
<a name="l01454"></a>01454     KMessageBox::information( topLevelWidget(),
<a name="l01455"></a>01455                               i18n(<span class="stringliteral">"The server does not seem to support unique "</span>
<a name="l01456"></a>01456                                    <span class="stringliteral">"message numbers, but this is a "</span>
<a name="l01457"></a>01457                                    <span class="stringliteral">"requirement for leaving messages on the "</span>
<a name="l01458"></a>01458                                    <span class="stringliteral">"server.\n"</span>
<a name="l01459"></a>01459                                    <span class="stringliteral">"Since some servers do not correctly "</span>
<a name="l01460"></a>01460                                    <span class="stringliteral">"announce their capabilities you still "</span>
<a name="l01461"></a>01461                                    <span class="stringliteral">"have the possibility to turn leaving "</span>
<a name="l01462"></a>01462                                    <span class="stringliteral">"fetched messages on the server on."</span>) );
<a name="l01463"></a>01463   }
<a name="l01464"></a>01464 }
<a name="l01465"></a>01465 
<a name="l01466"></a>01466 <span class="keywordtype">void</span> AccountDialog::slotFilterOnServerClicked()
<a name="l01467"></a>01467 {
<a name="l01468"></a>01468   <span class="keywordflow">if</span> ( !( mCurCapa &amp; TOP ) &amp;&amp; mPop.filterOnServerCheck-&gt;isChecked() ) {
<a name="l01469"></a>01469     KMessageBox::information( topLevelWidget(),
<a name="l01470"></a>01470                               i18n(<span class="stringliteral">"The server does not seem to support "</span>
<a name="l01471"></a>01471                                    <span class="stringliteral">"fetching message headers, but this is a "</span>
<a name="l01472"></a>01472                                    <span class="stringliteral">"requirement for filtering messages on the "</span>
<a name="l01473"></a>01473                                    <span class="stringliteral">"server.\n"</span>
<a name="l01474"></a>01474                                    <span class="stringliteral">"Since some servers do not correctly "</span>
<a name="l01475"></a>01475                                    <span class="stringliteral">"announce their capabilities you still "</span>
<a name="l01476"></a>01476                                    <span class="stringliteral">"have the possibility to turn filtering "</span>
<a name="l01477"></a>01477                                    <span class="stringliteral">"messages on the server on."</span>) );
<a name="l01478"></a>01478   }
<a name="l01479"></a>01479 }
<a name="l01480"></a>01480 
<a name="l01481"></a>01481 <span class="keywordtype">void</span> AccountDialog::slotPipeliningClicked()
<a name="l01482"></a>01482 {
<a name="l01483"></a>01483   <span class="keywordflow">if</span> (mPop.usePipeliningCheck-&gt;isChecked())
<a name="l01484"></a>01484     KMessageBox::information( topLevelWidget(),
<a name="l01485"></a>01485       i18n(<span class="stringliteral">"Please note that this feature can cause some POP3 servers "</span>
<a name="l01486"></a>01486       <span class="stringliteral">"that do not support pipelining to send corrupted mail;\n"</span>
<a name="l01487"></a>01487       <span class="stringliteral">"this is configurable, though, because some servers support pipelining "</span>
<a name="l01488"></a>01488       <span class="stringliteral">"but do not announce their capabilities. To check whether your POP3 server "</span>
<a name="l01489"></a>01489       <span class="stringliteral">"announces pipelining support use the \"Check What the Server "</span>
<a name="l01490"></a>01490       <span class="stringliteral">"Supports\" button at the bottom of the dialog;\n"</span>
<a name="l01491"></a>01491       <span class="stringliteral">"if your server does not announce it, but you want more speed, then "</span>
<a name="l01492"></a>01492       <span class="stringliteral">"you should do some testing first by sending yourself a batch "</span>
<a name="l01493"></a>01493       <span class="stringliteral">"of mail and downloading it."</span>), QString::null,
<a name="l01494"></a>01494       <span class="stringliteral">"pipelining"</span>);
<a name="l01495"></a>01495 }
<a name="l01496"></a>01496 
<a name="l01497"></a>01497 
<a name="l01498"></a>01498 <span class="keywordtype">void</span> AccountDialog::slotPopEncryptionChanged(<span class="keywordtype">int</span> <span class="keywordtype">id</span>)
<a name="l01499"></a>01499 {
<a name="l01500"></a>01500   kdDebug(5006) &lt;&lt; <span class="stringliteral">"slotPopEncryptionChanged( "</span> &lt;&lt; <span class="keywordtype">id</span> &lt;&lt; <span class="stringliteral">" )"</span> &lt;&lt; endl;
<a name="l01501"></a>01501   <span class="comment">// adjust port</span>
<a name="l01502"></a>01502   <span class="keywordflow">if</span> ( <span class="keywordtype">id</span> == SSL || mPop.portEdit-&gt;text() == <span class="stringliteral">"995"</span> )
<a name="l01503"></a>01503     mPop.portEdit-&gt;setText( ( <span class="keywordtype">id</span> == SSL ) ? <span class="stringliteral">"995"</span> : <span class="stringliteral">"110"</span> );
<a name="l01504"></a>01504 
<a name="l01505"></a>01505   <span class="comment">// switch supported auth methods</span>
<a name="l01506"></a>01506   mCurCapa = ( <span class="keywordtype">id</span> == TLS ) ? mCapaTLS
<a name="l01507"></a>01507                            : ( <span class="keywordtype">id</span> == SSL ) ? mCapaSSL
<a name="l01508"></a>01508                                            : mCapaNormal;
<a name="l01509"></a>01509   enablePopFeatures( mCurCapa );
<a name="l01510"></a>01510   <span class="keyword">const</span> QButton *old = mPop.authGroup-&gt;selected();
<a name="l01511"></a>01511   <span class="keywordflow">if</span> ( !old-&gt;isEnabled() )
<a name="l01512"></a>01512     checkHighest( mPop.authGroup );
<a name="l01513"></a>01513 }
<a name="l01514"></a>01514 
<a name="l01515"></a>01515 
<a name="l01516"></a>01516 <span class="keywordtype">void</span> AccountDialog::slotImapEncryptionChanged(<span class="keywordtype">int</span> <span class="keywordtype">id</span>)
<a name="l01517"></a>01517 {
<a name="l01518"></a>01518   kdDebug(5006) &lt;&lt; <span class="stringliteral">"slotImapEncryptionChanged( "</span> &lt;&lt; <span class="keywordtype">id</span> &lt;&lt; <span class="stringliteral">" )"</span> &lt;&lt; endl;
<a name="l01519"></a>01519   <span class="comment">// adjust port</span>
<a name="l01520"></a>01520   <span class="keywordflow">if</span> ( <span class="keywordtype">id</span> == SSL || mImap.portEdit-&gt;text() == <span class="stringliteral">"993"</span> )
<a name="l01521"></a>01521     mImap.portEdit-&gt;setText( ( <span class="keywordtype">id</span> == SSL ) ? <span class="stringliteral">"993"</span> : <span class="stringliteral">"143"</span> );
<a name="l01522"></a>01522 
<a name="l01523"></a>01523   <span class="comment">// switch supported auth methods</span>
<a name="l01524"></a>01524   <span class="keywordtype">int</span> authMethods = ( <span class="keywordtype">id</span> == TLS ) ? mCapaTLS
<a name="l01525"></a>01525                                   : ( <span class="keywordtype">id</span> == SSL ) ? mCapaSSL
<a name="l01526"></a>01526                                                   : mCapaNormal;
<a name="l01527"></a>01527   enableImapAuthMethods( authMethods );
<a name="l01528"></a>01528   QButton *old = mImap.authGroup-&gt;selected();
<a name="l01529"></a>01529   <span class="keywordflow">if</span> ( !old-&gt;isEnabled() )
<a name="l01530"></a>01530     checkHighest( mImap.authGroup );
<a name="l01531"></a>01531 }
<a name="l01532"></a>01532 
<a name="l01533"></a>01533 
<a name="l01534"></a>01534 <span class="keywordtype">void</span> AccountDialog::slotCheckPopCapabilities()
<a name="l01535"></a>01535 {
<a name="l01536"></a>01536   <span class="keywordflow">if</span> ( mPop.hostEdit-&gt;text().isEmpty() || mPop.portEdit-&gt;text().isEmpty() )
<a name="l01537"></a>01537   {
<a name="l01538"></a>01538      KMessageBox::sorry( <span class="keyword">this</span>, i18n( <span class="stringliteral">"Please specify a server and port on "</span>
<a name="l01539"></a>01539               <span class="stringliteral">"the General tab first."</span> ) );
<a name="l01540"></a>01540      <span class="keywordflow">return</span>;
<a name="l01541"></a>01541   }
<a name="l01542"></a>01542   <span class="keyword">delete</span> mServerTest;
<a name="l01543"></a>01543   mServerTest = <span class="keyword">new</span> KMServerTest(POP_PROTOCOL, mPop.hostEdit-&gt;text(),
<a name="l01544"></a>01544     mPop.portEdit-&gt;text().toInt());
<a name="l01545"></a>01545   connect( mServerTest, SIGNAL( capabilities( <span class="keyword">const</span> QStringList &amp;,
<a name="l01546"></a>01546                                               <span class="keyword">const</span> QStringList &amp; ) ),
<a name="l01547"></a>01547            <span class="keyword">this</span>, SLOT( slotPopCapabilities( <span class="keyword">const</span> QStringList &amp;,
<a name="l01548"></a>01548                                             <span class="keyword">const</span> QStringList &amp; ) ) );
<a name="l01549"></a>01549   mPop.checkCapabilities-&gt;setEnabled(<span class="keyword">false</span>);
<a name="l01550"></a>01550 }
<a name="l01551"></a>01551 
<a name="l01552"></a>01552 
<a name="l01553"></a>01553 <span class="keywordtype">void</span> AccountDialog::slotCheckImapCapabilities()
<a name="l01554"></a>01554 {
<a name="l01555"></a>01555   <span class="keywordflow">if</span> ( mImap.hostEdit-&gt;text().isEmpty() || mImap.portEdit-&gt;text().isEmpty() )
<a name="l01556"></a>01556   {
<a name="l01557"></a>01557      KMessageBox::sorry( <span class="keyword">this</span>, i18n( <span class="stringliteral">"Please specify a server and port on "</span>
<a name="l01558"></a>01558               <span class="stringliteral">"the General tab first."</span> ) );
<a name="l01559"></a>01559      <span class="keywordflow">return</span>;
<a name="l01560"></a>01560   }
<a name="l01561"></a>01561   <span class="keyword">delete</span> mServerTest;
<a name="l01562"></a>01562   mServerTest = <span class="keyword">new</span> KMServerTest(IMAP_PROTOCOL, mImap.hostEdit-&gt;text(),
<a name="l01563"></a>01563     mImap.portEdit-&gt;text().toInt());
<a name="l01564"></a>01564   connect( mServerTest, SIGNAL( capabilities( <span class="keyword">const</span> QStringList &amp;,
<a name="l01565"></a>01565                                               <span class="keyword">const</span> QStringList &amp; ) ),
<a name="l01566"></a>01566            <span class="keyword">this</span>, SLOT( slotImapCapabilities( <span class="keyword">const</span> QStringList &amp;,
<a name="l01567"></a>01567                                              <span class="keyword">const</span> QStringList &amp; ) ) );
<a name="l01568"></a>01568   mImap.checkCapabilities-&gt;setEnabled(<span class="keyword">false</span>);
<a name="l01569"></a>01569 }
<a name="l01570"></a>01570 
<a name="l01571"></a>01571 
<a name="l01572"></a>01572 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> AccountDialog::popCapabilitiesFromStringList( <span class="keyword">const</span> QStringList &amp; l )
<a name="l01573"></a>01573 {
<a name="l01574"></a>01574   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> capa = 0;
<a name="l01575"></a>01575   kdDebug( 5006 ) &lt;&lt; k_funcinfo &lt;&lt; l &lt;&lt; endl;
<a name="l01576"></a>01576   <span class="keywordflow">for</span> ( QStringList::const_iterator it = l.begin() ; it != l.end() ; ++it ) {
<a name="l01577"></a>01577     QString cur = (*it).upper();
<a name="l01578"></a>01578     <span class="keywordflow">if</span> ( cur == <span class="stringliteral">"PLAIN"</span> )
<a name="l01579"></a>01579       capa |= Plain;
<a name="l01580"></a>01580     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( cur == <span class="stringliteral">"LOGIN"</span> )
<a name="l01581"></a>01581       capa |= Login;
<a name="l01582"></a>01582     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( cur == <span class="stringliteral">"CRAM-MD5"</span> )
<a name="l01583"></a>01583       capa |= CRAM_MD5;
<a name="l01584"></a>01584     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( cur == <span class="stringliteral">"DIGEST-MD5"</span> )
<a name="l01585"></a>01585       capa |= Digest_MD5;
<a name="l01586"></a>01586     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( cur == <span class="stringliteral">"NTLM"</span> )
<a name="l01587"></a>01587       capa |= NTLM;
<a name="l01588"></a>01588     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( cur == <span class="stringliteral">"GSSAPI"</span> )
<a name="l01589"></a>01589       capa |= GSSAPI;
<a name="l01590"></a>01590     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( cur == <span class="stringliteral">"APOP"</span> )
<a name="l01591"></a>01591       capa |= APOP;
<a name="l01592"></a>01592     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( cur == <span class="stringliteral">"PIPELINING"</span> )
<a name="l01593"></a>01593       capa |= Pipelining;
<a name="l01594"></a>01594     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( cur == <span class="stringliteral">"TOP"</span> )
<a name="l01595"></a>01595       capa |= TOP;
<a name="l01596"></a>01596     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( cur == <span class="stringliteral">"UIDL"</span> )
<a name="l01597"></a>01597       capa |= UIDL;
<a name="l01598"></a>01598     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( cur == <span class="stringliteral">"STLS"</span> )
<a name="l01599"></a>01599       capa |= STLS;
<a name="l01600"></a>01600   }
<a name="l01601"></a>01601   <span class="keywordflow">return</span> capa;
<a name="l01602"></a>01602 }
<a name="l01603"></a>01603 
<a name="l01604"></a>01604 
<a name="l01605"></a>01605 <span class="keywordtype">void</span> AccountDialog::slotPopCapabilities( <span class="keyword">const</span> QStringList &amp; capaNormal,
<a name="l01606"></a>01606                                          <span class="keyword">const</span> QStringList &amp; capaSSL )
<a name="l01607"></a>01607 {
<a name="l01608"></a>01608   mPop.checkCapabilities-&gt;setEnabled( <span class="keyword">true</span> );
<a name="l01609"></a>01609   mCapaNormal = popCapabilitiesFromStringList( capaNormal );
<a name="l01610"></a>01610   <span class="keywordflow">if</span> ( mCapaNormal &amp; STLS )
<a name="l01611"></a>01611     mCapaTLS = mCapaNormal;
<a name="l01612"></a>01612   <span class="keywordflow">else</span>
<a name="l01613"></a>01613     mCapaTLS = 0;
<a name="l01614"></a>01614   mCapaSSL = popCapabilitiesFromStringList( capaSSL );
<a name="l01615"></a>01615   kdDebug(5006) &lt;&lt; <span class="stringliteral">"mCapaNormal = "</span> &lt;&lt; mCapaNormal
<a name="l01616"></a>01616                 &lt;&lt; <span class="stringliteral">"; mCapaSSL = "</span> &lt;&lt; mCapaSSL
<a name="l01617"></a>01617                 &lt;&lt; <span class="stringliteral">"; mCapaTLS = "</span> &lt;&lt; mCapaTLS &lt;&lt; endl;
<a name="l01618"></a>01618   mPop.encryptionNone-&gt;setEnabled( !capaNormal.isEmpty() );
<a name="l01619"></a>01619   mPop.encryptionSSL-&gt;setEnabled( !capaSSL.isEmpty() );
<a name="l01620"></a>01620   mPop.encryptionTLS-&gt;setEnabled( mCapaTLS != 0 );
<a name="l01621"></a>01621   checkHighest( mPop.encryptionGroup );
<a name="l01622"></a>01622   <span class="keyword">delete</span> mServerTest;
<a name="l01623"></a>01623   mServerTest = 0;
<a name="l01624"></a>01624 }
<a name="l01625"></a>01625 
<a name="l01626"></a>01626 
<a name="l01627"></a>01627 <span class="keywordtype">void</span> AccountDialog::enablePopFeatures( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> capa )
<a name="l01628"></a>01628 {
<a name="l01629"></a>01629   kdDebug(5006) &lt;&lt; <span class="stringliteral">"enablePopFeatures( "</span> &lt;&lt; capa &lt;&lt; <span class="stringliteral">" )"</span> &lt;&lt; endl;
<a name="l01630"></a>01630   mPop.authPlain-&gt;setEnabled( capa &amp; Plain );
<a name="l01631"></a>01631   mPop.authLogin-&gt;setEnabled( capa &amp; Login );
<a name="l01632"></a>01632   mPop.authCRAM_MD5-&gt;setEnabled( capa &amp; CRAM_MD5 );
<a name="l01633"></a>01633   mPop.authDigestMd5-&gt;setEnabled( capa &amp; Digest_MD5 );
<a name="l01634"></a>01634   mPop.authNTLM-&gt;setEnabled( capa &amp; NTLM );
<a name="l01635"></a>01635   mPop.authGSSAPI-&gt;setEnabled( capa &amp; GSSAPI );
<a name="l01636"></a>01636   mPop.authAPOP-&gt;setEnabled( capa &amp; APOP );
<a name="l01637"></a>01637   <span class="keywordflow">if</span> ( !( capa &amp; Pipelining ) &amp;&amp; mPop.usePipeliningCheck-&gt;isChecked() ) {
<a name="l01638"></a>01638     mPop.usePipeliningCheck-&gt;setChecked( <span class="keyword">false</span> );
<a name="l01639"></a>01639     KMessageBox::information( topLevelWidget(),
<a name="l01640"></a>01640                               i18n(<span class="stringliteral">"The server does not seem to support "</span>
<a name="l01641"></a>01641                                    <span class="stringliteral">"pipelining; therefore, this option has "</span>
<a name="l01642"></a>01642                                    <span class="stringliteral">"been disabled.\n"</span>
<a name="l01643"></a>01643                                    <span class="stringliteral">"Since some servers do not correctly "</span>
<a name="l01644"></a>01644                                    <span class="stringliteral">"announce their capabilities you still "</span>
<a name="l01645"></a>01645                                    <span class="stringliteral">"have the possibility to turn pipelining "</span>
<a name="l01646"></a>01646                                    <span class="stringliteral">"on. But please note that this feature can "</span>
<a name="l01647"></a>01647                                    <span class="stringliteral">"cause some POP servers that do not "</span>
<a name="l01648"></a>01648                                    <span class="stringliteral">"support pipelining to send corrupt "</span>
<a name="l01649"></a>01649                                    <span class="stringliteral">"messages. So before using this feature "</span>
<a name="l01650"></a>01650                                    <span class="stringliteral">"with important mail you should first "</span>
<a name="l01651"></a>01651                                    <span class="stringliteral">"test it by sending yourself a larger "</span>
<a name="l01652"></a>01652                                    <span class="stringliteral">"number of test messages which you all "</span>
<a name="l01653"></a>01653                                    <span class="stringliteral">"download in one go from the POP "</span>
<a name="l01654"></a>01654                                    <span class="stringliteral">"server."</span>) );
<a name="l01655"></a>01655   }
<a name="l01656"></a>01656   <span class="keywordflow">if</span> ( !( capa &amp; UIDL ) &amp;&amp; mPop.leaveOnServerCheck-&gt;isChecked() ) {
<a name="l01657"></a>01657     mPop.leaveOnServerCheck-&gt;setChecked( <span class="keyword">false</span> );
<a name="l01658"></a>01658     KMessageBox::information( topLevelWidget(),
<a name="l01659"></a>01659                               i18n(<span class="stringliteral">"The server does not seem to support unique "</span>
<a name="l01660"></a>01660                                    <span class="stringliteral">"message numbers, but this is a "</span>
<a name="l01661"></a>01661                                    <span class="stringliteral">"requirement for leaving messages on the "</span>
<a name="l01662"></a>01662                                    <span class="stringliteral">"server; therefore, this option has been "</span>
<a name="l01663"></a>01663                                    <span class="stringliteral">"disabled.\n"</span>
<a name="l01664"></a>01664                                    <span class="stringliteral">"Since some servers do not correctly "</span>
<a name="l01665"></a>01665                                    <span class="stringliteral">"announce their capabilities you still "</span>
<a name="l01666"></a>01666                                    <span class="stringliteral">"have the possibility to turn leaving "</span>
<a name="l01667"></a>01667                                    <span class="stringliteral">"fetched messages on the server on."</span>) );
<a name="l01668"></a>01668   }
<a name="l01669"></a>01669   <span class="keywordflow">if</span> ( !( capa &amp; TOP ) &amp;&amp; mPop.filterOnServerCheck-&gt;isChecked() ) {
<a name="l01670"></a>01670     mPop.filterOnServerCheck-&gt;setChecked( <span class="keyword">false</span> );
<a name="l01671"></a>01671     KMessageBox::information( topLevelWidget(),
<a name="l01672"></a>01672                               i18n(<span class="stringliteral">"The server does not seem to support "</span>
<a name="l01673"></a>01673                                    <span class="stringliteral">"fetching message headers, but this is a "</span>
<a name="l01674"></a>01674                                    <span class="stringliteral">"requirement for filtering messages on the "</span>
<a name="l01675"></a>01675                                    <span class="stringliteral">"server; therefore, this option has been "</span>
<a name="l01676"></a>01676                                    <span class="stringliteral">"disabled.\n"</span>
<a name="l01677"></a>01677                                    <span class="stringliteral">"Since some servers do not correctly "</span>
<a name="l01678"></a>01678                                    <span class="stringliteral">"announce their capabilities you still "</span>
<a name="l01679"></a>01679                                    <span class="stringliteral">"have the possibility to turn filtering "</span>
<a name="l01680"></a>01680                                    <span class="stringliteral">"messages on the server on."</span>) );
<a name="l01681"></a>01681   }
<a name="l01682"></a>01682 }
<a name="l01683"></a>01683 
<a name="l01684"></a>01684 
<a name="l01685"></a>01685 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> AccountDialog::imapCapabilitiesFromStringList( <span class="keyword">const</span> QStringList &amp; l )
<a name="l01686"></a>01686 {
<a name="l01687"></a>01687   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> capa = 0;
<a name="l01688"></a>01688   <span class="keywordflow">for</span> ( QStringList::const_iterator it = l.begin() ; it != l.end() ; ++it ) {
<a name="l01689"></a>01689     QString cur = (*it).upper();
<a name="l01690"></a>01690     <span class="keywordflow">if</span> ( cur == <span class="stringliteral">"AUTH=PLAIN"</span> )
<a name="l01691"></a>01691       capa |= Plain;
<a name="l01692"></a>01692     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( cur == <span class="stringliteral">"AUTH=LOGIN"</span> )
<a name="l01693"></a>01693       capa |= Login;
<a name="l01694"></a>01694     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( cur == <span class="stringliteral">"AUTH=CRAM-MD5"</span> )
<a name="l01695"></a>01695       capa |= CRAM_MD5;
<a name="l01696"></a>01696     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( cur == <span class="stringliteral">"AUTH=DIGEST-MD5"</span> )
<a name="l01697"></a>01697       capa |= Digest_MD5;
<a name="l01698"></a>01698     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( cur == <span class="stringliteral">"AUTH=NTLM"</span> )
<a name="l01699"></a>01699       capa |= NTLM;
<a name="l01700"></a>01700     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( cur == <span class="stringliteral">"AUTH=GSSAPI"</span> )
<a name="l01701"></a>01701       capa |= GSSAPI;
<a name="l01702"></a>01702     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( cur == <span class="stringliteral">"AUTH=ANONYMOUS"</span> )
<a name="l01703"></a>01703       capa |= Anonymous;
<a name="l01704"></a>01704     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( cur == <span class="stringliteral">"STARTTLS"</span> )
<a name="l01705"></a>01705       capa |= STARTTLS;
<a name="l01706"></a>01706   }
<a name="l01707"></a>01707   <span class="keywordflow">return</span> capa;
<a name="l01708"></a>01708 }
<a name="l01709"></a>01709 
<a name="l01710"></a>01710 
<a name="l01711"></a>01711 <span class="keywordtype">void</span> AccountDialog::slotImapCapabilities( <span class="keyword">const</span> QStringList &amp; capaNormal,
<a name="l01712"></a>01712                                           <span class="keyword">const</span> QStringList &amp; capaSSL )
<a name="l01713"></a>01713 {
<a name="l01714"></a>01714   mImap.checkCapabilities-&gt;setEnabled( <span class="keyword">true</span> );
<a name="l01715"></a>01715   mCapaNormal = imapCapabilitiesFromStringList( capaNormal );
<a name="l01716"></a>01716   <span class="keywordflow">if</span> ( mCapaNormal &amp; STARTTLS )
<a name="l01717"></a>01717     mCapaTLS = mCapaNormal;
<a name="l01718"></a>01718   <span class="keywordflow">else</span>
<a name="l01719"></a>01719     mCapaTLS = 0;
<a name="l01720"></a>01720   mCapaSSL = imapCapabilitiesFromStringList( capaSSL );
<a name="l01721"></a>01721   kdDebug(5006) &lt;&lt; <span class="stringliteral">"mCapaNormal = "</span> &lt;&lt; mCapaNormal
<a name="l01722"></a>01722                 &lt;&lt; <span class="stringliteral">"; mCapaSSL = "</span> &lt;&lt; mCapaSSL
<a name="l01723"></a>01723                 &lt;&lt; <span class="stringliteral">"; mCapaTLS = "</span> &lt;&lt; mCapaTLS &lt;&lt; endl;
<a name="l01724"></a>01724   mImap.encryptionNone-&gt;setEnabled( !capaNormal.isEmpty() );
<a name="l01725"></a>01725   mImap.encryptionSSL-&gt;setEnabled( !capaSSL.isEmpty() );
<a name="l01726"></a>01726   mImap.encryptionTLS-&gt;setEnabled( mCapaTLS != 0 );
<a name="l01727"></a>01727   checkHighest( mImap.encryptionGroup );
<a name="l01728"></a>01728   <span class="keyword">delete</span> mServerTest;
<a name="l01729"></a>01729   mServerTest = 0;
<a name="l01730"></a>01730 }
<a name="l01731"></a>01731 
<a name="l01732"></a>01732 <span class="keywordtype">void</span> AccountDialog::slotLeaveOnServerDaysChanged ( <span class="keywordtype">int</span> value )
<a name="l01733"></a>01733 {
<a name="l01734"></a>01734   mPop.leaveOnServerDaysSpin-&gt;setSuffix( i18n(<span class="stringliteral">" day"</span>, <span class="stringliteral">" days"</span>, value) );
<a name="l01735"></a>01735 }
<a name="l01736"></a>01736 
<a name="l01737"></a>01737 
<a name="l01738"></a>01738 <span class="keywordtype">void</span> AccountDialog::slotLeaveOnServerCountChanged ( <span class="keywordtype">int</span> value )
<a name="l01739"></a>01739 {
<a name="l01740"></a>01740   mPop.leaveOnServerCountSpin-&gt;setSuffix( i18n(<span class="stringliteral">" message"</span>, <span class="stringliteral">" messages"</span>, value) );
<a name="l01741"></a>01741 }
<a name="l01742"></a>01742 
<a name="l01743"></a>01743 
<a name="l01744"></a>01744 <span class="keywordtype">void</span> AccountDialog::slotFilterOnServerSizeChanged ( <span class="keywordtype">int</span> value )
<a name="l01745"></a>01745 {
<a name="l01746"></a>01746   mPop.filterOnServerSizeSpin-&gt;setSuffix( i18n(<span class="stringliteral">" byte"</span>, <span class="stringliteral">" bytes"</span>, value) );
<a name="l01747"></a>01747 }
<a name="l01748"></a>01748 
<a name="l01749"></a>01749 
<a name="l01750"></a>01750 <span class="keywordtype">void</span> AccountDialog::enableImapAuthMethods( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> capa )
<a name="l01751"></a>01751 {
<a name="l01752"></a>01752   kdDebug(5006) &lt;&lt; <span class="stringliteral">"enableImapAuthMethods( "</span> &lt;&lt; capa &lt;&lt; <span class="stringliteral">" )"</span> &lt;&lt; endl;
<a name="l01753"></a>01753   mImap.authPlain-&gt;setEnabled( capa &amp; Plain );
<a name="l01754"></a>01754   mImap.authLogin-&gt;setEnabled( capa &amp; Login );
<a name="l01755"></a>01755   mImap.authCramMd5-&gt;setEnabled( capa &amp; CRAM_MD5 );
<a name="l01756"></a>01756   mImap.authDigestMd5-&gt;setEnabled( capa &amp; Digest_MD5 );
<a name="l01757"></a>01757   mImap.authNTLM-&gt;setEnabled( capa &amp; NTLM );
<a name="l01758"></a>01758   mImap.authGSSAPI-&gt;setEnabled( capa &amp; GSSAPI );
<a name="l01759"></a>01759   mImap.authAnonymous-&gt;setEnabled( capa &amp; Anonymous );
<a name="l01760"></a>01760 }
<a name="l01761"></a>01761 
<a name="l01762"></a>01762 
<a name="l01763"></a>01763 <span class="keywordtype">void</span> AccountDialog::checkHighest( QButtonGroup *btnGroup )
<a name="l01764"></a>01764 {
<a name="l01765"></a>01765   kdDebug(5006) &lt;&lt; <span class="stringliteral">"checkHighest( "</span> &lt;&lt; btnGroup &lt;&lt; <span class="stringliteral">" )"</span> &lt;&lt; endl;
<a name="l01766"></a>01766   <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = btnGroup-&gt;count() - 1; i &gt;= 0 ; --i ) {
<a name="l01767"></a>01767     QButton * btn = btnGroup-&gt;find( i );
<a name="l01768"></a>01768     <span class="keywordflow">if</span> ( btn &amp;&amp; btn-&gt;isEnabled() ) {
<a name="l01769"></a>01769       btn-&gt;animateClick();
<a name="l01770"></a>01770       <span class="keywordflow">return</span>;
<a name="l01771"></a>01771     }
<a name="l01772"></a>01772   }
<a name="l01773"></a>01773 }
<a name="l01774"></a>01774 
<a name="l01775"></a>01775 
<a name="l01776"></a>01776 <span class="keywordtype">void</span> AccountDialog::slotOk()
<a name="l01777"></a>01777 {
<a name="l01778"></a>01778   saveSettings();
<a name="l01779"></a>01779   accept();
<a name="l01780"></a>01780 }
<a name="l01781"></a>01781 
<a name="l01782"></a>01782 
<a name="l01783"></a>01783 <span class="keywordtype">void</span> AccountDialog::saveSettings()
<a name="l01784"></a>01784 {
<a name="l01785"></a>01785   QString accountType = mAccount-&gt;type();
<a name="l01786"></a>01786   <span class="keywordflow">if</span>( accountType == <span class="stringliteral">"local"</span> )
<a name="l01787"></a>01787   {
<a name="l01788"></a>01788     KMAcctLocal *acctLocal = <span class="keyword">dynamic_cast&lt;</span>KMAcctLocal*<span class="keyword">&gt;</span>(mAccount);
<a name="l01789"></a>01789 
<a name="l01790"></a>01790     <span class="keywordflow">if</span> (acctLocal) {
<a name="l01791"></a>01791       mAccount-&gt;setName( mLocal.nameEdit-&gt;text() );
<a name="l01792"></a>01792       acctLocal-&gt;setLocation( mLocal.locationEdit-&gt;currentText() );
<a name="l01793"></a>01793       <span class="keywordflow">if</span> (mLocal.lockMutt-&gt;isChecked())
<a name="l01794"></a>01794         acctLocal-&gt;setLockType(mutt_dotlock);
<a name="l01795"></a>01795       <span class="keywordflow">else</span> <span class="keywordflow">if</span> (mLocal.lockMuttPriv-&gt;isChecked())
<a name="l01796"></a>01796         acctLocal-&gt;setLockType(mutt_dotlock_privileged);
<a name="l01797"></a>01797       <span class="keywordflow">else</span> <span class="keywordflow">if</span> (mLocal.lockProcmail-&gt;isChecked()) {
<a name="l01798"></a>01798         acctLocal-&gt;setLockType(procmail_lockfile);
<a name="l01799"></a>01799         acctLocal-&gt;setProcmailLockFileName(mLocal.procmailLockFileName-&gt;currentText());
<a name="l01800"></a>01800       }
<a name="l01801"></a>01801       <span class="keywordflow">else</span> <span class="keywordflow">if</span> (mLocal.lockNone-&gt;isChecked())
<a name="l01802"></a>01802         acctLocal-&gt;setLockType(lock_none);
<a name="l01803"></a>01803       <span class="keywordflow">else</span> acctLocal-&gt;setLockType(FCNTL);
<a name="l01804"></a>01804     }
<a name="l01805"></a>01805 
<a name="l01806"></a>01806     mAccount-&gt;setCheckInterval( mLocal.intervalCheck-&gt;isChecked() ?
<a name="l01807"></a>01807                  mLocal.intervalSpin-&gt;value() : 0 );
<a name="l01808"></a>01808 <span class="preprocessor">#if 0</span>
<a name="l01809"></a>01809 <span class="preprocessor"></span>    mAccount-&gt;setResource( mLocal.resourceCheck-&gt;isChecked() );
<a name="l01810"></a>01810 <span class="preprocessor">#endif</span>
<a name="l01811"></a>01811 <span class="preprocessor"></span>    mAccount-&gt;setCheckExclude( !mLocal.includeInCheck-&gt;isChecked() );
<a name="l01812"></a>01812 
<a name="l01813"></a>01813     mAccount-&gt;setPrecommand( mLocal.precommand-&gt;text() );
<a name="l01814"></a>01814 
<a name="l01815"></a>01815     mAccount-&gt;setFolder( *mFolderList.at(mLocal.folderCombo-&gt;currentItem()) );
<a name="l01816"></a>01816 
<a name="l01817"></a>01817     mAccount-&gt;setIdentityId( mLocal.identityCombo-&gt;currentIdentity() );
<a name="l01818"></a>01818 
<a name="l01819"></a>01819   }
<a name="l01820"></a>01820   <span class="keywordflow">else</span> <span class="keywordflow">if</span>( accountType == <span class="stringliteral">"pop"</span> )
<a name="l01821"></a>01821   {
<a name="l01822"></a>01822     mAccount-&gt;setName( mPop.nameEdit-&gt;text() );
<a name="l01823"></a>01823     mAccount-&gt;setCheckInterval( mPop.intervalCheck-&gt;isChecked() ?
<a name="l01824"></a>01824                  mPop.intervalSpin-&gt;value() : 0 );
<a name="l01825"></a>01825 <span class="preprocessor">#if 0</span>
<a name="l01826"></a>01826 <span class="preprocessor"></span>    mAccount-&gt;setResource( mPop.resourceCheck-&gt;isChecked() );
<a name="l01827"></a>01827 <span class="preprocessor">#endif</span>
<a name="l01828"></a>01828 <span class="preprocessor"></span>    mAccount-&gt;setCheckExclude( !mPop.includeInCheck-&gt;isChecked() );
<a name="l01829"></a>01829 
<a name="l01830"></a>01830     mAccount-&gt;setFolder( *mFolderList.at(mPop.folderCombo-&gt;currentItem()) );
<a name="l01831"></a>01831 
<a name="l01832"></a>01832     mAccount-&gt;setIdentityId( mPop.identityCombo-&gt;currentIdentity() );
<a name="l01833"></a>01833 
<a name="l01834"></a>01834     initAccountForConnect();
<a name="l01835"></a>01835     PopAccount &amp;epa = *(PopAccount*)mAccount;
<a name="l01836"></a>01836     epa.setUsePipelining( mPop.usePipeliningCheck-&gt;isChecked() );
<a name="l01837"></a>01837     epa.setLeaveOnServer( mPop.leaveOnServerCheck-&gt;isChecked() );
<a name="l01838"></a>01838     epa.setLeaveOnServerDays( mPop.leaveOnServerCheck-&gt;isChecked() ?
<a name="l01839"></a>01839                               ( mPop.leaveOnServerDaysCheck-&gt;isChecked() ?
<a name="l01840"></a>01840                                 mPop.leaveOnServerDaysSpin-&gt;value() : -1 ) : 0);
<a name="l01841"></a>01841     epa.setLeaveOnServerCount( mPop.leaveOnServerCheck-&gt;isChecked() ?
<a name="l01842"></a>01842                                ( mPop.leaveOnServerCountCheck-&gt;isChecked() ?
<a name="l01843"></a>01843                                  mPop.leaveOnServerCountSpin-&gt;value() : -1 ) : 0 );
<a name="l01844"></a>01844     epa.setLeaveOnServerSize( mPop.leaveOnServerCheck-&gt;isChecked() ?
<a name="l01845"></a>01845                               ( mPop.leaveOnServerSizeCheck-&gt;isChecked() ?
<a name="l01846"></a>01846                                 mPop.leaveOnServerSizeSpin-&gt;value() : -1 ) : 0 );
<a name="l01847"></a>01847     epa.setFilterOnServer( mPop.filterOnServerCheck-&gt;isChecked() );
<a name="l01848"></a>01848     epa.setFilterOnServerCheckSize (mPop.filterOnServerSizeSpin-&gt;value() );
<a name="l01849"></a>01849     epa.setPrecommand( mPop.precommand-&gt;text() );
<a name="l01850"></a>01850 
<a name="l01851"></a>01851   }
<a name="l01852"></a>01852   <span class="keywordflow">else</span> <span class="keywordflow">if</span>( accountType == <span class="stringliteral">"imap"</span> )
<a name="l01853"></a>01853   {
<a name="l01854"></a>01854     mAccount-&gt;setName( mImap.nameEdit-&gt;text() );
<a name="l01855"></a>01855     mAccount-&gt;setCheckInterval( mImap.intervalCheck-&gt;isChecked() ?
<a name="l01856"></a>01856                                 mImap.intervalSpin-&gt;value() : 0 );
<a name="l01857"></a>01857     mAccount-&gt;setIdentityId( mImap.identityCombo-&gt;currentIdentity() );
<a name="l01858"></a>01858 
<a name="l01859"></a>01859 <span class="preprocessor">#if 0</span>
<a name="l01860"></a>01860 <span class="preprocessor"></span>    mAccount-&gt;setResource( mImap.resourceCheck-&gt;isChecked() );
<a name="l01861"></a>01861 <span class="preprocessor">#endif</span>
<a name="l01862"></a>01862 <span class="preprocessor"></span>    mAccount-&gt;setCheckExclude( !mImap.includeInCheck-&gt;isChecked() );
<a name="l01863"></a>01863     mAccount-&gt;setFolder( kmkernel-&gt;imapFolderMgr()-&gt;findById(mAccount-&gt;id()) );
<a name="l01864"></a>01864 
<a name="l01865"></a>01865     initAccountForConnect();
<a name="l01866"></a>01866     KMAcctImap &amp;epa = *(KMAcctImap*)mAccount;
<a name="l01867"></a>01867     epa.setAutoExpunge( mImap.autoExpungeCheck-&gt;isChecked() );
<a name="l01868"></a>01868     epa.setHiddenFolders( mImap.hiddenFoldersCheck-&gt;isChecked() );
<a name="l01869"></a>01869     epa.setOnlySubscribedFolders( mImap.subscribedFoldersCheck-&gt;isChecked() );
<a name="l01870"></a>01870     epa.setOnlyLocallySubscribedFolders( mImap.locallySubscribedFoldersCheck-&gt;isChecked() );
<a name="l01871"></a>01871     epa.setLoadOnDemand( mImap.loadOnDemandCheck-&gt;isChecked() );
<a name="l01872"></a>01872     epa.setListOnlyOpenFolders( mImap.listOnlyOpenCheck-&gt;isChecked() );
<a name="l01873"></a>01873     <a class="code" href="classKMFolder.html" title="Mail folder.">KMFolder</a> *t = mImap.trashCombo-&gt;folder();
<a name="l01874"></a>01874     <span class="keywordflow">if</span> ( t )
<a name="l01875"></a>01875       epa.setTrash( mImap.trashCombo-&gt;folder()-&gt;idString() );
<a name="l01876"></a>01876     <span class="keywordflow">else</span>
<a name="l01877"></a>01877       epa.setTrash( kmkernel-&gt;trashFolder()-&gt;idString() );
<a name="l01878"></a>01878 <span class="preprocessor">#if 0</span>
<a name="l01879"></a>01879 <span class="preprocessor"></span>    epa.setResource( mImap.resourceCheck-&gt;isChecked() );
<a name="l01880"></a>01880 <span class="preprocessor">#endif</span>
<a name="l01881"></a>01881 <span class="preprocessor"></span>    epa.setCheckExclude( !mImap.includeInCheck-&gt;isChecked() );
<a name="l01882"></a>01882     <span class="keywordflow">if</span> ( mSieveConfigEditor )
<a name="l01883"></a>01883       epa.setSieveConfig( mSieveConfigEditor-&gt;config() );
<a name="l01884"></a>01884   }
<a name="l01885"></a>01885   <span class="keywordflow">else</span> <span class="keywordflow">if</span>( accountType == <span class="stringliteral">"cachedimap"</span> )
<a name="l01886"></a>01886   {
<a name="l01887"></a>01887     mAccount-&gt;setName( mImap.nameEdit-&gt;text() );
<a name="l01888"></a>01888     mAccount-&gt;setCheckInterval( mImap.intervalCheck-&gt;isChecked() ?
<a name="l01889"></a>01889                                 mImap.intervalSpin-&gt;value() : 0 );
<a name="l01890"></a>01890     mAccount-&gt;setIdentityId( mImap.identityCombo-&gt;currentIdentity() );
<a name="l01891"></a>01891 
<a name="l01892"></a>01892 <span class="preprocessor">#if 0</span>
<a name="l01893"></a>01893 <span class="preprocessor"></span>    mAccount-&gt;setResource( mImap.resourceCheck-&gt;isChecked() );
<a name="l01894"></a>01894 <span class="preprocessor">#endif</span>
<a name="l01895"></a>01895 <span class="preprocessor"></span>    mAccount-&gt;setCheckExclude( !mImap.includeInCheck-&gt;isChecked() );
<a name="l01896"></a>01896     <span class="comment">//mAccount-&gt;setFolder( NULL );</span>
<a name="l01897"></a>01897     mAccount-&gt;setFolder( kmkernel-&gt;dimapFolderMgr()-&gt;findById(mAccount-&gt;id()) );
<a name="l01898"></a>01898     <span class="comment">//kdDebug(5006) &lt;&lt; "account for folder " &lt;&lt; mAccount-&gt;folder()-&gt;name() &lt;&lt; endl;</span>
<a name="l01899"></a>01899 
<a name="l01900"></a>01900     initAccountForConnect();
<a name="l01901"></a>01901     KMAcctCachedImap &amp;epa = *(KMAcctCachedImap*)mAccount;
<a name="l01902"></a>01902     epa.setHiddenFolders( mImap.hiddenFoldersCheck-&gt;isChecked() );
<a name="l01903"></a>01903     epa.setOnlySubscribedFolders( mImap.subscribedFoldersCheck-&gt;isChecked() );
<a name="l01904"></a>01904     epa.setOnlyLocallySubscribedFolders( mImap.locallySubscribedFoldersCheck-&gt;isChecked() );
<a name="l01905"></a>01905     epa.setStorePasswd( mImap.storePasswordCheck-&gt;isChecked() );
<a name="l01906"></a>01906     epa.setPasswd( mImap.passwordEdit-&gt;text(), epa.storePasswd() );
<a name="l01907"></a>01907     <a class="code" href="classKMFolder.html" title="Mail folder.">KMFolder</a> *t = mImap.trashCombo-&gt;folder();
<a name="l01908"></a>01908     <span class="keywordflow">if</span> ( t )
<a name="l01909"></a>01909       epa.setTrash( mImap.trashCombo-&gt;folder()-&gt;idString() );
<a name="l01910"></a>01910     <span class="keywordflow">else</span>
<a name="l01911"></a>01911       epa.setTrash( kmkernel-&gt;trashFolder()-&gt;idString() );
<a name="l01912"></a>01912 <span class="preprocessor">#if 0</span>
<a name="l01913"></a>01913 <span class="preprocessor"></span>    epa.setResource( mImap.resourceCheck-&gt;isChecked() );
<a name="l01914"></a>01914 <span class="preprocessor">#endif</span>
<a name="l01915"></a>01915 <span class="preprocessor"></span>    epa.setCheckExclude( !mImap.includeInCheck-&gt;isChecked() );
<a name="l01916"></a>01916     <span class="keywordflow">if</span> ( mSieveConfigEditor )
<a name="l01917"></a>01917       epa.setSieveConfig( mSieveConfigEditor-&gt;config() );
<a name="l01918"></a>01918   }
<a name="l01919"></a>01919   <span class="keywordflow">else</span> <span class="keywordflow">if</span>( accountType == <span class="stringliteral">"maildir"</span> )
<a name="l01920"></a>01920   {
<a name="l01921"></a>01921     KMAcctMaildir *acctMaildir = <span class="keyword">dynamic_cast&lt;</span>KMAcctMaildir*<span class="keyword">&gt;</span>(mAccount);
<a name="l01922"></a>01922 
<a name="l01923"></a>01923     <span class="keywordflow">if</span> (acctMaildir) {
<a name="l01924"></a>01924         mAccount-&gt;setName( mMaildir.nameEdit-&gt;text() );
<a name="l01925"></a>01925         acctMaildir-&gt;setLocation( mMaildir.locationEdit-&gt;currentText() );
<a name="l01926"></a>01926 
<a name="l01927"></a>01927         <a class="code" href="classKMFolder.html" title="Mail folder.">KMFolder</a> *targetFolder = *mFolderList.at(mMaildir.folderCombo-&gt;currentItem());
<a name="l01928"></a>01928         <span class="keywordflow">if</span> ( targetFolder-&gt;<a class="code" href="classKMFolder.html#ee43a9e2a17f7286cb20d81ac2d3f033" title="Returns full path to folder file.">location</a>()  == acctMaildir-&gt;location() ) {
<a name="l01929"></a>01929             <span class="comment">/*</span>
<a name="l01930"></a>01930 <span class="comment">               Prevent data loss if the user sets the destination folder to be the same as the</span>
<a name="l01931"></a>01931 <span class="comment">               source account maildir folder by setting the target folder to the inbox.</span>
<a name="l01932"></a>01932 <span class="comment">               ### FIXME post 3.2: show dialog and let the user chose another target folder</span>
<a name="l01933"></a>01933 <span class="comment">            */</span>
<a name="l01934"></a>01934             targetFolder = kmkernel-&gt;inboxFolder();
<a name="l01935"></a>01935         }
<a name="l01936"></a>01936         mAccount-&gt;setFolder( targetFolder );
<a name="l01937"></a>01937     }
<a name="l01938"></a>01938     mAccount-&gt;setCheckInterval( mMaildir.intervalCheck-&gt;isChecked() ?
<a name="l01939"></a>01939                  mMaildir.intervalSpin-&gt;value() : 0 );
<a name="l01940"></a>01940 <span class="preprocessor">#if 0</span>
<a name="l01941"></a>01941 <span class="preprocessor"></span>    mAccount-&gt;setResource( mMaildir.resourceCheck-&gt;isChecked() );
<a name="l01942"></a>01942 <span class="preprocessor">#endif</span>
<a name="l01943"></a>01943 <span class="preprocessor"></span>    mAccount-&gt;setCheckExclude( !mMaildir.includeInCheck-&gt;isChecked() );
<a name="l01944"></a>01944 
<a name="l01945"></a>01945     mAccount-&gt;setPrecommand( mMaildir.precommand-&gt;text() );
<a name="l01946"></a>01946 
<a name="l01947"></a>01947     mAccount-&gt;setIdentityId( mMaildir.identityCombo-&gt;currentIdentity() );
<a name="l01948"></a>01948   }
<a name="l01949"></a>01949 
<a name="l01950"></a>01950   <span class="keywordflow">if</span> ( accountType == <span class="stringliteral">"imap"</span> || accountType == <span class="stringliteral">"cachedimap"</span> )
<a name="l01951"></a>01951   {
<a name="l01952"></a>01952     <span class="comment">// settings for imap in general</span>
<a name="l01953"></a>01953     ImapAccountBase &amp;ai = *(ImapAccountBase*)mAccount;
<a name="l01954"></a>01954     <span class="comment">// namespace</span>
<a name="l01955"></a>01955     ImapAccountBase::nsMap map;
<a name="l01956"></a>01956     ImapAccountBase::namespaceDelim delimMap;
<a name="l01957"></a>01957     ImapAccountBase::nsDelimMap::Iterator it;
<a name="l01958"></a>01958     ImapAccountBase::namespaceDelim::Iterator it2;
<a name="l01959"></a>01959     <span class="keywordflow">for</span> ( it = mImap.nsMap.begin(); it != mImap.nsMap.end(); ++it ) {
<a name="l01960"></a>01960       QStringList list;
<a name="l01961"></a>01961       <span class="keywordflow">for</span> ( it2 = it.data().begin(); it2 != it.data().end(); ++it2 ) {
<a name="l01962"></a>01962         list &lt;&lt; it2.key();
<a name="l01963"></a>01963         delimMap[it2.key()] = it2.data();
<a name="l01964"></a>01964       }
<a name="l01965"></a>01965       map[it.key()] = list;
<a name="l01966"></a>01966     }
<a name="l01967"></a>01967     ai.setNamespaces( map );
<a name="l01968"></a>01968     ai.setNamespaceToDelimiter( delimMap );
<a name="l01969"></a>01969   }
<a name="l01970"></a>01970 
<a name="l01971"></a>01971   kmkernel-&gt;acctMgr()-&gt;writeConfig( <span class="keyword">true</span> );
<a name="l01972"></a>01972   <span class="comment">// get the new account and register the new destination folder</span>
<a name="l01973"></a>01973   <span class="comment">// this is the target folder for local or pop accounts and the root folder</span>
<a name="l01974"></a>01974   <span class="comment">// of the account for (d)imap</span>
<a name="l01975"></a>01975   KMAccount* newAcct = kmkernel-&gt;acctMgr()-&gt;find(mAccount-&gt;id());
<a name="l01976"></a>01976   <span class="keywordflow">if</span> (newAcct)
<a name="l01977"></a>01977   {
<a name="l01978"></a>01978     <span class="keywordflow">if</span>( accountType == <span class="stringliteral">"local"</span> ) {
<a name="l01979"></a>01979       newAcct-&gt;setFolder( *mFolderList.at(mLocal.folderCombo-&gt;currentItem()), <span class="keyword">true</span> );
<a name="l01980"></a>01980     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( accountType == <span class="stringliteral">"pop"</span> ) {
<a name="l01981"></a>01981       newAcct-&gt;setFolder( *mFolderList.at(mPop.folderCombo-&gt;currentItem()), <span class="keyword">true</span> );
<a name="l01982"></a>01982     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( accountType == <span class="stringliteral">"maildir"</span> ) {
<a name="l01983"></a>01983       newAcct-&gt;setFolder( *mFolderList.at(mMaildir.folderCombo-&gt;currentItem()), <span class="keyword">true</span> );
<a name="l01984"></a>01984     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( accountType == <span class="stringliteral">"imap"</span> ) {
<a name="l01985"></a>01985       newAcct-&gt;setFolder( kmkernel-&gt;imapFolderMgr()-&gt;findById(mAccount-&gt;id()), <span class="keyword">true</span> );
<a name="l01986"></a>01986     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( accountType == <span class="stringliteral">"cachedimap"</span> ) {
<a name="l01987"></a>01987       newAcct-&gt;setFolder( kmkernel-&gt;dimapFolderMgr()-&gt;findById(mAccount-&gt;id()), <span class="keyword">true</span> );
<a name="l01988"></a>01988     }
<a name="l01989"></a>01989   }
<a name="l01990"></a>01990 }
<a name="l01991"></a>01991 
<a name="l01992"></a>01992 
<a name="l01993"></a>01993 <span class="keywordtype">void</span> AccountDialog::slotLocationChooser()
<a name="l01994"></a>01994 {
<a name="l01995"></a>01995   <span class="keyword">static</span> QString directory( <span class="stringliteral">"/"</span> );
<a name="l01996"></a>01996 
<a name="l01997"></a>01997   KFileDialog dialog( directory, QString::null, <span class="keyword">this</span>, 0, <span class="keyword">true</span> );
<a name="l01998"></a>01998   dialog.setCaption( i18n(<span class="stringliteral">"Choose Location"</span>) );
<a name="l01999"></a>01999 
<a name="l02000"></a>02000   <span class="keywordtype">bool</span> result = dialog.exec();
<a name="l02001"></a>02001   <span class="keywordflow">if</span>( result == <span class="keyword">false</span> )
<a name="l02002"></a>02002   {
<a name="l02003"></a>02003     <span class="keywordflow">return</span>;
<a name="l02004"></a>02004   }
<a name="l02005"></a>02005 
<a name="l02006"></a>02006   KURL url = dialog.selectedURL();
<a name="l02007"></a>02007   <span class="keywordflow">if</span>( url.isEmpty() )
<a name="l02008"></a>02008   {
<a name="l02009"></a>02009     <span class="keywordflow">return</span>;
<a name="l02010"></a>02010   }
<a name="l02011"></a>02011   <span class="keywordflow">if</span>( url.isLocalFile() == false )
<a name="l02012"></a>02012   {
<a name="l02013"></a>02013     KMessageBox::sorry( 0, i18n( <span class="stringliteral">"Only local files are currently supported."</span> ) );
<a name="l02014"></a>02014     <span class="keywordflow">return</span>;
<a name="l02015"></a>02015   }
<a name="l02016"></a>02016 
<a name="l02017"></a>02017   mLocal.locationEdit-&gt;setEditText( url.path() );
<a name="l02018"></a>02018   directory = url.directory();
<a name="l02019"></a>02019 }
<a name="l02020"></a>02020 
<a name="l02021"></a>02021 <span class="keywordtype">void</span> AccountDialog::slotMaildirChooser()
<a name="l02022"></a>02022 {
<a name="l02023"></a>02023   <span class="keyword">static</span> QString directory( <span class="stringliteral">"/"</span> );
<a name="l02024"></a>02024 
<a name="l02025"></a>02025   QString dir = KFileDialog::getExistingDirectory(directory, <span class="keyword">this</span>, i18n(<span class="stringliteral">"Choose Location"</span>));
<a name="l02026"></a>02026 
<a name="l02027"></a>02027   <span class="keywordflow">if</span>( dir.isEmpty() )
<a name="l02028"></a>02028     <span class="keywordflow">return</span>;
<a name="l02029"></a>02029 
<a name="l02030"></a>02030   mMaildir.locationEdit-&gt;setEditText( dir );
<a name="l02031"></a>02031   directory = dir;
<a name="l02032"></a>02032 }
<a name="l02033"></a>02033 
<a name="l02034"></a>02034 <span class="keywordtype">void</span> AccountDialog::slotEnableLeaveOnServerDays( <span class="keywordtype">bool</span> state )
<a name="l02035"></a>02035 {
<a name="l02036"></a>02036   <span class="keywordflow">if</span> ( state &amp;&amp; !mPop.leaveOnServerDaysCheck-&gt;isEnabled()) <span class="keywordflow">return</span>;
<a name="l02037"></a>02037   mPop.leaveOnServerDaysSpin-&gt;setEnabled( state );
<a name="l02038"></a>02038 }
<a name="l02039"></a>02039 
<a name="l02040"></a>02040 <span class="keywordtype">void</span> AccountDialog::slotEnableLeaveOnServerCount( <span class="keywordtype">bool</span> state )
<a name="l02041"></a>02041 {
<a name="l02042"></a>02042   <span class="keywordflow">if</span> ( state &amp;&amp; !mPop.leaveOnServerCountCheck-&gt;isEnabled()) <span class="keywordflow">return</span>;
<a name="l02043"></a>02043   mPop.leaveOnServerCountSpin-&gt;setEnabled( state );
<a name="l02044"></a>02044   <span class="keywordflow">return</span>;
<a name="l02045"></a>02045 }
<a name="l02046"></a>02046 
<a name="l02047"></a>02047 <span class="keywordtype">void</span> AccountDialog::slotEnableLeaveOnServerSize( <span class="keywordtype">bool</span> state )
<a name="l02048"></a>02048 {
<a name="l02049"></a>02049   <span class="keywordflow">if</span> ( state &amp;&amp; !mPop.leaveOnServerSizeCheck-&gt;isEnabled()) <span class="keywordflow">return</span>;
<a name="l02050"></a>02050   mPop.leaveOnServerSizeSpin-&gt;setEnabled( state );
<a name="l02051"></a>02051   <span class="keywordflow">return</span>;
<a name="l02052"></a>02052 }
<a name="l02053"></a>02053 
<a name="l02054"></a>02054 <span class="keywordtype">void</span> AccountDialog::slotEnablePopInterval( <span class="keywordtype">bool</span> state )
<a name="l02055"></a>02055 {
<a name="l02056"></a>02056   mPop.intervalSpin-&gt;setEnabled( state );
<a name="l02057"></a>02057   mPop.intervalLabel-&gt;setEnabled( state );
<a name="l02058"></a>02058 }
<a name="l02059"></a>02059 
<a name="l02060"></a>02060 <span class="keywordtype">void</span> AccountDialog::slotEnableImapInterval( <span class="keywordtype">bool</span> state )
<a name="l02061"></a>02061 {
<a name="l02062"></a>02062   mImap.intervalSpin-&gt;setEnabled( state );
<a name="l02063"></a>02063   mImap.intervalLabel-&gt;setEnabled( state );
<a name="l02064"></a>02064 }
<a name="l02065"></a>02065 
<a name="l02066"></a>02066 <span class="keywordtype">void</span> AccountDialog::slotEnableLocalInterval( <span class="keywordtype">bool</span> state )
<a name="l02067"></a>02067 {
<a name="l02068"></a>02068   mLocal.intervalSpin-&gt;setEnabled( state );
<a name="l02069"></a>02069   mLocal.intervalLabel-&gt;setEnabled( state );
<a name="l02070"></a>02070 }
<a name="l02071"></a>02071 
<a name="l02072"></a>02072 <span class="keywordtype">void</span> AccountDialog::slotEnableMaildirInterval( <span class="keywordtype">bool</span> state )
<a name="l02073"></a>02073 {
<a name="l02074"></a>02074   mMaildir.intervalSpin-&gt;setEnabled( state );
<a name="l02075"></a>02075   mMaildir.intervalLabel-&gt;setEnabled( state );
<a name="l02076"></a>02076 }
<a name="l02077"></a>02077 
<a name="l02078"></a>02078 <span class="keywordtype">void</span> AccountDialog::slotFontChanged( <span class="keywordtype">void</span> )
<a name="l02079"></a>02079 {
<a name="l02080"></a>02080   QString accountType = mAccount-&gt;type();
<a name="l02081"></a>02081   <span class="keywordflow">if</span>( accountType == <span class="stringliteral">"local"</span> )
<a name="l02082"></a>02082   {
<a name="l02083"></a>02083     QFont titleFont( mLocal.titleLabel-&gt;font() );
<a name="l02084"></a>02084     titleFont.setBold( <span class="keyword">true</span> );
<a name="l02085"></a>02085     mLocal.titleLabel-&gt;setFont(titleFont);
<a name="l02086"></a>02086   }
<a name="l02087"></a>02087   <span class="keywordflow">else</span> <span class="keywordflow">if</span>( accountType == <span class="stringliteral">"pop"</span> )
<a name="l02088"></a>02088   {
<a name="l02089"></a>02089     QFont titleFont( mPop.titleLabel-&gt;font() );
<a name="l02090"></a>02090     titleFont.setBold( <span class="keyword">true</span> );
<a name="l02091"></a>02091     mPop.titleLabel-&gt;setFont(titleFont);
<a name="l02092"></a>02092   }
<a name="l02093"></a>02093   <span class="keywordflow">else</span> <span class="keywordflow">if</span>( accountType == <span class="stringliteral">"imap"</span> )
<a name="l02094"></a>02094   {
<a name="l02095"></a>02095     QFont titleFont( mImap.titleLabel-&gt;font() );
<a name="l02096"></a>02096     titleFont.setBold( <span class="keyword">true</span> );
<a name="l02097"></a>02097     mImap.titleLabel-&gt;setFont(titleFont);
<a name="l02098"></a>02098   }
<a name="l02099"></a>02099 }
<a name="l02100"></a>02100 
<a name="l02101"></a>02101 <span class="preprocessor">#if 0</span>
<a name="l02102"></a>02102 <span class="preprocessor"></span><span class="keywordtype">void</span> AccountDialog::slotClearResourceAllocations()
<a name="l02103"></a>02103 {
<a name="l02104"></a>02104     mAccount-&gt;clearIntervals();
<a name="l02105"></a>02105 }
<a name="l02106"></a>02106 
<a name="l02107"></a>02107 
<a name="l02108"></a>02108 <span class="keywordtype">void</span> AccountDialog::slotClearPastResourceAllocations()
<a name="l02109"></a>02109 {
<a name="l02110"></a>02110     mAccount-&gt;clearOldIntervals();
<a name="l02111"></a>02111 }
<a name="l02112"></a>02112 <span class="preprocessor">#endif</span>
<a name="l02113"></a>02113 <span class="preprocessor"></span>
<a name="l02114"></a>02114 <span class="keywordtype">void</span> AccountDialog::slotReloadNamespaces()
<a name="l02115"></a>02115 {
<a name="l02116"></a>02116   <span class="keywordflow">if</span> ( mAccount-&gt;type() == <span class="stringliteral">"imap"</span> || mAccount-&gt;type() == <span class="stringliteral">"cachedimap"</span> )
<a name="l02117"></a>02117   {
<a name="l02118"></a>02118     initAccountForConnect();
<a name="l02119"></a>02119     mImap.personalNS-&gt;setText( i18n(<span class="stringliteral">"Fetching Namespaces..."</span>) );
<a name="l02120"></a>02120     mImap.otherUsersNS-&gt;setText( QString::null );
<a name="l02121"></a>02121     mImap.sharedNS-&gt;setText( QString::null );
<a name="l02122"></a>02122     ImapAccountBase* ai = <span class="keyword">static_cast&lt;</span>ImapAccountBase*<span class="keyword">&gt;</span>( mAccount );
<a name="l02123"></a>02123     connect( ai, SIGNAL( namespacesFetched( <span class="keyword">const</span> ImapAccountBase::nsDelimMap&amp; ) ),
<a name="l02124"></a>02124         <span class="keyword">this</span>, SLOT( slotSetupNamespaces( <span class="keyword">const</span> ImapAccountBase::nsDelimMap&amp; ) ) );
<a name="l02125"></a>02125     connect( ai, SIGNAL( connectionResult(<span class="keywordtype">int</span>, <span class="keyword">const</span> QString&amp;) ),
<a name="l02126"></a>02126           <span class="keyword">this</span>, SLOT( slotConnectionResult(<span class="keywordtype">int</span>, <span class="keyword">const</span> QString&amp;) ) );
<a name="l02127"></a>02127     ai-&gt;getNamespaces();
<a name="l02128"></a>02128   }
<a name="l02129"></a>02129 }
<a name="l02130"></a>02130 
<a name="l02131"></a>02131 <span class="keywordtype">void</span> AccountDialog::slotConnectionResult( <span class="keywordtype">int</span> errorCode, <span class="keyword">const</span> QString&amp; )
<a name="l02132"></a>02132 {
<a name="l02133"></a>02133   <span class="keywordflow">if</span> ( errorCode &gt; 0 ) {
<a name="l02134"></a>02134     ImapAccountBase* ai = <span class="keyword">static_cast&lt;</span>ImapAccountBase*<span class="keyword">&gt;</span>( mAccount );
<a name="l02135"></a>02135     disconnect( ai, SIGNAL( namespacesFetched( <span class="keyword">const</span> ImapAccountBase::nsDelimMap&amp; ) ),
<a name="l02136"></a>02136         <span class="keyword">this</span>, SLOT( slotSetupNamespaces( <span class="keyword">const</span> ImapAccountBase::nsDelimMap&amp; ) ) );
<a name="l02137"></a>02137     disconnect( ai, SIGNAL( connectionResult(<span class="keywordtype">int</span>, <span class="keyword">const</span> QString&amp;) ),
<a name="l02138"></a>02138           <span class="keyword">this</span>, SLOT( slotConnectionResult(<span class="keywordtype">int</span>, <span class="keyword">const</span> QString&amp;) ) );
<a name="l02139"></a>02139     mImap.personalNS-&gt;setText( QString::null );
<a name="l02140"></a>02140   }
<a name="l02141"></a>02141 }
<a name="l02142"></a>02142 
<a name="l02143"></a>02143 <span class="keywordtype">void</span> AccountDialog::slotSetupNamespaces( <span class="keyword">const</span> ImapAccountBase::nsDelimMap&amp; map )
<a name="l02144"></a>02144 {
<a name="l02145"></a>02145   disconnect( <span class="keyword">this</span>, SLOT( slotSetupNamespaces( <span class="keyword">const</span> ImapAccountBase::nsDelimMap&amp; ) ) );
<a name="l02146"></a>02146   mImap.personalNS-&gt;setText( QString::null );
<a name="l02147"></a>02147   mImap.otherUsersNS-&gt;setText( QString::null );
<a name="l02148"></a>02148   mImap.sharedNS-&gt;setText( QString::null );
<a name="l02149"></a>02149   mImap.nsMap = map;
<a name="l02150"></a>02150 
<a name="l02151"></a>02151   ImapAccountBase::namespaceDelim ns = map[ImapAccountBase::PersonalNS];
<a name="l02152"></a>02152   ImapAccountBase::namespaceDelim::ConstIterator it;
<a name="l02153"></a>02153   <span class="keywordflow">if</span> ( !ns.isEmpty() ) {
<a name="l02154"></a>02154     mImap.personalNS-&gt;setText( namespaceListToString( ns.keys() ) );
<a name="l02155"></a>02155     mImap.editPNS-&gt;setEnabled( <span class="keyword">true</span> );
<a name="l02156"></a>02156   } <span class="keywordflow">else</span> {
<a name="l02157"></a>02157     mImap.editPNS-&gt;setEnabled( <span class="keyword">false</span> );
<a name="l02158"></a>02158   }
<a name="l02159"></a>02159   ns = map[ImapAccountBase::OtherUsersNS];
<a name="l02160"></a>02160   <span class="keywordflow">if</span> ( !ns.isEmpty() ) {
<a name="l02161"></a>02161     mImap.otherUsersNS-&gt;setText( namespaceListToString( ns.keys() ) );
<a name="l02162"></a>02162     mImap.editONS-&gt;setEnabled( <span class="keyword">true</span> );
<a name="l02163"></a>02163   } <span class="keywordflow">else</span> {
<a name="l02164"></a>02164     mImap.editONS-&gt;setEnabled( <span class="keyword">false</span> );
<a name="l02165"></a>02165   }
<a name="l02166"></a>02166   ns = map[ImapAccountBase::SharedNS];
<a name="l02167"></a>02167   <span class="keywordflow">if</span> ( !ns.isEmpty() ) {
<a name="l02168"></a>02168     mImap.sharedNS-&gt;setText( namespaceListToString( ns.keys() ) );
<a name="l02169"></a>02169     mImap.editSNS-&gt;setEnabled( <span class="keyword">true</span> );
<a name="l02170"></a>02170   } <span class="keywordflow">else</span> {
<a name="l02171"></a>02171     mImap.editSNS-&gt;setEnabled( <span class="keyword">false</span> );
<a name="l02172"></a>02172   }
<a name="l02173"></a>02173 }
<a name="l02174"></a>02174 
<a name="l02175"></a>02175 <span class="keyword">const</span> QString AccountDialog::namespaceListToString( <span class="keyword">const</span> QStringList&amp; list )
<a name="l02176"></a>02176 {
<a name="l02177"></a>02177   QStringList myList = list;
<a name="l02178"></a>02178   <span class="keywordflow">for</span> ( QStringList::Iterator it = myList.begin(); it != myList.end(); ++it ) {
<a name="l02179"></a>02179     <span class="keywordflow">if</span> ( (*it).isEmpty() ) {
<a name="l02180"></a>02180       (*it) = <span class="stringliteral">"&lt;"</span> + i18n(<span class="stringliteral">"Empty"</span>) + <span class="stringliteral">"&gt;"</span>;
<a name="l02181"></a>02181     }
<a name="l02182"></a>02182   }
<a name="l02183"></a>02183   <span class="keywordflow">return</span> myList.join(<span class="stringliteral">","</span>);
<a name="l02184"></a>02184 }
<a name="l02185"></a>02185 
<a name="l02186"></a>02186 <span class="keywordtype">void</span> AccountDialog::initAccountForConnect()
<a name="l02187"></a>02187 {
<a name="l02188"></a>02188   QString type = mAccount-&gt;type();
<a name="l02189"></a>02189   <span class="keywordflow">if</span> ( type == <span class="stringliteral">"local"</span> )
<a name="l02190"></a>02190     <span class="keywordflow">return</span>;
<a name="l02191"></a>02191 
<a name="l02192"></a>02192   NetworkAccount &amp;na = *(NetworkAccount*)mAccount;
<a name="l02193"></a>02193 
<a name="l02194"></a>02194   <span class="keywordflow">if</span> ( type == <span class="stringliteral">"pop"</span> ) {
<a name="l02195"></a>02195     na.setHost( mPop.hostEdit-&gt;text().stripWhiteSpace() );
<a name="l02196"></a>02196     na.setPort( mPop.portEdit-&gt;text().toInt() );
<a name="l02197"></a>02197     na.setLogin( mPop.loginEdit-&gt;text().stripWhiteSpace() );
<a name="l02198"></a>02198     na.setStorePasswd( mPop.storePasswordCheck-&gt;isChecked() );
<a name="l02199"></a>02199     na.setPasswd( mPop.passwordEdit-&gt;text(), na.storePasswd() );
<a name="l02200"></a>02200     na.setUseSSL( mPop.encryptionSSL-&gt;isChecked() );
<a name="l02201"></a>02201     na.setUseTLS( mPop.encryptionTLS-&gt;isChecked() );
<a name="l02202"></a>02202     <span class="keywordflow">if</span> (mPop.authUser-&gt;isChecked())
<a name="l02203"></a>02203       na.setAuth(<span class="stringliteral">"USER"</span>);
<a name="l02204"></a>02204     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (mPop.authLogin-&gt;isChecked())
<a name="l02205"></a>02205       na.setAuth(<span class="stringliteral">"LOGIN"</span>);
<a name="l02206"></a>02206     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (mPop.authPlain-&gt;isChecked())
<a name="l02207"></a>02207       na.setAuth(<span class="stringliteral">"PLAIN"</span>);
<a name="l02208"></a>02208     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (mPop.authCRAM_MD5-&gt;isChecked())
<a name="l02209"></a>02209       na.setAuth(<span class="stringliteral">"CRAM-MD5"</span>);
<a name="l02210"></a>02210     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (mPop.authDigestMd5-&gt;isChecked())
<a name="l02211"></a>02211       na.setAuth(<span class="stringliteral">"DIGEST-MD5"</span>);
<a name="l02212"></a>02212     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (mPop.authNTLM-&gt;isChecked())
<a name="l02213"></a>02213       na.setAuth(<span class="stringliteral">"NTLM"</span>);
<a name="l02214"></a>02214     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (mPop.authGSSAPI-&gt;isChecked())
<a name="l02215"></a>02215       na.setAuth(<span class="stringliteral">"GSSAPI"</span>);
<a name="l02216"></a>02216     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (mPop.authAPOP-&gt;isChecked())
<a name="l02217"></a>02217       na.setAuth(<span class="stringliteral">"APOP"</span>);
<a name="l02218"></a>02218     <span class="keywordflow">else</span> na.setAuth(<span class="stringliteral">"AUTO"</span>);
<a name="l02219"></a>02219   }
<a name="l02220"></a>02220   <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( type == <span class="stringliteral">"imap"</span> || type == <span class="stringliteral">"cachedimap"</span> ) {
<a name="l02221"></a>02221     na.setHost( mImap.hostEdit-&gt;text().stripWhiteSpace() );
<a name="l02222"></a>02222     na.setPort( mImap.portEdit-&gt;text().toInt() );
<a name="l02223"></a>02223     na.setLogin( mImap.loginEdit-&gt;text().stripWhiteSpace() );
<a name="l02224"></a>02224     na.setStorePasswd( mImap.storePasswordCheck-&gt;isChecked() );
<a name="l02225"></a>02225     na.setPasswd( mImap.passwordEdit-&gt;text(), na.storePasswd() );
<a name="l02226"></a>02226     na.setUseSSL( mImap.encryptionSSL-&gt;isChecked() );
<a name="l02227"></a>02227     na.setUseTLS( mImap.encryptionTLS-&gt;isChecked() );
<a name="l02228"></a>02228     <span class="keywordflow">if</span> (mImap.authCramMd5-&gt;isChecked())
<a name="l02229"></a>02229       na.setAuth(<span class="stringliteral">"CRAM-MD5"</span>);
<a name="l02230"></a>02230     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (mImap.authDigestMd5-&gt;isChecked())
<a name="l02231"></a>02231       na.setAuth(<span class="stringliteral">"DIGEST-MD5"</span>);
<a name="l02232"></a>02232     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (mImap.authNTLM-&gt;isChecked())
<a name="l02233"></a>02233       na.setAuth(<span class="stringliteral">"NTLM"</span>);
<a name="l02234"></a>02234     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (mImap.authGSSAPI-&gt;isChecked())
<a name="l02235"></a>02235       na.setAuth(<span class="stringliteral">"GSSAPI"</span>);
<a name="l02236"></a>02236     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (mImap.authAnonymous-&gt;isChecked())
<a name="l02237"></a>02237       na.setAuth(<span class="stringliteral">"ANONYMOUS"</span>);
<a name="l02238"></a>02238     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (mImap.authLogin-&gt;isChecked())
<a name="l02239"></a>02239       na.setAuth(<span class="stringliteral">"LOGIN"</span>);
<a name="l02240"></a>02240     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (mImap.authPlain-&gt;isChecked())
<a name="l02241"></a>02241       na.setAuth(<span class="stringliteral">"PLAIN"</span>);
<a name="l02242"></a>02242     <span class="keywordflow">else</span> na.setAuth(<span class="stringliteral">"*"</span>);
<a name="l02243"></a>02243   }
<a name="l02244"></a>02244 }
<a name="l02245"></a>02245 
<a name="l02246"></a>02246 <span class="keywordtype">void</span> AccountDialog::slotEditPersonalNamespace()
<a name="l02247"></a>02247 {
<a name="l02248"></a>02248   NamespaceEditDialog dialog( <span class="keyword">this</span>, ImapAccountBase::PersonalNS, &amp;mImap.nsMap );
<a name="l02249"></a>02249   <span class="keywordflow">if</span> ( dialog.exec() == QDialog::Accepted ) {
<a name="l02250"></a>02250     slotSetupNamespaces( mImap.nsMap );
<a name="l02251"></a>02251   }
<a name="l02252"></a>02252 }
<a name="l02253"></a>02253 
<a name="l02254"></a>02254 <span class="keywordtype">void</span> AccountDialog::slotEditOtherUsersNamespace()
<a name="l02255"></a>02255 {
<a name="l02256"></a>02256   NamespaceEditDialog dialog( <span class="keyword">this</span>, ImapAccountBase::OtherUsersNS, &amp;mImap.nsMap );
<a name="l02257"></a>02257   <span class="keywordflow">if</span> ( dialog.exec() == QDialog::Accepted ) {
<a name="l02258"></a>02258     slotSetupNamespaces( mImap.nsMap );
<a name="l02259"></a>02259   }
<a name="l02260"></a>02260 }
<a name="l02261"></a>02261 
<a name="l02262"></a>02262 <span class="keywordtype">void</span> AccountDialog::slotEditSharedNamespace()
<a name="l02263"></a>02263 {
<a name="l02264"></a>02264   NamespaceEditDialog dialog( <span class="keyword">this</span>, ImapAccountBase::SharedNS, &amp;mImap.nsMap );
<a name="l02265"></a>02265   <span class="keywordflow">if</span> ( dialog.exec() == QDialog::Accepted ) {
<a name="l02266"></a>02266     slotSetupNamespaces( mImap.nsMap );
<a name="l02267"></a>02267   }
<a name="l02268"></a>02268 }
<a name="l02269"></a>02269 
<a name="l02270"></a>02270 NamespaceLineEdit::NamespaceLineEdit( QWidget* parent )
<a name="l02271"></a>02271   : KLineEdit( parent )
<a name="l02272"></a>02272 {
<a name="l02273"></a>02273 }
<a name="l02274"></a>02274 
<a name="l02275"></a>02275 <span class="keywordtype">void</span> NamespaceLineEdit::setText( <span class="keyword">const</span> QString&amp; text )
<a name="l02276"></a>02276 {
<a name="l02277"></a>02277   mLastText = text;
<a name="l02278"></a>02278   KLineEdit::setText( text );
<a name="l02279"></a>02279 }
<a name="l02280"></a>02280 
<a name="l02281"></a>02281 NamespaceEditDialog::NamespaceEditDialog( QWidget *parent,
<a name="l02282"></a>02282     ImapAccountBase::imapNamespace type, ImapAccountBase::nsDelimMap* map )
<a name="l02283"></a>02283   : KDialogBase( parent, <span class="stringliteral">"edit_namespace"</span>, false, QString::null,
<a name="l02284"></a>02284       Ok|Cancel, Ok, true ), mType( type ), mNamespaceMap( map )
<a name="l02285"></a>02285 {
<a name="l02286"></a>02286   QVBox *page = makeVBoxMainWidget();
<a name="l02287"></a>02287 
<a name="l02288"></a>02288   QString ns;
<a name="l02289"></a>02289   <span class="keywordflow">if</span> ( mType == ImapAccountBase::PersonalNS ) {
<a name="l02290"></a>02290     ns = i18n(<span class="stringliteral">"Personal"</span>);
<a name="l02291"></a>02291   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( mType == ImapAccountBase::OtherUsersNS ) {
<a name="l02292"></a>02292     ns = i18n(<span class="stringliteral">"Other Users"</span>);
<a name="l02293"></a>02293   } <span class="keywordflow">else</span> {
<a name="l02294"></a>02294     ns = i18n(<span class="stringliteral">"Shared"</span>);
<a name="l02295"></a>02295   }
<a name="l02296"></a>02296   setCaption( i18n(<span class="stringliteral">"Edit Namespace '%1'"</span>).arg(ns) );
<a name="l02297"></a>02297   QGrid* grid = <span class="keyword">new</span> QGrid( 2, page );
<a name="l02298"></a>02298 
<a name="l02299"></a>02299   mBg = <span class="keyword">new</span> QButtonGroup( 0 );
<a name="l02300"></a>02300   connect( mBg, SIGNAL( clicked(<span class="keywordtype">int</span>) ), <span class="keyword">this</span>, SLOT( slotRemoveEntry(<span class="keywordtype">int</span>) ) );
<a name="l02301"></a>02301   mDelimMap = mNamespaceMap-&gt;find( mType ).data();
<a name="l02302"></a>02302   ImapAccountBase::namespaceDelim::Iterator it;
<a name="l02303"></a>02303   <span class="keywordflow">for</span> ( it = mDelimMap.begin(); it != mDelimMap.end(); ++it ) {
<a name="l02304"></a>02304     NamespaceLineEdit* edit = <span class="keyword">new</span> NamespaceLineEdit( grid );
<a name="l02305"></a>02305     edit-&gt;setText( it.key() );
<a name="l02306"></a>02306     QToolButton* button = <span class="keyword">new</span> QToolButton( grid );
<a name="l02307"></a>02307     button-&gt;setIconSet(
<a name="l02308"></a>02308       KGlobal::iconLoader()-&gt;loadIconSet( <span class="stringliteral">"editdelete"</span>, KIcon::Small, 0 ) );
<a name="l02309"></a>02309     button-&gt;setAutoRaise( <span class="keyword">true</span> );
<a name="l02310"></a>02310     button-&gt;setSizePolicy( QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ) );
<a name="l02311"></a>02311     button-&gt;setFixedSize( 22, 22 );
<a name="l02312"></a>02312     mLineEditMap[ mBg-&gt;insert( button ) ] = edit;
<a name="l02313"></a>02313   }
<a name="l02314"></a>02314 }
<a name="l02315"></a>02315 
<a name="l02316"></a>02316 <span class="keywordtype">void</span> NamespaceEditDialog::slotRemoveEntry( <span class="keywordtype">int</span> <span class="keywordtype">id</span> )
<a name="l02317"></a>02317 {
<a name="l02318"></a>02318   <span class="keywordflow">if</span> ( mLineEditMap.contains( <span class="keywordtype">id</span> ) ) {
<a name="l02319"></a>02319     <span class="comment">// delete the lineedit and remove namespace from map</span>
<a name="l02320"></a>02320     NamespaceLineEdit* edit = mLineEditMap[id];
<a name="l02321"></a>02321     mDelimMap.remove( edit-&gt;text() );
<a name="l02322"></a>02322     <span class="keywordflow">if</span> ( edit-&gt;isModified() ) {
<a name="l02323"></a>02323       mDelimMap.remove( edit-&gt;lastText() );
<a name="l02324"></a>02324     }
<a name="l02325"></a>02325     mLineEditMap.remove( <span class="keywordtype">id</span> );
<a name="l02326"></a>02326     <span class="keyword">delete</span> edit;
<a name="l02327"></a>02327   }
<a name="l02328"></a>02328   <span class="keywordflow">if</span> ( mBg-&gt;find( <span class="keywordtype">id</span> ) ) {
<a name="l02329"></a>02329     <span class="comment">// delete the button</span>
<a name="l02330"></a>02330     <span class="keyword">delete</span> mBg-&gt;find( <span class="keywordtype">id</span> );
<a name="l02331"></a>02331   }
<a name="l02332"></a>02332   adjustSize();
<a name="l02333"></a>02333 }
<a name="l02334"></a>02334 
<a name="l02335"></a>02335 <span class="keywordtype">void</span> NamespaceEditDialog::slotOk()
<a name="l02336"></a>02336 {
<a name="l02337"></a>02337   QMap&lt;int, NamespaceLineEdit*&gt;::Iterator it;
<a name="l02338"></a>02338   <span class="keywordflow">for</span> ( it = mLineEditMap.begin(); it != mLineEditMap.end(); ++it ) {
<a name="l02339"></a>02339     NamespaceLineEdit* edit = it.data();
<a name="l02340"></a>02340     <span class="keywordflow">if</span> ( edit-&gt;isModified() ) {
<a name="l02341"></a>02341       <span class="comment">// register delimiter for new namespace</span>
<a name="l02342"></a>02342       mDelimMap[edit-&gt;text()] = mDelimMap[edit-&gt;lastText()];
<a name="l02343"></a>02343       mDelimMap.remove( edit-&gt;lastText() );
<a name="l02344"></a>02344     }
<a name="l02345"></a>02345   }
<a name="l02346"></a>02346   mNamespaceMap-&gt;replace( mType, mDelimMap );
<a name="l02347"></a>02347   KDialogBase::slotOk();
<a name="l02348"></a>02348 }
<a name="l02349"></a>02349 
<a name="l02350"></a>02350 } <span class="comment">// namespace KMail</span>
<a name="l02351"></a>02351 
<a name="l02352"></a>02352 <span class="preprocessor">#include "accountdialog.moc"</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>kmail</h2>
<div class="nav_list">
<ul><li><a href="index.html">Main Page</a></li><li><a href="namespaces.html">Namespace List</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="namespacemembers.html">Namespace Members</a></li><li><a href="functions.html">Class Members</a></li><li><a href="pages.html">Related Pages</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="classAccountUpdater.html">accountupdater</option>,  <option value="classAttachmentModifyCommand.html">attachmentmodifycommand</option>,  <option value="classFolderStorage.html">folderstorage</option>,  <option value="classKCursorSaver.html">kcursorsaver</option>,  <option value="classKleo_1_1KeyResolver.html">kleo::keyresolver</option>,  <option value="classKListViewIndexedSearchLine.html">klistviewindexedsearchline</option>,  <option value="classKMAcctFolder.html">kmacctfolder</option>,  <option value="classKMAcctSelDlg.html">kmacctseldlg</option>,  <option value="classKMail_1_1AccountComboBox.html">kmail::accountcombobox</option>,  <option value="classKMail_1_1AccountManager.html">kmail::accountmanager</option>,  <option value="classKMail_1_1ACLEntryDialog.html">kmail::aclentrydialog</option>,  <option value="classKMail_1_1ACLJobs_1_1DeleteACLJob.html">kmail::acljobs::deleteacljob</option>,  <option value="classKMail_1_1ACLJobs_1_1GetACLJob.html">kmail::acljobs::getacljob</option>,  <option value="classKMail_1_1ACLJobs_1_1GetUserRightsJob.html">kmail::acljobs::getuserrightsjob</option>,  <option value="classKMail_1_1ACLJobs_1_1MultiSetACLJob.html">kmail::acljobs::multisetacljob</option>,  <option value="classKMail_1_1AnnotationJobs_1_1GetAnnotationJob.html">kmail::annotationjobs::getannotationjob</option>,  <option value="classKMail_1_1AnnotationJobs_1_1MultiGetAnnotationJob.html">kmail::annotationjobs::multigetannotationjob</option>,  <option value="classKMail_1_1AnnotationJobs_1_1MultiSetAnnotationJob.html">kmail::annotationjobs::multisetannotationjob</option>,  <option value="classKMail_1_1AnnotationJobs_1_1MultiUrlGetAnnotationJob.html">kmail::annotationjobs::multiurlgetannotationjob</option>,  <option value="classKMail_1_1AntiSpamConfig.html">kmail::antispamconfig</option>,  <option value="classKMail_1_1AntiSpamWizard.html">kmail::antispamwizard</option>,  <option value="classKMail_1_1AntiSpamWizard_1_1ConfigReader.html">kmail::antispamwizard::configreader</option>,  <option value="classKMail_1_1AntiSpamWizard_1_1SpamToolConfig.html">kmail::antispamwizard::spamtoolconfig</option>,  <option value="classKMail_1_1Callback.html">kmail::callback</option>,  <option value="classKMail_1_1CopyFolderJob.html">kmail::copyfolderjob</option>,  <option value="classKMail_1_1DictionaryComboBox.html">kmail::dictionarycombobox</option>,  <option value="classKMail_1_1EditorWatcher.html">kmail::editorwatcher</option>,  <option value="classKMail_1_1FilterImporterExporter.html">kmail::filterimporterexporter</option>,  <option value="classKMail_1_1FilterLog.html">kmail::filterlog</option>,  <option value="classKMail_1_1FilterLogDialog.html">kmail::filterlogdialog</option>,  <option value="classKMail_1_1FolderDiaACLTab.html">kmail::folderdiaacltab</option>,  <option value="classKMail_1_1FolderDiaGeneralTab.html">kmail::folderdiageneraltab</option>,  <option value="classKMail_1_1FolderDiaQuotaTab.html">kmail::folderdiaquotatab</option>,  <option value="classKMail_1_1FolderDiaTab.html">kmail::folderdiatab</option>,  <option value="classKMail_1_1FolderDiaTemplatesTab.html">kmail::folderdiatemplatestab</option>,  <option value="classKMail_1_1FolderRequester.html">kmail::folderrequester</option>,  <option value="classKMail_1_1HeaderItem.html">kmail::headeritem</option>,  <option value="classKMail_1_1HeaderStyle.html">kmail::headerstyle</option>,  <option value="classKMail_1_1HtmlStatusBar.html">kmail::htmlstatusbar</option>,  <option value="classKMail_1_1HtmlWriter.html">kmail::htmlwriter</option>,  <option value="classKMail_1_1IdentityDrag.html">kmail::identitydrag</option>,  <option value="classKMail_1_1IdentityListView.html">kmail::identitylistview</option>,  <option value="classKMail_1_1IdentityListViewItem.html">kmail::identitylistviewitem</option>,  <option value="classKMail_1_1Interface_1_1BodyPart.html">kmail::interface::bodypart</option>,  <option value="classKMail_1_1Interface_1_1BodyPartFormatterPlugin.html">kmail::interface::bodypartformatterplugin</option>,  <option value="classKMail_1_1Interface_1_1BodyPartMemento.html">kmail::interface::bodypartmemento</option>,  <option value="classKMail_1_1Interface_1_1BodyPartURLHandler.html">kmail::interface::bodyparturlhandler</option>,  <option value="classKMail_1_1Interface_1_1Observable.html">kmail::interface::observable</option>,  <option value="classKMail_1_1Interface_1_1Observer.html">kmail::interface::observer</option>,  <option value="classKMail_1_1JobScheduler.html">kmail::jobscheduler</option>,  <option value="classKMail_1_1ListJob.html">kmail::listjob</option>,  <option value="classKMail_1_1MaildirCompactionJob.html">kmail::maildircompactionjob</option>,  <option value="classKMail_1_1MailingList.html">kmail::mailinglist</option>,  <option value="classKMail_1_1MboxCompactionJob.html">kmail::mboxcompactionjob</option>,  <option value="classKMail_1_1MessageActions.html">kmail::messageactions</option>,  <option value="classKMail_1_1MessageCopyHelper.html">kmail::messagecopyhelper</option>,  <option value="classKMail_1_1PartNodeBodyPart.html">kmail::partnodebodypart</option>,  <option value="classKMail_1_1PopAccount.html">kmail::popaccount</option>,  <option value="classKMail_1_1QuotaJobs_1_1GetQuotarootJob.html">kmail::quotajobs::getquotarootjob</option>,  <option value="classKMail_1_1QuotaJobs_1_1GetStorageQuotaJob.html">kmail::quotajobs::getstoragequotajob</option>,  <option value="classKMail_1_1RedirectDialog.html">kmail::redirectdialog</option>,  <option value="classKMail_1_1RenameJob.html">kmail::renamejob</option>,  <option value="classKMail_1_1RuleWidgetHandler.html">kmail::rulewidgethandler</option>,  <option value="classKMail_1_1RuleWidgetHandlerManager.html">kmail::rulewidgethandlermanager</option>,  <option value="classKMail_1_1ScheduledCompactionTask.html">kmail::scheduledcompactiontask</option>,  <option value="classKMail_1_1ScheduledExpireTask.html">kmail::scheduledexpiretask</option>,  <option value="classKMail_1_1ScheduledJob.html">kmail::scheduledjob</option>,  <option value="classKMail_1_1ScheduledTask.html">kmail::scheduledtask</option>,  <option value="classKMail_1_1SearchJob.html">kmail::searchjob</option>,  <option value="classKMail_1_1SearchWindow.html">kmail::searchwindow</option>,  <option value="classKMail_1_1SecondaryWindow.html">kmail::secondarywindow</option>,  <option value="classKMail_1_1SieveDebugDialog.html">kmail::sievedebugdialog</option>,  <option value="classKMail_1_1SortCacheItem.html">kmail::sortcacheitem</option>,  <option value="classKMail_1_1SpamHeaderAnalyzer.html">kmail::spamheaderanalyzer</option>,  <option value="classKMail_1_1SpamScore.html">kmail::spamscore</option>,  <option value="classKMail_1_1TeeHtmlWriter.html">kmail::teehtmlwriter</option>,  <option value="classKMail_1_1TransportManager.html">kmail::transportmanager</option>,  <option value="classKMail_1_1UndoInfo.html">kmail::undoinfo</option>,  <option value="classKMail_1_1URLHandler.html">kmail::urlhandler</option>,  <option value="classKMail_1_1URLHandlerManager.html">kmail::urlhandlermanager</option>,  <option value="classKMail_1_1Util_1_1LaterDeleter.html">kmail::util::laterdeleter</option>,  <option value="classKMailICalIfaceImpl.html">kmailicalifaceimpl</option>,  <option value="classKMailIface.html">kmailiface</option>,  <option value="classKMDict.html">kmdict</option>,  <option value="classKMDictItem.html">kmdictitem</option>,  <option value="classKMFilterAction.html">kmfilteraction</option>,  <option value="classKMFilterActionDict.html">kmfilteractiondict</option>,  <option value="classKMFilterActionWidget.html">kmfilteractionwidget</option>,  <option value="classKMFilterActionWithAddress.html">kmfilteractionwithaddress</option>,  <option value="classKMFilterActionWithFolder.html">kmfilteractionwithfolder</option>,  <option value="classKMFilterActionWithNone.html">kmfilteractionwithnone</option>,  <option value="classKMFilterActionWithString.html">kmfilteractionwithstring</option>,  <option value="classKMFilterActionWithStringList.html">kmfilteractionwithstringlist</option>,  <option value="classKMFilterActionWithUOID.html">kmfilteractionwithuoid</option>,  <option value="classKMFilterActionWithUrl.html">kmfilteractionwithurl</option>,  <option value="classKMFilterDlg.html">kmfilterdlg</option>,  <option value="classKMFilterListBox.html">kmfilterlistbox</option>,  <option value="classKMFolder.html">kmfolder</option>,  <option value="classKMFolderDialog.html">kmfolderdialog</option>,  <option value="classKMFolderDir.html">kmfolderdir</option>,  <option value="classKMFolderIndex.html">kmfolderindex</option>,  <option value="classKMFolderOpener.html">kmfolderopener</option>,  <option value="classKMHeaders.html">kmheaders</option>,  <option value="classKMKernel.html">kmkernel</option>,  <option value="classKMMenuCommand.html">kmmenucommand</option>,  <option value="classKMMessage.html">kmmessage</option>,  <option value="classKMMsgDict.html">kmmsgdict</option>,  <option value="classKMMsgList.html">kmmsglist</option>,  <option value="classKMMsgPartDialog.html">kmmsgpartdialog</option>,  <option value="classKMMsgPartDialogCompat.html">kmmsgpartdialogcompat</option>,  <option value="classKMPopHeadersView.html">kmpopheadersview</option>,  <option value="classKMReaderWin.html">kmreaderwin</option>,  <option value="classKMSearchPattern.html">kmsearchpattern</option>,  <option value="classKMSearchPatternEdit.html">kmsearchpatternedit</option>,  <option value="classKMSearchRule.html">kmsearchrule</option>,  <option value="classKMSearchRuleNumerical.html">kmsearchrulenumerical</option>,  <option value="classKMSearchRuleStatus.html">kmsearchrulestatus</option>,  <option value="classKMSearchRuleString.html">kmsearchrulestring</option>,  <option value="classKMSearchRuleWidget.html">kmsearchrulewidget</option>,  <option value="classKMSystemTray.html">kmsystemtray</option>,  <option value="classMailComposerIface.html">mailcomposeriface</option>,  <option value="classScalix_1_1FolderAttributeParser.html">scalix::folderattributeparser</option>,  <option value="classSnippetConfig.html">snippetconfig</option>,  <option value="classSnippetGroup.html">snippetgroup</option>,  <option value="classSnippetItem.html">snippetitem</option>,  <option value="classSnippetSettings.html">snippetsettings</option>,  <option value="classSnippetWidget.html">snippetwidget</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>