Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

Opie::Core::OKeyConfigManager Class Reference

A manager to load and save Key Actions and get notified This is the Manager for KeyActions. You can say from which config and group to read data, to grab the keyboard to handle hardware keys, you can supply a blacklist of keys which should not be used by allowed to be used. You can even pass this manager to a Widget to do the configuration for you. You need to add OKeyConfigItem for your keys and then issue a load() to read the Key information. You can either handle the QKeyEvent yourself and ask this class if it is handled by your action and let give you the action. Or you can install the event filter and get a signal. You need to load and save yourself! More...

#include </home/clem/local/src/opie/libopie2/opiecore/okeyconfigmanager.h>

Collaboration diagram for Opie::Core::OKeyConfigManager:

Collaboration graph
[legend]
List of all members.

Public Types

enum  EventMask { MaskPressed = 0x1, MaskReleased = 0x2 }

Public Slots

virtual void load ()
virtual void save ()
void handleWidget (QWidget *)

Signals

void actionActivated (QWidget *, QKeyEvent *, const Opie::Core::OKeyConfigItem &)
void actionActivated (QWidget *par, QKeyEvent *key)

Public Member Functions

 OKeyConfigManager (Opie::Core::OConfig *conf=0, const QString &group=QString::null, const OKeyPair::List &block=OKeyPair::List(), bool grabkeyboard=false, QObject *par=0, const char *name=0)
 c'tor The Constructor for a OKeyConfigManager
virtual ~OKeyConfigManager ()
virtual OKeyConfigItem handleKeyEvent (QKeyEvent *)
int handleKeyEventId (QKeyEvent *)
void addKeyConfig (const OKeyConfigItem &)
void removeKeyConfig (const OKeyConfigItem &)
void clearKeyConfig ()
void addToBlackList (const OKeyPair &)
void removeFromBlackList (const OKeyPair &)
void clearBlackList ()
OKeyPair::List blackList () const
bool eventFilter (QObject *, QEvent *)
void setEventMask (uint aMask)
uint eventMask () const
bool testEventMask (uint aMask)
void addEventMask (uint aMask)
void clearEventMask (uint aMask)
OKeyConfigItem::List keyConfigList () const

Private Types

typedef QMap< int, OKeyConfigItem::ListOKeyMapConfigPrivate

Private Member Functions

OKeyConfigItem::List keyList (int)

Private Attributes

OKeyConfigItem::List m_keys
QValueList< QWidget * > m_widgets
Opie::Core::OConfigm_conf
QString m_group
OKeyPair::List m_blackKeys
bool m_grab: 1
OKeyMapConfigPrivatem_map
Private * d
uint m_event_mask

Detailed Description

A manager to load and save Key Actions and get notified This is the Manager for KeyActions. You can say from which config and group to read data, to grab the keyboard to handle hardware keys, you can supply a blacklist of keys which should not be used by allowed to be used. You can even pass this manager to a Widget to do the configuration for you. You need to add OKeyConfigItem for your keys and then issue a load() to read the Key information. You can either handle the QKeyEvent yourself and ask this class if it is handled by your action and let give you the action. Or you can install the event filter and get a signal. You need to load and save yourself!

Again if you want to extend it and I missed a virtual, tell me so I can improve (zecke@handhelds.org)

Since:
1.1.2

Definition at line 143 of file okeyconfigmanager.h.


Member Typedef Documentation

typedef QMap<int, OKeyConfigItem::List> Opie::Core::OKeyConfigManager::OKeyMapConfigPrivate [private]
 

Definition at line 144 of file okeyconfigmanager.h.


Member Enumeration Documentation

enum Opie::Core::OKeyConfigManager::EventMask
 

Enumeration values:
MaskPressed 
MaskReleased 

Definition at line 147 of file okeyconfigmanager.h.


Constructor & Destructor Documentation

Opie::Core::OKeyConfigManager::OKeyConfigManager Opie::Core::OConfig conf = 0,
const QString group = QString::null,
const OKeyPair::List black = OKeyPair::List(),
bool  grabkeyboard = false,
QObject *  par = 0,
const char *  name = 0
 

c'tor The Constructor for a OKeyConfigManager

