//
//     Copyright 2006 Jim Bublitz <jbublitz@nwinternet.com>
//     Earlier copyrights 1998 - 2005 Jim Bublitz and/or Phil Thompson
//     may also apply


//                 Generated by preSip
//            module kfile  version KDE 3.5.3


// This software is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as
// published by the Free Software Foundation; either version 2 of
// the License, or (at your option) any later version.
//
// This software is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public
// License along with this library; see the file COPYING.
// If not, write to the Free Software Foundation, Inc.,
// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.


class KDirOperator : QWidget
{
%TypeHeaderCode
#include <kdiroperator.h>
%End


public:

%If ( KDE_3_1_0 -  )

    enum ActionTypes
    {
        SortActions, 
        ViewActions, 
        NavActions, 
        FileActions, 
        AllActions
    };

%End

                         KDirOperator (const KURL& = KURL (), QWidget* /TransferThis/ = 0, const char* = 0);
    void                 setShowHiddenFiles (bool);
    bool                 showHiddenFiles () const;
    void                 close ();

%If ( KDE_3_4_0 -  )
    virtual bool         close (bool);
%End

    void                 setNameFilter (const QString&);
    const QString&       nameFilter () const;

%If ( KDE_3_1_2 -  )
    void                 setMimeFilter (const QStringList&);
    QStringList          mimeFilter () const;
    void                 clearFilter ();
%End

    KURL                 url () const;
    void                 setURL (const KURL&, bool);
    void                 setCurrentItem (const QString&);
    void                 setView (KFileView*);
    const KFileView*     view () const;
    QWidget*             viewWidget () const;
    void                 setView (KFile::FileView);
    void                 setSorting (QDir::SortSpec);
    QDir::SortSpec       sorting () const;
    bool                 isRoot () const;
    KDirLister*          dirLister () const;
    KProgress*           progressBar () const;
    void                 setMode (KFile::Mode);
    KFile::Mode          mode () const;
    void                 setPreviewWidget (const QWidget*);
    const KFileItemList* selectedItems () const;
    bool                 isSelected (const KFileItem*) const;
    int                  numDirs () const;
    int                  numFiles () const;
    KCompletion*         completionObject () const;
    KCompletion*         dirCompletionObject () const;
    KActionCollection*   actionCollection () const;

%If ( KDE_3_1_0 -  )
    void                 setViewConfig (KConfig*, const QString&);
    KConfig*             viewConfig ();
    QString              viewConfigGroup () const;
%End

    virtual void         readConfig (KConfig*, const QString& = QString ::null );
    virtual void         writeConfig (KConfig*, const QString& = QString ::null );
    void                 setOnlyDoubleClickSelectsFiles (bool);
    bool                 onlyDoubleClickSelectsFiles () const;
    bool                 mkdir (const QString&, bool = 1);
    KIO::DeleteJob*      del (const KFileItemList&, bool = 1, bool = 1)  /PyName=del_/;

%If ( KDE_3_0_3 -  )
    KIO::DeleteJob*      del (const KFileItemList&, QWidget* /Transfer/, bool = 1, bool = 1)  /PyName=del_/;
%End

    void                 clearHistory ();
    void                 setEnableDirHighlighting (bool);
    bool                 dirHighlighting () const;
    bool                 dirOnlyMode () const;
    static bool          dirOnlyMode (uint);

%If ( KDE_3_1_0 -  )
    void                 setupMenu (int);

%If ( KDE_3_2_0 -  )
    virtual void         setAcceptDrops (bool);
    void                 setDropOptions (int);

%If ( KDE_3_4_0 -  )
    KIO::CopyJob*        trash (const KFileItemList&, QWidget* /Transfer/, bool = 1, bool = 1);
%End

%End

%End


protected:
    virtual KFileView*   createView (QWidget* /Transfer/, KFile::FileView);
    void                 setDirLister (KDirLister*);

%If ( KDE_3_2_0 -  )
    virtual void         resizeEvent (QResizeEvent*);
%End

    void                 setupActions ();
    void                 updateSortActions ();
    void                 updateViewActions ();
    void                 setupMenu ();
    void                 prepareCompletionObjects ();
    bool                 checkPreviewSupport ();

public slots:
    void                 back ();
    void                 forward ();
    void                 home ();
    void                 cdUp ();
    void                 updateDir ();
    void                 rereadDir ();
    void                 mkdir ();
    void                 deleteSelected ();
    void                 updateSelectionDependentActions ();
    QString              makeCompletion (const QString&);
    QString              makeDirCompletion (const QString&);

%If ( KDE_3_4_0 -  )
    void                 trashSelected (KAction::ActivationReason, Qt::ButtonState);
%End


protected slots:
    void                 resetCursor ();
    void                 pathChanged ();
    void                 insertNewFiles (const KFileItemList&);
    void                 itemDeleted (KFileItem*);
    void                 selectDir (const KFileItem*);
    void                 selectFile (const KFileItem*);
    void                 highlightFile (const KFileItem*);
    virtual void         activatedMenu (const KFileItem*, const QPoint&);
    void                 sortByName ();
    void                 sortBySize ();
    void                 sortByDate ();
    void                 sortReversed ();
    void                 toggleDirsFirst ();
    void                 toggleIgnoreCase ();
    void                 slotCompletionMatch (const QString&);

signals:
    void                 urlEntered (const KURL&);
    void                 updateInformation (int, int);
    void                 completion (const QString&);
    void                 finishedLoading ();
    void                 viewChanged (KFileView*);
    void                 fileHighlighted (const KFileItem*);
    void                 dirActivated (const KFileItem*);
    void                 fileSelected (const KFileItem*);

%If ( KDE_3_2_0 -  )
    void                 dropped (const KFileItem*, QDropEvent*, const KURL::List&);
%End


protected:
//igx     virtual void         virtual_hook (int, void*);

protected:

%If (  - KDE_3_2_0 )
    void                 resizeEvent (QResizeEvent*);
%End


};  // class KDirOperator

