<chapter id="krusader-tools">

<!-- **********************************************************************
                            krusader-tools.docbook
                          ++++++++++++++++++++++++++
 (C)opyright            : (C) 2000, 2001, 2002, 2003, 2004, 2005
  All Rights Reserved     Rafi Yanai, Shie Erlich, Frank Schoolmeesters
                          & the Krusader Krew
  e-mail                : krusader@users.sourceforge.net
  web site              : http://www.krusader.org
  description           : a Krusader Documentation File

***************************************************************************
* Permission is granted to copy, distribute and/or modify this            *
* document under the terms of the GNU Free Documentation License,         *
* Version 1.1 or any later version published by the Free Software         *
* Foundation; with no Invariant Sections, no Front-Cover Texts and        *
* no Back-Cover Texts.  A copy of the license is available on the         *
* GNU site http://www.gnu.org/licenses/fdl.html or by writing to:         *
* Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,    *
* MA 02111-1307, USA.                                                     *
*********************************************************************** -->

<title>&krusader; Tools</title>

<sect1 id = "remote-connections">
<title>Remote Connections</title>

<para>Remote connections are easy made by typing the &URL; in the 
     <link linkend="list_panel">Location Toolbar</link> , these are actually &kioslaves1_url; .
     Please note that the &krusader; panel does not support all &kioslaves2_url; &eg;
     <command>http://</command> will not work in the panel, but will work in the 
     <link linkend="krviewer">viewer</link> .
     Some examples:</para>
 
 <itemizedlist>
     <listitem><para><userinput><command>ftp://</command><replaceable>public.ftpserver.org/directory/</replaceable></userinput></para>
     </listitem>
     
     <listitem><para><userinput><command>fish://</command><replaceable>username@hostname/</replaceable></userinput></para>
     </listitem>
                                   
     <listitem><para><userinput><command>sftp://</command><replaceable>username:password@sftp.foo.org/</replaceable></userinput></para>          
     </listitem>
     
     <listitem><para><userinput><command>ftp://</command><replaceable>username@my.server.org:21/directory/</replaceable></userinput></para>
     </listitem> 
         
     <listitem><para><userinput><command>smb://</command><replaceable>username:password@server/share</replaceable></userinput></para>
     </listitem>

     <listitem><para><userinput><command>ftp://</command><replaceable>username@proxyusername:password@proxipassword@hostname/directory</replaceable></userinput></para>
     </listitem>     
 </itemizedlist>          

 
<para>You can Bookmark these &URL;'s, please read the <link linkend="bookman">Bookman</link> section 
      regarding securely save your passwords.
      For connecting to multiple locations, bookmark these &URL;'s and open them one by one,
      or open them all together using a &panel_profiles_lnk; .
      To switch from one to another location, just open a &foldertabs_lnk; for each.
      </para>

<para>There are three ways to start a Remote Connection:
<itemizedlist>
      <listitem><para>Type the &URL; in the <link linkend="list_panel">Location Toolbar</link></para>
      </listitem>
               
      <listitem><para>Selecting <emphasis role="bold"><menuchoice><guimenu>Commands</guimenu>
                <guimenuitem>New Net Connection</guimenuitem></menuchoice></emphasis> which will pop-up a
                dialog that will ask for the remote site details.
                This dialog is handy if you are not used to type remote &URL;'s in the Location Toolbar.
                Leaving the password and user name fields empty will try to log you in as annonymous.
                NOTE: we are planning to rewrite this dialog window.</para>
      </listitem>
                
      <listitem><para>You can bookmark a directory on a remote host and return to this directory from the 
                      bookmark button on the top corner of your panel just like in a web browser.</para>
      </listitem>
</itemizedlist>
</para>

<para>After you logon to a remote server you can browse it just like your local hard drive
      with the following exceptions:
      <itemizedlist>
      <listitem><para>You cannot execute files on remote servers.</para>
                </listitem>
      <listitem><para>Permissions cannot always be calculated on remote servers (depends on server and access method) 
                so you might get a "?" on the permissions columns for some files. </para>
                </listitem>
  <listitem><para>Disk usage information is not availble for most remote filesystems.</para>
            </listitem>
    </itemizedlist>
</para>

<para>To change the charset of the remote host use
      <emphasis role="bold"><menuchoice><guimenu>Commands</guimenu>
      <guimenuitem>Select Remote Charset</guimenuitem></menuchoice></emphasis>.</para>

<para>You can <emphasis role="bold">close the current Active Remote Connection</emphasis> by several methods:
      <itemizedlist>
        <!--
        <listitem>
           <para>Manually: <emphasis role="bold"><menuchoice><guimenu>Commands</guimenu>
                 <guimenuitem>Disconnect From Net</guimenuitem></menuchoice></emphasis></para>
        </listitem>
        -->
        <listitem>
           <para>Manually: Add the disconnect button to the &main_toolbar_lnk; and click on it.</para>
        </listitem>
        
        <listitem><para>Automatically: change the &URL; in the &location_toolbar_lnk; .</para>
        </listitem>
      </itemizedlist>      
</para>

<note>
  <para>&krusader; is a filemanager that supports remote connections via &kioslaves1_url;,
        but if you are looking for even more advanced remote connections features,
        &eg; an advanced &FTP;-client we recommend you to use &eg; &kasablanca_url; 
        or &kftpgrabber_url;.</para>
  </note>

</sect1>

<sect1 id = "mount-man">
<title>MountMan: work with your mounted filesystems</title>
<para>MountMan is a tool which helps you manage your mounted filesystems.
      Once invoked, it displays a list of every mounted filesystem.
      For each filesystem, MountMan displays it's name (which is the actual device name - &ie;
      <filename class="directory">/dev/fd0</filename> for a <hardware>floppy</hardware>),
      it's type (vfat, ext3, ReiserFS ...) and it's mount-point on your system
      (the directory on which the filesystem is mounted).</para>

<screenshot>
  <screeninfo>MountMan</screeninfo>
  <mediaobject>
  <imageobject><imagedata fileref="mountman.png" format="PNG"/></imageobject>
  <imageobject><imagedata fileref="mountman.png" format="EPS"/></imageobject>
  <textobject><phrase>MountMan</phrase></textobject>
  <caption><para>MountMan.</para></caption>
  </mediaobject>
</screenshot>

<para>MountMan also displays usage information using total size, free size, and percentage of available space free.
      If those numbers say <guilabel>N/A</guilabel>, it usually means that the filesystem isn't mounted.
      Left clicking on a filesystem displays a pie chart on the left of the window, this
      graphically displays the usage information for the filesystem.
      Clicking on a non-mounted filesystem will display <guilabel>not mounted</guilabel>
      instead of the graph.</para>
  <itemizedlist>
      <listitem><para><keycap>Double-clicking</keycap> on a filesystem will close MountMan and open
                that filesystem inside &krusader;'s active panel.
                </para></listitem>
      <listitem><para><keycap>Right clicking</keycap> on a filesystem will open a small menu which
                displays what actions can be performed on that filesystem.
                For now you can only mount, unmount and eject (if clicking on a removable filesystem,
                e.g., a <hardware>cdrom</hardware>).
                </para></listitem>
   </itemizedlist>

<note><para>We plan to expand MountMan in the next evolution of &krusader;.
            It will be able to format floppies, edit <filename class="directory">/etc/fstab</filename>,
            create new filesystems and more....
            BTW, we have started working on it, see "Quickmode for MountMan"</para></note>

<para><emphasis role="bold">Quickmode for MountMan</emphasis></para>

<para>"Quickmode for MountMan" is only available on &kde; 3.2 - earlier versions will see no difference.</para>

<para>To activate Quickmode for MountMan, click AND HOLD the MountMan button on the &main_toolbar_lnk;</para>

<para>General idea: display a list of all possible mountpoints.
      Each time the menu is displayed, it determines if a mountpoint is mounted or not
			 and associates the correct action (mount or umount). This offers a quick interface to MountMan.
      It is working, and currently uses KMountMan::mount and unmount.
      It uses the new &kde; services for fstab-reading and this will enable us to remove A LOT of code
      from the "old" MountMan.</para>

</sect1>


<sect1 id = "bookman">
<title>BookMan: Organize your Bookmarks</title>

<para>BookMan is a tool which allows you to bookmark folders and &URL;'s using &krusader;,
			and later return to them in a click of a button. All you need to do is click on
			the <guibutton>Bookmark</guibutton> button.</para>

<screenshot>
  <screeninfo>BookMan: the Bookmark menu</screeninfo>
  <mediaobject>
  <imageobject><imagedata fileref="bookmanadd.png" format="PNG"/></imageobject>
  <imageobject><imagedata fileref="bookmanadd.png" format="EPS"/></imageobject>
  <textobject><phrase>BookMan: the Bookmark menu</phrase></textobject>
  <caption><para>BookMan: the Bookmark menu.</para></caption>
  </mediaobject>
</screenshot>

<para>Usually, you click on the <guibutton>Bookmark</guibutton> button when you're in the target folder.
      For example, to bookmark <filename class="directory">/usr/tmp</filename>, navigate &krusader;
      there and click the <guibutton>Bookmark</guibutton> button and select
      <guimenuitem>Bookmark Current</guimenuitem>.
      When the <guilabel>Bookmark Current</guilabel> dialog box appears, the &URL; line will say
      <filename class="directory">/usr/tmp</filename>.
      <guilabel>Name</guilabel> is for the name you would like to give to the bookmark (for example: temporary
      folder). Hotkeys are supported by adding <literal>&amp;</literal> to the bookmarkname &eg;
      <literal>&amp;sourceforge, &amp;home, down&amp;loads</literal> &etc;,
      so you can quickly call the bookmark name with <keycombo action="simul">&Alt;<keycap>foo</keycap></keycombo>.
      If you add the bookmark without entering a name, the bookmarks name will be the same as its target.
      <guilabel>URL</guilabel>
      <!-- Openjade does not like an acronym element for "URL" here -->
      is where the bookmark points to.
      <guilabel>Create in</guilabel> allows to make bookmark folders for organizing your bookmarks</para>

<note><para>You can bookmark inside a remote filesystem (&FTP; or SAMBA) and later use the bookmark 
       to quickly connect to the remote machine. NOTE:You CANNOT bookmark inside an archive.</para></note>

<para>To use your bookmarks, click the <guibutton>Bookmark</guibutton> button and choose one - as shown in
      the picture above. You may also use the &keybindigs_lnk; : 
      <keycombo action="simul">&Ctrl;&Shift;<keycap>d</keycap></keycombo> to bookmark the current item,
      <keycombo action="simul">&Alt;<keycap>right/left arrow</keycap></keycombo> to
      <keycap>open right/left panel bookmarks list</keycap> and
      <keycombo action="simul">&Ctrl;<keycap>d</keycap></keycombo> to
      open the bookmarks of the active panel.
      A &MMB; click on bookmarks opens them in a new <link linkend="folder_tabs">Folder tab</link>.
      </para>

<para>Navigation in bookmarks:
      <orderedlist>
          <listitem>
             <para>start typing letters</para>
          </listitem>
          <listitem>
              <para>&eg; when you type <literal>'h'</literal> and only 1 bookmark starts with <literal>'h'</literal>,
                    it is executed immediatly - no enter needed</para>
          </listitem>
          <listitem>
             <para>if more than one bookmarks start with <literal>'h'</literal>,
                   you will have to continue adding letters,
                   until you specified enough and again, the bookmark is executed.</para>
          </listitem>
      </orderedlist>
</para>

<para>Bookman supports "special / permanent bookmarks" which means that they are added by the &krusader;-Krew 
      to the top bookmark menu without the need of being saved to the file, right now there are two: 
      <filename>devices:/</filename> (or <filename>devices:/</filename> on &kde;3.4) 
      and <filename>Virtual Filesystem</filename>
      </para>