You can use this manager in multiple ways. Either make it handle QKeyEvents. The EventMask is set to OKeyConfigManager::MaskReleased by default.

 Opie::Core::Config conf = oApp->config();
 Opie::Core::OKeyPairList blackList;
 blackList.append(Opie::Core::OKeyPair::leftArrowKey());
 blackList.append(Opie::Core::OKeyPair::rightArrowKey());
 Opie::Core::OKeyConfigManager *manager = new Opie::Core::OKeyConfigManager(conf,"key_actions",blackList,
                                                                        false);
 QListView *view = new QListView();
 manager->handleWidget(view);
 manager->addKeyConfig( Opie::Core::OKeyPair::returnKey());
 manager->load();

 connect(manager,SIGNAL(actionActivated(QWidget*,QKeyEvent*,const Opie::Core::OKeyConfigItem&)),
         this,SLOT(slotHandleKey(QWidget*,QKeyEvent*,const Opie::Core::OKeyConfigItem&)));

 ....

 void update(){
  QDialog diag(true);
  QHBoxLayout *lay = new QHBoxLayout(&diag);
  Opie::Ui::OKeyConfigWidget *wid = new Opie::Ui::OKeyConfigWidget(manager,&diag);
  wid->setChangeMode(Opie::Ui::OKeyConfigWidget::Queu);
  lay->addWidget(wid);
  if(QPEApplication::execDialog( &diag)== QDialog::Accepted){
        wid->save();
  }
 }

 ....
 MyListView::keyPressEvent( QKeyEvent* e ){
     Opie::Ui::OKeyConfigItem item = manager->handleKeyEvent(e);
     if(!item.isEmpty() ){
         switch(item.id()){
           case My_Delete_Key:
             break;
         }
     }
 }

Parameters:
conf The Config where the KeySetting should be stored
group The group where the KeySetting will be stored
black Which keys shouldn't be allowed to handle
grabkeyboard Calls QPEApplication::grabKeyboard to allow handling of DeviceButtons
par The parent/owner of this manager
name The name of this object

Definition at line 477 of file okeyconfigmanager.cpp.

References QPEApplication::grabKeyboard(), m_event_mask, m_grab, and MaskReleased.

Opie::Core::OKeyConfigManager::~OKeyConfigManager  )  [virtual]
 

Destructor

Definition at line 493 of file okeyconfigmanager.cpp.

References m_grab, m_map, and QPEApplication::ungrabKeyboard().


Member Function Documentation

void Opie::Core::OKeyConfigManager::actionActivated QWidget *  par,
QKeyEvent *  key
[signal]
 

This Signal correspondents to the OKeyConfigItem slot and object

See also:
OKeyConfigItem::slot

OKeyConfigItem::object

void Opie::Core::OKeyConfigManager::actionActivated QWidget *  ,
QKeyEvent *  ,
const Opie::Core::OKeyConfigItem
[signal]
 

The Signals are triggered on KeyPress and KeyRelease! You can check the isDown of the QKeyEvent

See also:
QKeyEvent

Referenced by eventFilter().

void Opie::Core::OKeyConfigManager::addEventMask uint  aMask  )  [inline]
 

Add the event mask flag aMask.

Parameters:
aMask one of OKeyConfigManager::EventMask
See also:
eventMask(), setEventMask(), addEventMask(), clearEventMask()

Definition at line 258 of file okeyconfigmanager.h.

References m_event_mask.

void Opie::Core::OKeyConfigManager::addKeyConfig const OKeyConfigItem item  ) 
 

Add Key Config to the List of items

Definition at line 609 of file okeyconfigmanager.cpp.

References QValueList< T >::append(), m_keys, and m_map.

Referenced by ImageView::initKeys(), imageinfo::initKeys(), PIconView::initKeys(), IRCHistoryLineEdit::keyConfigInstance(), Opie::Ui::OKeyConfigWidget::save(), and TestMainWindow::TestMainWindow().

void Opie::Core::OKeyConfigManager::addToBlackList const OKeyPair key  ) 
 

Add this OKeyPair to the blackList. Internal lists will be destroyed

See also:
clearBlackList

removeFromBlackList

Definition at line 645 of file okeyconfigmanager.cpp.

References QValueList< T >::append(), m_blackKeys, and m_map.

OKeyPair::List Opie::Core::OKeyConfigManager::blackList  )  const
 

Return a copy of the blackList

See also:
addToBlackList

clearBlackList

removeFromBlackList

Definition at line 680 of file okeyconfigmanager.cpp.

References m_blackKeys.

