Home | All Classes | Main Classes | Annotated | Grouped Classes | Functions |

# ntqfiledialog.h

This is the verbatim text of the ntqfiledialog.h include file. It is provided only for illustration; the copyright remains with Trolltech.

    /****************************************************************************
    ** $Id: qt/ntqfiledialog.h   3.3.8   edited Jan 11 14:37 $
    **
    ** Definition of TQFileDialog class
    **
    ** Created : 950428
    **
    ** Copyright (C) 1992-2007 Trolltech ASA.  All rights reserved.
    **
    ** This file is part of the dialogs module of the TQt GUI Toolkit.
    **
    ** This file may be used under the terms of the GNU General Public
    ** License versions 2.0 or 3.0 as published by the Free Software
    ** Foundation and appearing in the file LICENSE.GPL included in the
    ** packaging of this file. Alternatively you may (at your option) use any
    ** later version of the GNU General Public License if such license has
    ** been publicly approved by Trolltech ASA (or its successors, if any)
    ** and the KDE Free TQt Foundation.
    **
    ** Please review the following information to ensure GNU General
    ** Public Licensing requirements will be met:
    ** http://trolltech.com/products/qt/licenses/licensing/opensource/.
    ** If you are unsure which license is appropriate for your use, please
    ** review the following information:
    ** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
    ** or contact the sales department at sales@trolltech.com.
    **
    ** This file may be used under the terms of the Q Public License as
    ** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
    ** included in the packaging of this file.  Licensees holding valid TQt
    ** Commercial licenses may use this file in accordance with the TQt
    ** Commercial License Agreement provided with the Software.
    **
    ** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
    ** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
    ** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
    ** herein.
    **
    **********************************************************************/

    #ifndef TQFILEDIALOG_H
    #define TQFILEDIALOG_H

    class TQPushButton;
    class TQButton;
    class TQLabel;
    class TQWidget;
    class TQFileDialog;
    class TQTimer;
    class TQNetworkOperation;
    class TQLineEdit;
    class TQListViewItem;
    class TQListBoxItem;
    class TQFileDialogPrivate;
    class TQFileDialogTQFileListView;

    #ifndef QT_H
    #include "ntqdir.h"
    #include "ntqdialog.h"
    #include "ntqurloperator.h"
    #include "ntqurlinfo.h"
    #endif // QT_H

    #if __GNUC__ - 0 > 3
    #pragma GCC system_header
    #endif

    #ifndef TQT_NO_FILEDIALOG

    class TQ_EXPORT TQFileIconProvider : public TQObject
    {
        TQ_OBJECT
    public:
        TQFileIconProvider( TQObject * parent = 0, const char* name = 0 );
        virtual const TQPixmap * pixmap( const TQFileInfo & );

    private:	// Disabled copy constructor and operator=
    #if defined(TQ_DISABLE_COPY)
        TQFileIconProvider( const TQFileIconProvider & );
        TQFileIconProvider& operator=( const TQFileIconProvider & );
    #endif
    };

    class TQ_EXPORT TQFilePreview
    {
    public:
        TQFilePreview();
        virtual void previewUrl( const TQUrl &url ) = 0;

    };

    class TQ_EXPORT TQFileDialog : public TQDialog
    {
        TQ_OBJECT
        TQ_ENUMS( Mode ViewMode PreviewMode )
        // ##### Why are this read-only properties ?
        TQ_PROPERTY( TQString selectedFile READ selectedFile )
        TQ_PROPERTY( TQString selectedFilter READ selectedFilter )
        TQ_PROPERTY( TQStringList selectedFiles READ selectedFiles )
        // #### Should not we be able to set the path ?
        TQ_PROPERTY( TQString dirPath READ dirPath )
        TQ_PROPERTY( bool showHiddenFiles READ showHiddenFiles WRITE setShowHiddenFiles )
        TQ_PROPERTY( Mode mode READ mode WRITE setMode )
        TQ_PROPERTY( ViewMode viewMode READ viewMode WRITE setViewMode )
        TQ_PROPERTY( PreviewMode previewMode READ previewMode WRITE setPreviewMode )
        TQ_PROPERTY( bool infoPreview READ isInfoPreviewEnabled WRITE setInfoPreviewEnabled )
        TQ_PROPERTY( bool contentsPreview READ isContentsPreviewEnabled WRITE setContentsPreviewEnabled )

    public:
        TQFileDialog( const TQString& dirName, const TQString& filter = TQString::null,
    		 TQWidget* parent=0, const char* name=0, bool modal = FALSE );
        TQFileDialog( TQWidget* parent=0, const char* name=0, bool modal = FALSE );
        ~TQFileDialog();

        // recommended static functions

        static TQString getOpenFileName( const TQString &initially = TQString::null,
    				    const TQString &filter = TQString::null,
    				    TQWidget *parent = 0, const char* name = 0,
    				    const TQString &caption = TQString::null,
    				    TQString *selectedFilter = 0,
    				    bool resolveSymlinks = TRUE);
        static TQString getSaveFileName( const TQString &initially = TQString::null,
    				    const TQString &filter = TQString::null,
    				    TQWidget *parent = 0, const char* name = 0,
    				    const TQString &caption = TQString::null,
    				    TQString *selectedFilter = 0,
    				    bool resolveSymlinks = TRUE);
        static TQString getExistingDirectory( const TQString &dir = TQString::null,
    					 TQWidget *parent = 0,
    					 const char* name = 0,
    					 const TQString &caption = TQString::null,
    					 bool dirOnly = TRUE,
    					 bool resolveSymlinks = TRUE);
        static TQStringList getOpenFileNames( const TQString &filter= TQString::null,
    					 const TQString &dir = TQString::null,
    					 TQWidget *parent = 0,
    					 const char* name = 0,
    					 const TQString &caption = TQString::null,
    					 TQString *selectedFilter = 0,
    					 bool resolveSymlinks = TRUE);

        // other static functions

        static void setIconProvider( TQFileIconProvider * );
        static TQFileIconProvider * iconProvider();

        // non-static function for special needs

        TQString selectedFile() const;
        TQString selectedFilter() const;
        virtual void setSelectedFilter( const TQString& );
        virtual void setSelectedFilter( int );

        void setSelection( const TQString &);

        void selectAll( bool b );

        TQStringList selectedFiles() const;

        TQString dirPath() const;

        void setDir( const TQDir & );
        const TQDir *dir() const;

        void setShowHiddenFiles( bool s );
        bool showHiddenFiles() const;

        void rereadDir();
        void resortDir();

        enum Mode { AnyFile, ExistingFile, Directory, ExistingFiles, DirectoryOnly };
        void setMode( Mode );
        Mode mode() const;

        enum ViewMode { Detail, List };
        enum PreviewMode { NoPreview, Contents, Info };
        void setViewMode( ViewMode m );
        ViewMode viewMode() const;
        void setPreviewMode( PreviewMode m );
        PreviewMode previewMode() const;

        bool eventFilter( TQObject *, TQEvent * );

        bool isInfoPreviewEnabled() const;
        bool isContentsPreviewEnabled() const;
        void setInfoPreviewEnabled( bool );
        void setContentsPreviewEnabled( bool );

        void setInfoPreview( TQWidget *w, TQFilePreview *preview );
        void setContentsPreview( TQWidget *w, TQFilePreview *preview );

        TQUrl url() const;

        void addFilter( const TQString &filter );

    public slots:
        void done( int );
        void setDir( const TQString& );
        void setUrl( const TQUrlOperator &url );
        void setFilter( const TQString& );
        void setFilters( const TQString& );
        void setFilters( const char ** );
        void setFilters( const TQStringList& );

    protected:
        void resizeEvent( TQResizeEvent * );
        void keyPressEvent( TQKeyEvent * );

        void addWidgets( TQLabel *, TQWidget *, TQPushButton * );
        void addToolButton( TQButton *b, bool separator = FALSE );
        void addLeftWidget( TQWidget *w );
        void addRightWidget( TQWidget *w );

    signals:
        void fileHighlighted( const TQString& );
        void fileSelected( const TQString& );
        void filesSelected( const TQStringList& );
        void dirEntered( const TQString& );
        void filterSelected( const TQString& );

    private slots:
        void detailViewSelectionChanged();
        void listBoxSelectionChanged();
        void changeMode( int );
        void fileNameEditReturnPressed();
        void stopCopy();
        void removeProgressDia();

        void fileSelected( int );
        void fileHighlighted( int );
        void dirSelected( int );
        void pathSelected( int );

        void updateFileNameEdit( TQListViewItem *);
        void selectDirectoryOrFile( TQListViewItem * );
        void popupContextMenu( TQListViewItem *, const TQPoint &, int );
        void popupContextMenu( TQListBoxItem *, const TQPoint & );
        void updateFileNameEdit( TQListBoxItem *);
        void selectDirectoryOrFile( TQListBoxItem * );
        void fileNameEditDone();

        void okClicked();
        void filterClicked(); // not used
        void cancelClicked();

        void cdUpClicked();
        void newFolderClicked();

        void fixupNameEdit();

        void doMimeTypeLookup();

        void updateGeometries();
        void modeButtonsDestroyed();
        void urlStart( TQNetworkOperation *op );
        void urlFinished( TQNetworkOperation *op );
        void dataTransferProgress( int bytesDone, int bytesTotal, TQNetworkOperation * );
        void insertEntry( const TQValueList<TQUrlInfo> &fi, TQNetworkOperation *op );
        void removeEntry( TQNetworkOperation * );
        void createdDirectory( const TQUrlInfo &info, TQNetworkOperation * );
        void itemChanged( TQNetworkOperation * );
        void goBack();

    private:
        enum PopupAction {
    	PA_Open = 0,
    	PA_Delete,
    	PA_Rename,
    	PA_SortName,
    	PA_SortSize,
    	PA_SortType,
    	PA_SortDate,
    	PA_SortUnsorted,
    	PA_Cancel,
    	PA_Reload,
    	PA_Hidden
        };

        void init();
        bool trySetSelection( bool isDir, const TQUrlOperator &, bool );
        void deleteFile( const TQString &filename );
        void popupContextMenu( const TQString &filename, bool withSort,
    			   PopupAction &action, const TQPoint &p );
        void updatePreviews( const TQUrl &u );

        TQDir reserved; // was cwd
        TQString fileName;

        friend class TQFileDialogTQFileListView;
        friend class TQFileListBox;

        TQFileDialogPrivate *d;
        TQFileDialogTQFileListView  *files;

        TQLineEdit  *nameEdit; // also filter
        TQPushButton *okB;
        TQPushButton *cancelB;

    #if defined(TQ_WS_WIN)
        static TQString winGetOpenFileName( const TQString &initialSelection,
    				       const TQString &filter,
    				       TQString* workingDirectory,
    				       TQWidget *parent = 0,
    				       const char* name = 0,
    				       const TQString& caption = TQString::null,
    				       TQString* selectedFilter = 0 );
        static TQString winGetSaveFileName( const TQString &initialSelection,
    				       const TQString &filter,
    				       TQString* workingDirectory,
    				       TQWidget *parent = 0,
    				       const char* name = 0,
    				       const TQString& caption = TQString::null,
        				       TQString* selectedFilter = 0 );
        static TQStringList winGetOpenFileNames( const TQString &filter,
    					    TQString* workingDirectory,
    					    TQWidget *parent = 0,
    					    const char* name = 0,
    					    const TQString& caption = TQString::null,
    					    TQString* selectedFilter = 0 );
        static TQString winGetExistingDirectory( const TQString &initialDirectory,
    					    TQWidget* parent = 0,
    					    const char* name = 0,
    					    const TQString& caption = TQString::null);
        static TQString resolveLinkFile( const TQString& linkfile );
    #endif
    #if defined(TQ_WS_MACX) || defined(TQ_WS_MAC9)
        static TQString macGetSaveFileName( const TQString &, const TQString &,
    				       TQString *, TQWidget *, const char*,
    				       const TQString&, TQString *);
        static TQStringList macGetOpenFileNames( const TQString &, TQString*,
    					    TQWidget *, const char *,
    					    const TQString&, TQString *,
    					    bool = TRUE, bool = FALSE );
    #endif

    private:	// Disabled copy constructor and operator=
    #if defined(TQ_DISABLE_COPY)
        TQFileDialog( const TQFileDialog & );
        TQFileDialog &operator=( const TQFileDialog & );
    #endif
    };

    #endif

    #endif // TQFILEDIALOG_H