<para><emphasis role="bold">Bookmarks as action buttons on the Toolbar</emphasis></para>
<para>Bookmarks can be placed as buttons on the &main_toolbar_lnk; or the &actions_toolbar_lnk;,
      you can even make a key-binding if you want.
 <itemizedlist>
    <listitem><para>create your &bookmarks_lnk; .
              </para></listitem>
    <listitem><para>If you want, you can create keybindings for the bookmarks in the 
                    <guilabel>Key-bindings</guilabel> section of the &konfiglookandfeel_lnk; .
                    </para></listitem>
    <listitem><para>Add your bookmarks as action buttons on the &main_toolbar_lnk; or the &actions_toolbar_lnk; with
                    the <guilabel>Toolbar</guilabel> section of the &konfiglookandfeel_lnk; .
                    </para></listitem>
 </itemizedlist>
</para>

<para><emphasis role="bold">Virtual Filesystem</emphasis></para>
<para>This is not a virtual folder, but a container for &URL;'s from different file systems.
     It is used for &eg; the <guilabel>Feed to Listbox</guilabel> feature of the search module.
     Actions you perform on the files in this VFS are performed on the 'real' files.
     You don't just delete files from the VFS - you delete them from your hard drive.
     Limitations: you can't create directories inside a virtual VFS.
     The location toolbar will display &eg; <filename>virt:/Search results 1</filename>.
</para>


<para id="jump_back"><emphasis role="bold">Jump back</emphasis></para>
<para>The submenu <guilabel>Jump back</guilabel> or
      <keycombo action="simul">&Ctrl;<keycap>J</keycap></keycombo> 
      brings you back to your starting position when you dit create a New Tab in the panel window.
      This feature is very handy if you go deep into a directory tree, than you can return with one 
      action to the starting point.
      With <guilabel>Set jump back point here</guilabel> or 
      <keycombo action="simul">&Ctrl;&Shift;<keycap>J</keycap></keycombo> sets the current 
      directory as a jump back point.
</para>