void Opie::Core::OKeyConfigManager::clearBlackList  ) 
 

Clear the blackList

Definition at line 667 of file okeyconfigmanager.cpp.

References QValueList< T >::clear(), m_blackKeys, and m_map.

void Opie::Core::OKeyConfigManager::clearEventMask uint  aMask  )  [inline]
 

Clears the event mask flag aMask.

Parameters:
aMask is one of OKeyConfigManager::EventMask
See also:
eventMask(), testEventMask(), addEventMask(), setEventMask()

Definition at line 263 of file okeyconfigmanager.h.

References m_event_mask.

void Opie::Core::OKeyConfigManager::clearKeyConfig  ) 
 

Clears the complete list

Definition at line 626 of file okeyconfigmanager.cpp.

References QValueList< T >::clear(), m_keys, and m_map.

bool Opie::Core::OKeyConfigManager::eventFilter QObject *  obj,
QEvent *  ev
 

For internal use only.

Definition at line 697 of file okeyconfigmanager.cpp.

References actionActivated(), handleKeyEvent(), Opie::Core::OKeyConfigItem::isEmpty(), KeyPress, KeyRelease, MaskPressed, MaskReleased, Opie::Core::OKeyConfigItem::object(), Opie::Core::OKeyConfigItem::slot(), testEventMask(), and wid.

uint Opie::Core::OKeyConfigManager::eventMask  )  const [inline]
 

Returns the event mask flags set.

aMask is a combination of OKeyConfigManager::EventMask

See also:
setEventMask(), testEventMask(), addEventMask(), clearEventMask()

Definition at line 273 of file okeyconfigmanager.h.

References m_event_mask.

OKeyConfigItem Opie::Core::OKeyConfigManager::handleKeyEvent QKeyEvent *  e  )  [virtual]
 

This is function uses a QMap internally but you can have the same keycode with different modifier key. The behaviour is undefined if you add a OKeyConfigItem with same keycode and modifier key. The GUI takes care that a user can't cofigure two keys.

Make sure you call e->ignore if you don't want to handle this event

Definition at line 568 of file okeyconfigmanager.cpp.

References QValueList< T >::begin(), QValueList< T >::end(), Opie::Core::Internal::fixupKeys(), QValueList< T >::isEmpty(), keyList(), and mod.

Referenced by eventFilter(), handleKeyEventId(), and TestMainWindow::keyPressEvent().

int Opie::Core::OKeyConfigManager::handleKeyEventId QKeyEvent *  ev  ) 
 

Return the associated id of the item or -1 if no item matched the key

See also:
handleKeyEvent

Definition at line 602 of file okeyconfigmanager.cpp.

References handleKeyEvent().

Referenced by TestMainWindow::keyPressEvent().

void Opie::Core::OKeyConfigManager::handleWidget QWidget *  wid  )  [slot]
 

Ask the Manager to handle KeyEvents for you. All handled keys will emit a QSignal and return true that it handled the keyevent

Definition at line 690 of file okeyconfigmanager.cpp.

Referenced by ImageView::initKeys(), imageinfo::initKeys(), and PIconView::initKeys().

Opie::Core::OKeyConfigItem::List Opie::Core::OKeyConfigManager::keyConfigList  )  const
 

Definition at line 634 of file okeyconfigmanager.cpp.

References m_keys.

OKeyConfigItem::List Opie::Core::OKeyConfigManager::keyList int  keycode  )  [private]
 

For internal use only.

Definition at line 731 of file okeyconfigmanager.cpp.

References add, QValueList< T >::begin(), QValueList< T >::end(), Opie::Core::OKeyPair::keycode(), m_blackKeys, m_keys, m_map, and Opie::Core::OKeyPair::modifier().

Referenced by handleKeyEvent().

void Opie::Core::OKeyConfigManager::load  )  [virtual, slot]
 

Load the Configuration from the OConfig If a Key is restricted but was in the config we will make it be the empty key paur We will change the group but restore to the previous.

See also:
OKeyPair::emptyKey

Definition at line 507 of file okeyconfigmanager.cpp.

References QValueList< T >::begin(), QValueList< T >::contains(), Opie::Core::OKeyPair::emptyKey(), QValueList< T >::end(), m_blackKeys, m_conf, m_group, m_keys, m_map, mod, and Config::readNumEntry().

