Source Code (Use browser search to find items of interest.)
Class Index
ksirc'KGAccel (./kdenetwork/ksirc/kpopupmenu.h:35)
class KGAccel : public QObject
{
Q_OBJECT
public:
KGAccel(QObject * parent = 0, const char * name=0 );
virtual ~KGAccel();
virtual bool eventFilter(QObject *, QEvent *);
virtual void insertAccel(int key, int id, KAPopupMenu *);
virtual void removeAccel(int key);
virtual void clearAccelForPopup(KAPopupMenu *);
signals:
void updateAccel();
private:
QIntDict<accelItem> *accelDict;
};
ksirc'KGAccel::KGAccel() (./kdenetwork/ksirc/kpopupmenu.cpp:14)
KGAccel::KGAccel(QObject * parent, const char * name ) /*fold00*/
: QObject(parent, name)
{
accelDict = new QIntDict<accelItem>;
accelDict->setAutoDelete(TRUE);
kapp->installEventFilter(this);
}
ksirc'KGAccel::~KGAccel() (./kdenetwork/ksirc/kpopupmenu.cpp:24)
KGAccel::~KGAccel()
{
delete accelDict;
}
ksirc'KGAccel::eventFilter() (./kdenetwork/ksirc/kpopupmenu.cpp:29)
bool KGAccel::eventFilter(QObject *, QEvent *e) /*FOLD00*/
{
if(e->type() == QEvent::KeyPress && KAPopupMenu::popVisible() == false){
QKeyEvent *ke = (QKeyEvent *)(e);
if(ke->state() & (ControlButton | AltButton)){
emit updateAccel();
int key = ke->key();
if(ke->state() & ControlButton)
key += CTRL;
if(ke->state() & AltButton)
key += ALT;
debug("Got: %d xlate to %d, we know it as: %p", ke->key(), key, accelDict->find(key));
accelItem *ai;
if((ai = accelDict->find(key))){
ai->menu()->activated(ai->id());
ke->accept();
return TRUE;
}
}
}
return FALSE;
}
ksirc'KGAccel::insertAccel() (./kdenetwork/ksirc/kpopupmenu.cpp:56)
void KGAccel::insertAccel(int key, int id, KAPopupMenu *kp) /*FOLD00*/
{
removeAccel(key); // clear any old accelerators
// Go Looking for the old accelerator and remove it if needed
QIntDictIterator<accelItem> it(*accelDict);
while(it.current()){
if((it.current()->id() == id) && (it.current()->menu() == kp)){
debug("Remove: %ld", it.currentKey());
it.current()->menu()->clearAccel(id);
accelDict->remove(it.currentKey()); // Moves it ahead one
}
else
++it;
}
accelItem *ai = new accelItem(id, kp);
accelDict->insert(key, ai);
}
ksirc'KGAccel::removeAccel() (./kdenetwork/ksirc/kpopupmenu.cpp:78)
void KGAccel::removeAccel(int key) /*FOLD00*/
{
if(accelDict->find(key)){
accelDict->find(key)->menu()->clearAccel(accelDict->find(key)->id());
accelDict->remove(key);
}
}
ksirc'KGAccel::clearAccelForPopup() (./kdenetwork/ksirc/kpopupmenu.cpp:86)
void KGAccel::clearAccelForPopup(KAPopupMenu *kp)
{
QIntDictIterator<accelItem> it(*accelDict);
while(it.current()){
if(it.current()->menu() == kp){
debug("Remove: %ld", it.currentKey());
accelDict->remove(it.currentKey()); // Moves it ahead one
}
else
++it;
}
}