<para id="popular_urls"><emphasis role="bold">Popular URL's</emphasis></para>
<para>The submenu <guilabel>Popular URL's</guilabel> 
      <!-- Openjade does not like an acronym element for "URL" here -->
      holds persistent the most popular visited &URL;'s 
      (local or remote). This submenu displays the top 15 popular urls, sorted by ranking, 
      so that the top &URL; is the most popular.
      This is easy for when u need to visit &URL;s often, but don't want to create &bookmarks_lnk;,
      it serves as a temporary bookmark list for the most visited links. 
      We are planning to add a dialog with quicksearch to browse the Popular &URL;s.
      You can use the fast two-enter dialog:
 <itemizedlist>
    <listitem><para>open the <guilabel>Popular URL's</guilabel> 
                    <!-- Openjade does not like an acronym element for "URL" here -->
                    or use <keycombo action="simul">&Ctrl;<keycap>z</keycap></keycombo>
                    </para></listitem>
    <listitem><para>type few letters to narrow the search
                    </para></listitem>
    <listitem><para>hit enter (you'll go to the &URL; list)
                    </para></listitem>
    <listitem><para>hit enter again and the panel is refreshed</para></listitem>
 </itemizedlist>
</para>


<para><emphasis role="bold">Password handling</emphasis></para>
<para>One of the benefits of the <link linkend="bookman">new bookmark manager</link> is that the password
are saved using &kde;'s services - where your &konqueror;/&kmail; password are saved.
Today, this is the wallet mostly. if you have a wallet, &kde; will save the passwords there.</para>

<para>
<variablelist>
<varlistentry><term>Secure password storage</term>
   <listitem><para>Click the bookmarks, a dialog will open and asking for username and password. 
             supply them and click 'save password'. the passwords and usernames will be saved 
             SECURELY by &kde;'s wallet (make sure it is enabled by your distro).
             The downside here, is that if you reinstall and don't backup your passwords from the wallet 
             as well as &krusader;'s bookmark file, something will be lost. 
             btw, we are considering to interface with kde's wallet, but no details are known yet. 
     </para></listitem>
</varlistentry>

<varlistentry><term>INSecure password storage</term>
   <listitem><para>when you bookmark something, the dialog will display something like: 
   "name: blah blah" 
   "url: <userinput><command>ftp://</command><replaceable>username@ftp.test.com/</replaceable></userinput>"
   Change the url to look like
   <userinput><command>ftp://</command><replaceable>username:password@ftp.test.com/</replaceable></userinput>and save.
   The next things will happen:
  <itemizedlist>
  <listitem>
     <para>the password is saved INSECURELY as plain text in <filename>krbookmarks.xml</filename>, 
           so you'll have to set permissions properly for it.</para>
  </listitem>
  <listitem>
     <para>passwords will NEVER be shown again on screen, not even in the bookmark manager. 
           it is kept hidden inside &krusader;.</para>
  </listitem>
  <listitem>
     <para>clicking the bookmark will login to the requested site.</para>
  </listitem>
  <listitem>
     <para>backing up <filename>krbookmarks.xml</filename> will save your passwords.</para>
  </listitem>
  </itemizedlist>
    </para></listitem>
</varlistentry>

</variablelist>
</para>

<screenshot>
  <screeninfo>&keditbookmarks; your Bookmark Manager</screeninfo>
  <mediaobject>
  <imageobject><imagedata fileref="bookmanedit.png" format="PNG"/></imageobject>
  <imageobject><imagedata fileref="bookmanedit.png" format="EPS"/></imageobject>
  <textobject><phrase>&keditbookmarks; edit and organize your Bookmarks</phrase></textobject>
  <caption><para>&keditbookmarks;: your Bookmark Manager.</para></caption>
  </mediaobject>
</screenshot>

<para>To edit and organize your bookmarks, click the <guibutton>Bookmark</guibutton> button and select
      <guimenuitem>Manage Bookmarks</guimenuitem>, &keditbookmarks; will be displayed.
      This is where you can edit/remove and re-arrange the bookmarks.
      &keditbookmarks; (part of the kdebase package) is a bookmark editor for &konqueror;, &krusader; and other
      applications, which use the &xbel_url; standard for the bookmark format. The bookmarks are stored in
      <filename>~/.kde/share/apps/krusader/krbookmarks.xml.</filename></para>
      <para>You can import bookmarks from <application>IE</application>, <application>Opera</application>,
      <application>Galeon</application>, &kde;, <application>Mozilla</application>, &Netscape;.
       &keditbookmarks; is easy to use, please read the &keditbookmarks; or the &konqueror; handbook if you need more
       info.</para>
</sect1>


<sect1 id = "krusearcher">
<title>KruSearcher: find what you're looking for</title>

<para>Welcome to &krusader;'s powerful search module - nicknamed Krusearcher.
      It is the most able tool (that we know of) for &Linux;, since it allows so many different ways to
      quickly find the file you're looking for.
      The search function is also available on remote file systems.
      It is divided into two levels, the general and the advanced.
      Let's take a look at the general page ...</para>

<screenshot>
  <screeninfo>Krusearcher General</screeninfo>
  <mediaobject>
  <imageobject><imagedata fileref="search_general.png" format="PNG"/></imageobject>
  <imageobject><imagedata fileref="search_general.png" format="EPS"/></imageobject>
  <textobject><phrase>Krusearcher General</phrase></textobject>
  <caption><para>Krusearcher General.</para></caption>
  </mediaobject>
</screenshot>

<para>The page is divided into four parts: top (search for) part, bottom part - titled 'containing text',
      left part - titled 'search in' and right part which is called 'don't search in'. Obviously, each part
      handles different aspects of the search.
      Let's look at them closely.</para>

<itemizedlist><title>Top Part:</title>
           <listitem><para><guilabel>Search for</guilabel>: here you enter the main search criteria.
                     You can enter a filename, a wildcard (<literal role="extension">*.o.*</literal>,
                     <literal role="extension">*.c</literal> &etc;) or both - separated by a space.
                     If you type <literal>'text'</literal> the results is the same as <literal>'*text*'</literal>.
                     You can exclude files from the search with '|' (&eg; <literal role="extension">'*.cpp *.h | *.moc.cpp'</literal> ).
                     </para></listitem>
           <listitem><para><guilabel>Case sensitive</guilabel>: unchecking it will allow lower and upper case
                      search (&ie;: <literal role="extension">*.c</literal> interprets as
                      <literal role="extension">*.c</literal> AND
                      <literal role="extension">*.C</literal>).
                      </para></listitem>
           <listitem><para><guilabel>Of type</guilabel>: this box lets you search for a file not only by its
                      name, but also by its mimetype. For example, you can search for all the audio files whose
                      name begins with B. Usually this option defaults to 'all files', but you can choose to search
                      for archives, directories, images, text files, videos and audio files.
                      </para></listitem>
</itemizedlist>

<itemizedlist><title>Left and Right Part:</title>
    <listitem><para><guilabel>Search in</guilabel> and <guilabel>Don't search in</guilabel>:
                Using those two parts, you can specify a search exactly the way you want it.
                For example, you might want to search for a file in the whole filesystem
                (beginning with <filename>/</filename>), but don't want to search inside
                <filename>/mnt</filename>.
                All you need to do is write <filename>/</filename> in the <guilabel>search in</guilabel> box,
                and write <filename>/mnt</filename> in the <guilabel>dont search in</guilabel> box.
                If you want to enter more than one directory in one of the boxes, just type the first name and
                press &Enter;. The directory's name will be copied to the bigger box and you'll be
                able to enter another name.
                <note><para>The input line has an auto completion feature, corrosponding to &kde;'s global settings.
                       If you wish, you can click on the <guiicon>folder icon</guiicon>, and browse to the directory
                       you wish to add.
              </para></note>
              </para></listitem>
</itemizedlist>

<itemizedlist><title>Bottom Part:</title>
    <listitem><para><guilabel>Text</guilabel>: entering text here makes &krusader; search for it inside the
               files (<command>grep</command>). That way, you can search for all header files
               (<literal role="extension">*.h</literal>) which include the word <literal>'testing 123'</literal>
               inside them.
               </para></listitem>
    <listitem><para><guilabel>Match whole word only</guilabel>
               </para></listitem>
    <listitem><para><guilabel>Case sensitive</guilabel>: refers to your text being searched for in upper
               and lower case or the exact phrase you entered.
               </para></listitem>
    <listitem><para><guilabel>Search in subdirectories</guilabel>: do a recursive search and dive into
               every directory on the way.
               </para></listitem>
    <listitem><para><guilabel>Search in archives</guilabel>: &krusader; will search for your files inside
               every supported archive. This, however, takes longer to perform.
               <note><para>If you check this checkbox, you'll notice you cannot <command>grep</command> inside files
               anymore.
               This is done, since looking inside archived files forces &krusader;
               to extract them, which results in an extremely time-consuming search.</para></note>
               </para></listitem>
    <listitem><para><guilabel>Follow links</guilabel>: if checked,  &krusader; will follow soft-links during
               the search.
               </para></listitem>
    <listitem><para><guilabel>Profiles</guilabel>: if you have to regularly perform the same search operation,
               you can save the search settings &eg; include files, exclude files, etc....
               Press the 'profile' button, and you'll be able to add/load/save/remove search profiles.
               </para></listitem>
</itemizedlist>

<para>The above screenshot shows a search for all the files which end with <literal role="extension">c, cpp</literal>
      or <literal role="extension">h</literal> and include the string <literal>'testing 123'</literal>.
      &krusader; will search in <filename class="directory">/root, /opt, /bin</filename> and
      <filename class="directory">/usr</filename>, but not in <filename class="directory">/usr/lib</filename> and
      <filename class="directory">/usr/share</filename>.
      </para>

<para>Clicking the <guibutton>Search</guibutton> button starts the search and displays the results page.
      During the search, you may press the <guibutton>Stop</guibutton> button to stop the search.
      The <guibutton>Close</guibutton> button is not operational during a search, so you must first stop
      the search and then <guibutton>Close</guibutton> the window.
      When a result is found, double clicking on it will make &krusader;'s active panel point to the found
      files - but will not close the search window, so you'll be able to click on a different result.</para>

<para>Sometimes, you need to narrow your search even more. Krusearcher allows a much finer search, and
      for that, let's look at the <guilabel>Advanced Page</guilabel>...</para>

<screenshot>
  <screeninfo>Krusearcher Advanced</screeninfo>
  <mediaobject>
  <imageobject><imagedata fileref="search_advanced.png" format="PNG"/></imageobject>
  <imageobject><imagedata fileref="search_advanced.png" format="EPS"/></imageobject>
  <textobject><phrase>Krusearcher Advanced</phrase></textobject>
  <caption><para>Krusearcher Advanced.</para></caption>
  </mediaobject>
</screenshot>

<para>This screenshot shows a search for files whose size is between 10KB and 150KB,
      which were modified between October 10th and November 1st,
      which belong to any user in the 'users' group,
      and are readable and writeable by anyone in the 'users' group,
      but only readable to the rest of the world.</para>

<para>The advanced page is divided into three parts: size, date and ownership.</para>

<para><emphasis role="bold">Size</emphasis></para>

<para>Allows you to choose the size range of the file you're looking for. By checking the checkboxes,
      you can search for a file which is bigger than XXX bytes (or KB, MB), smaller than XXX bytes or,
      by checking both search for a file which size is bigger than XXX but smaller than YYY.</para>


<para><emphasis role="bold">Date</emphasis></para>

<para>This part offers three different ways of defining a date criteria:
<itemizedlist>
   <listitem><para><guilabel>Modified between</guilabel>: allows you to enter two dates. &krusader; will
             search for files with a modification date between the first date and the second one, inclusive.
             If you only enter a date in the left box, you'll be searching for files older than that date.
             If you only enter a date in the right box, you'll be searching for files newer than that date.
             <note><para>You can click on the date icon (near the input boxes) to open a standard date window -
                   which allows you to easily browse through the calendar and search for the desired date.
                   Clicking on a date will close the window and the date will appear in the input box.
             </para></note>
             </para></listitem>
  <listitem><para><guilabel>Not modified after</guilabel>: choosing this option makes &krusader; search
            for files that were NOT modified after a given date, which is the same as searching for files older
            than that date.
             </para></listitem>
  <listitem><para><guilabel>Modified in the last/not modified in the last</guilabel>: in these input
             boxes, you enter not a date, but a number. This number represents days/weeks/months
             (as chosen in the near dropbox). Entering the number 5 in the upper input box, makes &krusader;
             search for files that were modified in the last 5 days.
             Entering the number 2 in the lower input box makes &krusader; search for files that did NOT change
             in the last 2 days. The combination of both results in a search for files that were
             changed in the last 5 days, but NOT in the last 2 days.
             </para></listitem>
</itemizedlist></para>


<para><emphasis role="bold">Ownership</emphasis></para>

<itemizedlist>
   <listitem><para><guilabel>Belongs to user/group</guilabel>: by checking each of the corresponding checkboxes,
             you can search for files which belong to a certain user and/or group.
             The dropbox lists all the user names and group names in the system, just choose one and go ahead.
             </para></listitem>
   <listitem><para><guilabel>Permissions</guilabel>: divided into owner, group and all - it allows you to choose
              certain permissions for the file. You can choose to specify permissions for the owner,
              group, all or any combination. The question mark (?) is a wildcard - which means that any permission
              is valid.
              </para></listitem>
</itemizedlist>

<note><para>To clarify, the screenshot above (the permissions part) describes a search for files that belong to any
            user in group 'ftp', are readable, writable but not executable to any user in the group, are readable but
            not writable or executable to the rest of the world and have unknown permissions to its owner.</para></note>

<para><emphasis role="bold">Results</emphasis></para>

<para>Clicking on the <guibutton>Search</guibutton> button to start the search and open the Results window.
       Here you can see the progress and the the results of the search action. If you want you can stop the current
       search action with the <guibutton>Stop</guibutton> button.
       In the result list select the file and use <keycap>F3</keycap>/<keycap>F4</keycap> to view/edit or use
       the right-click menu.
       When you click on a found item, the directory of the active panel will change if the selected item is not in
       the current panel directory. When you close the Krusearcher window, the selected item is selected in the
       active panel.</para>

<para><emphasis role="bold">Feed to listbox</emphasis></para>

<para>When you click the <guibutton>Feed to listbox</guibutton> button after the results are displayed,
      then &krusader; ask for a Query Name, this name will be used in the Results-Tab in the List Panel
      that holds the search results.
      You can do whatever you want on the files in the new tab.
      The location toolbar will display &eg; <filename>virt:/Search results 1</filename>.</para>

<warning><para>The files in the Results-Tab are actually the original files.
               if you delete a file - it is removed!</para></warning>

</sect1>

<sect1 id = "krviewer">
<title>KrViewer: &krusader;'s internal viewer-editor</title>

<para>Pressing &Enter; on a selected file <emphasis>opens the file with the associated
      application</emphasis>.
      The editor-viewer is tabbed, configure it on the &konfiggereral_lnk;
</para>

<sect2 id = "krview">
<title>Viewer</title>

<para>To view a file as fast as possible according to it's type, just put it under the cursor and press
      <keycap>F3</keycap>. &krusader;'s internal viewer is actually a &konqueror; part, which can basically
      view every file type viewable by &konqueror; (&eg; display pictures, play music, show the content of an
      archive), this is called the 'Generic viewer'. You need to configure the mimetypes for this.</para>

<para>The viewer works as follows:
     <itemizedlist>
       <listitem><para>It will try to view the file with the <emphasis>'Generic viewer'.</emphasis>
                 </para></listitem>
       <listitem><para>When the file type (mimetype) cannot be determined or when a file (&eg; a binary)
                 doesn't have an associated action, it disables the 'generic viewer'.
                 The file will be treated as a text file, this is the <emphasis>'Text viewer'</emphasis>.
                 </para></listitem>
       <listitem><para>The user can change in the
                 <link linkend="kredit_krviewer_menu">KrViewer menu</link> between:
                  'Generic viewer' (if available), 'Text viewer' and <emphasis>'Hex viewer'</emphasis>.
                 </para></listitem>
      </itemizedlist>
      The default viewer mode can be configured on the &konfiggereral_lnk; .
</para>

<para><keycombo action="simul">&Shift;<keycap>F3</keycap></keycombo> views a &URL; on demand, &eg;:
 <itemizedlist>
      <listitem><para>
                <userinput><command>man:/</command></userinput> views the manpages.
                </para></listitem>
      <listitem><para>
                <userinput><command>man:/</command><replaceable>krusader</replaceable></userinput> views a manpage.
                 </para></listitem>
                 <listitem><para>
      <userinput><command>info:/</command></userinput> views the infopages.
                 </para></listitem>
      <listitem><para>
                <userinput><command>http://</command><replaceable>krusader.sourceforce.net/</replaceable></userinput>
                views a webpage.
                </para></listitem>
      <listitem><para>
                <userinput><command>ftp://</command><replaceable>ftp.kde.org/pub/kde/</replaceable></userinput>
                 views a ftp-server.
                </para></listitem>
     <listitem><para>
               <userinput><command>sftp://</command><replaceable>sftp.foo/</replaceable></userinput>
                views a secure ftp-server.
               </para></listitem>
     <listitem><para>
               <userinput><command>file:/</command><replaceable>home/frank</replaceable></userinput>
                views the homedirectory of Frank.
               </para></listitem>
      <listitem><para>
                <userinput><replaceable>/home/frank/archive.tar.gz</replaceable></userinput>
                 views a <literal role="extension">tar.gz</literal> archive.
                </para></listitem>
 </itemizedlist>
</para>

<para>KrViewer can have the following menu's:
        <link linkend="kredit_file_menu">File</link>,
        <link linkend="kredit_edit_menu">Edit</link>,
        <link linkend="kredit_view_menu">View</link>,
        <link linkend="kredit_settings_menu">Settings</link> and
        <link linkend="kredit_krviewer_menu">Krviewer</link>,
        depending on which file type is viewed. They will be discussed in the
        <link linkend="kredit">Editor section</link>.
        The internal viewer can follow links on HTML pages.
        With <keycombo action="simul">&Ctrl;<keycap>E</keycap></keycombo> the viewer will
        start &krusader;'s internal editor (which is basically the same application).
</para>

<note><para>The embedded viewer is not written by us, it is supplied via &kde; (libs) and &kioslaves1_url;
       We cannot and don't want to change it, usings these libraries reduces the amount of written code.
       So we don't have to reinvent the wheel ;-)</para></note>
</sect2>

<sect2 id="kredit">
<title>Editor</title>

<para>&krusader;'s internal editor has almost everything that you can expect of an editor.
      Editing is similar to viewing but with the <keycap>F4</keycap> key.
      The default editor is &krusader;'s internal editor. You can change the default
      editor in the &konfiggereral_lnk;, if you prefer to use an external editor.</para>

<tip><para>When you use &krusader;'s internal editor for the first time,
               It is recommended to look at each section of the
               <link linkend="kredit_settings_menu">Settings</link> menu, and configure it the way you want it.
              </para></tip>

</sect2>

<sect2 id="kredit_menus">
<title>Menu overview</title>
<para>Most of the menus are pretty self-explanatory. ;-)</para>

<!-- FILE menu -->
<variablelist id="kredit_file_menu"><title><guimenu>File</guimenu> menu</title>
   <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycombo action="simul">&Ctrl;<keycap>S</keycap></keycombo></shortcut>
   <guimenu>File</guimenu>
   <guimenuitem>Save</guimenuitem></menuchoice></term>
   <listitem>
   <para>Save file.</para>
   </listitem>
  </varlistentry>

   <varlistentry>
   <term>
   <menuchoice>
   <guimenu>File</guimenu>
   <guimenuitem>Save As</guimenuitem></menuchoice></term>
   <listitem>
   <para>Save file with another name.</para>
   </listitem>
  </varlistentry>

   <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycap>F5</keycap></shortcut>
   <guimenu>File</guimenu>
   <guimenuitem>Reload</guimenuitem></menuchoice></term>
   <listitem>
   <para>Reload file.</para>
   </listitem>
  </varlistentry>

   <varlistentry>
   <term>
   <menuchoice>
   <guimenu>File</guimenu>
   <guimenuitem>Export</guimenuitem></menuchoice></term>
   <listitem>
   <para>Export the file to <literal role="extension">html</literal> format.</para>
   </listitem>
  </varlistentry>

   <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycombo action="simul">&Ctrl;<keycap>P</keycap></keycombo></shortcut>
   <guimenu>File</guimenu>
   <guimenuitem>Print</guimenuitem></menuchoice></term>
   <listitem>
   <para>Print the file.</para>
   </listitem>
  </varlistentry>
</variablelist>

