]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/FileDialog.h
QDialogButtonBox for the remaining dialogs.
[lyx.git] / src / frontends / qt4 / FileDialog.h
index a4e69da2f286cdf31ff1429bc459f317a9d897dd..fe75b5bf1e97403be8e6f9b84646622cce2b1f88 100644 (file)
 #ifndef FILEDIALOG_H
 #define FILEDIALOG_H
 
-#include "lfuns.h"
-#include "support/docstring.h"
-
-#include <string>
+#include <QString>
 
+#include <utility>
 
 namespace lyx {
 
-namespace support { class FileFilterList; }
-
-
 /**
  * \class FileDialog
  * \brief GUI-I definition of file dialog interface
  */
 class FileDialog
 {
+       /// noncopyable
+       FileDialog(FileDialog const &);
+       void operator=(FileDialog const &);
 public:
        /// label, directory path button
-       typedef std::pair<docstring, docstring> Button;
+       typedef std::pair<QString, QString> Button;
 
        /// result type
        enum ResultType {
@@ -41,39 +39,38 @@ public:
        };
 
        /// result return
-       typedef std::pair<FileDialog::ResultType, docstring> Result;
+       typedef std::pair<FileDialog::ResultType, QString> Result;
 
        /**
         * Constructs a file dialog with title \param title.
-        * If \param a is \const LFUN_SELECT_FILE_SYNC then a value
-        * will be returned immediately upon performing a open(),
-        * otherwise a callback Dispatch() will be invoked with the filename as
-        * argument, of action \param a.
         *
         * Up to two optional extra buttons are allowed for specifying
         * additional directories in the navigation (an empty
         * directory is interpreted as FileName::getcwd())
         */
-       FileDialog(docstring const & title, kb_action a = LFUN_SELECT_FILE_SYNC);
+       FileDialog(QString const & title);
 
        ~FileDialog();
 
-       void setButton1(docstring const & label, docstring const & dir);
-       void setButton2(docstring const & label, docstring const & dir);
+       void setButton1(QString const & label, QString const & dir);
+       void setButton2(QString const & label, QString const & dir);
 
        /// Choose a file for opening, starting in directory \c path.
-       Result const open(docstring const & path,
-                         support::FileFilterList const & filters,
-                         docstring const & suggested);
+       Result open(QString const & path, QStringList const & filters,
+                         QString const & suggested = QString());
 
        /// Choose a directory, starting in directory \c path.
-       Result const opendir(docstring const & path = docstring(),
-                            docstring const & suggested = docstring());
+       Result opendir(QString const & path = QString(),
+                            QString const & suggested = QString());
 
        /// Choose a file for saving, starting in directory \c  path.
-       Result const save(docstring const & path,
-                         support::FileFilterList const & filters,
-                         docstring const & suggested);
+       Result save(QString const & path, QStringList const & filters,
+                         QString const & suggested = QString());
+
+       /// Also retrieve the selected filter (selectedFilter can be 0 if
+       /// that output is not needed).
+       Result save(QString const & path, QStringList const & filters,
+                   QString const & suggested, QString *selectedFilter);
 
 private:
        class Private;
@@ -81,10 +78,8 @@ private:
        Private * private_;
 
        /// the dialog title
-       docstring title_;
+       QString title_;
 
-       /// success action to perform if not synchronous
-       kb_action success_;
 };
 
 } // namespace lyx