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.
15 #include "frontends/FileDialog.h"
16 #include "FileDialog_private.h"
17 #include "qt_helpers.h"
23 struct FileDialog::Private {
29 FileDialog::FileDialog(string const & t,
30 kb_action s, Button b1, Button b2)
31 : private_(new FileDialog::Private), title_(t), success_(s)
38 FileDialog::~FileDialog()
44 FileDialog::Result const FileDialog::save(string const & path,
46 string const & suggested)
50 filter = _("All files (*)");
52 LyXFileDialog dlg(path, filter, title_, private_->b1, private_->b2);
53 lyxerr[Debug::GUI] << "Select with path \"" << path
54 << "\", mask \"" << filter
55 << "\", suggested \"" << suggested << endl;
57 dlg.setMode(QFileDialog::AnyFile);
59 if (!suggested.empty())
60 dlg.setSelection(toqstr(suggested));
62 FileDialog::Result result;
63 lyxerr[Debug::GUI] << "Synchronous FileDialog: " << endl;
64 result.first = FileDialog::Chosen;
66 lyxerr[Debug::GUI] << "result " << res << endl;
67 if (res == QDialog::Accepted)
68 result.second = string(dlg.selectedFile().data());
74 FileDialog::Result const FileDialog::open(string const & path,
76 string const & suggested)
80 filter = _("All files (*)");
82 LyXFileDialog dlg(path, filter, title_, private_->b1, private_->b2);
83 lyxerr[Debug::GUI] << "Select with path \"" << path
84 << "\", mask \"" << filter
85 << "\", suggested \"" << suggested << endl;
87 if (!suggested.empty())
88 dlg.setSelection(toqstr(suggested));
90 FileDialog::Result result;
91 lyxerr[Debug::GUI] << "Synchronous FileDialog: " << endl;
92 result.first = FileDialog::Chosen;
94 lyxerr[Debug::GUI] << "result " << res << endl;
95 if (res == QDialog::Accepted)
96 result.second = string(dlg.selectedFile().data());
102 FileDialog::Result const FileDialog::opendir(string const & path,
103 string const & suggested)
105 string filter = _("Directories");
107 LyXFileDialog dlg(path, filter, title_, private_->b1, private_->b2);
108 lyxerr[Debug::GUI] << "Select with path \"" << path
109 << "\", suggested \"" << suggested << endl;
111 dlg.setMode(QFileDialog::DirectoryOnly);
113 if (!suggested.empty())
114 dlg.setSelection(toqstr(suggested));
116 FileDialog::Result result;
117 lyxerr[Debug::GUI] << "Synchronous FileDialog: " << endl;
118 result.first = FileDialog::Chosen;
119 int res = dlg.exec();
120 lyxerr[Debug::GUI] << "result " << res << endl;
121 if (res == QDialog::Accepted)
122 result.second = string(dlg.selectedFile().data());