<!-- EDIT menu -->
<variablelist id="kredit_edit_menu"><title><guimenu>Edit</guimenu> menu</title>
  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycombo action="simul">&Ctrl;<keycap>Z</keycap></keycombo></shortcut>
   <guimenu>Edit</guimenu>
   <guimenuitem>Undo</guimenuitem></menuchoice></term>
   <listitem>
   <para>Undo last action.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycombo action="simul">&Ctrl;&Shift;<keycap>Z</keycap></keycombo></shortcut>
   <guimenu>Edit</guimenu>
   <guimenuitem>Redo</guimenuitem></menuchoice></term>
   <listitem>
   <para>Redo last action.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycombo action="simul">&Ctrl;<keycap>X</keycap></keycombo></shortcut>
   <guimenu>Edit</guimenu>
   <guimenuitem>Cut</guimenuitem></menuchoice></term>
   <listitem>
   <para>Cut selected text to clipboard.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycombo action="simul">&Ctrl;<keycap>C</keycap></keycombo></shortcut>
   <guimenu>Edit</guimenu>
   <guimenuitem>Copy</guimenuitem></menuchoice></term>
   <listitem>
   <para>Copy selected text to clipboard.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycombo action="simul">&Ctrl;<keycap>V</keycap></keycombo></shortcut>
   <guimenu>Edit</guimenu>
   <guimenuitem>Paste</guimenuitem></menuchoice></term>
   <listitem>
   <para>Paste clipboard content to the document.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycombo action="simul">&Ctrl;<keycap>A</keycap></keycombo></shortcut>
   <guimenu>Edit</guimenu>
   <guimenuitem>Select All</guimenuitem></menuchoice></term>
   <listitem>
   <para>Select whole document.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycombo action="simul">&Ctrl;&Shift;<keycap>A</keycap></keycombo></shortcut>
   <guimenu>Edit</guimenu>
   <guimenuitem>Deselect</guimenuitem></menuchoice></term>
   <listitem>
   <para>Deselect current selection.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycombo action="simul">&Ctrl;&Shift;<keycap>B</keycap></keycombo></shortcut>
   <guimenu>Edit</guimenu>
   <guimenuitem>Block Selection Mode</guimenuitem></menuchoice></term>
   <listitem>
   <para>Toggle Block Selection, this will activate/deactivate the block selection possibility.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
  <shortcut><keycap>Insert</keycap></shortcut>
   <guimenu>Edit</guimenu>
   <guimenuitem>Overwrite Mode</guimenuitem></menuchoice></term>
   <listitem>
   <para>Toggle Insert/Overwrite Mode.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycombo action="simul">&Ctrl;<keycap>F</keycap></keycombo></shortcut>
   <guimenu>Edit</guimenu>
   <guimenuitem>Find</guimenuitem></menuchoice></term>
   <listitem>
   <para>Find text.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycombo action="simul"><keycap>F3</keycap></keycombo></shortcut>
   <guimenu>Edit</guimenu>
   <guimenuitem>Find Next</guimenuitem></menuchoice></term>
   <listitem>
   <para>Find next text.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycombo action="simul">&Shift;<keycap>F3</keycap></keycombo></shortcut>
   <guimenu>Edit</guimenu>
   <guimenuitem>Find Previous</guimenuitem></menuchoice></term>
   <listitem>
   <para>Find previous text.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycombo action="simul">&Ctrl;<keycap>R</keycap></keycombo></shortcut>
   <guimenu>Edit</guimenu>
   <guimenuitem>Replace</guimenuitem></menuchoice></term>
   <listitem>
   <para>Replace text.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycombo action="simul">&Ctrl;<keycap>G</keycap></keycombo></shortcut>
   <guimenu>Edit</guimenu>
   <guimenuitem>Go to line</guimenuitem></menuchoice></term>
   <listitem>
   <para>Go to given linenumber.</para>
   </listitem>
  </varlistentry>
</variablelist>

<!-- VIEW menu -->
<variablelist id="kredit_view_menu"><title><guimenu>View</guimenu> menu</title>
  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycap>F7</keycap></shortcut>
   <guimenu>View</guimenu>
   <guimenuitem>Switch to Command Line.</guimenuitem></menuchoice></term>
   <listitem>
   <para>Display Command Line.</para>  <!-- TODO -->
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <guimenu>View</guimenu>
   <guimenuitem>Schema.</guimenuitem></menuchoice></term>
   <listitem>
   <para>Set Schema &eg; &krusader; Normal, &krusader; Printing, 
         &kate; Normal, &kwrite; Normal.</para>  <!-- TODO -->
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycap>F10</keycap></shortcut>
   <guimenu>View</guimenu>
   <guimenuitem>Dynamic Word Wrap</guimenuitem></menuchoice></term>
   <listitem>
   <para>Go to the next line at the maximum number of characters per line (default 80).</para>
   </listitem>
  </varlistentry>

 <varlistentry>
   <term>
   <menuchoice>
   <guimenu>View</guimenu>
   <guimenuitem>Dynamic Word Wrap Indicators</guimenuitem></menuchoice></term>
   <listitem>
   <para>Off, Follow Line Numbers, Always On.</para>
   </listitem>
  </varlistentry>

 <varlistentry>
   <term>
   <menuchoice>
   <guimenu>View</guimenu>
   <guimenuitem>Show Static Word Wrap marker</guimenuitem></menuchoice></term>
   <listitem>
   <para></para> <!-- TODO -->
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycap>F6</keycap></shortcut>
   <guimenu>View</guimenu>
   <guimenuitem>Show Icon Border</guimenuitem></menuchoice></term>
   <listitem>
   <para>Show Icon Border.</para>  <!-- TODO -->
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycap>F11</keycap></shortcut>
   <guimenu>View</guimenu>
   <guimenuitem>Show Line Numbers</guimenuitem></menuchoice></term>
   <listitem>
   <para>Shows the line numbers.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <guimenu>View</guimenu>
   <guimenuitem>Show Scrollbar Marks.</guimenuitem></menuchoice></term>
   <listitem>
   <para></para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycap>F9</keycap></shortcut>
   <guimenu>View</guimenu>
   <guimenuitem>Hide Folding Markers</guimenuitem></menuchoice></term>
   <listitem>
   <para></para>  <!-- TODO -->
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <guimenu>View</guimenu>
   <guimenuitem>Code Folding.</guimenuitem></menuchoice></term>
   <listitem>
   <para></para>  <!-- TODO -->
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <guimenu>View</guimenu>
   <guimenuitem>Set Encoding</guimenuitem></menuchoice></term>
   <listitem>
   <para>&eg; ISO8859-1, utf8, utf16, tscii, ... .</para>
   </listitem>
  </varlistentry>
</variablelist>

<!-- BOOKMARKS menu -->
<variablelist id="kredit_bookmarks_menu"><title><guimenu>Bookmarks</guimenu> menu</title>
  <varlistentry>
   <term>                               <!-- TODO -->
   <menuchoice>
   <shortcut><keycombo action="simul">&Ctrl;<keycap>B</keycap></keycombo></shortcut>
   <guimenu>Bookmark</guimenu>
   <guimenuitem>Set Bookmark</guimenuitem></menuchoice></term>
   <listitem>
   <para></para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <guimenu>Bookmark</guimenu>
   <guimenuitem>Clear All Bookmarks</guimenuitem></menuchoice></term>
   <listitem>
   <para></para>
   </listitem>
  </varlistentry>

<!-- These enties are gone on my system with kde3.3.2
  
<varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycombo action="simul">&Alt;<keycap>PageDown</keycap></keycombo></shortcut>
   <guimenu>Bookmark</guimenu>
   <guimenuitem>Next Bookmark</guimenuitem></menuchoice></term>
   <listitem>
   <para>Go to the next Bookmark.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycombo action="simul">&Alt;<keycap>PageUp</keycap></keycombo></shortcut>
   <guimenu>Bookmark</guimenu>
   <guimenuitem>Previous Bookmark</guimenuitem></menuchoice></term>
   <listitem>
   <para>Go to the previous Bookmark.</para>
   </listitem>
  </varlistentry>
-->

</variablelist>


<!-- TOOLS menu -->
<variablelist id="kredit_tools_menu"><title><guimenu>Tools</guimenu> menu</title>
  <varlistentry>
   <term>
   <menuchoice>
   <guimenu>Tools</guimenu>
   <guimenuitem>Read Only Mode</guimenuitem></menuchoice></term>
   <listitem>
   <para></para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <guimenu>Tools</guimenu>
   <guimenuitem>Filetype  Mode</guimenuitem></menuchoice></term>
   <listitem>
   <para></para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <guimenu>Tools</guimenu>
   <guimenuitem>Highlight mode</guimenuitem></menuchoice></term>
   <listitem>
   <para>Highlight mode for scripts, programming languages, markup file, &etc;: &eg;
         <literal role="extension">html, Bash, C++, XML, Makefile, Diff, ...</literal> .</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <guimenu>Tools</guimenu>
   <guimenuitem>End of Line</guimenuitem></menuchoice></term>
   <listitem>
   <para>Change the end of Line termination: &UNIX;, &Windows;/DOS,
         <trademark class="registered">Macintosh</trademark>.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycombo action="simul">&Ctrl;<keycap>I</keycap></keycombo></shortcut>
   <guimenu>Tools</guimenu>
   <guimenuitem>Indent</guimenuitem></menuchoice></term>
   <listitem>
   <para></para> <!-- TODO-->
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycombo action="simul">&Ctrl;&Shift;<keycap>I</keycap></keycombo></shortcut>
   <guimenu>Tools</guimenu>
   <guimenuitem>Unindent</guimenuitem></menuchoice></term>
   <listitem>
   <para></para> <!-- TODO-->
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <guimenu>Tools</guimenu>
   <guimenuitem>Clean Indendation</guimenuitem></menuchoice></term>
   <listitem>
   <para></para> <!-- TODO-->
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycombo action="simul">&Ctrl;<keycap>D</keycap></keycombo></shortcut>
   <guimenu>Tools</guimenu>
   <guimenuitem>Comment</guimenuitem></menuchoice></term>
   <listitem>
   <para>Add appropriate comment tags, if available.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycombo action="simul">&Ctrl;&Shift;<keycap>D</keycap></keycombo></shortcut>
   <guimenu>Tools</guimenu>
   <guimenuitem>Uncomment</guimenuitem></menuchoice></term>
   <listitem>
   <para>Removes the comment tags on the left.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycombo action="simul">&Ctrl;<keycap>U</keycap></keycombo></shortcut>
   <guimenu>Tools</guimenu>
   <guimenuitem>Uppercase</guimenuitem></menuchoice></term>
   <listitem>
   <para></para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycombo action="simul">&Ctrl;&Shift;<keycap>U</keycap></keycombo></shortcut>
   <guimenu>Tools</guimenu>
   <guimenuitem>Lowercase</guimenuitem></menuchoice></term>
   <listitem>
   <para></para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycombo action="simul">&Alt;&Ctrl;<keycap>U</keycap></keycombo></shortcut>
   <guimenu>Tools</guimenu>
   <guimenuitem>Capitalize</guimenuitem></menuchoice></term>
   <listitem>
   <para></para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycombo action="simul">&Ctrl;<keycap>J</keycap></keycombo></shortcut>
   <guimenu>Tools</guimenu>
   <guimenuitem>Join Lines</guimenuitem></menuchoice></term>
   <listitem>
   <para></para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <guimenu>Tools</guimenu>
   <guimenuitem>Word Wrap Document</guimenuitem></menuchoice></term>
   <listitem>
   <para></para> <!-- TODO-->
   </listitem>
  </varlistentry>
</variablelist>


