//
//     Copyright 2008 Jim Bublitz <jbublitz@nwinternet.com>
//     Earlier copyrights 1998 - 2007 Jim Bublitz also apply

//                 Generated by twine

// This file is part of PyKDE4.

// PyKDE4 is free software; you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation; either version 2.1 of
// the License, or (at your option) any later version.

// PyKDE4 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 program.  If not, see <http://www.gnu.org/licenses/>.



class KFileDialog : KDialog
{
%TypeHeaderCode
#include <kfiledialog.h>
%End



public:
    enum OperationMode
    {
        Other,
        Opening,
        Saving
    };

                            KFileDialog (const KUrl& startDir, const QString& filter, QWidget* parent /TransferThis/, QWidget* widget = 0);
    KUrl                    selectedUrl () const;
    KUrl::List              selectedUrls () const;
    KUrl                    baseUrl () const;
    QString                 selectedFile () const;
    QStringList             selectedFiles () const;
    void                    setUrl (const KUrl& url, bool clearforward = 1);
    void                    setSelection (const QString& name);
    void                    setOperationMode (KFileDialog::OperationMode);
    KFileDialog::OperationMode  operationMode () const;
    void                    setKeepLocation (bool keep);
    bool                    keepsLocation () const;
    void                    setFilter (const QString& filter);
    QString                 currentFilter () const;
    KMimeType::Ptr          currentFilterMimeType ();
    void                    setMimeFilter (const QStringList& types, const QString& defaultType = QString());
    QString                 currentMimeFilter () const;
    void                    clearFilter ();
    void                    setPreviewWidget (KPreviewWidgetBase* w);
    void                    setInlinePreviewShown (bool show);
    void                    setConfirmOverwrite (bool enable);
    virtual QSize           sizeHint () const;
    static QString          getOpenFileName (const KUrl& startDir = KUrl(), const QString& filter = QString(), QWidget* parent /Transfer/ = 0, const QString& caption = QString());
    static QString          getOpenFileNameWId (const KUrl& startDir, const QString& filter, WId parent_id, const QString& caption);
    static QStringList      getOpenFileNames (const KUrl& startDir = KUrl(), const QString& filter = QString(), QWidget* parent /Transfer/ = 0, const QString& caption = QString());
    static KUrl             getOpenUrl (const KUrl& startDir = KUrl(), const QString& filter = QString(), QWidget* parent /Transfer/ = 0, const QString& caption = QString());
    static KUrl::List       getOpenUrls (const KUrl& startDir = KUrl(), const QString& filter = QString(), QWidget* parent /Transfer/ = 0, const QString& caption = QString());
    static QString          getSaveFileName (const KUrl& startDir = KUrl(), const QString& filter = QString(), QWidget* parent /Transfer/ = 0, const QString& caption = QString());
    static QString          getSaveFileNameWId (const KUrl& startDir, const QString& filter, WId parent_id, const QString& caption);
    static KUrl             getSaveUrl (const KUrl& startDir = KUrl(), const QString& filter = QString(), QWidget* parent /Transfer/ = 0, const QString& caption = QString());
    static QString          getExistingDirectory (const KUrl& startDir = KUrl(), QWidget* parent /Transfer/ = 0, const QString& caption = QString());
    static KUrl             getExistingDirectoryUrl (const KUrl& startDir = KUrl(), QWidget* parent /Transfer/ = 0, const QString& caption = QString());
    static KUrl             getImageOpenUrl (const KUrl& startDir = KUrl(), QWidget* parent /Transfer/ = 0, const QString& caption = QString());
    void                    setMode (KFile::Modes m);
    KFile::Modes            mode () const;
    void                    setLocationLabel (const QString& text);
    KAbstractFileWidget*    fileWidget ();
    KToolBar*               toolBar () const;
    KPushButton*            okButton () const;
    KPushButton*            cancelButton () const;
    KUrlComboBox*           locationEdit () const;
    KFileFilterCombo*       filterWidget () const;
    KActionCollection*      actionCollection () const;
    static KUrl             getStartUrl (const KUrl& startDir, QString& recentDirClass);
    static void             setStartDir (const KUrl& directory);

signals:
    void                    fileSelected (const QString&);
    void                    fileHighlighted (const QString&);
    void                    selectionChanged ();
    void                    filterChanged (const QString& filter);

protected:
    virtual void            keyPressEvent (QKeyEvent* e);
    virtual void            hideEvent (QHideEvent* event);
    virtual void            slotOk ();
    virtual void            accept ();
    virtual void            slotCancel ();

private:
//force
                            KFileDialog (const KFileDialog&);
//end
public:
    ~KFileDialog ();
    enum Option
    {
        ConfirmOverwrite,
        ShowInlinePreview
    };
    typedef QFlags<KFileDialog::Option> Options;
    static QString          getSaveFileName (const KUrl& startDir, const QString& filter, QWidget* parent /Transfer/, const QString& caption, KFileDialog::Options options);
    static QString          getSaveFileNameWId (const KUrl& startDir, const QString& filter, WId parent_id, const QString& caption, KFileDialog::Options options);
    static KUrl             getSaveUrl (const KUrl& startDir, const QString& filter, QWidget* parent /Transfer/, const QString& caption, KFileDialog::Options options);
signals:
    void                    fileSelected (const KUrl&);
    void                    fileHighlighted (const KUrl&);
};
// KFileDialog


