00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "SymbolDialog.h"
00023
00024 SymbolDialog::SymbolDialog (QWidget *w,QString &bp,QString &dir,QString &filter,QFileDialog::Mode mode) :
00025 QFileDialog (dir, filter, w, "SymbolDialog", TRUE)
00026 {
00027 basePath = bp;
00028 setMode(mode);
00029 connect(this, SIGNAL(dirEntered(const QString &)), this, SLOT(dirSelected(const QString &)));
00030 keyFlag = FALSE;
00031 }
00032
00033 SymbolDialog::~SymbolDialog ()
00034 {
00035 }
00036
00037 void SymbolDialog::dirSelected (const QString &d)
00038 {
00039 if (mode() == QFileDialog::DirectoryOnly)
00040 {
00041 blockSignals(TRUE);
00042 setDir(basePath);
00043 blockSignals(FALSE);
00044 return;
00045 }
00046
00047 if (d.length() < basePath.length())
00048 {
00049 blockSignals(TRUE);
00050 setDir(basePath);
00051 blockSignals(FALSE);
00052 }
00053 }
00054
00055 void SymbolDialog::setKeyFlag (bool d)
00056 {
00057 keyFlag = d;
00058 }
00059
00060 void SymbolDialog::keyPressEvent (QKeyEvent *key)
00061 {
00062 if (keyFlag)
00063 emit signalKeyPressed (type, key->state(), key->key(), key->ascii(), key->text());
00064
00065 doKeyPress(key);
00066 }
00067
00068 void SymbolDialog::doKeyPress (QKeyEvent *key)
00069 {
00070 key->accept();
00071 QFileDialog::keyPressEvent(key);
00072 }
00073
00074 void SymbolDialog::setType (int d)
00075 {
00076 type = d;
00077 }
00078