<!-- SETTINGS -> CONFIGURE EDITOR menu -->
<variablelist id="kredit_settings_menu"><title><guimenu>Settings -> Configure Editor</guimenu> menu</title>
  <varlistentry>
   <term>
   <menuchoice>
   <guimenu>Settings</guimenu>
   <guimenuitem>Configure Editor</guimenuitem>
   <guimenuitem>Colors</guimenuitem></menuchoice></term>
   <listitem>
   <para>Color configuration for the: Background, Selected text, Current line and Bracket highlighting.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <guimenu>Settings</guimenu>
   <guimenuitem>Configure Editor</guimenuitem>
   <guimenuitem>Fonts</guimenuitem></menuchoice></term>
   <listitem>
   <para>Fonts configuration for display and printer: Font, font Style and Size, with a preview window.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <guimenu>Settings</guimenu>
   <guimenuitem>Configure Editor</guimenuitem>
   <guimenuitem>Indentation</guimenuitem></menuchoice></term>
   <listitem>
   <para>Indentation configuration: Automatically indent, use Spaces to indent, &Tab; Keys indent,
         &Backspace; key unindents, keep indent profile, keep extra spaces.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <guimenu>Settings</guimenu>
   <guimenuitem>Configure Editor</guimenuitem>
   <guimenuitem>Selection</guimenuitem></menuchoice></term>
   <listitem>
   <para>Selection configuration: Persistent selections, Overwrite selected text.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <guimenu>Settings</guimenu>
   <guimenuitem>Configure Editor</guimenuitem>
   <guimenuitem>Editing</guimenuitem></menuchoice></term>
   <listitem>
   <para>Editing configuration: Word Wrap config., Whitespace config, Auto brackets, Smart home,
          Wrap cursor, Maximum undo steps.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <guimenu>Settings</guimenu>
   <guimenuitem>Configure Editor</guimenuitem>
   <guimenuitem>Shortcuts</guimenuitem></menuchoice></term>
   <listitem>
   <para>Shortcuts configuration.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <guimenu>Settings</guimenu>
   <guimenuitem>Configure Editor</guimenuitem>
   <guimenuitem>Highlighting</guimenuitem></menuchoice></term>
   <listitem>
   <para>Highlighting configuration: Default styles and Highlight mode.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <guimenu>Settings</guimenu>
   <guimenuitem>Configure Editor</guimenuitem>
   <guimenuitem>View defaults</guimenuitem></menuchoice></term>
   <listitem>
   <para>View defaults: Dynamic word wrap, show Line numbers, show Icon border, show Folder markers if
          available, sort Bookmarks menu method.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <guimenu>Settings</guimenu>
   <guimenuitem>Configure Editor</guimenuitem>
   <guimenuitem>Plugins</guimenuitem></menuchoice></term>
   <listitem>
   <para>Plugins configuration: &eg; kTexteditor incremental search plugin,
          kTexteditor insert file plugin, kTexteditor kdatatoolplugin...</para>
   </listitem>
  </varlistentry>
</variablelist>

<!-- KRVIEWER menu -->
<variablelist id="kredit_krviewer_menu"><title><guimenu>KrViewer</guimenu> menu</title>
  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycombo action="simul">&Ctrl;&Shift;<keycap>G</keycap></keycombo></shortcut>
   <guimenu>KrViewer</guimenu>
   <guimenuitem>Generic viewer</guimenuitem></menuchoice></term>
   <listitem>
   <para>&krusader;'s internal viewer is actually part of Konqueror, which can basically view every file type
         viewable by &konqueror; (&eg; display pictures, play music, show the content of an archive).</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycombo action="simul">&Ctrl;<keycap>T</keycap></keycombo></shortcut>
   <guimenu>KrViewer</guimenu>
   <guimenuitem>Text viewer</guimenuitem></menuchoice></term>
   <listitem>
   <para>View the file in text mode.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycombo action="simul">&Ctrl;&Shift;<keycap>H</keycap></keycombo></shortcut>
   <guimenu>KrViewer</guimenu>
   <guimenuitem>Hex viewer</guimenuitem></menuchoice></term>
   <listitem>
   <para>View the file in hex mode.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycombo action="simul">&Ctrl;&Shift;<keycap>E</keycap></keycombo></shortcut>
   <guimenu>KrViewer</guimenu>
   <guimenuitem>Text editor</guimenuitem></menuchoice></term>
   <listitem>
   <para>Edit the file in text mode.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycombo action="simul">&Alt;<keycap>Right</keycap></keycombo></shortcut>
   <guimenu>KrViewer</guimenu>
   <guimenuitem>Next Tab</guimenuitem></menuchoice></term>
   <listitem>
   <para>Next browsing Tab.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycombo action="simul">&Alt;<keycap>Left</keycap></keycombo></shortcut>
   <guimenu>KrViewer</guimenu>
   <guimenuitem>Previous Tab</guimenuitem></menuchoice></term>
   <listitem>
   <para>Previous browsing Tab.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut><keycombo action="simul">&Ctrl;&Shift;<keycap>D</keycap></keycombo></shortcut>
   <guimenu>KrViewer</guimenu>
   <guimenuitem>Detach Tab</guimenuitem></menuchoice></term>
   <listitem>
   <para>Detach browsing Tab and open in a new window.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut>&Esc;</shortcut>
   <guimenu>KrViewer</guimenu>
   <guimenuitem>Close current Tab.</guimenuitem></menuchoice></term>
   <listitem>
   <para>Close current browsing Tab.</para>
   </listitem>
  </varlistentry>

  <varlistentry>
   <term>
   <menuchoice>
   <shortcut>&Ctrl;<keycap>Q</keycap></shortcut>
   <guimenu>KrViewer</guimenu>
   <guimenuitem>Close</guimenuitem></menuchoice></term>
   <listitem>
   <para>Closes &krusader;'s viewer/editor window.</para>
   </listitem>
  </varlistentry>
</variablelist>

</sect2>

</sect1>

<sect1 id="krusyncdir">
<title>KruSyncDir: Synchronize Directories</title>

<para>This function compares the left and the right panel directories and shows the difference between them.
      After selecting some options and the <guilabel>Compare</guilabel> function you can synchronize the 
      files and directories.
      One panel could be an &FTP; server. Don't forget the <guilabel>Compare by content</guilabel> option
      if the file size stays equal.
      Choose <emphasis role="bold"><menuchoice><guimenu>Commands</guimenu>
      <guimenuitem>Synchronize Directories</guimenuitem></menuchoice></emphasis>
      or
      <keycombo action="simul">&Ctrl;<keycap>Y</keycap></keycombo> to start this feature.
      The <link linkend="konfig-color">colors</link> are configurable.</para>

<note><para>For local files: the synchronizer changes the date information to the original dates.</para></note>

<screenshot>
  <screeninfo>KruSyncDir: Synchronize Directories</screeninfo>
  <mediaobject>
  <imageobject><imagedata fileref="syncdir.png" format="PNG"/></imageobject>
  <imageobject><imagedata fileref="syncdir.png" format="EPS"/></imageobject>
  <textobject><phrase>KruSyncDir: Synchronize Directories</phrase></textobject>
  <caption><para>KruSyncDir: Synchronize Directories.</para></caption>
  </mediaobject>
</screenshot>

<para>
    <orderedlist><title>Procedure:</title>
    <listitem><para>Set the <guilabel>Left directory</guilabel> and the <guilabel>Right directory</guilabel>.</para>
              </listitem>
    <listitem><para>Configure the optional <guilabel>File Filter</guilabel>, 
               <guilabel>General Filters</guilabel> and <guilabel>Advanced filters</guilabel>.
               The <guilabel>General Filters</guilabel> includes a <guilabel>don't search in</guilabel> 
               option which lets you exclude directories from comparision.
               </para>
              </listitem>
    <listitem><para>Set the <link linkend="synccomp_checkb_options">checkbox options</link>:
                   <guilabel>Recurse subdirectories</guilabel>,
                   <guilabel>Follow symlinks</guilabel>, <guilabel>Compare by content</guilabel>,
                   <guilabel>Ignore Date</guilabel> and <guilabel>Asymmetric</guilabel>.</para>
              </listitem>
    <listitem><para>Click on the <guibutton>Compare</guibutton> button to compare the directories.</para>
              </listitem>
    <listitem><para>By using the <link linkend="synccomp_show_options">Show options</link>, you can
                      include/exclude particular filetypes.
                      Those files, that are not in the list, will be untouched by synchronization.</para>
              </listitem>
    <listitem><para>If needed you can change the <guilabel>Task</guilabel> operations
                determined by the Comparator with the
          <link linkend="synccomp_right_click">right click menu</link>.</para>
              </listitem>
    <listitem><para>When you agree with the <guibutton>Compare</guibutton> results click on the
                    <guibutton>Synchronize</guibutton> button to show the synchronize dialog.</para>
              </listitem>
    <listitem><para>After selection the options of the
                     <link linkend="sychronizer">Synchronizer</link>, click on the
                     <guibutton>Start</guibutton> button to start the synchronization process.</para>
              </listitem>
    </orderedlist>
    A detailed explanation of all the functions and buttons is described in the following text.
</para>

<para><emphasis role="bold">Comparator</emphasis></para>

<variablelist>
<varlistentry><term>Panel elements</term>
  <listitem>
   <itemizedlist>
     <listitem><para><guilabel>Left Directory</guilabel>: the left side base directory.</para>
             </listitem>
     <listitem><para><guilabel>Right Directory</guilabel>: the right side base directory.</para>
               </listitem>
    <listitem><para><guilabel>File Filter</guilabel>: filter the filenames at synchronizing. &eg;
                    <literal role="extension">*.png</literal> selects only those files whose name's end
        with <literal role="extension">.png</literal>
                    Directories will be listed if the directory name ends with
        <literal role="extension">.png</literal> or
                    if the directory contains files which end with <literal role="extension">.png</literal>
                    Multiple include/exclude example: <literal role="extension">'*.cpp *.h | *.moc.cpp'</literal>
                    will include <literal role="extension">*.cpp *.h</literal> and exclude
                    <literal role="extension">*.moc.cpp</literal>
                    </para>
              </listitem>
   <listitem><para><guilabel>General filters</guilabel>: search for, containing text</para>
               </listitem>
   <listitem><para><guilabel>Advanced filters</guilabel>: size, date, ownership</para>
               </listitem>
   </itemizedlist>
   </listitem>
</varlistentry>

<varlistentry id="synccomp_checkb_options"><term>Checkbox options</term>
  <listitem>
   <itemizedlist>
     <listitem><para><guilabel>Recurse subdirectories</guilabel>:
               the Synchronizer walks through subdirectories when comparing.</para>
         </listitem>
     <listitem><para><guilabel>Follow symlinks</guilabel>:
               the Synchronizer follows the symbolic links to directories (not the files!).</para>
         </listitem>
     <listitem><para><guilabel>Compare by content</guilabel>:
               those files whose sizes are equal will be compared by content as well.</para>
         </listitem>
     <listitem><para><guilabel>Ignore Date</guilabel>:
               Ignores the date information (useful for &FTP;, smb, archive, ... )
                     the date information is relevant *only* in the local file system.</para>
               </listitem>
     <listitem><para><guilabel>Asymmetric</guilabel>:
               The <guilabel>Left Directory</guilabel> is the target directory,
                     the <guilabel>Right Directory</guilabel> is the source directory.
                     This functions synchronizes the content of the left directory to the right directory.
                     <itemizedlist>
                     <listitem><para>Those files that exist only on the left side will be deleted.</para>
                               </listitem>
                     <listitem><para>Those files that exist only on the right side will be copied to left.</para>
                               </listitem>
                     <listitem><para>Those files considered to be equal will be untouched.</para>
                               </listitem>
                     <listitem><para>Those files considered to be different will be copied to left.  Use this feature with care!</para>
                               </listitem>
                   </itemizedlist>
                   This function is useful if the date information is unusable, or to synchronize the
                   left directory to the content of a fileserver (like a download).
                   Or to make a backup from the right directory to left directory.
                   NOTE: do NOT use this to option to synchronize a desktop and a notebook
                   (&eg; files that exists only in the left side will be deleted!).</para>
                </listitem>
      <listitem><para><guilabel>Automatic Scrolling</guilabel>:
                   Is for slow &FTP; servers, ... When the Synchronizer is finished
                      comparing a file, it puts the file into the end of the list at once and
                      scrolls the window, if necessary. It is important if you want to
                      know what the Synchronizer is doing. If the &FTP; server is slow, the
                      comparison of a directory may take a lot of time. By turning this
                      option on, one can see that the comparator is "alive", but slow.
                      For fast file systems, it can reduce the speed of comparing slightly.</para>
                </listitem>
    </itemizedlist>
    </listitem>
