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 "frontends/FileDialog.h"
15 #include "FileDialog_private.h"
17 #include "qt_helpers.h"
27 struct FileDialog::Private {
33 FileDialog::FileDialog(string const & t,
34 kb_action s, Button b1, Button b2)
35 : private_(new FileDialog::Private), title_(t), success_(s)
42 FileDialog::~FileDialog()
48 FileDialog::Result const FileDialog::save(string const & path,
50 string const & suggested)
54 filter = _("All files (*)");
56 LyXFileDialog dlg(path, filter, title_, private_->b1, private_->b2);
57 lyxerr[Debug::GUI] << "Select with path \"" << path
58 << "\", mask \"" << filter
59 << "\", suggested \"" << suggested << endl;
61 dlg.setMode(QFileDialog::AnyFile);
63 if (!suggested.empty())
64 dlg.setSelection(toqstr(suggested));
66 FileDialog::Result result;
67 lyxerr[Debug::GUI] << "Synchronous FileDialog: " << endl;
68 result.first = FileDialog::Chosen;
70 lyxerr[Debug::GUI] << "result " << res << endl;
71 if (res == QDialog::Accepted)
72 result.second = string(dlg.selectedFile().data());
78 FileDialog::Result const FileDialog::open(string const & path,
80 string const & suggested)
84 filter = _("All files (*)");
86 LyXFileDialog dlg(path, filter, title_, private_->b1, private_->b2);
87 lyxerr[Debug::GUI] << "Select with path \"" << path
88 << "\", mask \"" << filter
89 << "\", suggested \"" << suggested << endl;
91 if (!suggested.empty())
92 dlg.setSelection(toqstr(suggested));
94 FileDialog::Result result;
95 lyxerr[Debug::GUI] << "Synchronous FileDialog: " << endl;
96 result.first = FileDialog::Chosen;
98 lyxerr[Debug::GUI] << "result " << res << endl;
99 if (res == QDialog::Accepted)
100 result.second = string(dlg.selectedFile().data());
106 FileDialog::Result const FileDialog::opendir(string const & path,
107 string const & suggested)
109 string filter = _("Directories");
111 LyXFileDialog dlg(path, filter, title_, private_->b1, private_->b2);
112 lyxerr[Debug::GUI] << "Select with path \"" << path
113 << "\", suggested \"" << suggested << endl;
115 dlg.setMode(QFileDialog::DirectoryOnly);
117 if (!suggested.empty())
118 dlg.setSelection(toqstr(suggested));
120 FileDialog::Result result;
121 lyxerr[Debug::GUI] << "Synchronous FileDialog: " << endl;
122 result.first = FileDialog::Chosen;
123 int res = dlg.exec();
124 lyxerr[Debug::GUI] << "result " << res << endl;
125 if (res == QDialog::Accepted)
126 result.second = string(dlg.selectedFile().data());