Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > media > main-release > by-pkgid > 1a721e90d7ed9c4e71b633450322a910 > files > 5118

kdelibs-devel-doc-3.5.9-10mdv2008.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>kio/kfile: kpropertiesdialog.cpp Source File (kio/kfile)</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" />



</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>

  <div id="nav_header_title" align="left">KDE 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_right" style="text-align: left;">
/ <a href="../../..">API Reference</a>
 / <a href="../../html/index.html">kio</a> / <a href=".">kfile</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;">
    <a name="content"></a>


<!-- Generated by Doxygen 1.5.5 -->
<h1>kpropertiesdialog.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"></span>
<a name="l00003"></a>00003 <span class="comment">   Copyright (C) 1998, 1999 Torben Weis &lt;weis@kde.org&gt;</span>
<a name="l00004"></a>00004 <span class="comment">   Copyright (c) 1999, 2000 Preston Brown &lt;pbrown@kde.org&gt;</span>
<a name="l00005"></a>00005 <span class="comment">   Copyright (c) 2000 Simon Hausmann &lt;hausmann@kde.org&gt;</span>
<a name="l00006"></a>00006 <span class="comment">   Copyright (c) 2000 David Faure &lt;faure@kde.org&gt;</span>
<a name="l00007"></a>00007 <span class="comment">   Copyright (c) 2003 Waldo Bastian &lt;bastian@kde.org&gt;</span>
<a name="l00008"></a>00008 <span class="comment"></span>
<a name="l00009"></a>00009 <span class="comment">   This library is free software; you can redistribute it and/or</span>
<a name="l00010"></a>00010 <span class="comment">   modify it under the terms of the GNU Library General Public</span>
<a name="l00011"></a>00011 <span class="comment">   License as published by the Free Software Foundation; either</span>
<a name="l00012"></a>00012 <span class="comment">   version 2 of the License, or (at your option) any later version.</span>
<a name="l00013"></a>00013 <span class="comment"></span>
<a name="l00014"></a>00014 <span class="comment">   This library is distributed in the hope that it will be useful,</span>
<a name="l00015"></a>00015 <span class="comment">   but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00016"></a>00016 <span class="comment">   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
<a name="l00017"></a>00017 <span class="comment">   Library General Public License for more details.</span>
<a name="l00018"></a>00018 <span class="comment"></span>
<a name="l00019"></a>00019 <span class="comment">   You should have received a copy of the GNU Library General Public License</span>
<a name="l00020"></a>00020 <span class="comment">   along with this library; see the file COPYING.LIB.  If not, write to</span>
<a name="l00021"></a>00021 <span class="comment">   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,</span>
<a name="l00022"></a>00022 <span class="comment">   Boston, MA 02110-1301, USA.</span>
<a name="l00023"></a>00023 <span class="comment">*/</span>
<a name="l00024"></a>00024 
<a name="l00025"></a>00025 <span class="comment">/*</span>
<a name="l00026"></a>00026 <span class="comment"> * kpropertiesdialog.cpp</span>
<a name="l00027"></a>00027 <span class="comment"> * View/Edit Properties of files, locally or remotely</span>
<a name="l00028"></a>00028 <span class="comment"> *</span>
<a name="l00029"></a>00029 <span class="comment"> * some FilePermissionsPropsPlugin-changes by</span>
<a name="l00030"></a>00030 <span class="comment"> *  Henner Zeller &lt;zeller@think.de&gt;</span>
<a name="l00031"></a>00031 <span class="comment"> * some layout management by</span>
<a name="l00032"></a>00032 <span class="comment"> *  Bertrand Leconte &lt;B.Leconte@mail.dotcom.fr&gt;</span>
<a name="l00033"></a>00033 <span class="comment"> * the rest of the layout management, bug fixes, adaptation to libkio,</span>
<a name="l00034"></a>00034 <span class="comment"> * template feature by</span>
<a name="l00035"></a>00035 <span class="comment"> *  David Faure &lt;faure@kde.org&gt;</span>
<a name="l00036"></a>00036 <span class="comment"> * More layout, cleanups, and fixes by</span>
<a name="l00037"></a>00037 <span class="comment"> *  Preston Brown &lt;pbrown@kde.org&gt;</span>
<a name="l00038"></a>00038 <span class="comment"> * Plugin capability, cleanups and port to KDialogBase by</span>
<a name="l00039"></a>00039 <span class="comment"> *  Simon Hausmann &lt;hausmann@kde.org&gt;</span>
<a name="l00040"></a>00040 <span class="comment"> * KDesktopPropsPlugin by</span>
<a name="l00041"></a>00041 <span class="comment"> *  Waldo Bastian &lt;bastian@kde.org&gt;</span>
<a name="l00042"></a>00042 <span class="comment"> */</span>
<a name="l00043"></a>00043 
<a name="l00044"></a>00044 <span class="preprocessor">#include &lt;config.h&gt;</span>
<a name="l00045"></a>00045 <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {
<a name="l00046"></a>00046 <span class="preprocessor">#include &lt;pwd.h&gt;</span>
<a name="l00047"></a>00047 <span class="preprocessor">#include &lt;grp.h&gt;</span>
<a name="l00048"></a>00048 <span class="preprocessor">#include &lt;time.h&gt;</span>
<a name="l00049"></a>00049 <span class="preprocessor">#include &lt;sys/types.h&gt;</span>
<a name="l00050"></a>00050 }
<a name="l00051"></a>00051 <span class="preprocessor">#include &lt;unistd.h&gt;</span>
<a name="l00052"></a>00052 <span class="preprocessor">#include &lt;errno.h&gt;</span>
<a name="l00053"></a>00053 <span class="preprocessor">#include &lt;assert.h&gt;</span>
<a name="l00054"></a>00054 <span class="preprocessor">#include &lt;algorithm&gt;</span>
<a name="l00055"></a>00055 <span class="preprocessor">#include &lt;functional&gt;</span>
<a name="l00056"></a>00056 
<a name="l00057"></a>00057 <span class="preprocessor">#include &lt;qfile.h&gt;</span>
<a name="l00058"></a>00058 <span class="preprocessor">#include &lt;qdir.h&gt;</span>
<a name="l00059"></a>00059 <span class="preprocessor">#include &lt;qlabel.h&gt;</span>
<a name="l00060"></a>00060 <span class="preprocessor">#include &lt;qpushbutton.h&gt;</span>
<a name="l00061"></a>00061 <span class="preprocessor">#include &lt;qcheckbox.h&gt;</span>
<a name="l00062"></a>00062 <span class="preprocessor">#include &lt;qstrlist.h&gt;</span>
<a name="l00063"></a>00063 <span class="preprocessor">#include &lt;qstringlist.h&gt;</span>
<a name="l00064"></a>00064 <span class="preprocessor">#include &lt;qtextstream.h&gt;</span>
<a name="l00065"></a>00065 <span class="preprocessor">#include &lt;qpainter.h&gt;</span>
<a name="l00066"></a>00066 <span class="preprocessor">#include &lt;qlayout.h&gt;</span>
<a name="l00067"></a>00067 <span class="preprocessor">#include &lt;qcombobox.h&gt;</span>
<a name="l00068"></a>00068 <span class="preprocessor">#include &lt;qgroupbox.h&gt;</span>
<a name="l00069"></a>00069 <span class="preprocessor">#include &lt;qwhatsthis.h&gt;</span>
<a name="l00070"></a>00070 <span class="preprocessor">#include &lt;qtooltip.h&gt;</span>
<a name="l00071"></a>00071 <span class="preprocessor">#include &lt;qstyle.h&gt;</span>
<a name="l00072"></a>00072 <span class="preprocessor">#include &lt;qprogressbar.h&gt;</span>
<a name="l00073"></a>00073 <span class="preprocessor">#include &lt;qvbox.h&gt;</span>
<a name="l00074"></a>00074 <span class="preprocessor">#include &lt;qvaluevector.h&gt;</span>
<a name="l00075"></a>00075 
<a name="l00076"></a>00076 <span class="preprocessor">#ifdef USE_POSIX_ACL</span>
<a name="l00077"></a>00077 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {
<a name="l00078"></a>00078 <span class="preprocessor">#include &lt;sys/param.h&gt;</span>
<a name="l00079"></a>00079 <span class="preprocessor">#ifdef HAVE_SYS_MOUNT_H</span>
<a name="l00080"></a>00080 <span class="preprocessor"></span><span class="preprocessor">#include &lt;sys/mount.h&gt;</span>
<a name="l00081"></a>00081 <span class="preprocessor">#endif</span>
<a name="l00082"></a>00082 <span class="preprocessor"></span><span class="preprocessor">#ifdef HAVE_SYS_XATTR_H</span>
<a name="l00083"></a>00083 <span class="preprocessor"></span><span class="preprocessor">#include &lt;sys/xattr.h&gt;</span>
<a name="l00084"></a>00084 <span class="preprocessor">#endif</span>
<a name="l00085"></a>00085 <span class="preprocessor"></span>}
<a name="l00086"></a>00086 <span class="preprocessor">#endif</span>
<a name="l00087"></a>00087 <span class="preprocessor"></span>
<a name="l00088"></a>00088 <span class="preprocessor">#include &lt;kapplication.h&gt;</span>
<a name="l00089"></a>00089 <span class="preprocessor">#include &lt;kdialog.h&gt;</span>
<a name="l00090"></a>00090 <span class="preprocessor">#include &lt;kdirsize.h&gt;</span>
<a name="l00091"></a>00091 <span class="preprocessor">#include &lt;kdirwatch.h&gt;</span>
<a name="l00092"></a>00092 <span class="preprocessor">#include &lt;kdirnotify_stub.h&gt;</span>
<a name="l00093"></a>00093 <span class="preprocessor">#include &lt;kdiskfreesp.h&gt;</span>
<a name="l00094"></a>00094 <span class="preprocessor">#include &lt;kdebug.h&gt;</span>
<a name="l00095"></a>00095 <span class="preprocessor">#include &lt;kdesktopfile.h&gt;</span>
<a name="l00096"></a>00096 <span class="preprocessor">#include &lt;kicondialog.h&gt;</span>
<a name="l00097"></a>00097 <span class="preprocessor">#include &lt;kurl.h&gt;</span>
<a name="l00098"></a>00098 <span class="preprocessor">#include &lt;kurlrequester.h&gt;</span>
<a name="l00099"></a>00099 <span class="preprocessor">#include &lt;klocale.h&gt;</span>
<a name="l00100"></a>00100 <span class="preprocessor">#include &lt;kglobal.h&gt;</span>
<a name="l00101"></a>00101 <span class="preprocessor">#include &lt;kglobalsettings.h&gt;</span>
<a name="l00102"></a>00102 <span class="preprocessor">#include &lt;kstandarddirs.h&gt;</span>
<a name="l00103"></a>00103 <span class="preprocessor">#include &lt;kio/job.h&gt;</span>
<a name="l00104"></a>00104 <span class="preprocessor">#include &lt;kio/chmodjob.h&gt;</span>
<a name="l00105"></a>00105 <span class="preprocessor">#include &lt;kio/renamedlg.h&gt;</span>
<a name="l00106"></a>00106 <span class="preprocessor">#include &lt;kio/netaccess.h&gt;</span>
<a name="l00107"></a>00107 <span class="preprocessor">#include &lt;kio/kservicetypefactory.h&gt;</span>
<a name="l00108"></a>00108 <span class="preprocessor">#include &lt;kfiledialog.h&gt;</span>
<a name="l00109"></a>00109 <span class="preprocessor">#include &lt;kmimetype.h&gt;</span>
<a name="l00110"></a>00110 <span class="preprocessor">#include &lt;kmountpoint.h&gt;</span>
<a name="l00111"></a>00111 <span class="preprocessor">#include &lt;kiconloader.h&gt;</span>
<a name="l00112"></a>00112 <span class="preprocessor">#include &lt;kmessagebox.h&gt;</span>
<a name="l00113"></a>00113 <span class="preprocessor">#include &lt;kservice.h&gt;</span>
<a name="l00114"></a>00114 <span class="preprocessor">#include &lt;kcompletion.h&gt;</span>
<a name="l00115"></a>00115 <span class="preprocessor">#include &lt;klineedit.h&gt;</span>
<a name="l00116"></a>00116 <span class="preprocessor">#include &lt;kseparator.h&gt;</span>
<a name="l00117"></a>00117 <span class="preprocessor">#include &lt;ksqueezedtextlabel.h&gt;</span>
<a name="l00118"></a>00118 <span class="preprocessor">#include &lt;klibloader.h&gt;</span>
<a name="l00119"></a>00119 <span class="preprocessor">#include &lt;ktrader.h&gt;</span>
<a name="l00120"></a>00120 <span class="preprocessor">#include &lt;kparts/componentfactory.h&gt;</span>
<a name="l00121"></a>00121 <span class="preprocessor">#include &lt;kmetaprops.h&gt;</span>
<a name="l00122"></a>00122 <span class="preprocessor">#include &lt;kpreviewprops.h&gt;</span>
<a name="l00123"></a>00123 <span class="preprocessor">#include &lt;kprocess.h&gt;</span>
<a name="l00124"></a>00124 <span class="preprocessor">#include &lt;krun.h&gt;</span>
<a name="l00125"></a>00125 <span class="preprocessor">#include &lt;klistview.h&gt;</span>
<a name="l00126"></a>00126 <span class="preprocessor">#include &lt;kacl.h&gt;</span>
<a name="l00127"></a>00127 <span class="preprocessor">#include "kfilesharedlg.h"</span>
<a name="l00128"></a>00128 
<a name="l00129"></a>00129 <span class="preprocessor">#include "kpropertiesdesktopbase.h"</span>
<a name="l00130"></a>00130 <span class="preprocessor">#include "kpropertiesdesktopadvbase.h"</span>
<a name="l00131"></a>00131 <span class="preprocessor">#include "kpropertiesmimetypebase.h"</span>
<a name="l00132"></a>00132 <span class="preprocessor">#ifdef USE_POSIX_ACL</span>
<a name="l00133"></a>00133 <span class="preprocessor"></span><span class="preprocessor">#include "kacleditwidget.h"</span>
<a name="l00134"></a>00134 <span class="preprocessor">#endif</span>
<a name="l00135"></a>00135 <span class="preprocessor"></span>
<a name="l00136"></a>00136 <span class="preprocessor">#include "kpropertiesdialog.h"</span>
<a name="l00137"></a>00137 
<a name="l00138"></a>00138 <span class="preprocessor">#ifdef Q_WS_WIN</span>
<a name="l00139"></a>00139 <span class="preprocessor"></span><span class="preprocessor"># include &lt;win32_utils.h&gt;</span>
<a name="l00140"></a>00140 <span class="preprocessor">#endif</span>
<a name="l00141"></a>00141 <span class="preprocessor"></span>
<a name="l00142"></a>00142 <span class="keyword">static</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> nameFromFileName(<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> nameStr)
<a name="l00143"></a>00143 {
<a name="l00144"></a>00144    <span class="keywordflow">if</span> ( nameStr.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#endsWith">endsWith</a>(<span class="stringliteral">".desktop"</span>) )
<a name="l00145"></a>00145       nameStr.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#truncate">truncate</a>( nameStr.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#length">length</a>() - 8 );
<a name="l00146"></a>00146    <span class="keywordflow">if</span> ( nameStr.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#endsWith">endsWith</a>(<span class="stringliteral">".kdelnk"</span>) )
<a name="l00147"></a>00147       nameStr.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#truncate">truncate</a>( nameStr.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#length">length</a>() - 7 );
<a name="l00148"></a>00148    <span class="comment">// Make it human-readable (%2F =&gt; '/', ...)</span>
<a name="l00149"></a>00149    nameStr = KIO::decodeFileName( nameStr );
<a name="l00150"></a>00150    <span class="keywordflow">return</span> nameStr;
<a name="l00151"></a>00151 }
<a name="l00152"></a>00152 
<a name="l00153"></a>00153 mode_t KFilePermissionsPropsPlugin::fperm[3][4] = {
<a name="l00154"></a>00154         {S_IRUSR, S_IWUSR, S_IXUSR, S_ISUID},
<a name="l00155"></a>00155         {S_IRGRP, S_IWGRP, S_IXGRP, S_ISGID},
<a name="l00156"></a>00156         {S_IROTH, S_IWOTH, S_IXOTH, S_ISVTX}
<a name="l00157"></a>00157     };
<a name="l00158"></a>00158 
<a name="l00159"></a>00159 <span class="keyword">class </span>KPropertiesDialog::KPropertiesDialogPrivate
<a name="l00160"></a>00160 {
<a name="l00161"></a>00161 <span class="keyword">public</span>:
<a name="l00162"></a>00162   KPropertiesDialogPrivate()
<a name="l00163"></a>00163   {
<a name="l00164"></a>00164     m_aborted = <span class="keyword">false</span>;
<a name="l00165"></a>00165     fileSharePage = 0;
<a name="l00166"></a>00166   }
<a name="l00167"></a>00167   ~KPropertiesDialogPrivate()
<a name="l00168"></a>00168   {
<a name="l00169"></a>00169   }
<a name="l00170"></a>00170   <span class="keywordtype">bool</span> m_aborted:1;
<a name="l00171"></a>00171   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwidget.html">QWidget</a>* fileSharePage;
<a name="l00172"></a>00172 };
<a name="l00173"></a>00173 
<a name="l00174"></a><a class="code" href="classKPropertiesDialog.html#1c11179efa2e4f62bb91c8faa1f77a38">00174</a> <a class="code" href="classKPropertiesDialog.html#1c11179efa2e4f62bb91c8faa1f77a38" title="Brings up a Properties dialog, as shown above.">KPropertiesDialog::KPropertiesDialog</a> (KFileItem* item,
<a name="l00175"></a>00175                                       <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwidget.html">QWidget</a>* parent, <span class="keyword">const</span> <span class="keywordtype">char</span>* name,
<a name="l00176"></a>00176                                       <span class="keywordtype">bool</span> modal, <span class="keywordtype">bool</span> autoShow)
<a name="l00177"></a>00177   : KDialogBase (KDialogBase::Tabbed, i18n( <span class="stringliteral">"Properties for %1"</span> ).arg(KIO::decodeFileName(item-&gt;url().fileName())),
<a name="l00178"></a>00178                  KDialogBase::Ok | KDialogBase::Cancel, KDialogBase::Ok,
<a name="l00179"></a>00179                  parent, name, modal)
<a name="l00180"></a>00180 {
<a name="l00181"></a>00181   d = <span class="keyword">new</span> KPropertiesDialogPrivate;
<a name="l00182"></a>00182   assert( item );
<a name="l00183"></a>00183   m_items.append( <span class="keyword">new</span> KFileItem(*item) ); <span class="comment">// deep copy</span>
<a name="l00184"></a>00184 
<a name="l00185"></a>00185   m_singleUrl = item-&gt;url();
<a name="l00186"></a>00186   assert(!m_singleUrl.isEmpty());
<a name="l00187"></a>00187 
<a name="l00188"></a>00188   init (modal, autoShow);
<a name="l00189"></a>00189 }
<a name="l00190"></a>00190 
<a name="l00191"></a><a class="code" href="classKPropertiesDialog.html#99a5a1af92ef6b2d33990b30e2314075">00191</a> <a class="code" href="classKPropertiesDialog.html#1c11179efa2e4f62bb91c8faa1f77a38" title="Brings up a Properties dialog, as shown above.">KPropertiesDialog::KPropertiesDialog</a> (<span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a>&amp; title,
<a name="l00192"></a>00192                                       <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwidget.html">QWidget</a>* parent, <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">bool</span> modal)
<a name="l00193"></a>00193   : KDialogBase (KDialogBase::Tabbed, i18n (<span class="stringliteral">"Properties for %1"</span>).arg(title),
<a name="l00194"></a>00194                  KDialogBase::Ok | KDialogBase::Cancel, KDialogBase::Ok,
<a name="l00195"></a>00195                  parent, name, modal)
<a name="l00196"></a>00196 {
<a name="l00197"></a>00197   d = <span class="keyword">new</span> KPropertiesDialogPrivate;
<a name="l00198"></a>00198 
<a name="l00199"></a>00199   init (modal, <span class="keyword">false</span>);
<a name="l00200"></a>00200 }
<a name="l00201"></a>00201 
<a name="l00202"></a><a class="code" href="classKPropertiesDialog.html#d3065ec562f8327d8277621764c6b4d3">00202</a> <a class="code" href="classKPropertiesDialog.html#1c11179efa2e4f62bb91c8faa1f77a38" title="Brings up a Properties dialog, as shown above.">KPropertiesDialog::KPropertiesDialog</a> (KFileItemList _items,
<a name="l00203"></a>00203                                       <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwidget.html">QWidget</a>* parent, <span class="keyword">const</span> <span class="keywordtype">char</span>* name,
<a name="l00204"></a>00204                                       <span class="keywordtype">bool</span> modal, <span class="keywordtype">bool</span> autoShow)
<a name="l00205"></a>00205   : KDialogBase (KDialogBase::Tabbed,
<a name="l00206"></a>00206                  <span class="comment">// TODO: replace &lt;never used&gt; with "Properties for 1 item". It's very confusing how it has to be translated otherwise</span>
<a name="l00207"></a>00207                  <span class="comment">// (empty translation before the "\n" is not allowed by msgfmt...)</span>
<a name="l00208"></a>00208          _items.count()&gt;1 ? i18n( <span class="stringliteral">"&lt;never used&gt;"</span>,<span class="stringliteral">"Properties for %n Selected Items"</span>,_items.count()) :
<a name="l00209"></a>00209          i18n( <span class="stringliteral">"Properties for %1"</span> ).arg(KIO::decodeFileName(_items.first()-&gt;url().fileName())),
<a name="l00210"></a>00210                  KDialogBase::Ok | KDialogBase::Cancel, KDialogBase::Ok,
<a name="l00211"></a>00211                  parent, name, modal)
<a name="l00212"></a>00212 {
<a name="l00213"></a>00213   d = <span class="keyword">new</span> KPropertiesDialogPrivate;
<a name="l00214"></a>00214 
<a name="l00215"></a>00215   assert( !_items.isEmpty() );
<a name="l00216"></a>00216   m_singleUrl = _items.first()-&gt;url();
<a name="l00217"></a>00217   assert(!m_singleUrl.isEmpty());
<a name="l00218"></a>00218 
<a name="l00219"></a>00219   KFileItemListIterator it ( _items );
<a name="l00220"></a>00220   <span class="comment">// Deep copy</span>
<a name="l00221"></a>00221   <span class="keywordflow">for</span> ( ; it.current(); ++it )
<a name="l00222"></a>00222       m_items.append( <span class="keyword">new</span> KFileItem( **it ) );
<a name="l00223"></a>00223 
<a name="l00224"></a>00224   init (modal, autoShow);
<a name="l00225"></a>00225 }
<a name="l00226"></a>00226 
<a name="l00227"></a>00227 <span class="preprocessor">#ifndef KDE_NO_COMPAT</span>
<a name="l00228"></a><a class="code" href="classKPropertiesDialog.html#a2804772d67ed91fdfcafe2fcb160fb1">00228</a> <span class="preprocessor"></span><a class="code" href="classKPropertiesDialog.html#1c11179efa2e4f62bb91c8faa1f77a38" title="Brings up a Properties dialog, as shown above.">KPropertiesDialog::KPropertiesDialog</a> (<span class="keyword">const</span> KURL&amp; _url, mode_t <span class="comment">/* _mode is now unused */</span>,
<a name="l00229"></a>00229                                       <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwidget.html">QWidget</a>* parent, <span class="keyword">const</span> <span class="keywordtype">char</span>* name,
<a name="l00230"></a>00230                                       <span class="keywordtype">bool</span> modal, <span class="keywordtype">bool</span> autoShow)
<a name="l00231"></a>00231   : KDialogBase (KDialogBase::Tabbed,
<a name="l00232"></a>00232          i18n( <span class="stringliteral">"Properties for %1"</span> ).arg(KIO::decodeFileName(_url.fileName())),
<a name="l00233"></a>00233                  KDialogBase::Ok | KDialogBase::Cancel, KDialogBase::Ok,
<a name="l00234"></a>00234                  parent, name, modal),
<a name="l00235"></a>00235   m_singleUrl( _url )
<a name="l00236"></a>00236 {
<a name="l00237"></a>00237   d = <span class="keyword">new</span> KPropertiesDialogPrivate;
<a name="l00238"></a>00238 
<a name="l00239"></a>00239   KIO::UDSEntry entry;
<a name="l00240"></a>00240 
<a name="l00241"></a>00241   KIO::NetAccess::stat(_url, entry, parent);
<a name="l00242"></a>00242 
<a name="l00243"></a>00243   m_items.append( <span class="keyword">new</span> KFileItem( entry, _url ) );
<a name="l00244"></a>00244   init (modal, autoShow);
<a name="l00245"></a>00245 }
<a name="l00246"></a>00246 <span class="preprocessor">#endif</span>
<a name="l00247"></a>00247 <span class="preprocessor"></span>
<a name="l00248"></a><a class="code" href="classKPropertiesDialog.html#f3be2d3670ea26208cb46b7df6c6b551">00248</a> <a class="code" href="classKPropertiesDialog.html#1c11179efa2e4f62bb91c8faa1f77a38" title="Brings up a Properties dialog, as shown above.">KPropertiesDialog::KPropertiesDialog</a> (<span class="keyword">const</span> KURL&amp; _url,
<a name="l00249"></a>00249                                       <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwidget.html">QWidget</a>* parent, <span class="keyword">const</span> <span class="keywordtype">char</span>* name,
<a name="l00250"></a>00250                                       <span class="keywordtype">bool</span> modal, <span class="keywordtype">bool</span> autoShow)
<a name="l00251"></a>00251   : KDialogBase (KDialogBase::Tabbed,
<a name="l00252"></a>00252          i18n( <span class="stringliteral">"Properties for %1"</span> ).arg(KIO::decodeFileName(_url.fileName())),
<a name="l00253"></a>00253                  KDialogBase::Ok | KDialogBase::Cancel, KDialogBase::Ok,
<a name="l00254"></a>00254                  parent, name, modal),
<a name="l00255"></a>00255   m_singleUrl( _url )
<a name="l00256"></a>00256 {
<a name="l00257"></a>00257   d = <span class="keyword">new</span> KPropertiesDialogPrivate;
<a name="l00258"></a>00258 
<a name="l00259"></a>00259   KIO::UDSEntry entry;
<a name="l00260"></a>00260 
<a name="l00261"></a>00261   KIO::NetAccess::stat(_url, entry, parent);
<a name="l00262"></a>00262 
<a name="l00263"></a>00263   m_items.append( <span class="keyword">new</span> KFileItem( entry, _url ) );
<a name="l00264"></a>00264   init (modal, autoShow);
<a name="l00265"></a>00265 }
<a name="l00266"></a>00266 
<a name="l00267"></a><a class="code" href="classKPropertiesDialog.html#ef405042e036f943754db49327922861">00267</a> <a class="code" href="classKPropertiesDialog.html#1c11179efa2e4f62bb91c8faa1f77a38" title="Brings up a Properties dialog, as shown above.">KPropertiesDialog::KPropertiesDialog</a> (<span class="keyword">const</span> KURL&amp; _tempUrl, <span class="keyword">const</span> KURL&amp; _currentDir,
<a name="l00268"></a>00268                                       <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a>&amp; _defaultName,
<a name="l00269"></a>00269                                       <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwidget.html">QWidget</a>* parent, <span class="keyword">const</span> <span class="keywordtype">char</span>* name,
<a name="l00270"></a>00270                                       <span class="keywordtype">bool</span> modal, <span class="keywordtype">bool</span> autoShow)
<a name="l00271"></a>00271   : KDialogBase (KDialogBase::Tabbed,
<a name="l00272"></a>00272          i18n( <span class="stringliteral">"Properties for %1"</span> ).arg(KIO::decodeFileName(_tempUrl.fileName())),
<a name="l00273"></a>00273                  KDialogBase::Ok | KDialogBase::Cancel, KDialogBase::Ok,
<a name="l00274"></a>00274                  parent, name, modal),
<a name="l00275"></a>00275 
<a name="l00276"></a>00276   m_singleUrl( _tempUrl ),
<a name="l00277"></a>00277   m_defaultName( _defaultName ),
<a name="l00278"></a>00278   m_currentDir( _currentDir )
<a name="l00279"></a>00279 {
<a name="l00280"></a>00280   d = <span class="keyword">new</span> KPropertiesDialogPrivate;
<a name="l00281"></a>00281 
<a name="l00282"></a>00282   assert(!m_singleUrl.isEmpty());
<a name="l00283"></a>00283 
<a name="l00284"></a>00284   <span class="comment">// Create the KFileItem for the _template_ file, in order to read from it.</span>
<a name="l00285"></a>00285   m_items.append( <span class="keyword">new</span> KFileItem( KFileItem::Unknown, KFileItem::Unknown, m_singleUrl ) );
<a name="l00286"></a>00286   init (modal, autoShow);
<a name="l00287"></a>00287 }
<a name="l00288"></a>00288 
<a name="l00289"></a><a class="code" href="classKPropertiesDialog.html#0f8ac6e772afe95ddcf852785aa73283">00289</a> <span class="keywordtype">bool</span> <a class="code" href="classKPropertiesDialog.html#0f8ac6e772afe95ddcf852785aa73283" title="Immediately displays a Properties dialog using constructor with the same parameters...">KPropertiesDialog::showDialog</a>(KFileItem* <a class="code" href="classKPropertiesDialog.html#f04def59643b5afac5c57d374b83cdb7">item</a>, <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwidget.html">QWidget</a>* parent,
<a name="l00290"></a>00290                                    <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">bool</span> modal)
<a name="l00291"></a>00291 {
<a name="l00292"></a>00292 <span class="preprocessor">#ifdef Q_WS_WIN</span>
<a name="l00293"></a>00293 <span class="preprocessor"></span>  <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> localPath = item-&gt;localPath();
<a name="l00294"></a>00294   <span class="keywordflow">if</span> (!localPath.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isEmpty">isEmpty</a>())
<a name="l00295"></a>00295     <span class="keywordflow">return</span> showWin32FilePropertyDialog(localPath);
<a name="l00296"></a>00296 <span class="preprocessor">#endif</span>
<a name="l00297"></a>00297 <span class="preprocessor"></span>  <span class="keyword">new</span> <a class="code" href="classKPropertiesDialog.html#1c11179efa2e4f62bb91c8faa1f77a38" title="Brings up a Properties dialog, as shown above.">KPropertiesDialog</a>(item, parent, name, modal);
<a name="l00298"></a>00298   <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l00299"></a>00299 }
<a name="l00300"></a>00300 
<a name="l00301"></a><a class="code" href="classKPropertiesDialog.html#bc9d4f38a17264afea5f7a7adb466cef">00301</a> <span class="keywordtype">bool</span> <a class="code" href="classKPropertiesDialog.html#0f8ac6e772afe95ddcf852785aa73283" title="Immediately displays a Properties dialog using constructor with the same parameters...">KPropertiesDialog::showDialog</a>(<span class="keyword">const</span> KURL&amp; _url, <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwidget.html">QWidget</a>* parent,
<a name="l00302"></a>00302                                    <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">bool</span> modal)
<a name="l00303"></a>00303 {
<a name="l00304"></a>00304 <span class="preprocessor">#ifdef Q_WS_WIN</span>
<a name="l00305"></a>00305 <span class="preprocessor"></span>  <span class="keywordflow">if</span> (_url.isLocalFile())
<a name="l00306"></a>00306     <span class="keywordflow">return</span> showWin32FilePropertyDialog( _url.path() );
<a name="l00307"></a>00307 <span class="preprocessor">#endif</span>
<a name="l00308"></a>00308 <span class="preprocessor"></span>  <span class="keyword">new</span> <a class="code" href="classKPropertiesDialog.html#1c11179efa2e4f62bb91c8faa1f77a38" title="Brings up a Properties dialog, as shown above.">KPropertiesDialog</a>(_url, parent, name, modal);
<a name="l00309"></a>00309   <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l00310"></a>00310 }
<a name="l00311"></a>00311 
<a name="l00312"></a><a class="code" href="classKPropertiesDialog.html#35da7fdac81cf353a882ea0ebdd096ef">00312</a> <span class="keywordtype">bool</span> <a class="code" href="classKPropertiesDialog.html#0f8ac6e772afe95ddcf852785aa73283" title="Immediately displays a Properties dialog using constructor with the same parameters...">KPropertiesDialog::showDialog</a>(<span class="keyword">const</span> KFileItemList&amp; _items, <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwidget.html">QWidget</a>* parent,
<a name="l00313"></a>00313                                    <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">bool</span> modal)
<a name="l00314"></a>00314 {
<a name="l00315"></a>00315   <span class="keywordflow">if</span> (_items.count()==1)
<a name="l00316"></a>00316     <span class="keywordflow">return</span> <a class="code" href="classKPropertiesDialog.html#0f8ac6e772afe95ddcf852785aa73283" title="Immediately displays a Properties dialog using constructor with the same parameters...">KPropertiesDialog::showDialog</a>(_items.getFirst(), parent, name, modal);
<a name="l00317"></a>00317   <span class="keyword">new</span> <a class="code" href="classKPropertiesDialog.html#1c11179efa2e4f62bb91c8faa1f77a38" title="Brings up a Properties dialog, as shown above.">KPropertiesDialog</a>(_items, parent, name, modal);
<a name="l00318"></a>00318   <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l00319"></a>00319 }
<a name="l00320"></a>00320 
<a name="l00321"></a>00321 <span class="keywordtype">void</span> KPropertiesDialog::init (<span class="keywordtype">bool</span> modal, <span class="keywordtype">bool</span> autoShow)
<a name="l00322"></a>00322 {
<a name="l00323"></a>00323   m_pageList.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qptrlist.html#setAutoDelete">setAutoDelete</a>( <span class="keyword">true</span> );
<a name="l00324"></a>00324   m_items.setAutoDelete( <span class="keyword">true</span> );
<a name="l00325"></a>00325 
<a name="l00326"></a>00326   insertPages();
<a name="l00327"></a>00327 
<a name="l00328"></a>00328   <span class="keywordflow">if</span> (autoShow)
<a name="l00329"></a>00329     {
<a name="l00330"></a>00330       <span class="keywordflow">if</span> (!modal)
<a name="l00331"></a>00331         show();
<a name="l00332"></a>00332       <span class="keywordflow">else</span>
<a name="l00333"></a>00333         exec();
<a name="l00334"></a>00334     }
<a name="l00335"></a>00335 }
<a name="l00336"></a>00336 
<a name="l00337"></a><a class="code" href="classKPropertiesDialog.html#46f87f554cb37f8b88b138573dd2b539">00337</a> <span class="keywordtype">void</span> <a class="code" href="classKPropertiesDialog.html#46f87f554cb37f8b88b138573dd2b539" title="Shows the page that was previously set by setFileSharingPage(), or does nothing if...">KPropertiesDialog::showFileSharingPage</a>()
<a name="l00338"></a>00338 {
<a name="l00339"></a>00339   <span class="keywordflow">if</span> (d-&gt;fileSharePage) {
<a name="l00340"></a>00340      showPage( pageIndex( d-&gt;fileSharePage));
<a name="l00341"></a>00341   }
<a name="l00342"></a>00342 }
<a name="l00343"></a>00343 
<a name="l00344"></a><a class="code" href="classKPropertiesDialog.html#5aaf5d03c8c311bce0d0b71ffff5e586">00344</a> <span class="keywordtype">void</span> <a class="code" href="classKPropertiesDialog.html#5aaf5d03c8c311bce0d0b71ffff5e586" title="Sets the file sharing page.">KPropertiesDialog::setFileSharingPage</a>(<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwidget.html">QWidget</a>* page) {
<a name="l00345"></a>00345   d-&gt;fileSharePage = page;
<a name="l00346"></a>00346 }
<a name="l00347"></a>00347 
<a name="l00348"></a>00348 
<a name="l00349"></a><a class="code" href="classKPropertiesDialog.html#26e3281f71d6ab7bbbcc03a557c5b791">00349</a> <span class="keywordtype">void</span> <a class="code" href="classKPropertiesDialog.html#26e3281f71d6ab7bbbcc03a557c5b791" title="Call this to make the filename lineedit readonly, to prevent the user from renaming...">KPropertiesDialog::setFileNameReadOnly</a>( <span class="keywordtype">bool</span> ro )
<a name="l00350"></a>00350 {
<a name="l00351"></a>00351     <a class="code" href="classKPropsDlgPlugin.html" title="A Plugin in the Properties dialog This is an abstract class.">KPropsDlgPlugin</a> *it;
<a name="l00352"></a>00352 
<a name="l00353"></a>00353     <span class="keywordflow">for</span> ( it=m_pageList.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qptrlist.html#first">first</a>(); it != 0L; it=m_pageList.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qptrlist.html#next">next</a>() )
<a name="l00354"></a>00354     {
<a name="l00355"></a>00355         <a class="code" href="classKFilePropsPlugin.html" title="&amp;#39;General&amp;#39; plugin This plugin displays the name of the file, its size and...">KFilePropsPlugin</a>* plugin = <span class="keyword">dynamic_cast&lt;</span><a class="code" href="classKFilePropsPlugin.html" title="&amp;#39;General&amp;#39; plugin This plugin displays the name of the file, its size and...">KFilePropsPlugin</a>*<span class="keyword">&gt;</span>(it);
<a name="l00356"></a>00356         <span class="keywordflow">if</span> ( plugin ) {
<a name="l00357"></a>00357             plugin-&gt;<a class="code" href="classKFilePropsPlugin.html#086352e2dff19b3972fec2f6df933cb7">setFileNameReadOnly</a>( ro );
<a name="l00358"></a>00358             <span class="keywordflow">break</span>;
<a name="l00359"></a>00359         }
<a name="l00360"></a>00360     }
<a name="l00361"></a>00361 }
<a name="l00362"></a>00362 
<a name="l00363"></a>00363 <span class="keywordtype">void</span> KPropertiesDialog::slotStatResult( KIO::Job * )
<a name="l00364"></a>00364 {
<a name="l00365"></a>00365 }
<a name="l00366"></a>00366 
<a name="l00367"></a><a class="code" href="classKPropertiesDialog.html#ca767c3e7a17995b1b7a07eed1a9b15a">00367</a> <a class="code" href="classKPropertiesDialog.html#ca767c3e7a17995b1b7a07eed1a9b15a" title="Cleans up the properties dialog and frees any associated resources, including the...">KPropertiesDialog::~KPropertiesDialog</a>()
<a name="l00368"></a>00368 {
<a name="l00369"></a>00369   m_pageList.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qptrlist.html#clear">clear</a>();
<a name="l00370"></a>00370   <span class="keyword">delete</span> d;
<a name="l00371"></a>00371 }
<a name="l00372"></a>00372 
<a name="l00373"></a><a class="code" href="classKPropertiesDialog.html#0c65bc7f29308405f7f9dde77c8f6fdf">00373</a> <span class="keywordtype">void</span> <a class="code" href="classKPropertiesDialog.html#0c65bc7f29308405f7f9dde77c8f6fdf" title="Adds a &amp;quot;3rd party&amp;quot; properties plugin to the dialog.">KPropertiesDialog::insertPlugin</a> (<a class="code" href="classKPropsDlgPlugin.html" title="A Plugin in the Properties dialog This is an abstract class.">KPropsDlgPlugin</a>* plugin)
<a name="l00374"></a>00374 {
<a name="l00375"></a>00375   connect (plugin, SIGNAL (changed ()),
<a name="l00376"></a>00376            plugin, SLOT (setDirty ()));
<a name="l00377"></a>00377 
<a name="l00378"></a>00378   m_pageList.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qptrlist.html#append">append</a> (plugin);
<a name="l00379"></a>00379 }
<a name="l00380"></a>00380 
<a name="l00381"></a><a class="code" href="classKPropertiesDialog.html#f1705a23123e4bf98d274cf647b5c413">00381</a> <span class="keywordtype">bool</span> <a class="code" href="classKPropertiesDialog.html#f1705a23123e4bf98d274cf647b5c413" title="Determine whether there are any property pages available for the given file items...">KPropertiesDialog::canDisplay</a>( KFileItemList _items )
<a name="l00382"></a>00382 {
<a name="l00383"></a>00383   <span class="comment">// TODO: cache the result of those calls. Currently we parse .desktop files far too many times</span>
<a name="l00384"></a>00384   <span class="keywordflow">return</span> <a class="code" href="classKFilePropsPlugin.html#3e3d1f7eade99e76cbaab017b6f62e5d" title="Tests whether the files specified by _items need a &amp;#39;General&amp;#39; plugin.">KFilePropsPlugin::supports</a>( _items ) ||
<a name="l00385"></a>00385          <a class="code" href="classKFilePermissionsPropsPlugin.html#e1800d8c4c9dd56c50c532117895acb4" title="Tests whether the file specified by _items needs a &amp;#39;Permissions&amp;#39; plugin.">KFilePermissionsPropsPlugin::supports</a>( _items ) ||
<a name="l00386"></a>00386          KDesktopPropsPlugin::supports( _items ) ||
<a name="l00387"></a>00387          KBindingPropsPlugin::supports( _items ) ||
<a name="l00388"></a>00388          KURLPropsPlugin::supports( _items ) ||
<a name="l00389"></a>00389          KDevicePropsPlugin::supports( _items ) ||
<a name="l00390"></a>00390          <a class="code" href="classKFileMetaPropsPlugin.html#65e73bc476c67fd6736329437f27204f" title="Tests whether the file specified by _items has a &amp;#39;MetaInfo&amp;#39; plugin.">KFileMetaPropsPlugin::supports</a>( _items ) ||
<a name="l00391"></a>00391          <a class="code" href="classKPreviewPropsPlugin.html#e32ca21994d9479cb61ef74c73ee681d" title="Tests whether a preview for the first item should be shown.">KPreviewPropsPlugin::supports</a>( _items );
<a name="l00392"></a>00392 }
<a name="l00393"></a>00393 
<a name="l00394"></a><a class="code" href="classKPropertiesDialog.html#aae2a60507ae331b4226440cae8e87c0">00394</a> <span class="keywordtype">void</span> <a class="code" href="classKPropertiesDialog.html#aae2a60507ae331b4226440cae8e87c0" title="Called when the user presses &amp;#39;Ok&amp;#39;.">KPropertiesDialog::slotOk</a>()
<a name="l00395"></a>00395 {
<a name="l00396"></a>00396   <a class="code" href="classKPropsDlgPlugin.html" title="A Plugin in the Properties dialog This is an abstract class.">KPropsDlgPlugin</a> *page;
<a name="l00397"></a>00397   d-&gt;m_aborted = <span class="keyword">false</span>;
<a name="l00398"></a>00398 
<a name="l00399"></a>00399   <a class="code" href="classKFilePropsPlugin.html" title="&amp;#39;General&amp;#39; plugin This plugin displays the name of the file, its size and...">KFilePropsPlugin</a> * filePropsPlugin = 0L;
<a name="l00400"></a>00400   <span class="keywordflow">if</span> ( m_pageList.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qptrlist.html#first">first</a>()-&gt;isA(<span class="stringliteral">"KFilePropsPlugin"</span>) )
<a name="l00401"></a>00401     filePropsPlugin = static_cast&lt;KFilePropsPlugin *&gt;(m_pageList.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qptrlist.html#first">first</a>());
<a name="l00402"></a>00402 
<a name="l00403"></a>00403   <span class="comment">// If any page is dirty, then set the main one (KFilePropsPlugin) as</span>
<a name="l00404"></a>00404   <span class="comment">// dirty too. This is what makes it possible to save changes to a global</span>
<a name="l00405"></a>00405   <span class="comment">// desktop file into a local one. In other cases, it doesn't hurt.</span>
<a name="l00406"></a>00406   <span class="keywordflow">for</span> ( page = m_pageList.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qptrlist.html#first">first</a>(); page != 0L; page = m_pageList.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qptrlist.html#next">next</a>() )
<a name="l00407"></a>00407     <span class="keywordflow">if</span> ( page-&gt;<a class="code" href="classKPropsDlgPlugin.html#aedddec11c652c95f0f5e577e2ea0ed3">isDirty</a>() &amp;&amp; filePropsPlugin )
<a name="l00408"></a>00408     {
<a name="l00409"></a>00409         filePropsPlugin-&gt;<a class="code" href="classKPropsDlgPlugin.html#2d061ad301d4933edab795e1cafa651f">setDirty</a>();
<a name="l00410"></a>00410         <span class="keywordflow">break</span>;
<a name="l00411"></a>00411     }
<a name="l00412"></a>00412 
<a name="l00413"></a>00413   <span class="comment">// Apply the changes in the _normal_ order of the tabs now</span>
<a name="l00414"></a>00414   <span class="comment">// This is because in case of renaming a file, KFilePropsPlugin will call</span>
<a name="l00415"></a>00415   <span class="comment">// KPropertiesDialog::rename, so other tab will be ok with whatever order</span>
<a name="l00416"></a>00416   <span class="comment">// BUT for file copied from templates, we need to do the renaming first !</span>
<a name="l00417"></a>00417   <span class="keywordflow">for</span> ( page = m_pageList.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qptrlist.html#first">first</a>(); page != 0L &amp;&amp; !d-&gt;m_aborted; page = m_pageList.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qptrlist.html#next">next</a>() )
<a name="l00418"></a>00418     <span class="keywordflow">if</span> ( page-&gt;<a class="code" href="classKPropsDlgPlugin.html#aedddec11c652c95f0f5e577e2ea0ed3">isDirty</a>() )
<a name="l00419"></a>00419     {
<a name="l00420"></a>00420       kdDebug( 250 ) &lt;&lt; <span class="stringliteral">"applying changes for "</span> &lt;&lt; page-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#className">className</a>() &lt;&lt; endl;
<a name="l00421"></a>00421       page-&gt;<a class="code" href="classKPropsDlgPlugin.html#c1e2d1cbaf76527cbe55d56dd564b4a1" title="Applies all changes to the file.">applyChanges</a>();
<a name="l00422"></a>00422       <span class="comment">// applyChanges may change d-&gt;m_aborted.</span>
<a name="l00423"></a>00423     }
<a name="l00424"></a>00424     <span class="keywordflow">else</span>
<a name="l00425"></a>00425       kdDebug( 250 ) &lt;&lt; <span class="stringliteral">"skipping page "</span> &lt;&lt; page-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#className">className</a>() &lt;&lt; endl;
<a name="l00426"></a>00426 
<a name="l00427"></a>00427   <span class="keywordflow">if</span> ( !d-&gt;m_aborted &amp;&amp; filePropsPlugin )
<a name="l00428"></a>00428     filePropsPlugin-&gt;<a class="code" href="classKFilePropsPlugin.html#f27e92932409445d46ea8eb498342167" title="Called after all plugins applied their changes.">postApplyChanges</a>();
<a name="l00429"></a>00429 
<a name="l00430"></a>00430   <span class="keywordflow">if</span> ( !d-&gt;m_aborted )
<a name="l00431"></a>00431   {
<a name="l00432"></a>00432     emit <a class="code" href="classKPropertiesDialog.html#002caea780eff767f828a71bb55ee552" title="This signal is emitted when the properties changes are applied (for example, with...">applied</a>();
<a name="l00433"></a>00433     emit <a class="code" href="classKPropertiesDialog.html#76ed20d12e74a6fd141cace53a2e5fcf" title="This signal is emitted when the Properties Dialog is closed (for example, with OK...">propertiesClosed</a>();
<a name="l00434"></a>00434     deleteLater();
<a name="l00435"></a>00435     accept();
<a name="l00436"></a>00436   } <span class="comment">// else, keep dialog open for user to fix the problem.</span>
<a name="l00437"></a>00437 }
<a name="l00438"></a>00438 
<a name="l00439"></a><a class="code" href="classKPropertiesDialog.html#4481db1837bd6687fb78b0f2b24b8ce2">00439</a> <span class="keywordtype">void</span> <a class="code" href="classKPropertiesDialog.html#4481db1837bd6687fb78b0f2b24b8ce2" title="Called when the user presses &amp;#39;Cancel&amp;#39;.">KPropertiesDialog::slotCancel</a>()
<a name="l00440"></a>00440 {
<a name="l00441"></a>00441   emit <a class="code" href="classKPropertiesDialog.html#ef0dc3f68709df24ca0a63f42b4c7c25" title="This signal is emitted when the properties changes are aborted (for example, with...">canceled</a>();
<a name="l00442"></a>00442   emit <a class="code" href="classKPropertiesDialog.html#76ed20d12e74a6fd141cace53a2e5fcf" title="This signal is emitted when the Properties Dialog is closed (for example, with OK...">propertiesClosed</a>();
<a name="l00443"></a>00443 
<a name="l00444"></a>00444   deleteLater();
<a name="l00445"></a>00445   done( Rejected );
<a name="l00446"></a>00446 }
<a name="l00447"></a>00447 
<a name="l00448"></a>00448 <span class="keywordtype">void</span> KPropertiesDialog::insertPages()
<a name="l00449"></a>00449 {
<a name="l00450"></a>00450   <span class="keywordflow">if</span> (m_items.isEmpty())
<a name="l00451"></a>00451     <span class="keywordflow">return</span>;
<a name="l00452"></a>00452 
<a name="l00453"></a>00453   <span class="keywordflow">if</span> ( <a class="code" href="classKFilePropsPlugin.html#3e3d1f7eade99e76cbaab017b6f62e5d" title="Tests whether the files specified by _items need a &amp;#39;General&amp;#39; plugin.">KFilePropsPlugin::supports</a>( m_items ) )
<a name="l00454"></a>00454   {
<a name="l00455"></a>00455     <a class="code" href="classKPropsDlgPlugin.html" title="A Plugin in the Properties dialog This is an abstract class.">KPropsDlgPlugin</a> *p = <span class="keyword">new</span> <a class="code" href="classKFilePropsPlugin.html" title="&amp;#39;General&amp;#39; plugin This plugin displays the name of the file, its size and...">KFilePropsPlugin</a>( <span class="keyword">this</span> );
<a name="l00456"></a>00456     <a class="code" href="classKPropertiesDialog.html#0c65bc7f29308405f7f9dde77c8f6fdf" title="Adds a &amp;quot;3rd party&amp;quot; properties plugin to the dialog.">insertPlugin</a> (p);
<a name="l00457"></a>00457   }
<a name="l00458"></a>00458 
<a name="l00459"></a>00459   <span class="keywordflow">if</span> ( <a class="code" href="classKFilePermissionsPropsPlugin.html#e1800d8c4c9dd56c50c532117895acb4" title="Tests whether the file specified by _items needs a &amp;#39;Permissions&amp;#39; plugin.">KFilePermissionsPropsPlugin::supports</a>( m_items ) )
<a name="l00460"></a>00460   {
<a name="l00461"></a>00461     <a class="code" href="classKPropsDlgPlugin.html" title="A Plugin in the Properties dialog This is an abstract class.">KPropsDlgPlugin</a> *p = <span class="keyword">new</span> <a class="code" href="classKFilePermissionsPropsPlugin.html" title="&amp;#39;Permissions&amp;#39; plugin In this plugin you can modify permissions and change...">KFilePermissionsPropsPlugin</a>( <span class="keyword">this</span> );
<a name="l00462"></a>00462     <a class="code" href="classKPropertiesDialog.html#0c65bc7f29308405f7f9dde77c8f6fdf" title="Adds a &amp;quot;3rd party&amp;quot; properties plugin to the dialog.">insertPlugin</a> (p);
<a name="l00463"></a>00463   }
<a name="l00464"></a>00464 
<a name="l00465"></a>00465   <span class="keywordflow">if</span> ( KDesktopPropsPlugin::supports( m_items ) )
<a name="l00466"></a>00466   {
<a name="l00467"></a>00467     <a class="code" href="classKPropsDlgPlugin.html" title="A Plugin in the Properties dialog This is an abstract class.">KPropsDlgPlugin</a> *p = <span class="keyword">new</span> <a class="code" href="classKDesktopPropsPlugin.html" title="Used to edit the files containing [Desktop Entry] Type=Application.">KDesktopPropsPlugin</a>( <span class="keyword">this</span> );
<a name="l00468"></a>00468     <a class="code" href="classKPropertiesDialog.html#0c65bc7f29308405f7f9dde77c8f6fdf" title="Adds a &amp;quot;3rd party&amp;quot; properties plugin to the dialog.">insertPlugin</a> (p);
<a name="l00469"></a>00469   }
<a name="l00470"></a>00470 
<a name="l00471"></a>00471   <span class="keywordflow">if</span> ( KBindingPropsPlugin::supports( m_items ) )
<a name="l00472"></a>00472   {
<a name="l00473"></a>00473     <a class="code" href="classKPropsDlgPlugin.html" title="A Plugin in the Properties dialog This is an abstract class.">KPropsDlgPlugin</a> *p = <span class="keyword">new</span> <a class="code" href="classKBindingPropsPlugin.html" title="Used to edit the files containing [Desktop Entry] Type=MimeType.">KBindingPropsPlugin</a>( <span class="keyword">this</span> );
<a name="l00474"></a>00474     <a class="code" href="classKPropertiesDialog.html#0c65bc7f29308405f7f9dde77c8f6fdf" title="Adds a &amp;quot;3rd party&amp;quot; properties plugin to the dialog.">insertPlugin</a> (p);
<a name="l00475"></a>00475   }
<a name="l00476"></a>00476 
<a name="l00477"></a>00477   <span class="keywordflow">if</span> ( KURLPropsPlugin::supports( m_items ) )
<a name="l00478"></a>00478   {
<a name="l00479"></a>00479     <a class="code" href="classKPropsDlgPlugin.html" title="A Plugin in the Properties dialog This is an abstract class.">KPropsDlgPlugin</a> *p = <span class="keyword">new</span> <a class="code" href="classKURLPropsPlugin.html" title="Used to edit the files containing [Desktop Entry] URL=.">KURLPropsPlugin</a>( <span class="keyword">this</span> );
<a name="l00480"></a>00480     <a class="code" href="classKPropertiesDialog.html#0c65bc7f29308405f7f9dde77c8f6fdf" title="Adds a &amp;quot;3rd party&amp;quot; properties plugin to the dialog.">insertPlugin</a> (p);
<a name="l00481"></a>00481   }
<a name="l00482"></a>00482 
<a name="l00483"></a>00483   <span class="keywordflow">if</span> ( KDevicePropsPlugin::supports( m_items ) )
<a name="l00484"></a>00484   {
<a name="l00485"></a>00485     <a class="code" href="classKPropsDlgPlugin.html" title="A Plugin in the Properties dialog This is an abstract class.">KPropsDlgPlugin</a> *p = <span class="keyword">new</span> <a class="code" href="classKDevicePropsPlugin.html" title="Properties plugin for device .desktop files.">KDevicePropsPlugin</a>( <span class="keyword">this</span> );
<a name="l00486"></a>00486     <a class="code" href="classKPropertiesDialog.html#0c65bc7f29308405f7f9dde77c8f6fdf" title="Adds a &amp;quot;3rd party&amp;quot; properties plugin to the dialog.">insertPlugin</a> (p);
<a name="l00487"></a>00487   }
<a name="l00488"></a>00488 
<a name="l00489"></a>00489   <span class="keywordflow">if</span> ( <a class="code" href="classKFileMetaPropsPlugin.html#65e73bc476c67fd6736329437f27204f" title="Tests whether the file specified by _items has a &amp;#39;MetaInfo&amp;#39; plugin.">KFileMetaPropsPlugin::supports</a>( m_items ) )
<a name="l00490"></a>00490   {
<a name="l00491"></a>00491     <a class="code" href="classKPropsDlgPlugin.html" title="A Plugin in the Properties dialog This is an abstract class.">KPropsDlgPlugin</a> *p = <span class="keyword">new</span> <a class="code" href="classKFileMetaPropsPlugin.html">KFileMetaPropsPlugin</a>( <span class="keyword">this</span> );
<a name="l00492"></a>00492     <a class="code" href="classKPropertiesDialog.html#0c65bc7f29308405f7f9dde77c8f6fdf" title="Adds a &amp;quot;3rd party&amp;quot; properties plugin to the dialog.">insertPlugin</a> (p);
<a name="l00493"></a>00493   }
<a name="l00494"></a>00494 
<a name="l00495"></a>00495   <span class="keywordflow">if</span> ( <a class="code" href="classKPreviewPropsPlugin.html#e32ca21994d9479cb61ef74c73ee681d" title="Tests whether a preview for the first item should be shown.">KPreviewPropsPlugin::supports</a>( m_items ) )
<a name="l00496"></a>00496   {
<a name="l00497"></a>00497     <a class="code" href="classKPropsDlgPlugin.html" title="A Plugin in the Properties dialog This is an abstract class.">KPropsDlgPlugin</a> *p = <span class="keyword">new</span> <a class="code" href="classKPreviewPropsPlugin.html">KPreviewPropsPlugin</a>( <span class="keyword">this</span> );
<a name="l00498"></a>00498     <a class="code" href="classKPropertiesDialog.html#0c65bc7f29308405f7f9dde77c8f6fdf" title="Adds a &amp;quot;3rd party&amp;quot; properties plugin to the dialog.">insertPlugin</a> (p);
<a name="l00499"></a>00499   }
<a name="l00500"></a>00500 
<a name="l00501"></a>00501   <span class="keywordflow">if</span> ( kapp-&gt;authorizeKAction(<span class="stringliteral">"sharefile"</span>) &amp;&amp;
<a name="l00502"></a>00502        KFileSharePropsPlugin::supports( m_items ) )
<a name="l00503"></a>00503   {
<a name="l00504"></a>00504     <a class="code" href="classKPropsDlgPlugin.html" title="A Plugin in the Properties dialog This is an abstract class.">KPropsDlgPlugin</a> *p = <span class="keyword">new</span> <a class="code" href="classKFileSharePropsPlugin.html" title="This plugin provides a page to KPropsDlg, showing the &amp;quot;file sharing&amp;quot; options...">KFileSharePropsPlugin</a>( <span class="keyword">this</span> );
<a name="l00505"></a>00505     <a class="code" href="classKPropertiesDialog.html#0c65bc7f29308405f7f9dde77c8f6fdf" title="Adds a &amp;quot;3rd party&amp;quot; properties plugin to the dialog.">insertPlugin</a> (p);
<a name="l00506"></a>00506   }
<a name="l00507"></a>00507 
<a name="l00508"></a>00508   <span class="comment">//plugins</span>
<a name="l00509"></a>00509 
<a name="l00510"></a>00510   <span class="keywordflow">if</span> ( m_items.count() != 1 )
<a name="l00511"></a>00511     <span class="keywordflow">return</span>;
<a name="l00512"></a>00512 
<a name="l00513"></a>00513   KFileItem *<a class="code" href="classKPropertiesDialog.html#f04def59643b5afac5c57d374b83cdb7">item</a> = m_items.first();
<a name="l00514"></a>00514   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> mimetype = item-&gt;mimetype();
<a name="l00515"></a>00515 
<a name="l00516"></a>00516   <span class="keywordflow">if</span> ( mimetype.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isEmpty">isEmpty</a>() )
<a name="l00517"></a>00517     <span class="keywordflow">return</span>;
<a name="l00518"></a>00518 
<a name="l00519"></a>00519   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> query = <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#fromLatin1">QString::fromLatin1</a>(
<a name="l00520"></a>00520       <span class="stringliteral">"('KPropsDlg/Plugin' in ServiceTypes) and "</span>
<a name="l00521"></a>00521       <span class="stringliteral">"((not exist [X-KDE-Protocol]) or "</span>
<a name="l00522"></a>00522       <span class="stringliteral">" ([X-KDE-Protocol] == '%1'  )   )"</span>          ).arg(item-&gt;url().protocol());
<a name="l00523"></a>00523 
<a name="l00524"></a>00524   kdDebug( 250 ) &lt;&lt; <span class="stringliteral">"trader query: "</span> &lt;&lt; query &lt;&lt; endl;
<a name="l00525"></a>00525   KTrader::OfferList offers = KTrader::self()-&gt;query( mimetype, query );
<a name="l00526"></a>00526   KTrader::OfferList::ConstIterator it = offers.begin();
<a name="l00527"></a>00527   KTrader::OfferList::ConstIterator end = offers.end();
<a name="l00528"></a>00528   <span class="keywordflow">for</span> (; it != end; ++it )
<a name="l00529"></a>00529   {
<a name="l00530"></a>00530     <a class="code" href="classKPropsDlgPlugin.html" title="A Plugin in the Properties dialog This is an abstract class.">KPropsDlgPlugin</a> *plugin = KParts::ComponentFactory
<a name="l00531"></a>00531         ::createInstanceFromLibrary&lt;KPropsDlgPlugin&gt;( (*it)-&gt;library().local8Bit().data(),
<a name="l00532"></a>00532                                                       <span class="keyword">this</span>,
<a name="l00533"></a>00533                                                       (*it)-&gt;name().latin1() );
<a name="l00534"></a>00534     <span class="keywordflow">if</span> ( !plugin )
<a name="l00535"></a>00535         <span class="keywordflow">continue</span>;
<a name="l00536"></a>00536 
<a name="l00537"></a>00537     <a class="code" href="classKPropertiesDialog.html#0c65bc7f29308405f7f9dde77c8f6fdf" title="Adds a &amp;quot;3rd party&amp;quot; properties plugin to the dialog.">insertPlugin</a>( plugin );
<a name="l00538"></a>00538   }
<a name="l00539"></a>00539 }
<a name="l00540"></a>00540 
<a name="l00541"></a><a class="code" href="classKPropertiesDialog.html#44cb58947aaa81a32f1a653112dde229">00541</a> <span class="keywordtype">void</span> <a class="code" href="classKPropertiesDialog.html#44cb58947aaa81a32f1a653112dde229" title="Updates the item URL (either called by rename or because a global apps/mimelnk desktop...">KPropertiesDialog::updateUrl</a>( <span class="keyword">const</span> KURL&amp; _newUrl )
<a name="l00542"></a>00542 {
<a name="l00543"></a>00543   Q_ASSERT( m_items.count() == 1 );
<a name="l00544"></a>00544   kdDebug(250) &lt;&lt; <span class="stringliteral">"KPropertiesDialog::updateUrl (pre)"</span> &lt;&lt; _newUrl.url() &lt;&lt; endl;
<a name="l00545"></a>00545   KURL newUrl = _newUrl;
<a name="l00546"></a>00546   emit <a class="code" href="classKPropertiesDialog.html#d2ac09167f99cb97e105dec1bb81703e" title="Emitted before changes to oldUrl are saved as newUrl.">saveAs</a>(m_singleUrl, newUrl);
<a name="l00547"></a>00547   kdDebug(250) &lt;&lt; <span class="stringliteral">"KPropertiesDialog::updateUrl (post)"</span> &lt;&lt; newUrl.url() &lt;&lt; endl;
<a name="l00548"></a>00548 
<a name="l00549"></a>00549   m_singleUrl = newUrl;
<a name="l00550"></a>00550   m_items.first()-&gt;setURL( newUrl );
<a name="l00551"></a>00551   assert(!m_singleUrl.isEmpty());
<a name="l00552"></a>00552   <span class="comment">// If we have an Desktop page, set it dirty, so that a full file is saved locally</span>
<a name="l00553"></a>00553   <span class="comment">// Same for a URL page (because of the Name= hack)</span>
<a name="l00554"></a>00554   <span class="keywordflow">for</span> ( <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qptrlistiterator.html">QPtrListIterator&lt;KPropsDlgPlugin&gt;</a> it(m_pageList); it.current(); ++it )
<a name="l00555"></a>00555    <span class="keywordflow">if</span> ( it.current()-&gt;isA(<span class="stringliteral">"KExecPropsPlugin"</span>) || <span class="comment">// KDE4 remove me</span>
<a name="l00556"></a>00556         it.current()-&gt;isA(<span class="stringliteral">"KURLPropsPlugin"</span>) ||
<a name="l00557"></a>00557         it.current()-&gt;isA(<span class="stringliteral">"KDesktopPropsPlugin"</span>))
<a name="l00558"></a>00558    {
<a name="l00559"></a>00559      <span class="comment">//kdDebug(250) &lt;&lt; "Setting page dirty" &lt;&lt; endl;</span>
<a name="l00560"></a>00560      it.current()-&gt;setDirty();
<a name="l00561"></a>00561      <span class="keywordflow">break</span>;
<a name="l00562"></a>00562    }
<a name="l00563"></a>00563 }
<a name="l00564"></a>00564 
<a name="l00565"></a><a class="code" href="classKPropertiesDialog.html#df86c06051ecc55dfd631c6757a82460">00565</a> <span class="keywordtype">void</span> <a class="code" href="classKPropertiesDialog.html#df86c06051ecc55dfd631c6757a82460" title="Renames the item to the specified name.">KPropertiesDialog::rename</a>( <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a>&amp; _name )
<a name="l00566"></a>00566 {
<a name="l00567"></a>00567   Q_ASSERT( m_items.count() == 1 );
<a name="l00568"></a>00568   kdDebug(250) &lt;&lt; <span class="stringliteral">"KPropertiesDialog::rename "</span> &lt;&lt; _name &lt;&lt; endl;
<a name="l00569"></a>00569   KURL newUrl;
<a name="l00570"></a>00570   <span class="comment">// if we're creating from a template : use currentdir</span>
<a name="l00571"></a>00571   <span class="keywordflow">if</span> ( !m_currentDir.isEmpty() )
<a name="l00572"></a>00572   {
<a name="l00573"></a>00573     newUrl = m_currentDir;
<a name="l00574"></a>00574     newUrl.addPath( _name );
<a name="l00575"></a>00575   }
<a name="l00576"></a>00576   <span class="keywordflow">else</span>
<a name="l00577"></a>00577   {
<a name="l00578"></a>00578     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> tmpurl = m_singleUrl.url();
<a name="l00579"></a>00579     <span class="keywordflow">if</span> ( tmpurl.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#at">at</a>(tmpurl.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#length">length</a>() - 1) == <span class="charliteral">'/'</span>)
<a name="l00580"></a>00580       <span class="comment">// It's a directory, so strip the trailing slash first</span>
<a name="l00581"></a>00581       tmpurl.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#truncate">truncate</a>( tmpurl.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#length">length</a>() - 1);
<a name="l00582"></a>00582     newUrl = tmpurl;
<a name="l00583"></a>00583     newUrl.setFileName( _name );
<a name="l00584"></a>00584   }
<a name="l00585"></a>00585   <a class="code" href="classKPropertiesDialog.html#44cb58947aaa81a32f1a653112dde229" title="Updates the item URL (either called by rename or because a global apps/mimelnk desktop...">updateUrl</a>( newUrl );
<a name="l00586"></a>00586 }
<a name="l00587"></a>00587 
<a name="l00588"></a><a class="code" href="classKPropertiesDialog.html#6193a34255bae07ec1573943cfb68bf1">00588</a> <span class="keywordtype">void</span> <a class="code" href="classKPropertiesDialog.html#6193a34255bae07ec1573943cfb68bf1" title="To abort applying changes.">KPropertiesDialog::abortApplying</a>()
<a name="l00589"></a>00589 {
<a name="l00590"></a>00590   d-&gt;m_aborted = <span class="keyword">true</span>;
<a name="l00591"></a>00591 }
<a name="l00592"></a>00592 
<a name="l00593"></a>00593 <span class="keyword">class </span>KPropsDlgPlugin::KPropsDlgPluginPrivate
<a name="l00594"></a>00594 {
<a name="l00595"></a>00595 <span class="keyword">public</span>:
<a name="l00596"></a>00596   KPropsDlgPluginPrivate()
<a name="l00597"></a>00597   {
<a name="l00598"></a>00598   }
<a name="l00599"></a>00599   ~KPropsDlgPluginPrivate()
<a name="l00600"></a>00600   {
<a name="l00601"></a>00601   }
<a name="l00602"></a>00602 
<a name="l00603"></a>00603   <span class="keywordtype">bool</span> m_bDirty;
<a name="l00604"></a>00604 };
<a name="l00605"></a>00605 
<a name="l00606"></a><a class="code" href="classKPropsDlgPlugin.html#98d1c8f87e2119c9e1f11c9bafa06da1">00606</a> <a class="code" href="classKPropsDlgPlugin.html#98d1c8f87e2119c9e1f11c9bafa06da1" title="Constructor To insert tabs into the properties dialog, use the add methods provided...">KPropsDlgPlugin::KPropsDlgPlugin</a>( <a class="code" href="classKPropertiesDialog.html" title="The main properties dialog class.">KPropertiesDialog</a> *_props )
<a name="l00607"></a>00607 : <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html">QObject</a>( _props, 0L )
<a name="l00608"></a>00608 {
<a name="l00609"></a>00609   d = <span class="keyword">new</span> KPropsDlgPluginPrivate;
<a name="l00610"></a>00610   <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a> = _props;
<a name="l00611"></a>00611   fontHeight = 2*<a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;fontMetrics().height();
<a name="l00612"></a>00612   d-&gt;m_bDirty = <span class="keyword">false</span>;
<a name="l00613"></a>00613 }
<a name="l00614"></a>00614 
<a name="l00615"></a>00615 KPropsDlgPlugin::~KPropsDlgPlugin()
<a name="l00616"></a>00616 {
<a name="l00617"></a>00617   <span class="keyword">delete</span> d;
<a name="l00618"></a>00618 }
<a name="l00619"></a>00619 
<a name="l00620"></a><a class="code" href="classKPropsDlgPlugin.html#d29f1d332d93035d3ae2278ba25b2803">00620</a> <span class="keywordtype">bool</span> <a class="code" href="classKPropsDlgPlugin.html#d29f1d332d93035d3ae2278ba25b2803" title="Convenience method for most supports methods.">KPropsDlgPlugin::isDesktopFile</a>( KFileItem * _item )
<a name="l00621"></a>00621 {
<a name="l00622"></a>00622   <span class="comment">// only local files</span>
<a name="l00623"></a>00623   <span class="keywordtype">bool</span> isLocal;
<a name="l00624"></a>00624   KURL url = _item-&gt;mostLocalURL( isLocal );
<a name="l00625"></a>00625   <span class="keywordflow">if</span> ( !isLocal )
<a name="l00626"></a>00626     <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00627"></a>00627 
<a name="l00628"></a>00628   <span class="comment">// only regular files</span>
<a name="l00629"></a>00629   <span class="keywordflow">if</span> ( !S_ISREG( _item-&gt;mode() ) )
<a name="l00630"></a>00630     <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00631"></a>00631 
<a name="l00632"></a>00632   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> t( url.path() );
<a name="l00633"></a>00633 
<a name="l00634"></a>00634   <span class="comment">// only if readable</span>
<a name="l00635"></a>00635   FILE *f = fopen( <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html#encodeName">QFile::encodeName</a>(t), <span class="stringliteral">"r"</span> );
<a name="l00636"></a>00636   <span class="keywordflow">if</span> ( f == 0L )
<a name="l00637"></a>00637     <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00638"></a>00638   fclose(f);
<a name="l00639"></a>00639 
<a name="l00640"></a>00640   <span class="comment">// return true if desktop file</span>
<a name="l00641"></a>00641   <span class="keywordflow">return</span> ( _item-&gt;mimetype() == <span class="stringliteral">"application/x-desktop"</span> );
<a name="l00642"></a>00642 }
<a name="l00643"></a>00643 
<a name="l00644"></a>00644 <span class="keywordtype">void</span> KPropsDlgPlugin::setDirty( <span class="keywordtype">bool</span> b )
<a name="l00645"></a>00645 {
<a name="l00646"></a>00646   d-&gt;m_bDirty = b;
<a name="l00647"></a>00647 }
<a name="l00648"></a>00648 
<a name="l00649"></a>00649 <span class="keywordtype">void</span> KPropsDlgPlugin::setDirty()
<a name="l00650"></a>00650 {
<a name="l00651"></a>00651   d-&gt;m_bDirty = <span class="keyword">true</span>;
<a name="l00652"></a>00652 }
<a name="l00653"></a>00653 
<a name="l00654"></a>00654 <span class="keywordtype">bool</span> KPropsDlgPlugin::isDirty()<span class="keyword"> const</span>
<a name="l00655"></a>00655 <span class="keyword"></span>{
<a name="l00656"></a>00656   <span class="keywordflow">return</span> d-&gt;m_bDirty;
<a name="l00657"></a>00657 }
<a name="l00658"></a>00658 
<a name="l00659"></a><a class="code" href="classKPropsDlgPlugin.html#c1e2d1cbaf76527cbe55d56dd564b4a1">00659</a> <span class="keywordtype">void</span> <a class="code" href="classKPropsDlgPlugin.html#c1e2d1cbaf76527cbe55d56dd564b4a1" title="Applies all changes to the file.">KPropsDlgPlugin::applyChanges</a>()
<a name="l00660"></a>00660 {
<a name="l00661"></a>00661   kdWarning(250) &lt;&lt; <span class="stringliteral">"applyChanges() not implemented in page !"</span> &lt;&lt; endl;
<a name="l00662"></a>00662 }
<a name="l00663"></a>00663 
<a name="l00665"></a>00665 
<a name="l00666"></a>00666 <span class="keyword">class </span>KFilePropsPlugin::KFilePropsPluginPrivate
<a name="l00667"></a>00667 {
<a name="l00668"></a>00668 <span class="keyword">public</span>:
<a name="l00669"></a>00669   KFilePropsPluginPrivate()
<a name="l00670"></a>00670   {
<a name="l00671"></a>00671     dirSizeJob = 0L;
<a name="l00672"></a>00672     dirSizeUpdateTimer = 0L;
<a name="l00673"></a>00673     m_lined = 0;
<a name="l00674"></a>00674     m_freeSpaceLabel = 0;
<a name="l00675"></a>00675   }
<a name="l00676"></a>00676   ~KFilePropsPluginPrivate()
<a name="l00677"></a>00677   {
<a name="l00678"></a>00678     <span class="keywordflow">if</span> ( dirSizeJob )
<a name="l00679"></a>00679       dirSizeJob-&gt;kill();
<a name="l00680"></a>00680   }
<a name="l00681"></a>00681 
<a name="l00682"></a>00682   <a class="code" href="classKDirSize.html" title="Computes a directory size (similar to &amp;quot;du&amp;quot;, but doesn&amp;#39;t give the same...">KDirSize</a> * dirSizeJob;
<a name="l00683"></a>00683   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qtimer.html">QTimer</a> *dirSizeUpdateTimer;
<a name="l00684"></a>00684   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qframe.html">QFrame</a> *m_frame;
<a name="l00685"></a>00685   <span class="keywordtype">bool</span> bMultiple;
<a name="l00686"></a>00686   <span class="keywordtype">bool</span> bIconChanged;
<a name="l00687"></a>00687   <span class="keywordtype">bool</span> bKDesktopMode;
<a name="l00688"></a>00688   <span class="keywordtype">bool</span> bDesktopFile;
<a name="l00689"></a>00689   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a> *m_freeSpaceLabel;
<a name="l00690"></a>00690   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> mimeType;
<a name="l00691"></a>00691   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> oldFileName;
<a name="l00692"></a>00692   KLineEdit* m_lined;
<a name="l00693"></a>00693 };
<a name="l00694"></a>00694 
<a name="l00695"></a><a class="code" href="classKFilePropsPlugin.html#5e7d8cfaefd4e49992dc849f7ed6a632">00695</a> <a class="code" href="classKFilePropsPlugin.html#5e7d8cfaefd4e49992dc849f7ed6a632" title="Constructor.">KFilePropsPlugin::KFilePropsPlugin</a>( <a class="code" href="classKPropertiesDialog.html" title="The main properties dialog class.">KPropertiesDialog</a> *_props )
<a name="l00696"></a>00696   : <a class="code" href="classKPropsDlgPlugin.html" title="A Plugin in the Properties dialog This is an abstract class.">KPropsDlgPlugin</a>( _props )
<a name="l00697"></a>00697 {
<a name="l00698"></a>00698   d = <span class="keyword">new</span> KFilePropsPluginPrivate;
<a name="l00699"></a>00699   d-&gt;bMultiple = (<a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#616b7c9afe4c1c1235c2edb81b2e36a1">items</a>().count() &gt; 1);
<a name="l00700"></a>00700   d-&gt;bIconChanged = <span class="keyword">false</span>;
<a name="l00701"></a>00701   d-&gt;bKDesktopMode = (<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcstring.html">QCString</a>(qApp-&gt;name()) == <span class="stringliteral">"kdesktop"</span>); <span class="comment">// nasty heh?</span>
<a name="l00702"></a>00702   d-&gt;bDesktopFile = KDesktopPropsPlugin::supports(<a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#616b7c9afe4c1c1235c2edb81b2e36a1">items</a>());
<a name="l00703"></a>00703   kdDebug(250) &lt;&lt; <span class="stringliteral">"KFilePropsPlugin::KFilePropsPlugin bMultiple="</span> &lt;&lt; d-&gt;bMultiple &lt;&lt; endl;
<a name="l00704"></a>00704 
<a name="l00705"></a>00705   <span class="comment">// We set this data from the first item, and we'll</span>
<a name="l00706"></a>00706   <span class="comment">// check that the other items match against it, resetting when not.</span>
<a name="l00707"></a>00707   <span class="keywordtype">bool</span> isLocal;
<a name="l00708"></a>00708   KFileItem * item = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#f04def59643b5afac5c57d374b83cdb7">item</a>();
<a name="l00709"></a>00709   KURL url = item-&gt;mostLocalURL( isLocal );
<a name="l00710"></a>00710   <span class="keywordtype">bool</span> isReallyLocal = item-&gt;url().isLocalFile();
<a name="l00711"></a>00711   <span class="keywordtype">bool</span> bDesktopFile = <a class="code" href="classKPropsDlgPlugin.html#d29f1d332d93035d3ae2278ba25b2803" title="Convenience method for most supports methods.">isDesktopFile</a>(item);
<a name="l00712"></a>00712   kdDebug() &lt;&lt; <span class="stringliteral">"url="</span> &lt;&lt; url &lt;&lt; <span class="stringliteral">" bDesktopFile="</span> &lt;&lt; bDesktopFile &lt;&lt; <span class="stringliteral">" isLocal="</span> &lt;&lt; isLocal &lt;&lt; <span class="stringliteral">" isReallyLocal="</span> &lt;&lt; isReallyLocal &lt;&lt; endl;
<a name="l00713"></a>00713   mode_t mode = item-&gt;mode();
<a name="l00714"></a>00714   <span class="keywordtype">bool</span> hasDirs = item-&gt;isDir() &amp;&amp; !item-&gt;isLink();
<a name="l00715"></a>00715   <span class="keywordtype">bool</span> hasRoot = url.path() == <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#fromLatin1">QString::fromLatin1</a>(<span class="stringliteral">"/"</span>);
<a name="l00716"></a>00716   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> iconStr = KMimeType::iconForURL(url, mode);
<a name="l00717"></a>00717   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> directory = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().directory();
<a name="l00718"></a>00718   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> protocol = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().protocol();
<a name="l00719"></a>00719   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> mimeComment = item-&gt;mimeComment();
<a name="l00720"></a>00720   d-&gt;mimeType = item-&gt;mimetype();
<a name="l00721"></a>00721   <span class="keywordtype">bool</span> hasTotalSize;
<a name="l00722"></a>00722   KIO::filesize_t totalSize = item-&gt;size(hasTotalSize);
<a name="l00723"></a>00723   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> magicMimeComment;
<a name="l00724"></a>00724   <span class="keywordflow">if</span> ( isLocal ) {
<a name="l00725"></a>00725       KMimeType::Ptr magicMimeType = KMimeType::findByFileContent( url.path() );
<a name="l00726"></a>00726       <span class="keywordflow">if</span> ( magicMimeType-&gt;name() != KMimeType::defaultMimeType() )
<a name="l00727"></a>00727           magicMimeComment = magicMimeType-&gt;comment();
<a name="l00728"></a>00728   }
<a name="l00729"></a>00729 
<a name="l00730"></a>00730   <span class="comment">// Those things only apply to 'single file' mode</span>
<a name="l00731"></a>00731   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> filename = QString::null;
<a name="l00732"></a>00732   <span class="keywordtype">bool</span> isTrash = <span class="keyword">false</span>;
<a name="l00733"></a>00733   <span class="keywordtype">bool</span> isDevice = <span class="keyword">false</span>;
<a name="l00734"></a>00734   m_bFromTemplate = <span class="keyword">false</span>;
<a name="l00735"></a>00735 
<a name="l00736"></a>00736   <span class="comment">// And those only to 'multiple' mode</span>
<a name="l00737"></a>00737   uint iDirCount = hasDirs ? 1 : 0;
<a name="l00738"></a>00738   uint iFileCount = 1-iDirCount;
<a name="l00739"></a>00739 
<a name="l00740"></a>00740   d-&gt;m_frame = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;addPage (i18n(<span class="stringliteral">"&amp;General"</span>));
<a name="l00741"></a>00741 
<a name="l00742"></a>00742   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qvboxlayout.html">QVBoxLayout</a> *vbl = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qvboxlayout.html">QVBoxLayout</a>( d-&gt;m_frame, 0,
<a name="l00743"></a>00743                                       KDialog::spacingHint(), <span class="stringliteral">"vbl"</span>);
<a name="l00744"></a>00744   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html">QGridLayout</a> *grid = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html">QGridLayout</a>(0, 3); <span class="comment">// unknown rows</span>
<a name="l00745"></a>00745   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#setColStretch">setColStretch</a>(0, 0);
<a name="l00746"></a>00746   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#setColStretch">setColStretch</a>(1, 0);
<a name="l00747"></a>00747   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#setColStretch">setColStretch</a>(2, 1);
<a name="l00748"></a>00748   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addColSpacing">addColSpacing</a>(1, KDialog::spacingHint());
<a name="l00749"></a>00749   vbl-&gt;addLayout(grid);
<a name="l00750"></a>00750   <span class="keywordtype">int</span> curRow = 0;
<a name="l00751"></a>00751 
<a name="l00752"></a>00752   <span class="keywordflow">if</span> ( !d-&gt;bMultiple )
<a name="l00753"></a>00753   {
<a name="l00754"></a>00754     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> path;
<a name="l00755"></a>00755     <span class="keywordflow">if</span> ( !m_bFromTemplate ) {
<a name="l00756"></a>00756       isTrash = ( <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().protocol().find( <span class="stringliteral">"trash"</span>, 0, <span class="keyword">false</span>)==0 );
<a name="l00757"></a>00757       <span class="keywordflow">if</span> ( <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().protocol().find(<span class="stringliteral">"device"</span>, 0, <span class="keyword">false</span>)==0)
<a name="l00758"></a>00758             isDevice = <span class="keyword">true</span>;
<a name="l00759"></a>00759       <span class="comment">// Extract the full name, but without file: for local files</span>
<a name="l00760"></a>00760       <span class="keywordflow">if</span> ( isReallyLocal )
<a name="l00761"></a>00761         path = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().path();
<a name="l00762"></a>00762       <span class="keywordflow">else</span>
<a name="l00763"></a>00763         path = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().prettyURL();
<a name="l00764"></a>00764     } <span class="keywordflow">else</span> {
<a name="l00765"></a>00765       path = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#3ecaeeb9e95db28fbb9ef5c629b4c4c0" title="If the dialog is being built from a template, this method returns the current directory...">currentDir</a>().path(1) + <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#cb28cff7d887a493d44533e9ee487451" title="If the dialog is being built from a template, this method returns the default name...">defaultName</a>();
<a name="l00766"></a>00766       directory = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#3ecaeeb9e95db28fbb9ef5c629b4c4c0" title="If the dialog is being built from a template, this method returns the current directory...">currentDir</a>().prettyURL();
<a name="l00767"></a>00767     }
<a name="l00768"></a>00768 
<a name="l00769"></a>00769     <span class="keywordflow">if</span> (KExecPropsPlugin::supports(<a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#616b7c9afe4c1c1235c2edb81b2e36a1">items</a>()) || <span class="comment">// KDE4 remove me</span>
<a name="l00770"></a>00770         d-&gt;bDesktopFile ||
<a name="l00771"></a>00771         KBindingPropsPlugin::supports(<a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#616b7c9afe4c1c1235c2edb81b2e36a1">items</a>())) {
<a name="l00772"></a>00772       determineRelativePath( path );
<a name="l00773"></a>00773     }
<a name="l00774"></a>00774 
<a name="l00775"></a>00775     <span class="comment">// Extract the file name only</span>
<a name="l00776"></a>00776     filename = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#cb28cff7d887a493d44533e9ee487451" title="If the dialog is being built from a template, this method returns the default name...">defaultName</a>();
<a name="l00777"></a>00777     <span class="keywordflow">if</span> ( filename.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isEmpty">isEmpty</a>() ) { <span class="comment">// no template</span>
<a name="l00778"></a>00778       filename = item-&gt;name(); <span class="comment">// this gives support for UDS_NAME, e.g. for kio_trash or kio_system</span>
<a name="l00779"></a>00779     } <span class="keywordflow">else</span> {
<a name="l00780"></a>00780       m_bFromTemplate = <span class="keyword">true</span>;
<a name="l00781"></a>00781       setDirty(); <span class="comment">// to enforce that the copy happens</span>
<a name="l00782"></a>00782     }
<a name="l00783"></a>00783     d-&gt;oldFileName = filename;
<a name="l00784"></a>00784 
<a name="l00785"></a>00785     <span class="comment">// Make it human-readable</span>
<a name="l00786"></a>00786     filename = nameFromFileName( filename );
<a name="l00787"></a>00787 
<a name="l00788"></a>00788     <span class="keywordflow">if</span> ( d-&gt;bKDesktopMode &amp;&amp; d-&gt;bDesktopFile ) {
<a name="l00789"></a>00789         KDesktopFile config( url.path(), <span class="keyword">true</span> <span class="comment">/* readonly */</span> );
<a name="l00790"></a>00790         <span class="keywordflow">if</span> ( config.hasKey( <span class="stringliteral">"Name"</span> ) ) {
<a name="l00791"></a>00791             filename = config.readName();
<a name="l00792"></a>00792         }
<a name="l00793"></a>00793     }
<a name="l00794"></a>00794 
<a name="l00795"></a>00795     oldName = filename;
<a name="l00796"></a>00796   }
<a name="l00797"></a>00797   <span class="keywordflow">else</span>
<a name="l00798"></a>00798   {
<a name="l00799"></a>00799     <span class="comment">// Multiple items: see what they have in common</span>
<a name="l00800"></a>00800     KFileItemList items = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#616b7c9afe4c1c1235c2edb81b2e36a1">items</a>();
<a name="l00801"></a>00801     KFileItemListIterator it( items );
<a name="l00802"></a>00802     <span class="keywordflow">for</span> ( ++it <span class="comment">/*no need to check the first one again*/</span> ; it.current(); ++it )
<a name="l00803"></a>00803     {
<a name="l00804"></a>00804       KURL url = (*it)-&gt;url();
<a name="l00805"></a>00805       kdDebug(250) &lt;&lt; <span class="stringliteral">"KFilePropsPlugin::KFilePropsPlugin "</span> &lt;&lt; url.prettyURL() &lt;&lt; endl;
<a name="l00806"></a>00806       <span class="comment">// The list of things we check here should match the variables defined</span>
<a name="l00807"></a>00807       <span class="comment">// at the beginning of this method.</span>
<a name="l00808"></a>00808       <span class="keywordflow">if</span> ( url.isLocalFile() != isLocal )
<a name="l00809"></a>00809         isLocal = <span class="keyword">false</span>; <span class="comment">// not all local</span>
<a name="l00810"></a>00810       <span class="keywordflow">if</span> ( bDesktopFile &amp;&amp; <a class="code" href="classKPropsDlgPlugin.html#d29f1d332d93035d3ae2278ba25b2803" title="Convenience method for most supports methods.">isDesktopFile</a>(*it) != bDesktopFile )
<a name="l00811"></a>00811         bDesktopFile = <span class="keyword">false</span>; <span class="comment">// not all desktop files</span>
<a name="l00812"></a>00812       <span class="keywordflow">if</span> ( (*it)-&gt;mode() != mode )
<a name="l00813"></a>00813         mode = (mode_t)0;
<a name="l00814"></a>00814       <span class="keywordflow">if</span> ( KMimeType::iconForURL(url, mode) != iconStr )
<a name="l00815"></a>00815         iconStr = <span class="stringliteral">"kmultiple"</span>;
<a name="l00816"></a>00816       <span class="keywordflow">if</span> ( url.directory() != directory )
<a name="l00817"></a>00817         directory = QString::null;
<a name="l00818"></a>00818       <span class="keywordflow">if</span> ( url.protocol() != protocol )
<a name="l00819"></a>00819         protocol = QString::null;
<a name="l00820"></a>00820       <span class="keywordflow">if</span> ( !mimeComment.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isNull">isNull</a>() &amp;&amp; (*it)-&gt;mimeComment() != mimeComment )
<a name="l00821"></a>00821         mimeComment = QString::null;
<a name="l00822"></a>00822       <span class="keywordflow">if</span> ( isLocal &amp;&amp; !magicMimeComment.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isNull">isNull</a>() ) {
<a name="l00823"></a>00823           KMimeType::Ptr magicMimeType = KMimeType::findByFileContent( url.path() );
<a name="l00824"></a>00824           <span class="keywordflow">if</span> ( magicMimeType-&gt;comment() != magicMimeComment )
<a name="l00825"></a>00825               magicMimeComment = QString::null;
<a name="l00826"></a>00826       }
<a name="l00827"></a>00827 
<a name="l00828"></a>00828       <span class="keywordflow">if</span> ( url.path() == <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#fromLatin1">QString::fromLatin1</a>(<span class="stringliteral">"/"</span>) )
<a name="l00829"></a>00829         hasRoot = <span class="keyword">true</span>;
<a name="l00830"></a>00830       <span class="keywordflow">if</span> ( (*it)-&gt;isDir() &amp;&amp; !(*it)-&gt;isLink() )
<a name="l00831"></a>00831       {
<a name="l00832"></a>00832         iDirCount++;
<a name="l00833"></a>00833         hasDirs = <span class="keyword">true</span>;
<a name="l00834"></a>00834       }
<a name="l00835"></a>00835       <span class="keywordflow">else</span>
<a name="l00836"></a>00836       {
<a name="l00837"></a>00837         iFileCount++;
<a name="l00838"></a>00838     <span class="keywordtype">bool</span> hasSize;
<a name="l00839"></a>00839         totalSize += (*it)-&gt;size(hasSize);
<a name="l00840"></a>00840     hasTotalSize = hasTotalSize || hasSize;
<a name="l00841"></a>00841       }
<a name="l00842"></a>00842     }
<a name="l00843"></a>00843   }
<a name="l00844"></a>00844 
<a name="l00845"></a>00845   <span class="keywordflow">if</span> (!isReallyLocal &amp;&amp; !protocol.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isEmpty">isEmpty</a>())
<a name="l00846"></a>00846   {
<a name="l00847"></a>00847     directory += <span class="charliteral">' '</span>;
<a name="l00848"></a>00848     directory += <span class="charliteral">'('</span>;
<a name="l00849"></a>00849     directory += protocol;
<a name="l00850"></a>00850     directory += <span class="charliteral">')'</span>;
<a name="l00851"></a>00851   }
<a name="l00852"></a>00852 
<a name="l00853"></a>00853   <span class="keywordflow">if</span> ( !isDevice &amp;&amp; !isTrash &amp;&amp; (bDesktopFile || S_ISDIR(mode)) &amp;&amp; !d-&gt;bMultiple <span class="comment">/*not implemented for multiple*/</span> )
<a name="l00854"></a>00854   {
<a name="l00855"></a>00855     <a class="code" href="classKIconButton.html" title="A pushbutton for choosing an icon.">KIconButton</a> *iconButton = <span class="keyword">new</span> <a class="code" href="classKIconButton.html" title="A pushbutton for choosing an icon.">KIconButton</a>( d-&gt;m_frame );
<a name="l00856"></a>00856     <span class="keywordtype">int</span> bsize = 66 + 2 * iconButton-&gt;style().pixelMetric(QStyle::PM_ButtonMargin);
<a name="l00857"></a>00857     iconButton-&gt;setFixedSize(bsize, bsize);
<a name="l00858"></a>00858     iconButton-&gt;<a class="code" href="classKIconButton.html#fb6286f6ae9944ea9d903f5862981731" title="Sets the size of the icon to be shown / selected.">setIconSize</a>(48);
<a name="l00859"></a>00859     iconButton-&gt;<a class="code" href="classKIconButton.html#45011737fe7e884d78132a2a56135b85" title="Sets a strict icon size policy for allowed icons.">setStrictIconSize</a>(<span class="keyword">false</span>);
<a name="l00860"></a>00860     <span class="comment">// This works for everything except Device icons on unmounted devices</span>
<a name="l00861"></a>00861     <span class="comment">// So we have to really open .desktop files</span>
<a name="l00862"></a>00862     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> iconStr = KMimeType::findByURL( url, mode )-&gt;icon( url, isLocal );
<a name="l00863"></a>00863     <span class="keywordflow">if</span> ( bDesktopFile &amp;&amp; isLocal )
<a name="l00864"></a>00864     {
<a name="l00865"></a>00865       KDesktopFile config( url.path(), true );
<a name="l00866"></a>00866       config.setDesktopGroup();
<a name="l00867"></a>00867       iconStr = config.readEntry( <span class="stringliteral">"Icon"</span> );
<a name="l00868"></a>00868       <span class="keywordflow">if</span> ( config.hasDeviceType() )
<a name="l00869"></a>00869     iconButton-&gt;<a class="code" href="classKIconButton.html#ae3658de70b382a4deda28fd020d76dc" title="Sets the icon group and context.">setIconType</a>( KIcon::Desktop, KIcon::Device );
<a name="l00870"></a>00870       <span class="keywordflow">else</span>
<a name="l00871"></a>00871     iconButton-&gt;<a class="code" href="classKIconButton.html#ae3658de70b382a4deda28fd020d76dc" title="Sets the icon group and context.">setIconType</a>( KIcon::Desktop, KIcon::Application );
<a name="l00872"></a>00872     } <span class="keywordflow">else</span>
<a name="l00873"></a>00873       iconButton-&gt;<a class="code" href="classKIconButton.html#ae3658de70b382a4deda28fd020d76dc" title="Sets the icon group and context.">setIconType</a>( KIcon::Desktop, KIcon::FileSystem );
<a name="l00874"></a>00874     iconButton-&gt;<a class="code" href="classKIconButton.html#31714c65560fdfc8200a8ce8da2e18de" title="Sets the button&amp;#39;s initial icon.">setIcon</a>(iconStr);
<a name="l00875"></a>00875     iconArea = iconButton;
<a name="l00876"></a>00876     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( iconButton, SIGNAL( iconChanged(<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a>) ),
<a name="l00877"></a>00877              <span class="keyword">this</span>, SLOT( slotIconChanged() ) );
<a name="l00878"></a>00878   } <span class="keywordflow">else</span> {
<a name="l00879"></a>00879     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a> *iconLabel = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( d-&gt;m_frame );
<a name="l00880"></a>00880     <span class="keywordtype">int</span> bsize = 66 + 2 * iconLabel-&gt;style().pixelMetric(QStyle::PM_ButtonMargin);
<a name="l00881"></a>00881     iconLabel-&gt;setFixedSize(bsize, bsize);
<a name="l00882"></a>00882     iconLabel-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html#setPixmap">setPixmap</a>( KGlobal::iconLoader()-&gt;loadIcon( iconStr, KIcon::Desktop, 48) );
<a name="l00883"></a>00883     iconArea = iconLabel;
<a name="l00884"></a>00884   }
<a name="l00885"></a>00885   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(iconArea, curRow, 0, AlignLeft);
<a name="l00886"></a>00886 
<a name="l00887"></a>00887   <span class="keywordflow">if</span> (d-&gt;bMultiple || isTrash || isDevice || hasRoot)
<a name="l00888"></a>00888   {
<a name="l00889"></a>00889     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a> *lab = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>(d-&gt;m_frame );
<a name="l00890"></a>00890     <span class="keywordflow">if</span> ( d-&gt;bMultiple )
<a name="l00891"></a>00891       lab-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html#setText">setText</a>( KIO::itemsSummaryString( iFileCount + iDirCount, iFileCount, iDirCount, 0, <span class="keyword">false</span> ) );
<a name="l00892"></a>00892     <span class="keywordflow">else</span>
<a name="l00893"></a>00893       lab-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html#setText">setText</a>( filename );
<a name="l00894"></a>00894     nameArea = lab;
<a name="l00895"></a>00895   } <span class="keywordflow">else</span>
<a name="l00896"></a>00896   {
<a name="l00897"></a>00897     d-&gt;m_lined = <span class="keyword">new</span> KLineEdit( d-&gt;m_frame );
<a name="l00898"></a>00898     d-&gt;m_lined-&gt;setText(filename);
<a name="l00899"></a>00899     nameArea = d-&gt;m_lined;
<a name="l00900"></a>00900     d-&gt;m_lined-&gt;setFocus();
<a name="l00901"></a>00901 
<a name="l00902"></a>00902     <span class="comment">// Enhanced rename: Don't highlight the file extension.</span>
<a name="l00903"></a>00903     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> pattern;
<a name="l00904"></a>00904     KServiceTypeFactory::self()-&gt;findFromPattern( filename, &amp;pattern );
<a name="l00905"></a>00905     <span class="keywordflow">if</span> (!pattern.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isEmpty">isEmpty</a>() &amp;&amp; pattern.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#at">at</a>(0)==<span class="charliteral">'*'</span> &amp;&amp; pattern.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#find">find</a>(<span class="charliteral">'*'</span>,1)==-1)
<a name="l00906"></a>00906       d-&gt;m_lined-&gt;setSelection(0, filename.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#length">length</a>()-pattern.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#stripWhiteSpace">stripWhiteSpace</a>().length()+1);
<a name="l00907"></a>00907     <span class="keywordflow">else</span>
<a name="l00908"></a>00908     {
<a name="l00909"></a>00909       <span class="keywordtype">int</span> lastDot = filename.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#findRev">findRev</a>(<span class="charliteral">'.'</span>);
<a name="l00910"></a>00910       <span class="keywordflow">if</span> (lastDot &gt; 0)
<a name="l00911"></a>00911         d-&gt;m_lined-&gt;setSelection(0, lastDot);
<a name="l00912"></a>00912     }
<a name="l00913"></a>00913 
<a name="l00914"></a>00914     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( d-&gt;m_lined, SIGNAL( textChanged( <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> &amp; ) ),
<a name="l00915"></a>00915              <span class="keyword">this</span>, SLOT( nameFileChanged(<span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> &amp; ) ) );
<a name="l00916"></a>00916   }
<a name="l00917"></a>00917 
<a name="l00918"></a>00918   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(nameArea, curRow++, 2);
<a name="l00919"></a>00919 
<a name="l00920"></a>00920   KSeparator* sep = <span class="keyword">new</span> KSeparator( KSeparator::HLine, d-&gt;m_frame);
<a name="l00921"></a>00921   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addMultiCellWidget">addMultiCellWidget</a>(sep, curRow, curRow, 0, 2);
<a name="l00922"></a>00922   ++curRow;
<a name="l00923"></a>00923 
<a name="l00924"></a>00924   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a> *l;
<a name="l00925"></a>00925   <span class="keywordflow">if</span> ( !mimeComment.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isEmpty">isEmpty</a>() &amp;&amp; !isDevice &amp;&amp; !isTrash)
<a name="l00926"></a>00926   {
<a name="l00927"></a>00927     l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>(i18n(<span class="stringliteral">"Type:"</span>), d-&gt;m_frame );
<a name="l00928"></a>00928 
<a name="l00929"></a>00929     grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(l, curRow, 0);
<a name="l00930"></a>00930 
<a name="l00931"></a>00931     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qhbox.html">QHBox</a> *box = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qhbox.html">QHBox</a>(d-&gt;m_frame);
<a name="l00932"></a>00932     box-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qhbox.html#setSpacing">setSpacing</a>(20);
<a name="l00933"></a>00933     l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>(mimeComment, box );
<a name="l00934"></a>00934 
<a name="l00935"></a>00935 <span class="preprocessor">#ifdef Q_WS_X11</span>
<a name="l00936"></a>00936 <span class="preprocessor"></span>    <span class="comment">//TODO: wrap for win32 or mac?</span>
<a name="l00937"></a>00937     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qpushbutton.html">QPushButton</a> *button = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qpushbutton.html">QPushButton</a>(box);
<a name="l00938"></a>00938 
<a name="l00939"></a>00939     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qiconset.html">QIconSet</a> iconSet = SmallIconSet(<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#fromLatin1">QString::fromLatin1</a>(<span class="stringliteral">"configure"</span>));
<a name="l00940"></a>00940     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qpixmap.html">QPixmap</a> pixMap = iconSet.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qiconset.html#pixmap">pixmap</a>( QIconSet::Small, QIconSet::Normal );
<a name="l00941"></a>00941     button-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qpushbutton.html#setIconSet">setIconSet</a>( iconSet );
<a name="l00942"></a>00942     button-&gt;setFixedSize( pixMap.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qpixmap.html#width">width</a>()+8, pixMap.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qpixmap.html#height">height</a>()+8 );
<a name="l00943"></a>00943     <span class="keywordflow">if</span> ( d-&gt;mimeType == KMimeType::defaultMimeType() )
<a name="l00944"></a>00944        <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qtooltip.html#add">QToolTip::add</a>(button, i18n(<span class="stringliteral">"Create new file type"</span>));
<a name="l00945"></a>00945     <span class="keywordflow">else</span>
<a name="l00946"></a>00946        <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qtooltip.html#add">QToolTip::add</a>(button, i18n(<span class="stringliteral">"Edit file type"</span>));
<a name="l00947"></a>00947 
<a name="l00948"></a>00948     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( button, SIGNAL( clicked() ), SLOT( slotEditFileType() ));
<a name="l00949"></a>00949 
<a name="l00950"></a>00950     <span class="keywordflow">if</span> (!kapp-&gt;authorizeKAction(<span class="stringliteral">"editfiletype"</span>))
<a name="l00951"></a>00951        button-&gt;hide();
<a name="l00952"></a>00952 <span class="preprocessor">#endif</span>
<a name="l00953"></a>00953 <span class="preprocessor"></span>
<a name="l00954"></a>00954     grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(box, curRow++, 2);
<a name="l00955"></a>00955   }
<a name="l00956"></a>00956 
<a name="l00957"></a>00957   <span class="keywordflow">if</span> ( !magicMimeComment.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isEmpty">isEmpty</a>() &amp;&amp; magicMimeComment != mimeComment )
<a name="l00958"></a>00958   {
<a name="l00959"></a>00959     l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>(i18n(<span class="stringliteral">"Contents:"</span>), d-&gt;m_frame );
<a name="l00960"></a>00960     grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(l, curRow, 0);
<a name="l00961"></a>00961 
<a name="l00962"></a>00962     l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>(magicMimeComment, d-&gt;m_frame );
<a name="l00963"></a>00963     grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(l, curRow++, 2);
<a name="l00964"></a>00964   }
<a name="l00965"></a>00965 
<a name="l00966"></a>00966   <span class="keywordflow">if</span> ( !directory.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isEmpty">isEmpty</a>() )
<a name="l00967"></a>00967   {
<a name="l00968"></a>00968     l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( i18n(<span class="stringliteral">"Location:"</span>), d-&gt;m_frame );
<a name="l00969"></a>00969     grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(l, curRow, 0);
<a name="l00970"></a>00970 
<a name="l00971"></a>00971     l = <span class="keyword">new</span> KSqueezedTextLabel( d-&gt;m_frame );
<a name="l00972"></a>00972     l-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html#setText">setText</a>( directory );
<a name="l00973"></a>00973     grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(l, curRow++, 2);
<a name="l00974"></a>00974   }
<a name="l00975"></a>00975 
<a name="l00976"></a>00976   <span class="keywordflow">if</span>( hasDirs || hasTotalSize ) {
<a name="l00977"></a>00977     l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>(i18n(<span class="stringliteral">"Size:"</span>), d-&gt;m_frame );
<a name="l00978"></a>00978     grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(l, curRow, 0);
<a name="l00979"></a>00979 
<a name="l00980"></a>00980     m_sizeLabel = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( d-&gt;m_frame );
<a name="l00981"></a>00981     grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>( m_sizeLabel, curRow++, 2 );
<a name="l00982"></a>00982   } <span class="keywordflow">else</span> {
<a name="l00983"></a>00983     m_sizeLabel = 0;
<a name="l00984"></a>00984   }
<a name="l00985"></a>00985 
<a name="l00986"></a>00986   <span class="keywordflow">if</span> ( !hasDirs ) <span class="comment">// Only files [and symlinks]</span>
<a name="l00987"></a>00987   {
<a name="l00988"></a>00988     <span class="keywordflow">if</span>(hasTotalSize) {
<a name="l00989"></a>00989       m_sizeLabel-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html#setText">setText</a>(KIO::convertSizeWithBytes(totalSize));
<a name="l00990"></a>00990     }
<a name="l00991"></a>00991 
<a name="l00992"></a>00992     m_sizeDetermineButton = 0L;
<a name="l00993"></a>00993     m_sizeStopButton = 0L;
<a name="l00994"></a>00994   }
<a name="l00995"></a>00995   <span class="keywordflow">else</span> <span class="comment">// Directory</span>
<a name="l00996"></a>00996   {
<a name="l00997"></a>00997     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qhboxlayout.html">QHBoxLayout</a> * sizelay = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qhboxlayout.html">QHBoxLayout</a>(KDialog::spacingHint());
<a name="l00998"></a>00998     grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addLayout">addLayout</a>( sizelay, curRow++, 2 );
<a name="l00999"></a>00999 
<a name="l01000"></a>01000     <span class="comment">// buttons</span>
<a name="l01001"></a>01001     m_sizeDetermineButton = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qpushbutton.html">QPushButton</a>( i18n(<span class="stringliteral">"Calculate"</span>), d-&gt;m_frame );
<a name="l01002"></a>01002     m_sizeStopButton = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qpushbutton.html">QPushButton</a>( i18n(<span class="stringliteral">"Stop"</span>), d-&gt;m_frame );
<a name="l01003"></a>01003     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( m_sizeDetermineButton, SIGNAL( clicked() ), <span class="keyword">this</span>, SLOT( slotSizeDetermine() ) );
<a name="l01004"></a>01004     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( m_sizeStopButton, SIGNAL( clicked() ), <span class="keyword">this</span>, SLOT( slotSizeStop() ) );
<a name="l01005"></a>01005     sizelay-&gt;addWidget(m_sizeDetermineButton, 0);
<a name="l01006"></a>01006     sizelay-&gt;addWidget(m_sizeStopButton, 0);
<a name="l01007"></a>01007     sizelay-&gt;addStretch(10); <span class="comment">// so that the buttons don't grow horizontally</span>
<a name="l01008"></a>01008 
<a name="l01009"></a>01009     <span class="comment">// auto-launch for local dirs only, and not for '/'</span>
<a name="l01010"></a>01010     <span class="keywordflow">if</span> ( isLocal &amp;&amp; !hasRoot )
<a name="l01011"></a>01011     {
<a name="l01012"></a>01012       m_sizeDetermineButton-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qpushbutton.html#setText">setText</a>( i18n(<span class="stringliteral">"Refresh"</span>) );
<a name="l01013"></a>01013       slotSizeDetermine();
<a name="l01014"></a>01014     }
<a name="l01015"></a>01015     <span class="keywordflow">else</span>
<a name="l01016"></a>01016       m_sizeStopButton-&gt;setEnabled( <span class="keyword">false</span> );
<a name="l01017"></a>01017   }
<a name="l01018"></a>01018 
<a name="l01019"></a>01019   <span class="keywordflow">if</span> (!d-&gt;bMultiple &amp;&amp; item-&gt;isLink()) {
<a name="l01020"></a>01020     l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>(i18n(<span class="stringliteral">"Points to:"</span>), d-&gt;m_frame );
<a name="l01021"></a>01021     grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(l, curRow, 0);
<a name="l01022"></a>01022 
<a name="l01023"></a>01023     l = <span class="keyword">new</span> KSqueezedTextLabel(item-&gt;linkDest(), d-&gt;m_frame );
<a name="l01024"></a>01024     grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(l, curRow++, 2);
<a name="l01025"></a>01025   }
<a name="l01026"></a>01026 
<a name="l01027"></a>01027   <span class="keywordflow">if</span> (!d-&gt;bMultiple) <span class="comment">// Dates for multiple don't make much sense...</span>
<a name="l01028"></a>01028   {
<a name="l01029"></a>01029     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qdatetime.html">QDateTime</a> dt;
<a name="l01030"></a>01030     <span class="keywordtype">bool</span> hasTime;
<a name="l01031"></a>01031     time_t tim = item-&gt;time(KIO::UDS_CREATION_TIME, hasTime);
<a name="l01032"></a>01032     <span class="keywordflow">if</span> ( hasTime )
<a name="l01033"></a>01033     {
<a name="l01034"></a>01034       l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>(i18n(<span class="stringliteral">"Created:"</span>), d-&gt;m_frame );
<a name="l01035"></a>01035       grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(l, curRow, 0);
<a name="l01036"></a>01036 
<a name="l01037"></a>01037       dt.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qdatetime.html#setTime_t">setTime_t</a>( tim );
<a name="l01038"></a>01038       l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>(KGlobal::locale()-&gt;formatDateTime(dt), d-&gt;m_frame );
<a name="l01039"></a>01039       grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(l, curRow++, 2);
<a name="l01040"></a>01040     }
<a name="l01041"></a>01041 
<a name="l01042"></a>01042     tim = item-&gt;time(KIO::UDS_MODIFICATION_TIME, hasTime);
<a name="l01043"></a>01043     <span class="keywordflow">if</span> ( hasTime )
<a name="l01044"></a>01044     {
<a name="l01045"></a>01045       l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>(i18n(<span class="stringliteral">"Modified:"</span>), d-&gt;m_frame );
<a name="l01046"></a>01046       grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(l, curRow, 0);
<a name="l01047"></a>01047 
<a name="l01048"></a>01048       dt.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qdatetime.html#setTime_t">setTime_t</a>( tim );
<a name="l01049"></a>01049       l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>(KGlobal::locale()-&gt;formatDateTime(dt), d-&gt;m_frame );
<a name="l01050"></a>01050       grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(l, curRow++, 2);
<a name="l01051"></a>01051     }
<a name="l01052"></a>01052 
<a name="l01053"></a>01053     tim = item-&gt;time(KIO::UDS_ACCESS_TIME, hasTime);
<a name="l01054"></a>01054     <span class="keywordflow">if</span> ( hasTime )
<a name="l01055"></a>01055     {
<a name="l01056"></a>01056       l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>(i18n(<span class="stringliteral">"Accessed:"</span>), d-&gt;m_frame );
<a name="l01057"></a>01057       grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(l, curRow, 0);
<a name="l01058"></a>01058 
<a name="l01059"></a>01059       dt.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qdatetime.html#setTime_t">setTime_t</a>( tim );
<a name="l01060"></a>01060       l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>(KGlobal::locale()-&gt;formatDateTime(dt), d-&gt;m_frame );
<a name="l01061"></a>01061       grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(l, curRow++, 2);
<a name="l01062"></a>01062     }
<a name="l01063"></a>01063   }
<a name="l01064"></a>01064 
<a name="l01065"></a>01065   <span class="keywordflow">if</span> ( isLocal &amp;&amp; hasDirs )  <span class="comment">// only for directories</span>
<a name="l01066"></a>01066   {
<a name="l01067"></a>01067     sep = <span class="keyword">new</span> KSeparator( KSeparator::HLine, d-&gt;m_frame);
<a name="l01068"></a>01068     grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addMultiCellWidget">addMultiCellWidget</a>(sep, curRow, curRow, 0, 2);
<a name="l01069"></a>01069     ++curRow;
<a name="l01070"></a>01070 
<a name="l01071"></a>01071     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> mountPoint = KIO::findPathMountPoint( url.path() );
<a name="l01072"></a>01072 
<a name="l01073"></a>01073     <span class="keywordflow">if</span> (mountPoint != <span class="stringliteral">"/"</span>)
<a name="l01074"></a>01074     {
<a name="l01075"></a>01075         l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>(i18n(<span class="stringliteral">"Mounted on:"</span>), d-&gt;m_frame );
<a name="l01076"></a>01076         grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(l, curRow, 0);
<a name="l01077"></a>01077 
<a name="l01078"></a>01078         l = <span class="keyword">new</span> KSqueezedTextLabel( mountPoint, d-&gt;m_frame );
<a name="l01079"></a>01079         grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>( l, curRow++, 2 );
<a name="l01080"></a>01080     }
<a name="l01081"></a>01081 
<a name="l01082"></a>01082     l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>(i18n(<span class="stringliteral">"Free disk space:"</span>), d-&gt;m_frame );
<a name="l01083"></a>01083     grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(l, curRow, 0);
<a name="l01084"></a>01084 
<a name="l01085"></a>01085     d-&gt;m_freeSpaceLabel = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( d-&gt;m_frame );
<a name="l01086"></a>01086     grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>( d-&gt;m_freeSpaceLabel, curRow++, 2 );
<a name="l01087"></a>01087 
<a name="l01088"></a>01088     <a class="code" href="classKDiskFreeSp.html" title="This class parses the output of &amp;quot;df&amp;quot; to find the disk usage information...">KDiskFreeSp</a> * job = <span class="keyword">new</span> <a class="code" href="classKDiskFreeSp.html" title="This class parses the output of &amp;quot;df&amp;quot; to find the disk usage information...">KDiskFreeSp</a>;
<a name="l01089"></a>01089     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( job, SIGNAL( foundMountPoint( <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp;, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp;,
<a name="l01090"></a>01090              <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp;, <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a>&amp; ) ),
<a name="l01091"></a>01091              <span class="keyword">this</span>, SLOT( slotFoundMountPoint( <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp;, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp;,
<a name="l01092"></a>01092           <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp;, <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a>&amp; ) ) );
<a name="l01093"></a>01093     job-&gt;<a class="code" href="classKDiskFreeSp.html#42e93d7340696d23f2c2e3bd47275e24" title="Call this to fire a search on the disk usage information for mountPoint.">readDF</a>( mountPoint );
<a name="l01094"></a>01094   }
<a name="l01095"></a>01095 
<a name="l01096"></a>01096   vbl-&gt;addStretch(1);
<a name="l01097"></a>01097 }
<a name="l01098"></a>01098 
<a name="l01099"></a>01099 <span class="comment">// QString KFilePropsPlugin::tabName () const</span>
<a name="l01100"></a>01100 <span class="comment">// {</span>
<a name="l01101"></a>01101 <span class="comment">//   return i18n ("&amp;General");</span>
<a name="l01102"></a>01102 <span class="comment">// }</span>
<a name="l01103"></a>01103 
<a name="l01104"></a>01104 <span class="keywordtype">void</span> KFilePropsPlugin::setFileNameReadOnly( <span class="keywordtype">bool</span> ro )
<a name="l01105"></a>01105 {
<a name="l01106"></a>01106   <span class="keywordflow">if</span> ( d-&gt;m_lined )
<a name="l01107"></a>01107   {
<a name="l01108"></a>01108     d-&gt;m_lined-&gt;setReadOnly( ro );
<a name="l01109"></a>01109     <span class="keywordflow">if</span> (ro)
<a name="l01110"></a>01110     {
<a name="l01111"></a>01111        <span class="comment">// Don't put the initial focus on the line edit when it is ro</span>
<a name="l01112"></a>01112        <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qpushbutton.html">QPushButton</a> *button = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;actionButton(KDialogBase::Ok);
<a name="l01113"></a>01113        <span class="keywordflow">if</span> (button)
<a name="l01114"></a>01114           button-&gt;setFocus();
<a name="l01115"></a>01115     }
<a name="l01116"></a>01116   }
<a name="l01117"></a>01117 }
<a name="l01118"></a>01118 
<a name="l01119"></a>01119 <span class="keywordtype">void</span> KFilePropsPlugin::slotEditFileType()
<a name="l01120"></a>01120 {
<a name="l01121"></a>01121 <span class="preprocessor">#ifdef Q_WS_X11</span>
<a name="l01122"></a>01122 <span class="preprocessor"></span>  <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> mime;
<a name="l01123"></a>01123   <span class="keywordflow">if</span> ( d-&gt;mimeType == KMimeType::defaultMimeType() ) {
<a name="l01124"></a>01124     <span class="keywordtype">int</span> pos = d-&gt;oldFileName.findRev( <span class="charliteral">'.'</span> );
<a name="l01125"></a>01125     <span class="keywordflow">if</span> ( pos != -1 )
<a name="l01126"></a>01126     mime = <span class="stringliteral">"*"</span> + d-&gt;oldFileName.mid(pos);
<a name="l01127"></a>01127     <span class="keywordflow">else</span>
<a name="l01128"></a>01128     mime = <span class="stringliteral">"*"</span>;
<a name="l01129"></a>01129   }
<a name="l01130"></a>01130   <span class="keywordflow">else</span>
<a name="l01131"></a>01131     mime = d-&gt;mimeType;
<a name="l01132"></a>01132     <span class="comment">//TODO: wrap for win32 or mac?</span>
<a name="l01133"></a>01133   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> keditfiletype = <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#fromLatin1">QString::fromLatin1</a>(<span class="stringliteral">"keditfiletype"</span>);
<a name="l01134"></a>01134   KRun::runCommand( keditfiletype
<a name="l01135"></a>01135                     + <span class="stringliteral">" --parent "</span> + <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#number">QString::number</a>( (ulong)<a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;topLevelWidget()-&gt;winId())
<a name="l01136"></a>01136                     + <span class="stringliteral">" "</span> + KProcess::quote(mime),
<a name="l01137"></a>01137                     keditfiletype, keditfiletype <span class="comment">/*unused*/</span>);
<a name="l01138"></a>01138 <span class="preprocessor">#endif</span>
<a name="l01139"></a>01139 <span class="preprocessor"></span>}
<a name="l01140"></a>01140 
<a name="l01141"></a>01141 <span class="keywordtype">void</span> KFilePropsPlugin::slotIconChanged()
<a name="l01142"></a>01142 {
<a name="l01143"></a>01143   d-&gt;bIconChanged = <span class="keyword">true</span>;
<a name="l01144"></a>01144   emit <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>();
<a name="l01145"></a>01145 }
<a name="l01146"></a>01146 
<a name="l01147"></a>01147 <span class="keywordtype">void</span> KFilePropsPlugin::nameFileChanged(<span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> &amp;text )
<a name="l01148"></a>01148 {
<a name="l01149"></a>01149   <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;enableButtonOK(!text.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isEmpty">isEmpty</a>());
<a name="l01150"></a>01150   emit <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>();
<a name="l01151"></a>01151 }
<a name="l01152"></a>01152 
<a name="l01153"></a>01153 <span class="keywordtype">void</span> KFilePropsPlugin::determineRelativePath( <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> &amp; path )
<a name="l01154"></a>01154 {
<a name="l01155"></a>01155     <span class="comment">// now let's make it relative</span>
<a name="l01156"></a>01156     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstringlist.html">QStringList</a> dirs;
<a name="l01157"></a>01157     <span class="keywordflow">if</span> (KBindingPropsPlugin::supports(<a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#616b7c9afe4c1c1235c2edb81b2e36a1">items</a>()))
<a name="l01158"></a>01158     {
<a name="l01159"></a>01159        m_sRelativePath =KGlobal::dirs()-&gt;relativeLocation(<span class="stringliteral">"mime"</span>, path);
<a name="l01160"></a>01160        <span class="keywordflow">if</span> (m_sRelativePath.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#startsWith">startsWith</a>(<span class="stringliteral">"/"</span>))
<a name="l01161"></a>01161           m_sRelativePath = QString::null;
<a name="l01162"></a>01162     }
<a name="l01163"></a>01163     <span class="keywordflow">else</span>
<a name="l01164"></a>01164     {
<a name="l01165"></a>01165        m_sRelativePath =KGlobal::dirs()-&gt;relativeLocation(<span class="stringliteral">"apps"</span>, path);
<a name="l01166"></a>01166        <span class="keywordflow">if</span> (m_sRelativePath.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#startsWith">startsWith</a>(<span class="stringliteral">"/"</span>))
<a name="l01167"></a>01167        {
<a name="l01168"></a>01168           m_sRelativePath =KGlobal::dirs()-&gt;relativeLocation(<span class="stringliteral">"xdgdata-apps"</span>, path);
<a name="l01169"></a>01169           <span class="keywordflow">if</span> (m_sRelativePath.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#startsWith">startsWith</a>(<span class="stringliteral">"/"</span>))
<a name="l01170"></a>01170              m_sRelativePath = QString::null;
<a name="l01171"></a>01171           <span class="keywordflow">else</span>
<a name="l01172"></a>01172              m_sRelativePath = path;
<a name="l01173"></a>01173        }
<a name="l01174"></a>01174     }
<a name="l01175"></a>01175     <span class="keywordflow">if</span> ( m_sRelativePath.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isEmpty">isEmpty</a>() )
<a name="l01176"></a>01176     {
<a name="l01177"></a>01177       <span class="keywordflow">if</span> (KBindingPropsPlugin::supports(<a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#616b7c9afe4c1c1235c2edb81b2e36a1">items</a>()))
<a name="l01178"></a>01178         kdWarning(250) &lt;&lt; <span class="stringliteral">"Warning : editing a mimetype file out of the mimetype dirs!"</span> &lt;&lt; endl;
<a name="l01179"></a>01179     }
<a name="l01180"></a>01180 }
<a name="l01181"></a>01181 
<a name="l01182"></a>01182 <span class="keywordtype">void</span> KFilePropsPlugin::slotFoundMountPoint( <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a>&amp;,
<a name="l01183"></a>01183                         <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> kBSize,
<a name="l01184"></a>01184                         <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="comment">/*kBUsed*/</span>,
<a name="l01185"></a>01185                         <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> kBAvail )
<a name="l01186"></a>01186 {
<a name="l01187"></a>01187     d-&gt;m_freeSpaceLabel-&gt;setText(
<a name="l01188"></a>01188     <span class="comment">// xgettext:no-c-format  --  Don't warn about translating the %1 out of %2 part.</span>
<a name="l01189"></a>01189     i18n(<span class="stringliteral">"Available space out of total partition size (percent used)"</span>, <span class="stringliteral">"%1 out of %2 (%3% used)"</span>)
<a name="l01190"></a>01190     .arg(KIO::convertSizeFromKB(kBAvail))
<a name="l01191"></a>01191     .arg(KIO::convertSizeFromKB(kBSize))
<a name="l01192"></a>01192     .arg( 100 - (<span class="keywordtype">int</span>)(100.0 * kBAvail / kBSize) ));
<a name="l01193"></a>01193 }
<a name="l01194"></a>01194 
<a name="l01195"></a>01195 <span class="comment">// attention: copy&amp;paste below, due to compiler bug</span>
<a name="l01196"></a>01196 <span class="comment">// it doesn't like those unsigned long parameters -- unsigned long&amp; are ok :-/</span>
<a name="l01197"></a>01197 <span class="keywordtype">void</span> KFilePropsPlugin::slotFoundMountPoint( <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp; kBSize,
<a name="l01198"></a>01198                         <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp; <span class="comment">/*kBUsed*/</span>,
<a name="l01199"></a>01199                         <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp; kBAvail,
<a name="l01200"></a>01200                         <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a>&amp; )
<a name="l01201"></a>01201 {
<a name="l01202"></a>01202     d-&gt;m_freeSpaceLabel-&gt;setText(
<a name="l01203"></a>01203     <span class="comment">// xgettext:no-c-format  --  Don't warn about translating the %1 out of %2 part.</span>
<a name="l01204"></a>01204     i18n(<span class="stringliteral">"Available space out of total partition size (percent used)"</span>, <span class="stringliteral">"%1 out of %2 (%3% used)"</span>)
<a name="l01205"></a>01205     .arg(KIO::convertSizeFromKB(kBAvail))
<a name="l01206"></a>01206     .arg(KIO::convertSizeFromKB(kBSize))
<a name="l01207"></a>01207     .arg( 100 - (<span class="keywordtype">int</span>)(100.0 * kBAvail / kBSize) ));
<a name="l01208"></a>01208 }
<a name="l01209"></a>01209 
<a name="l01210"></a>01210 <span class="keywordtype">void</span> KFilePropsPlugin::slotDirSizeUpdate()
<a name="l01211"></a>01211 {
<a name="l01212"></a>01212     KIO::filesize_t totalSize = d-&gt;dirSizeJob-&gt;totalSize();
<a name="l01213"></a>01213     KIO::filesize_t totalFiles = d-&gt;dirSizeJob-&gt;totalFiles();
<a name="l01214"></a>01214          KIO::filesize_t totalSubdirs = d-&gt;dirSizeJob-&gt;totalSubdirs();
<a name="l01215"></a>01215     m_sizeLabel-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html#setText">setText</a>( i18n(<span class="stringliteral">"Calculating... %1 (%2)\n%3, %4"</span>)
<a name="l01216"></a>01216               .arg(KIO::convertSize(totalSize))
<a name="l01217"></a>01217                          .arg(KGlobal::locale()-&gt;formatNumber(totalSize, 0))
<a name="l01218"></a>01218         .arg(i18n(<span class="stringliteral">"1 file"</span>,<span class="stringliteral">"%n files"</span>,totalFiles))
<a name="l01219"></a>01219         .arg(i18n(<span class="stringliteral">"1 sub-folder"</span>,<span class="stringliteral">"%n sub-folders"</span>,totalSubdirs)));
<a name="l01220"></a>01220 }
<a name="l01221"></a>01221 
<a name="l01222"></a>01222 <span class="keywordtype">void</span> KFilePropsPlugin::slotDirSizeFinished( KIO::Job * job )
<a name="l01223"></a>01223 {
<a name="l01224"></a>01224   <span class="keywordflow">if</span> (job-&gt;error())
<a name="l01225"></a>01225     m_sizeLabel-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html#setText">setText</a>( job-&gt;errorString() );
<a name="l01226"></a>01226   <span class="keywordflow">else</span>
<a name="l01227"></a>01227   {
<a name="l01228"></a>01228     KIO::filesize_t totalSize = <span class="keyword">static_cast&lt;</span><a class="code" href="classKDirSize.html" title="Computes a directory size (similar to &amp;quot;du&amp;quot;, but doesn&amp;#39;t give the same...">KDirSize</a>*<span class="keyword">&gt;</span>(job)-&gt;totalSize();
<a name="l01229"></a>01229     KIO::filesize_t totalFiles = <span class="keyword">static_cast&lt;</span><a class="code" href="classKDirSize.html" title="Computes a directory size (similar to &amp;quot;du&amp;quot;, but doesn&amp;#39;t give the same...">KDirSize</a>*<span class="keyword">&gt;</span>(job)-&gt;totalFiles();
<a name="l01230"></a>01230     KIO::filesize_t totalSubdirs = <span class="keyword">static_cast&lt;</span><a class="code" href="classKDirSize.html" title="Computes a directory size (similar to &amp;quot;du&amp;quot;, but doesn&amp;#39;t give the same...">KDirSize</a>*<span class="keyword">&gt;</span>(job)-&gt;totalSubdirs();
<a name="l01231"></a>01231     m_sizeLabel-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html#setText">setText</a>( <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#fromLatin1">QString::fromLatin1</a>(<span class="stringliteral">"%1 (%2)\n%3, %4"</span>)
<a name="l01232"></a>01232               .arg(KIO::convertSize(totalSize))
<a name="l01233"></a>01233               .arg(KGlobal::locale()-&gt;formatNumber(totalSize, 0))
<a name="l01234"></a>01234         .arg(i18n(<span class="stringliteral">"1 file"</span>,<span class="stringliteral">"%n files"</span>,totalFiles))
<a name="l01235"></a>01235         .arg(i18n(<span class="stringliteral">"1 sub-folder"</span>,<span class="stringliteral">"%n sub-folders"</span>,totalSubdirs)));
<a name="l01236"></a>01236   }
<a name="l01237"></a>01237   m_sizeStopButton-&gt;setEnabled(<span class="keyword">false</span>);
<a name="l01238"></a>01238   <span class="comment">// just in case you change something and try again :)</span>
<a name="l01239"></a>01239   m_sizeDetermineButton-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qpushbutton.html#setText">setText</a>( i18n(<span class="stringliteral">"Refresh"</span>) );
<a name="l01240"></a>01240   m_sizeDetermineButton-&gt;setEnabled(<span class="keyword">true</span>);
<a name="l01241"></a>01241   d-&gt;dirSizeJob = 0L;
<a name="l01242"></a>01242   <span class="keyword">delete</span> d-&gt;dirSizeUpdateTimer;
<a name="l01243"></a>01243   d-&gt;dirSizeUpdateTimer = 0L;
<a name="l01244"></a>01244 }
<a name="l01245"></a>01245 
<a name="l01246"></a>01246 <span class="keywordtype">void</span> KFilePropsPlugin::slotSizeDetermine()
<a name="l01247"></a>01247 {
<a name="l01248"></a>01248   m_sizeLabel-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html#setText">setText</a>( i18n(<span class="stringliteral">"Calculating..."</span>) );
<a name="l01249"></a>01249   kdDebug(250) &lt;&lt; <span class="stringliteral">" KFilePropsPlugin::slotSizeDetermine() properties-&gt;item()="</span> &lt;&lt;  <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#f04def59643b5afac5c57d374b83cdb7">item</a>() &lt;&lt; endl;
<a name="l01250"></a>01250   kdDebug(250) &lt;&lt; <span class="stringliteral">" URL="</span> &lt;&lt; <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#f04def59643b5afac5c57d374b83cdb7">item</a>()-&gt;url().url() &lt;&lt; endl;
<a name="l01251"></a>01251   d-&gt;dirSizeJob = <a class="code" href="classKDirSize.html#b241bbebf94cb610b70c6a16052eb51f" title="Asynchronous method.">KDirSize::dirSizeJob</a>( <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#616b7c9afe4c1c1235c2edb81b2e36a1">items</a>() );
<a name="l01252"></a>01252   d-&gt;dirSizeUpdateTimer = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qtimer.html">QTimer</a>(<span class="keyword">this</span>);
<a name="l01253"></a>01253   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( d-&gt;dirSizeUpdateTimer, SIGNAL( timeout() ),
<a name="l01254"></a>01254            SLOT( slotDirSizeUpdate() ) );
<a name="l01255"></a>01255   d-&gt;dirSizeUpdateTimer-&gt;start(500);
<a name="l01256"></a>01256   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( d-&gt;dirSizeJob, SIGNAL( result( KIO::Job * ) ),
<a name="l01257"></a>01257            SLOT( slotDirSizeFinished( KIO::Job * ) ) );
<a name="l01258"></a>01258   m_sizeStopButton-&gt;setEnabled(<span class="keyword">true</span>);
<a name="l01259"></a>01259   m_sizeDetermineButton-&gt;setEnabled(<span class="keyword">false</span>);
<a name="l01260"></a>01260 
<a name="l01261"></a>01261   <span class="comment">// also update the "Free disk space" display</span>
<a name="l01262"></a>01262   <span class="keywordflow">if</span> ( d-&gt;m_freeSpaceLabel )
<a name="l01263"></a>01263   {
<a name="l01264"></a>01264     <span class="keywordtype">bool</span> isLocal;
<a name="l01265"></a>01265     KFileItem * item = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#f04def59643b5afac5c57d374b83cdb7">item</a>();
<a name="l01266"></a>01266     KURL url = item-&gt;mostLocalURL( isLocal );
<a name="l01267"></a>01267     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> mountPoint = KIO::findPathMountPoint( url.path() );
<a name="l01268"></a>01268 
<a name="l01269"></a>01269     <a class="code" href="classKDiskFreeSp.html" title="This class parses the output of &amp;quot;df&amp;quot; to find the disk usage information...">KDiskFreeSp</a> * job = <span class="keyword">new</span> <a class="code" href="classKDiskFreeSp.html" title="This class parses the output of &amp;quot;df&amp;quot; to find the disk usage information...">KDiskFreeSp</a>;
<a name="l01270"></a>01270     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( job, SIGNAL( foundMountPoint( <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp;, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp;,
<a name="l01271"></a>01271              <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp;, <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a>&amp; ) ),
<a name="l01272"></a>01272              <span class="keyword">this</span>, SLOT( slotFoundMountPoint( <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp;, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp;,
<a name="l01273"></a>01273           <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp;, <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a>&amp; ) ) );
<a name="l01274"></a>01274     job-&gt;readDF( mountPoint );
<a name="l01275"></a>01275   }
<a name="l01276"></a>01276 }
<a name="l01277"></a>01277 
<a name="l01278"></a>01278 <span class="keywordtype">void</span> KFilePropsPlugin::slotSizeStop()
<a name="l01279"></a>01279 {
<a name="l01280"></a>01280   <span class="keywordflow">if</span> ( d-&gt;dirSizeJob )
<a name="l01281"></a>01281   {
<a name="l01282"></a>01282     m_sizeLabel-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html#setText">setText</a>( i18n(<span class="stringliteral">"Stopped"</span>) );
<a name="l01283"></a>01283     d-&gt;dirSizeJob-&gt;kill();
<a name="l01284"></a>01284     d-&gt;dirSizeJob = 0;
<a name="l01285"></a>01285   }
<a name="l01286"></a>01286   <span class="keywordflow">if</span> ( d-&gt;dirSizeUpdateTimer )
<a name="l01287"></a>01287     d-&gt;dirSizeUpdateTimer-&gt;stop();
<a name="l01288"></a>01288 
<a name="l01289"></a>01289   m_sizeStopButton-&gt;setEnabled(<span class="keyword">false</span>);
<a name="l01290"></a>01290   m_sizeDetermineButton-&gt;setEnabled(<span class="keyword">true</span>);
<a name="l01291"></a>01291 }
<a name="l01292"></a>01292 
<a name="l01293"></a>01293 KFilePropsPlugin::~KFilePropsPlugin()
<a name="l01294"></a>01294 {
<a name="l01295"></a>01295   <span class="keyword">delete</span> d;
<a name="l01296"></a>01296 }
<a name="l01297"></a>01297 
<a name="l01298"></a><a class="code" href="classKFilePropsPlugin.html#3e3d1f7eade99e76cbaab017b6f62e5d">01298</a> <span class="keywordtype">bool</span> <a class="code" href="classKFilePropsPlugin.html#3e3d1f7eade99e76cbaab017b6f62e5d" title="Tests whether the files specified by _items need a &amp;#39;General&amp;#39; plugin.">KFilePropsPlugin::supports</a>( KFileItemList <span class="comment">/*_items*/</span> )
<a name="l01299"></a>01299 {
<a name="l01300"></a>01300   <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l01301"></a>01301 }
<a name="l01302"></a>01302 
<a name="l01303"></a>01303 <span class="comment">// Don't do this at home</span>
<a name="l01304"></a>01304 <span class="keywordtype">void</span> qt_enter_modal( <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwidget.html">QWidget</a> *widget );
<a name="l01305"></a>01305 <span class="keywordtype">void</span> qt_leave_modal( <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwidget.html">QWidget</a> *widget );
<a name="l01306"></a>01306 
<a name="l01307"></a><a class="code" href="classKFilePropsPlugin.html#e5a886d5dfa186234e6f8946a92af067">01307</a> <span class="keywordtype">void</span> <a class="code" href="classKFilePropsPlugin.html#e5a886d5dfa186234e6f8946a92af067" title="Applies all changes made.">KFilePropsPlugin::applyChanges</a>()
<a name="l01308"></a>01308 {
<a name="l01309"></a>01309   <span class="keywordflow">if</span> ( d-&gt;dirSizeJob )
<a name="l01310"></a>01310     slotSizeStop();
<a name="l01311"></a>01311 
<a name="l01312"></a>01312   kdDebug(250) &lt;&lt; <span class="stringliteral">"KFilePropsPlugin::applyChanges"</span> &lt;&lt; endl;
<a name="l01313"></a>01313 
<a name="l01314"></a>01314   <span class="keywordflow">if</span> (nameArea-&gt;inherits(<span class="stringliteral">"QLineEdit"</span>))
<a name="l01315"></a>01315   {
<a name="l01316"></a>01316     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> n = ((<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlineedit.html">QLineEdit</a> *) nameArea)-&gt;text();
<a name="l01317"></a>01317     <span class="comment">// Remove trailing spaces (#4345)</span>
<a name="l01318"></a>01318     <span class="keywordflow">while</span> ( n[n.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#length">length</a>()-1].isSpace() )
<a name="l01319"></a>01319       n.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#truncate">truncate</a>( n.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#length">length</a>() - 1 );
<a name="l01320"></a>01320     <span class="keywordflow">if</span> ( n.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isEmpty">isEmpty</a>() )
<a name="l01321"></a>01321     {
<a name="l01322"></a>01322       KMessageBox::sorry( <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>, i18n(<span class="stringliteral">"The new file name is empty."</span>));
<a name="l01323"></a>01323       <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#6193a34255bae07ec1573943cfb68bf1" title="To abort applying changes.">abortApplying</a>();
<a name="l01324"></a>01324       <span class="keywordflow">return</span>;
<a name="l01325"></a>01325     }
<a name="l01326"></a>01326 
<a name="l01327"></a>01327     <span class="comment">// Do we need to rename the file ?</span>
<a name="l01328"></a>01328     kdDebug(250) &lt;&lt; <span class="stringliteral">"oldname = "</span> &lt;&lt; oldName &lt;&lt; endl;
<a name="l01329"></a>01329     kdDebug(250) &lt;&lt; <span class="stringliteral">"newname = "</span> &lt;&lt; n &lt;&lt; endl;
<a name="l01330"></a>01330     <span class="keywordflow">if</span> ( oldName != n || m_bFromTemplate ) { <span class="comment">// true for any from-template file</span>
<a name="l01331"></a>01331       KIO::Job * job = 0L;
<a name="l01332"></a>01332       KURL oldurl = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>();
<a name="l01333"></a>01333 
<a name="l01334"></a>01334       <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> newFileName = KIO::encodeFileName(n);
<a name="l01335"></a>01335       <span class="keywordflow">if</span> (d-&gt;bDesktopFile &amp;&amp; !newFileName.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#endsWith">endsWith</a>(<span class="stringliteral">".desktop"</span>) &amp;&amp; !newFileName.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#endsWith">endsWith</a>(<span class="stringliteral">".kdelnk"</span>))
<a name="l01336"></a>01336          newFileName += <span class="stringliteral">".desktop"</span>;
<a name="l01337"></a>01337 
<a name="l01338"></a>01338       <span class="comment">// Tell properties. Warning, this changes the result of properties-&gt;kurl() !</span>
<a name="l01339"></a>01339       <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#df86c06051ecc55dfd631c6757a82460" title="Renames the item to the specified name.">rename</a>( newFileName );
<a name="l01340"></a>01340 
<a name="l01341"></a>01341       <span class="comment">// Update also relative path (for apps and mimetypes)</span>
<a name="l01342"></a>01342       <span class="keywordflow">if</span> ( !m_sRelativePath.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isEmpty">isEmpty</a>() )
<a name="l01343"></a>01343         determineRelativePath( <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().path() );
<a name="l01344"></a>01344 
<a name="l01345"></a>01345       kdDebug(250) &lt;&lt; <span class="stringliteral">"New URL = "</span> &lt;&lt; <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().url() &lt;&lt; endl;
<a name="l01346"></a>01346       kdDebug(250) &lt;&lt; <span class="stringliteral">"old = "</span> &lt;&lt; oldurl.url() &lt;&lt; endl;
<a name="l01347"></a>01347 
<a name="l01348"></a>01348       <span class="comment">// Don't remove the template !!</span>
<a name="l01349"></a>01349       <span class="keywordflow">if</span> ( !m_bFromTemplate ) <span class="comment">// (normal renaming)</span>
<a name="l01350"></a>01350         job = KIO::move( oldurl, <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>() );
<a name="l01351"></a>01351       <span class="keywordflow">else</span> <span class="comment">// Copying a template</span>
<a name="l01352"></a>01352         job = KIO::copy( oldurl, <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>() );
<a name="l01353"></a>01353 
<a name="l01354"></a>01354       <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( job, SIGNAL( result( KIO::Job * ) ),
<a name="l01355"></a>01355                SLOT( slotCopyFinished( KIO::Job * ) ) );
<a name="l01356"></a>01356       <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( job, SIGNAL( renamed( KIO::Job *, <span class="keyword">const</span> KURL &amp;, <span class="keyword">const</span> KURL &amp; ) ),
<a name="l01357"></a>01357                SLOT( slotFileRenamed( KIO::Job *, <span class="keyword">const</span> KURL &amp;, <span class="keyword">const</span> KURL &amp; ) ) );
<a name="l01358"></a>01358       <span class="comment">// wait for job</span>
<a name="l01359"></a>01359       <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwidget.html">QWidget</a> dummy(0,0,WType_Dialog|WShowModal);
<a name="l01360"></a>01360       qt_enter_modal(&amp;dummy);
<a name="l01361"></a>01361       qApp-&gt;enter_loop();
<a name="l01362"></a>01362       qt_leave_modal(&amp;dummy);
<a name="l01363"></a>01363       <span class="keywordflow">return</span>;
<a name="l01364"></a>01364     }
<a name="l01365"></a>01365     <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#44cb58947aaa81a32f1a653112dde229" title="Updates the item URL (either called by rename or because a global apps/mimelnk desktop...">updateUrl</a>(<a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>());
<a name="l01366"></a>01366     <span class="comment">// Update also relative path (for apps and mimetypes)</span>
<a name="l01367"></a>01367     <span class="keywordflow">if</span> ( !m_sRelativePath.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isEmpty">isEmpty</a>() )
<a name="l01368"></a>01368       determineRelativePath( <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().path() );
<a name="l01369"></a>01369   }
<a name="l01370"></a>01370 
<a name="l01371"></a>01371   <span class="comment">// No job, keep going</span>
<a name="l01372"></a>01372   slotCopyFinished( 0L );
<a name="l01373"></a>01373 }
<a name="l01374"></a>01374 
<a name="l01375"></a>01375 <span class="keywordtype">void</span> KFilePropsPlugin::slotCopyFinished( KIO::Job * job )
<a name="l01376"></a>01376 {
<a name="l01377"></a>01377   kdDebug(250) &lt;&lt; <span class="stringliteral">"KFilePropsPlugin::slotCopyFinished"</span> &lt;&lt; endl;
<a name="l01378"></a>01378   <span class="keywordflow">if</span> (job)
<a name="l01379"></a>01379   {
<a name="l01380"></a>01380     <span class="comment">// allow apply() to return</span>
<a name="l01381"></a>01381     qApp-&gt;exit_loop();
<a name="l01382"></a>01382     <span class="keywordflow">if</span> ( job-&gt;error() )
<a name="l01383"></a>01383     {
<a name="l01384"></a>01384         job-&gt;showErrorDialog( d-&gt;m_frame );
<a name="l01385"></a>01385         <span class="comment">// Didn't work. Revert the URL to the old one</span>
<a name="l01386"></a>01386         <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#44cb58947aaa81a32f1a653112dde229" title="Updates the item URL (either called by rename or because a global apps/mimelnk desktop...">updateUrl</a>( static_cast&lt;KIO::CopyJob*&gt;(job)-&gt;srcURLs().first() );
<a name="l01387"></a>01387         <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#6193a34255bae07ec1573943cfb68bf1" title="To abort applying changes.">abortApplying</a>(); <span class="comment">// Don't apply the changes to the wrong file !</span>
<a name="l01388"></a>01388         <span class="keywordflow">return</span>;
<a name="l01389"></a>01389     }
<a name="l01390"></a>01390   }
<a name="l01391"></a>01391 
<a name="l01392"></a>01392   assert( <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#f04def59643b5afac5c57d374b83cdb7">item</a>() );
<a name="l01393"></a>01393   assert( !<a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#f04def59643b5afac5c57d374b83cdb7">item</a>()-&gt;url().isEmpty() );
<a name="l01394"></a>01394 
<a name="l01395"></a>01395   <span class="comment">// Save the file where we can -&gt; usually in ~/.kde/...</span>
<a name="l01396"></a>01396   <span class="keywordflow">if</span> (KBindingPropsPlugin::supports(<a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#616b7c9afe4c1c1235c2edb81b2e36a1">items</a>()) &amp;&amp; !m_sRelativePath.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isEmpty">isEmpty</a>())
<a name="l01397"></a>01397   {
<a name="l01398"></a>01398     KURL newURL;
<a name="l01399"></a>01399     newURL.setPath( locateLocal(<span class="stringliteral">"mime"</span>, m_sRelativePath) );
<a name="l01400"></a>01400     <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#44cb58947aaa81a32f1a653112dde229" title="Updates the item URL (either called by rename or because a global apps/mimelnk desktop...">updateUrl</a>( newURL );
<a name="l01401"></a>01401   }
<a name="l01402"></a>01402   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (d-&gt;bDesktopFile &amp;&amp; !m_sRelativePath.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isEmpty">isEmpty</a>())
<a name="l01403"></a>01403   {
<a name="l01404"></a>01404     kdDebug(250) &lt;&lt; <span class="stringliteral">"KFilePropsPlugin::slotCopyFinished "</span> &lt;&lt; m_sRelativePath &lt;&lt; endl;
<a name="l01405"></a>01405     KURL newURL;
<a name="l01406"></a>01406     newURL.setPath( KDesktopFile::locateLocal(m_sRelativePath) );
<a name="l01407"></a>01407     kdDebug(250) &lt;&lt; <span class="stringliteral">"KFilePropsPlugin::slotCopyFinished path="</span> &lt;&lt; newURL.path() &lt;&lt; endl;
<a name="l01408"></a>01408     <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#44cb58947aaa81a32f1a653112dde229" title="Updates the item URL (either called by rename or because a global apps/mimelnk desktop...">updateUrl</a>( newURL );
<a name="l01409"></a>01409   }
<a name="l01410"></a>01410 
<a name="l01411"></a>01411   <span class="keywordflow">if</span> ( d-&gt;bKDesktopMode &amp;&amp; d-&gt;bDesktopFile ) {
<a name="l01412"></a>01412       <span class="comment">// Renamed? Update Name field</span>
<a name="l01413"></a>01413       <span class="keywordflow">if</span> ( d-&gt;oldFileName != <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().fileName() || m_bFromTemplate ) {
<a name="l01414"></a>01414           KDesktopFile config( <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().path() );
<a name="l01415"></a>01415           <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> nameStr = nameFromFileName(<a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().fileName());
<a name="l01416"></a>01416           config.writeEntry( <span class="stringliteral">"Name"</span>, nameStr );
<a name="l01417"></a>01417           config.writeEntry( <span class="stringliteral">"Name"</span>, nameStr, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">true</span> );
<a name="l01418"></a>01418       }
<a name="l01419"></a>01419   }
<a name="l01420"></a>01420 }
<a name="l01421"></a>01421 
<a name="l01422"></a>01422 <span class="keywordtype">void</span> KFilePropsPlugin::applyIconChanges()
<a name="l01423"></a>01423 {
<a name="l01424"></a>01424   <a class="code" href="classKIconButton.html" title="A pushbutton for choosing an icon.">KIconButton</a> *iconButton = ::qt_cast&lt;<a class="code" href="classKIconButton.html" title="A pushbutton for choosing an icon.">KIconButton</a> *&gt;( iconArea );
<a name="l01425"></a>01425   <span class="keywordflow">if</span> ( !iconButton || !d-&gt;bIconChanged )
<a name="l01426"></a>01426     <span class="keywordflow">return</span>;
<a name="l01427"></a>01427   <span class="comment">// handle icon changes - only local files (or pseudo-local) for now</span>
<a name="l01428"></a>01428   <span class="comment">// TODO: Use KTempFile and KIO::file_copy with overwrite = true</span>
<a name="l01429"></a>01429   KURL url = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>();
<a name="l01430"></a>01430   url = KIO::NetAccess::mostLocalURL( url, <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a> );
<a name="l01431"></a>01431   <span class="keywordflow">if</span> (url.isLocalFile()) {
<a name="l01432"></a>01432     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> path;
<a name="l01433"></a>01433 
<a name="l01434"></a>01434     <span class="keywordflow">if</span> (S_ISDIR(<a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#f04def59643b5afac5c57d374b83cdb7">item</a>()-&gt;mode()))
<a name="l01435"></a>01435     {
<a name="l01436"></a>01436       path = url.path(1) + <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#fromLatin1">QString::fromLatin1</a>(<span class="stringliteral">".directory"</span>);
<a name="l01437"></a>01437       <span class="comment">// don't call updateUrl because the other tabs (i.e. permissions)</span>
<a name="l01438"></a>01438       <span class="comment">// apply to the directory, not the .directory file.</span>
<a name="l01439"></a>01439     }
<a name="l01440"></a>01440     <span class="keywordflow">else</span>
<a name="l01441"></a>01441       path = url.path();
<a name="l01442"></a>01442 
<a name="l01443"></a>01443     <span class="comment">// Get the default image</span>
<a name="l01444"></a>01444     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> str = KMimeType::findByURL( url,
<a name="l01445"></a>01445                                         <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#f04def59643b5afac5c57d374b83cdb7">item</a>()-&gt;mode(),
<a name="l01446"></a>01446                                         true )-&gt;KServiceType::icon();
<a name="l01447"></a>01447     <span class="comment">// Is it another one than the default ?</span>
<a name="l01448"></a>01448     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> sIcon;
<a name="l01449"></a>01449     <span class="keywordflow">if</span> ( str != iconButton-&gt;<a class="code" href="classKIconButton.html#e7b507bdcf9ccfb7959081f6922b7468">icon</a>() )
<a name="l01450"></a>01450       sIcon = iconButton-&gt;<a class="code" href="classKIconButton.html#e7b507bdcf9ccfb7959081f6922b7468">icon</a>();
<a name="l01451"></a>01451     <span class="comment">// (otherwise write empty value)</span>
<a name="l01452"></a>01452 
<a name="l01453"></a>01453     kdDebug(250) &lt;&lt; <span class="stringliteral">"**"</span> &lt;&lt; path &lt;&lt; <span class="stringliteral">"**"</span> &lt;&lt; endl;
<a name="l01454"></a>01454     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html">QFile</a> f( path );
<a name="l01455"></a>01455 
<a name="l01456"></a>01456     <span class="comment">// If default icon and no .directory file -&gt; don't create one</span>
<a name="l01457"></a>01457     <span class="keywordflow">if</span> ( !sIcon.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isEmpty">isEmpty</a>() || f.exists() )
<a name="l01458"></a>01458     {
<a name="l01459"></a>01459         <span class="keywordflow">if</span> ( !f.open( IO_ReadWrite ) ) {
<a name="l01460"></a>01460           KMessageBox::sorry( 0, i18n(<span class="stringliteral">"&lt;qt&gt;Could not save properties. You do not "</span>
<a name="l01461"></a>01461                       <span class="stringliteral">"have sufficient access to write to &lt;b&gt;%1&lt;/b&gt;.&lt;/qt&gt;"</span>).arg(path));
<a name="l01462"></a>01462           <span class="keywordflow">return</span>;
<a name="l01463"></a>01463         }
<a name="l01464"></a>01464         f.close();
<a name="l01465"></a>01465 
<a name="l01466"></a>01466         KDesktopFile cfg(path);
<a name="l01467"></a>01467         kdDebug(250) &lt;&lt; <span class="stringliteral">"sIcon = "</span> &lt;&lt; (sIcon) &lt;&lt; endl;
<a name="l01468"></a>01468         kdDebug(250) &lt;&lt; <span class="stringliteral">"str = "</span> &lt;&lt; (str) &lt;&lt; endl;
<a name="l01469"></a>01469         cfg.writeEntry( <span class="stringliteral">"Icon"</span>, sIcon );
<a name="l01470"></a>01470         cfg.sync();
<a name="l01471"></a>01471     }
<a name="l01472"></a>01472   }
<a name="l01473"></a>01473 }
<a name="l01474"></a>01474 
<a name="l01475"></a>01475 <span class="keywordtype">void</span> KFilePropsPlugin::slotFileRenamed( KIO::Job *, <span class="keyword">const</span> KURL &amp;, <span class="keyword">const</span> KURL &amp; newUrl )
<a name="l01476"></a>01476 {
<a name="l01477"></a>01477   <span class="comment">// This is called in case of an existing local file during the copy/move operation,</span>
<a name="l01478"></a>01478   <span class="comment">// if the user chooses Rename.</span>
<a name="l01479"></a>01479   <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#44cb58947aaa81a32f1a653112dde229" title="Updates the item URL (either called by rename or because a global apps/mimelnk desktop...">updateUrl</a>( newUrl );
<a name="l01480"></a>01480 }
<a name="l01481"></a>01481 
<a name="l01482"></a><a class="code" href="classKFilePropsPlugin.html#f27e92932409445d46ea8eb498342167">01482</a> <span class="keywordtype">void</span> <a class="code" href="classKFilePropsPlugin.html#f27e92932409445d46ea8eb498342167" title="Called after all plugins applied their changes.">KFilePropsPlugin::postApplyChanges</a>()
<a name="l01483"></a>01483 {
<a name="l01484"></a>01484   <span class="comment">// Save the icon only after applying the permissions changes (#46192)</span>
<a name="l01485"></a>01485   applyIconChanges();
<a name="l01486"></a>01486 
<a name="l01487"></a>01487   KURL::List lst;
<a name="l01488"></a>01488   KFileItemList items = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#616b7c9afe4c1c1235c2edb81b2e36a1">items</a>();
<a name="l01489"></a>01489   <span class="keywordflow">for</span> ( KFileItemListIterator it( items ); it.current(); ++it )
<a name="l01490"></a>01490     lst.append((*it)-&gt;url());
<a name="l01491"></a>01491   KDirNotify_stub allDirNotify(<span class="stringliteral">"*"</span>, <span class="stringliteral">"KDirNotify*"</span>);
<a name="l01492"></a>01492   allDirNotify.FilesChanged( lst );
<a name="l01493"></a>01493 }
<a name="l01494"></a>01494 
<a name="l01495"></a>01495 <span class="keyword">class </span>KFilePermissionsPropsPlugin::KFilePermissionsPropsPluginPrivate
<a name="l01496"></a>01496 {
<a name="l01497"></a>01497 <span class="keyword">public</span>:
<a name="l01498"></a>01498   KFilePermissionsPropsPluginPrivate()
<a name="l01499"></a>01499   {
<a name="l01500"></a>01500   }
<a name="l01501"></a>01501   ~KFilePermissionsPropsPluginPrivate()
<a name="l01502"></a>01502   {
<a name="l01503"></a>01503   }
<a name="l01504"></a>01504 
<a name="l01505"></a>01505   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qframe.html">QFrame</a> *m_frame;
<a name="l01506"></a>01506   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcheckbox.html">QCheckBox</a> *cbRecursive;
<a name="l01507"></a>01507   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a> *explanationLabel;
<a name="l01508"></a>01508   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcombobox.html">QComboBox</a> *ownerPermCombo, *groupPermCombo, *othersPermCombo;
<a name="l01509"></a>01509   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcheckbox.html">QCheckBox</a> *extraCheckbox;
<a name="l01510"></a>01510   mode_t partialPermissions;
<a name="l01511"></a>01511   KFilePermissionsPropsPlugin::PermissionsMode pmode;
<a name="l01512"></a>01512   <span class="keywordtype">bool</span> canChangePermissions;
<a name="l01513"></a>01513   <span class="keywordtype">bool</span> isIrregular;
<a name="l01514"></a>01514   <span class="keywordtype">bool</span> hasExtendedACL;
<a name="l01515"></a>01515   KACL extendedACL;
<a name="l01516"></a>01516   KACL defaultACL;
<a name="l01517"></a>01517   <span class="keywordtype">bool</span> fileSystemSupportsACLs;
<a name="l01518"></a>01518 };
<a name="l01519"></a>01519 
<a name="l01520"></a>01520 <span class="preprocessor">#define UniOwner    (S_IRUSR|S_IWUSR|S_IXUSR)</span>
<a name="l01521"></a>01521 <span class="preprocessor"></span><span class="preprocessor">#define UniGroup    (S_IRGRP|S_IWGRP|S_IXGRP)</span>
<a name="l01522"></a>01522 <span class="preprocessor"></span><span class="preprocessor">#define UniOthers   (S_IROTH|S_IWOTH|S_IXOTH)</span>
<a name="l01523"></a>01523 <span class="preprocessor"></span><span class="preprocessor">#define UniRead     (S_IRUSR|S_IRGRP|S_IROTH)</span>
<a name="l01524"></a>01524 <span class="preprocessor"></span><span class="preprocessor">#define UniWrite    (S_IWUSR|S_IWGRP|S_IWOTH)</span>
<a name="l01525"></a>01525 <span class="preprocessor"></span><span class="preprocessor">#define UniExec     (S_IXUSR|S_IXGRP|S_IXOTH)</span>
<a name="l01526"></a>01526 <span class="preprocessor"></span><span class="preprocessor">#define UniSpecial  (S_ISUID|S_ISGID|S_ISVTX)</span>
<a name="l01527"></a>01527 <span class="preprocessor"></span>
<a name="l01528"></a>01528 <span class="comment">// synced with PermissionsTarget</span>
<a name="l01529"></a>01529 <span class="keyword">const</span> mode_t KFilePermissionsPropsPlugin::permissionsMasks[3] = {UniOwner, UniGroup, UniOthers};
<a name="l01530"></a>01530 <span class="keyword">const</span> mode_t KFilePermissionsPropsPlugin::standardPermissions[4] = { 0, UniRead, UniRead|UniWrite, (mode_t)-1 };
<a name="l01531"></a>01531 
<a name="l01532"></a>01532 <span class="comment">// synced with PermissionsMode and standardPermissions</span>
<a name="l01533"></a>01533 <span class="keyword">const</span> <span class="keywordtype">char</span> *KFilePermissionsPropsPlugin::permissionsTexts[4][4] = {
<a name="l01534"></a>01534   { I18N_NOOP(<span class="stringliteral">"Forbidden"</span>),
<a name="l01535"></a>01535     I18N_NOOP(<span class="stringliteral">"Can Read"</span>),
<a name="l01536"></a>01536     I18N_NOOP(<span class="stringliteral">"Can Read &amp; Write"</span>),
<a name="l01537"></a>01537     0 },
<a name="l01538"></a>01538   { I18N_NOOP(<span class="stringliteral">"Forbidden"</span>),
<a name="l01539"></a>01539     I18N_NOOP(<span class="stringliteral">"Can View Content"</span>),
<a name="l01540"></a>01540     I18N_NOOP(<span class="stringliteral">"Can View &amp; Modify Content"</span>),
<a name="l01541"></a>01541     0 },
<a name="l01542"></a>01542   { 0, 0, 0, 0}, <span class="comment">// no texts for links</span>
<a name="l01543"></a>01543   { I18N_NOOP(<span class="stringliteral">"Forbidden"</span>),
<a name="l01544"></a>01544     I18N_NOOP(<span class="stringliteral">"Can View Content &amp; Read"</span>),
<a name="l01545"></a>01545     I18N_NOOP(<span class="stringliteral">"Can View/Read &amp; Modify/Write"</span>),
<a name="l01546"></a>01546     0 }
<a name="l01547"></a>01547 };
<a name="l01548"></a>01548 
<a name="l01549"></a>01549 
<a name="l01550"></a><a class="code" href="classKFilePermissionsPropsPlugin.html#37ea054f4a627a74642b4705c85ef4f0">01550</a> <a class="code" href="classKFilePermissionsPropsPlugin.html#37ea054f4a627a74642b4705c85ef4f0" title="Constructor.">KFilePermissionsPropsPlugin::KFilePermissionsPropsPlugin</a>( <a class="code" href="classKPropertiesDialog.html" title="The main properties dialog class.">KPropertiesDialog</a> *_props )
<a name="l01551"></a>01551   : <a class="code" href="classKPropsDlgPlugin.html" title="A Plugin in the Properties dialog This is an abstract class.">KPropsDlgPlugin</a>( _props )
<a name="l01552"></a>01552 {
<a name="l01553"></a>01553   d = <span class="keyword">new</span> KFilePermissionsPropsPluginPrivate;
<a name="l01554"></a>01554   d-&gt;cbRecursive = 0L;
<a name="l01555"></a>01555   grpCombo = 0L; grpEdit = 0;
<a name="l01556"></a>01556   usrEdit = 0L;
<a name="l01557"></a>01557   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> path = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().path(-1);
<a name="l01558"></a>01558   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> fname = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().fileName();
<a name="l01559"></a>01559   <span class="keywordtype">bool</span> isLocal = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().isLocalFile();
<a name="l01560"></a>01560   <span class="keywordtype">bool</span> isTrash = ( <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().protocol().find(<span class="stringliteral">"trash"</span>, 0, <span class="keyword">false</span>)==0 );
<a name="l01561"></a>01561   <span class="keywordtype">bool</span> IamRoot = (geteuid() == 0);
<a name="l01562"></a>01562 
<a name="l01563"></a>01563   KFileItem * item = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#f04def59643b5afac5c57d374b83cdb7">item</a>();
<a name="l01564"></a>01564   <span class="keywordtype">bool</span> isLink = item-&gt;isLink();
<a name="l01565"></a>01565   <span class="keywordtype">bool</span> isDir = item-&gt;isDir(); <span class="comment">// all dirs</span>
<a name="l01566"></a>01566   <span class="keywordtype">bool</span> hasDir = item-&gt;isDir(); <span class="comment">// at least one dir</span>
<a name="l01567"></a>01567   permissions = item-&gt;permissions(); <span class="comment">// common permissions to all files</span>
<a name="l01568"></a>01568   d-&gt;partialPermissions = permissions; <span class="comment">// permissions that only some files have (at first we take everything)</span>
<a name="l01569"></a>01569   d-&gt;isIrregular = isIrregular(permissions, isDir, isLink);
<a name="l01570"></a>01570   strOwner = item-&gt;user();
<a name="l01571"></a>01571   strGroup = item-&gt;group();
<a name="l01572"></a>01572   d-&gt;hasExtendedACL = item-&gt;ACL().isExtended() || item-&gt;defaultACL().isValid();
<a name="l01573"></a>01573   d-&gt;extendedACL = item-&gt;ACL();
<a name="l01574"></a>01574   d-&gt;defaultACL = item-&gt;defaultACL();
<a name="l01575"></a>01575   d-&gt;fileSystemSupportsACLs = <span class="keyword">false</span>;
<a name="l01576"></a>01576 
<a name="l01577"></a>01577   <span class="keywordflow">if</span> ( <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#616b7c9afe4c1c1235c2edb81b2e36a1">items</a>().count() &gt; 1 )
<a name="l01578"></a>01578   {
<a name="l01579"></a>01579     <span class="comment">// Multiple items: see what they have in common</span>
<a name="l01580"></a>01580     KFileItemList items = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#616b7c9afe4c1c1235c2edb81b2e36a1">items</a>();
<a name="l01581"></a>01581     KFileItemListIterator it( items );
<a name="l01582"></a>01582     <span class="keywordflow">for</span> ( ++it <span class="comment">/*no need to check the first one again*/</span> ; it.current(); ++it )
<a name="l01583"></a>01583     {
<a name="l01584"></a>01584       <span class="keywordflow">if</span> (!d-&gt;isIrregular)
<a name="l01585"></a>01585         d-&gt;isIrregular |= isIrregular((*it)-&gt;permissions(),
<a name="l01586"></a>01586                                       (*it)-&gt;isDir() == isDir,
<a name="l01587"></a>01587                                       (*it)-&gt;isLink() == isLink);
<a name="l01588"></a>01588       d-&gt;hasExtendedACL = d-&gt;hasExtendedACL || (*it)-&gt;hasExtendedACL();
<a name="l01589"></a>01589       <span class="keywordflow">if</span> ( (*it)-&gt;isLink() != isLink )
<a name="l01590"></a>01590         isLink = <span class="keyword">false</span>;
<a name="l01591"></a>01591       <span class="keywordflow">if</span> ( (*it)-&gt;isDir() != isDir )
<a name="l01592"></a>01592         isDir = <span class="keyword">false</span>;
<a name="l01593"></a>01593       hasDir |= (*it)-&gt;isDir();
<a name="l01594"></a>01594       <span class="keywordflow">if</span> ( (*it)-&gt;permissions() != permissions )
<a name="l01595"></a>01595       {
<a name="l01596"></a>01596         permissions &amp;= (*it)-&gt;permissions();
<a name="l01597"></a>01597         d-&gt;partialPermissions |= (*it)-&gt;permissions();
<a name="l01598"></a>01598       }
<a name="l01599"></a>01599       <span class="keywordflow">if</span> ( (*it)-&gt;user() != strOwner )
<a name="l01600"></a>01600         strOwner = QString::null;
<a name="l01601"></a>01601       <span class="keywordflow">if</span> ( (*it)-&gt;group() != strGroup )
<a name="l01602"></a>01602         strGroup = QString::null;
<a name="l01603"></a>01603     }
<a name="l01604"></a>01604   }
<a name="l01605"></a>01605 
<a name="l01606"></a>01606   <span class="keywordflow">if</span> (isLink)
<a name="l01607"></a>01607     d-&gt;pmode = PermissionsOnlyLinks;
<a name="l01608"></a>01608   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (isDir)
<a name="l01609"></a>01609     d-&gt;pmode = PermissionsOnlyDirs;
<a name="l01610"></a>01610   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (hasDir)
<a name="l01611"></a>01611     d-&gt;pmode = PermissionsMixed;
<a name="l01612"></a>01612   <span class="keywordflow">else</span>
<a name="l01613"></a>01613     d-&gt;pmode = PermissionsOnlyFiles;
<a name="l01614"></a>01614 
<a name="l01615"></a>01615   <span class="comment">// keep only what's not in the common permissions</span>
<a name="l01616"></a>01616   d-&gt;partialPermissions = d-&gt;partialPermissions &amp; ~permissions;
<a name="l01617"></a>01617 
<a name="l01618"></a>01618   <span class="keywordtype">bool</span> isMyFile = <span class="keyword">false</span>;
<a name="l01619"></a>01619 
<a name="l01620"></a>01620   <span class="keywordflow">if</span> (isLocal &amp;&amp; !strOwner.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isEmpty">isEmpty</a>()) { <span class="comment">// local files, and all owned by the same person</span>
<a name="l01621"></a>01621     <span class="keyword">struct </span>passwd *myself = getpwuid( geteuid() );
<a name="l01622"></a>01622     <span class="keywordflow">if</span> ( myself != 0L )
<a name="l01623"></a>01623     {
<a name="l01624"></a>01624       isMyFile = (strOwner == <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#fromLocal8Bit">QString::fromLocal8Bit</a>(myself-&gt;pw_name));
<a name="l01625"></a>01625     } <span class="keywordflow">else</span>
<a name="l01626"></a>01626       kdWarning() &lt;&lt; <span class="stringliteral">"I don't exist ?! geteuid="</span> &lt;&lt; geteuid() &lt;&lt; endl;
<a name="l01627"></a>01627   } <span class="keywordflow">else</span> {
<a name="l01628"></a>01628     <span class="comment">//We don't know, for remote files, if they are ours or not.</span>
<a name="l01629"></a>01629     <span class="comment">//So we let the user change permissions, and</span>
<a name="l01630"></a>01630     <span class="comment">//KIO::chmod will tell, if he had no right to do it.</span>
<a name="l01631"></a>01631     isMyFile = <span class="keyword">true</span>;
<a name="l01632"></a>01632   }
<a name="l01633"></a>01633 
<a name="l01634"></a>01634   d-&gt;canChangePermissions = (isMyFile || IamRoot) &amp;&amp; (!isLink);
<a name="l01635"></a>01635 
<a name="l01636"></a>01636 
<a name="l01637"></a>01637   <span class="comment">// create GUI</span>
<a name="l01638"></a>01638 
<a name="l01639"></a>01639   d-&gt;m_frame = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;addPage(i18n(<span class="stringliteral">"&amp;Permissions"</span>));
<a name="l01640"></a>01640 
<a name="l01641"></a>01641   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qboxlayout.html">QBoxLayout</a> *box = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qvboxlayout.html">QVBoxLayout</a>( d-&gt;m_frame, 0, KDialog::spacingHint() );
<a name="l01642"></a>01642 
<a name="l01643"></a>01643   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwidget.html">QWidget</a> *l;
<a name="l01644"></a>01644   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a> *lbl;
<a name="l01645"></a>01645   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgroupbox.html">QGroupBox</a> *gb;
<a name="l01646"></a>01646   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html">QGridLayout</a> *gl;
<a name="l01647"></a>01647   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qpushbutton.html">QPushButton</a>* pbAdvancedPerm = 0;
<a name="l01648"></a>01648 
<a name="l01649"></a>01649   <span class="comment">/* Group: Access Permissions */</span>
<a name="l01650"></a>01650   gb = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgroupbox.html">QGroupBox</a> ( 0, Qt::Vertical, i18n(<span class="stringliteral">"Access Permissions"</span>), d-&gt;m_frame );
<a name="l01651"></a>01651   gb-&gt;layout()-&gt;setSpacing(KDialog::spacingHint());
<a name="l01652"></a>01652   gb-&gt;layout()-&gt;setMargin(KDialog::marginHint());
<a name="l01653"></a>01653   box-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qboxlayout.html#addWidget">addWidget</a> (gb);
<a name="l01654"></a>01654 
<a name="l01655"></a>01655   gl = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html">QGridLayout</a> (gb-&gt;layout(), 7, 2);
<a name="l01656"></a>01656   gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#setColStretch">setColStretch</a>(1, 1);
<a name="l01657"></a>01657 
<a name="l01658"></a>01658   l = d-&gt;explanationLabel = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( <span class="stringliteral">""</span>, gb );
<a name="l01659"></a>01659   <span class="keywordflow">if</span> (isLink)
<a name="l01660"></a>01660     d-&gt;explanationLabel-&gt;setText(i18n(<span class="stringliteral">"This file is a link and does not have permissions."</span>,
<a name="l01661"></a>01661                       <span class="stringliteral">"All files are links and do not have permissions."</span>,
<a name="l01662"></a>01662                       <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#616b7c9afe4c1c1235c2edb81b2e36a1">items</a>().count()));
<a name="l01663"></a>01663   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!d-&gt;canChangePermissions)
<a name="l01664"></a>01664     d-&gt;explanationLabel-&gt;setText(i18n(<span class="stringliteral">"Only the owner can change permissions."</span>));
<a name="l01665"></a>01665   gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addMultiCellWidget">addMultiCellWidget</a>(l, 0, 0, 0, 1);
<a name="l01666"></a>01666 
<a name="l01667"></a>01667   lbl = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( i18n(<span class="stringliteral">"O&amp;wner:"</span>), gb);
<a name="l01668"></a>01668   gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(lbl, 1, 0);
<a name="l01669"></a>01669   l = d-&gt;ownerPermCombo = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcombobox.html">QComboBox</a>(gb);
<a name="l01670"></a>01670   lbl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html#setBuddy">setBuddy</a>(l);
<a name="l01671"></a>01671   gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(l, 1, 1);
<a name="l01672"></a>01672   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>(l, SIGNAL( highlighted(<span class="keywordtype">int</span>) ), <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ));
<a name="l01673"></a>01673   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwhatsthis.html#add">QWhatsThis::add</a>(l, i18n(<span class="stringliteral">"Specifies the actions that the owner is allowed to do."</span>));
<a name="l01674"></a>01674 
<a name="l01675"></a>01675   lbl = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( i18n(<span class="stringliteral">"Gro&amp;up:"</span>), gb);
<a name="l01676"></a>01676   gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(lbl, 2, 0);
<a name="l01677"></a>01677   l = d-&gt;groupPermCombo = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcombobox.html">QComboBox</a>(gb);
<a name="l01678"></a>01678   lbl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html#setBuddy">setBuddy</a>(l);
<a name="l01679"></a>01679   gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(l, 2, 1);
<a name="l01680"></a>01680   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>(l, SIGNAL( highlighted(<span class="keywordtype">int</span>) ), <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ));
<a name="l01681"></a>01681   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwhatsthis.html#add">QWhatsThis::add</a>(l, i18n(<span class="stringliteral">"Specifies the actions that the members of the group are allowed to do."</span>));
<a name="l01682"></a>01682 
<a name="l01683"></a>01683   lbl = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( i18n(<span class="stringliteral">"O&amp;thers:"</span>), gb);
<a name="l01684"></a>01684   gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(lbl, 3, 0);
<a name="l01685"></a>01685   l = d-&gt;othersPermCombo = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcombobox.html">QComboBox</a>(gb);
<a name="l01686"></a>01686   lbl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html#setBuddy">setBuddy</a>(l);
<a name="l01687"></a>01687   gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(l, 3, 1);
<a name="l01688"></a>01688   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>(l, SIGNAL( highlighted(<span class="keywordtype">int</span>) ), <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ));
<a name="l01689"></a>01689   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwhatsthis.html#add">QWhatsThis::add</a>(l, i18n(<span class="stringliteral">"Specifies the actions that all users, who are neither "</span>
<a name="l01690"></a>01690               <span class="stringliteral">"owner nor in the group, are allowed to do."</span>));
<a name="l01691"></a>01691 
<a name="l01692"></a>01692   <span class="keywordflow">if</span> (!isLink) {
<a name="l01693"></a>01693     l = d-&gt;extraCheckbox = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcheckbox.html">QCheckBox</a>(hasDir ?
<a name="l01694"></a>01694                      i18n(<span class="stringliteral">"Only own&amp;er can rename and delete folder content"</span>) :
<a name="l01695"></a>01695                      i18n(<span class="stringliteral">"Is &amp;executable"</span>),
<a name="l01696"></a>01696                      gb );
<a name="l01697"></a>01697     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( d-&gt;extraCheckbox, SIGNAL( clicked() ), <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l01698"></a>01698     gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(l, 4, 1);
<a name="l01699"></a>01699     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwhatsthis.html#add">QWhatsThis::add</a>(l, hasDir ? i18n(<span class="stringliteral">"Enable this option to allow only the folder's owner to "</span>
<a name="l01700"></a>01700                      <span class="stringliteral">"delete or rename the contained files and folders. Other "</span>
<a name="l01701"></a>01701                      <span class="stringliteral">"users can only add new files, which requires the 'Modify "</span>
<a name="l01702"></a>01702                      <span class="stringliteral">"Content' permission."</span>)
<a name="l01703"></a>01703             : i18n(<span class="stringliteral">"Enable this option to mark the file as executable. This only makes "</span>
<a name="l01704"></a>01704                <span class="stringliteral">"sense for programs and scripts. It is required when you want to "</span>
<a name="l01705"></a>01705                <span class="stringliteral">"execute them."</span>));
<a name="l01706"></a>01706 
<a name="l01707"></a>01707     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlayoutitem.html">QLayoutItem</a> *spacer = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qspaceritem.html">QSpacerItem</a>(0, 20, QSizePolicy::Minimum, QSizePolicy::Expanding);
<a name="l01708"></a>01708     gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addMultiCell">addMultiCell</a>(spacer, 5, 5, 0, 1);
<a name="l01709"></a>01709 
<a name="l01710"></a>01710     pbAdvancedPerm = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qpushbutton.html">QPushButton</a>(i18n(<span class="stringliteral">"A&amp;dvanced Permissions"</span>), gb);
<a name="l01711"></a>01711     gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addMultiCellWidget">addMultiCellWidget</a>(pbAdvancedPerm, 6, 6, 0, 1, AlignRight);
<a name="l01712"></a>01712     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>(pbAdvancedPerm, SIGNAL( clicked() ), <span class="keyword">this</span>, SLOT( slotShowAdvancedPermissions() ));
<a name="l01713"></a>01713   }
<a name="l01714"></a>01714   <span class="keywordflow">else</span>
<a name="l01715"></a>01715     d-&gt;extraCheckbox = 0;
<a name="l01716"></a>01716 
<a name="l01717"></a>01717 
<a name="l01718"></a>01718   <span class="comment">/**** Group: Ownership ****/</span>
<a name="l01719"></a>01719   gb = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgroupbox.html">QGroupBox</a> ( 0, Qt::Vertical, i18n(<span class="stringliteral">"Ownership"</span>), d-&gt;m_frame );
<a name="l01720"></a>01720   gb-&gt;layout()-&gt;setSpacing(KDialog::spacingHint());
<a name="l01721"></a>01721   gb-&gt;layout()-&gt;setMargin(KDialog::marginHint());
<a name="l01722"></a>01722   box-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qboxlayout.html#addWidget">addWidget</a> (gb);
<a name="l01723"></a>01723 
<a name="l01724"></a>01724   gl = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html">QGridLayout</a> (gb-&gt;layout(), 4, 3);
<a name="l01725"></a>01725   gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addRowSpacing">addRowSpacing</a>(0, 10);
<a name="l01726"></a>01726 
<a name="l01727"></a>01727   <span class="comment">/*** Set Owner ***/</span>
<a name="l01728"></a>01728   l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( i18n(<span class="stringliteral">"User:"</span>), gb );
<a name="l01729"></a>01729   gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a> (l, 1, 0);
<a name="l01730"></a>01730 
<a name="l01731"></a>01731   <span class="comment">/* GJ: Don't autocomplete more than 1000 users. This is a kind of random</span>
<a name="l01732"></a>01732 <span class="comment">   * value. Huge sites having 10.000+ user have a fair chance of using NIS,</span>
<a name="l01733"></a>01733 <span class="comment">   * (possibly) making this unacceptably slow.</span>
<a name="l01734"></a>01734 <span class="comment">   * OTOH, it is nice to offer this functionality for the standard user.</span>
<a name="l01735"></a>01735 <span class="comment">   */</span>
<a name="l01736"></a>01736   <span class="keywordtype">int</span> i, maxEntries = 1000;
<a name="l01737"></a>01737   <span class="keyword">struct </span>passwd *user;
<a name="l01738"></a>01738   <span class="keyword">struct </span>group *ge;
<a name="l01739"></a>01739 
<a name="l01740"></a>01740   <span class="comment">/* File owner: For root, offer a KLineEdit with autocompletion.</span>
<a name="l01741"></a>01741 <span class="comment">   * For a user, who can never chown() a file, offer a QLabel.</span>
<a name="l01742"></a>01742 <span class="comment">   */</span>
<a name="l01743"></a>01743   <span class="keywordflow">if</span> (IamRoot &amp;&amp; isLocal)
<a name="l01744"></a>01744   {
<a name="l01745"></a>01745     usrEdit = <span class="keyword">new</span> KLineEdit( gb );
<a name="l01746"></a>01746     KCompletion *kcom = usrEdit-&gt;completionObject();
<a name="l01747"></a>01747     kcom-&gt;setOrder(KCompletion::Sorted);
<a name="l01748"></a>01748     setpwent();
<a name="l01749"></a>01749     <span class="keywordflow">for</span> (i=0; ((user = getpwent()) != 0L) &amp;&amp; (i &lt; maxEntries); i++)
<a name="l01750"></a>01750       kcom-&gt;addItem(<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#fromLatin1">QString::fromLatin1</a>(user-&gt;pw_name));
<a name="l01751"></a>01751     endpwent();
<a name="l01752"></a>01752     usrEdit-&gt;setCompletionMode((i &lt; maxEntries) ? KGlobalSettings::CompletionAuto :
<a name="l01753"></a>01753                                KGlobalSettings::CompletionNone);
<a name="l01754"></a>01754     usrEdit-&gt;setText(strOwner);
<a name="l01755"></a>01755     gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(usrEdit, 1, 1);
<a name="l01756"></a>01756     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( usrEdit, SIGNAL( textChanged( <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> &amp; ) ),
<a name="l01757"></a>01757              <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l01758"></a>01758   }
<a name="l01759"></a>01759   <span class="keywordflow">else</span>
<a name="l01760"></a>01760   {
<a name="l01761"></a>01761     l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>(strOwner, gb);
<a name="l01762"></a>01762     gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(l, 1, 1);
<a name="l01763"></a>01763   }
<a name="l01764"></a>01764 
<a name="l01765"></a>01765   <span class="comment">/*** Set Group ***/</span>
<a name="l01766"></a>01766 
<a name="l01767"></a>01767   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstringlist.html">QStringList</a> groupList;
<a name="l01768"></a>01768   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcstring.html">QCString</a> strUser;
<a name="l01769"></a>01769   user = getpwuid(geteuid());
<a name="l01770"></a>01770   <span class="keywordflow">if</span> (user != 0L)
<a name="l01771"></a>01771     strUser = user-&gt;pw_name;
<a name="l01772"></a>01772 
<a name="l01773"></a>01773 <span class="preprocessor">#ifdef Q_OS_UNIX</span>
<a name="l01774"></a>01774 <span class="preprocessor"></span>
<a name="l01775"></a>01775   gid_t *groups = NULL;
<a name="l01776"></a>01776   <span class="keywordtype">int</span> ng = 1;
<a name="l01777"></a>01777   <span class="keyword">struct </span>group *mygroup;
<a name="l01778"></a>01778   gid_t *newgroups = NULL;
<a name="l01779"></a>01779   
<a name="l01780"></a>01780   groups = (gid_t *) malloc(ng * <span class="keyword">sizeof</span>(gid_t));
<a name="l01781"></a>01781   
<a name="l01782"></a>01782   <span class="keywordflow">if</span> (getgrouplist(strUser, user-&gt;pw_gid, groups, &amp;ng) == -1) {
<a name="l01783"></a>01783       newgroups = (gid_t *) malloc(ng * <span class="keyword">sizeof</span>(gid_t));
<a name="l01784"></a>01784       <span class="keywordflow">if</span> (newgroups != NULL) {
<a name="l01785"></a>01785               free(groups);
<a name="l01786"></a>01786           groups = newgroups;
<a name="l01787"></a>01787           getgrouplist(strUser, user-&gt;pw_gid, groups, &amp;ng);
<a name="l01788"></a>01788       } <span class="keywordflow">else</span> ng = 1;
<a name="l01789"></a>01789   }
<a name="l01790"></a>01790 
<a name="l01791"></a>01791   <span class="keywordflow">for</span> (i = 0; i &lt; ng; i++) {
<a name="l01792"></a>01792       mygroup = getgrgid(groups[i]);
<a name="l01793"></a>01793       <span class="keywordflow">if</span> (mygroup != NULL) groupList += <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#fromLocal8Bit">QString::fromLocal8Bit</a>(mygroup-&gt;gr_name);
<a name="l01794"></a>01794   }
<a name="l01795"></a>01795 
<a name="l01796"></a>01796   free(groups);
<a name="l01797"></a>01797   
<a name="l01798"></a>01798 <span class="preprocessor">#else //Q_OS_UNIX</span>
<a name="l01799"></a>01799 <span class="preprocessor"></span>
<a name="l01800"></a>01800   <span class="comment">/* add the effective Group to the list .. */</span>
<a name="l01801"></a>01801   ge = getgrgid (getegid());
<a name="l01802"></a>01802   <span class="keywordflow">if</span> (ge) {
<a name="l01803"></a>01803     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#name">name</a> = <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#fromLatin1">QString::fromLatin1</a>(ge-&gt;gr_name);
<a name="l01804"></a>01804     <span class="keywordflow">if</span> (name.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isEmpty">isEmpty</a>())
<a name="l01805"></a>01805       name.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#setNum">setNum</a>(ge-&gt;gr_gid);
<a name="l01806"></a>01806     <span class="keywordflow">if</span> (groupList.find(name) == groupList.end())
<a name="l01807"></a>01807       groupList += name;
<a name="l01808"></a>01808   }
<a name="l01809"></a>01809 <span class="preprocessor">#endif //Q_OS_UNIX</span>
<a name="l01810"></a>01810 <span class="preprocessor"></span>
<a name="l01811"></a>01811   <span class="keywordtype">bool</span> isMyGroup = groupList.contains(strGroup);
<a name="l01812"></a>01812 
<a name="l01813"></a>01813   <span class="comment">/* add the group the file currently belongs to ..</span>
<a name="l01814"></a>01814 <span class="comment">   * .. if its not there already</span>
<a name="l01815"></a>01815 <span class="comment">   */</span>
<a name="l01816"></a>01816   <span class="keywordflow">if</span> (!isMyGroup)
<a name="l01817"></a>01817     groupList += strGroup;
<a name="l01818"></a>01818 
<a name="l01819"></a>01819   l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( i18n(<span class="stringliteral">"Group:"</span>), gb );
<a name="l01820"></a>01820   gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a> (l, 2, 0);
<a name="l01821"></a>01821 
<a name="l01822"></a>01822   <span class="comment">/* Set group: if possible to change:</span>
<a name="l01823"></a>01823 <span class="comment">   * - Offer a KLineEdit for root, since he can change to any group.</span>
<a name="l01824"></a>01824 <span class="comment">   * - Offer a QComboBox for a normal user, since he can change to a fixed</span>
<a name="l01825"></a>01825 <span class="comment">   *   (small) set of groups only.</span>
<a name="l01826"></a>01826 <span class="comment">   * If not changeable: offer a QLabel.</span>
<a name="l01827"></a>01827 <span class="comment">   */</span>
<a name="l01828"></a>01828   <span class="keywordflow">if</span> (IamRoot &amp;&amp; isLocal)
<a name="l01829"></a>01829   {
<a name="l01830"></a>01830     grpEdit = <span class="keyword">new</span> KLineEdit(gb);
<a name="l01831"></a>01831     KCompletion *kcom = <span class="keyword">new</span> KCompletion;
<a name="l01832"></a>01832     kcom-&gt;setItems(groupList);
<a name="l01833"></a>01833     grpEdit-&gt;setCompletionObject(kcom, <span class="keyword">true</span>);
<a name="l01834"></a>01834     grpEdit-&gt;setAutoDeleteCompletionObject( <span class="keyword">true</span> );
<a name="l01835"></a>01835     grpEdit-&gt;setCompletionMode(KGlobalSettings::CompletionAuto);
<a name="l01836"></a>01836     grpEdit-&gt;setText(strGroup);
<a name="l01837"></a>01837     gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(grpEdit, 2, 1);
<a name="l01838"></a>01838     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( grpEdit, SIGNAL( textChanged( <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> &amp; ) ),
<a name="l01839"></a>01839              <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l01840"></a>01840   }
<a name="l01841"></a>01841   <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((groupList.count() &gt; 1) &amp;&amp; isMyFile &amp;&amp; isLocal)
<a name="l01842"></a>01842   {
<a name="l01843"></a>01843     grpCombo = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcombobox.html">QComboBox</a>(gb, <span class="stringliteral">"combogrouplist"</span>);
<a name="l01844"></a>01844     grpCombo-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcombobox.html#insertStringList">insertStringList</a>(groupList);
<a name="l01845"></a>01845     grpCombo-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcombobox.html#setCurrentItem">setCurrentItem</a>(groupList.findIndex(strGroup));
<a name="l01846"></a>01846     gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(grpCombo, 2, 1);
<a name="l01847"></a>01847     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( grpCombo, SIGNAL( activated( <span class="keywordtype">int</span> ) ),
<a name="l01848"></a>01848              <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l01849"></a>01849   }
<a name="l01850"></a>01850   <span class="keywordflow">else</span>
<a name="l01851"></a>01851   {
<a name="l01852"></a>01852     l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>(strGroup, gb);
<a name="l01853"></a>01853     gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(l, 2, 1);
<a name="l01854"></a>01854   }
<a name="l01855"></a>01855 
<a name="l01856"></a>01856   gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#setColStretch">setColStretch</a>(2, 10);
<a name="l01857"></a>01857 
<a name="l01858"></a>01858   <span class="comment">// "Apply recursive" checkbox</span>
<a name="l01859"></a>01859   <span class="keywordflow">if</span> ( hasDir &amp;&amp; !isLink &amp;&amp; !isTrash  )
<a name="l01860"></a>01860   {
<a name="l01861"></a>01861       d-&gt;cbRecursive = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcheckbox.html">QCheckBox</a>( i18n(<span class="stringliteral">"Apply changes to all subfolders and their contents"</span>), d-&gt;m_frame );
<a name="l01862"></a>01862       <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( d-&gt;cbRecursive, SIGNAL( clicked() ), <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l01863"></a>01863       box-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qboxlayout.html#addWidget">addWidget</a>( d-&gt;cbRecursive );
<a name="l01864"></a>01864   }
<a name="l01865"></a>01865 
<a name="l01866"></a>01866   updateAccessControls();
<a name="l01867"></a>01867 
<a name="l01868"></a>01868 
<a name="l01869"></a>01869   <span class="keywordflow">if</span> ( isTrash || !d-&gt;canChangePermissions )
<a name="l01870"></a>01870   {
<a name="l01871"></a>01871       <span class="comment">//don't allow to change properties for file into trash</span>
<a name="l01872"></a>01872       enableAccessControls(<span class="keyword">false</span>);
<a name="l01873"></a>01873       <span class="keywordflow">if</span> ( pbAdvancedPerm  &amp;&amp; !d-&gt;hasExtendedACL )
<a name="l01874"></a>01874           pbAdvancedPerm-&gt;setEnabled(<span class="keyword">false</span>);
<a name="l01875"></a>01875   }
<a name="l01876"></a>01876 
<a name="l01877"></a>01877   box-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qboxlayout.html#addStretch">addStretch</a> (10);
<a name="l01878"></a>01878 }
<a name="l01879"></a>01879 
<a name="l01880"></a>01880 <span class="preprocessor">#ifdef USE_POSIX_ACL</span>
<a name="l01881"></a>01881 <span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> fileSystemSupportsACL( <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcstring.html">QCString</a>&amp; pathCString )
<a name="l01882"></a>01882 {
<a name="l01883"></a>01883     <span class="keywordtype">bool</span> fileSystemSupportsACLs = <span class="keyword">false</span>;
<a name="l01884"></a>01884 <span class="preprocessor">#ifdef Q_OS_FREEBSD</span>
<a name="l01885"></a>01885 <span class="preprocessor"></span>    <span class="keyword">struct </span>statfs buf;
<a name="l01886"></a>01886     fileSystemSupportsACLs = ( statfs( pathCString.data(), &amp;buf ) == 0 ) &amp;&amp; ( buf.f_flags &amp; MNT_ACLS );
<a name="l01887"></a>01887 <span class="preprocessor">#else</span>
<a name="l01888"></a>01888 <span class="preprocessor"></span>    fileSystemSupportsACLs =
<a name="l01889"></a>01889       getxattr( pathCString.data(), <span class="stringliteral">"system.posix_acl_access"</span>, NULL, 0 ) &gt;= 0 || errno == ENODATA;
<a name="l01890"></a>01890 <span class="preprocessor">#endif</span>
<a name="l01891"></a>01891 <span class="preprocessor"></span>    <span class="keywordflow">return</span> fileSystemSupportsACLs;
<a name="l01892"></a>01892 }
<a name="l01893"></a>01893 <span class="preprocessor">#endif</span>
<a name="l01894"></a>01894 <span class="preprocessor"></span>
<a name="l01895"></a>01895 
<a name="l01896"></a>01896 <span class="keywordtype">void</span> KFilePermissionsPropsPlugin::slotShowAdvancedPermissions() {
<a name="l01897"></a>01897 
<a name="l01898"></a>01898   <span class="keywordtype">bool</span> isDir = (d-&gt;pmode == PermissionsOnlyDirs) || (d-&gt;pmode == PermissionsMixed);
<a name="l01899"></a>01899   KDialogBase dlg(<a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>, 0, <span class="keyword">true</span>, i18n(<span class="stringliteral">"Advanced Permissions"</span>),
<a name="l01900"></a>01900           KDialogBase::Ok|KDialogBase::Cancel);
<a name="l01901"></a>01901 
<a name="l01902"></a>01902   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a> *l, *cl[3];
<a name="l01903"></a>01903   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgroupbox.html">QGroupBox</a> *gb;
<a name="l01904"></a>01904   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html">QGridLayout</a> *gl;
<a name="l01905"></a>01905 
<a name="l01906"></a>01906   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qvbox.html">QVBox</a> *mainVBox = dlg.makeVBoxMainWidget();
<a name="l01907"></a>01907 
<a name="l01908"></a>01908   <span class="comment">// Group: Access Permissions</span>
<a name="l01909"></a>01909   gb = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgroupbox.html">QGroupBox</a> ( 0, Qt::Vertical, i18n(<span class="stringliteral">"Access Permissions"</span>), mainVBox );
<a name="l01910"></a>01910   gb-&gt;layout()-&gt;setSpacing(KDialog::spacingHint());
<a name="l01911"></a>01911   gb-&gt;layout()-&gt;setMargin(KDialog::marginHint());
<a name="l01912"></a>01912 
<a name="l01913"></a>01913   gl = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html">QGridLayout</a> (gb-&gt;layout(), 6, 6);
<a name="l01914"></a>01914   gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addRowSpacing">addRowSpacing</a>(0, 10);
<a name="l01915"></a>01915 
<a name="l01916"></a>01916   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qvaluevector.html">QValueVector&lt;QWidget*&gt;</a> theNotSpecials;
<a name="l01917"></a>01917 
<a name="l01918"></a>01918   l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>(i18n(<span class="stringliteral">"Class"</span>), gb );
<a name="l01919"></a>01919   gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(l, 1, 0);
<a name="l01920"></a>01920   theNotSpecials.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qvaluevector.html#append">append</a>( l );
<a name="l01921"></a>01921 
<a name="l01922"></a>01922   <span class="keywordflow">if</span> (isDir)
<a name="l01923"></a>01923     l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( i18n(<span class="stringliteral">"Show\nEntries"</span>), gb );
<a name="l01924"></a>01924   <span class="keywordflow">else</span>
<a name="l01925"></a>01925     l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( i18n(<span class="stringliteral">"Read"</span>), gb );
<a name="l01926"></a>01926   gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a> (l, 1, 1);
<a name="l01927"></a>01927   theNotSpecials.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qvaluevector.html#append">append</a>( l );
<a name="l01928"></a>01928   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> readWhatsThis;
<a name="l01929"></a>01929   <span class="keywordflow">if</span> (isDir)
<a name="l01930"></a>01930     readWhatsThis = i18n(<span class="stringliteral">"This flag allows viewing the content of the folder."</span>);
<a name="l01931"></a>01931   <span class="keywordflow">else</span>
<a name="l01932"></a>01932     readWhatsThis = i18n(<span class="stringliteral">"The Read flag allows viewing the content of the file."</span>);
<a name="l01933"></a>01933   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwhatsthis.html#add">QWhatsThis::add</a>(l, readWhatsThis);
<a name="l01934"></a>01934 
<a name="l01935"></a>01935   <span class="keywordflow">if</span> (isDir)
<a name="l01936"></a>01936     l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( i18n(<span class="stringliteral">"Write\nEntries"</span>), gb );
<a name="l01937"></a>01937   <span class="keywordflow">else</span>
<a name="l01938"></a>01938     l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( i18n(<span class="stringliteral">"Write"</span>), gb );
<a name="l01939"></a>01939   gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a> (l, 1, 2);
<a name="l01940"></a>01940   theNotSpecials.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qvaluevector.html#append">append</a>( l );
<a name="l01941"></a>01941   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> writeWhatsThis;
<a name="l01942"></a>01942   <span class="keywordflow">if</span> (isDir)
<a name="l01943"></a>01943     writeWhatsThis = i18n(<span class="stringliteral">"This flag allows adding, renaming and deleting of files. "</span>
<a name="l01944"></a>01944               <span class="stringliteral">"Note that deleting and renaming can be limited using the Sticky flag."</span>);
<a name="l01945"></a>01945   <span class="keywordflow">else</span>
<a name="l01946"></a>01946     writeWhatsThis = i18n(<span class="stringliteral">"The Write flag allows modifying the content of the file."</span>);
<a name="l01947"></a>01947   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwhatsthis.html#add">QWhatsThis::add</a>(l, writeWhatsThis);
<a name="l01948"></a>01948 
<a name="l01949"></a>01949   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> execWhatsThis;
<a name="l01950"></a>01950   <span class="keywordflow">if</span> (isDir) {
<a name="l01951"></a>01951     l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( i18n(<span class="stringliteral">"Enter folder"</span>, <span class="stringliteral">"Enter"</span>), gb );
<a name="l01952"></a>01952     execWhatsThis = i18n(<span class="stringliteral">"Enable this flag to allow entering the folder."</span>);
<a name="l01953"></a>01953   }
<a name="l01954"></a>01954   <span class="keywordflow">else</span> {
<a name="l01955"></a>01955     l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( i18n(<span class="stringliteral">"Exec"</span>), gb );
<a name="l01956"></a>01956     execWhatsThis = i18n(<span class="stringliteral">"Enable this flag to allow executing the file as a program."</span>);
<a name="l01957"></a>01957   }
<a name="l01958"></a>01958   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwhatsthis.html#add">QWhatsThis::add</a>(l, execWhatsThis);
<a name="l01959"></a>01959   theNotSpecials.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qvaluevector.html#append">append</a>( l );
<a name="l01960"></a>01960   <span class="comment">// GJ: Add space between normal and special modes</span>
<a name="l01961"></a>01961   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qsize.html">QSize</a> size = l-&gt;sizeHint();
<a name="l01962"></a>01962   size.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qsize.html#setWidth">setWidth</a>(size.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qsize.html#width">width</a>() + 15);
<a name="l01963"></a>01963   l-&gt;setFixedSize(size);
<a name="l01964"></a>01964   gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a> (l, 1, 3);
<a name="l01965"></a>01965 
<a name="l01966"></a>01966   l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( i18n(<span class="stringliteral">"Special"</span>), gb );
<a name="l01967"></a>01967   gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addMultiCellWidget">addMultiCellWidget</a>(l, 1, 1, 4, 5);
<a name="l01968"></a>01968   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> specialWhatsThis;
<a name="l01969"></a>01969   <span class="keywordflow">if</span> (isDir)
<a name="l01970"></a>01970     specialWhatsThis = i18n(<span class="stringliteral">"Special flag. Valid for the whole folder, the exact "</span>
<a name="l01971"></a>01971                 <span class="stringliteral">"meaning of the flag can be seen in the right hand column."</span>);
<a name="l01972"></a>01972   <span class="keywordflow">else</span>
<a name="l01973"></a>01973     specialWhatsThis = i18n(<span class="stringliteral">"Special flag. The exact meaning of the flag can be seen "</span>
<a name="l01974"></a>01974                 <span class="stringliteral">"in the right hand column."</span>);
<a name="l01975"></a>01975   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwhatsthis.html#add">QWhatsThis::add</a>(l, specialWhatsThis);
<a name="l01976"></a>01976 
<a name="l01977"></a>01977   cl[0] = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( i18n(<span class="stringliteral">"User"</span>), gb );
<a name="l01978"></a>01978   gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a> (cl[0], 2, 0);
<a name="l01979"></a>01979   theNotSpecials.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qvaluevector.html#append">append</a>( cl[0] );
<a name="l01980"></a>01980 
<a name="l01981"></a>01981   cl[1] = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( i18n(<span class="stringliteral">"Group"</span>), gb );
<a name="l01982"></a>01982   gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a> (cl[1], 3, 0);
<a name="l01983"></a>01983   theNotSpecials.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qvaluevector.html#append">append</a>( cl[1] );
<a name="l01984"></a>01984 
<a name="l01985"></a>01985   cl[2] = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( i18n(<span class="stringliteral">"Others"</span>), gb );
<a name="l01986"></a>01986   gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a> (cl[2], 4, 0);
<a name="l01987"></a>01987   theNotSpecials.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qvaluevector.html#append">append</a>( cl[2] );
<a name="l01988"></a>01988 
<a name="l01989"></a>01989   l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>(i18n(<span class="stringliteral">"Set UID"</span>), gb);
<a name="l01990"></a>01990   gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(l, 2, 5);
<a name="l01991"></a>01991   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> setUidWhatsThis;
<a name="l01992"></a>01992   <span class="keywordflow">if</span> (isDir)
<a name="l01993"></a>01993     setUidWhatsThis = i18n(<span class="stringliteral">"If this flag is set, the owner of this folder will be "</span>
<a name="l01994"></a>01994                <span class="stringliteral">"the owner of all new files."</span>);
<a name="l01995"></a>01995   <span class="keywordflow">else</span>
<a name="l01996"></a>01996     setUidWhatsThis = i18n(<span class="stringliteral">"If this file is an executable and the flag is set, it will "</span>
<a name="l01997"></a>01997                <span class="stringliteral">"be executed with the permissions of the owner."</span>);
<a name="l01998"></a>01998   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwhatsthis.html#add">QWhatsThis::add</a>(l, setUidWhatsThis);
<a name="l01999"></a>01999 
<a name="l02000"></a>02000   l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>(i18n(<span class="stringliteral">"Set GID"</span>), gb);
<a name="l02001"></a>02001   gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(l, 3, 5);
<a name="l02002"></a>02002   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> setGidWhatsThis;
<a name="l02003"></a>02003   <span class="keywordflow">if</span> (isDir)
<a name="l02004"></a>02004     setGidWhatsThis = i18n(<span class="stringliteral">"If this flag is set, the group of this folder will be "</span>
<a name="l02005"></a>02005                <span class="stringliteral">"set for all new files."</span>);
<a name="l02006"></a>02006   <span class="keywordflow">else</span>
<a name="l02007"></a>02007     setGidWhatsThis = i18n(<span class="stringliteral">"If this file is an executable and the flag is set, it will "</span>
<a name="l02008"></a>02008                <span class="stringliteral">"be executed with the permissions of the group."</span>);
<a name="l02009"></a>02009   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwhatsthis.html#add">QWhatsThis::add</a>(l, setGidWhatsThis);
<a name="l02010"></a>02010 
<a name="l02011"></a>02011   l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>(i18n(<span class="stringliteral">"File permission"</span>, <span class="stringliteral">"Sticky"</span>), gb);
<a name="l02012"></a>02012   gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(l, 4, 5);
<a name="l02013"></a>02013   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> stickyWhatsThis;
<a name="l02014"></a>02014   <span class="keywordflow">if</span> (isDir)
<a name="l02015"></a>02015     stickyWhatsThis = i18n(<span class="stringliteral">"If the Sticky flag is set on a folder, only the owner "</span>
<a name="l02016"></a>02016                <span class="stringliteral">"and root can delete or rename files. Otherwise everybody "</span>
<a name="l02017"></a>02017                <span class="stringliteral">"with write permissions can do this."</span>);
<a name="l02018"></a>02018   <span class="keywordflow">else</span>
<a name="l02019"></a>02019     stickyWhatsThis = i18n(<span class="stringliteral">"The Sticky flag on a file is ignored on Linux, but may "</span>
<a name="l02020"></a>02020                <span class="stringliteral">"be used on some systems"</span>);
<a name="l02021"></a>02021   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwhatsthis.html#add">QWhatsThis::add</a>(l, stickyWhatsThis);
<a name="l02022"></a>02022 
<a name="l02023"></a>02023   mode_t aPermissions, aPartialPermissions;
<a name="l02024"></a>02024   mode_t dummy1, dummy2;
<a name="l02025"></a>02025 
<a name="l02026"></a>02026   <span class="keywordflow">if</span> (!d-&gt;isIrregular) {
<a name="l02027"></a>02027     <span class="keywordflow">switch</span> (d-&gt;pmode) {
<a name="l02028"></a>02028     <span class="keywordflow">case</span> PermissionsOnlyFiles:
<a name="l02029"></a>02029       getPermissionMasks(aPartialPermissions,
<a name="l02030"></a>02030              dummy1,
<a name="l02031"></a>02031              aPermissions,
<a name="l02032"></a>02032              dummy2);
<a name="l02033"></a>02033       <span class="keywordflow">break</span>;
<a name="l02034"></a>02034     <span class="keywordflow">case</span> PermissionsOnlyDirs:
<a name="l02035"></a>02035     <span class="keywordflow">case</span> PermissionsMixed:
<a name="l02036"></a>02036       getPermissionMasks(dummy1,
<a name="l02037"></a>02037              aPartialPermissions,
<a name="l02038"></a>02038              dummy2,
<a name="l02039"></a>02039              aPermissions);
<a name="l02040"></a>02040       <span class="keywordflow">break</span>;
<a name="l02041"></a>02041     <span class="keywordflow">case</span> PermissionsOnlyLinks:
<a name="l02042"></a>02042       aPermissions = UniRead | UniWrite | UniExec | UniSpecial;
<a name="l02043"></a>02043       aPartialPermissions = 0;
<a name="l02044"></a>02044       <span class="keywordflow">break</span>;
<a name="l02045"></a>02045     }
<a name="l02046"></a>02046   }
<a name="l02047"></a>02047   <span class="keywordflow">else</span> {
<a name="l02048"></a>02048     aPermissions = permissions;
<a name="l02049"></a>02049     aPartialPermissions = d-&gt;partialPermissions;
<a name="l02050"></a>02050   }
<a name="l02051"></a>02051 
<a name="l02052"></a>02052   <span class="comment">// Draw Checkboxes</span>
<a name="l02053"></a>02053   <span class="keywordtype">bool</span> allDisable = <span class="keyword">true</span>;
<a name="l02054"></a>02054   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcheckbox.html">QCheckBox</a> *cba[3][4];
<a name="l02055"></a>02055   <span class="keywordflow">for</span> (<span class="keywordtype">int</span> row = 0; row &lt; 3 ; ++row) {
<a name="l02056"></a>02056     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> col = 0; col &lt; 4; ++col) {
<a name="l02057"></a>02057       <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcheckbox.html">QCheckBox</a> *cb = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcheckbox.html">QCheckBox</a>( gb );
<a name="l02058"></a>02058       <span class="keywordflow">if</span> ( col != 3 ) theNotSpecials.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qvaluevector.html#append">append</a>( cb );
<a name="l02059"></a>02059       cba[row][col] = cb;
<a name="l02060"></a>02060       cb-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcheckbox.html#setChecked">setChecked</a>(aPermissions &amp; fperm[row][col]);
<a name="l02061"></a>02061       <span class="keywordflow">if</span> ( aPartialPermissions &amp; fperm[row][col] )
<a name="l02062"></a>02062       {
<a name="l02063"></a>02063         cb-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcheckbox.html#setTristate">setTristate</a>();
<a name="l02064"></a>02064         cb-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcheckbox.html#setNoChange">setNoChange</a>();
<a name="l02065"></a>02065       }
<a name="l02066"></a>02066       <span class="keywordflow">else</span> <span class="keywordflow">if</span> (d-&gt;cbRecursive &amp;&amp; d-&gt;cbRecursive-&gt;isChecked())
<a name="l02067"></a>02067     cb-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcheckbox.html#setTristate">setTristate</a>();
<a name="l02068"></a>02068 
<a name="l02069"></a>02069       <span class="keywordflow">if</span>( d-&gt;canChangePermissions)
<a name="l02070"></a>02070         allDisable = <span class="keyword">false</span>;
<a name="l02071"></a>02071       cb-&gt;setEnabled( d-&gt;canChangePermissions );
<a name="l02072"></a>02072       gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a> (cb, row+2, col+1);
<a name="l02073"></a>02073       <span class="keywordflow">switch</span>(col) {
<a name="l02074"></a>02074       <span class="keywordflow">case</span> 0:
<a name="l02075"></a>02075     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwhatsthis.html#add">QWhatsThis::add</a>(cb, readWhatsThis);
<a name="l02076"></a>02076     <span class="keywordflow">break</span>;
<a name="l02077"></a>02077       <span class="keywordflow">case</span> 1:
<a name="l02078"></a>02078     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwhatsthis.html#add">QWhatsThis::add</a>(cb, writeWhatsThis);
<a name="l02079"></a>02079     <span class="keywordflow">break</span>;
<a name="l02080"></a>02080       <span class="keywordflow">case</span> 2:
<a name="l02081"></a>02081     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwhatsthis.html#add">QWhatsThis::add</a>(cb, execWhatsThis);
<a name="l02082"></a>02082     <span class="keywordflow">break</span>;
<a name="l02083"></a>02083       <span class="keywordflow">case</span> 3:
<a name="l02084"></a>02084     <span class="keywordflow">switch</span>(row) {
<a name="l02085"></a>02085     <span class="keywordflow">case</span> 0:
<a name="l02086"></a>02086       <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwhatsthis.html#add">QWhatsThis::add</a>(cb, setUidWhatsThis);
<a name="l02087"></a>02087       <span class="keywordflow">break</span>;
<a name="l02088"></a>02088     <span class="keywordflow">case</span> 1:
<a name="l02089"></a>02089       <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwhatsthis.html#add">QWhatsThis::add</a>(cb, setGidWhatsThis);
<a name="l02090"></a>02090       <span class="keywordflow">break</span>;
<a name="l02091"></a>02091     <span class="keywordflow">case</span> 2:
<a name="l02092"></a>02092       <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwhatsthis.html#add">QWhatsThis::add</a>(cb, stickyWhatsThis);
<a name="l02093"></a>02093       <span class="keywordflow">break</span>;
<a name="l02094"></a>02094     }
<a name="l02095"></a>02095     <span class="keywordflow">break</span>;
<a name="l02096"></a>02096       }
<a name="l02097"></a>02097     }
<a name="l02098"></a>02098   }
<a name="l02099"></a>02099   gl-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#setColStretch">setColStretch</a>(6, 10);
<a name="l02100"></a>02100 
<a name="l02101"></a>02101 <span class="preprocessor">#ifdef USE_POSIX_ACL</span>
<a name="l02102"></a>02102 <span class="preprocessor"></span>  KACLEditWidget *extendedACLs = 0;
<a name="l02103"></a>02103 
<a name="l02104"></a>02104   <span class="comment">// FIXME make it work with partial entries</span>
<a name="l02105"></a>02105   <span class="keywordflow">if</span> ( <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#616b7c9afe4c1c1235c2edb81b2e36a1">items</a>().count() == 1 ) {
<a name="l02106"></a>02106       <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcstring.html">QCString</a> pathCString = <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html#encodeName">QFile::encodeName</a>( <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#f04def59643b5afac5c57d374b83cdb7">item</a>()-&gt;url().path() );
<a name="l02107"></a>02107       d-&gt;fileSystemSupportsACLs = fileSystemSupportsACL( pathCString );
<a name="l02108"></a>02108   }
<a name="l02109"></a>02109   <span class="keywordflow">if</span> ( d-&gt;fileSystemSupportsACLs  ) {
<a name="l02110"></a>02110     std::for_each( theNotSpecials.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qvaluevector.html#begin">begin</a>(), theNotSpecials.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qvaluevector.html#end">end</a>(), std::mem_fun( &amp;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwidget.html#hide">QWidget::hide</a> ) );
<a name="l02111"></a>02111     extendedACLs = <span class="keyword">new</span> KACLEditWidget( mainVBox );
<a name="l02112"></a>02112     <span class="keywordflow">if</span> ( d-&gt;extendedACL.isValid() &amp;&amp; d-&gt;extendedACL.isExtended() )
<a name="l02113"></a>02113       extendedACLs-&gt;setACL( d-&gt;extendedACL );
<a name="l02114"></a>02114     <span class="keywordflow">else</span>
<a name="l02115"></a>02115       extendedACLs-&gt;setACL( KACL( aPermissions ) );
<a name="l02116"></a>02116 
<a name="l02117"></a>02117     <span class="keywordflow">if</span> ( d-&gt;defaultACL.isValid() )
<a name="l02118"></a>02118       extendedACLs-&gt;setDefaultACL( d-&gt;defaultACL );
<a name="l02119"></a>02119 
<a name="l02120"></a>02120     <span class="keywordflow">if</span> ( <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#616b7c9afe4c1c1235c2edb81b2e36a1">items</a>().first()-&gt;isDir() )
<a name="l02121"></a>02121       extendedACLs-&gt;setAllowDefaults( <span class="keyword">true</span> );
<a name="l02122"></a>02122     <span class="keywordflow">if</span> ( !d-&gt;canChangePermissions )
<a name="l02123"></a>02123       extendedACLs-&gt;setReadOnly( <span class="keyword">true</span> );
<a name="l02124"></a>02124 
<a name="l02125"></a>02125   }
<a name="l02126"></a>02126 <span class="preprocessor">#endif</span>
<a name="l02127"></a>02127 <span class="preprocessor"></span>
<a name="l02128"></a>02128   <span class="keywordflow">if</span> (  allDisable )
<a name="l02129"></a>02129      dlg.enableButtonOK( <span class="keyword">false</span> );
<a name="l02130"></a>02130 
<a name="l02131"></a>02131   <span class="keywordflow">if</span> (dlg.exec() != KDialogBase::Accepted)
<a name="l02132"></a>02132     <span class="keywordflow">return</span>;
<a name="l02133"></a>02133 
<a name="l02134"></a>02134   mode_t andPermissions = mode_t(~0);
<a name="l02135"></a>02135   mode_t orPermissions = 0;
<a name="l02136"></a>02136   <span class="keywordflow">for</span> (<span class="keywordtype">int</span> row = 0; row &lt; 3; ++row)
<a name="l02137"></a>02137     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> col = 0; col &lt; 4; ++col) {
<a name="l02138"></a>02138       <span class="keywordflow">switch</span> (cba[row][col]-&gt;state())
<a name="l02139"></a>02139       {
<a name="l02140"></a>02140       <span class="keywordflow">case</span> QCheckBox::On:
<a name="l02141"></a>02141     orPermissions |= fperm[row][col];
<a name="l02142"></a>02142     <span class="comment">//fall through</span>
<a name="l02143"></a>02143       <span class="keywordflow">case</span> QCheckBox::Off:
<a name="l02144"></a>02144     andPermissions &amp;= ~fperm[row][col];
<a name="l02145"></a>02145     <span class="keywordflow">break</span>;
<a name="l02146"></a>02146       <span class="keywordflow">default</span>: <span class="comment">// NoChange</span>
<a name="l02147"></a>02147     <span class="keywordflow">break</span>;
<a name="l02148"></a>02148       }
<a name="l02149"></a>02149     }
<a name="l02150"></a>02150 
<a name="l02151"></a>02151   d-&gt;isIrregular = <span class="keyword">false</span>;
<a name="l02152"></a>02152   KFileItemList items = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#616b7c9afe4c1c1235c2edb81b2e36a1">items</a>();
<a name="l02153"></a>02153   <span class="keywordflow">for</span> (KFileItemListIterator it(items); it.current(); ++it) {
<a name="l02154"></a>02154     <span class="keywordflow">if</span> (isIrregular(((*it)-&gt;permissions() &amp; andPermissions) | orPermissions,
<a name="l02155"></a>02155             (*it)-&gt;isDir(), (*it)-&gt;isLink())) {
<a name="l02156"></a>02156       d-&gt;isIrregular = <span class="keyword">true</span>;
<a name="l02157"></a>02157       <span class="keywordflow">break</span>;
<a name="l02158"></a>02158     }
<a name="l02159"></a>02159   }
<a name="l02160"></a>02160 
<a name="l02161"></a>02161   permissions = orPermissions;
<a name="l02162"></a>02162   d-&gt;partialPermissions = andPermissions;
<a name="l02163"></a>02163 
<a name="l02164"></a>02164 <span class="preprocessor">#ifdef USE_POSIX_ACL</span>
<a name="l02165"></a>02165 <span class="preprocessor"></span>  <span class="comment">// override with the acls, if present</span>
<a name="l02166"></a>02166   <span class="keywordflow">if</span> ( extendedACLs ) {
<a name="l02167"></a>02167     d-&gt;extendedACL = extendedACLs-&gt;getACL();
<a name="l02168"></a>02168     d-&gt;defaultACL = extendedACLs-&gt;getDefaultACL();
<a name="l02169"></a>02169     d-&gt;hasExtendedACL = d-&gt;extendedACL.isExtended() || d-&gt;defaultACL.isValid();
<a name="l02170"></a>02170     permissions = d-&gt;extendedACL.basePermissions();
<a name="l02171"></a>02171     permissions |= ( andPermissions | orPermissions ) &amp; ( S_ISUID|S_ISGID|S_ISVTX );
<a name="l02172"></a>02172   }
<a name="l02173"></a>02173 <span class="preprocessor">#endif</span>
<a name="l02174"></a>02174 <span class="preprocessor"></span>
<a name="l02175"></a>02175   updateAccessControls();
<a name="l02176"></a>02176   emit <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>();
<a name="l02177"></a>02177 }
<a name="l02178"></a>02178 
<a name="l02179"></a>02179 <span class="comment">// QString KFilePermissionsPropsPlugin::tabName () const</span>
<a name="l02180"></a>02180 <span class="comment">// {</span>
<a name="l02181"></a>02181 <span class="comment">//   return i18n ("&amp;Permissions");</span>
<a name="l02182"></a>02182 <span class="comment">// }</span>
<a name="l02183"></a>02183 
<a name="l02184"></a>02184 KFilePermissionsPropsPlugin::~KFilePermissionsPropsPlugin()
<a name="l02185"></a>02185 {
<a name="l02186"></a>02186   <span class="keyword">delete</span> d;
<a name="l02187"></a>02187 }
<a name="l02188"></a>02188 
<a name="l02189"></a><a class="code" href="classKFilePermissionsPropsPlugin.html#e1800d8c4c9dd56c50c532117895acb4">02189</a> <span class="keywordtype">bool</span> <a class="code" href="classKFilePermissionsPropsPlugin.html#e1800d8c4c9dd56c50c532117895acb4" title="Tests whether the file specified by _items needs a &amp;#39;Permissions&amp;#39; plugin.">KFilePermissionsPropsPlugin::supports</a>( KFileItemList _items )
<a name="l02190"></a>02190 {
<a name="l02191"></a>02191   KFileItemList::const_iterator it = _items.constBegin();
<a name="l02192"></a>02192   <span class="keywordflow">for</span> ( ; it != _items.constEnd(); ++it ) {
<a name="l02193"></a>02193     KFileItem *item = *it;
<a name="l02194"></a>02194     <span class="keywordflow">if</span>( !item-&gt;user().isEmpty() || !item-&gt;group().isEmpty() )
<a name="l02195"></a>02195       <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l02196"></a>02196   }
<a name="l02197"></a>02197   <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l02198"></a>02198 }
<a name="l02199"></a>02199 
<a name="l02200"></a>02200 <span class="comment">// sets a combo box in the Access Control frame</span>
<a name="l02201"></a>02201 <span class="keywordtype">void</span> KFilePermissionsPropsPlugin::setComboContent(<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcombobox.html">QComboBox</a> *combo, PermissionsTarget target,
<a name="l02202"></a>02202                           mode_t permissions, mode_t partial) {
<a name="l02203"></a>02203   combo-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcombobox.html#clear">clear</a>();
<a name="l02204"></a>02204   <span class="keywordflow">if</span> (d-&gt;pmode == PermissionsOnlyLinks) {
<a name="l02205"></a>02205     combo-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcombobox.html#insertItem">insertItem</a>(i18n(<span class="stringliteral">"Link"</span>));
<a name="l02206"></a>02206     combo-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcombobox.html#setCurrentItem">setCurrentItem</a>(0);
<a name="l02207"></a>02207     <span class="keywordflow">return</span>;
<a name="l02208"></a>02208   }
<a name="l02209"></a>02209 
<a name="l02210"></a>02210   mode_t tMask = permissionsMasks[target];
<a name="l02211"></a>02211   <span class="keywordtype">int</span> textIndex;
<a name="l02212"></a>02212   <span class="keywordflow">for</span> (textIndex = 0; standardPermissions[textIndex] != (mode_t)-1; textIndex++)
<a name="l02213"></a>02213     <span class="keywordflow">if</span> ((standardPermissions[textIndex]&amp;tMask) == (permissions&amp;tMask&amp;(UniRead|UniWrite)))
<a name="l02214"></a>02214       <span class="keywordflow">break</span>;
<a name="l02215"></a>02215   Q_ASSERT(standardPermissions[textIndex] != (mode_t)-1); <span class="comment">// must not happen, would be irreglar</span>
<a name="l02216"></a>02216 
<a name="l02217"></a>02217   <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; permissionsTexts[(int)d-&gt;pmode][i]; i++)
<a name="l02218"></a>02218     combo-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcombobox.html#insertItem">insertItem</a>(i18n(permissionsTexts[(<span class="keywordtype">int</span>)d-&gt;pmode][i]));
<a name="l02219"></a>02219 
<a name="l02220"></a>02220   <span class="keywordflow">if</span> (partial &amp; tMask &amp; ~UniExec) {
<a name="l02221"></a>02221     combo-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcombobox.html#insertItem">insertItem</a>(i18n(<span class="stringliteral">"Varying (No Change)"</span>));
<a name="l02222"></a>02222     combo-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcombobox.html#setCurrentItem">setCurrentItem</a>(3);
<a name="l02223"></a>02223   }
<a name="l02224"></a>02224   <span class="keywordflow">else</span>
<a name="l02225"></a>02225     combo-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcombobox.html#setCurrentItem">setCurrentItem</a>(textIndex);
<a name="l02226"></a>02226 }
<a name="l02227"></a>02227 
<a name="l02228"></a>02228 <span class="comment">// permissions are irregular if they cant be displayed in a combo box.</span>
<a name="l02229"></a>02229 <span class="keywordtype">bool</span> KFilePermissionsPropsPlugin::isIrregular(mode_t permissions, <span class="keywordtype">bool</span> isDir, <span class="keywordtype">bool</span> isLink) {
<a name="l02230"></a>02230   <span class="keywordflow">if</span> (isLink)                             <span class="comment">// links are always ok</span>
<a name="l02231"></a>02231     <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l02232"></a>02232 
<a name="l02233"></a>02233   mode_t p = permissions;
<a name="l02234"></a>02234   <span class="keywordflow">if</span> (p &amp; (S_ISUID | S_ISGID))  <span class="comment">// setuid/setgid -&gt; irregular</span>
<a name="l02235"></a>02235     <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l02236"></a>02236   <span class="keywordflow">if</span> (isDir) {
<a name="l02237"></a>02237     p &amp;= ~S_ISVTX;          <span class="comment">// ignore sticky on dirs</span>
<a name="l02238"></a>02238 
<a name="l02239"></a>02239     <span class="comment">// check supported flag combinations</span>
<a name="l02240"></a>02240     mode_t p0 = p &amp; UniOwner;
<a name="l02241"></a>02241     <span class="keywordflow">if</span> ((p0 != 0) &amp;&amp; (p0 != (S_IRUSR | S_IXUSR)) &amp;&amp; (p0 != UniOwner))
<a name="l02242"></a>02242       <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l02243"></a>02243     p0 = p &amp; UniGroup;
<a name="l02244"></a>02244     <span class="keywordflow">if</span> ((p0 != 0) &amp;&amp; (p0 != (S_IRGRP | S_IXGRP)) &amp;&amp; (p0 != UniGroup))
<a name="l02245"></a>02245       <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l02246"></a>02246     p0 = p &amp; UniOthers;
<a name="l02247"></a>02247     <span class="keywordflow">if</span> ((p0 != 0) &amp;&amp; (p0 != (S_IROTH | S_IXOTH)) &amp;&amp; (p0 != UniOthers))
<a name="l02248"></a>02248       <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l02249"></a>02249     <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l02250"></a>02250   }
<a name="l02251"></a>02251   <span class="keywordflow">if</span> (p &amp; S_ISVTX) <span class="comment">// sticky on file -&gt; irregular</span>
<a name="l02252"></a>02252     <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l02253"></a>02253 
<a name="l02254"></a>02254   <span class="comment">// check supported flag combinations</span>
<a name="l02255"></a>02255   mode_t p0 = p &amp; UniOwner;
<a name="l02256"></a>02256   <span class="keywordtype">bool</span> usrXPossible = !p0; <span class="comment">// true if this file could be an executable</span>
<a name="l02257"></a>02257   <span class="keywordflow">if</span> (p0 &amp; S_IXUSR) {
<a name="l02258"></a>02258     <span class="keywordflow">if</span> ((p0 == S_IXUSR) || (p0 == (S_IWUSR | S_IXUSR)))
<a name="l02259"></a>02259       <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l02260"></a>02260     usrXPossible = <span class="keyword">true</span>;
<a name="l02261"></a>02261   }
<a name="l02262"></a>02262   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (p0 == S_IWUSR)
<a name="l02263"></a>02263     <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l02264"></a>02264 
<a name="l02265"></a>02265   p0 = p &amp; UniGroup;
<a name="l02266"></a>02266   <span class="keywordtype">bool</span> grpXPossible = !p0; <span class="comment">// true if this file could be an executable</span>
<a name="l02267"></a>02267   <span class="keywordflow">if</span> (p0 &amp; S_IXGRP) {
<a name="l02268"></a>02268     <span class="keywordflow">if</span> ((p0 == S_IXGRP) || (p0 == (S_IWGRP | S_IXGRP)))
<a name="l02269"></a>02269       <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l02270"></a>02270     grpXPossible = <span class="keyword">true</span>;
<a name="l02271"></a>02271   }
<a name="l02272"></a>02272   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (p0 == S_IWGRP)
<a name="l02273"></a>02273     <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l02274"></a>02274   <span class="keywordflow">if</span> (p0 == 0)
<a name="l02275"></a>02275     grpXPossible = <span class="keyword">true</span>;
<a name="l02276"></a>02276 
<a name="l02277"></a>02277   p0 = p &amp; UniOthers;
<a name="l02278"></a>02278   <span class="keywordtype">bool</span> othXPossible = !p0; <span class="comment">// true if this file could be an executable</span>
<a name="l02279"></a>02279   <span class="keywordflow">if</span> (p0 &amp; S_IXOTH) {
<a name="l02280"></a>02280     <span class="keywordflow">if</span> ((p0 == S_IXOTH) || (p0 == (S_IWOTH | S_IXOTH)))
<a name="l02281"></a>02281       <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l02282"></a>02282     othXPossible = <span class="keyword">true</span>;
<a name="l02283"></a>02283   }
<a name="l02284"></a>02284   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (p0 == S_IWOTH)
<a name="l02285"></a>02285     <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l02286"></a>02286 
<a name="l02287"></a>02287   <span class="comment">// check that there either all targets are executable-compatible, or none</span>
<a name="l02288"></a>02288   <span class="keywordflow">return</span> (p &amp; UniExec) &amp;&amp; !(usrXPossible &amp;&amp; grpXPossible &amp;&amp; othXPossible);
<a name="l02289"></a>02289 }
<a name="l02290"></a>02290 
<a name="l02291"></a>02291 <span class="comment">// enables/disabled the widgets in the Access Control frame</span>
<a name="l02292"></a>02292 <span class="keywordtype">void</span> KFilePermissionsPropsPlugin::enableAccessControls(<span class="keywordtype">bool</span> enable) {
<a name="l02293"></a>02293     d-&gt;ownerPermCombo-&gt;setEnabled(enable);
<a name="l02294"></a>02294     d-&gt;groupPermCombo-&gt;setEnabled(enable);
<a name="l02295"></a>02295     d-&gt;othersPermCombo-&gt;setEnabled(enable);
<a name="l02296"></a>02296     <span class="keywordflow">if</span> (d-&gt;extraCheckbox)
<a name="l02297"></a>02297       d-&gt;extraCheckbox-&gt;setEnabled(enable);
<a name="l02298"></a>02298         <span class="keywordflow">if</span> ( d-&gt;cbRecursive )
<a name="l02299"></a>02299             d-&gt;cbRecursive-&gt;setEnabled(enable);
<a name="l02300"></a>02300 }
<a name="l02301"></a>02301 
<a name="l02302"></a>02302 <span class="comment">// updates all widgets in the Access Control frame</span>
<a name="l02303"></a>02303 <span class="keywordtype">void</span> KFilePermissionsPropsPlugin::updateAccessControls() {
<a name="l02304"></a>02304   setComboContent(d-&gt;ownerPermCombo, PermissionsOwner,
<a name="l02305"></a>02305           permissions, d-&gt;partialPermissions);
<a name="l02306"></a>02306   setComboContent(d-&gt;groupPermCombo, PermissionsGroup,
<a name="l02307"></a>02307           permissions, d-&gt;partialPermissions);
<a name="l02308"></a>02308   setComboContent(d-&gt;othersPermCombo, PermissionsOthers,
<a name="l02309"></a>02309           permissions, d-&gt;partialPermissions);
<a name="l02310"></a>02310 
<a name="l02311"></a>02311   <span class="keywordflow">switch</span>(d-&gt;pmode) {
<a name="l02312"></a>02312   <span class="keywordflow">case</span> PermissionsOnlyLinks:
<a name="l02313"></a>02313     enableAccessControls(<span class="keyword">false</span>);
<a name="l02314"></a>02314     <span class="keywordflow">break</span>;
<a name="l02315"></a>02315   <span class="keywordflow">case</span> PermissionsOnlyFiles:
<a name="l02316"></a>02316     enableAccessControls(d-&gt;canChangePermissions &amp;&amp; !d-&gt;isIrregular &amp;&amp; !d-&gt;hasExtendedACL);
<a name="l02317"></a>02317     <span class="keywordflow">if</span> (d-&gt;canChangePermissions)
<a name="l02318"></a>02318       d-&gt;explanationLabel-&gt;setText(d-&gt;isIrregular || d-&gt;hasExtendedACL ?
<a name="l02319"></a>02319                    i18n(<span class="stringliteral">"This file uses advanced permissions"</span>,
<a name="l02320"></a>02320                       <span class="stringliteral">"These files use advanced permissions."</span>,
<a name="l02321"></a>02321                       <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#616b7c9afe4c1c1235c2edb81b2e36a1">items</a>().count()) : <span class="stringliteral">""</span>);
<a name="l02322"></a>02322     <span class="keywordflow">if</span> (d-&gt;partialPermissions &amp; UniExec) {
<a name="l02323"></a>02323       d-&gt;extraCheckbox-&gt;setTristate();
<a name="l02324"></a>02324       d-&gt;extraCheckbox-&gt;setNoChange();
<a name="l02325"></a>02325     }
<a name="l02326"></a>02326     <span class="keywordflow">else</span> {
<a name="l02327"></a>02327       d-&gt;extraCheckbox-&gt;setTristate(<span class="keyword">false</span>);
<a name="l02328"></a>02328       d-&gt;extraCheckbox-&gt;setChecked(permissions &amp; UniExec);
<a name="l02329"></a>02329     }
<a name="l02330"></a>02330     <span class="keywordflow">break</span>;
<a name="l02331"></a>02331   <span class="keywordflow">case</span> PermissionsOnlyDirs:
<a name="l02332"></a>02332     enableAccessControls(d-&gt;canChangePermissions &amp;&amp; !d-&gt;isIrregular &amp;&amp; !d-&gt;hasExtendedACL);
<a name="l02333"></a>02333     <span class="comment">// if this is a dir, and we can change permissions, don't dis-allow</span>
<a name="l02334"></a>02334     <span class="comment">// recursive, we can do that for ACL setting.</span>
<a name="l02335"></a>02335     <span class="keywordflow">if</span> ( d-&gt;cbRecursive )
<a name="l02336"></a>02336        d-&gt;cbRecursive-&gt;setEnabled( d-&gt;canChangePermissions &amp;&amp; !d-&gt;isIrregular );
<a name="l02337"></a>02337 
<a name="l02338"></a>02338     <span class="keywordflow">if</span> (d-&gt;canChangePermissions)
<a name="l02339"></a>02339       d-&gt;explanationLabel-&gt;setText(d-&gt;isIrregular || d-&gt;hasExtendedACL ?
<a name="l02340"></a>02340                    i18n(<span class="stringliteral">"This folder uses advanced permissions."</span>,
<a name="l02341"></a>02341                       <span class="stringliteral">"These folders use advanced permissions."</span>,
<a name="l02342"></a>02342                       <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#616b7c9afe4c1c1235c2edb81b2e36a1">items</a>().count()) : <span class="stringliteral">""</span>);
<a name="l02343"></a>02343     <span class="keywordflow">if</span> (d-&gt;partialPermissions &amp; S_ISVTX) {
<a name="l02344"></a>02344       d-&gt;extraCheckbox-&gt;setTristate();
<a name="l02345"></a>02345       d-&gt;extraCheckbox-&gt;setNoChange();
<a name="l02346"></a>02346     }
<a name="l02347"></a>02347     <span class="keywordflow">else</span> {
<a name="l02348"></a>02348       d-&gt;extraCheckbox-&gt;setTristate(<span class="keyword">false</span>);
<a name="l02349"></a>02349       d-&gt;extraCheckbox-&gt;setChecked(permissions &amp; S_ISVTX);
<a name="l02350"></a>02350     }
<a name="l02351"></a>02351     <span class="keywordflow">break</span>;
<a name="l02352"></a>02352   <span class="keywordflow">case</span> PermissionsMixed:
<a name="l02353"></a>02353     enableAccessControls(d-&gt;canChangePermissions &amp;&amp; !d-&gt;isIrregular &amp;&amp; !d-&gt;hasExtendedACL);
<a name="l02354"></a>02354     <span class="keywordflow">if</span> (d-&gt;canChangePermissions)
<a name="l02355"></a>02355       d-&gt;explanationLabel-&gt;setText(d-&gt;isIrregular || d-&gt;hasExtendedACL ?
<a name="l02356"></a>02356                    i18n(<span class="stringliteral">"These files use advanced permissions."</span>) : <span class="stringliteral">""</span>);
<a name="l02357"></a>02357     <span class="keywordflow">break</span>;
<a name="l02358"></a>02358     <span class="keywordflow">if</span> (d-&gt;partialPermissions &amp; S_ISVTX) {
<a name="l02359"></a>02359       d-&gt;extraCheckbox-&gt;setTristate();
<a name="l02360"></a>02360       d-&gt;extraCheckbox-&gt;setNoChange();
<a name="l02361"></a>02361     }
<a name="l02362"></a>02362     <span class="keywordflow">else</span> {
<a name="l02363"></a>02363       d-&gt;extraCheckbox-&gt;setTristate(<span class="keyword">false</span>);
<a name="l02364"></a>02364       d-&gt;extraCheckbox-&gt;setChecked(permissions &amp; S_ISVTX);
<a name="l02365"></a>02365     }
<a name="l02366"></a>02366     <span class="keywordflow">break</span>;
<a name="l02367"></a>02367   }
<a name="l02368"></a>02368 }
<a name="l02369"></a>02369 
<a name="l02370"></a>02370 <span class="comment">// gets masks for files and dirs from the Access Control frame widgets</span>
<a name="l02371"></a>02371 <span class="keywordtype">void</span> KFilePermissionsPropsPlugin::getPermissionMasks(mode_t &amp;andFilePermissions,
<a name="l02372"></a>02372                              mode_t &amp;andDirPermissions,
<a name="l02373"></a>02373                              mode_t &amp;orFilePermissions,
<a name="l02374"></a>02374                              mode_t &amp;orDirPermissions) {
<a name="l02375"></a>02375   andFilePermissions = mode_t(~UniSpecial);
<a name="l02376"></a>02376   andDirPermissions = mode_t(~(S_ISUID|S_ISGID));
<a name="l02377"></a>02377   orFilePermissions = 0;
<a name="l02378"></a>02378   orDirPermissions = 0;
<a name="l02379"></a>02379   <span class="keywordflow">if</span> (d-&gt;isIrregular)
<a name="l02380"></a>02380     <span class="keywordflow">return</span>;
<a name="l02381"></a>02381 
<a name="l02382"></a>02382   mode_t m = standardPermissions[d-&gt;ownerPermCombo-&gt;currentItem()];
<a name="l02383"></a>02383   <span class="keywordflow">if</span> (m != (mode_t) -1) {
<a name="l02384"></a>02384     orFilePermissions |= m &amp; UniOwner;
<a name="l02385"></a>02385     <span class="keywordflow">if</span> ((m &amp; UniOwner) &amp;&amp;
<a name="l02386"></a>02386     ((d-&gt;pmode == PermissionsMixed) ||
<a name="l02387"></a>02387      ((d-&gt;pmode == PermissionsOnlyFiles) &amp;&amp; (d-&gt;extraCheckbox-&gt;state() == QButton::NoChange))))
<a name="l02388"></a>02388       andFilePermissions &amp;= ~(S_IRUSR | S_IWUSR);
<a name="l02389"></a>02389     <span class="keywordflow">else</span> {
<a name="l02390"></a>02390       andFilePermissions &amp;= ~(S_IRUSR | S_IWUSR | S_IXUSR);
<a name="l02391"></a>02391       <span class="keywordflow">if</span> ((m &amp; S_IRUSR) &amp;&amp; (d-&gt;extraCheckbox-&gt;state() == QButton::On))
<a name="l02392"></a>02392     orFilePermissions |= S_IXUSR;
<a name="l02393"></a>02393     }
<a name="l02394"></a>02394 
<a name="l02395"></a>02395     orDirPermissions |= m &amp; UniOwner;
<a name="l02396"></a>02396     <span class="keywordflow">if</span> (m &amp; S_IRUSR)
<a name="l02397"></a>02397     orDirPermissions |= S_IXUSR;
<a name="l02398"></a>02398     andDirPermissions &amp;= ~(S_IRUSR | S_IWUSR | S_IXUSR);
<a name="l02399"></a>02399   }
<a name="l02400"></a>02400 
<a name="l02401"></a>02401   m = standardPermissions[d-&gt;groupPermCombo-&gt;currentItem()];
<a name="l02402"></a>02402   <span class="keywordflow">if</span> (m != (mode_t) -1) {
<a name="l02403"></a>02403     orFilePermissions |= m &amp; UniGroup;
<a name="l02404"></a>02404     <span class="keywordflow">if</span> ((m &amp; UniGroup) &amp;&amp;
<a name="l02405"></a>02405     ((d-&gt;pmode == PermissionsMixed) ||
<a name="l02406"></a>02406      ((d-&gt;pmode == PermissionsOnlyFiles) &amp;&amp; (d-&gt;extraCheckbox-&gt;state() == QButton::NoChange))))
<a name="l02407"></a>02407       andFilePermissions &amp;= ~(S_IRGRP | S_IWGRP);
<a name="l02408"></a>02408     <span class="keywordflow">else</span> {
<a name="l02409"></a>02409       andFilePermissions &amp;= ~(S_IRGRP | S_IWGRP | S_IXGRP);
<a name="l02410"></a>02410       <span class="keywordflow">if</span> ((m &amp; S_IRGRP) &amp;&amp; (d-&gt;extraCheckbox-&gt;state() == QButton::On))
<a name="l02411"></a>02411     orFilePermissions |= S_IXGRP;
<a name="l02412"></a>02412     }
<a name="l02413"></a>02413 
<a name="l02414"></a>02414     orDirPermissions |= m &amp; UniGroup;
<a name="l02415"></a>02415     <span class="keywordflow">if</span> (m &amp; S_IRGRP)
<a name="l02416"></a>02416     orDirPermissions |= S_IXGRP;
<a name="l02417"></a>02417     andDirPermissions &amp;= ~(S_IRGRP | S_IWGRP | S_IXGRP);
<a name="l02418"></a>02418   }
<a name="l02419"></a>02419 
<a name="l02420"></a>02420   m = standardPermissions[d-&gt;othersPermCombo-&gt;currentItem()];
<a name="l02421"></a>02421   <span class="keywordflow">if</span> (m != (mode_t) -1) {
<a name="l02422"></a>02422     orFilePermissions |= m &amp; UniOthers;
<a name="l02423"></a>02423     <span class="keywordflow">if</span> ((m &amp; UniOthers) &amp;&amp;
<a name="l02424"></a>02424     ((d-&gt;pmode == PermissionsMixed) ||
<a name="l02425"></a>02425      ((d-&gt;pmode == PermissionsOnlyFiles) &amp;&amp; (d-&gt;extraCheckbox-&gt;state() == QButton::NoChange))))
<a name="l02426"></a>02426       andFilePermissions &amp;= ~(S_IROTH | S_IWOTH);
<a name="l02427"></a>02427     <span class="keywordflow">else</span> {
<a name="l02428"></a>02428       andFilePermissions &amp;= ~(S_IROTH | S_IWOTH | S_IXOTH);
<a name="l02429"></a>02429       <span class="keywordflow">if</span> ((m &amp; S_IROTH) &amp;&amp; (d-&gt;extraCheckbox-&gt;state() == QButton::On))
<a name="l02430"></a>02430     orFilePermissions |= S_IXOTH;
<a name="l02431"></a>02431     }
<a name="l02432"></a>02432 
<a name="l02433"></a>02433     orDirPermissions |= m &amp; UniOthers;
<a name="l02434"></a>02434     <span class="keywordflow">if</span> (m &amp; S_IROTH)
<a name="l02435"></a>02435     orDirPermissions |= S_IXOTH;
<a name="l02436"></a>02436     andDirPermissions &amp;= ~(S_IROTH | S_IWOTH | S_IXOTH);
<a name="l02437"></a>02437   }
<a name="l02438"></a>02438 
<a name="l02439"></a>02439   <span class="keywordflow">if</span> (((d-&gt;pmode == PermissionsMixed) || (d-&gt;pmode == PermissionsOnlyDirs)) &amp;&amp;
<a name="l02440"></a>02440       (d-&gt;extraCheckbox-&gt;state() != QButton::NoChange)) {
<a name="l02441"></a>02441     andDirPermissions &amp;= ~S_ISVTX;
<a name="l02442"></a>02442     <span class="keywordflow">if</span> (d-&gt;extraCheckbox-&gt;state() == QButton::On)
<a name="l02443"></a>02443       orDirPermissions |= S_ISVTX;
<a name="l02444"></a>02444   }
<a name="l02445"></a>02445 }
<a name="l02446"></a>02446 
<a name="l02447"></a><a class="code" href="classKFilePermissionsPropsPlugin.html#fffed301f0ae41a164c3c3babac06338">02447</a> <span class="keywordtype">void</span> <a class="code" href="classKFilePermissionsPropsPlugin.html#fffed301f0ae41a164c3c3babac06338" title="Applies all changes to the file.">KFilePermissionsPropsPlugin::applyChanges</a>()
<a name="l02448"></a>02448 {
<a name="l02449"></a>02449   mode_t orFilePermissions;
<a name="l02450"></a>02450   mode_t orDirPermissions;
<a name="l02451"></a>02451   mode_t andFilePermissions;
<a name="l02452"></a>02452   mode_t andDirPermissions;
<a name="l02453"></a>02453 
<a name="l02454"></a>02454   <span class="keywordflow">if</span> (!d-&gt;canChangePermissions)
<a name="l02455"></a>02455     <span class="keywordflow">return</span>;
<a name="l02456"></a>02456 
<a name="l02457"></a>02457   <span class="keywordflow">if</span> (!d-&gt;isIrregular)
<a name="l02458"></a>02458     getPermissionMasks(andFilePermissions,
<a name="l02459"></a>02459                andDirPermissions,
<a name="l02460"></a>02460                orFilePermissions,
<a name="l02461"></a>02461                orDirPermissions);
<a name="l02462"></a>02462   <span class="keywordflow">else</span> {
<a name="l02463"></a>02463     orFilePermissions = permissions;
<a name="l02464"></a>02464     andFilePermissions = d-&gt;partialPermissions;
<a name="l02465"></a>02465     orDirPermissions = permissions;
<a name="l02466"></a>02466     andDirPermissions = d-&gt;partialPermissions;
<a name="l02467"></a>02467   }
<a name="l02468"></a>02468 
<a name="l02469"></a>02469   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> owner, group;
<a name="l02470"></a>02470   <span class="keywordflow">if</span> (usrEdit)
<a name="l02471"></a>02471     owner = usrEdit-&gt;text();
<a name="l02472"></a>02472   <span class="keywordflow">if</span> (grpEdit)
<a name="l02473"></a>02473     group = grpEdit-&gt;text();
<a name="l02474"></a>02474   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (grpCombo)
<a name="l02475"></a>02475     group = grpCombo-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcombobox.html#currentText">currentText</a>();
<a name="l02476"></a>02476 
<a name="l02477"></a>02477   <span class="keywordflow">if</span> (owner == strOwner)
<a name="l02478"></a>02478       owner = QString::null; <span class="comment">// no change</span>
<a name="l02479"></a>02479 
<a name="l02480"></a>02480   <span class="keywordflow">if</span> (group == strGroup)
<a name="l02481"></a>02481       group = QString::null;
<a name="l02482"></a>02482 
<a name="l02483"></a>02483   <span class="keywordtype">bool</span> recursive = d-&gt;cbRecursive &amp;&amp; d-&gt;cbRecursive-&gt;isChecked();
<a name="l02484"></a>02484   <span class="keywordtype">bool</span> permissionChange = <span class="keyword">false</span>;
<a name="l02485"></a>02485 
<a name="l02486"></a>02486   KFileItemList files, dirs;
<a name="l02487"></a>02487   KFileItemList items = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#616b7c9afe4c1c1235c2edb81b2e36a1">items</a>();
<a name="l02488"></a>02488   <span class="keywordflow">for</span> (KFileItemListIterator it(items); it.current(); ++it) {
<a name="l02489"></a>02489     <span class="keywordflow">if</span> ((*it)-&gt;isDir()) {
<a name="l02490"></a>02490       dirs.append(*it);
<a name="l02491"></a>02491       <span class="keywordflow">if</span> ((*it)-&gt;permissions() != (((*it)-&gt;permissions() &amp; andDirPermissions) | orDirPermissions))
<a name="l02492"></a>02492     permissionChange = <span class="keyword">true</span>;
<a name="l02493"></a>02493     }
<a name="l02494"></a>02494     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((*it)-&gt;isFile()) {
<a name="l02495"></a>02495       files.append(*it);
<a name="l02496"></a>02496       <span class="keywordflow">if</span> ((*it)-&gt;permissions() != (((*it)-&gt;permissions() &amp; andFilePermissions) | orFilePermissions))
<a name="l02497"></a>02497     permissionChange = <span class="keyword">true</span>;
<a name="l02498"></a>02498     }
<a name="l02499"></a>02499   }
<a name="l02500"></a>02500 
<a name="l02501"></a>02501   <span class="keyword">const</span> <span class="keywordtype">bool</span> ACLChange = ( d-&gt;extendedACL !=  <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#f04def59643b5afac5c57d374b83cdb7">item</a>()-&gt;ACL() );
<a name="l02502"></a>02502   <span class="keyword">const</span> <span class="keywordtype">bool</span> defaultACLChange = ( d-&gt;defaultACL != <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#f04def59643b5afac5c57d374b83cdb7">item</a>()-&gt;defaultACL() );
<a name="l02503"></a>02503 
<a name="l02504"></a>02504   <span class="keywordflow">if</span> ( owner.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isEmpty">isEmpty</a>() &amp;&amp; group.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isEmpty">isEmpty</a>() &amp;&amp; !recursive
<a name="l02505"></a>02505       &amp;&amp; !permissionChange &amp;&amp; !ACLChange &amp;&amp; !defaultACLChange )
<a name="l02506"></a>02506     <span class="keywordflow">return</span>;
<a name="l02507"></a>02507 
<a name="l02508"></a>02508   KIO::Job * job;
<a name="l02509"></a>02509   <span class="keywordflow">if</span> (files.count() &gt; 0) {
<a name="l02510"></a>02510     job = KIO::chmod( files, orFilePermissions, ~andFilePermissions,
<a name="l02511"></a>02511         owner, group, <span class="keyword">false</span> );
<a name="l02512"></a>02512     <span class="keywordflow">if</span> ( ACLChange &amp;&amp; d-&gt;fileSystemSupportsACLs )
<a name="l02513"></a>02513       job-&gt;addMetaData( <span class="stringliteral">"ACL_STRING"</span>, d-&gt;extendedACL.isValid()?d-&gt;extendedACL.asString():<span class="stringliteral">"ACL_DELETE"</span> );
<a name="l02514"></a>02514     <span class="keywordflow">if</span> ( defaultACLChange &amp;&amp; d-&gt;fileSystemSupportsACLs )
<a name="l02515"></a>02515       job-&gt;addMetaData( <span class="stringliteral">"DEFAULT_ACL_STRING"</span>, d-&gt;defaultACL.isValid()?d-&gt;defaultACL.asString():<span class="stringliteral">"ACL_DELETE"</span> );
<a name="l02516"></a>02516 
<a name="l02517"></a>02517     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( job, SIGNAL( result( KIO::Job * ) ),
<a name="l02518"></a>02518         SLOT( slotChmodResult( KIO::Job * ) ) );
<a name="l02519"></a>02519     <span class="comment">// Wait for job</span>
<a name="l02520"></a>02520     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwidget.html">QWidget</a> dummy(0,0,WType_Dialog|WShowModal);
<a name="l02521"></a>02521     qt_enter_modal(&amp;dummy);
<a name="l02522"></a>02522     qApp-&gt;enter_loop();
<a name="l02523"></a>02523     qt_leave_modal(&amp;dummy);
<a name="l02524"></a>02524   }
<a name="l02525"></a>02525   <span class="keywordflow">if</span> (dirs.count() &gt; 0) {
<a name="l02526"></a>02526     job = KIO::chmod( dirs, orDirPermissions, ~andDirPermissions,
<a name="l02527"></a>02527         owner, group, recursive );
<a name="l02528"></a>02528     <span class="keywordflow">if</span> ( ACLChange &amp;&amp; d-&gt;fileSystemSupportsACLs )
<a name="l02529"></a>02529       job-&gt;addMetaData( <span class="stringliteral">"ACL_STRING"</span>, d-&gt;extendedACL.isValid()?d-&gt;extendedACL.asString():<span class="stringliteral">"ACL_DELETE"</span> );
<a name="l02530"></a>02530     <span class="keywordflow">if</span> ( defaultACLChange &amp;&amp; d-&gt;fileSystemSupportsACLs )
<a name="l02531"></a>02531       job-&gt;addMetaData( <span class="stringliteral">"DEFAULT_ACL_STRING"</span>, d-&gt;defaultACL.isValid()?d-&gt;defaultACL.asString():<span class="stringliteral">"ACL_DELETE"</span> );
<a name="l02532"></a>02532 
<a name="l02533"></a>02533     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( job, SIGNAL( result( KIO::Job * ) ),
<a name="l02534"></a>02534         SLOT( slotChmodResult( KIO::Job * ) ) );
<a name="l02535"></a>02535     <span class="comment">// Wait for job</span>
<a name="l02536"></a>02536     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwidget.html">QWidget</a> dummy(0,0,WType_Dialog|WShowModal);
<a name="l02537"></a>02537     qt_enter_modal(&amp;dummy);
<a name="l02538"></a>02538     qApp-&gt;enter_loop();
<a name="l02539"></a>02539     qt_leave_modal(&amp;dummy);
<a name="l02540"></a>02540   }
<a name="l02541"></a>02541 }
<a name="l02542"></a>02542 
<a name="l02543"></a>02543 <span class="keywordtype">void</span> KFilePermissionsPropsPlugin::slotChmodResult( KIO::Job * job )
<a name="l02544"></a>02544 {
<a name="l02545"></a>02545   kdDebug(250) &lt;&lt; <span class="stringliteral">"KFilePermissionsPropsPlugin::slotChmodResult"</span> &lt;&lt; endl;
<a name="l02546"></a>02546   <span class="keywordflow">if</span> (job-&gt;error())
<a name="l02547"></a>02547     job-&gt;showErrorDialog( d-&gt;m_frame );
<a name="l02548"></a>02548   <span class="comment">// allow apply() to return</span>
<a name="l02549"></a>02549   qApp-&gt;exit_loop();
<a name="l02550"></a>02550 }
<a name="l02551"></a>02551 
<a name="l02552"></a>02552 
<a name="l02553"></a>02553 
<a name="l02554"></a>02554 
<a name="l02555"></a>02555 <span class="keyword">class </span>KURLPropsPlugin::KURLPropsPluginPrivate
<a name="l02556"></a>02556 {
<a name="l02557"></a>02557 <span class="keyword">public</span>:
<a name="l02558"></a>02558   KURLPropsPluginPrivate()
<a name="l02559"></a>02559   {
<a name="l02560"></a>02560   }
<a name="l02561"></a>02561   ~KURLPropsPluginPrivate()
<a name="l02562"></a>02562   {
<a name="l02563"></a>02563   }
<a name="l02564"></a>02564 
<a name="l02565"></a>02565   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qframe.html">QFrame</a> *m_frame;
<a name="l02566"></a>02566 };
<a name="l02567"></a>02567 
<a name="l02568"></a><a class="code" href="classKURLPropsPlugin.html#ff1a70ceb6074a60b16888eb95190ede">02568</a> <a class="code" href="classKURLPropsPlugin.html#ff1a70ceb6074a60b16888eb95190ede" title="Constructor.">KURLPropsPlugin::KURLPropsPlugin</a>( <a class="code" href="classKPropertiesDialog.html" title="The main properties dialog class.">KPropertiesDialog</a> *_props )
<a name="l02569"></a>02569   : <a class="code" href="classKPropsDlgPlugin.html" title="A Plugin in the Properties dialog This is an abstract class.">KPropsDlgPlugin</a>( _props )
<a name="l02570"></a>02570 {
<a name="l02571"></a>02571   d = <span class="keyword">new</span> KURLPropsPluginPrivate;
<a name="l02572"></a>02572   d-&gt;m_frame = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;addPage(i18n(<span class="stringliteral">"U&amp;RL"</span>));
<a name="l02573"></a>02573   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qvboxlayout.html">QVBoxLayout</a> *layout = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qvboxlayout.html">QVBoxLayout</a>(d-&gt;m_frame, 0, KDialog::spacingHint());
<a name="l02574"></a>02574 
<a name="l02575"></a>02575   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a> *l;
<a name="l02576"></a>02576   l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( d-&gt;m_frame, <span class="stringliteral">"Label_1"</span> );
<a name="l02577"></a>02577   l-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html#setText">setText</a>( i18n(<span class="stringliteral">"URL:"</span>) );
<a name="l02578"></a>02578   layout-&gt;addWidget(l);
<a name="l02579"></a>02579 
<a name="l02580"></a>02580   URLEdit = <span class="keyword">new</span> <a class="code" href="classKURLRequester.html" title="This class is a widget showing a lineedit and a button, which invokes a filedialog...">KURLRequester</a>( d-&gt;m_frame, <span class="stringliteral">"URL Requester"</span> );
<a name="l02581"></a>02581   layout-&gt;addWidget(URLEdit);
<a name="l02582"></a>02582 
<a name="l02583"></a>02583   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> path = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().path();
<a name="l02584"></a>02584 
<a name="l02585"></a>02585   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html">QFile</a> f( path );
<a name="l02586"></a>02586   <span class="keywordflow">if</span> ( !f.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html#open">open</a>( IO_ReadOnly ) )
<a name="l02587"></a>02587     <span class="keywordflow">return</span>;
<a name="l02588"></a>02588   f.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html#close">close</a>();
<a name="l02589"></a>02589 
<a name="l02590"></a>02590   KSimpleConfig config( path );
<a name="l02591"></a>02591   config.setDesktopGroup();
<a name="l02592"></a>02592   URLStr = config.readPathEntry( <span class="stringliteral">"URL"</span> );
<a name="l02593"></a>02593 
<a name="l02594"></a>02594   <span class="keywordflow">if</span> ( !URLStr.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isNull">isNull</a>() )
<a name="l02595"></a>02595     URLEdit-&gt;<a class="code" href="classKURLRequester.html#c8407e17b7c5198d7819ad2ce867204c" title="Sets the url in the lineedit to url.">setURL</a>( URLStr );
<a name="l02596"></a>02596 
<a name="l02597"></a>02597   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( URLEdit, SIGNAL( textChanged( <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> &amp; ) ),
<a name="l02598"></a>02598            <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l02599"></a>02599 
<a name="l02600"></a>02600   layout-&gt;addStretch (1);
<a name="l02601"></a>02601 }
<a name="l02602"></a>02602 
<a name="l02603"></a>02603 KURLPropsPlugin::~KURLPropsPlugin()
<a name="l02604"></a>02604 {
<a name="l02605"></a>02605   <span class="keyword">delete</span> d;
<a name="l02606"></a>02606 }
<a name="l02607"></a>02607 
<a name="l02608"></a>02608 <span class="comment">// QString KURLPropsPlugin::tabName () const</span>
<a name="l02609"></a>02609 <span class="comment">// {</span>
<a name="l02610"></a>02610 <span class="comment">//   return i18n ("U&amp;RL");</span>
<a name="l02611"></a>02611 <span class="comment">// }</span>
<a name="l02612"></a>02612 
<a name="l02613"></a>02613 <span class="keywordtype">bool</span> KURLPropsPlugin::supports( KFileItemList _items )
<a name="l02614"></a>02614 {
<a name="l02615"></a>02615   <span class="keywordflow">if</span> ( _items.count() != 1 )
<a name="l02616"></a>02616     <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l02617"></a>02617   KFileItem * item = _items.first();
<a name="l02618"></a>02618   <span class="comment">// check if desktop file</span>
<a name="l02619"></a>02619   <span class="keywordflow">if</span> ( !<a class="code" href="classKPropsDlgPlugin.html#d29f1d332d93035d3ae2278ba25b2803" title="Convenience method for most supports methods.">KPropsDlgPlugin::isDesktopFile</a>( item ) )
<a name="l02620"></a>02620     <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l02621"></a>02621 
<a name="l02622"></a>02622   <span class="comment">// open file and check type</span>
<a name="l02623"></a>02623   KDesktopFile config( item-&gt;url().path(), <span class="keyword">true</span> <span class="comment">/* readonly */</span> );
<a name="l02624"></a>02624   <span class="keywordflow">return</span> config.hasLinkType();
<a name="l02625"></a>02625 }
<a name="l02626"></a>02626 
<a name="l02627"></a><a class="code" href="classKURLPropsPlugin.html#fccb80743447259b495f2c42ef96938f">02627</a> <span class="keywordtype">void</span> <a class="code" href="classKURLPropsPlugin.html#fccb80743447259b495f2c42ef96938f" title="Applies all changes to the file.">KURLPropsPlugin::applyChanges</a>()
<a name="l02628"></a>02628 {
<a name="l02629"></a>02629   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> path = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().path();
<a name="l02630"></a>02630 
<a name="l02631"></a>02631   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html">QFile</a> f( path );
<a name="l02632"></a>02632   <span class="keywordflow">if</span> ( !f.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html#open">open</a>( IO_ReadWrite ) ) {
<a name="l02633"></a>02633     KMessageBox::sorry( 0, i18n(<span class="stringliteral">"&lt;qt&gt;Could not save properties. You do not have "</span>
<a name="l02634"></a>02634                 <span class="stringliteral">"sufficient access to write to &lt;b&gt;%1&lt;/b&gt;.&lt;/qt&gt;"</span>).arg(path));
<a name="l02635"></a>02635     <span class="keywordflow">return</span>;
<a name="l02636"></a>02636   }
<a name="l02637"></a>02637   f.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html#close">close</a>();
<a name="l02638"></a>02638 
<a name="l02639"></a>02639   KSimpleConfig config( path );
<a name="l02640"></a>02640   config.setDesktopGroup();
<a name="l02641"></a>02641   config.writeEntry( <span class="stringliteral">"Type"</span>, <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#fromLatin1">QString::fromLatin1</a>(<span class="stringliteral">"Link"</span>));
<a name="l02642"></a>02642   config.writePathEntry( <span class="stringliteral">"URL"</span>, URLEdit-&gt;<a class="code" href="classKURLRequester.html#58d7a8f64a5b5fe336186992de2c807b">url</a>() );
<a name="l02643"></a>02643   <span class="comment">// Users can't create a Link .desktop file with a Name field,</span>
<a name="l02644"></a>02644   <span class="comment">// but distributions can. Update the Name field in that case.</span>
<a name="l02645"></a>02645   <span class="keywordflow">if</span> ( config.hasKey(<span class="stringliteral">"Name"</span>) )
<a name="l02646"></a>02646   {
<a name="l02647"></a>02647     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> nameStr = nameFromFileName(<a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().fileName());
<a name="l02648"></a>02648     config.writeEntry( <span class="stringliteral">"Name"</span>, nameStr );
<a name="l02649"></a>02649     config.writeEntry( <span class="stringliteral">"Name"</span>, nameStr, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">true</span> );
<a name="l02650"></a>02650 
<a name="l02651"></a>02651   }
<a name="l02652"></a>02652 }
<a name="l02653"></a>02653 
<a name="l02654"></a>02654 
<a name="l02655"></a>02655 <span class="comment">/* ----------------------------------------------------</span>
<a name="l02656"></a>02656 <span class="comment"> *</span>
<a name="l02657"></a>02657 <span class="comment"> * KBindingPropsPlugin</span>
<a name="l02658"></a>02658 <span class="comment"> *</span>
<a name="l02659"></a>02659 <span class="comment"> * -------------------------------------------------- */</span>
<a name="l02660"></a>02660 
<a name="l02661"></a>02661 <span class="keyword">class </span>KBindingPropsPlugin::KBindingPropsPluginPrivate
<a name="l02662"></a>02662 {
<a name="l02663"></a>02663 <span class="keyword">public</span>:
<a name="l02664"></a>02664   KBindingPropsPluginPrivate()
<a name="l02665"></a>02665   {
<a name="l02666"></a>02666   }
<a name="l02667"></a>02667   ~KBindingPropsPluginPrivate()
<a name="l02668"></a>02668   {
<a name="l02669"></a>02669   }
<a name="l02670"></a>02670 
<a name="l02671"></a>02671   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qframe.html">QFrame</a> *m_frame;
<a name="l02672"></a>02672 };
<a name="l02673"></a>02673 
<a name="l02674"></a><a class="code" href="classKBindingPropsPlugin.html#81a9f062afccad37f7a5d247725973d1">02674</a> <a class="code" href="classKBindingPropsPlugin.html#81a9f062afccad37f7a5d247725973d1" title="Constructor.">KBindingPropsPlugin::KBindingPropsPlugin</a>( <a class="code" href="classKPropertiesDialog.html" title="The main properties dialog class.">KPropertiesDialog</a> *_props ) : <a class="code" href="classKPropsDlgPlugin.html" title="A Plugin in the Properties dialog This is an abstract class.">KPropsDlgPlugin</a>( _props )
<a name="l02675"></a>02675 {
<a name="l02676"></a>02676   d = <span class="keyword">new</span> KBindingPropsPluginPrivate;
<a name="l02677"></a>02677   d-&gt;m_frame = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;addPage(i18n(<span class="stringliteral">"A&amp;ssociation"</span>));
<a name="l02678"></a>02678   patternEdit = <span class="keyword">new</span> KLineEdit( d-&gt;m_frame, <span class="stringliteral">"LineEdit_1"</span> );
<a name="l02679"></a>02679   commentEdit = <span class="keyword">new</span> KLineEdit( d-&gt;m_frame, <span class="stringliteral">"LineEdit_2"</span> );
<a name="l02680"></a>02680   mimeEdit = <span class="keyword">new</span> KLineEdit( d-&gt;m_frame, <span class="stringliteral">"LineEdit_3"</span> );
<a name="l02681"></a>02681 
<a name="l02682"></a>02682   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qboxlayout.html">QBoxLayout</a> *mainlayout = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qvboxlayout.html">QVBoxLayout</a>(d-&gt;m_frame, 0, KDialog::spacingHint());
<a name="l02683"></a>02683   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>* tmpQLabel;
<a name="l02684"></a>02684 
<a name="l02685"></a>02685   tmpQLabel = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( d-&gt;m_frame, <span class="stringliteral">"Label_1"</span> );
<a name="l02686"></a>02686   tmpQLabel-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html#setText">setText</a>(  i18n(<span class="stringliteral">"Pattern ( example: *.html;*.htm )"</span>) );
<a name="l02687"></a>02687   tmpQLabel-&gt;setMinimumSize(tmpQLabel-&gt;sizeHint());
<a name="l02688"></a>02688   mainlayout-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qboxlayout.html#addWidget">addWidget</a>(tmpQLabel, 1);
<a name="l02689"></a>02689 
<a name="l02690"></a>02690   <span class="comment">//patternEdit-&gt;setGeometry( 10, 40, 210, 30 );</span>
<a name="l02691"></a>02691   <span class="comment">//patternEdit-&gt;setText( "" );</span>
<a name="l02692"></a>02692   patternEdit-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlineedit.html#setMaxLength">setMaxLength</a>( 512 );
<a name="l02693"></a>02693   patternEdit-&gt;setMinimumSize( patternEdit-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlineedit.html#sizeHint">sizeHint</a>() );
<a name="l02694"></a>02694   patternEdit-&gt;setFixedHeight( fontHeight );
<a name="l02695"></a>02695   mainlayout-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qboxlayout.html#addWidget">addWidget</a>(patternEdit, 1);
<a name="l02696"></a>02696 
<a name="l02697"></a>02697   tmpQLabel = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( d-&gt;m_frame, <span class="stringliteral">"Label_2"</span> );
<a name="l02698"></a>02698   tmpQLabel-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html#setText">setText</a>(  i18n(<span class="stringliteral">"Mime Type"</span>) );
<a name="l02699"></a>02699   tmpQLabel-&gt;setMinimumSize(tmpQLabel-&gt;sizeHint());
<a name="l02700"></a>02700   mainlayout-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qboxlayout.html#addWidget">addWidget</a>(tmpQLabel, 1);
<a name="l02701"></a>02701 
<a name="l02702"></a>02702   <span class="comment">//mimeEdit-&gt;setGeometry( 10, 160, 210, 30 );</span>
<a name="l02703"></a>02703   mimeEdit-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlineedit.html#setMaxLength">setMaxLength</a>( 256 );
<a name="l02704"></a>02704   mimeEdit-&gt;setMinimumSize( mimeEdit-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlineedit.html#sizeHint">sizeHint</a>() );
<a name="l02705"></a>02705   mimeEdit-&gt;setFixedHeight( fontHeight );
<a name="l02706"></a>02706   mainlayout-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qboxlayout.html#addWidget">addWidget</a>(mimeEdit, 1);
<a name="l02707"></a>02707 
<a name="l02708"></a>02708   tmpQLabel = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( d-&gt;m_frame, <span class="stringliteral">"Label_3"</span> );
<a name="l02709"></a>02709   tmpQLabel-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html#setText">setText</a>(  i18n(<span class="stringliteral">"Comment"</span>) );
<a name="l02710"></a>02710   tmpQLabel-&gt;setMinimumSize(tmpQLabel-&gt;sizeHint());
<a name="l02711"></a>02711   mainlayout-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qboxlayout.html#addWidget">addWidget</a>(tmpQLabel, 1);
<a name="l02712"></a>02712 
<a name="l02713"></a>02713   <span class="comment">//commentEdit-&gt;setGeometry( 10, 100, 210, 30 );</span>
<a name="l02714"></a>02714   commentEdit-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlineedit.html#setMaxLength">setMaxLength</a>( 256 );
<a name="l02715"></a>02715   commentEdit-&gt;setMinimumSize( commentEdit-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlineedit.html#sizeHint">sizeHint</a>() );
<a name="l02716"></a>02716   commentEdit-&gt;setFixedHeight( fontHeight );
<a name="l02717"></a>02717   mainlayout-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qboxlayout.html#addWidget">addWidget</a>(commentEdit, 1);
<a name="l02718"></a>02718 
<a name="l02719"></a>02719   cbAutoEmbed = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcheckbox.html">QCheckBox</a>( i18n(<span class="stringliteral">"Left click previews"</span>), d-&gt;m_frame, <span class="stringliteral">"cbAutoEmbed"</span> );
<a name="l02720"></a>02720   mainlayout-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qboxlayout.html#addWidget">addWidget</a>(cbAutoEmbed, 1);
<a name="l02721"></a>02721 
<a name="l02722"></a>02722   mainlayout-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qboxlayout.html#addStretch">addStretch</a> (10);
<a name="l02723"></a>02723   mainlayout-&gt;activate();
<a name="l02724"></a>02724 
<a name="l02725"></a>02725   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html">QFile</a> f( _props-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().path() );
<a name="l02726"></a>02726   <span class="keywordflow">if</span> ( !f.open( IO_ReadOnly ) )
<a name="l02727"></a>02727     <span class="keywordflow">return</span>;
<a name="l02728"></a>02728   f.close();
<a name="l02729"></a>02729 
<a name="l02730"></a>02730   KSimpleConfig config( _props-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().path() );
<a name="l02731"></a>02731   config.setDesktopGroup();
<a name="l02732"></a>02732   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> patternStr = config.readEntry( <span class="stringliteral">"Patterns"</span> );
<a name="l02733"></a>02733   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> iconStr = config.readEntry( <span class="stringliteral">"Icon"</span> );
<a name="l02734"></a>02734   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> commentStr = config.readEntry( <span class="stringliteral">"Comment"</span> );
<a name="l02735"></a>02735   m_sMimeStr = config.readEntry( <span class="stringliteral">"MimeType"</span> );
<a name="l02736"></a>02736 
<a name="l02737"></a>02737   <span class="keywordflow">if</span> ( !patternStr.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isEmpty">isEmpty</a>() )
<a name="l02738"></a>02738     patternEdit-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlineedit.html#setText">setText</a>( patternStr );
<a name="l02739"></a>02739   <span class="keywordflow">if</span> ( !commentStr.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isEmpty">isEmpty</a>() )
<a name="l02740"></a>02740     commentEdit-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlineedit.html#setText">setText</a>( commentStr );
<a name="l02741"></a>02741   <span class="keywordflow">if</span> ( !m_sMimeStr.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isEmpty">isEmpty</a>() )
<a name="l02742"></a>02742     mimeEdit-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlineedit.html#setText">setText</a>( m_sMimeStr );
<a name="l02743"></a>02743   cbAutoEmbed-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcheckbox.html#setTristate">setTristate</a>();
<a name="l02744"></a>02744   <span class="keywordflow">if</span> ( config.hasKey( <span class="stringliteral">"X-KDE-AutoEmbed"</span> ) )
<a name="l02745"></a>02745       cbAutoEmbed-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcheckbox.html#setChecked">setChecked</a>( config.readBoolEntry( <span class="stringliteral">"X-KDE-AutoEmbed"</span> ) );
<a name="l02746"></a>02746   <span class="keywordflow">else</span>
<a name="l02747"></a>02747       cbAutoEmbed-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcheckbox.html#setNoChange">setNoChange</a>();
<a name="l02748"></a>02748 
<a name="l02749"></a>02749   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( patternEdit, SIGNAL( textChanged( <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> &amp; ) ),
<a name="l02750"></a>02750            <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l02751"></a>02751   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( commentEdit, SIGNAL( textChanged( <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> &amp; ) ),
<a name="l02752"></a>02752            <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l02753"></a>02753   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( mimeEdit, SIGNAL( textChanged( <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> &amp; ) ),
<a name="l02754"></a>02754            <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l02755"></a>02755   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( cbAutoEmbed, SIGNAL( toggled( <span class="keywordtype">bool</span> ) ),
<a name="l02756"></a>02756            <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l02757"></a>02757 }
<a name="l02758"></a>02758 
<a name="l02759"></a>02759 KBindingPropsPlugin::~KBindingPropsPlugin()
<a name="l02760"></a>02760 {
<a name="l02761"></a>02761   <span class="keyword">delete</span> d;
<a name="l02762"></a>02762 }
<a name="l02763"></a>02763 
<a name="l02764"></a>02764 <span class="comment">// QString KBindingPropsPlugin::tabName () const</span>
<a name="l02765"></a>02765 <span class="comment">// {</span>
<a name="l02766"></a>02766 <span class="comment">//   return i18n ("A&amp;ssociation");</span>
<a name="l02767"></a>02767 <span class="comment">// }</span>
<a name="l02768"></a>02768 
<a name="l02769"></a>02769 <span class="keywordtype">bool</span> KBindingPropsPlugin::supports( KFileItemList _items )
<a name="l02770"></a>02770 {
<a name="l02771"></a>02771   <span class="keywordflow">if</span> ( _items.count() != 1 )
<a name="l02772"></a>02772     <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l02773"></a>02773   KFileItem * item = _items.first();
<a name="l02774"></a>02774   <span class="comment">// check if desktop file</span>
<a name="l02775"></a>02775   <span class="keywordflow">if</span> ( !<a class="code" href="classKPropsDlgPlugin.html#d29f1d332d93035d3ae2278ba25b2803" title="Convenience method for most supports methods.">KPropsDlgPlugin::isDesktopFile</a>( item ) )
<a name="l02776"></a>02776     <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l02777"></a>02777 
<a name="l02778"></a>02778   <span class="comment">// open file and check type</span>
<a name="l02779"></a>02779   KDesktopFile config( item-&gt;url().path(), <span class="keyword">true</span> <span class="comment">/* readonly */</span> );
<a name="l02780"></a>02780   <span class="keywordflow">return</span> config.hasMimeTypeType();
<a name="l02781"></a>02781 }
<a name="l02782"></a>02782 
<a name="l02783"></a><a class="code" href="classKBindingPropsPlugin.html#27a1a5d042aaac70343a3abcd4068143">02783</a> <span class="keywordtype">void</span> <a class="code" href="classKBindingPropsPlugin.html#27a1a5d042aaac70343a3abcd4068143" title="Applies all changes to the file.">KBindingPropsPlugin::applyChanges</a>()
<a name="l02784"></a>02784 {
<a name="l02785"></a>02785   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> path = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().path();
<a name="l02786"></a>02786   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html">QFile</a> f( path );
<a name="l02787"></a>02787 
<a name="l02788"></a>02788   <span class="keywordflow">if</span> ( !f.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html#open">open</a>( IO_ReadWrite ) )
<a name="l02789"></a>02789   {
<a name="l02790"></a>02790     KMessageBox::sorry( 0, i18n(<span class="stringliteral">"&lt;qt&gt;Could not save properties. You do not have "</span>
<a name="l02791"></a>02791                 <span class="stringliteral">"sufficient access to write to &lt;b&gt;%1&lt;/b&gt;.&lt;/qt&gt;"</span>).arg(path));
<a name="l02792"></a>02792     <span class="keywordflow">return</span>;
<a name="l02793"></a>02793   }
<a name="l02794"></a>02794   f.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html#close">close</a>();
<a name="l02795"></a>02795 
<a name="l02796"></a>02796   KSimpleConfig config( path );
<a name="l02797"></a>02797   config.setDesktopGroup();
<a name="l02798"></a>02798   config.writeEntry( <span class="stringliteral">"Type"</span>, <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#fromLatin1">QString::fromLatin1</a>(<span class="stringliteral">"MimeType"</span>) );
<a name="l02799"></a>02799 
<a name="l02800"></a>02800   config.writeEntry( <span class="stringliteral">"Patterns"</span>,  patternEdit-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlineedit.html#text">text</a>() );
<a name="l02801"></a>02801   config.writeEntry( <span class="stringliteral">"Comment"</span>, commentEdit-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlineedit.html#text">text</a>() );
<a name="l02802"></a>02802   config.writeEntry( <span class="stringliteral">"Comment"</span>,
<a name="l02803"></a>02803              commentEdit-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlineedit.html#text">text</a>(), <span class="keyword">true</span>, <span class="keyword">false</span>, true ); <span class="comment">// for compat</span>
<a name="l02804"></a>02804   config.writeEntry( <span class="stringliteral">"MimeType"</span>, mimeEdit-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlineedit.html#text">text</a>() );
<a name="l02805"></a>02805   <span class="keywordflow">if</span> ( cbAutoEmbed-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcheckbox.html#state">state</a>() == QButton::NoChange )
<a name="l02806"></a>02806       config.deleteEntry( <span class="stringliteral">"X-KDE-AutoEmbed"</span>, <span class="keyword">false</span> );
<a name="l02807"></a>02807   <span class="keywordflow">else</span>
<a name="l02808"></a>02808       config.writeEntry( <span class="stringliteral">"X-KDE-AutoEmbed"</span>, cbAutoEmbed-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcheckbox.html#isChecked">isChecked</a>() );
<a name="l02809"></a>02809   config.sync();
<a name="l02810"></a>02810 }
<a name="l02811"></a>02811 
<a name="l02812"></a>02812 <span class="comment">/* ----------------------------------------------------</span>
<a name="l02813"></a>02813 <span class="comment"> *</span>
<a name="l02814"></a>02814 <span class="comment"> * KDevicePropsPlugin</span>
<a name="l02815"></a>02815 <span class="comment"> *</span>
<a name="l02816"></a>02816 <span class="comment"> * -------------------------------------------------- */</span>
<a name="l02817"></a>02817 
<a name="l02818"></a>02818 <span class="keyword">class </span>KDevicePropsPlugin::KDevicePropsPluginPrivate
<a name="l02819"></a>02819 {
<a name="l02820"></a>02820 <span class="keyword">public</span>:
<a name="l02821"></a>02821   KDevicePropsPluginPrivate()
<a name="l02822"></a>02822   {
<a name="l02823"></a>02823   }
<a name="l02824"></a>02824   ~KDevicePropsPluginPrivate()
<a name="l02825"></a>02825   {
<a name="l02826"></a>02826   }
<a name="l02827"></a>02827 
<a name="l02828"></a>02828   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qframe.html">QFrame</a> *m_frame;
<a name="l02829"></a>02829   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstringlist.html">QStringList</a> mountpointlist;
<a name="l02830"></a>02830   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a> *m_freeSpaceText;
<a name="l02831"></a>02831   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a> *m_freeSpaceLabel;
<a name="l02832"></a>02832   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qprogressbar.html">QProgressBar</a> *m_freeSpaceBar;
<a name="l02833"></a>02833 };
<a name="l02834"></a>02834 
<a name="l02835"></a>02835 KDevicePropsPlugin::KDevicePropsPlugin( <a class="code" href="classKPropertiesDialog.html" title="The main properties dialog class.">KPropertiesDialog</a> *_props ) : <a class="code" href="classKPropsDlgPlugin.html" title="A Plugin in the Properties dialog This is an abstract class.">KPropsDlgPlugin</a>( _props )
<a name="l02836"></a>02836 {
<a name="l02837"></a>02837   d = <span class="keyword">new</span> KDevicePropsPluginPrivate;
<a name="l02838"></a>02838   d-&gt;m_frame = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;addPage(i18n(<span class="stringliteral">"De&amp;vice"</span>));
<a name="l02839"></a>02839 
<a name="l02840"></a>02840   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstringlist.html">QStringList</a> devices;
<a name="l02841"></a>02841   KMountPoint::List mountPoints = KMountPoint::possibleMountPoints();
<a name="l02842"></a>02842 
<a name="l02843"></a>02843   <span class="keywordflow">for</span>(KMountPoint::List::ConstIterator it = mountPoints.begin();
<a name="l02844"></a>02844       it != mountPoints.end(); ++it)
<a name="l02845"></a>02845   {
<a name="l02846"></a>02846      KMountPoint *mp = *it;
<a name="l02847"></a>02847      <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> mountPoint = mp-&gt;mountPoint();
<a name="l02848"></a>02848      <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> device = mp-&gt;mountedFrom();
<a name="l02849"></a>02849      kdDebug()&lt;&lt;<span class="stringliteral">"mountPoint :"</span>&lt;&lt;mountPoint&lt;&lt;<span class="stringliteral">" device :"</span>&lt;&lt;device&lt;&lt;<span class="stringliteral">" mp-&gt;mountType() :"</span>&lt;&lt;mp-&gt;mountType()&lt;&lt;endl;
<a name="l02850"></a>02850 
<a name="l02851"></a>02851      <span class="keywordflow">if</span> ((mountPoint != <span class="stringliteral">"-"</span>) &amp;&amp; (mountPoint != <span class="stringliteral">"none"</span>) &amp;&amp; !mountPoint.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isEmpty">isEmpty</a>()
<a name="l02852"></a>02852           &amp;&amp; device != <span class="stringliteral">"none"</span>)
<a name="l02853"></a>02853      {
<a name="l02854"></a>02854         devices.append( device + <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#fromLatin1">QString::fromLatin1</a>(<span class="stringliteral">" ("</span>)
<a name="l02855"></a>02855                         + mountPoint + <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#fromLatin1">QString::fromLatin1</a>(<span class="stringliteral">")"</span>) );
<a name="l02856"></a>02856         m_devicelist.append(device);
<a name="l02857"></a>02857         d-&gt;mountpointlist.append(mountPoint);
<a name="l02858"></a>02858      }
<a name="l02859"></a>02859   }
<a name="l02860"></a>02860 
<a name="l02861"></a>02861   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html">QGridLayout</a> *layout = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html">QGridLayout</a>( d-&gt;m_frame, 0, 2, 0,
<a name="l02862"></a>02862                                         KDialog::spacingHint());
<a name="l02863"></a>02863   layout-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#setColStretch">setColStretch</a>(1, 1);
<a name="l02864"></a>02864 
<a name="l02865"></a>02865   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>* label;
<a name="l02866"></a>02866   label = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( d-&gt;m_frame );
<a name="l02867"></a>02867   label-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html#setText">setText</a>( devices.count() == 0 ?
<a name="l02868"></a>02868                       i18n(<span class="stringliteral">"Device (/dev/fd0):"</span>) : <span class="comment">// old style</span>
<a name="l02869"></a>02869                       i18n(<span class="stringliteral">"Device:"</span>) ); <span class="comment">// new style (combobox)</span>
<a name="l02870"></a>02870   layout-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(label, 0, 0);
<a name="l02871"></a>02871 
<a name="l02872"></a>02872   device = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcombobox.html">QComboBox</a>( <span class="keyword">true</span>, d-&gt;m_frame, <span class="stringliteral">"ComboBox_device"</span> );
<a name="l02873"></a>02873   device-&gt;insertStringList( devices );
<a name="l02874"></a>02874   layout-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(device, 0, 1);
<a name="l02875"></a>02875   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( device, SIGNAL( activated( <span class="keywordtype">int</span> ) ),
<a name="l02876"></a>02876            <span class="keyword">this</span>, SLOT( slotActivated( <span class="keywordtype">int</span> ) ) );
<a name="l02877"></a>02877 
<a name="l02878"></a>02878   readonly = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcheckbox.html">QCheckBox</a>( d-&gt;m_frame, <span class="stringliteral">"CheckBox_readonly"</span> );
<a name="l02879"></a>02879   readonly-&gt;setText(  i18n(<span class="stringliteral">"Read only"</span>) );
<a name="l02880"></a>02880   layout-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(readonly, 1, 1);
<a name="l02881"></a>02881 
<a name="l02882"></a>02882   label = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( d-&gt;m_frame );
<a name="l02883"></a>02883   label-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html#setText">setText</a>( i18n(<span class="stringliteral">"File system:"</span>) );
<a name="l02884"></a>02884   layout-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(label, 2, 0);
<a name="l02885"></a>02885 
<a name="l02886"></a>02886   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a> *fileSystem = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( d-&gt;m_frame );
<a name="l02887"></a>02887   layout-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(fileSystem, 2, 1);
<a name="l02888"></a>02888 
<a name="l02889"></a>02889   label = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( d-&gt;m_frame );
<a name="l02890"></a>02890   label-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html#setText">setText</a>( devices.count()==0 ?
<a name="l02891"></a>02891                       i18n(<span class="stringliteral">"Mount point (/mnt/floppy):"</span>) : <span class="comment">// old style</span>
<a name="l02892"></a>02892                       i18n(<span class="stringliteral">"Mount point:"</span>)); <span class="comment">// new style (combobox)</span>
<a name="l02893"></a>02893   layout-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(label, 3, 0);
<a name="l02894"></a>02894 
<a name="l02895"></a>02895   mountpoint = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( d-&gt;m_frame, <span class="stringliteral">"LineEdit_mountpoint"</span> );
<a name="l02896"></a>02896 
<a name="l02897"></a>02897   layout-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(mountpoint, 3, 1);
<a name="l02898"></a>02898 
<a name="l02899"></a>02899   <span class="comment">// show disk free</span>
<a name="l02900"></a>02900   d-&gt;m_freeSpaceText = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>(i18n(<span class="stringliteral">"Free disk space:"</span>), d-&gt;m_frame );
<a name="l02901"></a>02901   layout-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(d-&gt;m_freeSpaceText, 4, 0);
<a name="l02902"></a>02902 
<a name="l02903"></a>02903   d-&gt;m_freeSpaceLabel = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( d-&gt;m_frame );
<a name="l02904"></a>02904   layout-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>( d-&gt;m_freeSpaceLabel, 4, 1 );
<a name="l02905"></a>02905 
<a name="l02906"></a>02906   d-&gt;m_freeSpaceBar = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qprogressbar.html">QProgressBar</a>( d-&gt;m_frame, <span class="stringliteral">"freeSpaceBar"</span> );
<a name="l02907"></a>02907   layout-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addMultiCellWidget">addMultiCellWidget</a>(d-&gt;m_freeSpaceBar, 5, 5, 0, 1);
<a name="l02908"></a>02908 
<a name="l02909"></a>02909   <span class="comment">// we show it in the slot when we know the values</span>
<a name="l02910"></a>02910   d-&gt;m_freeSpaceText-&gt;hide();
<a name="l02911"></a>02911   d-&gt;m_freeSpaceLabel-&gt;hide();
<a name="l02912"></a>02912   d-&gt;m_freeSpaceBar-&gt;hide();
<a name="l02913"></a>02913 
<a name="l02914"></a>02914   KSeparator* sep = <span class="keyword">new</span> KSeparator( KSeparator::HLine, d-&gt;m_frame);
<a name="l02915"></a>02915   layout-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addMultiCellWidget">addMultiCellWidget</a>(sep, 6, 6, 0, 1);
<a name="l02916"></a>02916 
<a name="l02917"></a>02917   unmounted = <span class="keyword">new</span> <a class="code" href="classKIconButton.html" title="A pushbutton for choosing an icon.">KIconButton</a>( d-&gt;m_frame );
<a name="l02918"></a>02918   <span class="keywordtype">int</span> bsize = 66 + 2 * unmounted-&gt;style().pixelMetric(QStyle::PM_ButtonMargin);
<a name="l02919"></a>02919   unmounted-&gt;setFixedSize(bsize, bsize);
<a name="l02920"></a>02920   unmounted-&gt;setIconType(KIcon::Desktop, KIcon::Device);
<a name="l02921"></a>02921   layout-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(unmounted, 7, 0);
<a name="l02922"></a>02922 
<a name="l02923"></a>02923   label = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( i18n(<span class="stringliteral">"Unmounted Icon"</span>),  d-&gt;m_frame );
<a name="l02924"></a>02924   layout-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(label, 7, 1);
<a name="l02925"></a>02925 
<a name="l02926"></a>02926   layout-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#setRowStretch">setRowStretch</a>(8, 1);
<a name="l02927"></a>02927 
<a name="l02928"></a>02928   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> path( _props-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().path() );
<a name="l02929"></a>02929 
<a name="l02930"></a>02930   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html">QFile</a> f( path );
<a name="l02931"></a>02931   <span class="keywordflow">if</span> ( !f.open( IO_ReadOnly ) )
<a name="l02932"></a>02932     <span class="keywordflow">return</span>;
<a name="l02933"></a>02933   f.close();
<a name="l02934"></a>02934 
<a name="l02935"></a>02935   KSimpleConfig config( path );
<a name="l02936"></a>02936   config.setDesktopGroup();
<a name="l02937"></a>02937   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> deviceStr = config.readEntry( <span class="stringliteral">"Dev"</span> );
<a name="l02938"></a>02938   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> mountPointStr = config.readEntry( <span class="stringliteral">"MountPoint"</span> );
<a name="l02939"></a>02939   <span class="keywordtype">bool</span> ro = config.readBoolEntry( <span class="stringliteral">"ReadOnly"</span>, <span class="keyword">false</span> );
<a name="l02940"></a>02940   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> unmountedStr = config.readEntry( <span class="stringliteral">"UnmountIcon"</span> );
<a name="l02941"></a>02941 
<a name="l02942"></a>02942   fileSystem-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html#setText">setText</a>( i18n(config.readEntry(<span class="stringliteral">"FSType"</span>).local8Bit()) );
<a name="l02943"></a>02943 
<a name="l02944"></a>02944   device-&gt;setEditText( deviceStr );
<a name="l02945"></a>02945   <span class="keywordflow">if</span> ( !deviceStr.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isEmpty">isEmpty</a>() ) {
<a name="l02946"></a>02946     <span class="comment">// Set default options for this device (first matching entry)</span>
<a name="l02947"></a>02947     <span class="keywordtype">int</span> index = m_devicelist.findIndex(deviceStr);
<a name="l02948"></a>02948     <span class="keywordflow">if</span> (index != -1)
<a name="l02949"></a>02949     {
<a name="l02950"></a>02950       <span class="comment">//kdDebug(250) &lt;&lt; "found it " &lt;&lt; index &lt;&lt; endl;</span>
<a name="l02951"></a>02951       slotActivated( index );
<a name="l02952"></a>02952     }
<a name="l02953"></a>02953   }
<a name="l02954"></a>02954 
<a name="l02955"></a>02955   <span class="keywordflow">if</span> ( !mountPointStr.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isEmpty">isEmpty</a>() )
<a name="l02956"></a>02956   {
<a name="l02957"></a>02957     mountpoint-&gt;setText( mountPointStr );
<a name="l02958"></a>02958     updateInfo();
<a name="l02959"></a>02959   }
<a name="l02960"></a>02960 
<a name="l02961"></a>02961   readonly-&gt;setChecked( ro );
<a name="l02962"></a>02962 
<a name="l02963"></a>02963   <span class="keywordflow">if</span> ( unmountedStr.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isEmpty">isEmpty</a>() )
<a name="l02964"></a>02964     unmountedStr = KMimeType::defaultMimeTypePtr()-&gt;KServiceType::icon(); <span class="comment">// default icon</span>
<a name="l02965"></a>02965 
<a name="l02966"></a>02966   unmounted-&gt;setIcon( unmountedStr );
<a name="l02967"></a>02967 
<a name="l02968"></a>02968   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( device, SIGNAL( activated( <span class="keywordtype">int</span> ) ),
<a name="l02969"></a>02969            <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l02970"></a>02970   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( device, SIGNAL( textChanged( <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> &amp; ) ),
<a name="l02971"></a>02971            <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l02972"></a>02972   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( readonly, SIGNAL( toggled( <span class="keywordtype">bool</span> ) ),
<a name="l02973"></a>02973            <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l02974"></a>02974   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( unmounted, SIGNAL( iconChanged( <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> ) ),
<a name="l02975"></a>02975            <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l02976"></a>02976 
<a name="l02977"></a>02977   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( device, SIGNAL( textChanged( <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> &amp; ) ),
<a name="l02978"></a>02978            <span class="keyword">this</span>, SLOT( slotDeviceChanged() ) );
<a name="l02979"></a>02979 }
<a name="l02980"></a>02980 
<a name="l02981"></a>02981 KDevicePropsPlugin::~KDevicePropsPlugin()
<a name="l02982"></a>02982 {
<a name="l02983"></a>02983   <span class="keyword">delete</span> d;
<a name="l02984"></a>02984 }
<a name="l02985"></a>02985 
<a name="l02986"></a>02986 <span class="comment">// QString KDevicePropsPlugin::tabName () const</span>
<a name="l02987"></a>02987 <span class="comment">// {</span>
<a name="l02988"></a>02988 <span class="comment">//   return i18n ("De&amp;vice");</span>
<a name="l02989"></a>02989 <span class="comment">// }</span>
<a name="l02990"></a>02990 
<a name="l02991"></a>02991 <span class="keywordtype">void</span> KDevicePropsPlugin::updateInfo()
<a name="l02992"></a>02992 {
<a name="l02993"></a>02993   <span class="comment">// we show it in the slot when we know the values</span>
<a name="l02994"></a>02994   d-&gt;m_freeSpaceText-&gt;hide();
<a name="l02995"></a>02995   d-&gt;m_freeSpaceLabel-&gt;hide();
<a name="l02996"></a>02996   d-&gt;m_freeSpaceBar-&gt;hide();
<a name="l02997"></a>02997 
<a name="l02998"></a>02998   <span class="keywordflow">if</span> ( !mountpoint-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html#text">text</a>().isEmpty() )
<a name="l02999"></a>02999   {
<a name="l03000"></a>03000     <a class="code" href="classKDiskFreeSp.html" title="This class parses the output of &amp;quot;df&amp;quot; to find the disk usage information...">KDiskFreeSp</a> * job = <span class="keyword">new</span> <a class="code" href="classKDiskFreeSp.html" title="This class parses the output of &amp;quot;df&amp;quot; to find the disk usage information...">KDiskFreeSp</a>;
<a name="l03001"></a>03001     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( job, SIGNAL( foundMountPoint( <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp;, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp;,
<a name="l03002"></a>03002                                            <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp;, <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a>&amp; ) ),
<a name="l03003"></a>03003              <span class="keyword">this</span>, SLOT( slotFoundMountPoint( <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp;, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp;,
<a name="l03004"></a>03004                                               <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp;, <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a>&amp; ) ) );
<a name="l03005"></a>03005 
<a name="l03006"></a>03006     job-&gt;<a class="code" href="classKDiskFreeSp.html#42e93d7340696d23f2c2e3bd47275e24" title="Call this to fire a search on the disk usage information for mountPoint.">readDF</a>( mountpoint-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html#text">text</a>() );
<a name="l03007"></a>03007   }
<a name="l03008"></a>03008 }
<a name="l03009"></a>03009 
<a name="l03010"></a>03010 <span class="keywordtype">void</span> KDevicePropsPlugin::slotActivated( <span class="keywordtype">int</span> index )
<a name="l03011"></a>03011 {
<a name="l03012"></a>03012   <span class="comment">// Update mountpoint so that it matches the device that was selected in the combo</span>
<a name="l03013"></a>03013   device-&gt;setEditText( m_devicelist[index] );
<a name="l03014"></a>03014   mountpoint-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html#setText">setText</a>( d-&gt;mountpointlist[index] );
<a name="l03015"></a>03015 
<a name="l03016"></a>03016   updateInfo();
<a name="l03017"></a>03017 }
<a name="l03018"></a>03018 
<a name="l03019"></a>03019 <span class="keywordtype">void</span> KDevicePropsPlugin::slotDeviceChanged()
<a name="l03020"></a>03020 {
<a name="l03021"></a>03021   <span class="comment">// Update mountpoint so that it matches the typed device</span>
<a name="l03022"></a>03022   <span class="keywordtype">int</span> index = m_devicelist.findIndex( device-&gt;currentText() );
<a name="l03023"></a>03023   <span class="keywordflow">if</span> ( index != -1 )
<a name="l03024"></a>03024     mountpoint-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html#setText">setText</a>( d-&gt;mountpointlist[index] );
<a name="l03025"></a>03025   <span class="keywordflow">else</span>
<a name="l03026"></a>03026     mountpoint-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html#setText">setText</a>( QString::null );
<a name="l03027"></a>03027 
<a name="l03028"></a>03028   updateInfo();
<a name="l03029"></a>03029 }
<a name="l03030"></a>03030 
<a name="l03031"></a>03031 <span class="keywordtype">void</span> KDevicePropsPlugin::slotFoundMountPoint( <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp; kBSize,
<a name="l03032"></a>03032                                               <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp; <span class="comment">/*kBUsed*/</span>,
<a name="l03033"></a>03033                                               <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp; kBAvail,
<a name="l03034"></a>03034                                               <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a>&amp; )
<a name="l03035"></a>03035 {
<a name="l03036"></a>03036   d-&gt;m_freeSpaceText-&gt;show();
<a name="l03037"></a>03037   d-&gt;m_freeSpaceLabel-&gt;show();
<a name="l03038"></a>03038 
<a name="l03039"></a>03039   <span class="keywordtype">int</span> percUsed = 100 - (int)(100.0 * kBAvail / kBSize);
<a name="l03040"></a>03040 
<a name="l03041"></a>03041   d-&gt;m_freeSpaceLabel-&gt;setText(
<a name="l03042"></a>03042       <span class="comment">// xgettext:no-c-format  --  Don't warn about translating the %1 out of %2 part.</span>
<a name="l03043"></a>03043       i18n(<span class="stringliteral">"Available space out of total partition size (percent used)"</span>, <span class="stringliteral">"%1 out of %2 (%3% used)"</span>)
<a name="l03044"></a>03044       .arg(KIO::convertSizeFromKB(kBAvail))
<a name="l03045"></a>03045       .arg(KIO::convertSizeFromKB(kBSize))
<a name="l03046"></a>03046       .arg( 100 - (<span class="keywordtype">int</span>)(100.0 * kBAvail / kBSize) ));
<a name="l03047"></a>03047 
<a name="l03048"></a>03048   d-&gt;m_freeSpaceBar-&gt;setProgress(percUsed, 100);
<a name="l03049"></a>03049   d-&gt;m_freeSpaceBar-&gt;show();
<a name="l03050"></a>03050 }
<a name="l03051"></a>03051 
<a name="l03052"></a>03052 <span class="keywordtype">bool</span> KDevicePropsPlugin::supports( KFileItemList _items )
<a name="l03053"></a>03053 {
<a name="l03054"></a>03054   <span class="keywordflow">if</span> ( _items.count() != 1 )
<a name="l03055"></a>03055     <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l03056"></a>03056   KFileItem * item = _items.first();
<a name="l03057"></a>03057   <span class="comment">// check if desktop file</span>
<a name="l03058"></a>03058   <span class="keywordflow">if</span> ( !<a class="code" href="classKPropsDlgPlugin.html#d29f1d332d93035d3ae2278ba25b2803" title="Convenience method for most supports methods.">KPropsDlgPlugin::isDesktopFile</a>( item ) )
<a name="l03059"></a>03059     <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l03060"></a>03060   <span class="comment">// open file and check type</span>
<a name="l03061"></a>03061   KDesktopFile config( item-&gt;url().path(), <span class="keyword">true</span> <span class="comment">/* readonly */</span> );
<a name="l03062"></a>03062   <span class="keywordflow">return</span> config.hasDeviceType();
<a name="l03063"></a>03063 }
<a name="l03064"></a>03064 
<a name="l03065"></a><a class="code" href="classKDevicePropsPlugin.html#c51e5e04bf196ca0ca6d1800013ef49d">03065</a> <span class="keywordtype">void</span> <a class="code" href="classKDevicePropsPlugin.html#c51e5e04bf196ca0ca6d1800013ef49d" title="Applies all changes to the file.">KDevicePropsPlugin::applyChanges</a>()
<a name="l03066"></a>03066 {
<a name="l03067"></a>03067   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> path = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().path();
<a name="l03068"></a>03068   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html">QFile</a> f( path );
<a name="l03069"></a>03069   <span class="keywordflow">if</span> ( !f.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html#open">open</a>( IO_ReadWrite ) )
<a name="l03070"></a>03070   {
<a name="l03071"></a>03071     KMessageBox::sorry( 0, i18n(<span class="stringliteral">"&lt;qt&gt;Could not save properties. You do not have sufficient "</span>
<a name="l03072"></a>03072                 <span class="stringliteral">"access to write to &lt;b&gt;%1&lt;/b&gt;.&lt;/qt&gt;"</span>).arg(path));
<a name="l03073"></a>03073     <span class="keywordflow">return</span>;
<a name="l03074"></a>03074   }
<a name="l03075"></a>03075   f.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html#close">close</a>();
<a name="l03076"></a>03076 
<a name="l03077"></a>03077   KSimpleConfig config( path );
<a name="l03078"></a>03078   config.setDesktopGroup();
<a name="l03079"></a>03079   config.writeEntry( <span class="stringliteral">"Type"</span>, <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#fromLatin1">QString::fromLatin1</a>(<span class="stringliteral">"FSDevice"</span>) );
<a name="l03080"></a>03080 
<a name="l03081"></a>03081   config.writeEntry( <span class="stringliteral">"Dev"</span>, device-&gt;currentText() );
<a name="l03082"></a>03082   config.writeEntry( <span class="stringliteral">"MountPoint"</span>, mountpoint-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html#text">text</a>() );
<a name="l03083"></a>03083 
<a name="l03084"></a>03084   config.writeEntry( <span class="stringliteral">"UnmountIcon"</span>, unmounted-&gt;<a class="code" href="classKIconButton.html#e7b507bdcf9ccfb7959081f6922b7468">icon</a>() );
<a name="l03085"></a>03085   kdDebug(250) &lt;&lt; <span class="stringliteral">"unmounted-&gt;icon() = "</span> &lt;&lt; unmounted-&gt;<a class="code" href="classKIconButton.html#e7b507bdcf9ccfb7959081f6922b7468">icon</a>() &lt;&lt; endl;
<a name="l03086"></a>03086 
<a name="l03087"></a>03087   config.writeEntry( <span class="stringliteral">"ReadOnly"</span>, readonly-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcheckbox.html#isChecked">isChecked</a>() );
<a name="l03088"></a>03088 
<a name="l03089"></a>03089   config.sync();
<a name="l03090"></a>03090 }
<a name="l03091"></a>03091 
<a name="l03092"></a>03092 
<a name="l03093"></a>03093 <span class="comment">/* ----------------------------------------------------</span>
<a name="l03094"></a>03094 <span class="comment"> *</span>
<a name="l03095"></a>03095 <span class="comment"> * KDesktopPropsPlugin</span>
<a name="l03096"></a>03096 <span class="comment"> *</span>
<a name="l03097"></a>03097 <span class="comment"> * -------------------------------------------------- */</span>
<a name="l03098"></a>03098 
<a name="l03099"></a>03099 
<a name="l03100"></a><a class="code" href="classKDesktopPropsPlugin.html#a94b4770a4c287be98b753228bb70652">03100</a> <a class="code" href="classKDesktopPropsPlugin.html#a94b4770a4c287be98b753228bb70652" title="Constructor.">KDesktopPropsPlugin::KDesktopPropsPlugin</a>( <a class="code" href="classKPropertiesDialog.html" title="The main properties dialog class.">KPropertiesDialog</a> *_props )
<a name="l03101"></a>03101   : <a class="code" href="classKPropsDlgPlugin.html" title="A Plugin in the Properties dialog This is an abstract class.">KPropsDlgPlugin</a>( _props )
<a name="l03102"></a>03102 {
<a name="l03103"></a>03103   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qframe.html">QFrame</a> *frame = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;addPage(i18n(<span class="stringliteral">"&amp;Application"</span>));
<a name="l03104"></a>03104   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qvboxlayout.html">QVBoxLayout</a> *mainlayout = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qvboxlayout.html">QVBoxLayout</a>( frame, 0, KDialog::spacingHint() );
<a name="l03105"></a>03105 
<a name="l03106"></a>03106   w = <span class="keyword">new</span> KPropertiesDesktopBase(frame);
<a name="l03107"></a>03107   mainlayout-&gt;addWidget(w);
<a name="l03108"></a>03108 
<a name="l03109"></a>03109   <span class="keywordtype">bool</span> bKDesktopMode = (<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcstring.html">QCString</a>(qApp-&gt;name()) == <span class="stringliteral">"kdesktop"</span>); <span class="comment">// nasty heh?</span>
<a name="l03110"></a>03110 
<a name="l03111"></a>03111   <span class="keywordflow">if</span> (bKDesktopMode)
<a name="l03112"></a>03112   {
<a name="l03113"></a>03113     <span class="comment">// Hide Name entry</span>
<a name="l03114"></a>03114     w-&gt;nameEdit-&gt;hide();
<a name="l03115"></a>03115     w-&gt;nameLabel-&gt;hide();
<a name="l03116"></a>03116   }
<a name="l03117"></a>03117 
<a name="l03118"></a>03118   w-&gt;pathEdit-&gt;setMode(KFile::Directory | KFile::LocalOnly);
<a name="l03119"></a>03119   w-&gt;pathEdit-&gt;lineEdit()-&gt;setAcceptDrops(<span class="keyword">false</span>);
<a name="l03120"></a>03120 
<a name="l03121"></a>03121   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( w-&gt;nameEdit, SIGNAL( textChanged( <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> &amp; ) ), <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l03122"></a>03122   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( w-&gt;genNameEdit, SIGNAL( textChanged( <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> &amp; ) ), <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l03123"></a>03123   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( w-&gt;commentEdit, SIGNAL( textChanged( <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> &amp; ) ), <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l03124"></a>03124   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( w-&gt;commandEdit, SIGNAL( textChanged( <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> &amp; ) ), <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l03125"></a>03125   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( w-&gt;pathEdit, SIGNAL( textChanged( <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> &amp; ) ), <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l03126"></a>03126 
<a name="l03127"></a>03127   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( w-&gt;browseButton, SIGNAL( clicked() ), <span class="keyword">this</span>, SLOT( slotBrowseExec() ) );
<a name="l03128"></a>03128   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( w-&gt;addFiletypeButton, SIGNAL( clicked() ), <span class="keyword">this</span>, SLOT( slotAddFiletype() ) );
<a name="l03129"></a>03129   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( w-&gt;delFiletypeButton, SIGNAL( clicked() ), <span class="keyword">this</span>, SLOT( slotDelFiletype() ) );
<a name="l03130"></a>03130   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( w-&gt;advancedButton, SIGNAL( clicked() ), <span class="keyword">this</span>, SLOT( slotAdvanced() ) );
<a name="l03131"></a>03131 
<a name="l03132"></a>03132   <span class="comment">// now populate the page</span>
<a name="l03133"></a>03133   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> path = _props-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().path();
<a name="l03134"></a>03134   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html">QFile</a> f( path );
<a name="l03135"></a>03135   <span class="keywordflow">if</span> ( !f.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html#open">open</a>( IO_ReadOnly ) )
<a name="l03136"></a>03136     <span class="keywordflow">return</span>;
<a name="l03137"></a>03137   f.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html#close">close</a>();
<a name="l03138"></a>03138 
<a name="l03139"></a>03139   KDesktopFile  config( path );
<a name="l03140"></a>03140   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> nameStr = config.readName();
<a name="l03141"></a>03141   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> genNameStr = config.readGenericName();
<a name="l03142"></a>03142   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> commentStr = config.readComment();
<a name="l03143"></a>03143   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> commandStr = config.readPathEntry( <span class="stringliteral">"Exec"</span> );
<a name="l03144"></a>03144   <span class="keywordflow">if</span> (commandStr.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#left">left</a>(12) == <span class="stringliteral">"ksystraycmd "</span>)
<a name="l03145"></a>03145   {
<a name="l03146"></a>03146     commandStr.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#remove">remove</a>(0, 12);
<a name="l03147"></a>03147     m_systrayBool = <span class="keyword">true</span>;
<a name="l03148"></a>03148   }
<a name="l03149"></a>03149   <span class="keywordflow">else</span>
<a name="l03150"></a>03150     m_systrayBool = <span class="keyword">false</span>;
<a name="l03151"></a>03151 
<a name="l03152"></a>03152   m_origCommandStr = commandStr;
<a name="l03153"></a>03153   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> pathStr = config.readPathEntry( <span class="stringliteral">"Path"</span> );
<a name="l03154"></a>03154   m_terminalBool = config.readBoolEntry( <span class="stringliteral">"Terminal"</span> );
<a name="l03155"></a>03155   m_terminalOptionStr = config.readEntry( <span class="stringliteral">"TerminalOptions"</span> );
<a name="l03156"></a>03156   m_suidBool = config.readBoolEntry( <span class="stringliteral">"X-KDE-SubstituteUID"</span> );
<a name="l03157"></a>03157   m_suidUserStr = config.readEntry( <span class="stringliteral">"X-KDE-Username"</span> );
<a name="l03158"></a>03158   <span class="keywordflow">if</span>( config.hasKey( <span class="stringliteral">"StartupNotify"</span> ))
<a name="l03159"></a>03159     m_startupBool = config.readBoolEntry( <span class="stringliteral">"StartupNotify"</span>, <span class="keyword">true</span> );
<a name="l03160"></a>03160   <span class="keywordflow">else</span>
<a name="l03161"></a>03161     m_startupBool = config.readBoolEntry( <span class="stringliteral">"X-KDE-StartupNotify"</span>, <span class="keyword">true</span> );
<a name="l03162"></a>03162   m_dcopServiceType = config.readEntry(<span class="stringliteral">"X-DCOP-ServiceType"</span>).<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#lower">lower</a>();
<a name="l03163"></a>03163 
<a name="l03164"></a>03164   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstringlist.html">QStringList</a> mimeTypes = config.readListEntry( <span class="stringliteral">"MimeType"</span>, <span class="charliteral">';'</span> );
<a name="l03165"></a>03165 
<a name="l03166"></a>03166   <span class="keywordflow">if</span> ( nameStr.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isEmpty">isEmpty</a>() || bKDesktopMode ) {
<a name="l03167"></a>03167     <span class="comment">// We'll use the file name if no name is specified</span>
<a name="l03168"></a>03168     <span class="comment">// because we _need_ a Name for a valid file.</span>
<a name="l03169"></a>03169     <span class="comment">// But let's do it in apply, not here, so that we pick up the right name.</span>
<a name="l03170"></a>03170     setDirty();
<a name="l03171"></a>03171   }
<a name="l03172"></a>03172   <span class="keywordflow">if</span> ( !bKDesktopMode )
<a name="l03173"></a>03173     w-&gt;nameEdit-&gt;setText(nameStr);
<a name="l03174"></a>03174 
<a name="l03175"></a>03175   w-&gt;genNameEdit-&gt;setText( genNameStr );
<a name="l03176"></a>03176   w-&gt;commentEdit-&gt;setText( commentStr );
<a name="l03177"></a>03177   w-&gt;commandEdit-&gt;setText( commandStr );
<a name="l03178"></a>03178   w-&gt;pathEdit-&gt;lineEdit()-&gt;setText( pathStr );
<a name="l03179"></a>03179   w-&gt;filetypeList-&gt;setAllColumnsShowFocus(<span class="keyword">true</span>);
<a name="l03180"></a>03180 
<a name="l03181"></a>03181   KMimeType::Ptr defaultMimetype = KMimeType::defaultMimeTypePtr();
<a name="l03182"></a>03182   <span class="keywordflow">for</span>(QStringList::ConstIterator it = mimeTypes.begin();
<a name="l03183"></a>03183       it != mimeTypes.end(); )
<a name="l03184"></a>03184   {
<a name="l03185"></a>03185     KMimeType::Ptr p = KMimeType::mimeType(*it);
<a name="l03186"></a>03186     ++it;
<a name="l03187"></a>03187     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> preference;
<a name="l03188"></a>03188     <span class="keywordflow">if</span> (it != mimeTypes.end())
<a name="l03189"></a>03189     {
<a name="l03190"></a>03190        <span class="keywordtype">bool</span> numeric;
<a name="l03191"></a>03191        (*it).toInt(&amp;numeric);
<a name="l03192"></a>03192        <span class="keywordflow">if</span> (numeric)
<a name="l03193"></a>03193        {
<a name="l03194"></a>03194          preference = *it;
<a name="l03195"></a>03195          ++it;
<a name="l03196"></a>03196        }
<a name="l03197"></a>03197     }
<a name="l03198"></a>03198     <span class="keywordflow">if</span> (p &amp;&amp; (p != defaultMimetype))
<a name="l03199"></a>03199     {
<a name="l03200"></a>03200        <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistviewitem.html">QListViewItem</a>(w-&gt;filetypeList, p-&gt;name(), p-&gt;comment(), preference);
<a name="l03201"></a>03201     }
<a name="l03202"></a>03202   }
<a name="l03203"></a>03203 
<a name="l03204"></a>03204 }
<a name="l03205"></a>03205 
<a name="l03206"></a>03206 KDesktopPropsPlugin::~KDesktopPropsPlugin()
<a name="l03207"></a>03207 {
<a name="l03208"></a>03208 }
<a name="l03209"></a>03209 
<a name="l03210"></a>03210 <span class="keywordtype">void</span> KDesktopPropsPlugin::slotSelectMimetype()
<a name="l03211"></a>03211 {
<a name="l03212"></a>03212   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistview.html">QListView</a> *w = (<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistview.html">QListView</a>*)<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#sender">sender</a>();
<a name="l03213"></a>03213   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistviewitem.html">QListViewItem</a> *item = w-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistview.html#firstChild">firstChild</a>();
<a name="l03214"></a>03214   <span class="keywordflow">while</span>(item)
<a name="l03215"></a>03215   {
<a name="l03216"></a>03216      <span class="keywordflow">if</span> (item-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistviewitem.html#isSelected">isSelected</a>())
<a name="l03217"></a>03217         w-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistview.html#setSelected">setSelected</a>(item, <span class="keyword">false</span>);
<a name="l03218"></a>03218      item = item-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistviewitem.html#nextSibling">nextSibling</a>();
<a name="l03219"></a>03219   }
<a name="l03220"></a>03220 }
<a name="l03221"></a>03221 
<a name="l03222"></a>03222 <span class="keywordtype">void</span> KDesktopPropsPlugin::slotAddFiletype()
<a name="l03223"></a>03223 {
<a name="l03224"></a>03224   KDialogBase dlg(w, <span class="stringliteral">"KPropertiesMimetypes"</span>, <span class="keyword">true</span>,
<a name="l03225"></a>03225                   i18n(<span class="stringliteral">"Add File Type for %1"</span>).arg(<a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().fileName()),
<a name="l03226"></a>03226                   KDialogBase::Ok|KDialogBase::Cancel, KDialogBase::Ok);
<a name="l03227"></a>03227 
<a name="l03228"></a>03228   KGuiItem okItem(i18n(<span class="stringliteral">"&amp;Add"</span>), QString::null <span class="comment">/* no icon */</span>,
<a name="l03229"></a>03229                   i18n(<span class="stringliteral">"Add the selected file types to\nthe list of supported file types."</span>),
<a name="l03230"></a>03230                   i18n(<span class="stringliteral">"Add the selected file types to\nthe list of supported file types."</span>));
<a name="l03231"></a>03231   dlg.setButtonOK(okItem);
<a name="l03232"></a>03232 
<a name="l03233"></a>03233   KPropertiesMimetypeBase *mw = <span class="keyword">new</span> KPropertiesMimetypeBase(&amp;dlg);
<a name="l03234"></a>03234 
<a name="l03235"></a>03235   dlg.setMainWidget(mw);
<a name="l03236"></a>03236 
<a name="l03237"></a>03237   {
<a name="l03238"></a>03238      mw-&gt;listView-&gt;setRootIsDecorated(<span class="keyword">true</span>);
<a name="l03239"></a>03239      mw-&gt;listView-&gt;setSelectionMode(QListView::Extended);
<a name="l03240"></a>03240      mw-&gt;listView-&gt;setAllColumnsShowFocus(<span class="keyword">true</span>);
<a name="l03241"></a>03241      mw-&gt;listView-&gt;setFullWidth(<span class="keyword">true</span>);
<a name="l03242"></a>03242      mw-&gt;listView-&gt;setMinimumSize(500,400);
<a name="l03243"></a>03243 
<a name="l03244"></a>03244      <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>(mw-&gt;listView, SIGNAL(selectionChanged()),
<a name="l03245"></a>03245              <span class="keyword">this</span>, SLOT(slotSelectMimetype()));
<a name="l03246"></a>03246      <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>(mw-&gt;listView, SIGNAL(doubleClicked( <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistviewitem.html">QListViewItem</a> *, <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qpoint.html">QPoint</a> &amp;, <span class="keywordtype">int</span> )),
<a name="l03247"></a>03247              &amp;dlg, SLOT( slotOk()));
<a name="l03248"></a>03248 
<a name="l03249"></a>03249      <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qmap.html">QMap&lt;QString,QListViewItem*&gt;</a> majorMap;
<a name="l03250"></a>03250      <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistviewitem.html">QListViewItem</a> *majorGroup;
<a name="l03251"></a>03251      KMimeType::List mimetypes = KMimeType::allMimeTypes();
<a name="l03252"></a>03252      <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qvaluelistiterator.html">QValueListIterator&lt;KMimeType::Ptr&gt;</a> it(mimetypes.begin());
<a name="l03253"></a>03253      <span class="keywordflow">for</span> (; it != mimetypes.end(); ++it) {
<a name="l03254"></a>03254         <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> mimetype = (*it)-&gt;name();
<a name="l03255"></a>03255         <span class="keywordflow">if</span> (mimetype == KMimeType::defaultMimeType())
<a name="l03256"></a>03256            <span class="keywordflow">continue</span>;
<a name="l03257"></a>03257         <span class="keywordtype">int</span> index = mimetype.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#find">find</a>(<span class="stringliteral">"/"</span>);
<a name="l03258"></a>03258         <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> maj = mimetype.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#left">left</a>(index);
<a name="l03259"></a>03259         <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> min = mimetype.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#mid">mid</a>(index+1);
<a name="l03260"></a>03260 
<a name="l03261"></a>03261         <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qmapiterator.html">QMapIterator&lt;QString,QListViewItem*&gt;</a> mit = majorMap.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qmap.html#find">find</a>( maj );
<a name="l03262"></a>03262         <span class="keywordflow">if</span> ( mit == majorMap.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qmap.html#end">end</a>() ) {
<a name="l03263"></a>03263            majorGroup = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistviewitem.html">QListViewItem</a>( mw-&gt;listView, maj );
<a name="l03264"></a>03264            majorGroup-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistviewitem.html#setExpandable">setExpandable</a>(<span class="keyword">true</span>);
<a name="l03265"></a>03265            mw-&gt;listView-&gt;setOpen(majorGroup, <span class="keyword">true</span>);
<a name="l03266"></a>03266            majorMap.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qmap.html#insert">insert</a>( maj, majorGroup );
<a name="l03267"></a>03267         }
<a name="l03268"></a>03268         <span class="keywordflow">else</span>
<a name="l03269"></a>03269         {
<a name="l03270"></a>03270            majorGroup = mit.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qmapiterator.html#data">data</a>();
<a name="l03271"></a>03271         }
<a name="l03272"></a>03272 
<a name="l03273"></a>03273         <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistviewitem.html">QListViewItem</a> *item = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistviewitem.html">QListViewItem</a>(majorGroup, min, (*it)-&gt;comment());
<a name="l03274"></a>03274         item-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistviewitem.html#setPixmap">setPixmap</a>(0, (*it)-&gt;pixmap(KIcon::Small, IconSize(KIcon::Small)));
<a name="l03275"></a>03275      }
<a name="l03276"></a>03276      <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qmapiterator.html">QMapIterator&lt;QString,QListViewItem*&gt;</a> mit = majorMap.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qmap.html#find">find</a>( <span class="stringliteral">"all"</span> );
<a name="l03277"></a>03277      <span class="keywordflow">if</span> ( mit != majorMap.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qmap.html#end">end</a>())
<a name="l03278"></a>03278      {
<a name="l03279"></a>03279         mw-&gt;listView-&gt;setCurrentItem(mit.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qmapiterator.html#data">data</a>());
<a name="l03280"></a>03280         mw-&gt;listView-&gt;ensureItemVisible(mit.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qmapiterator.html#data">data</a>());
<a name="l03281"></a>03281      }
<a name="l03282"></a>03282   }
<a name="l03283"></a>03283 
<a name="l03284"></a>03284   <span class="keywordflow">if</span> (dlg.exec() == KDialogBase::Accepted)
<a name="l03285"></a>03285   {
<a name="l03286"></a>03286      KMimeType::Ptr defaultMimetype = KMimeType::defaultMimeTypePtr();
<a name="l03287"></a>03287      <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistviewitem.html">QListViewItem</a> *majorItem = mw-&gt;listView-&gt;firstChild();
<a name="l03288"></a>03288      <span class="keywordflow">while</span>(majorItem)
<a name="l03289"></a>03289      {
<a name="l03290"></a>03290         <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> major = majorItem-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistviewitem.html#text">text</a>(0);
<a name="l03291"></a>03291 
<a name="l03292"></a>03292         <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistviewitem.html">QListViewItem</a> *minorItem = majorItem-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistviewitem.html#firstChild">firstChild</a>();
<a name="l03293"></a>03293         <span class="keywordflow">while</span>(minorItem)
<a name="l03294"></a>03294         {
<a name="l03295"></a>03295            <span class="keywordflow">if</span> (minorItem-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistviewitem.html#isSelected">isSelected</a>())
<a name="l03296"></a>03296            {
<a name="l03297"></a>03297               <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> mimetype = major + <span class="stringliteral">"/"</span> + minorItem-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistviewitem.html#text">text</a>(0);
<a name="l03298"></a>03298               KMimeType::Ptr p = KMimeType::mimeType(mimetype);
<a name="l03299"></a>03299               <span class="keywordflow">if</span> (p &amp;&amp; (p != defaultMimetype))
<a name="l03300"></a>03300               {
<a name="l03301"></a>03301                  mimetype = p-&gt;name();
<a name="l03302"></a>03302                  <span class="keywordtype">bool</span> found = <span class="keyword">false</span>;
<a name="l03303"></a>03303                  <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistviewitem.html">QListViewItem</a> *item = w-&gt;filetypeList-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistview.html#firstChild">firstChild</a>();
<a name="l03304"></a>03304                  <span class="keywordflow">while</span> (item)
<a name="l03305"></a>03305                  {
<a name="l03306"></a>03306                     <span class="keywordflow">if</span> (mimetype == item-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistviewitem.html#text">text</a>(0))
<a name="l03307"></a>03307                     {
<a name="l03308"></a>03308                        found = <span class="keyword">true</span>;
<a name="l03309"></a>03309                        <span class="keywordflow">break</span>;
<a name="l03310"></a>03310                     }
<a name="l03311"></a>03311                     item = item-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistviewitem.html#nextSibling">nextSibling</a>();
<a name="l03312"></a>03312                  }
<a name="l03313"></a>03313                  <span class="keywordflow">if</span> (!found) {
<a name="l03314"></a>03314                     <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistviewitem.html">QListViewItem</a>(w-&gt;filetypeList, p-&gt;name(), p-&gt;comment());
<a name="l03315"></a>03315                     emit <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>();
<a name="l03316"></a>03316                  }
<a name="l03317"></a>03317               }
<a name="l03318"></a>03318            }
<a name="l03319"></a>03319            minorItem = minorItem-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistviewitem.html#nextSibling">nextSibling</a>();
<a name="l03320"></a>03320         }
<a name="l03321"></a>03321 
<a name="l03322"></a>03322         majorItem = majorItem-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistviewitem.html#nextSibling">nextSibling</a>();
<a name="l03323"></a>03323      }
<a name="l03324"></a>03324 
<a name="l03325"></a>03325   }
<a name="l03326"></a>03326 }
<a name="l03327"></a>03327 
<a name="l03328"></a>03328 <span class="keywordtype">void</span> KDesktopPropsPlugin::slotDelFiletype()
<a name="l03329"></a>03329 {
<a name="l03330"></a>03330   <span class="keyword">delete</span> w-&gt;filetypeList-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistview.html#currentItem">currentItem</a>();
<a name="l03331"></a>03331   emit <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>();
<a name="l03332"></a>03332 }
<a name="l03333"></a>03333 
<a name="l03334"></a>03334 <span class="keywordtype">void</span> KDesktopPropsPlugin::checkCommandChanged()
<a name="l03335"></a>03335 {
<a name="l03336"></a>03336   <span class="keywordflow">if</span> (KRun::binaryName(w-&gt;commandEdit-&gt;text(), <span class="keyword">true</span>) !=
<a name="l03337"></a>03337       KRun::binaryName(m_origCommandStr, <span class="keyword">true</span>))
<a name="l03338"></a>03338   {
<a name="l03339"></a>03339     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> m_origCommandStr = w-&gt;commandEdit-&gt;text();
<a name="l03340"></a>03340     m_dcopServiceType= QString::null; <span class="comment">// Reset</span>
<a name="l03341"></a>03341   }
<a name="l03342"></a>03342 }
<a name="l03343"></a>03343 
<a name="l03344"></a><a class="code" href="classKDesktopPropsPlugin.html#faed9f23df081c957bd510fb72689a12">03344</a> <span class="keywordtype">void</span> <a class="code" href="classKDesktopPropsPlugin.html#faed9f23df081c957bd510fb72689a12" title="Applies all changes to the file.">KDesktopPropsPlugin::applyChanges</a>()
<a name="l03345"></a>03345 {
<a name="l03346"></a>03346   kdDebug(250) &lt;&lt; <span class="stringliteral">"KDesktopPropsPlugin::applyChanges"</span> &lt;&lt; endl;
<a name="l03347"></a>03347   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> path = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().path();
<a name="l03348"></a>03348 
<a name="l03349"></a>03349   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html">QFile</a> f( path );
<a name="l03350"></a>03350 
<a name="l03351"></a>03351   <span class="keywordflow">if</span> ( !f.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html#open">open</a>( IO_ReadWrite ) ) {
<a name="l03352"></a>03352     KMessageBox::sorry( 0, i18n(<span class="stringliteral">"&lt;qt&gt;Could not save properties. You do not have "</span>
<a name="l03353"></a>03353                 <span class="stringliteral">"sufficient access to write to &lt;b&gt;%1&lt;/b&gt;.&lt;/qt&gt;"</span>).arg(path));
<a name="l03354"></a>03354     <span class="keywordflow">return</span>;
<a name="l03355"></a>03355   }
<a name="l03356"></a>03356   f.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html#close">close</a>();
<a name="l03357"></a>03357 
<a name="l03358"></a>03358   <span class="comment">// If the command is changed we reset certain settings that are strongly</span>
<a name="l03359"></a>03359   <span class="comment">// coupled to the command.</span>
<a name="l03360"></a>03360   checkCommandChanged();
<a name="l03361"></a>03361 
<a name="l03362"></a>03362   KSimpleConfig config( path );
<a name="l03363"></a>03363   config.setDesktopGroup();
<a name="l03364"></a>03364   config.writeEntry( <span class="stringliteral">"Type"</span>, <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#fromLatin1">QString::fromLatin1</a>(<span class="stringliteral">"Application"</span>));
<a name="l03365"></a>03365   config.writeEntry( <span class="stringliteral">"Comment"</span>, w-&gt;commentEdit-&gt;text() );
<a name="l03366"></a>03366   config.writeEntry( <span class="stringliteral">"Comment"</span>, w-&gt;commentEdit-&gt;text(), <span class="keyword">true</span>, <span class="keyword">false</span>, true ); <span class="comment">// for compat</span>
<a name="l03367"></a>03367   config.writeEntry( <span class="stringliteral">"GenericName"</span>, w-&gt;genNameEdit-&gt;text() );
<a name="l03368"></a>03368   config.writeEntry( <span class="stringliteral">"GenericName"</span>, w-&gt;genNameEdit-&gt;text(), <span class="keyword">true</span>, <span class="keyword">false</span>, true ); <span class="comment">// for compat</span>
<a name="l03369"></a>03369 
<a name="l03370"></a>03370   <span class="keywordflow">if</span> (m_systrayBool)
<a name="l03371"></a>03371     config.writePathEntry( <span class="stringliteral">"Exec"</span>, w-&gt;commandEdit-&gt;text().prepend(<span class="stringliteral">"ksystraycmd "</span>) );
<a name="l03372"></a>03372   <span class="keywordflow">else</span>
<a name="l03373"></a>03373     config.writePathEntry( <span class="stringliteral">"Exec"</span>, w-&gt;commandEdit-&gt;text() );
<a name="l03374"></a>03374   config.writePathEntry( <span class="stringliteral">"Path"</span>, w-&gt;pathEdit-&gt;lineEdit()-&gt;text() );
<a name="l03375"></a>03375 
<a name="l03376"></a>03376   <span class="comment">// Write mimeTypes</span>
<a name="l03377"></a>03377   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstringlist.html">QStringList</a> mimeTypes;
<a name="l03378"></a>03378   <span class="keywordflow">for</span>( <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistviewitem.html">QListViewItem</a> *item = w-&gt;filetypeList-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistview.html#firstChild">firstChild</a>();
<a name="l03379"></a>03379        item; item = item-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistviewitem.html#nextSibling">nextSibling</a>() )
<a name="l03380"></a>03380   {
<a name="l03381"></a>03381     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> preference = item-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistviewitem.html#text">text</a>(2);
<a name="l03382"></a>03382     mimeTypes.append(item-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistviewitem.html#text">text</a>(0));
<a name="l03383"></a>03383     <span class="keywordflow">if</span> (!preference.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isEmpty">isEmpty</a>())
<a name="l03384"></a>03384        mimeTypes.append(preference);
<a name="l03385"></a>03385   }
<a name="l03386"></a>03386 
<a name="l03387"></a>03387   config.writeEntry( <span class="stringliteral">"MimeType"</span>, mimeTypes, <span class="charliteral">';'</span> );
<a name="l03388"></a>03388 
<a name="l03389"></a>03389   <span class="keywordflow">if</span> ( !w-&gt;nameEdit-&gt;isHidden() ) {
<a name="l03390"></a>03390       <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> nameStr = w-&gt;nameEdit-&gt;text();
<a name="l03391"></a>03391       config.writeEntry( <span class="stringliteral">"Name"</span>, nameStr );
<a name="l03392"></a>03392       config.writeEntry( <span class="stringliteral">"Name"</span>, nameStr, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">true</span> );
<a name="l03393"></a>03393   }
<a name="l03394"></a>03394 
<a name="l03395"></a>03395   config.writeEntry(<span class="stringliteral">"Terminal"</span>, m_terminalBool);
<a name="l03396"></a>03396   config.writeEntry(<span class="stringliteral">"TerminalOptions"</span>, m_terminalOptionStr);
<a name="l03397"></a>03397   config.writeEntry(<span class="stringliteral">"X-KDE-SubstituteUID"</span>, m_suidBool);
<a name="l03398"></a>03398   config.writeEntry(<span class="stringliteral">"X-KDE-Username"</span>, m_suidUserStr);
<a name="l03399"></a>03399   config.writeEntry(<span class="stringliteral">"StartupNotify"</span>, m_startupBool);
<a name="l03400"></a>03400   config.writeEntry(<span class="stringliteral">"X-DCOP-ServiceType"</span>, m_dcopServiceType);
<a name="l03401"></a>03401   config.sync();
<a name="l03402"></a>03402 
<a name="l03403"></a>03403   <span class="comment">// KSycoca update needed?</span>
<a name="l03404"></a>03404   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> sycocaPath = KGlobal::dirs()-&gt;relativeLocation(<span class="stringliteral">"apps"</span>, path);
<a name="l03405"></a>03405   <span class="keywordtype">bool</span> updateNeeded = !sycocaPath.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#startsWith">startsWith</a>(<span class="stringliteral">"/"</span>);
<a name="l03406"></a>03406   <span class="keywordflow">if</span> (!updateNeeded)
<a name="l03407"></a>03407   {
<a name="l03408"></a>03408      sycocaPath = KGlobal::dirs()-&gt;relativeLocation(<span class="stringliteral">"xdgdata-apps"</span>, path);
<a name="l03409"></a>03409      updateNeeded = !sycocaPath.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#startsWith">startsWith</a>(<span class="stringliteral">"/"</span>);
<a name="l03410"></a>03410   }
<a name="l03411"></a>03411   <span class="keywordflow">if</span> (updateNeeded)
<a name="l03412"></a>03412      KService::rebuildKSycoca(w);
<a name="l03413"></a>03413 }
<a name="l03414"></a>03414 
<a name="l03415"></a>03415 
<a name="l03416"></a>03416 <span class="keywordtype">void</span> KDesktopPropsPlugin::slotBrowseExec()
<a name="l03417"></a>03417 {
<a name="l03418"></a>03418   KURL f = <a class="code" href="classKFileDialog.html#253d8042934dc81cf7636691e741fe95" title="Creates a modal file dialog and returns the selected URL or an empty string if none...">KFileDialog::getOpenURL</a>( QString::null,
<a name="l03419"></a>03419                                       QString::null, w );
<a name="l03420"></a>03420   <span class="keywordflow">if</span> ( f.isEmpty() )
<a name="l03421"></a>03421     <span class="keywordflow">return</span>;
<a name="l03422"></a>03422 
<a name="l03423"></a>03423   <span class="keywordflow">if</span> ( !f.isLocalFile()) {
<a name="l03424"></a>03424     KMessageBox::sorry(w, i18n(<span class="stringliteral">"Only executables on local file systems are supported."</span>));
<a name="l03425"></a>03425     <span class="keywordflow">return</span>;
<a name="l03426"></a>03426   }
<a name="l03427"></a>03427 
<a name="l03428"></a>03428   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> path = f.path();
<a name="l03429"></a>03429   KRun::shellQuote( path );
<a name="l03430"></a>03430   w-&gt;commandEdit-&gt;setText( path );
<a name="l03431"></a>03431 }
<a name="l03432"></a>03432 
<a name="l03433"></a>03433 <span class="keywordtype">void</span> KDesktopPropsPlugin::slotAdvanced()
<a name="l03434"></a>03434 {
<a name="l03435"></a>03435   KDialogBase dlg(w, <span class="stringliteral">"KPropertiesDesktopAdv"</span>, <span class="keyword">true</span>,
<a name="l03436"></a>03436       i18n(<span class="stringliteral">"Advanced Options for %1"</span>).arg(<a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().fileName()),
<a name="l03437"></a>03437       KDialogBase::Ok|KDialogBase::Cancel, KDialogBase::Ok);
<a name="l03438"></a>03438   KPropertiesDesktopAdvBase *w = <span class="keyword">new</span> KPropertiesDesktopAdvBase(&amp;dlg);
<a name="l03439"></a>03439 
<a name="l03440"></a>03440   dlg.setMainWidget(w);
<a name="l03441"></a>03441 
<a name="l03442"></a>03442   <span class="comment">// If the command is changed we reset certain settings that are strongly</span>
<a name="l03443"></a>03443   <span class="comment">// coupled to the command.</span>
<a name="l03444"></a>03444   checkCommandChanged();
<a name="l03445"></a>03445 
<a name="l03446"></a>03446   <span class="comment">// check to see if we use konsole if not do not add the nocloseonexit</span>
<a name="l03447"></a>03447   <span class="comment">// because we don't know how to do this on other terminal applications</span>
<a name="l03448"></a>03448   KConfigGroup confGroup( KGlobal::config(), <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#fromLatin1">QString::fromLatin1</a>(<span class="stringliteral">"General"</span>) );
<a name="l03449"></a>03449   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> preferredTerminal = confGroup.readPathEntry(<span class="stringliteral">"TerminalApplication"</span>,
<a name="l03450"></a>03450                           <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#fromLatin1">QString::fromLatin1</a>(<span class="stringliteral">"konsole"</span>));
<a name="l03451"></a>03451 
<a name="l03452"></a>03452   <span class="keywordtype">bool</span> terminalCloseBool = <span class="keyword">false</span>;
<a name="l03453"></a>03453 
<a name="l03454"></a>03454   <span class="keywordflow">if</span> (preferredTerminal == <span class="stringliteral">"konsole"</span>)
<a name="l03455"></a>03455   {
<a name="l03456"></a>03456      terminalCloseBool = (m_terminalOptionStr.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#contains">contains</a>( <span class="stringliteral">"--noclose"</span> ) &gt; 0);
<a name="l03457"></a>03457      w-&gt;terminalCloseCheck-&gt;setChecked(terminalCloseBool);
<a name="l03458"></a>03458      m_terminalOptionStr.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#replace">replace</a>( <span class="stringliteral">"--noclose"</span>, <span class="stringliteral">""</span>);
<a name="l03459"></a>03459   }
<a name="l03460"></a>03460   <span class="keywordflow">else</span>
<a name="l03461"></a>03461   {
<a name="l03462"></a>03462      w-&gt;terminalCloseCheck-&gt;hide();
<a name="l03463"></a>03463   }
<a name="l03464"></a>03464 
<a name="l03465"></a>03465   w-&gt;terminalCheck-&gt;setChecked(m_terminalBool);
<a name="l03466"></a>03466   w-&gt;terminalEdit-&gt;setText(m_terminalOptionStr);
<a name="l03467"></a>03467   w-&gt;terminalCloseCheck-&gt;setEnabled(m_terminalBool);
<a name="l03468"></a>03468   w-&gt;terminalEdit-&gt;setEnabled(m_terminalBool);
<a name="l03469"></a>03469   w-&gt;terminalEditLabel-&gt;setEnabled(m_terminalBool);
<a name="l03470"></a>03470 
<a name="l03471"></a>03471   w-&gt;suidCheck-&gt;setChecked(m_suidBool);
<a name="l03472"></a>03472   w-&gt;suidEdit-&gt;setText(m_suidUserStr);
<a name="l03473"></a>03473   w-&gt;suidEdit-&gt;setEnabled(m_suidBool);
<a name="l03474"></a>03474   w-&gt;suidEditLabel-&gt;setEnabled(m_suidBool);
<a name="l03475"></a>03475 
<a name="l03476"></a>03476   w-&gt;startupInfoCheck-&gt;setChecked(m_startupBool);
<a name="l03477"></a>03477   w-&gt;systrayCheck-&gt;setChecked(m_systrayBool);
<a name="l03478"></a>03478 
<a name="l03479"></a>03479   <span class="keywordflow">if</span> (m_dcopServiceType == <span class="stringliteral">"unique"</span>)
<a name="l03480"></a>03480     w-&gt;dcopCombo-&gt;setCurrentItem(2);
<a name="l03481"></a>03481   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (m_dcopServiceType == <span class="stringliteral">"multi"</span>)
<a name="l03482"></a>03482     w-&gt;dcopCombo-&gt;setCurrentItem(1);
<a name="l03483"></a>03483   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (m_dcopServiceType == <span class="stringliteral">"wait"</span>)
<a name="l03484"></a>03484     w-&gt;dcopCombo-&gt;setCurrentItem(3);
<a name="l03485"></a>03485   <span class="keywordflow">else</span>
<a name="l03486"></a>03486     w-&gt;dcopCombo-&gt;setCurrentItem(0);
<a name="l03487"></a>03487 
<a name="l03488"></a>03488   <span class="comment">// Provide username completion up to 1000 users.</span>
<a name="l03489"></a>03489   KCompletion *kcom = <span class="keyword">new</span> KCompletion;
<a name="l03490"></a>03490   kcom-&gt;setOrder(KCompletion::Sorted);
<a name="l03491"></a>03491   <span class="keyword">struct </span>passwd *pw;
<a name="l03492"></a>03492   <span class="keywordtype">int</span> i, maxEntries = 1000;
<a name="l03493"></a>03493   setpwent();
<a name="l03494"></a>03494   <span class="keywordflow">for</span> (i=0; ((pw = getpwent()) != 0L) &amp;&amp; (i &lt; maxEntries); i++)
<a name="l03495"></a>03495     kcom-&gt;addItem(<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#fromLatin1">QString::fromLatin1</a>(pw-&gt;pw_name));
<a name="l03496"></a>03496   endpwent();
<a name="l03497"></a>03497   <span class="keywordflow">if</span> (i &lt; maxEntries)
<a name="l03498"></a>03498   {
<a name="l03499"></a>03499     w-&gt;suidEdit-&gt;setCompletionObject(kcom, <span class="keyword">true</span>);
<a name="l03500"></a>03500     w-&gt;suidEdit-&gt;setAutoDeleteCompletionObject( <span class="keyword">true</span> );
<a name="l03501"></a>03501     w-&gt;suidEdit-&gt;setCompletionMode(KGlobalSettings::CompletionAuto);
<a name="l03502"></a>03502   }
<a name="l03503"></a>03503   <span class="keywordflow">else</span>
<a name="l03504"></a>03504   {
<a name="l03505"></a>03505     <span class="keyword">delete</span> kcom;
<a name="l03506"></a>03506   }
<a name="l03507"></a>03507 
<a name="l03508"></a>03508   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( w-&gt;terminalEdit, SIGNAL( textChanged( <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> &amp; ) ),
<a name="l03509"></a>03509            <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l03510"></a>03510   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( w-&gt;terminalCloseCheck, SIGNAL( toggled( <span class="keywordtype">bool</span> ) ),
<a name="l03511"></a>03511            <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l03512"></a>03512   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( w-&gt;terminalCheck, SIGNAL( toggled( <span class="keywordtype">bool</span> ) ),
<a name="l03513"></a>03513            <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l03514"></a>03514   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( w-&gt;suidCheck, SIGNAL( toggled( <span class="keywordtype">bool</span> ) ),
<a name="l03515"></a>03515            <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l03516"></a>03516   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( w-&gt;suidEdit, SIGNAL( textChanged( <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> &amp; ) ),
<a name="l03517"></a>03517            <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l03518"></a>03518   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( w-&gt;startupInfoCheck, SIGNAL( toggled( <span class="keywordtype">bool</span> ) ),
<a name="l03519"></a>03519            <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l03520"></a>03520   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( w-&gt;systrayCheck, SIGNAL( toggled( <span class="keywordtype">bool</span> ) ),
<a name="l03521"></a>03521            <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l03522"></a>03522   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( w-&gt;dcopCombo, SIGNAL( highlighted( <span class="keywordtype">int</span> ) ),
<a name="l03523"></a>03523            <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l03524"></a>03524 
<a name="l03525"></a>03525   <span class="keywordflow">if</span> ( dlg.exec() == QDialog::Accepted )
<a name="l03526"></a>03526   {
<a name="l03527"></a>03527     m_terminalOptionStr = w-&gt;terminalEdit-&gt;text().<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#stripWhiteSpace">stripWhiteSpace</a>();
<a name="l03528"></a>03528     m_terminalBool = w-&gt;terminalCheck-&gt;isChecked();
<a name="l03529"></a>03529     m_suidBool = w-&gt;suidCheck-&gt;isChecked();
<a name="l03530"></a>03530     m_suidUserStr = w-&gt;suidEdit-&gt;text().<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#stripWhiteSpace">stripWhiteSpace</a>();
<a name="l03531"></a>03531     m_startupBool = w-&gt;startupInfoCheck-&gt;isChecked();
<a name="l03532"></a>03532     m_systrayBool = w-&gt;systrayCheck-&gt;isChecked();
<a name="l03533"></a>03533 
<a name="l03534"></a>03534     <span class="keywordflow">if</span> (w-&gt;terminalCloseCheck-&gt;isChecked())
<a name="l03535"></a>03535     {
<a name="l03536"></a>03536       m_terminalOptionStr.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#append">append</a>(<span class="stringliteral">" --noclose"</span>);
<a name="l03537"></a>03537     }
<a name="l03538"></a>03538 
<a name="l03539"></a>03539     <span class="keywordflow">switch</span>(w-&gt;dcopCombo-&gt;currentItem())
<a name="l03540"></a>03540     {
<a name="l03541"></a>03541       <span class="keywordflow">case</span> 1:  m_dcopServiceType = <span class="stringliteral">"multi"</span>; <span class="keywordflow">break</span>;
<a name="l03542"></a>03542       <span class="keywordflow">case</span> 2:  m_dcopServiceType = <span class="stringliteral">"unique"</span>; <span class="keywordflow">break</span>;
<a name="l03543"></a>03543       <span class="keywordflow">case</span> 3:  m_dcopServiceType = <span class="stringliteral">"wait"</span>; <span class="keywordflow">break</span>;
<a name="l03544"></a>03544       <span class="keywordflow">default</span>: m_dcopServiceType = <span class="stringliteral">"none"</span>; <span class="keywordflow">break</span>;
<a name="l03545"></a>03545     }
<a name="l03546"></a>03546   }
<a name="l03547"></a>03547 }
<a name="l03548"></a>03548 
<a name="l03549"></a>03549 <span class="keywordtype">bool</span> KDesktopPropsPlugin::supports( KFileItemList _items )
<a name="l03550"></a>03550 {
<a name="l03551"></a>03551   <span class="keywordflow">if</span> ( _items.count() != 1 )
<a name="l03552"></a>03552     <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l03553"></a>03553   KFileItem * item = _items.first();
<a name="l03554"></a>03554   <span class="comment">// check if desktop file</span>
<a name="l03555"></a>03555   <span class="keywordflow">if</span> ( !<a class="code" href="classKPropsDlgPlugin.html#d29f1d332d93035d3ae2278ba25b2803" title="Convenience method for most supports methods.">KPropsDlgPlugin::isDesktopFile</a>( item ) )
<a name="l03556"></a>03556     <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l03557"></a>03557   <span class="comment">// open file and check type</span>
<a name="l03558"></a>03558   KDesktopFile config( item-&gt;url().path(), <span class="keyword">true</span> <span class="comment">/* readonly */</span> );
<a name="l03559"></a>03559   <span class="keywordflow">return</span> config.hasApplicationType() &amp;&amp; kapp-&gt;authorize(<span class="stringliteral">"run_desktop_files"</span>) &amp;&amp; kapp-&gt;authorize(<span class="stringliteral">"shell_access"</span>);
<a name="l03560"></a>03560 }
<a name="l03561"></a>03561 
<a name="l03562"></a>03562 <span class="keywordtype">void</span> KPropertiesDialog::virtual_hook( <span class="keywordtype">int</span> <span class="keywordtype">id</span>, <span class="keywordtype">void</span>* data )
<a name="l03563"></a>03563 { KDialogBase::virtual_hook( <span class="keywordtype">id</span>, data ); }
<a name="l03564"></a>03564 
<a name="l03565"></a>03565 <span class="keywordtype">void</span> KPropsDlgPlugin::virtual_hook( <span class="keywordtype">int</span>, <span class="keywordtype">void</span>* )
<a name="l03566"></a>03566 { <span class="comment">/*BASE::virtual_hook( id, data );*/</span> }
<a name="l03567"></a>03567 
<a name="l03568"></a>03568 
<a name="l03569"></a>03569 
<a name="l03570"></a>03570 
<a name="l03571"></a>03571 
<a name="l03577"></a>03577 <span class="keyword">class </span>KExecPropsPlugin::KExecPropsPluginPrivate
<a name="l03578"></a>03578 {
<a name="l03579"></a>03579 <span class="keyword">public</span>:
<a name="l03580"></a>03580   KExecPropsPluginPrivate()
<a name="l03581"></a>03581   {
<a name="l03582"></a>03582   }
<a name="l03583"></a>03583   ~KExecPropsPluginPrivate()
<a name="l03584"></a>03584   {
<a name="l03585"></a>03585   }
<a name="l03586"></a>03586 
<a name="l03587"></a>03587   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qframe.html">QFrame</a> *m_frame;
<a name="l03588"></a>03588   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcheckbox.html">QCheckBox</a> *nocloseonexitCheck;
<a name="l03589"></a>03589 };
<a name="l03590"></a>03590 
<a name="l03591"></a><a class="code" href="classKExecPropsPlugin.html#0094dee578802b9ffcd36c237fe0621b">03591</a> <a class="code" href="classKExecPropsPlugin.html#0094dee578802b9ffcd36c237fe0621b" title="Constructor.">KExecPropsPlugin::KExecPropsPlugin</a>( <a class="code" href="classKPropertiesDialog.html" title="The main properties dialog class.">KPropertiesDialog</a> *_props )
<a name="l03592"></a>03592   : <a class="code" href="classKPropsDlgPlugin.html" title="A Plugin in the Properties dialog This is an abstract class.">KPropsDlgPlugin</a>( _props )
<a name="l03593"></a>03593 {
<a name="l03594"></a>03594   d = <span class="keyword">new</span> KExecPropsPluginPrivate;
<a name="l03595"></a>03595   d-&gt;m_frame = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;addPage(i18n(<span class="stringliteral">"E&amp;xecute"</span>));
<a name="l03596"></a>03596   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qvboxlayout.html">QVBoxLayout</a> * mainlayout = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qvboxlayout.html">QVBoxLayout</a>( d-&gt;m_frame, 0,
<a name="l03597"></a>03597       KDialog::spacingHint());
<a name="l03598"></a>03598 
<a name="l03599"></a>03599   <span class="comment">// Now the widgets in the top layout</span>
<a name="l03600"></a>03600 
<a name="l03601"></a>03601   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>* l;
<a name="l03602"></a>03602   l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( i18n( <span class="stringliteral">"Comman&amp;d:"</span> ), d-&gt;m_frame );
<a name="l03603"></a>03603   mainlayout-&gt;addWidget(l);
<a name="l03604"></a>03604 
<a name="l03605"></a>03605   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qhboxlayout.html">QHBoxLayout</a> * hlayout;
<a name="l03606"></a>03606   hlayout = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qhboxlayout.html">QHBoxLayout</a>(KDialog::spacingHint());
<a name="l03607"></a>03607   mainlayout-&gt;addLayout(hlayout);
<a name="l03608"></a>03608 
<a name="l03609"></a>03609   execEdit = <span class="keyword">new</span> KLineEdit( d-&gt;m_frame );
<a name="l03610"></a>03610   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qwhatsthis.html#add">QWhatsThis::add</a>(execEdit,i18n(
<a name="l03611"></a>03611     <span class="stringliteral">"Following the command, you can have several place holders which will be replaced "</span>
<a name="l03612"></a>03612     <span class="stringliteral">"with the actual values when the actual program is run:\n"</span>
<a name="l03613"></a>03613     <span class="stringliteral">"%f - a single file name\n"</span>
<a name="l03614"></a>03614     <span class="stringliteral">"%F - a list of files; use for applications that can open several local files at once\n"</span>
<a name="l03615"></a>03615     <span class="stringliteral">"%u - a single URL\n"</span>
<a name="l03616"></a>03616     <span class="stringliteral">"%U - a list of URLs\n"</span>
<a name="l03617"></a>03617     <span class="stringliteral">"%d - the folder of the file to open\n"</span>
<a name="l03618"></a>03618     <span class="stringliteral">"%D - a list of folders\n"</span>
<a name="l03619"></a>03619     <span class="stringliteral">"%i - the icon\n"</span>
<a name="l03620"></a>03620     <span class="stringliteral">"%m - the mini-icon\n"</span>
<a name="l03621"></a>03621     <span class="stringliteral">"%c - the caption"</span>));
<a name="l03622"></a>03622   hlayout-&gt;addWidget(execEdit, 1);
<a name="l03623"></a>03623 
<a name="l03624"></a>03624   l-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html#setBuddy">setBuddy</a>( execEdit );
<a name="l03625"></a>03625 
<a name="l03626"></a>03626   execBrowse = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qpushbutton.html">QPushButton</a>( d-&gt;m_frame );
<a name="l03627"></a>03627   execBrowse-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qbutton.html#setText">setText</a>( i18n(<span class="stringliteral">"&amp;Browse..."</span>) );
<a name="l03628"></a>03628   hlayout-&gt;addWidget(execBrowse);
<a name="l03629"></a>03629 
<a name="l03630"></a>03630   <span class="comment">// The groupbox about swallowing</span>
<a name="l03631"></a>03631   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgroupbox.html">QGroupBox</a>* tmpQGroupBox;
<a name="l03632"></a>03632   tmpQGroupBox = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgroupbox.html">QGroupBox</a>( i18n(<span class="stringliteral">"Panel Embedding"</span>), d-&gt;m_frame );
<a name="l03633"></a>03633   tmpQGroupBox-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgroupbox.html#setColumnLayout">setColumnLayout</a>( 0, Qt::Horizontal );
<a name="l03634"></a>03634 
<a name="l03635"></a>03635   mainlayout-&gt;addWidget(tmpQGroupBox);
<a name="l03636"></a>03636 
<a name="l03637"></a>03637   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html">QGridLayout</a> *grid = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html">QGridLayout</a>(tmpQGroupBox-&gt;layout(), 2, 2);
<a name="l03638"></a>03638   grid-&gt;setSpacing( KDialog::spacingHint() );
<a name="l03639"></a>03639   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#setColStretch">setColStretch</a>(1, 1);
<a name="l03640"></a>03640 
<a name="l03641"></a>03641   l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( i18n( <span class="stringliteral">"&amp;Execute on click:"</span> ), tmpQGroupBox );
<a name="l03642"></a>03642   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(l, 0, 0);
<a name="l03643"></a>03643 
<a name="l03644"></a>03644   swallowExecEdit = <span class="keyword">new</span> KLineEdit( tmpQGroupBox );
<a name="l03645"></a>03645   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(swallowExecEdit, 0, 1);
<a name="l03646"></a>03646 
<a name="l03647"></a>03647   l-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html#setBuddy">setBuddy</a>( swallowExecEdit );
<a name="l03648"></a>03648 
<a name="l03649"></a>03649   l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( i18n( <span class="stringliteral">"&amp;Window title:"</span> ), tmpQGroupBox );
<a name="l03650"></a>03650   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(l, 1, 0);
<a name="l03651"></a>03651 
<a name="l03652"></a>03652   swallowTitleEdit = <span class="keyword">new</span> KLineEdit( tmpQGroupBox );
<a name="l03653"></a>03653   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(swallowTitleEdit, 1, 1);
<a name="l03654"></a>03654 
<a name="l03655"></a>03655   l-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html#setBuddy">setBuddy</a>( swallowTitleEdit );
<a name="l03656"></a>03656 
<a name="l03657"></a>03657   <span class="comment">// The groupbox about run in terminal</span>
<a name="l03658"></a>03658 
<a name="l03659"></a>03659   tmpQGroupBox = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgroupbox.html">QGroupBox</a>( d-&gt;m_frame );
<a name="l03660"></a>03660   tmpQGroupBox-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgroupbox.html#setColumnLayout">setColumnLayout</a>( 0, Qt::Horizontal );
<a name="l03661"></a>03661 
<a name="l03662"></a>03662   mainlayout-&gt;addWidget(tmpQGroupBox);
<a name="l03663"></a>03663 
<a name="l03664"></a>03664   grid = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html">QGridLayout</a>(tmpQGroupBox-&gt;layout(), 3, 2);
<a name="l03665"></a>03665   grid-&gt;setSpacing( KDialog::spacingHint() );
<a name="l03666"></a>03666   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#setColStretch">setColStretch</a>(1, 1);
<a name="l03667"></a>03667 
<a name="l03668"></a>03668   terminalCheck = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcheckbox.html">QCheckBox</a>( tmpQGroupBox );
<a name="l03669"></a>03669   terminalCheck-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcheckbox.html#setText">setText</a>( i18n(<span class="stringliteral">"&amp;Run in terminal"</span>) );
<a name="l03670"></a>03670   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addMultiCellWidget">addMultiCellWidget</a>(terminalCheck, 0, 0, 0, 1);
<a name="l03671"></a>03671 
<a name="l03672"></a>03672   <span class="comment">// check to see if we use konsole if not do not add the nocloseonexit</span>
<a name="l03673"></a>03673   <span class="comment">// because we don't know how to do this on other terminal applications</span>
<a name="l03674"></a>03674   KConfigGroup confGroup( KGlobal::config(), <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#fromLatin1">QString::fromLatin1</a>(<span class="stringliteral">"General"</span>) );
<a name="l03675"></a>03675   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> preferredTerminal = confGroup.readPathEntry(<span class="stringliteral">"TerminalApplication"</span>,
<a name="l03676"></a>03676                           <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#fromLatin1">QString::fromLatin1</a>(<span class="stringliteral">"konsole"</span>));
<a name="l03677"></a>03677 
<a name="l03678"></a>03678   <span class="keywordtype">int</span> posOptions = 1;
<a name="l03679"></a>03679   d-&gt;nocloseonexitCheck = 0L;
<a name="l03680"></a>03680   <span class="keywordflow">if</span> (preferredTerminal == <span class="stringliteral">"konsole"</span>)
<a name="l03681"></a>03681   {
<a name="l03682"></a>03682     posOptions = 2;
<a name="l03683"></a>03683     d-&gt;nocloseonexitCheck = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcheckbox.html">QCheckBox</a>( tmpQGroupBox );
<a name="l03684"></a>03684     d-&gt;nocloseonexitCheck-&gt;setText( i18n(<span class="stringliteral">"Do not &amp;close when command exits"</span>) );
<a name="l03685"></a>03685     grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addMultiCellWidget">addMultiCellWidget</a>(d-&gt;nocloseonexitCheck, 1, 1, 0, 1);
<a name="l03686"></a>03686   }
<a name="l03687"></a>03687 
<a name="l03688"></a>03688   terminalLabel = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>( i18n( <span class="stringliteral">"&amp;Terminal options:"</span> ), tmpQGroupBox );
<a name="l03689"></a>03689   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(terminalLabel, posOptions, 0);
<a name="l03690"></a>03690 
<a name="l03691"></a>03691   terminalEdit = <span class="keyword">new</span> KLineEdit( tmpQGroupBox );
<a name="l03692"></a>03692   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(terminalEdit, posOptions, 1);
<a name="l03693"></a>03693 
<a name="l03694"></a>03694   terminalLabel-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html#setBuddy">setBuddy</a>( terminalEdit );
<a name="l03695"></a>03695 
<a name="l03696"></a>03696   <span class="comment">// The groupbox about run with substituted uid.</span>
<a name="l03697"></a>03697 
<a name="l03698"></a>03698   tmpQGroupBox = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgroupbox.html">QGroupBox</a>( d-&gt;m_frame );
<a name="l03699"></a>03699   tmpQGroupBox-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgroupbox.html#setColumnLayout">setColumnLayout</a>( 0, Qt::Horizontal );
<a name="l03700"></a>03700 
<a name="l03701"></a>03701   mainlayout-&gt;addWidget(tmpQGroupBox);
<a name="l03702"></a>03702 
<a name="l03703"></a>03703   grid = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html">QGridLayout</a>(tmpQGroupBox-&gt;layout(), 2, 2);
<a name="l03704"></a>03704   grid-&gt;setSpacing(KDialog::spacingHint());
<a name="l03705"></a>03705   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#setColStretch">setColStretch</a>(1, 1);
<a name="l03706"></a>03706 
<a name="l03707"></a>03707   suidCheck = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcheckbox.html">QCheckBox</a>(tmpQGroupBox);
<a name="l03708"></a>03708   suidCheck-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcheckbox.html#setText">setText</a>(i18n(<span class="stringliteral">"Ru&amp;n as a different user"</span>));
<a name="l03709"></a>03709   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addMultiCellWidget">addMultiCellWidget</a>(suidCheck, 0, 0, 0, 1);
<a name="l03710"></a>03710 
<a name="l03711"></a>03711   suidLabel = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>(i18n( <span class="stringliteral">"&amp;Username:"</span> ), tmpQGroupBox);
<a name="l03712"></a>03712   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(suidLabel, 1, 0);
<a name="l03713"></a>03713 
<a name="l03714"></a>03714   suidEdit = <span class="keyword">new</span> KLineEdit(tmpQGroupBox);
<a name="l03715"></a>03715   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(suidEdit, 1, 1);
<a name="l03716"></a>03716 
<a name="l03717"></a>03717   suidLabel-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html#setBuddy">setBuddy</a>( suidEdit );
<a name="l03718"></a>03718 
<a name="l03719"></a>03719   mainlayout-&gt;addStretch(1);
<a name="l03720"></a>03720 
<a name="l03721"></a>03721   <span class="comment">// now populate the page</span>
<a name="l03722"></a>03722   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> path = _props-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().path();
<a name="l03723"></a>03723   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html">QFile</a> f( path );
<a name="l03724"></a>03724   <span class="keywordflow">if</span> ( !f.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html#open">open</a>( IO_ReadOnly ) )
<a name="l03725"></a>03725     <span class="keywordflow">return</span>;
<a name="l03726"></a>03726   f.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html#close">close</a>();
<a name="l03727"></a>03727 
<a name="l03728"></a>03728   KSimpleConfig config( path );
<a name="l03729"></a>03729   config.setDollarExpansion( <span class="keyword">false</span> );
<a name="l03730"></a>03730   config.setDesktopGroup();
<a name="l03731"></a>03731   execStr = config.readPathEntry( <span class="stringliteral">"Exec"</span> );
<a name="l03732"></a>03732   swallowExecStr = config.readPathEntry( <span class="stringliteral">"SwallowExec"</span> );
<a name="l03733"></a>03733   swallowTitleStr = config.readEntry( <span class="stringliteral">"SwallowTitle"</span> );
<a name="l03734"></a>03734   termBool = config.readBoolEntry( <span class="stringliteral">"Terminal"</span> );
<a name="l03735"></a>03735   termOptionsStr = config.readEntry( <span class="stringliteral">"TerminalOptions"</span> );
<a name="l03736"></a>03736   suidBool = config.readBoolEntry( <span class="stringliteral">"X-KDE-SubstituteUID"</span> );
<a name="l03737"></a>03737   suidUserStr = config.readEntry( <span class="stringliteral">"X-KDE-Username"</span> );
<a name="l03738"></a>03738 
<a name="l03739"></a>03739   <span class="keywordflow">if</span> ( !swallowExecStr.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isNull">isNull</a>() )
<a name="l03740"></a>03740     swallowExecEdit-&gt;setText( swallowExecStr );
<a name="l03741"></a>03741   <span class="keywordflow">if</span> ( !swallowTitleStr.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isNull">isNull</a>() )
<a name="l03742"></a>03742     swallowTitleEdit-&gt;setText( swallowTitleStr );
<a name="l03743"></a>03743 
<a name="l03744"></a>03744   <span class="keywordflow">if</span> ( !execStr.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isNull">isNull</a>() )
<a name="l03745"></a>03745     execEdit-&gt;setText( execStr );
<a name="l03746"></a>03746 
<a name="l03747"></a>03747   <span class="keywordflow">if</span> ( d-&gt;nocloseonexitCheck )
<a name="l03748"></a>03748   {
<a name="l03749"></a>03749     d-&gt;nocloseonexitCheck-&gt;setChecked( (termOptionsStr.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#contains">contains</a>( <span class="stringliteral">"--noclose"</span> ) &gt; 0) );
<a name="l03750"></a>03750     termOptionsStr.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#replace">replace</a>( <span class="stringliteral">"--noclose"</span>, <span class="stringliteral">""</span>);
<a name="l03751"></a>03751   }
<a name="l03752"></a>03752   <span class="keywordflow">if</span> ( !termOptionsStr.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isNull">isNull</a>() )
<a name="l03753"></a>03753     terminalEdit-&gt;setText( termOptionsStr );
<a name="l03754"></a>03754 
<a name="l03755"></a>03755   terminalCheck-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcheckbox.html#setChecked">setChecked</a>( termBool );
<a name="l03756"></a>03756   enableCheckedEdit();
<a name="l03757"></a>03757 
<a name="l03758"></a>03758   suidCheck-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcheckbox.html#setChecked">setChecked</a>( suidBool );
<a name="l03759"></a>03759   suidEdit-&gt;setText( suidUserStr );
<a name="l03760"></a>03760   enableSuidEdit();
<a name="l03761"></a>03761 
<a name="l03762"></a>03762   <span class="comment">// Provide username completion up to 1000 users.</span>
<a name="l03763"></a>03763   KCompletion *kcom = <span class="keyword">new</span> KCompletion;
<a name="l03764"></a>03764   kcom-&gt;setOrder(KCompletion::Sorted);
<a name="l03765"></a>03765   <span class="keyword">struct </span>passwd *pw;
<a name="l03766"></a>03766   <span class="keywordtype">int</span> i, maxEntries = 1000;
<a name="l03767"></a>03767   setpwent();
<a name="l03768"></a>03768   <span class="keywordflow">for</span> (i=0; ((pw = getpwent()) != 0L) &amp;&amp; (i &lt; maxEntries); i++)
<a name="l03769"></a>03769     kcom-&gt;addItem(<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#fromLatin1">QString::fromLatin1</a>(pw-&gt;pw_name));
<a name="l03770"></a>03770   endpwent();
<a name="l03771"></a>03771   <span class="keywordflow">if</span> (i &lt; maxEntries)
<a name="l03772"></a>03772   {
<a name="l03773"></a>03773     suidEdit-&gt;setCompletionObject(kcom, <span class="keyword">true</span>);
<a name="l03774"></a>03774     suidEdit-&gt;setAutoDeleteCompletionObject( <span class="keyword">true</span> );
<a name="l03775"></a>03775     suidEdit-&gt;setCompletionMode(KGlobalSettings::CompletionAuto);
<a name="l03776"></a>03776   }
<a name="l03777"></a>03777   <span class="keywordflow">else</span>
<a name="l03778"></a>03778   {
<a name="l03779"></a>03779     <span class="keyword">delete</span> kcom;
<a name="l03780"></a>03780   }
<a name="l03781"></a>03781 
<a name="l03782"></a>03782   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( swallowExecEdit, SIGNAL( textChanged( <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> &amp; ) ),
<a name="l03783"></a>03783            <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l03784"></a>03784   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( swallowTitleEdit, SIGNAL( textChanged( <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> &amp; ) ),
<a name="l03785"></a>03785            <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l03786"></a>03786   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( execEdit, SIGNAL( textChanged( <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> &amp; ) ),
<a name="l03787"></a>03787            <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l03788"></a>03788   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( terminalEdit, SIGNAL( textChanged( <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> &amp; ) ),
<a name="l03789"></a>03789            <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l03790"></a>03790   <span class="keywordflow">if</span> (d-&gt;nocloseonexitCheck)
<a name="l03791"></a>03791     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( d-&gt;nocloseonexitCheck, SIGNAL( toggled( <span class="keywordtype">bool</span> ) ),
<a name="l03792"></a>03792            <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l03793"></a>03793   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( terminalCheck, SIGNAL( toggled( <span class="keywordtype">bool</span> ) ),
<a name="l03794"></a>03794            <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l03795"></a>03795   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( suidCheck, SIGNAL( toggled( <span class="keywordtype">bool</span> ) ),
<a name="l03796"></a>03796            <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l03797"></a>03797   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( suidEdit, SIGNAL( textChanged( <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> &amp; ) ),
<a name="l03798"></a>03798            <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l03799"></a>03799 
<a name="l03800"></a>03800   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( execBrowse, SIGNAL( clicked() ), <span class="keyword">this</span>, SLOT( slotBrowseExec() ) );
<a name="l03801"></a>03801   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( terminalCheck, SIGNAL( clicked() ), <span class="keyword">this</span>,  SLOT( enableCheckedEdit() ) );
<a name="l03802"></a>03802   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( suidCheck, SIGNAL( clicked() ), <span class="keyword">this</span>,  SLOT( enableSuidEdit() ) );
<a name="l03803"></a>03803 
<a name="l03804"></a>03804 }
<a name="l03805"></a>03805 
<a name="l03806"></a>03806 KExecPropsPlugin::~KExecPropsPlugin()
<a name="l03807"></a>03807 {
<a name="l03808"></a>03808   <span class="keyword">delete</span> d;
<a name="l03809"></a>03809 }
<a name="l03810"></a>03810 
<a name="l03811"></a>03811 <span class="keywordtype">void</span> KExecPropsPlugin::enableCheckedEdit()
<a name="l03812"></a>03812 {
<a name="l03813"></a>03813   <span class="keywordtype">bool</span> checked = terminalCheck-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcheckbox.html#isChecked">isChecked</a>();
<a name="l03814"></a>03814   terminalLabel-&gt;setEnabled( checked );
<a name="l03815"></a>03815   <span class="keywordflow">if</span> (d-&gt;nocloseonexitCheck)
<a name="l03816"></a>03816     d-&gt;nocloseonexitCheck-&gt;setEnabled( checked );
<a name="l03817"></a>03817   terminalEdit-&gt;setEnabled( checked );
<a name="l03818"></a>03818 }
<a name="l03819"></a>03819 
<a name="l03820"></a>03820 <span class="keywordtype">void</span> KExecPropsPlugin::enableSuidEdit()
<a name="l03821"></a>03821 {
<a name="l03822"></a>03822   <span class="keywordtype">bool</span> checked = suidCheck-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcheckbox.html#isChecked">isChecked</a>();
<a name="l03823"></a>03823   suidLabel-&gt;setEnabled( checked );
<a name="l03824"></a>03824   suidEdit-&gt;setEnabled( checked );
<a name="l03825"></a>03825 }
<a name="l03826"></a>03826 
<a name="l03827"></a>03827 <span class="keywordtype">bool</span> KExecPropsPlugin::supports( KFileItemList _items )
<a name="l03828"></a>03828 {
<a name="l03829"></a>03829   <span class="keywordflow">if</span> ( _items.count() != 1 )
<a name="l03830"></a>03830     <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l03831"></a>03831   KFileItem * item = _items.first();
<a name="l03832"></a>03832   <span class="comment">// check if desktop file</span>
<a name="l03833"></a>03833   <span class="keywordflow">if</span> ( !<a class="code" href="classKPropsDlgPlugin.html#d29f1d332d93035d3ae2278ba25b2803" title="Convenience method for most supports methods.">KPropsDlgPlugin::isDesktopFile</a>( item ) )
<a name="l03834"></a>03834     <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l03835"></a>03835   <span class="comment">// open file and check type</span>
<a name="l03836"></a>03836   KDesktopFile config( item-&gt;url().path(), <span class="keyword">true</span> <span class="comment">/* readonly */</span> );
<a name="l03837"></a>03837   <span class="keywordflow">return</span> config.hasApplicationType() &amp;&amp; kapp-&gt;authorize(<span class="stringliteral">"run_desktop_files"</span>) &amp;&amp; kapp-&gt;authorize(<span class="stringliteral">"shell_access"</span>);
<a name="l03838"></a>03838 }
<a name="l03839"></a>03839 
<a name="l03840"></a><a class="code" href="classKExecPropsPlugin.html#0a72341bb6c5a0b160c8844c4e80cd1d">03840</a> <span class="keywordtype">void</span> <a class="code" href="classKExecPropsPlugin.html#0a72341bb6c5a0b160c8844c4e80cd1d" title="Applies all changes to the file.">KExecPropsPlugin::applyChanges</a>()
<a name="l03841"></a>03841 {
<a name="l03842"></a>03842   kdDebug(250) &lt;&lt; <span class="stringliteral">"KExecPropsPlugin::applyChanges"</span> &lt;&lt; endl;
<a name="l03843"></a>03843   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> path = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().path();
<a name="l03844"></a>03844 
<a name="l03845"></a>03845   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html">QFile</a> f( path );
<a name="l03846"></a>03846 
<a name="l03847"></a>03847   <span class="keywordflow">if</span> ( !f.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html#open">open</a>( IO_ReadWrite ) ) {
<a name="l03848"></a>03848     KMessageBox::sorry( 0, i18n(<span class="stringliteral">"&lt;qt&gt;Could not save properties. You do not have "</span>
<a name="l03849"></a>03849                 <span class="stringliteral">"sufficient access to write to &lt;b&gt;%1&lt;/b&gt;.&lt;/qt&gt;"</span>).arg(path));
<a name="l03850"></a>03850     <span class="keywordflow">return</span>;
<a name="l03851"></a>03851   }
<a name="l03852"></a>03852   f.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html#close">close</a>();
<a name="l03853"></a>03853 
<a name="l03854"></a>03854   KSimpleConfig config( path );
<a name="l03855"></a>03855   config.setDesktopGroup();
<a name="l03856"></a>03856   config.writeEntry( <span class="stringliteral">"Type"</span>, <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#fromLatin1">QString::fromLatin1</a>(<span class="stringliteral">"Application"</span>));
<a name="l03857"></a>03857   config.writePathEntry( <span class="stringliteral">"Exec"</span>, execEdit-&gt;text() );
<a name="l03858"></a>03858   config.writePathEntry( <span class="stringliteral">"SwallowExec"</span>, swallowExecEdit-&gt;text() );
<a name="l03859"></a>03859   config.writeEntry( <span class="stringliteral">"SwallowTitle"</span>, swallowTitleEdit-&gt;text() );
<a name="l03860"></a>03860   config.writeEntry( <span class="stringliteral">"Terminal"</span>, terminalCheck-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcheckbox.html#isChecked">isChecked</a>() );
<a name="l03861"></a>03861   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> temp = terminalEdit-&gt;text();
<a name="l03862"></a>03862   <span class="keywordflow">if</span> (d-&gt;nocloseonexitCheck )
<a name="l03863"></a>03863     <span class="keywordflow">if</span> ( d-&gt;nocloseonexitCheck-&gt;isChecked() )
<a name="l03864"></a>03864       temp += <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#fromLatin1">QString::fromLatin1</a>(<span class="stringliteral">"--noclose "</span>);
<a name="l03865"></a>03865   temp = temp.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#stripWhiteSpace">stripWhiteSpace</a>();
<a name="l03866"></a>03866   config.writeEntry( <span class="stringliteral">"TerminalOptions"</span>, temp );
<a name="l03867"></a>03867   config.writeEntry( <span class="stringliteral">"X-KDE-SubstituteUID"</span>, suidCheck-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcheckbox.html#isChecked">isChecked</a>() );
<a name="l03868"></a>03868   config.writeEntry( <span class="stringliteral">"X-KDE-Username"</span>, suidEdit-&gt;text() );
<a name="l03869"></a>03869 }
<a name="l03870"></a>03870 
<a name="l03871"></a>03871 
<a name="l03872"></a>03872 <span class="keywordtype">void</span> KExecPropsPlugin::slotBrowseExec()
<a name="l03873"></a>03873 {
<a name="l03874"></a>03874     KURL f = <a class="code" href="classKFileDialog.html#253d8042934dc81cf7636691e741fe95" title="Creates a modal file dialog and returns the selected URL or an empty string if none...">KFileDialog::getOpenURL</a>( QString::null,
<a name="l03875"></a>03875                                       QString::null, d-&gt;m_frame );
<a name="l03876"></a>03876     <span class="keywordflow">if</span> ( f.isEmpty() )
<a name="l03877"></a>03877         <span class="keywordflow">return</span>;
<a name="l03878"></a>03878 
<a name="l03879"></a>03879     <span class="keywordflow">if</span> ( !f.isLocalFile()) {
<a name="l03880"></a>03880         KMessageBox::sorry(d-&gt;m_frame, i18n(<span class="stringliteral">"Only executables on local file systems are supported."</span>));
<a name="l03881"></a>03881         <span class="keywordflow">return</span>;
<a name="l03882"></a>03882     }
<a name="l03883"></a>03883 
<a name="l03884"></a>03884     <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> path = f.path();
<a name="l03885"></a>03885     KRun::shellQuote( path );
<a name="l03886"></a>03886     execEdit-&gt;setText( path );
<a name="l03887"></a>03887 }
<a name="l03888"></a>03888 
<a name="l03889"></a>03889 <span class="keyword">class </span>KApplicationPropsPlugin::KApplicationPropsPluginPrivate
<a name="l03890"></a>03890 {
<a name="l03891"></a>03891 <span class="keyword">public</span>:
<a name="l03892"></a>03892   KApplicationPropsPluginPrivate()
<a name="l03893"></a>03893   {
<a name="l03894"></a>03894       m_kdesktopMode = <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qcstring.html">QCString</a>(qApp-&gt;name()) == <span class="stringliteral">"kdesktop"</span>; <span class="comment">// nasty heh?</span>
<a name="l03895"></a>03895   }
<a name="l03896"></a>03896   ~KApplicationPropsPluginPrivate()
<a name="l03897"></a>03897   {
<a name="l03898"></a>03898   }
<a name="l03899"></a>03899 
<a name="l03900"></a>03900   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qframe.html">QFrame</a> *m_frame;
<a name="l03901"></a>03901   <span class="keywordtype">bool</span> m_kdesktopMode;
<a name="l03902"></a>03902 };
<a name="l03903"></a>03903 
<a name="l03904"></a><a class="code" href="classKApplicationPropsPlugin.html#f6aea032ee99314353e75e33a54e403d">03904</a> <a class="code" href="classKApplicationPropsPlugin.html#f6aea032ee99314353e75e33a54e403d" title="Constructor.">KApplicationPropsPlugin::KApplicationPropsPlugin</a>( <a class="code" href="classKPropertiesDialog.html" title="The main properties dialog class.">KPropertiesDialog</a> *_props )
<a name="l03905"></a>03905   : <a class="code" href="classKPropsDlgPlugin.html" title="A Plugin in the Properties dialog This is an abstract class.">KPropsDlgPlugin</a>( _props )
<a name="l03906"></a>03906 {
<a name="l03907"></a>03907   d = <span class="keyword">new</span> KApplicationPropsPluginPrivate;
<a name="l03908"></a>03908   d-&gt;m_frame = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;addPage(i18n(<span class="stringliteral">"&amp;Application"</span>));
<a name="l03909"></a>03909   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qvboxlayout.html">QVBoxLayout</a> *toplayout = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qvboxlayout.html">QVBoxLayout</a>( d-&gt;m_frame, 0, KDialog::spacingHint());
<a name="l03910"></a>03910 
<a name="l03911"></a>03911   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qiconset.html">QIconSet</a> iconSet;
<a name="l03912"></a>03912   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qpixmap.html">QPixmap</a> pixMap;
<a name="l03913"></a>03913 
<a name="l03914"></a>03914   addExtensionButton = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qpushbutton.html">QPushButton</a>( QString::null, d-&gt;m_frame );
<a name="l03915"></a>03915   iconSet = SmallIconSet( <span class="stringliteral">"back"</span> );
<a name="l03916"></a>03916   addExtensionButton-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qpushbutton.html#setIconSet">setIconSet</a>( iconSet );
<a name="l03917"></a>03917   pixMap = iconSet.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qiconset.html#pixmap">pixmap</a>( QIconSet::Small, QIconSet::Normal );
<a name="l03918"></a>03918   addExtensionButton-&gt;setFixedSize( pixMap.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qpixmap.html#width">width</a>()+8, pixMap.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qpixmap.html#height">height</a>()+8 );
<a name="l03919"></a>03919   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( addExtensionButton, SIGNAL( clicked() ),
<a name="l03920"></a>03920             SLOT( slotAddExtension() ) );
<a name="l03921"></a>03921 
<a name="l03922"></a>03922   delExtensionButton = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qpushbutton.html">QPushButton</a>( QString::null, d-&gt;m_frame );
<a name="l03923"></a>03923   iconSet = SmallIconSet( <span class="stringliteral">"forward"</span> );
<a name="l03924"></a>03924   delExtensionButton-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qpushbutton.html#setIconSet">setIconSet</a>( iconSet );
<a name="l03925"></a>03925   delExtensionButton-&gt;setFixedSize( pixMap.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qpixmap.html#width">width</a>()+8, pixMap.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qpixmap.html#height">height</a>()+8 );
<a name="l03926"></a>03926   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( delExtensionButton, SIGNAL( clicked() ),
<a name="l03927"></a>03927             SLOT( slotDelExtension() ) );
<a name="l03928"></a>03928 
<a name="l03929"></a>03929   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a> *l;
<a name="l03930"></a>03930 
<a name="l03931"></a>03931   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html">QGridLayout</a> *grid = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html">QGridLayout</a>(2, 2);
<a name="l03932"></a>03932   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#setColStretch">setColStretch</a>(1, 1);
<a name="l03933"></a>03933   toplayout-&gt;addLayout(grid);
<a name="l03934"></a>03934 
<a name="l03935"></a>03935   <span class="keywordflow">if</span> ( d-&gt;m_kdesktopMode )
<a name="l03936"></a>03936   {
<a name="l03937"></a>03937       <span class="comment">// in kdesktop the name field comes from the first tab</span>
<a name="l03938"></a>03938       nameEdit = 0L;
<a name="l03939"></a>03939   }
<a name="l03940"></a>03940   <span class="keywordflow">else</span>
<a name="l03941"></a>03941   {
<a name="l03942"></a>03942       l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>(i18n(<span class="stringliteral">"Name:"</span>), d-&gt;m_frame, <span class="stringliteral">"Label_4"</span> );
<a name="l03943"></a>03943       grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(l, 0, 0);
<a name="l03944"></a>03944 
<a name="l03945"></a>03945       nameEdit = <span class="keyword">new</span> KLineEdit( d-&gt;m_frame, <span class="stringliteral">"LineEdit_3"</span> );
<a name="l03946"></a>03946       grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(nameEdit, 0, 1);
<a name="l03947"></a>03947   }
<a name="l03948"></a>03948 
<a name="l03949"></a>03949   l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>(i18n(<span class="stringliteral">"Description:"</span>),  d-&gt;m_frame, <span class="stringliteral">"Label_5"</span> );
<a name="l03950"></a>03950   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(l, 1, 0);
<a name="l03951"></a>03951 
<a name="l03952"></a>03952   genNameEdit = <span class="keyword">new</span> KLineEdit( d-&gt;m_frame, <span class="stringliteral">"LineEdit_4"</span> );
<a name="l03953"></a>03953   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(genNameEdit, 1, 1);
<a name="l03954"></a>03954 
<a name="l03955"></a>03955   l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>(i18n(<span class="stringliteral">"Comment:"</span>),  d-&gt;m_frame, <span class="stringliteral">"Label_3"</span> );
<a name="l03956"></a>03956   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(l, 2, 0);
<a name="l03957"></a>03957 
<a name="l03958"></a>03958   commentEdit = <span class="keyword">new</span> KLineEdit( d-&gt;m_frame, <span class="stringliteral">"LineEdit_2"</span> );
<a name="l03959"></a>03959   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(commentEdit, 2, 1);
<a name="l03960"></a>03960 
<a name="l03961"></a>03961   l = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlabel.html">QLabel</a>(i18n(<span class="stringliteral">"File types:"</span>), d-&gt;m_frame);
<a name="l03962"></a>03962   toplayout-&gt;addWidget(l, 0, AlignLeft);
<a name="l03963"></a>03963 
<a name="l03964"></a>03964   grid = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html">QGridLayout</a>(4, 3);
<a name="l03965"></a>03965   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#setColStretch">setColStretch</a>(0, 1);
<a name="l03966"></a>03966   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#setColStretch">setColStretch</a>(2, 1);
<a name="l03967"></a>03967   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#setRowStretch">setRowStretch</a>( 0, 1 );
<a name="l03968"></a>03968   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#setRowStretch">setRowStretch</a>( 3, 1 );
<a name="l03969"></a>03969   toplayout-&gt;addLayout(grid, 2);
<a name="l03970"></a>03970 
<a name="l03971"></a>03971   extensionsList = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistbox.html">QListBox</a>( d-&gt;m_frame );
<a name="l03972"></a>03972   extensionsList-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistbox.html#setSelectionMode">setSelectionMode</a>( QListBox::Extended );
<a name="l03973"></a>03973   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addMultiCellWidget">addMultiCellWidget</a>(extensionsList, 0, 3, 0, 0);
<a name="l03974"></a>03974 
<a name="l03975"></a>03975   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(addExtensionButton, 1, 1);
<a name="l03976"></a>03976   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addWidget">addWidget</a>(delExtensionButton, 2, 1);
<a name="l03977"></a>03977 
<a name="l03978"></a>03978   availableExtensionsList = <span class="keyword">new</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistbox.html">QListBox</a>( d-&gt;m_frame );
<a name="l03979"></a>03979   availableExtensionsList-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistbox.html#setSelectionMode">setSelectionMode</a>( QListBox::Extended );
<a name="l03980"></a>03980   grid-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qgridlayout.html#addMultiCellWidget">addMultiCellWidget</a>(availableExtensionsList, 0, 3, 2, 2);
<a name="l03981"></a>03981 
<a name="l03982"></a>03982   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> path = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().path() ;
<a name="l03983"></a>03983   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html">QFile</a> f( path );
<a name="l03984"></a>03984   <span class="keywordflow">if</span> ( !f.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html#open">open</a>( IO_ReadOnly ) )
<a name="l03985"></a>03985     <span class="keywordflow">return</span>;
<a name="l03986"></a>03986   f.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html#close">close</a>();
<a name="l03987"></a>03987 
<a name="l03988"></a>03988   KDesktopFile config( path );
<a name="l03989"></a>03989   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> commentStr = config.readComment();
<a name="l03990"></a>03990   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> genNameStr = config.readGenericName();
<a name="l03991"></a>03991 
<a name="l03992"></a>03992   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstringlist.html">QStringList</a> selectedTypes = config.readListEntry( <span class="stringliteral">"ServiceTypes"</span> );
<a name="l03993"></a>03993   <span class="comment">// For compatibility with KDE 1.x</span>
<a name="l03994"></a>03994   selectedTypes += config.readListEntry( <span class="stringliteral">"MimeType"</span>, <span class="charliteral">';'</span> );
<a name="l03995"></a>03995 
<a name="l03996"></a>03996   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> nameStr = config.readName();
<a name="l03997"></a>03997   <span class="keywordflow">if</span> ( nameStr.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isEmpty">isEmpty</a>() || d-&gt;m_kdesktopMode ) {
<a name="l03998"></a>03998     <span class="comment">// We'll use the file name if no name is specified</span>
<a name="l03999"></a>03999     <span class="comment">// because we _need_ a Name for a valid file.</span>
<a name="l04000"></a>04000     <span class="comment">// But let's do it in apply, not here, so that we pick up the right name.</span>
<a name="l04001"></a>04001     setDirty();
<a name="l04002"></a>04002   }
<a name="l04003"></a>04003 
<a name="l04004"></a>04004   commentEdit-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlineedit.html#setText">setText</a>( commentStr );
<a name="l04005"></a>04005   genNameEdit-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlineedit.html#setText">setText</a>( genNameStr );
<a name="l04006"></a>04006   <span class="keywordflow">if</span> ( nameEdit )
<a name="l04007"></a>04007       nameEdit-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlineedit.html#setText">setText</a>( nameStr );
<a name="l04008"></a>04008 
<a name="l04009"></a>04009   selectedTypes.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstringlist.html#sort">sort</a>();
<a name="l04010"></a>04010   QStringList::Iterator sit = selectedTypes.begin();
<a name="l04011"></a>04011   <span class="keywordflow">for</span>( ; sit != selectedTypes.end(); ++sit ) {
<a name="l04012"></a>04012     <span class="keywordflow">if</span> ( !((*sit).isEmpty()) )
<a name="l04013"></a>04013       extensionsList-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistbox.html#insertItem">insertItem</a>( *sit );
<a name="l04014"></a>04014   }
<a name="l04015"></a>04015 
<a name="l04016"></a>04016   KMimeType::List mimeTypes = KMimeType::allMimeTypes();
<a name="l04017"></a>04017   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qvaluelistiterator.html">QValueListIterator&lt;KMimeType::Ptr&gt;</a> it2 = mimeTypes.begin();
<a name="l04018"></a>04018   <span class="keywordflow">for</span> ( ; it2 != mimeTypes.end(); ++it2 )
<a name="l04019"></a>04019     addMimeType ( (*it2)-&gt;name() );
<a name="l04020"></a>04020 
<a name="l04021"></a>04021   updateButton();
<a name="l04022"></a>04022 
<a name="l04023"></a>04023   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( extensionsList, SIGNAL( highlighted( <span class="keywordtype">int</span> ) ),
<a name="l04024"></a>04024            <span class="keyword">this</span>, SLOT( updateButton() ) );
<a name="l04025"></a>04025   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( availableExtensionsList, SIGNAL( highlighted( <span class="keywordtype">int</span> ) ),
<a name="l04026"></a>04026            <span class="keyword">this</span>, SLOT( updateButton() ) );
<a name="l04027"></a>04027 
<a name="l04028"></a>04028   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( addExtensionButton, SIGNAL( clicked() ),
<a name="l04029"></a>04029            <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l04030"></a>04030   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( delExtensionButton, SIGNAL( clicked() ),
<a name="l04031"></a>04031            <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l04032"></a>04032   <span class="keywordflow">if</span> ( nameEdit )
<a name="l04033"></a>04033       <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( nameEdit, SIGNAL( textChanged( <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> &amp; ) ),
<a name="l04034"></a>04034                <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l04035"></a>04035   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( commentEdit, SIGNAL( textChanged( <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> &amp; ) ),
<a name="l04036"></a>04036            <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l04037"></a>04037   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( genNameEdit, SIGNAL( textChanged( <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> &amp; ) ),
<a name="l04038"></a>04038            <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l04039"></a>04039   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( availableExtensionsList, SIGNAL( selected( <span class="keywordtype">int</span> ) ),
<a name="l04040"></a>04040            <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l04041"></a>04041   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#connect">connect</a>( extensionsList, SIGNAL( selected( <span class="keywordtype">int</span> ) ),
<a name="l04042"></a>04042            <span class="keyword">this</span>, SIGNAL( <a class="code" href="classKPropsDlgPlugin.html#50aadff2df577ad8cd112a1b9f9252ee" title="Emit this signal when the user changed anything in the plugin&amp;#39;s tabs.">changed</a>() ) );
<a name="l04043"></a>04043 }
<a name="l04044"></a>04044 
<a name="l04045"></a>04045 KApplicationPropsPlugin::~KApplicationPropsPlugin()
<a name="l04046"></a>04046 {
<a name="l04047"></a>04047   <span class="keyword">delete</span> d;
<a name="l04048"></a>04048 }
<a name="l04049"></a>04049 
<a name="l04050"></a>04050 <span class="comment">// QString KApplicationPropsPlugin::tabName () const</span>
<a name="l04051"></a>04051 <span class="comment">// {</span>
<a name="l04052"></a>04052 <span class="comment">//   return i18n ("&amp;Application");</span>
<a name="l04053"></a>04053 <span class="comment">// }</span>
<a name="l04054"></a>04054 
<a name="l04055"></a>04055 <span class="keywordtype">void</span> KApplicationPropsPlugin::updateButton()
<a name="l04056"></a>04056 {
<a name="l04057"></a>04057     addExtensionButton-&gt;setEnabled(availableExtensionsList-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistbox.html#currentItem">currentItem</a>()&gt;-1);
<a name="l04058"></a>04058     delExtensionButton-&gt;setEnabled(extensionsList-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistbox.html#currentItem">currentItem</a>()&gt;-1);
<a name="l04059"></a>04059 }
<a name="l04060"></a>04060 
<a name="l04061"></a>04061 <span class="keywordtype">void</span> KApplicationPropsPlugin::addMimeType( <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> &amp; <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qobject.html#name">name</a> )
<a name="l04062"></a>04062 {
<a name="l04063"></a>04063   <span class="comment">// Add a mimetype to the list of available mime types if not in the extensionsList</span>
<a name="l04064"></a>04064 
<a name="l04065"></a>04065   <span class="keywordtype">bool</span> insert = <span class="keyword">true</span>;
<a name="l04066"></a>04066 
<a name="l04067"></a>04067   <span class="keywordflow">for</span> ( uint i = 0; i &lt; extensionsList-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistbox.html#count">count</a>(); i++ )
<a name="l04068"></a>04068     <span class="keywordflow">if</span> ( extensionsList-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistbox.html#text">text</a>( i ) == name )
<a name="l04069"></a>04069       insert = <span class="keyword">false</span>;
<a name="l04070"></a>04070 
<a name="l04071"></a>04071   <span class="keywordflow">if</span> ( insert )
<a name="l04072"></a>04072   {
<a name="l04073"></a>04073     availableExtensionsList-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistbox.html#insertItem">insertItem</a>( name );
<a name="l04074"></a>04074     availableExtensionsList-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistbox.html#sort">sort</a>();
<a name="l04075"></a>04075   }
<a name="l04076"></a>04076 }
<a name="l04077"></a>04077 
<a name="l04078"></a>04078 <span class="keywordtype">bool</span> KApplicationPropsPlugin::supports( KFileItemList _items )
<a name="l04079"></a>04079 {
<a name="l04080"></a>04080   <span class="comment">// same constraints as KExecPropsPlugin : desktop file with Type = Application</span>
<a name="l04081"></a>04081   <span class="keywordflow">return</span> KExecPropsPlugin::supports( _items );
<a name="l04082"></a>04082 }
<a name="l04083"></a>04083 
<a name="l04084"></a><a class="code" href="classKApplicationPropsPlugin.html#2dc5f3b21cad9d8a8756627222bb158f">04084</a> <span class="keywordtype">void</span> <a class="code" href="classKApplicationPropsPlugin.html#2dc5f3b21cad9d8a8756627222bb158f" title="Applies all changes to the file.">KApplicationPropsPlugin::applyChanges</a>()
<a name="l04085"></a>04085 {
<a name="l04086"></a>04086   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> path = <a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().path();
<a name="l04087"></a>04087 
<a name="l04088"></a>04088   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html">QFile</a> f( path );
<a name="l04089"></a>04089 
<a name="l04090"></a>04090   <span class="keywordflow">if</span> ( !f.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html#open">open</a>( IO_ReadWrite ) ) {
<a name="l04091"></a>04091     KMessageBox::sorry( 0, i18n(<span class="stringliteral">"&lt;qt&gt;Could not save properties. You do not "</span>
<a name="l04092"></a>04092                 <span class="stringliteral">"have sufficient access to write to &lt;b&gt;%1&lt;/b&gt;.&lt;/qt&gt;"</span>).arg(path));
<a name="l04093"></a>04093     <span class="keywordflow">return</span>;
<a name="l04094"></a>04094   }
<a name="l04095"></a>04095   f.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qfile.html#close">close</a>();
<a name="l04096"></a>04096 
<a name="l04097"></a>04097   KSimpleConfig config( path );
<a name="l04098"></a>04098   config.setDesktopGroup();
<a name="l04099"></a>04099   config.writeEntry( <span class="stringliteral">"Type"</span>, <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#fromLatin1">QString::fromLatin1</a>(<span class="stringliteral">"Application"</span>));
<a name="l04100"></a>04100   config.writeEntry( <span class="stringliteral">"Comment"</span>, commentEdit-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlineedit.html#text">text</a>() );
<a name="l04101"></a>04101   config.writeEntry( <span class="stringliteral">"Comment"</span>, commentEdit-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlineedit.html#text">text</a>(), <span class="keyword">true</span>, <span class="keyword">false</span>, true ); <span class="comment">// for compat</span>
<a name="l04102"></a>04102   config.writeEntry( <span class="stringliteral">"GenericName"</span>, genNameEdit-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlineedit.html#text">text</a>() );
<a name="l04103"></a>04103   config.writeEntry( <span class="stringliteral">"GenericName"</span>, genNameEdit-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlineedit.html#text">text</a>(), <span class="keyword">true</span>, <span class="keyword">false</span>, true ); <span class="comment">// for compat</span>
<a name="l04104"></a>04104 
<a name="l04105"></a>04105   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstringlist.html">QStringList</a> selectedTypes;
<a name="l04106"></a>04106   <span class="keywordflow">for</span> ( uint i = 0; i &lt; extensionsList-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistbox.html#count">count</a>(); i++ )
<a name="l04107"></a>04107     selectedTypes.append( extensionsList-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistbox.html#text">text</a>( i ) );
<a name="l04108"></a>04108 
<a name="l04109"></a>04109   config.writeEntry( <span class="stringliteral">"MimeType"</span>, selectedTypes, <span class="charliteral">';'</span> );
<a name="l04110"></a>04110   config.writeEntry( <span class="stringliteral">"ServiceTypes"</span>, <span class="stringliteral">""</span> );
<a name="l04111"></a>04111   <span class="comment">// hmm, actually it should probably be the contrary (but see also typeslistitem.cpp)</span>
<a name="l04112"></a>04112 
<a name="l04113"></a>04113   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html">QString</a> nameStr = nameEdit ? nameEdit-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlineedit.html#text">text</a>() : QString::null;
<a name="l04114"></a>04114   <span class="keywordflow">if</span> ( nameStr.<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qstring.html#isEmpty">isEmpty</a>() ) <span class="comment">// nothing entered, or widget not existing at all (kdesktop mode)</span>
<a name="l04115"></a>04115     nameStr = nameFromFileName(<a class="code" href="classKPropsDlgPlugin.html#7f0cae5dbbf64ebe3708d669e2719e81" title="Pointer to the dialog.">properties</a>-&gt;<a class="code" href="classKPropertiesDialog.html#ad240cacd1826a982407d1531239006b" title="The URL of the file that has its properties being displayed.">kurl</a>().fileName());
<a name="l04116"></a>04116 
<a name="l04117"></a>04117   config.writeEntry( <span class="stringliteral">"Name"</span>, nameStr );
<a name="l04118"></a>04118   config.writeEntry( <span class="stringliteral">"Name"</span>, nameStr, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">true</span> );
<a name="l04119"></a>04119 
<a name="l04120"></a>04120   config.sync();
<a name="l04121"></a>04121 }
<a name="l04122"></a>04122 
<a name="l04123"></a>04123 <span class="keywordtype">void</span> KApplicationPropsPlugin::slotAddExtension()
<a name="l04124"></a>04124 {
<a name="l04125"></a>04125   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistboxitem.html">QListBoxItem</a> *item = availableExtensionsList-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistbox.html#firstItem">firstItem</a>();
<a name="l04126"></a>04126   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistboxitem.html">QListBoxItem</a> *nextItem;
<a name="l04127"></a>04127 
<a name="l04128"></a>04128   <span class="keywordflow">while</span> ( item )
<a name="l04129"></a>04129   {
<a name="l04130"></a>04130     nextItem = item-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistboxitem.html#next">next</a>();
<a name="l04131"></a>04131 
<a name="l04132"></a>04132     <span class="keywordflow">if</span> ( item-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistboxitem.html#isSelected">isSelected</a>() )
<a name="l04133"></a>04133     {
<a name="l04134"></a>04134       extensionsList-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistbox.html#insertItem">insertItem</a>( item-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistboxitem.html#text">text</a>() );
<a name="l04135"></a>04135       availableExtensionsList-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistbox.html#removeItem">removeItem</a>( availableExtensionsList-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistbox.html#index">index</a>( item ) );
<a name="l04136"></a>04136     }
<a name="l04137"></a>04137 
<a name="l04138"></a>04138     item = nextItem;
<a name="l04139"></a>04139   }
<a name="l04140"></a>04140 
<a name="l04141"></a>04141   extensionsList-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistbox.html#sort">sort</a>();
<a name="l04142"></a>04142   updateButton();
<a name="l04143"></a>04143 }
<a name="l04144"></a>04144 
<a name="l04145"></a>04145 <span class="keywordtype">void</span> KApplicationPropsPlugin::slotDelExtension()
<a name="l04146"></a>04146 {
<a name="l04147"></a>04147   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistboxitem.html">QListBoxItem</a> *item = extensionsList-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistbox.html#firstItem">firstItem</a>();
<a name="l04148"></a>04148   <a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistboxitem.html">QListBoxItem</a> *nextItem;
<a name="l04149"></a>04149 
<a name="l04150"></a>04150   <span class="keywordflow">while</span> ( item )
<a name="l04151"></a>04151   {
<a name="l04152"></a>04152     nextItem = item-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistboxitem.html#next">next</a>();
<a name="l04153"></a>04153 
<a name="l04154"></a>04154     <span class="keywordflow">if</span> ( item-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistboxitem.html#isSelected">isSelected</a>() )
<a name="l04155"></a>04155     {
<a name="l04156"></a>04156       availableExtensionsList-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistbox.html#insertItem">insertItem</a>( item-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistboxitem.html#text">text</a>() );
<a name="l04157"></a>04157       extensionsList-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistbox.html#removeItem">removeItem</a>( extensionsList-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistbox.html#index">index</a>( item ) );
<a name="l04158"></a>04158     }
<a name="l04159"></a>04159 
<a name="l04160"></a>04160     item = nextItem;
<a name="l04161"></a>04161   }
<a name="l04162"></a>04162 
<a name="l04163"></a>04163   availableExtensionsList-&gt;<a class="codeRef" doxygen="qt.tag:/usr/lib/qt3/doc/html/" href="/usr/lib/qt3/doc/html/qlistbox.html#sort">sort</a>();
<a name="l04164"></a>04164   updateButton();
<a name="l04165"></a>04165 }
<a name="l04166"></a>04166 
<a name="l04167"></a>04167 
<a name="l04168"></a>04168 
<a name="l04169"></a>04169 <span class="preprocessor">#include "kpropertiesdialog.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>kio/kfile</h2>
<div class="nav_list">
<ul><li><a href="index.html">Main Page</a></li><li><a href="hierarchy.html">Class Hierarchy</a></li><li><a href="classes.html">Alphabetical List</a></li><li><a href="annotated.html">Class List</a></li><li><a href="files.html">File List</a></li><li><a href="functions.html">Class Members</a></li><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="classKApplicationPropsPlugin.html">kapplicationpropsplugin</option>,  <option value="classKBindingPropsPlugin.html">kbindingpropsplugin</option>,  <option value="classKCombiView.html">kcombiview</option>,  <option value="classKDesktopPropsPlugin.html">kdesktoppropsplugin</option>,  <option value="classKDevicePropsPlugin.html">kdevicepropsplugin</option>,  <option value="classKDirOperator.html">kdiroperator</option>,  <option value="classKDirSelectDialog.html">kdirselectdialog</option>,  <option value="classKDirSize.html">kdirsize</option>,  <option value="classKDiskFreeSp.html">kdiskfreesp</option>,  <option value="classKEncodingFileDialog.html">kencodingfiledialog</option>,  <option value="classKExecPropsPlugin.html">kexecpropsplugin</option>,  <option value="classKFile.html">kfile</option>,  <option value="classKFileDetailView.html">kfiledetailview</option>,  <option value="classKFileDialog.html">kfiledialog</option>,  <option value="classKFileIconView.html">kfileiconview</option>,  <option value="classKFileIconViewItem.html">kfileiconviewitem</option>,  <option value="classKFileListViewItem.html">kfilelistviewitem</option>,  <option value="classKFileMetaInfoWidget.html">kfilemetainfowidget</option>,  <option value="classKFileMetaPropsPlugin.html">kfilemetapropsplugin</option>,  <option value="classKFileOpenWithHandler.html">kfileopenwithhandler</option>,  <option value="classKFilePermissionsPropsPlugin.html">kfilepermissionspropsplugin</option>,  <option value="classKFilePreview.html">kfilepreview</option>,  <option value="classKFilePropsPlugin.html">kfilepropsplugin</option>,  <option value="classKFileSharePropsPlugin.html">kfilesharepropsplugin</option>,  <option value="classKFileTreeBranch.html">kfiletreebranch</option>,  <option value="classKFileTreeView.html">kfiletreeview</option>,  <option value="classKFileTreeViewItem.html">kfiletreeviewitem</option>,  <option value="classKFileView.html">kfileview</option>,  <option value="classKFileViewSignaler.html">kfileviewsignaler</option>,  <option value="classKIconButton.html">kiconbutton</option>,  <option value="classKIconCanvas.html">kiconcanvas</option>,  <option value="classKIconDialog.html">kicondialog</option>,  <option value="classKImageFilePreview.html">kimagefilepreview</option>,  <option value="classKNotifyDialog.html">knotifydialog</option>,  <option value="classKOpenWithDlg.html">kopenwithdlg</option>,  <option value="classKPreviewPropsPlugin.html">kpreviewpropsplugin</option>,  <option value="classKPreviewWidgetBase.html">kpreviewwidgetbase</option>,  <option value="classKPropertiesDialog.html">kpropertiesdialog</option>,  <option value="classKPropsDlgPlugin.html">kpropsdlgplugin</option>,  <option value="classKRecentDirs.html">krecentdirs</option>,  <option value="classKRecentDocument.html">krecentdocument</option>,  <option value="classKURLBar.html">kurlbar</option>,  <option value="classKURLBarItem.html">kurlbaritem</option>,  <option value="classKURLBarItemDialog.html">kurlbaritemdialog</option>,  <option value="classKURLBarListBox.html">kurlbarlistbox</option>,  <option value="classKURLComboBox.html">kurlcombobox</option>,  <option value="classKURLComboRequester.html">kurlcomborequester</option>,  <option value="classKURLPropsPlugin.html">kurlpropsplugin</option>,  <option value="classKURLRequester.html">kurlrequester</option>,  <option value="classKURLRequesterDlg.html">kurlrequesterdlg</option>,
</select>
</form>
</div>
-->
</div></div>
<div class="menu_box"><h2>API Dox</h2>
<div class="nav_list">
<ul>
<li><a href="../../../arts/html/index.html">arts</a></li><li><a href="../../../dcop/html/index.html">dcop</a></li><li><a href="../../../dnssd/html/index.html">dnssd</a></li><li><a href="../../../interfaces/html/index.html">interfaces</a></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<a href="../../../interfaces/kimproxy/interface/html/index.html">interface</a></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<a href="../../../interfaces/kimproxy/library/html/index.html">library</a></li><li>&nbsp;&nbsp;<a href="../../../interfaces/kspeech/html/index.html">kspeech</a></li><li>&nbsp;&nbsp;<a href="../../../interfaces/ktexteditor/html/index.html">ktexteditor</a></li><li><a href="../../../kabc/html/index.html">kabc</a></li><li><a href="../../../kate/html/index.html">kate</a></li><li><a href="../../../kcmshell/html/index.html">kcmshell</a></li><li><a href="../../../kdecore/html/index.html">kdecore</a></li><li><a href="../../../kded/html/index.html">kded</a></li><li><a href="../../../kdefx/html/index.html">kdefx</a></li><li><a href="../../../kdeprint/html/index.html">kdeprint</a></li><li><a href="../../../kdesu/html/index.html">kdesu</a></li><li><a href="../../../kdeui/html/index.html">kdeui</a></li><li><a href="../../../kdoctools/html/index.html">kdoctools</a></li><li><a href="../../../khtml/html/index.html">khtml</a></li><li><a href="../../../kimgio/html/index.html">kimgio</a></li><li><a href="../../../kinit/html/index.html">kinit</a></li><li><a href="../../../kio/html/index.html">kio</a></li><li>&nbsp;&nbsp;<a href="../../../kio/bookmarks/html/index.html">bookmarks</a></li><li>&nbsp;&nbsp;<a href="../../../kio/httpfilter/html/index.html">httpfilter</a></li><li>&nbsp;&nbsp;<a href="../../../kio/kfile/html/index.html">kfile</a></li><li>&nbsp;&nbsp;<a href="../../../kio/kio/html/index.html">kio</a></li><li>&nbsp;&nbsp;<a href="../../../kio/kioexec/html/index.html">kioexec</a></li><li>&nbsp;&nbsp;<a href="../../../kio/kpasswdserver/html/index.html">kpasswdserver</a></li><li>&nbsp;&nbsp;<a href="../../../kio/kssl/html/index.html">kssl</a></li><li><a href="../../../kioslave/html/index.html">kioslave</a></li><li>&nbsp;&nbsp;<a href="../../../kioslave/http/html/index.html">http</a></li><li><a href="../../../kjs/html/index.html">kjs</a></li><li><a href="../../../kmdi/html/index.html">kmdi</a></li><li>&nbsp;&nbsp;<a href="../../../kmdi/kmdi/html/index.html">kmdi</a></li><li><a href="../../../knewstuff/html/index.html">knewstuff</a></li><li><a href="../../../kparts/html/index.html">kparts</a></li><li><a href="../../../kresources/html/index.html">kresources</a></li><li><a href="../../../kspell2/html/index.html">kspell2</a></li><li><a href="../../../kunittest/html/index.html">kunittest</a></li><li><a href="../../../kutils/html/index.html">kutils</a></li><li><a href="../../../kwallet/html/index.html">kwallet</a></li><li><a href="../../../libkmid/html/index.html">libkmid</a></li><li><a href="../../../libkscreensaver/html/index.html">libkscreensaver</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>