</varlistentry>

</variablelist>

<para>When all the above things are done, click on the <guibutton>Compare</guibutton> button to compare the
       directories, the results are displayed in the "File List".</para>

<variablelist><varlistentry><term>"File List"</term>
  <listitem>
    <para>The <guilabel>File List</guilabel> has the following columns: "Left name | Left size | Left time |
           Task | Right time | Right size | Right name".</para>
    </listitem>
  </varlistentry>

<varlistentry><term>Tasks (&lt;=>)</term>
  <listitem><para>This column will display the task that is planned for the Syncronizer.</para>
    <itemizedlist>
      <listitem><para><guibutton>-></guibutton>:
             copy from the left side to the right side.
                   For directories: <command>mkdir</command> in the right side.</para>
                   </listitem>
      <listitem><para><guibutton>=</guibutton>:
             the files are the same, don't do anything.</para>
             </listitem>
  <listitem><para><guibutton>!=</guibutton>:
             the file is excluded, or the Synchronizer does not know what to do.</para>
             </listitem>
  <listitem><para><guibutton>&lt;-</guibutton>:
             copy from the right side to the left side.
                   For directories: <command>mkdir</command> in the left side</para>
                   </listitem>
  <listitem><para><guibutton>DEL</guibutton>:
             delete files from the right side.</para>
             </listitem>
    </itemizedlist>
    <para>The tasks can be changed with the <link linkend="synccomp_right_click">right click menu</link>.</para>
    </listitem>
  </varlistentry>

  <varlistentry id="synccomp_show_options"><term>Show options</term>
    <listitem>
    <para>Here you can include/exclude particular filetypes.
    Those files, that are not in the list, will be untouched at synchronization.</para>
    <itemizedlist>
      <listitem><para><guibutton>-></guibutton>:
             Enable/Disable the copy task from left to right.</para></listitem>
      <listitem><para><guibutton>=</guibutton>:
             Enable/Disable listing the equal files.</para></listitem>
  <listitem><para><guibutton>!=</guibutton>:
             Enable/Disable listing the excluded / "don't know what to do" files.</para></listitem>
  <listitem><para><guibutton>&lt;-</guibutton>:
             Enable/Disable the copy task from right to left.</para></listitem>
  <listitem><para><guibutton>Trash</guibutton>:
             Enable/Disable the file deleting from the left side task.</para></listitem>
  <listitem><para><guibutton>Duplicates</guibutton>:
             Enable/Disable those files that exist on both side.</para></listitem>
  <listitem><para><guibutton>Singles</guibutton>:
             Enable/Disable those files that exist only on one side.</para></listitem>
    </itemizedlist></listitem>
    </varlistentry>

    <varlistentry><term>Action buttons</term>
    <listitem>
    <itemizedlist>
      <listitem><para><guibutton>Compare</guibutton>:
             compares the directories, the results are displayed in the <guilabel>File List</guilabel>.</para></listitem>
      <listitem><para><guibutton>Stop</guibutton>:
             stops comparing.</para></listitem>
  <listitem><para><guibutton>Synchronize</guibutton>:
             shows the synchronize dialog.</para></listitem>
  <listitem><para><guibutton>Close</guibutton>:
             closes the Synchronizer window.</para></listitem>
    </itemizedlist></listitem>
    </varlistentry>

    <varlistentry><term>The Status line may contain</term>
    <listitem>
    <itemizedlist>
      <listitem><para>The number of scanned directories while comparing.</para></listitem>
      <listitem><para>The filename when comparing by content (for big files).</para></listitem>
  <listitem><para>The number of files in the list.</para></listitem>
    </itemizedlist></listitem>
    </varlistentry>

    <varlistentry id="synccomp_right_click"><term>Right click menu on the <guilabel>File List</guilabel></term>
    <listitem>
    <para>The right click menu is split up in three sections:</para>

    <para>1. change the <guilabel>Task</guilabel> operations
     determined by the Comparator. Select one or multiple files.
           The change will be applied on the selection and not only on the right clicked item.
     If the selected item is a directory, the change will be applied on its
     files/subdirectories as well.</para>
    <itemizedlist>
      <listitem><para><guibutton>Synchronise Directories</guibutton>:
             starts synchronization.</para></listitem>
      <listitem><para><guibutton>Exclude</guibutton>:
             excludes a file/dir from synchronization ( task change to != ).</para></listitem>
  <listitem><para><guibutton>Restore original operation</guibutton>:
             task change to the original result of comparison.</para></listitem>
  <listitem><para><guibutton>Reverse direction</guibutton>:
             task change ( -> to &lt;-, and &lt;- to -> ).</para></listitem>
        <listitem><para><guibutton>Copy from right to left</guibutton>:
             task change to &lt;-.</para></listitem>
        <listitem><para><guibutton>Copy from left to right</guibutton>:
             task change to ->.</para></listitem>
        <listitem><para><guibutton>Delete ( left single )</guibutton>:
             task change to DEL.</para></listitem>
    </itemizedlist>

    <para>2. change the selections</para>
    <itemizedlist>
        <listitem><para><guibutton>Select items</guibutton>:
             Opens a dialog which allows you to select items.
       This is the <guimenuitem>Select Group</guimenuitem> dialog from the
       &markmenu_lnk;.</para></listitem>
        <listitem><para><guibutton>Unselect items</guibutton>:
             Opens a dialog which allows you to unselect items.
       This is the <guimenuitem>Unselect Group</guimenuitem> dialog from the
       &markmenu_lnk;.</para></listitem>
        <listitem><para><guibutton>Invert selection</guibutton>:
             Invert the selection status of all items.</para></listitem>
    </itemizedlist>

    <para>3. others  Note: the following operations work on the right-clicked file and not on the selection.</para>
    <itemizedlist>
        <listitem><para><guibutton>View left file</guibutton>:
             starts viewer on the left file.</para></listitem>
        <listitem><para><guibutton>View right file</guibutton>:
             starts viewer on the right file.</para></listitem>
        <listitem><para><guibutton>Compare Files</guibutton>:
             starts the diff utility (&eg; &kompare;) on the files.</para></listitem>
    </itemizedlist>
    </listitem>
    </varlistentry>

  <varlistentry><term>Other buttons</term>
  <listitem>
   <itemizedlist>
     <listitem>
       <para><guibutton>Profiles</guibutton>: If you have to synchronize often the same 
              directories you can save the settings &eg; include files, exclude files, ...
              Press the <guibutton>Profile</guibutton> button, 
              and you'll be able to add/ load / save / remove synchronizer profiles.</para>
     </listitem>
     <listitem>
       <para><guibutton>Swap sides</guibutton>: swaps the <guilabel>File List</guilabel>.</para>
    </listitem>
   </itemizedlist>
  </listitem>
  </varlistentry>


  <varlistentry><term>Synchronize with &kget;</term>
   <listitem>
     <para>If you want to synchronize a local directory with an unstable ftp server,
           &kget; is a much better solution than simple file copying.
     After comparing you may right click on the result list and select
     <guimenuitem>Synchronize with kget</guimenuitem>
           to execute the synchronization, after that the listed files will be
           downloaded with kget instead of krusader.
     Of course <application>kget</application> needs to be installed on your computer;
     otherwise, it will not be available.</para>
    </listitem>
  </varlistentry>


    </variablelist>


    <para id="sychronizer"><emphasis role="bold">Synchronizer</emphasis></para>
    <para>After pressing the <guibutton>Synchronize</guibutton> button the synchronization dialog appears.</para>

    <variablelist>
    <varlistentry><term>Check boxes</term>
    <listitem>
    <para>Here you confirm the copy and delete operations of the Synchronizer</para>
    <itemizedlist>
      <listitem><para><guilabel>Right to left</guilabel>:
             copy X1 files ( Y1 bytes )
                   enable / disable the copy from right to left.</para></listitem>
      <listitem><para><guilabel>Left to right</guilabel>:
             copy X2 files ( Y2 bytes )
                   enable / disable the copy from left to right.</para></listitem>
  <listitem><para><guilabel>Left</guilabel>:
             delete X3 files ( Y3 bytes )
                   enable / disable the left side deleting.</para></listitem>
  <listitem><para><guilabel>Confirm overwrites</guilabel>:
             By switching this option on, Krusader will show the
                   <guibutton>rename, skip, overwrite, skip all, overwrite all</guibutton> dialog box,
                   before overwriting the file.</para></listitem>
    </itemizedlist></listitem>
    </varlistentry>

    <varlistentry><term>Status labels</term>
    <listitem>
    <itemizedlist>
      <listitem><para><guilabel>Ready</guilabel>:
             A1/A2 files, B1/B2.
       This line is changed at synchronizing, showing that synchronizer finished
                   with A1 files from A2 ( B1 bytes from B2 ).</para></listitem>
      <listitem><para><guilabel>Progress bar</guilabel>:
             Shows the progress on the synchronization (based on bytes).</para></listitem>
    </itemizedlist></listitem>
    </varlistentry>

    <varlistentry><term>Action buttons</term>
    <listitem>
    <itemizedlist>
      <listitem><para><guibutton>Start</guibutton>:
             starts synchronization.</para></listitem>
      <listitem><para><guibutton>Pause / Resume</guibutton>:
             pauses/resumes the synchronization process.</para></listitem>
  <listitem><para><guibutton>Close</guibutton>:
             closes the synchronization dialog (and stops synchronization).</para></listitem>
    </itemizedlist></listitem>
    </varlistentry>

    </variablelist>

</sect1>


<sect1  id="useractions">
<title>User-Actions</title>
<!-- Thanks to Jonas Bar -->

<para>
  With the User-Action-system the user can make his own actions on files in the
  panel or to access krusader-internal functions with parameter directly using placeholder(s).
  The actions integrate seamlessly into &kde;'s action-system, so the standard
  edit-toolbar/shortcut-dialogs will show/manipulate the User-Actions too.
  The User-Actions are stored in <filename>~/.kde/share/apps/krusader/useraction.xml</filename>
  (the file-structure is documentated in doxygen-headers of UserActionXML).
  Several <link linkend="useraction_xml">examples</link> are included in the documentation.
  User-Actions can be edit/add/im-/export using by using the 
  <link linkend="konfig-useractions">Useractions manager</link> a Konfigurator-module,
  although we plan to move all action-related to a new ActionMan.
  User-Actions can appear nearly everywhere where "normal" KActions can be placed. 
  They integrate seamless in the well knows Edit-(Toolbar,Shortcut) Dialogs from &kde;.
  It's even possible to place them in the menubar, but for that one has to
  manipulate the <filename>krusaderui.rc</filename> file with an editor.
  Some examples:
  <itemizedlist>
      <listitem><para><link linkend="useractions-menu">Useractions Menu</link>
                </para></listitem>
      <listitem><para>&usermenu_lnk;
                </para></listitem>
      <listitem><para>&actions_toolbar_lnk;
                </para></listitem>
      <listitem><para>right-click menu's
                </para></listitem>
      <listitem><para>&etc;
                </para></listitem>
  </itemizedlist>
  Once you understand how to write User-Actions you will find out that &krusader; has a very powerful,
  customizable User-Actions tool.
