Sophie

Sophie

distrib > Mandriva > 2006.0 > x86_64 > by-pkgid > d0c58635c3fcc548e9b6ce88c8980028 > files > 659

lib64kdebase4-devel-3.4.2-55.5.20060mdk.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
  <title>kate Library: katefilelist.cpp Source File (kate Library)</title>
  <link href="../../common/doxygen.css" rel="stylesheet" type="text/css">
</head>
<div class="header">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td rowspan="2" width="92">
<a href="../../index.html" title="The API documentation main page"><img src="../../common/docheadergears.png" style="border:0px;" alt=""></a>
</td>
<td width="95%">
<h1>kate Library API Documentation</h1>
</td>
</tr>
<tr>
<td valign="bottom">
<table class="links" border=0 cellspacing=0>
<tr>
<td><a href="index.html">Overview</a></td>
<td><a href="hierarchy.html" title="Inheritance list, sorted roughly  alphabetically">Class&nbsp;Hierarchy</a></td>
<td><a href="classes.html" title="Alphabetical list of classes">Classes</a></td>
<td><a href="annotated.html" title="Classes, structs, unions and interfaces with brief descriptions">Classes&nbsp;(annotated)</a></td>
<td><a href="functions.html" title="Documented class members with links to the classes they belong to">Members</a></td>
<td><a href="namespaces.html" title="All documented namespaces with brief descriptions">Namespaces</a></td>
<td><a href="files.html" title="A list of all documented files with brief descriptions">Source&nbsp;Files</a></td>
</tr>
</table>
</td></tr></table>
</div>
<div id="hgrad"></div>
<div class="text">
<!-- Generated by Doxygen 1.4.4 -->
<div class="nav">
<a class="el" href="dir_000002.html">app</a></div>
<h1>katefilelist.cpp</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* This file is part of the KDE project</span>
<a name="l00002"></a>00002 <span class="comment">   Copyright (C) 2001 Christoph Cullmann &lt;cullmann@kde.org&gt;</span>
<a name="l00003"></a>00003 <span class="comment">   Copyright (C) 2001 Joseph Wenninger &lt;jowenn@kde.org&gt;</span>
<a name="l00004"></a>00004 <span class="comment">   Copyright (C) 2001 Anders Lund &lt;anders.lund@lund.tdcadsl.dk&gt;</span>
<a name="l00005"></a>00005 <span class="comment"></span>
<a name="l00006"></a>00006 <span class="comment">   This library is free software; you can redistribute it and/or</span>
<a name="l00007"></a>00007 <span class="comment">   modify it under the terms of the GNU Library General Public</span>
<a name="l00008"></a>00008 <span class="comment">   License version 2 as published by the Free Software Foundation.</span>
<a name="l00009"></a>00009 <span class="comment"></span>
<a name="l00010"></a>00010 <span class="comment">   This library 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 GNU</span>
<a name="l00013"></a>00013 <span class="comment">   Library 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 Library General Public License</span>
<a name="l00016"></a>00016 <span class="comment">   along with this library; see the file COPYING.LIB.  If not, write to</span>
<a name="l00017"></a>00017 <span class="comment">   the Free Software Foundation, Inc., 59 Temple Place - Suite 330,</span>
<a name="l00018"></a>00018 <span class="comment">   Boston, MA 02111-1307, USA.</span>
<a name="l00019"></a>00019 <span class="comment">*/</span>
<a name="l00020"></a>00020 
<a name="l00021"></a>00021 <span class="comment">//BEGIN Includes</span>
<a name="l00022"></a>00022 <span class="preprocessor">#include "katefilelist.h"</span>
<a name="l00023"></a>00023 <span class="preprocessor">#include "katefilelist.moc"</span>
<a name="l00024"></a>00024 
<a name="l00025"></a>00025 <span class="preprocessor">#include "katedocmanager.h"</span>
<a name="l00026"></a>00026 <span class="preprocessor">#include "kateviewmanager.h"</span>
<a name="l00027"></a>00027 <span class="preprocessor">#include "katemainwindow.h"</span>
<a name="l00028"></a>00028 
<a name="l00029"></a>00029 <span class="preprocessor">#include &lt;qapplication.h&gt;</span>
<a name="l00030"></a>00030 <span class="preprocessor">#include &lt;qpainter.h&gt;</span>
<a name="l00031"></a>00031 <span class="preprocessor">#include &lt;qpopupmenu.h&gt;</span>
<a name="l00032"></a>00032 <span class="preprocessor">#include &lt;qheader.h&gt;</span>
<a name="l00033"></a>00033 <span class="preprocessor">#include &lt;qcolor.h&gt;</span>
<a name="l00034"></a>00034 <span class="preprocessor">#include &lt;qcheckbox.h&gt;</span>
<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;qlayout.h&gt;</span>
<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;qgroupbox.h&gt;</span>
<a name="l00037"></a>00037 <span class="preprocessor">#include &lt;qlabel.h&gt;</span>
<a name="l00038"></a>00038 <span class="preprocessor">#include &lt;qwhatsthis.h&gt;</span>
<a name="l00039"></a>00039 
<a name="l00040"></a>00040 <span class="preprocessor">#include &lt;kiconloader.h&gt;</span>
<a name="l00041"></a>00041 <span class="preprocessor">#include &lt;kconfig.h&gt;</span>
<a name="l00042"></a>00042 <span class="preprocessor">#include &lt;klocale.h&gt;</span>
<a name="l00043"></a>00043 <span class="preprocessor">#include &lt;kglobalsettings.h&gt;</span>
<a name="l00044"></a>00044 <span class="preprocessor">#include &lt;kpassivepopup.h&gt;</span>
<a name="l00045"></a>00045 <span class="preprocessor">#include &lt;kdebug.h&gt;</span>
<a name="l00046"></a>00046 <span class="preprocessor">#include &lt;kapplication.h&gt;</span>
<a name="l00047"></a>00047 <span class="preprocessor">#include &lt;kstringhandler.h&gt;</span>
<a name="l00048"></a>00048 <span class="preprocessor">#include &lt;kcolorbutton.h&gt;</span>
<a name="l00049"></a>00049 <span class="preprocessor">#include &lt;kdialog.h&gt;</span>
<a name="l00050"></a>00050 <span class="comment">//END Includes</span>
<a name="l00051"></a>00051 
<a name="l00052"></a>00052 <span class="comment">//BEGIN ToolTip</span>
<a name="l00053"></a>00053 <span class="keyword">class </span>ToolTip : <span class="keyword">public</span> QToolTip
<a name="l00054"></a>00054 {
<a name="l00055"></a>00055   <span class="keyword">public</span>:
<a name="l00056"></a>00056     ToolTip( QWidget *parent, <a class="code" href="classKateFileList.html">KateFileList</a> *lv )
<a name="l00057"></a>00057       : QToolTip( parent ),
<a name="l00058"></a>00058     m_listView( lv )
<a name="l00059"></a>00059     {
<a name="l00060"></a>00060     }
<a name="l00061"></a>00061     <span class="keyword">virtual</span> ~ToolTip() {};
<a name="l00062"></a>00062 
<a name="l00063"></a>00063     <span class="keywordtype">void</span> maybeTip( <span class="keyword">const</span> QPoint &amp;pos )
<a name="l00064"></a>00064     {
<a name="l00065"></a>00065       QListViewItem *i = m_listView-&gt;itemAt( pos );
<a name="l00066"></a>00066       <span class="keywordflow">if</span> ( ! i ) <span class="keywordflow">return</span>;
<a name="l00067"></a>00067 
<a name="l00068"></a>00068       <a class="code" href="classKateFileListItem.html">KateFileListItem</a> *item = ((<a class="code" href="classKateFileListItem.html">KateFileListItem</a>*)i);
<a name="l00069"></a>00069       <span class="keywordflow">if</span> ( ! item ) <span class="keywordflow">return</span>;
<a name="l00070"></a>00070 
<a name="l00071"></a>00071       tip( m_listView-&gt;itemRect( i ), m_listView-&gt;tooltip( item, 0 ) );
<a name="l00072"></a>00072 
<a name="l00073"></a>00073     }
<a name="l00074"></a>00074 
<a name="l00075"></a>00075   <span class="keyword">private</span>:
<a name="l00076"></a>00076     <a class="code" href="classKateFileList.html">KateFileList</a> *m_listView;
<a name="l00077"></a>00077 };
<a name="l00078"></a>00078 
<a name="l00079"></a>00079 <span class="comment">//END ToolTip</span>
<a name="l00080"></a>00080 
<a name="l00081"></a>00081 <span class="comment">//BEGIN KateFileList</span>
<a name="l00082"></a><a class="code" href="classKateFileList.html#a0">00082</a> <a class="code" href="classKateFileList.html#a0">KateFileList::KateFileList</a> (<a class="code" href="classKateMainWindow.html">KateMainWindow</a> *main,
<a name="l00083"></a>00083                             <a class="code" href="classKateViewManager.html">KateViewManager</a> *_viewManager,
<a name="l00084"></a>00084                             QWidget * parent, <span class="keyword">const</span> <span class="keywordtype">char</span> * name )
<a name="l00085"></a>00085     :  KListView (parent, name)
<a name="l00086"></a>00086     , m_sort( <a class="code" href="classKateFileList.html">KateFileList</a>::sortByID )
<a name="l00087"></a>00087 {
<a name="l00088"></a>00088   m_main = main;
<a name="l00089"></a>00089   m_tooltip = <span class="keyword">new</span> ToolTip( viewport(), <span class="keyword">this</span> );
<a name="l00090"></a>00090 
<a name="l00091"></a>00091   <span class="comment">// default colors</span>
<a name="l00092"></a>00092   m_viewShade = QColor( 51, 204, 255 );
<a name="l00093"></a>00093   m_editShade = QColor( 255, 102, 153 );
<a name="l00094"></a>00094   m_enableBgShading = <span class="keyword">true</span>;
<a name="l00095"></a>00095 
<a name="l00096"></a>00096   setFocusPolicy ( QWidget::NoFocus  );
<a name="l00097"></a>00097 
<a name="l00098"></a>00098   viewManager = _viewManager;
<a name="l00099"></a>00099 
<a name="l00100"></a>00100   header()-&gt;hide();
<a name="l00101"></a>00101   addColumn(<span class="stringliteral">"Document Name"</span>);
<a name="l00102"></a>00102 
<a name="l00103"></a>00103   setSelectionMode( QListView::Single );
<a name="l00104"></a>00104   setSorting( 0, <span class="keyword">true</span> );
<a name="l00105"></a>00105   setShowToolTips( <span class="keyword">false</span> );
<a name="l00106"></a>00106 
<a name="l00107"></a>00107   setupActions ();
<a name="l00108"></a>00108 
<a name="l00109"></a>00109   <span class="keywordflow">for</span> (uint i = 0; i &lt; <a class="code" href="classKateDocManager.html#e0">KateDocManager::self</a>()-&gt;documents(); i++)
<a name="l00110"></a>00110   {
<a name="l00111"></a>00111     slotDocumentCreated (<a class="code" href="classKateDocManager.html#e0">KateDocManager::self</a>()-&gt;document(i));
<a name="l00112"></a>00112     slotModChanged (<a class="code" href="classKateDocManager.html#e0">KateDocManager::self</a>()-&gt;document(i));
<a name="l00113"></a>00113   }
<a name="l00114"></a>00114 
<a name="l00115"></a>00115   connect(<a class="code" href="classKateDocManager.html#e0">KateDocManager::self</a>(),SIGNAL(documentCreated(Kate::Document *)),
<a name="l00116"></a>00116       <span class="keyword">this</span>,SLOT(slotDocumentCreated(Kate::Document *)));
<a name="l00117"></a>00117   connect(<a class="code" href="classKateDocManager.html#e0">KateDocManager::self</a>(),SIGNAL(documentDeleted(uint)),
<a name="l00118"></a>00118       <span class="keyword">this</span>,SLOT(slotDocumentDeleted(uint)));
<a name="l00119"></a>00119 
<a name="l00120"></a>00120   <span class="comment">// don't Honour KDE single/double click setting, this files are already open,</span>
<a name="l00121"></a>00121   <span class="comment">// no need for hassle of considering double-click</span>
<a name="l00122"></a>00122   connect(<span class="keyword">this</span>,SIGNAL(clicked(QListViewItem *)),
<a name="l00123"></a>00123       <span class="keyword">this</span>,SLOT(slotActivateView(QListViewItem *)));
<a name="l00124"></a>00124   connect(viewManager,SIGNAL(viewChanged()), <span class="keyword">this</span>,SLOT(slotViewChanged()));
<a name="l00125"></a>00125   connect(<span class="keyword">this</span>,SIGNAL(contextMenuRequested( QListViewItem *, <span class="keyword">const</span> QPoint &amp;, <span class="keywordtype">int</span> )),
<a name="l00126"></a>00126       <span class="keyword">this</span>,SLOT(slotMenu ( QListViewItem *, <span class="keyword">const</span> QPoint &amp;, <span class="keywordtype">int</span> )));
<a name="l00127"></a>00127 }
<a name="l00128"></a>00128 
<a name="l00129"></a><a class="code" href="classKateFileList.html#a1">00129</a> <a class="code" href="classKateFileList.html#a1">KateFileList::~KateFileList</a> ()
<a name="l00130"></a>00130 {
<a name="l00131"></a>00131   <span class="keyword">delete</span> m_tooltip;
<a name="l00132"></a>00132 }
<a name="l00133"></a>00133 
<a name="l00134"></a>00134 <span class="keywordtype">void</span> KateFileList::setupActions ()
<a name="l00135"></a>00135 {
<a name="l00136"></a>00136   windowNext = KStdAction::back(<span class="keyword">this</span>, SLOT(<a class="code" href="classKateFileList.html#i2">slotPrevDocument</a>()), m_main-&gt;actionCollection());
<a name="l00137"></a>00137   windowPrev = KStdAction::forward(<span class="keyword">this</span>, SLOT(<a class="code" href="classKateFileList.html#i1">slotNextDocument</a>()), m_main-&gt;actionCollection());
<a name="l00138"></a>00138   KSelectAction *a = <span class="keyword">new</span> KSelectAction( i18n(<span class="stringliteral">"Sort &amp;By"</span>), 0,
<a name="l00139"></a>00139       m_main-&gt;actionCollection(), <span class="stringliteral">"filelist_sortby"</span>  );
<a name="l00140"></a>00140   QStringList l;
<a name="l00141"></a>00141   l &lt;&lt; i18n(<span class="stringliteral">"Opening Order"</span>) &lt;&lt; i18n(<span class="stringliteral">"Document Name"</span>) &lt;&lt; i18n(<span class="stringliteral">"URL"</span>);
<a name="l00142"></a>00142   a-&gt;setItems( l );
<a name="l00143"></a>00143   connect( a, SIGNAL(activated(<span class="keywordtype">int</span>)), <span class="keyword">this</span>, SLOT(<a class="code" href="classKateFileList.html#i0">setSortType</a>(<span class="keywordtype">int</span>)) );
<a name="l00144"></a>00144 }
<a name="l00145"></a>00145 
<a name="l00146"></a>00146 <span class="keywordtype">void</span> KateFileList::updateActions ()
<a name="l00147"></a>00147 {
<a name="l00148"></a>00148   windowNext-&gt;setEnabled(<a class="code" href="classKateDocManager.html#e0">KateDocManager::self</a>()-&gt;documents()  &gt; 1);
<a name="l00149"></a>00149   windowPrev-&gt;setEnabled(<a class="code" href="classKateDocManager.html#e0">KateDocManager::self</a>()-&gt;documents()  &gt; 1);
<a name="l00150"></a>00150 }
<a name="l00151"></a>00151 
<a name="l00152"></a><a class="code" href="classKateFileList.html#b0">00152</a> <span class="keywordtype">void</span> <a class="code" href="classKateFileList.html#b0">KateFileList::keyPressEvent</a>(QKeyEvent *e) {
<a name="l00153"></a>00153   <span class="keywordflow">if</span> ( ( e-&gt;key() == Key_Return ) || ( e-&gt;key() == Key_Enter ) )
<a name="l00154"></a>00154   {
<a name="l00155"></a>00155     e-&gt;accept();
<a name="l00156"></a>00156     slotActivateView( currentItem() );
<a name="l00157"></a>00157   }
<a name="l00158"></a>00158   <span class="keywordflow">else</span>
<a name="l00159"></a>00159   {
<a name="l00160"></a>00160     KListView::keyPressEvent(e);
<a name="l00161"></a>00161   }
<a name="l00162"></a>00162 }
<a name="l00163"></a>00163 
<a name="l00164"></a>00164 <span class="comment">// Protect single mode selection: don't let them</span>
<a name="l00165"></a>00165 <span class="comment">// leftclick outside items.</span>
<a name="l00166"></a>00166 <span class="comment">// ### if we get to accept keyboard navigation, set focus before</span>
<a name="l00167"></a>00167 <span class="comment">// returning</span>
<a name="l00168"></a><a class="code" href="classKateFileList.html#b1">00168</a> <span class="keywordtype">void</span> <a class="code" href="classKateFileList.html#b1">KateFileList::contentsMousePressEvent</a>( QMouseEvent *e )
<a name="l00169"></a>00169 {
<a name="l00170"></a>00170   <span class="keywordflow">if</span> ( ! itemAt( contentsToViewport( e-&gt;pos() ) ) )
<a name="l00171"></a>00171   <span class="keywordflow">return</span>;
<a name="l00172"></a>00172 
<a name="l00173"></a>00173   KListView::contentsMousePressEvent( e );
<a name="l00174"></a>00174 }
<a name="l00175"></a>00175 
<a name="l00176"></a><a class="code" href="classKateFileList.html#b2">00176</a> <span class="keywordtype">void</span> <a class="code" href="classKateFileList.html#b2">KateFileList::resizeEvent</a>( QResizeEvent *e )
<a name="l00177"></a>00177 {
<a name="l00178"></a>00178   KListView::resizeEvent( e );
<a name="l00179"></a>00179 
<a name="l00180"></a>00180   <span class="comment">// ### We may want to actually calculate the widest field,</span>
<a name="l00181"></a>00181   <span class="comment">// since it's not automatically scrinked. If I add support for</span>
<a name="l00182"></a>00182   <span class="comment">// tree or marks, the changes of the required width will vary</span>
<a name="l00183"></a>00183   <span class="comment">// a lot with opening/closing of files and display changes for</span>
<a name="l00184"></a>00184   <span class="comment">// the mark branches.</span>
<a name="l00185"></a>00185   <span class="keywordtype">int</span> w = viewport()-&gt;width();
<a name="l00186"></a>00186   <span class="keywordflow">if</span> ( columnWidth( 0 ) &lt; w )
<a name="l00187"></a>00187     setColumnWidth( 0, w );
<a name="l00188"></a>00188 }
<a name="l00189"></a>00189 
<a name="l00190"></a><a class="code" href="classKateFileList.html#i1">00190</a> <span class="keywordtype">void</span> <a class="code" href="classKateFileList.html#i1">KateFileList::slotNextDocument</a>()
<a name="l00191"></a>00191 {
<a name="l00192"></a>00192   <span class="keywordflow">if</span> ( ! currentItem() || childCount() == 0 )
<a name="l00193"></a>00193     <span class="keywordflow">return</span>;
<a name="l00194"></a>00194 
<a name="l00195"></a>00195   <span class="comment">// ### more checking once more item types are added</span>
<a name="l00196"></a>00196 
<a name="l00197"></a>00197   <span class="keywordflow">if</span> ( currentItem()-&gt;nextSibling() )
<a name="l00198"></a>00198     viewManager-&gt;<a class="code" href="classKateViewManager.html#k0">activateView</a>( ((<a class="code" href="classKateFileListItem.html">KateFileListItem</a>*)currentItem()-&gt;nextSibling())-&gt;documentNumber() );
<a name="l00199"></a>00199   <span class="keywordflow">else</span>
<a name="l00200"></a>00200     viewManager-&gt;<a class="code" href="classKateViewManager.html#k0">activateView</a>( ((<a class="code" href="classKateFileListItem.html">KateFileListItem</a> *)firstChild())-&gt;documentNumber() );
<a name="l00201"></a>00201 }
<a name="l00202"></a>00202 
<a name="l00203"></a><a class="code" href="classKateFileList.html#i2">00203</a> <span class="keywordtype">void</span> <a class="code" href="classKateFileList.html#i2">KateFileList::slotPrevDocument</a>()
<a name="l00204"></a>00204 {
<a name="l00205"></a>00205   <span class="keywordflow">if</span> ( ! currentItem() || childCount() == 0 )
<a name="l00206"></a>00206     <span class="keywordflow">return</span>;
<a name="l00207"></a>00207 
<a name="l00208"></a>00208   <span class="comment">// ### more checking once more item types are added</span>
<a name="l00209"></a>00209 
<a name="l00210"></a>00210   <span class="keywordflow">if</span> ( currentItem()-&gt;itemAbove() )
<a name="l00211"></a>00211     viewManager-&gt;<a class="code" href="classKateViewManager.html#k0">activateView</a>( ((<a class="code" href="classKateFileListItem.html">KateFileListItem</a>*)currentItem()-&gt;itemAbove())-&gt;documentNumber() );
<a name="l00212"></a>00212   <span class="keywordflow">else</span>
<a name="l00213"></a>00213     viewManager-&gt;<a class="code" href="classKateViewManager.html#k0">activateView</a>( ((<a class="code" href="classKateFileListItem.html">KateFileListItem</a> *)lastItem())-&gt;documentNumber() );
<a name="l00214"></a>00214 }
<a name="l00215"></a>00215 
<a name="l00216"></a>00216 <span class="keywordtype">void</span> KateFileList::slotDocumentCreated (Kate::Document *doc)
<a name="l00217"></a>00217 {
<a name="l00218"></a>00218   <span class="keyword">new</span> <a class="code" href="classKateFileListItem.html">KateFileListItem</a>( <span class="keyword">this</span>, doc<span class="comment">/*, doc-&gt;documentNumber()*/</span> );
<a name="l00219"></a>00219   connect(doc,SIGNAL(modStateChanged(Kate::Document *)),<span class="keyword">this</span>,SLOT(slotModChanged(Kate::Document *)));
<a name="l00220"></a>00220   connect(doc,SIGNAL(nameChanged(Kate::Document *)),<span class="keyword">this</span>,SLOT(slotNameChanged(Kate::Document *)));
<a name="l00221"></a>00221   connect(doc,SIGNAL(modifiedOnDisc(Kate::Document *, <span class="keywordtype">bool</span>, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)),<span class="keyword">this</span>,SLOT(slotModifiedOnDisc(Kate::Document *, <span class="keywordtype">bool</span>, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)));
<a name="l00222"></a>00222 
<a name="l00223"></a>00223   sort();
<a name="l00224"></a>00224   updateActions ();
<a name="l00225"></a>00225 }
<a name="l00226"></a>00226 
<a name="l00227"></a>00227 <span class="keywordtype">void</span> KateFileList::slotDocumentDeleted (uint documentNumber)
<a name="l00228"></a>00228 {
<a name="l00229"></a>00229   QListViewItem * item = firstChild();
<a name="l00230"></a>00230   <span class="keywordflow">while</span>( item ) {
<a name="l00231"></a>00231     <span class="keywordflow">if</span> ( ((<a class="code" href="classKateFileListItem.html">KateFileListItem</a> *)item)-&gt;documentNumber() == documentNumber )
<a name="l00232"></a>00232     {
<a name="l00233"></a>00233 <span class="comment">//       m_viewHistory.removeRef( (KateFileListItem *)item );</span>
<a name="l00234"></a>00234 <span class="comment">//       m_editHistory.removeRef( (KateFileListItem *)item );</span>
<a name="l00235"></a>00235 
<a name="l00236"></a>00236       removeItem( item );
<a name="l00237"></a>00237 
<a name="l00238"></a>00238       <span class="keywordflow">break</span>;
<a name="l00239"></a>00239     }
<a name="l00240"></a>00240     item = item-&gt;nextSibling();
<a name="l00241"></a>00241   }
<a name="l00242"></a>00242 
<a name="l00243"></a>00243   updateActions ();
<a name="l00244"></a>00244 }
<a name="l00245"></a>00245 
<a name="l00246"></a>00246 <span class="keywordtype">void</span> KateFileList::slotActivateView( QListViewItem *item )
<a name="l00247"></a>00247 {
<a name="l00248"></a>00248   <span class="keywordflow">if</span> ( ! item || item-&gt;rtti() != RTTI_KateFileListItem )
<a name="l00249"></a>00249     <span class="keywordflow">return</span>;
<a name="l00250"></a>00250 
<a name="l00251"></a>00251   viewManager-&gt;<a class="code" href="classKateViewManager.html#k0">activateView</a>( ((<a class="code" href="classKateFileListItem.html">KateFileListItem</a> *)item)-&gt;documentNumber() );
<a name="l00252"></a>00252 }
<a name="l00253"></a>00253 
<a name="l00254"></a>00254 <span class="keywordtype">void</span> KateFileList::slotModChanged (Kate::Document *doc)
<a name="l00255"></a>00255 {
<a name="l00256"></a>00256   <span class="keywordflow">if</span> (!doc) <span class="keywordflow">return</span>;
<a name="l00257"></a>00257 
<a name="l00258"></a>00258   QListViewItem * item = firstChild();
<a name="l00259"></a>00259   <span class="keywordflow">while</span>( item )
<a name="l00260"></a>00260   {
<a name="l00261"></a>00261     <span class="keywordflow">if</span> ( ((<a class="code" href="classKateFileListItem.html">KateFileListItem</a> *)item)-&gt;documentNumber() == doc-&gt;documentNumber() )
<a name="l00262"></a>00262       <span class="keywordflow">break</span>;
<a name="l00263"></a>00263 
<a name="l00264"></a>00264     item = item-&gt;nextSibling();
<a name="l00265"></a>00265   }
<a name="l00266"></a>00266 
<a name="l00267"></a>00267   <span class="keywordflow">if</span> ( ((<a class="code" href="classKateFileListItem.html">KateFileListItem</a> *)item)-&gt;document()-&gt;isModified() )
<a name="l00268"></a>00268   {
<a name="l00269"></a>00269     m_editHistory.removeRef( (<a class="code" href="classKateFileListItem.html">KateFileListItem</a> *)item );
<a name="l00270"></a>00270     m_editHistory.prepend( (<a class="code" href="classKateFileListItem.html">KateFileListItem</a> *)item );
<a name="l00271"></a>00271 
<a name="l00272"></a>00272     <span class="keywordflow">for</span> ( uint i=0; i &lt;  m_editHistory.count(); i++ )
<a name="l00273"></a>00273     {
<a name="l00274"></a>00274       m_editHistory.at( i )-&gt;setEditHistPos( i+1 );
<a name="l00275"></a>00275       repaintItem(  m_editHistory.at( i ) );
<a name="l00276"></a>00276     }
<a name="l00277"></a>00277   }
<a name="l00278"></a>00278   <span class="keywordflow">else</span>
<a name="l00279"></a>00279     repaintItem( item );
<a name="l00280"></a>00280 }
<a name="l00281"></a>00281 
<a name="l00282"></a>00282 <span class="keywordtype">void</span> KateFileList::slotModifiedOnDisc (Kate::Document *doc, <span class="keywordtype">bool</span>, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> r)
<a name="l00283"></a>00283 {
<a name="l00284"></a>00284   slotModChanged( doc );
<a name="l00285"></a>00285 }
<a name="l00286"></a>00286 
<a name="l00287"></a>00287 <span class="keywordtype">void</span> KateFileList::slotNameChanged (Kate::Document *doc)
<a name="l00288"></a>00288 {
<a name="l00289"></a>00289   <span class="keywordflow">if</span> (!doc) <span class="keywordflow">return</span>;
<a name="l00290"></a>00290 
<a name="l00291"></a>00291   <span class="comment">// ### using nextSibling to *only* look at toplevel items.</span>
<a name="l00292"></a>00292   <span class="comment">// child items could be marks for example</span>
<a name="l00293"></a>00293   QListViewItem * item = firstChild();
<a name="l00294"></a>00294   <span class="keywordflow">while</span>( item ) {
<a name="l00295"></a>00295     <span class="keywordflow">if</span> ( ((<a class="code" href="classKateFileListItem.html">KateFileListItem</a>*)item)-&gt;document() == doc )
<a name="l00296"></a>00296     {
<a name="l00297"></a>00297       item-&gt;setText( 0, doc-&gt;docName() );
<a name="l00298"></a>00298       repaintItem( item );
<a name="l00299"></a>00299       <span class="keywordflow">break</span>;
<a name="l00300"></a>00300     }
<a name="l00301"></a>00301     item = item-&gt;nextSibling();
<a name="l00302"></a>00302   }
<a name="l00303"></a>00303   <a class="code" href="classKateFileList.html#a3">updateSort</a>();
<a name="l00304"></a>00304 }
<a name="l00305"></a>00305 
<a name="l00306"></a>00306 <span class="keywordtype">void</span> KateFileList::slotViewChanged ()
<a name="l00307"></a>00307 {
<a name="l00308"></a>00308   <span class="keywordflow">if</span> (!viewManager-&gt;<a class="code" href="classKateViewManager.html#a9">activeView</a>()) <span class="keywordflow">return</span>;
<a name="l00309"></a>00309 
<a name="l00310"></a>00310   Kate::View *view = viewManager-&gt;<a class="code" href="classKateViewManager.html#a9">activeView</a>();
<a name="l00311"></a>00311   uint dn = view-&gt;getDoc()-&gt;documentNumber();
<a name="l00312"></a>00312 
<a name="l00313"></a>00313   QListViewItem * i = firstChild();
<a name="l00314"></a>00314   <span class="keywordflow">while</span>( i ) {
<a name="l00315"></a>00315     <span class="keywordflow">if</span> ( ((<a class="code" href="classKateFileListItem.html">KateFileListItem</a> *)i)-&gt;documentNumber() == dn )
<a name="l00316"></a>00316     {
<a name="l00317"></a>00317       <span class="keywordflow">break</span>;
<a name="l00318"></a>00318     }
<a name="l00319"></a>00319     i = i-&gt;nextSibling();
<a name="l00320"></a>00320   }
<a name="l00321"></a>00321 
<a name="l00322"></a>00322   <span class="keywordflow">if</span> ( ! i )
<a name="l00323"></a>00323     <span class="keywordflow">return</span>;
<a name="l00324"></a>00324 
<a name="l00325"></a>00325   <a class="code" href="classKateFileListItem.html">KateFileListItem</a> *item = (<a class="code" href="classKateFileListItem.html">KateFileListItem</a>*)i;
<a name="l00326"></a>00326   setCurrentItem( item );
<a name="l00327"></a>00327 
<a name="l00328"></a>00328   <span class="comment">// ### During load of file lists, all the loaded views gets active.</span>
<a name="l00329"></a>00329   <span class="comment">// Do something to avoid shading them -- maybe not creating views, just</span>
<a name="l00330"></a>00330   <span class="comment">// open the documents???</span>
<a name="l00331"></a>00331 
<a name="l00332"></a>00332 
<a name="l00333"></a>00333 <span class="comment">//   int p = 0;</span>
<a name="l00334"></a>00334 <span class="comment">//   if (  m_viewHistory.count() )</span>
<a name="l00335"></a>00335 <span class="comment">//   {</span>
<a name="l00336"></a>00336 <span class="comment">//     int p =  m_viewHistory.findRef( item ); // only repaint items that needs it</span>
<a name="l00337"></a>00337 <span class="comment">//   }</span>
<a name="l00338"></a>00338 
<a name="l00339"></a>00339   m_viewHistory.removeRef( item );
<a name="l00340"></a>00340   m_viewHistory.prepend( item );
<a name="l00341"></a>00341 
<a name="l00342"></a>00342   <span class="keywordflow">for</span> ( uint i=0; i &lt;  m_viewHistory.count(); i++ )
<a name="l00343"></a>00343   {
<a name="l00344"></a>00344     m_viewHistory.at( i )-&gt;setViewHistPos( i+1 );
<a name="l00345"></a>00345     repaintItem(  m_viewHistory.at( i ) );
<a name="l00346"></a>00346   }
<a name="l00347"></a>00347 
<a name="l00348"></a>00348 }
<a name="l00349"></a>00349 
<a name="l00350"></a>00350 <span class="keywordtype">void</span> KateFileList::slotMenu ( QListViewItem *item, <span class="keyword">const</span> QPoint &amp;p, <span class="keywordtype">int</span> <span class="comment">/*col*/</span> )
<a name="l00351"></a>00351 {
<a name="l00352"></a>00352   <span class="keywordflow">if</span> (!item)
<a name="l00353"></a>00353     <span class="keywordflow">return</span>;
<a name="l00354"></a>00354 
<a name="l00355"></a>00355   QPopupMenu *menu = (QPopupMenu*) ((viewManager-&gt;<a class="code" href="classKateViewManager.html#a15">mainWindow</a>())-&gt;factory()-&gt;container(<span class="stringliteral">"filelist_popup"</span>, viewManager-&gt;<a class="code" href="classKateViewManager.html#a15">mainWindow</a>()));
<a name="l00356"></a>00356 
<a name="l00357"></a>00357   <span class="keywordflow">if</span> (menu)
<a name="l00358"></a>00358     menu-&gt;exec(p);
<a name="l00359"></a>00359 }
<a name="l00360"></a>00360 
<a name="l00361"></a><a class="code" href="classKateFileList.html#a4">00361</a> QString <a class="code" href="classKateFileList.html#a4">KateFileList::tooltip</a>( QListViewItem *item, <span class="keywordtype">int</span> )
<a name="l00362"></a>00362 {
<a name="l00363"></a>00363   <a class="code" href="classKateFileListItem.html">KateFileListItem</a> *i = ((<a class="code" href="classKateFileListItem.html">KateFileListItem</a>*)item);
<a name="l00364"></a>00364   <span class="keywordflow">if</span> ( ! i ) <span class="keywordflow">return</span> QString::null;
<a name="l00365"></a>00365 
<a name="l00366"></a>00366   QString str;
<a name="l00367"></a>00367   <span class="keyword">const</span> <a class="code" href="classKateDocumentInfo.html">KateDocumentInfo</a> *info = <a class="code" href="classKateDocManager.html#e0">KateDocManager::self</a>()-&gt;<a class="code" href="classKateDocManager.html#a11">documentInfo</a>(i-&gt;<a class="code" href="classKateFileListItem.html#a3">document</a>());
<a name="l00368"></a>00368 
<a name="l00369"></a>00369   <span class="keywordflow">if</span> (info &amp;&amp; info-&gt;<a class="code" href="classKateDocumentInfo.html#o0">modifiedOnDisc</a>)
<a name="l00370"></a>00370   {
<a name="l00371"></a>00371     <span class="keywordflow">if</span> (info-&gt;<a class="code" href="classKateDocumentInfo.html#o1">modifiedOnDiscReason</a> == 1)
<a name="l00372"></a>00372       str += i18n(<span class="stringliteral">"&lt;b&gt;This file was changed (modified) on disk by another program.&lt;/b&gt;&lt;br /&gt;"</span>);
<a name="l00373"></a>00373     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (info-&gt;<a class="code" href="classKateDocumentInfo.html#o1">modifiedOnDiscReason</a> == 2)
<a name="l00374"></a>00374       str += i18n(<span class="stringliteral">"&lt;b&gt;This file was changed (created) on disk by another program.&lt;/b&gt;&lt;br /&gt;"</span>);
<a name="l00375"></a>00375     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (info-&gt;<a class="code" href="classKateDocumentInfo.html#o1">modifiedOnDiscReason</a> == 3)
<a name="l00376"></a>00376       str += i18n(<span class="stringliteral">"&lt;b&gt;This file was changed (deleted) on disk by another program.&lt;/b&gt;&lt;br /&gt;"</span>);
<a name="l00377"></a>00377   }
<a name="l00378"></a>00378 
<a name="l00379"></a>00379   str += i-&gt;<a class="code" href="classKateFileListItem.html#a3">document</a>()-&gt;url().prettyURL();
<a name="l00380"></a>00380   <span class="keywordflow">return</span> str;
<a name="l00381"></a>00381 }
<a name="l00382"></a>00382 
<a name="l00383"></a>00383 
<a name="l00384"></a><a class="code" href="classKateFileList.html#i0">00384</a> <span class="keywordtype">void</span> <a class="code" href="classKateFileList.html#i0">KateFileList::setSortType</a> (<span class="keywordtype">int</span> s)
<a name="l00385"></a>00385 {
<a name="l00386"></a>00386   m_sort = s;
<a name="l00387"></a>00387   <a class="code" href="classKateFileList.html#a3">updateSort</a> ();
<a name="l00388"></a>00388 }
<a name="l00389"></a>00389 
<a name="l00390"></a><a class="code" href="classKateFileList.html#a3">00390</a> <span class="keywordtype">void</span> <a class="code" href="classKateFileList.html#a3">KateFileList::updateSort</a> ()
<a name="l00391"></a>00391 {
<a name="l00392"></a>00392   sort ();
<a name="l00393"></a>00393 }
<a name="l00394"></a>00394 
<a name="l00395"></a><a class="code" href="classKateFileList.html#a10">00395</a> <span class="keywordtype">void</span> <a class="code" href="classKateFileList.html#a10">KateFileList::readConfig</a>( KConfig *config, <span class="keyword">const</span> QString &amp;group )
<a name="l00396"></a>00396 {
<a name="l00397"></a>00397   QString oldgroup = config-&gt;group();
<a name="l00398"></a>00398   config-&gt;setGroup( group );
<a name="l00399"></a>00399 
<a name="l00400"></a>00400   <a class="code" href="classKateFileList.html#i0">setSortType</a>( config-&gt;readNumEntry( <span class="stringliteral">"Sort Type"</span>, sortByID ) );
<a name="l00401"></a>00401   m_viewShade = config-&gt;readColorEntry( <span class="stringliteral">"View Shade"</span>, &amp;m_viewShade );
<a name="l00402"></a>00402   m_editShade = config-&gt;readColorEntry( <span class="stringliteral">"Edit Shade"</span>, &amp;m_editShade );
<a name="l00403"></a>00403   m_enableBgShading = config-&gt;readBoolEntry( <span class="stringliteral">"Shading Enabled"</span>, &amp;m_enableBgShading );
<a name="l00404"></a>00404 
<a name="l00405"></a>00405   config-&gt;setGroup( oldgroup );
<a name="l00406"></a>00406 }
<a name="l00407"></a>00407 
<a name="l00408"></a><a class="code" href="classKateFileList.html#a11">00408</a> <span class="keywordtype">void</span> <a class="code" href="classKateFileList.html#a11">KateFileList::writeConfig</a>( KConfig *config, <span class="keyword">const</span> QString &amp;group )
<a name="l00409"></a>00409 {
<a name="l00410"></a>00410   QString oldgroup = config-&gt;group();
<a name="l00411"></a>00411   config-&gt;setGroup( group );
<a name="l00412"></a>00412 
<a name="l00413"></a>00413   config-&gt;writeEntry( <span class="stringliteral">"Sort Type"</span>, m_sort );
<a name="l00414"></a>00414   config-&gt;writeEntry( <span class="stringliteral">"View Shade"</span>, m_viewShade );
<a name="l00415"></a>00415   config-&gt;writeEntry( <span class="stringliteral">"Edit Shade"</span>, m_editShade );
<a name="l00416"></a>00416   config-&gt;writeEntry( <span class="stringliteral">"Shading Enabled"</span>, m_enableBgShading );
<a name="l00417"></a>00417 
<a name="l00418"></a>00418   config-&gt;setGroup( oldgroup );
<a name="l00419"></a>00419 }
<a name="l00420"></a>00420 
<a name="l00421"></a><a class="code" href="classKateFileList.html#a12">00421</a> <span class="keywordtype">void</span> <a class="code" href="classKateFileList.html#a12">KateFileList::takeItem</a>( QListViewItem *item )
<a name="l00422"></a>00422 {
<a name="l00423"></a>00423   <span class="keywordflow">if</span> ( item-&gt;rtti() == RTTI_KateFileListItem )
<a name="l00424"></a>00424   {
<a name="l00425"></a>00425     m_editHistory.removeRef( (<a class="code" href="classKateFileListItem.html">KateFileListItem</a>*)item );
<a name="l00426"></a>00426     m_viewHistory.removeRef( (<a class="code" href="classKateFileListItem.html">KateFileListItem</a>*)item );
<a name="l00427"></a>00427   }
<a name="l00428"></a>00428   QListView::takeItem( item );
<a name="l00429"></a>00429 }
<a name="l00430"></a>00430 <span class="comment">//END KateFileList</span>
<a name="l00431"></a>00431 
<a name="l00432"></a>00432 <span class="comment">//BEGIN KateFileListItem</span>
<a name="l00433"></a><a class="code" href="classKateFileListItem.html#a0">00433</a> <a class="code" href="classKateFileListItem.html#a0">KateFileListItem::KateFileListItem</a>( QListView* lv,
<a name="l00434"></a>00434                     Kate::Document *_doc )
<a name="l00435"></a>00435   : QListViewItem( lv, _doc-&gt;docName() ),
<a name="l00436"></a>00436     doc( _doc ),
<a name="l00437"></a>00437     m_viewhistpos( 0 ),
<a name="l00438"></a>00438     m_edithistpos( 0 ),
<a name="l00439"></a>00439     m_docNumber( _doc-&gt;documentNumber() )
<a name="l00440"></a>00440 {
<a name="l00441"></a>00441 }
<a name="l00442"></a>00442 
<a name="l00443"></a><a class="code" href="classKateFileListItem.html#a1">00443</a> <a class="code" href="classKateFileListItem.html#a1">KateFileListItem::~KateFileListItem</a>()
<a name="l00444"></a>00444 {
<a name="l00445"></a>00445 }
<a name="l00446"></a>00446 
<a name="l00447"></a><a class="code" href="classKateFileListItem.html#b0">00447</a> <span class="keyword">const</span> QPixmap *<a class="code" href="classKateFileListItem.html#b0">KateFileListItem::pixmap</a> ( <span class="keywordtype">int</span> column )<span class="keyword"> const</span>
<a name="l00448"></a>00448 <span class="keyword"></span>{
<a name="l00449"></a>00449   <span class="keywordflow">if</span> ( column == 0) {
<a name="l00450"></a>00450     <span class="keyword">static</span> QPixmap noPm = SmallIcon (<span class="stringliteral">"null"</span>);
<a name="l00451"></a>00451     <span class="keyword">static</span> QPixmap modPm = SmallIcon(<span class="stringliteral">"modified"</span>);
<a name="l00452"></a>00452     <span class="keyword">static</span> QPixmap discPm = SmallIcon(<span class="stringliteral">"modonhd"</span>);
<a name="l00453"></a>00453     <span class="keyword">static</span> QPixmap modmodPm = SmallIcon(<span class="stringliteral">"modmod"</span>);
<a name="l00454"></a>00454 
<a name="l00455"></a>00455     <span class="keyword">const</span> <a class="code" href="classKateDocumentInfo.html">KateDocumentInfo</a> *info = <a class="code" href="classKateDocManager.html#e0">KateDocManager::self</a>()-&gt;<a class="code" href="classKateDocManager.html#a11">documentInfo</a>(doc);
<a name="l00456"></a>00456 
<a name="l00457"></a>00457     <span class="keywordflow">if</span> (info &amp;&amp; info-&gt;<a class="code" href="classKateDocumentInfo.html#o0">modifiedOnDisc</a>)
<a name="l00458"></a>00458       <span class="keywordflow">return</span> doc-&gt;isModified() ? &amp;modmodPm : &amp;discPm;
<a name="l00459"></a>00459     <span class="keywordflow">else</span>
<a name="l00460"></a>00460       <span class="keywordflow">return</span> doc-&gt;isModified() ? &amp;modPm : &amp;noPm;
<a name="l00461"></a>00461   }
<a name="l00462"></a>00462   <span class="keywordflow">return</span> 0;
<a name="l00463"></a>00463 }
<a name="l00464"></a>00464 
<a name="l00465"></a><a class="code" href="classKateFileListItem.html#b1">00465</a> <span class="keywordtype">void</span> <a class="code" href="classKateFileListItem.html#b1">KateFileListItem::paintCell</a>( QPainter *painter, <span class="keyword">const</span> QColorGroup &amp; cg, <span class="keywordtype">int</span> column, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> align )
<a name="l00466"></a>00466 {
<a name="l00467"></a>00467   <a class="code" href="classKateFileList.html">KateFileList</a> *fl = (<a class="code" href="classKateFileList.html">KateFileList</a>*)listView();
<a name="l00468"></a>00468   <span class="keywordflow">if</span> ( ! fl ) <span class="keywordflow">return</span>;
<a name="l00469"></a>00469 
<a name="l00470"></a>00470   <span class="keywordflow">if</span> ( column == 0 ) {
<a name="l00471"></a>00471     QColorGroup cgNew = cg;
<a name="l00472"></a>00472 
<a name="l00473"></a>00473     <span class="comment">// replace the base color with a different shading if necessary...</span>
<a name="l00474"></a>00474     <span class="keywordflow">if</span> ( fl-&gt;<a class="code" href="classKateFileList.html#a9">shadingEnabled</a>() &amp;&amp; m_viewhistpos &gt; 1 )
<a name="l00475"></a>00475     {
<a name="l00476"></a>00476       QColor b( cg.base() );
<a name="l00477"></a>00477 
<a name="l00478"></a>00478       QColor shade = fl-&gt;<a class="code" href="classKateFileList.html#a8">viewShade</a>();
<a name="l00479"></a>00479       QColor eshade = fl-&gt;<a class="code" href="classKateFileList.html#a7">editShade</a>();
<a name="l00480"></a>00480       <span class="keywordtype">int</span> hc = fl-&gt;<a class="code" href="classKateFileList.html#a5">histCount</a>();
<a name="l00481"></a>00481       <span class="comment">// If this file is in the edit history, blend in the eshade</span>
<a name="l00482"></a>00482       <span class="comment">// color. The blend is weighted by the position in the editing history</span>
<a name="l00483"></a>00483       <span class="keywordflow">if</span> ( fl-&gt;<a class="code" href="classKateFileList.html#a9">shadingEnabled</a>() &amp;&amp; m_edithistpos &gt; 0 )
<a name="l00484"></a>00484       {
<a name="l00485"></a>00485         <span class="keywordtype">int</span> ec = fl-&gt;<a class="code" href="classKateFileList.html#a6">editHistCount</a>();
<a name="l00486"></a>00486         <span class="keywordtype">int</span> v = hc-m_viewhistpos;
<a name="l00487"></a>00487         <span class="keywordtype">int</span> e = ec-m_edithistpos+1;
<a name="l00488"></a>00488         e = e*e;
<a name="l00489"></a>00489         <span class="keywordtype">int</span> n = QMAX(v + e, 1);
<a name="l00490"></a>00490         shade.setRgb(
<a name="l00491"></a>00491             ((shade.red()*v) + (eshade.red()*e))/n,
<a name="l00492"></a>00492             ((shade.green()*v) + (eshade.green()*e))/n,
<a name="l00493"></a>00493             ((shade.blue()*v) + (eshade.blue()*e))/n
<a name="l00494"></a>00494                     );
<a name="l00495"></a>00495       }
<a name="l00496"></a>00496       <span class="comment">// blend in the shade color.</span>
<a name="l00497"></a>00497       <span class="comment">// max transperancy &lt; .5, latest is most colored.</span>
<a name="l00498"></a>00498       <span class="keywordtype">float</span> t = (0.5/hc)*(hc-m_viewhistpos+1);
<a name="l00499"></a>00499       b.setRgb(
<a name="l00500"></a>00500           (<span class="keywordtype">int</span>)((b.red()*(1-t)) + (shade.red()*t)),
<a name="l00501"></a>00501           (int)((b.green()*(1-t)) + (shade.green()*t)),
<a name="l00502"></a>00502           (int)((b.blue()*(1-t)) + (shade.blue()*t))
<a name="l00503"></a>00503               );
<a name="l00504"></a>00504 
<a name="l00505"></a>00505       cgNew.setColor(QColorGroup::Base, b);
<a name="l00506"></a>00506     }
<a name="l00507"></a>00507 
<a name="l00508"></a>00508     QListViewItem::paintCell( painter, cgNew, column, width, align );
<a name="l00509"></a>00509   } <span class="keywordflow">else</span> {
<a name="l00510"></a>00510     QListViewItem::paintCell( painter, cg, column, width, align );
<a name="l00511"></a>00511   }
<a name="l00512"></a>00512 
<a name="l00513"></a>00513 }
<a name="l00514"></a>00514 
<a name="l00515"></a><a class="code" href="classKateFileListItem.html#b2">00515</a> <span class="keywordtype">int</span> <a class="code" href="classKateFileListItem.html#b2">KateFileListItem::compare</a> ( QListViewItem * i, <span class="keywordtype">int</span> col, <span class="keywordtype">bool</span> ascending )<span class="keyword"> const</span>
<a name="l00516"></a>00516 <span class="keyword"></span>{
<a name="l00517"></a>00517   <span class="keywordflow">if</span> ( i-&gt;rtti() == RTTI_KateFileListItem )
<a name="l00518"></a>00518   {
<a name="l00519"></a>00519     <span class="keywordflow">switch</span>( ((<a class="code" href="classKateFileList.html">KateFileList</a>*)listView())-&gt;sortType() )
<a name="l00520"></a>00520     {
<a name="l00521"></a>00521       <span class="keywordflow">case</span> KateFileList::sortByID:
<a name="l00522"></a>00522       {
<a name="l00523"></a>00523 
<a name="l00524"></a>00524         <span class="keywordtype">int</span> d = (int)doc-&gt;documentNumber() - ((<a class="code" href="classKateFileListItem.html">KateFileListItem</a>*)i)-&gt;documentNumber();
<a name="l00525"></a>00525         <span class="keywordflow">return</span> ascending ? d : -d;
<a name="l00526"></a>00526         <span class="keywordflow">break</span>;
<a name="l00527"></a>00527       }
<a name="l00528"></a>00528       <span class="keywordflow">case</span> KateFileList::sortByURL:
<a name="l00529"></a>00529         <span class="keywordflow">return</span> doc-&gt;url().prettyURL().compare( ((<a class="code" href="classKateFileListItem.html">KateFileListItem</a>*)i)-&gt;<a class="code" href="classKateFileListItem.html#a3">document</a>()-&gt;url().prettyURL() );
<a name="l00530"></a>00530         <span class="keywordflow">break</span>;
<a name="l00531"></a>00531       <span class="keywordflow">default</span>:
<a name="l00532"></a>00532         <span class="keywordflow">return</span> QListViewItem::compare( i, col, ascending );
<a name="l00533"></a>00533     }
<a name="l00534"></a>00534   }
<a name="l00535"></a>00535   <span class="keywordflow">return</span> 0;
<a name="l00536"></a>00536 }
<a name="l00537"></a>00537 <span class="comment">//END KateFileListItem</span>
<a name="l00538"></a>00538 
<a name="l00539"></a>00539 <span class="comment">//BEGIN KFLConfigPage</span>
<a name="l00540"></a><a class="code" href="classKFLConfigPage.html#a0">00540</a> <a class="code" href="classKFLConfigPage.html#a0">KFLConfigPage::KFLConfigPage</a>( QWidget* parent, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <a class="code" href="classKateFileList.html">KateFileList</a> *fl )
<a name="l00541"></a>00541   :  Kate::ConfigPage( parent, name ),
<a name="l00542"></a>00542     m_filelist( fl ),
<a name="l00543"></a>00543     m_changed( false )
<a name="l00544"></a>00544 {
<a name="l00545"></a>00545   QVBoxLayout *lo1 = <span class="keyword">new</span> QVBoxLayout( <span class="keyword">this</span> );
<a name="l00546"></a>00546   <span class="keywordtype">int</span> spacing = KDialog::spacingHint();
<a name="l00547"></a>00547   lo1-&gt;setSpacing( spacing );
<a name="l00548"></a>00548 
<a name="l00549"></a>00549   QGroupBox *gb = <span class="keyword">new</span> QGroupBox( 1, Qt::Horizontal, i18n(<span class="stringliteral">"Background Shading"</span>), <span class="keyword">this</span> );
<a name="l00550"></a>00550   lo1-&gt;addWidget( gb );
<a name="l00551"></a>00551 
<a name="l00552"></a>00552   QWidget *g = <span class="keyword">new</span> QWidget( gb );
<a name="l00553"></a>00553   QGridLayout *lo = <span class="keyword">new</span> QGridLayout( g, 2, 2 );
<a name="l00554"></a>00554   lo-&gt;setSpacing( KDialog::spacingHint() );
<a name="l00555"></a>00555   cbEnableShading = <span class="keyword">new</span> QCheckBox( i18n(<span class="stringliteral">"&amp;Enable background shading"</span>), g );
<a name="l00556"></a>00556   lo-&gt;addMultiCellWidget( cbEnableShading, 1, 1, 0, 1 );
<a name="l00557"></a>00557 
<a name="l00558"></a>00558   kcbViewShade = <span class="keyword">new</span> KColorButton( g );
<a name="l00559"></a>00559   lViewShade = <span class="keyword">new</span> QLabel( kcbViewShade, i18n(<span class="stringliteral">"&amp;Viewed documents' shade:"</span>), g );
<a name="l00560"></a>00560   lo-&gt;addWidget( lViewShade, 2, 0 );
<a name="l00561"></a>00561   lo-&gt;addWidget( kcbViewShade, 2, 1 );
<a name="l00562"></a>00562 
<a name="l00563"></a>00563   kcbEditShade = <span class="keyword">new</span> KColorButton( g );
<a name="l00564"></a>00564   lEditShade = <span class="keyword">new</span> QLabel( kcbEditShade, i18n(<span class="stringliteral">"&amp;Modified documents' shade:"</span>), g );
<a name="l00565"></a>00565   lo-&gt;addWidget( lEditShade, 3, 0 );
<a name="l00566"></a>00566   lo-&gt;addWidget( kcbEditShade, 3, 1 );
<a name="l00567"></a>00567 
<a name="l00568"></a>00568   lo1-&gt;insertStretch( -1, 10 );
<a name="l00569"></a>00569 
<a name="l00570"></a>00570   QWhatsThis::add( cbEnableShading, i18n(
<a name="l00571"></a>00571       <span class="stringliteral">"When background shading is enabled, documents that have been viewed "</span>
<a name="l00572"></a>00572       <span class="stringliteral">"or edited within the current session will have a shaded background. "</span>
<a name="l00573"></a>00573       <span class="stringliteral">"The most recent documents have the strongest shade."</span>) );
<a name="l00574"></a>00574   QWhatsThis::add( kcbViewShade, i18n(
<a name="l00575"></a>00575       <span class="stringliteral">"Set the color for shading viewed documents."</span>) );
<a name="l00576"></a>00576   QWhatsThis::add( kcbEditShade, i18n(
<a name="l00577"></a>00577       <span class="stringliteral">"Set the color for modified documents. This color is blended into "</span>
<a name="l00578"></a>00578       <span class="stringliteral">"the color for viewed files. The most recently edited documents get "</span>
<a name="l00579"></a>00579       <span class="stringliteral">"most of this color."</span>) );
<a name="l00580"></a>00580 
<a name="l00581"></a>00581   <a class="code" href="classKFLConfigPage.html#a3">reload</a>();
<a name="l00582"></a>00582 
<a name="l00583"></a>00583   <a class="code" href="classKFLConfigPage.html#i0">slotEnableChanged</a>();
<a name="l00584"></a>00584   connect( cbEnableShading, SIGNAL(toggled(<span class="keywordtype">bool</span>)), <span class="keyword">this</span>, SLOT(slotMyChanged()) );
<a name="l00585"></a>00585   connect( cbEnableShading, SIGNAL(toggled(<span class="keywordtype">bool</span>)), <span class="keyword">this</span>, SLOT(<a class="code" href="classKFLConfigPage.html#i0">slotEnableChanged</a>()) );
<a name="l00586"></a>00586   connect( kcbViewShade, SIGNAL(changed(<span class="keyword">const</span> QColor&amp;)), <span class="keyword">this</span>, SLOT(slotMyChanged()) );
<a name="l00587"></a>00587   connect( kcbEditShade, SIGNAL(changed(<span class="keyword">const</span> QColor&amp;)), <span class="keyword">this</span>, SLOT(slotMyChanged()) );
<a name="l00588"></a>00588 }
<a name="l00589"></a>00589 
<a name="l00590"></a><a class="code" href="classKFLConfigPage.html#a2">00590</a> <span class="keywordtype">void</span> <a class="code" href="classKFLConfigPage.html#a2">KFLConfigPage::apply</a>()
<a name="l00591"></a>00591 {
<a name="l00592"></a>00592   <span class="keywordflow">if</span> ( ! m_changed )
<a name="l00593"></a>00593     <span class="keywordflow">return</span>;
<a name="l00594"></a>00594   m_changed = <span class="keyword">false</span>;
<a name="l00595"></a>00595 
<a name="l00596"></a>00596   <span class="comment">// Change settings in the filelist</span>
<a name="l00597"></a>00597   m_filelist-&gt;<a class="code" href="classKateFileList.html#r8">m_viewShade</a> = kcbViewShade-&gt;color();
<a name="l00598"></a>00598   m_filelist-&gt;<a class="code" href="classKateFileList.html#r9">m_editShade</a> = kcbEditShade-&gt;color();
<a name="l00599"></a>00599   m_filelist-&gt;<a class="code" href="classKateFileList.html#r10">m_enableBgShading</a> = cbEnableShading-&gt;isChecked();
<a name="l00600"></a>00600   <span class="comment">// repaint the affected items</span>
<a name="l00601"></a>00601   m_filelist-&gt;triggerUpdate();
<a name="l00602"></a>00602 }
<a name="l00603"></a>00603 
<a name="l00604"></a><a class="code" href="classKFLConfigPage.html#a3">00604</a> <span class="keywordtype">void</span> <a class="code" href="classKFLConfigPage.html#a3">KFLConfigPage::reload</a>()
<a name="l00605"></a>00605 {
<a name="l00606"></a>00606   <span class="comment">// read in from config file</span>
<a name="l00607"></a>00607   KConfig *config = kapp-&gt;config();
<a name="l00608"></a>00608   config-&gt;setGroup( <span class="stringliteral">"Filelist"</span> );
<a name="l00609"></a>00609   cbEnableShading-&gt;setChecked( config-&gt;readBoolEntry(<span class="stringliteral">"Shading Enabled"</span>, &amp;m_filelist-&gt;<a class="code" href="classKateFileList.html#r10">m_enableBgShading</a> ) );
<a name="l00610"></a>00610   kcbViewShade-&gt;setColor( config-&gt;readColorEntry(<span class="stringliteral">"View Shade"</span>, &amp;m_filelist-&gt;<a class="code" href="classKateFileList.html#r8">m_viewShade</a> ) );
<a name="l00611"></a>00611   kcbEditShade-&gt;setColor( config-&gt;readColorEntry(<span class="stringliteral">"Edit Shade"</span>, &amp;m_filelist-&gt;<a class="code" href="classKateFileList.html#r9">m_editShade</a> ) );
<a name="l00612"></a>00612   m_changed = <span class="keyword">false</span>;
<a name="l00613"></a>00613 }
<a name="l00614"></a>00614 
<a name="l00615"></a><a class="code" href="classKFLConfigPage.html#i0">00615</a> <span class="keywordtype">void</span> <a class="code" href="classKFLConfigPage.html#i0">KFLConfigPage::slotEnableChanged</a>()
<a name="l00616"></a>00616 {
<a name="l00617"></a>00617   kcbViewShade-&gt;setEnabled( cbEnableShading-&gt;isChecked() );
<a name="l00618"></a>00618   kcbEditShade-&gt;setEnabled( cbEnableShading-&gt;isChecked() );
<a name="l00619"></a>00619   lViewShade-&gt;setEnabled( cbEnableShading-&gt;isChecked() );
<a name="l00620"></a>00620   lEditShade-&gt;setEnabled( cbEnableShading-&gt;isChecked() );
<a name="l00621"></a>00621 }
<a name="l00622"></a>00622 
<a name="l00623"></a>00623 <span class="keywordtype">void</span> KFLConfigPage::slotMyChanged()
<a name="l00624"></a>00624 {
<a name="l00625"></a>00625   m_changed = <span class="keyword">true</span>;
<a name="l00626"></a>00626   slotChanged();
<a name="l00627"></a>00627 }
<a name="l00628"></a>00628 
<a name="l00629"></a>00629 <span class="comment">//END KFLConfigPage</span>
<a name="l00630"></a>00630 
<a name="l00631"></a>00631 
<a name="l00632"></a>00632 <span class="comment">// kate: space-indent on; indent-width 2; replace-tabs on;</span>
</pre></div></div>
<div id="bottom-nav">
<img src="../../common/bottom2.png" align="right" height="59" width="227" alt="KDE Logo">
</div>
<div class="bottom">
This file is part of the documentation for kate Library Version 3.4.2.
</div>
<div class="bottom" style="color:#cccccc">
Documentation copyright &copy; 1996-2004 the KDE developers.<br>
Generated on Wed Jun 14 19:05:33 2006 by
<a href="http://www.doxygen.org/index.html">doxygen</a> 1.4.4 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>, &copy;&nbsp;1997-2003
</div>
</body>
</html>