Salome HOME
Merge V9_dev branch into master
[modules/gui.git] / src / SUIT / SUIT_FileDlg.h
index cd33167a77949641f037bbb48f7344bbcb43a456..d36ae37a5437d958534cc0d73b0b3498e1f693d3 100755 (executable)
@@ -1,13 +1,40 @@
-#ifndef SUIT_FILEDIALOG_H
-#define SUIT_FILEDIALOG_H
+// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
+//
+// Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library 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.
+//
+// This library 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
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+// File   : SUIT_FileDlg.h
+// Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com)
+//
+#ifndef SUIT_FILEDLG_H
+#define SUIT_FILEDLG_H
 
 #include "SUIT.h"
 
-#include <qfiledialog.h>
+#include <QFileDialog>
 
 class QLabel;
+class QLineEdit;
 class QComboBox;
 class QPushButton;
+class QUrl;
 class SUIT_FileValidator;
 
 class SUIT_EXPORT SUIT_FileDlg : public QFileDialog
@@ -15,47 +42,87 @@ class SUIT_EXPORT SUIT_FileDlg : public QFileDialog
   Q_OBJECT
 
 public:
-  SUIT_FileDlg( QWidget*, bool open, bool showQuickDir = true, bool modal = true );
+  SUIT_FileDlg( QWidget*, bool, bool = true, bool = true );
   virtual ~SUIT_FileDlg();
 
-public:    
   bool                isOpenDlg()    const;    
-  QString             selectedFile() const;
+  
+  bool                checkPermissions() const;
+  void                setCheckPermissions( const bool );
 
+  SUIT_FileValidator* validator() const;
   void                setValidator( SUIT_FileValidator* );
 
-  static QString      getFileName( QWidget* parent, const QString& initial, const QStringList& filters, 
-                                  const QString& caption, const bool open, const bool showQuickDir = true,
-                                   SUIT_FileValidator* validator = 0 );
-  static QStringList  getOpenFileNames( QWidget* parent, const QString& initial, const QStringList& filters, 
-                                       const QString& caption, bool showQuickDir = true, 
-                                       SUIT_FileValidator* validator = 0 );
-  static QString      getExistingDirectory( QWidget* parent, const QString& initial,
-                                            const QString& caption, const bool showQuickDir = true );
+  bool                addWidgets( QWidget*, QWidget*, QWidget* );
 
-public slots:
-  void                polish();
+  QStringList         selectedFiles() const;
+  QString             selectedFile() const;
 
-private:
-  bool                acceptData();
-  void                addExtension();
-  bool                processPath( const QString& path );
+  void selectFile( const QString& );
+
+  static QString      getLastVisitedDirectory();
+
+  static QString      getFileName( QWidget*, 
+                                   const QString&, 
+                                   const QStringList&, 
+                                   const QString& = QString(), 
+                                   const bool = true, 
+                                   const bool = true,
+                                   SUIT_FileValidator* = 0 );
+  static QString      getFileName( QWidget*, 
+                                   const QString&, 
+                                   const QString&,
+                                   const QString& = QString(), 
+                                   const bool = true,
+                                   const bool = true,
+                                   SUIT_FileValidator* = 0 );
+
+  static QStringList  getOpenFileNames( QWidget*, 
+                                        const QString&,
+                                        const QStringList&, 
+                                        const QString& = QString(),
+                                        const bool = true, 
+                                        SUIT_FileValidator* = 0 );
+  static QStringList  getOpenFileNames( QWidget*, 
+                                        const QString&,
+                                        const QString&, 
+                                        const QString& = QString(),
+                                        const bool = true, 
+                                        SUIT_FileValidator* = 0 );
+
+  static QString      getExistingDirectory( QWidget*, 
+                                            const QString&,
+                                            const QString& = QString(), 
+                                            const bool = true,
+                                            SUIT_FileValidator* = 0 );
+
+  static QString      getLastVisitedPath();
+
+protected:
+  virtual bool        event( QEvent* );
+  QLineEdit*          lineEdit() const;
+  virtual bool        acceptData();
+  QString             addExtension( const QString& ) const;
+  bool                processPath( const QString& );
+  void                addFilter( const QString& );
+  static bool         hasWildCards( const QString& );
 
 protected slots:
   void                accept();        
-  void                reject(); 
   void                quickDir( const QString& );
   void                addQuickDir();
 
-protected:
-  bool                myOpen;             /* open/save selector  */      
-  QString             mySelectedFile;     /* selected filename   */    
-  SUIT_FileValidator* myValidator;        /* file validator      */
-  QLabel*             myQuickLab;         /* quick dir combo box */
-  QComboBox*          myQuickCombo;       /* quick dir combo box */
-  QPushButton*        myQuickButton;      /* quick dir add button */
-
-  static QString      myLastVisitedPath;  /* last visited path   */
+private:
+  void                polish();
+
+private:
+  SUIT_FileValidator* myValidator;        //!< file validator
+  QLabel*             myQuickLab;         //!< quick dir combo box
+  QComboBox*          myQuickCombo;       //!< quick dir combo box
+  QList<QUrl>         myUrls;             //!< quick dir Sidebar Urls
+  QPushButton*        myQuickButton;      //!< quick dir add button
+  bool                myCheckPermissions; //!< check permissions option
+  static QString      myLastVisitedPath;  //!< last visited path
 };
 
-#endif
+#endif  // SUIT_FILEDLG_H