MythTV  0.26-pre
keybindings.h
Go to the documentation of this file.
00001 /* -*- myth -*- */
00024 #ifndef KEYBINDINGS_H
00025 #define KEYBINDINGS_H
00026 
00027 // MythControls headers
00028 #include "action.h"
00029 #include "actionset.h"
00030 
00037 class KeyBindings
00038 {
00039   public:
00041     enum ConflictLevels { kKeyBindingWarning, kKeyBindingError, };
00042 
00043     KeyBindings(const QString &hostname);
00044 
00045     // Commands
00046     bool        AddActionKey(const QString &context_name,
00047                              const QString &action_name,
00048                              const QString &key);
00049     ActionID   *GetConflict(const QString &context_name,
00050                             const QString &key, int &level) const;
00051     void        ReplaceActionKey(const QString &context_name,
00052                                  const QString &action_name,
00053                                  const QString &newkey,
00054                                  const QString &oldkey);
00055     bool        RemoveActionKey(const QString &context_name,
00056                                 const QString &action_name,
00057                                 const QString &key);
00058     void        CommitChanges(void);
00059 
00060     // Gets
00061     QStringList GetKeys(void) const;
00062     QStringList GetContexts(void) const;
00063     QStringList GetActions(const QString &context) const;
00064     void        GetKeyActions(const QString &key, ActionList &list) const;
00065     QStringList GetActionKeys(const QString &context_name,
00066                               const QString &action_name) const;
00067     QStringList GetContextKeys(const QString &context) const;
00068     QStringList GetKeyContexts(const QString &key) const;
00069     QString     GetActionDescription(const QString &context_name,
00070                                      const QString &action_name) const;
00071     bool        HasMandatoryBindings(void) const;
00072     bool        HasChanges(void) const { return m_actionSet.HasModified(); }
00073 
00074   protected:
00075     void CommitJumppoint(const ActionID &id);
00076     void CommitAction(const ActionID &id);
00077 
00078     void LoadMandatoryBindings(void);
00079     void LoadContexts(void);
00080     void LoadJumppoints(void);
00081 
00082   private:
00083     QString     m_hostname;
00084     ActionList  m_mandatoryBindings;
00085     QStringList m_defaultKeys;
00086     ActionSet   m_actionSet;
00087 };
00088 
00089 #endif /* KEYBINDINGS_H */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends