1 #include "FileDialog.h"    15     QFileDialog(parent), p_filterList(filterList), p_dir(directory) {
    20     this->setOptions(QFileDialog::DontUseNativeDialog);
    22     this->setWindowTitle(title);
    23     this->setFileMode(QFileDialog::ExistingFiles);
    25       parent->installEventFilter(
this);
    26       p_appName = parent->windowTitle();
    28     connect(
this, SIGNAL(accepted()), 
this, SLOT(
sendSignal()));
    31     this->setNameFilters(p_filterList);
    33     this->setViewMode(QFileDialog::Detail);
    34     if(directory.exists()) {
    35       this->setDirectory(directory);
    38       this->setDirectory(QDir::current());
    41     p_comboBoxes = this->findChildren<QComboBox *>();
    42     p_comboBoxes[0]->setEditable(
true);
    43     p_comboBoxes[1]->setEditable(
true);
    45     QLineEdit *lineEdit = p_comboBoxes[1]->lineEdit();
    47     disconnect(lineEdit, 0, 0, 0);
    48     connect(lineEdit, SIGNAL(textChanged(
const QString &)), p_comboBoxes[1],
    49             SIGNAL(activated(
const QString &)));
    50     connect(lineEdit, SIGNAL(editingFinished()), 
this,
    54     p_allPButtons = this->findChildren<QPushButton *>();
    55     for(
int i = 0; i < p_allPButtons.size(); i++) {
    57       disconnect(p_allPButtons[i], 0, 0, 0);
    58       if(p_allPButtons[i]->text().contains(
"Open", Qt::CaseInsensitive)) {
    59         connect(p_allPButtons[i], SIGNAL(clicked()), 
this, SLOT(
done()));
    61       if(p_allPButtons[i]->text().contains(
"Cancel", Qt::CaseInsensitive)) {
    64         connect(p_allPButtons[i], SIGNAL(clicked()), 
this, SLOT(
cancel()));
    78     p_allPButtons[0]->setDefault(
false);
    79     if(!p_filterList.contains(p_comboBoxes[1]->currentText())) {
    80       p_filterList.insert(0, p_comboBoxes[1]->currentText());
    81       this->setNameFilters(p_filterList);
    93     p_dir = this->directory();
    95     QStringList::const_iterator it = fileList.begin();
    96     while(it != fileList.end()) {
    97       if(!(*it).isEmpty()) {
    98         emit fileSelected(*it);
   132     QFileDialog::done(r);
   142     p_dir = this->directory();
   151     if(p_appName == 
"") {
   152       p_appName = this->windowTitle();
   155     QString instanceName = this->windowTitle();
   157     Isis::FileName config(
"$HOME/.Isis/" + p_appName + 
"/" + instanceName + 
".config");
   158     QSettings settings(config.
expanded(), QSettings::NativeFormat);
   159     QPoint pos = settings.value(
"pos", QPoint(300, 100)).toPoint();
   160     QSize size = settings.value(
"size", QSize(355, 350)).toSize();
   174     if(!this->isVisible()) 
return;
   176     if(p_appName == 
"") {
   177       p_appName = this->windowTitle();
   180     QString instanceName = this->windowTitle();
   182     Isis::FileName config(
"$HOME/.Isis/" + p_appName + 
"/" + instanceName + 
".config");
   183     QSettings settings(config.
expanded(), QSettings::NativeFormat);
   184     settings.setValue(
"pos", pos());
   185     settings.setValue(
"size", size());
   203       case QEvent::Close: {
 void closeEvent(QCloseEvent *event)
This method is overridden so that we can be sure to write the current settings of the Main window...
 
bool eventFilter(QObject *o, QEvent *e)
This event filter is installed on the parent of this window. 
 
File name manipulation and expansion. 
 
void writeSettings()
This method is called when the File Dialog is closed or hidden to write the size and location setting...
 
void done()
Called when the user presses OK. 
 
void sendSignal()
This saves the directory that the user selected the file from so it can open to this directory next t...
 
QString expanded() const
Returns a QString of the full file name including the file path, excluding the attributes. 
 
FileDialog(QString title, QStringList &filterList, QDir &directory, QWidget *parent=0)
 
void saveFilter()
This is where we actually set the user editable filters and remember them. 
 
void cancel()
Called when user presses cancel. 
 
Namespace for ISIS/Bullet specific routines. 
 
void readSettings()
This method is called from the constructor so that when the Main window is created, it know's it's size and location.