Referenced by ImageView::initKeys(), imageinfo::initKeys(), PIconView::initKeys(), and IRCHistoryLineEdit::keyConfigInstance().

void Opie::Core::OKeyConfigManager::removeFromBlackList const OKeyPair key  ) 
 

Remove this OKeyPair from the black List Internal lists will be destroyed

See also:
addToBlackList

clearBlackList

Definition at line 658 of file okeyconfigmanager.cpp.

References m_blackKeys, m_map, and QValueList< T >::remove().

void Opie::Core::OKeyConfigManager::removeKeyConfig const OKeyConfigItem item  ) 
 

Remove the Key from the Config. Internal lists will be destroyed and rebuild on demand later

Definition at line 618 of file okeyconfigmanager.cpp.

References m_keys, m_map, and QValueList< T >::remove().

Referenced by Opie::Ui::OKeyConfigWidget::save().

void Opie::Core::OKeyConfigManager::save  )  [virtual, slot]
 

We will save the current configuration to the OConfig. We will change the group but restore to the previous

Definition at line 534 of file okeyconfigmanager.cpp.

References QValueList< T >::begin(), QValueList< T >::end(), Opie::Core::OKeyPair::keycode(), m_conf, m_group, m_keys, Opie::Core::OKeyPair::modifier(), Config::write(), and Config::writeEntry().

Referenced by PIconView::~PIconView(), and TestMainWindow::~TestMainWindow().

void Opie::Core::OKeyConfigManager::setEventMask uint  aMask  )  [inline]
 

Sets the event mask flags aMask.

aMask is a combination of OKeyConfigManager::EventMask

See also:
eventMask(), testEventMask(), addEventMask(), clearEventMask()

Definition at line 268 of file okeyconfigmanager.h.

References m_event_mask.

Referenced by ImageView::initKeys().

bool Opie::Core::OKeyConfigManager::testEventMask uint  aMask  )  [inline]
 

Test if the event mask flag aMask is set.

Parameters:
aMask one of OKeyConfigManager::EventMask
See also:
eventMask(), setEventMask(), addEventMask(), clearEventMask()

Definition at line 253 of file okeyconfigmanager.h.

References m_event_mask.

Referenced by eventFilter().


Member Data Documentation

Private* Opie::Core::OKeyConfigManager::d [private]
 

Definition at line 248 of file okeyconfigmanager.h.

OKeyPair::List Opie::Core::OKeyConfigManager::m_blackKeys [private]
 

Definition at line 245 of file okeyconfigmanager.h.

Referenced by addToBlackList(), blackList(), clearBlackList(), keyList(), load(), and removeFromBlackList().

Opie::Core::OConfig* Opie::Core::OKeyConfigManager::m_conf [private]
 

Definition at line 243 of file okeyconfigmanager.h.

Referenced by load(), and save().

uint Opie::Core::OKeyConfigManager::m_event_mask [private]
 

Definition at line 250 of file okeyconfigmanager.h.

Referenced by addEventMask(), clearEventMask(), eventMask(), OKeyConfigManager(), setEventMask(), and testEventMask().

bool Opie::Core::OKeyConfigManager::m_grab [private]
 

Definition at line 246 of file okeyconfigmanager.h.

Referenced by OKeyConfigManager(), and ~OKeyConfigManager().

QString Opie::Core::OKeyConfigManager::m_group [private]
 

Definition at line 244 of file okeyconfigmanager.h.

Referenced by load(), and save().

OKeyConfigItem::List Opie::Core::OKeyConfigManager::m_keys [private]
 

Definition at line 241 of file okeyconfigmanager.h.

Referenced by addKeyConfig(), clearKeyConfig(), keyConfigList(), keyList(), load(), removeKeyConfig(), and save().

OKeyMapConfigPrivate* Opie::Core::OKeyConfigManager::m_map [private]
 

Definition at line 247 of file okeyconfigmanager.h.

Referenced by addKeyConfig(), addToBlackList(), clearBlackList(), clearKeyConfig(), keyList(), load(), removeFromBlackList(), removeKeyConfig(), and ~OKeyConfigManager().

QValueList<QWidget*> Opie::Core::OKeyConfigManager::m_widgets [private]
 

Definition at line 242 of file okeyconfigmanager.h.


The documentation for this class was generated from the following files:
Generated on Sat Nov 5 18:00:43 2005 for OPIE by  doxygen 1.4.2