1 #include "FileDialog.h"
12 QFileDialog(parent), p_filterList(filterList), p_dir(directory) {
16 this->setWindowTitle(title);
17 this->setFileMode(QFileDialog::ExistingFiles);
19 parent->installEventFilter(
this);
20 p_appName = parent->windowTitle();
22 connect(
this, SIGNAL(accepted()),
this, SLOT(
sendSignal()));
25 this->setNameFilters(p_filterList);
27 this->setViewMode(QFileDialog::Detail);
28 if(directory.exists()) {
29 this->setDirectory(directory);
32 this->setDirectory(QDir::current());
35 p_comboBoxes = this->findChildren<QComboBox *>();
36 p_comboBoxes[0]->setEditable(
true);
37 p_comboBoxes[1]->setEditable(
true);
39 QLineEdit *lineEdit = p_comboBoxes[1]->lineEdit();
41 disconnect(lineEdit, 0, 0, 0);
42 connect(lineEdit, SIGNAL(textChanged(
const QString &)), p_comboBoxes[1],
43 SIGNAL(activated(
const QString &)));
44 connect(lineEdit, SIGNAL(editingFinished()),
this,
48 p_allPButtons = this->findChildren<QPushButton *>();
49 for(
int i = 0; i < p_allPButtons.size(); i++) {
51 disconnect(p_allPButtons[i], 0, 0, 0);
52 if(p_allPButtons[i]->text().contains(
"Open", Qt::CaseInsensitive)) {
53 connect(p_allPButtons[i], SIGNAL(clicked()),
this, SLOT(
done()));
55 if(p_allPButtons[i]->text() ==
"Cancel") {
58 connect(p_allPButtons[i], SIGNAL(clicked()),
this, SLOT(
cancel()));
72 p_allPButtons[0]->setDefault(
false);
73 if(!p_filterList.contains(p_comboBoxes[1]->currentText())) {
74 p_filterList.insert(0, p_comboBoxes[1]->currentText());
75 this->setNameFilters(p_filterList);
87 p_dir = this->directory();
89 QStringList::const_iterator it = fileList.begin();
90 while(it != fileList.end()) {
91 if(!(*it).isEmpty()) {
92 emit fileSelected(*it);
129 p_dir = this->directory();
138 if(p_appName ==
"") {
139 p_appName = this->windowTitle();
142 QString instanceName = this->windowTitle();
144 Isis::FileName config(
"$HOME/.Isis/" + p_appName +
"/" + instanceName +
".config");
145 QSettings settings(config.expanded(), QSettings::NativeFormat);
146 QPoint pos = settings.value(
"pos", QPoint(300, 100)).toPoint();
147 QSize size = settings.value(
"size", QSize(355, 350)).toSize();
161 if(!this->isVisible())
return;
163 if(p_appName ==
"") {
164 p_appName = this->windowTitle();
167 QString instanceName = this->windowTitle();
169 Isis::FileName config(
"$HOME/.Isis/" + p_appName +
"/" + instanceName +
".config");
170 QSettings settings(config.expanded(), QSettings::NativeFormat);
171 settings.setValue(
"pos", pos());
172 settings.setValue(
"size", size());
190 case QEvent::Close: {