</para>

<tip><para>
      Several UserActions are provided by default.
      Please <link linkend="help_krusader">upload your favorite UserActions</link> 
      so that they become available for the &krusader; community. Thanks!
      We provide also an &useractionsforum_url;. 
</para></tip>

<para>
Basically User-Actions are a method to call external programs with variable parameters.
You could for example have a useraction with the following
<command>xmms <option>--enqueue %aList("Selected")%</option></command> to enqueue
all selected items of the active panel to the current instance of xmms.
In addition to that, there is limited access to krusader-internal functions
which requires parameter, so <command>%aPanelSize("80")%</command> 
will set the width of the active panel to 80% of &krusader;'s mainwindow.
Since the parameter of placeholders can itself contain other placeholders, 
little scripts are possible but real scripting can be done with the &javascript_console_lnk;.
</para>

<para><emphasis role="bold">Managing User-Actions</emphasis></para>
<para>Open Konfigurator and choose "User-Actions", here you can add/edit/remove/import/export User-Actions.
  <itemizedlist>
      <listitem><para><guimenuitem>Add Action</guimenuitem>:
               If you add an new action, you get an empty input-mask where you can
               enter all the properties. The action will be added as soon as you press 
               <guimenuitem>Ok</guimenuitem>. Now the name is shown in the list on the left.
                      </para></listitem>
     <listitem><para>To edit a User-Action:
               select the User-Action on the left.
               Now you can choose it if you want to edit the properties, 
               the changes will only take effect when you press <guimenuitem>Ok</guimenuitem>.
                      </para></listitem>
     <listitem><para><guimenuitem>Remove Action</guimenuitem>:
               Select the User-Action on the left and click the remove button.
                      </para></listitem>
     <listitem><para><guimenuitem>Import Action</guimenuitem>:
               If you import some actions they will be automatically added to your list.
               If there are name-conflicts (the names have to be unique because these are 
               the ID for &kde;'s action-system) you're asked to resolve them. 
               For this the list on the left will only show the actions where conflicts exists.
               You now can give them new names or remove them.
                     </para></listitem>
     <listitem><para><guimenuitem>Export Action</guimenuitem>:
                If you export a User-Action you have to give a filename in which to store it.
                If it does not exist it will be created. If it contains already some User-Actions,
                the action you're exporting will be added to that file.
                    </para></listitem>
   </itemizedlist>
   All actions you've defined are now shown in the usermenu and in &kde;'s dialogs
   for changing shortcuts and managing the toolbar. In addition all actions
   available for the current item will also show up in the rightclick menu.
</para>


<para><emphasis role="bold"><guimenuitem>Basic Properties</guimenuitem></emphasis></para>
<para><guimenuitem>"Distinct Name", "Title" and "Command line"</guimenuitem> are always required, 
                   all the other properties are optional.
    <itemizedlist>
    <listitem><para><guimenuitem>"Distinct Name"</guimenuitem>: 
                     a unique name of the User-Action, used to identiy it for &kde;'s action-system.
                    </para></listitem>
    <listitem><para><guimenuitem>"Icon button"</guimenuitem>: the icon for your User-Action.
                    </para></listitem>
    <listitem><para><guimenuitem>"Category"</guimenuitem>: adds an category for an better overview.
                    NOTE: this property is not used yet. It is planed to be used, but this is not implemented yet.
                    </para></listitem>
    <listitem><para><guimenuitem>"Title"</guimenuitem>: the title displayed in the menus/dialogs.
                    </para></listitem>
    <listitem><para><guimenuitem>"Tooltip"</guimenuitem>: a tooltip for your User-Action, &eg; 
                                 displayed in the toolbar on mouseover.
                    </para></listitem>
    <listitem><para><guimenuitem>"Description"</guimenuitem>: a description of what the User-Action is doing.
                    This is also displayed as <guimenuitem>"What's This"</guimenuitem> if you
        <keycombo action="simul">&Shift;<keycap>F1</keycap></keycombo> click on your User-Action.
                    </para></listitem>
    <listitem><para><guimenuitem>"Use Tooltip checkbox"</guimenuitem>: uses the tooltip as description.
                    </para></listitem>
    <listitem><para><guimenuitem>"Command line"</guimenuitem>: is the command which is finaly executed.
                     You can add placeholder using a GUI with the <guibutton>add</guibutton> button.
                     </para></listitem>
    <listitem><para><guimenuitem>"Startpath"</guimenuitem>: the working directory for the command that will be executed.
                     </para></listitem>

      <listitem><para><guimenuitem>"Execution mode"</guimenuitem>:</para>
        <itemizedlist>
         <listitem><para><guimenuitem>"Normal"</guimenuitem>: normal execution mode.
             </para></listitem>
   <listitem><para><guimenuitem>"Run in terminal"</guimenuitem>: runs the command in the terminal.
             </para></listitem>
         <listitem><para><guimenuitem>"Collect output"</guimenuitem>:
             collects the output off the executed programm in a &GUI; window.
             </para></listitem>
   <listitem><para><guimenuitem>"Separate standard error"</guimenuitem>
             when "Collect output" is used the stdout and stderr are separately collected
             </para></listitem>
        </itemizedlist>
      </listitem>

      <listitem><para><guimenuitem>"Command accepts"</guimenuitem>:</para>
        <itemizedlist>
   <listitem><para><guimenuitem>"Local files (no URL's)"</guimenuitem>:
             tells the placeholder it should return local addesses.
             </para></listitem>
         <listitem><para><guimenuitem>"URL's (local and remote)"</guimenuitem>:
             tells the placeholder it should return &URL;'s.
             </para></listitem>
       </itemizedlist>
       </listitem>

<!--    Not yet implemented, but will be after 1.50 stable is released
        <listitem><para><guimenuitem>"On multiple selection"</guimenuitem>:  </para>
        <itemizedlist>
   <listitem><para><guimenuitem>"separate call for each file"</guimenuitem>: executes the command for each selected file.
             </para></listitem>
         </itemizedlist>
      </listitem> -->
      
      <listitem><para><guimenuitem>"Shortcut button"</guimenuitem>: configures a shortcut for the User-Action.</para></listitem>
    </itemizedlist>
</para>

<para><emphasis role="bold">Commandline-syntax:</emphasis></para>
<para>Basically, everything you type in the command line will get executed (if you type "ls -l", "ls -l" gets executed). You have the possiblity to get some character string from &krusader; which represents the current panel-state. This is done by placeholders. A placeholder begins with a percent-sign ('%'), followd by a panel-indicator ('a' for the active, 'o' for the other, 'l' for the left and 'r' for the right panel. If the placeholder doesn't need a panel to operate on you have to indicate this by an underscore ('_')). Then comes the name of the placeholder (see the list below), which may get some parameters enclosed in quotes, and finally, again the percent-sign.</para>
<para>This sounds very complicated, so lets make an example: '%aList("Selected")%' will be replaced by a list of all selected items in the active panel. So a command like 'xmms --enqueue %aList("All", " ", "", "*.mp3")%' will execute xmms with a list of all .mp3's in the current panel, separated by a single blank.</para>
<para>Currently, these placeholders are implemented:
<itemizedlist>
     <listitem><para><userinput>Path</userinput> - replaced by the panels path</para>
          <orderedlist>
         <listitem><para>&useraction_optional_parameter; Automatic escape spaces. &useraction_default; yes</para></listitem>
    </orderedlist>
    </listitem>
     <listitem><para><userinput>Count</userinput> - replaced by the number of &lt;first parameter&gt;</para>
          <orderedlist>
         <listitem><para>&useraction_parameter; Which items; either "All", "Selected", "Files" or "Dirs"</para></listitem>
    </orderedlist>
    </listitem>
     <listitem><para><userinput>Filter</userinput> - replaced by the panels filter-mask</para></listitem>
     <listitem><para><userinput>Current</userinput> - replaced by the current item</para>
          <orderedlist>
         <listitem><para>&useraction_optional_parameter; Omit the current path. &useraction_default; no</para></listitem>
         <listitem><para>&useraction_optional_parameter; Automatic escape spaces. &useraction_default; yes</para></listitem>
    </orderedlist>
    </listitem>
     <listitem><para><userinput>List</userinput> - replaced by a list of all &lt;first parameter&gt;</para>
          <orderedlist>
         <listitem><para>&useraction_parameter; Which items; either "All", "Selected", "Files" or "Dirs"</para></listitem>
         <listitem><para>&useraction_optional_parameter; Separator between the items. &useraction_default; "&nbsp;"</para></listitem>
         <listitem><para>&useraction_optional_parameter; Omit the current path. &useraction_default; no</para></listitem>
         <listitem><para>&useraction_optional_parameter; Filtermask (for all but "Selected"). &useraction_default; *</para></listitem>
         <listitem><para>&useraction_optional_parameter; Automatic escape spaces. &useraction_default; yes</para></listitem>
    </orderedlist>
    </listitem>
     <listitem><para><userinput>Select</userinput> - manipulates the selection in a panel</para>
          <orderedlist>
         <listitem><para>&useraction_parameter; Filtermask</para></listitem>
         <listitem><para>&useraction_optional_parameter; manipulate in which way; either "Set", "Add" or "Remove". &useraction_default; "Set"</para></listitem>
    </orderedlist>
    </listitem>
     <listitem><para><userinput>Goto</userinput> - changes the panels's path to &lt;first parameter&gt;</para>
          <orderedlist>
         <listitem><para>&useraction_parameter; A relative or absolute path, or an URL</para></listitem>
         <listitem><para>&useraction_optional_parameter; Open the location in a new tab. &useraction_default; no</para></listitem>
    </orderedlist>
    </listitem>
     <listitem><para><userinput>Ask</userinput> - asks the user for a some text and is replaced by the answer</para>
          <orderedlist>
         <listitem><para>&useraction_parameter; The Question</para></listitem>
         <listitem><para>&useraction_optional_parameter; A default answer</para></listitem>
         <listitem><para>&useraction_optional_parameter; A caption for the questionbox</para></listitem>
    </orderedlist>
    </listitem>
     <listitem><para><userinput>Clipboard</userinput> - manipulates the clipboard</para>
          <orderedlist>
         <listitem><para>&useraction_parameter; The text that should go to the clipboard (you may want to use "%aCurrent%" here)</para></listitem>
         <listitem><para>&useraction_optional_parameter; Append the text to the current clipboard-content with this separator</para></listitem>
    </orderedlist>
    </listitem>
     <listitem><para><userinput>Copy</userinput> - copies a file, useful for quick, local backups</para>
          <orderedlist>
         <listitem><para>&useraction_parameter; What should be copied</para></listitem>
         <listitem><para>&useraction_parameter; Where it should be copied</para></listitem>
    </orderedlist>
    </listitem>
     <listitem><para><userinput>Sync</userinput> - opens the Synchronizer with a given profile</para>
          <orderedlist>
         <listitem><para>&useraction_parameter; A profile for the Synchronizer</para></listitem>
    </orderedlist>
    </listitem>
     <listitem><para><userinput>NewSearch</userinput> - opens the search-windows with a given profile</para>
          <orderedlist>
         <listitem><para>&useraction_parameter; A profile for the search-module</para></listitem>
    </orderedlist>
    </listitem>
     <listitem><para><userinput>Profile</userinput> - loads a given panel-profile</para>
          <orderedlist>
         <listitem><para>&useraction_parameter; A panel-profile</para></listitem>
    </orderedlist>
    </listitem>
     <listitem><para><userinput>Each</userinput> - splits the commandline into a list.
           These commands are executed one after another.</para>
          <orderedlist>
         <listitem><para>&useraction_parameter; A list-item (all, all files, all dirs, all selected).</para></listitem>
    </orderedlist>
    </listitem>
     <listitem><para><userinput>Move</userinput> - Move from source to destination.</para>
    <orderedlist>
         <listitem><para>&useraction_parameter; A source</para></listitem>
         <listitem><para>&useraction_parameter; A destination</para></listitem>
    </orderedlist>
    </listitem>
    <listitem><para><userinput>PanelSize</userinput> - Change the ratio between the two panels.</para>
       <orderedlist>
          <listitem><para>&useraction_optional_parameter; A integer value, e.g., 80 makes the active panel use 80% of
                         &krusader;'s width (height in vertical-mode), omitting the parameter means 50%.
                         </para></listitem>
       </orderedlist>
    </listitem>
    <listitem><para><userinput>Ask</userinput> - Cancel the execution.</para>
       <orderedlist>
          <listitem><para>&useraction_optional_parameter; A string for the cancel question.
                         </para></listitem>
       </orderedlist>
    </listitem>
    <listitem><para><userinput>Script</userinput> - Executes an external 
                    <link linkend="javascript_console">Javascript</link> file.</para>
              <para>NOTE: is still experimental and the interface may change, feedback is always welcome.</para>
          <orderedlist>
          <listitem><para>&useraction_parameter; path to the external foo.js file,
                          absolut path or relative to <filename>&lt;kde-app-data&gt;/krusader/js/</filename>.
                          &lt;kde-app-data&gt; is <filename>$(kde-config --localprefix)/share/apps/</filename> or
                          <filename>$(kde-config --prefix)/share/apps/</filename>, for those who don't know 
                          where so copy the scripts/extensions. If all the needed files
                          (normaly <filename>.js</filename> and maybe <filename>.ui</filename>)
                          are in one of these dirs it's sufficient to give the filename only as 1. parameter.
                    </para></listitem>
          <listitem><para>&useraction_optional_parameter; a list of variables which should be set, 
                    like "return=cmd; a=lalala; b='%_Ask(..)'" so that the placeholder is replaced be the content of the
                    variable cmd and the other two have already these values when the script starts.
                    </para></listitem>                             
         </orderedlist>
     </listitem>
     <listitem><para><userinput>ListFile</userinput> - is replaced by path/filename of a temporary 
               file containing a list of items</para>
          <orderedlist>
         <listitem><para>&useraction_parameter; path/filename</para></listitem>
         </orderedlist>
     </listitem>

     <listitem><para><userinput>ColSort</userinput> - set the sorting
          on a column of a specific panel.</para>
     <orderedlist>
     <listitem><para>&useraction_parameter; Column: either "Name", "Ext", "Type", "Size",
                     "Modified", "Perms", "rwx", "Owner" and "Group"</para></listitem>
     <listitem><para>&useraction_parameter; Sort sequence: either "Toggle", "Asc", "Desc"
                     </para></listitem>
      </orderedlist>
     </listitem>

     <listitem><para><userinput>View</userinput> - set the view mode.</para>
     <orderedlist>
     <listitem><para>&useraction_parameter; View mode: either "generic", "text", "hex"
                     </para></listitem>
     <listitem><para>&useraction_parameter; Window Mode: either "tab", "window"
                     </para></listitem>
     </orderedlist>

    </listitem>
</itemizedlist>

A GUI-based helper for placeholder-adding is provided.
Spaces In Path, Current and List are by default, automatically escaped.
There is one more important thing to know: All placeholders that interact with &krusader;-internal functions are called
at expand-time (meaning directly when the placeholders are replaced). External programms are called at
execution-time (meaning after all placeholders are replaced).
</para>

<para><emphasis role="bold"><guimenuitem>Advanced Properties</guimenuitem></emphasis></para>
<para>Here you can configure where your command should be visible (for the rightclick-menu)
In addition, it's possible to change the command executed and confirm it separately.
You can also set a user under which the command should be executed.
<itemizedlist>
  <listitem><para>Configures if the action is valid for a Protocol, Path, Mime-type or Filename.</para></listitem>
  <listitem><para>Tweaking the command line before being executed.</para></listitem>
  <listitem><para>Set a different user for the execution (this has no effect in krusader-internal functions)</para></listitem>
</itemizedlist>
</para>

</sect1>

<sect1 id = "javascript_console">
<title>JavaScript console</title>

<para><keycombo action="simul">&Alt;&Ctrl;<keycap>j</keycap></keycombo> opens the JavaScript-console.
      (only available if libkjsembed is present at compile- and runtime)</para>
      
<para>The JavaScript console is an interface to the embeded JS-Interpreter which can be used 
      to play around and test how things work.</para>
      
</sect1>

<sect1 id = "javascript_interface">
<title>JavaScript interface</title>

<para><emphasis role="bold">Warning:</emphasis>
  The JS-Support is quite stable (which means that it won't crash &krusader;
  (hopefully ;)) and you can't loose any data by using it). However, the
  JS-interface will certainly change! So using it can't do any harm but you
  must know that your scripts may (or quite certainly, if you're interacting
  with Krusader) won't work with future versions of &krusader; anymore.
</para>

<tip><para>Please
     <link linkend="help_krusader">upload your favorite JavaScript Extensions</link> 
      so that they become available for the &krusader; community. Thanks! 
      </para></tip>

<para>JavaScript applications have usually 2 files <filename>foo.js</filename> and 
      <filename>foo.ui</filename>.
      They will be installed in <filename>~/.kde/share/apps/krusader/js/</filename>,
      a useraction with a "%_Script" action will start the Javascripting.
      Currently we have 2 JS demo's <filename>root-mount-extension.tar.bz2</filename>
      and <filename>js-demo-calc.tar.bz2</filename> that will be more explenatory.</para>

<para>When a script is executed, the script doesn't know it's origin (or maybe there
      is a way which that we don't know) and all relative path's are relative to the
      current working-dir. But this dir is (normaly) not the one where the script
      is located but the current dir of the active Panel of Krusader. This needs to
      stay like this. However, for referenceing additional files like .ui
      (Userinterface, exported by &Qt;'s Designer) one need the path of the script.
      The alternative where absolute path's but this is more then unhandy.
      For this reason the Variable "scriptDir" was introduced. If a Script want to
      load a &GUI; from a .ui-file this can be done this way:
      <emphasis>var ui = Factory.loadui( scriptDir + 'filename.ui' );</emphasis>

      I recomend using Dialog as a base when designing &GUI;'s for using with JS.
      Execute the dialog with: <emphasis>ui.exec();</emphasis>
      The elements of the &GUI; may be accessed like this: <emphasis>ui.child('widgetName')</emphasis>
</para>

<para>Currently there are only the objects 'Krusader' and 'PanelManager' which are
      exposed C++ objects without a real sence behind. They can be inspected using
      the JS-Console and the functions 'properties()', 'children()' and 'slots()'.
      The children can be accessed with the function 'chlid("nameOfChild")' with
      returns an object itself.
      Currently more usefull is the Variable scriptDir. Following the
      root-mount-extension it's already possible to create advnaced &GUI;'s for commandline-tools
</para>

<para>You can play around with'Krusader.setCaption("Hey Ho, Let's go!");', 'Krusader.children();', 
      'Krusader.child("help").slots();', 'alert(Krusader.properties())' or 'Krusader.child("help").show();'....
      In addition a new placeholder for the &useractions_lnk;, %_Script()%, will execute an external file.</para>

<para>NOTE: The object 'Krusader' will change. We haven't made decisions about the JS-interface yet
      (at the time of the 1.70.0-release).
      Any ideas are welcome. Plase use our &kruforum_url; for feedback.</para>

<para>The JavaScript-support is based on &kjsembed_url;. Some expamples which show the power of this library
      can be found on <ulink url="http://xmelegance.org/kjsembed/examples/index.html"></ulink>. Support for all of KDE's
      ground-laying technologies like DCOP or KParts is provided. You can even load whole GUI's from .ui-files, created
      with &Qt;'s Designer. An example extension making use of this can be found
      <ulink url="http://www.krusader.org/phpBB/viewtopic.php?p=4832#4832">here</ulink>.
      </para>

</sect1>

<sect1 id="diskusage">
<title>Disk Usage</title>

<para>The Disk Usage is based on the code of &filelight;.
      The Disk Usage shows you exactly how your disk space is being used by a graphical
      representation of your filesystem. The following presentations are possible:
 <itemizedlist>
  <listitem><para>Line view</para></listitem>
  <listitem><para>Detailed view</para></listitem>
  <listitem><para>&filelight; view: as a set of concentric segmented-rings.</para></listitem>
 </itemizedlist>

 Choose <emphasis role="bold"><menuchoice><guimenu>Tools</guimenu>
      <guimenuitem>Disk Usage</guimenuitem></menuchoice></emphasis>
      or
      <keycombo action="simul">&Alt;<keycap>d</keycap></keycombo> to start this feature in a
       separate window, or open it insided  the &popup_panel_lnk;.
</para>

<para>Disk Usage Keybindings, right click menu.
 <itemizedlist>
  <listitem><para><keycap>Del</keycap>: 
            Delete</para></listitem>
  <listitem><para><keycombo action="simul">&Ctrl;<keycap>e</keycap></keycombo>: 
            Exclude</para></listitem>
  <listitem><para><keycombo action="simul">&Shift;<keycap>Arrow Up</keycap></keycombo>: 
            parent dir</para></listitem>
  <listitem><para><keycombo action="simul">&Ctrl;<keycap>n</keycap></keycombo>: 
            new search</para></listitem>
  <listitem><para><keycombo action="simul">&Ctrl;<keycap>r</keycap></keycombo>: 
            refresh</para></listitem>
  <listitem><para><keycombo action="simul">&Ctrl;<keycap>i</keycap></keycombo>: 
            include all</para></listitem>
  <listitem><para><keycombo action="simul">&Shift;<keycap>Arrow Down</keycap></keycombo>: 
            step into</para></listitem>
  
  <listitem><para>View menu:
  <itemizedlist>
  <listitem><para><keycombo action="simul">&Ctrl;<keycap>l</keycap></keycombo>: 
            line view</para></listitem>
  <listitem><para><keycombo action="simul">&Ctrl;<keycap>d</keycap></keycombo>: 
            detailed view</para></listitem>
  <listitem><para><keycombo action="simul">&Ctrl;<keycap>f</keycap></keycombo>: 
            filelight view</para></listitem>
  <listitem><para><keycombo action="simul">&Shift;<keycap>Arrow Right</keycap></keycombo>: 
            next view</para></listitem>
  <listitem><para><keycombo action="simul">&Shift;<keycap>Arrow Left</keycap></keycombo>: 
            previous view</para></listitem>
  </itemizedlist>
  </para></listitem>

 </itemizedlist>
</para>

<!--HTML_PARSING
<screenshot>
  <screeninfo>Disk Usage</screeninfo>
  <mediaobject>
  <imageobject><imagedata fileref="diskusage.png" format="PNG"/></imageobject>
  <imageobject><imagedata fileref="diskusage.png" format="EPS"/></imageobject>
  <textobject><phrase>Konfigurator Look &amp; Feel page</phrase></textobject>
  <caption><para>Disk Usage</para></caption>
  </mediaobject>
</screenshot>
HTML_PARSING-->


</sect1>


</chapter>
