2 * \file qt2/FileDialog.C
3 * This file is part of LyX, the document processor.
4 * Licence details can be found in the file COPYING.
8 * Full author contact details are available in file CREDITS
14 #include "commandtags.h"
16 #include "frontends/FileDialog.h"
17 #include "FileDialog_private.h"
19 #include "qt_helpers.h"
22 #include <qapplication.h>
31 struct FileDialog::Private {
37 FileDialog::FileDialog(LyXView * lv, string const & t,
38 kb_action s, Button b1, Button b2)
39 : private_(new FileDialog::Private), lv_(lv), title_(t), success_(s)
46 FileDialog::~FileDialog()
52 FileDialog::Result const FileDialog::save(string const & path,
54 string const & suggested)
58 filter = _("All files (*)");
60 LyXFileDialog dlg(path, filter, title_, private_->b1, private_->b2);
61 lyxerr[Debug::GUI] << "Select with path \"" << path
62 << "\", mask \"" << filter
63 << "\", suggested \"" << suggested << endl;
65 dlg.setMode(QFileDialog::AnyFile);
67 if (!suggested.empty())
68 dlg.setSelection(toqstr(suggested));
70 FileDialog::Result result;
71 lyxerr[Debug::GUI] << "Synchronous FileDialog: " << endl;
72 result.first = FileDialog::Chosen;
74 lyxerr[Debug::GUI] << "result " << res << endl;
75 if (res == QDialog::Accepted)
76 result.second = string(dlg.selectedFile().data());
82 FileDialog::Result const FileDialog::open(string const & path,
84 string const & suggested)
88 filter = _("All files (*)");
90 LyXFileDialog dlg(path, filter, title_, private_->b1, private_->b2);
91 lyxerr[Debug::GUI] << "Select with path \"" << path
92 << "\", mask \"" << filter
93 << "\", suggested \"" << suggested << endl;
95 if (!suggested.empty())
96 dlg.setSelection(toqstr(suggested));
98 FileDialog::Result result;
99 lyxerr[Debug::GUI] << "Synchronous FileDialog: " << endl;
100 result.first = FileDialog::Chosen;
101 int res = dlg.exec();
102 lyxerr[Debug::GUI] << "result " << res << endl;
103 if (res == QDialog::Accepted)
104 result.second = string(dlg.selectedFile().data());
110 FileDialog::Result const FileDialog::opendir(string const & path,
111 string const & suggested)
113 string filter = _("Directories");
115 LyXFileDialog dlg(path, filter, title_, private_->b1, private_->b2);
116 lyxerr[Debug::GUI] << "Select with path \"" << path
117 << "\", suggested \"" << suggested << endl;
119 dlg.setMode(QFileDialog::DirectoryOnly);
121 if (!suggested.empty())
122 dlg.setSelection(toqstr(suggested));
124 FileDialog::Result result;
125 lyxerr[Debug::GUI] << "Synchronous FileDialog: " << endl;
126 result.first = FileDialog::Chosen;
127 int res = dlg.exec();
128 lyxerr[Debug::GUI] << "result " << res << endl;
129 if (res == QDialog::Accepted)
130 result.second = string(dlg.selectedFile().data());