📄 qmaccelmanager.cpp
字号:
for (QDictIterator<Key> it( m_Keys ); it.current(); ++it) { k = it.current(); // bind the scheduled key if ( k->modified ) { if ( k->value.key > 0 ) { m_pAccel->disconnectItem(k->id, k->receiver, k->slot); m_pAccel->removeItem(k->id); } k->id = 0; int key = usedKey( k ); k->value = k->tmpValue; k->modified = false; if ( key > 0 ) { k->id = m_pAccel->insertItem(key); m_pAccel->connectItem(k->id, k->receiver, k->slot); } } } save();}/*! Remove all scheduled bind/remove keys*/voidQmAccelManager::cancel(){ for (QDictIterator<Key> it( m_Keys ); it.current(); ++it) it.current()->modified = false;}/*! \return List of all commands.*/const QStringList&QmAccelManager::commands() const{ return m_Commands;}/*! \return the root group.*/const Group *QmAccelManager::groups() const{ return &m_Groups;}/*! \return The description for command \a command, or blank if no description. */const QString&QmAccelManager::desc( const QString &command) const{ if ( command.isEmpty() ) return QString::null; Key *k = m_Keys[command]; return k ? k->desc : QString::null;}/*! Writes the current bindings to qmconfig*/voidQmAccelManager::save() const{ QmConfig *conf = QmConfig::instance(); for (QDictIterator<Key> i(m_Keys); i.current(); ++i) { Key *k = i.current(); int key = 0; KeyType type = NoKey; if ( k->modified ) { type = k->tmpValue.type; if ( type == CustomKey ) key = k->tmpValue.key; } else { type = k->value.type; if ( type == CustomKey ) key = k->value.key; } if ( type == DefaultKey || ( type == NoKey && k->defKey == 0 ) ) conf->clear( "shortcut-keys", i.currentKey()+"-key" ); else if ( key || k->defKey > 0 ) conf->set( "shortcut-keys", i.currentKey()+"-key", key ); }}voidQmAccelManager::dump() const{ std::cout << "QmAccelManager::dump:\n"; Key *k; for (QDictIterator<Key> it(m_Keys); it.current(); ++it) { k = it.current(); std::cout << it.currentKey() << ": "; if ( k->modified ) std::cout << dump( k, k->tmpValue ); else std::cout << dump( k, k->value ); std::cout << std::endl; }}QStringQmAccelManager::dump( Key *k, Key::KeyValue &kv ) const{ if ( kv.type == DefaultKey ) return QString( "%1 (default)" ).arg( keyName( usedKey( k ) ) ); else if ( kv.type == CustomKey ) return keyName( usedKey( k ) ); else return QString::null;}/*! \return Human readable string of the key to command \a command, or blank if no key. */QStringQmAccelManager::keyName( const QString &command){ int k = key(command); return k ? keyName(k) : QString::null;}/*! \return Human readable string of \a key */QStringQmAccelManager::keyName(int key){ QString mod; if (key & Qt::CTRL) mod += "Ctrl+"; if (key & Qt::ALT) mod += "Alt+"; if (key & Qt::SHIFT) mod += "Shift+"; key &= 0xffff; switch(key) { case Qt::Key_Escape: return mod + "Escape"; case Qt::Key_Tab: return mod + "Tab"; case Qt::Key_Backtab: return mod + "Backtab"; case Qt::Key_Backspace: return mod + "Backspace"; case Qt::Key_Return: return mod + "return"; case Qt::Key_Enter: return mod + "Enter"; case Qt::Key_Insert: return mod + "Insert"; case Qt::Key_Delete: return mod + "Delete"; case Qt::Key_Pause: return mod + "Pause"; case Qt::Key_Print: return mod + "Print"; case Qt::Key_SysReq: return mod + "SysReq"; case Qt::Key_Home: return mod + "Home"; case Qt::Key_End: return mod + "End"; case Qt::Key_Left: return mod + "Left"; case Qt::Key_Up: return mod + "Up"; case Qt::Key_Right: return mod + "Right"; case Qt::Key_Down: return mod + "Down"; case Qt::Key_Prior: return mod + "Prior"; case Qt::Key_Next: return mod + "Next"; case Qt::Key_Shift: return mod + "Shift"; case Qt::Key_Control: return mod + "Control"; case Qt::Key_Meta: return mod + "Meta"; case Qt::Key_Alt: return mod + "Alt"; case Qt::Key_CapsLock: return mod + "CapsLock"; case Qt::Key_NumLock: return mod + "NumLock"; case Qt::Key_ScrollLock: return mod + "ScrollLock"; case Qt::Key_F1: return mod + "F1"; case Qt::Key_F2: return mod + "F2"; case Qt::Key_F3: return mod + "F3"; case Qt::Key_F4: return mod + "F4"; case Qt::Key_F5: return mod + "F5"; case Qt::Key_F6: return mod + "F6"; case Qt::Key_F7: return mod + "F7"; case Qt::Key_F8: return mod + "F8"; case Qt::Key_F9: return mod + "F9"; case Qt::Key_F10: return mod + "F10"; case Qt::Key_F11: return mod + "F11"; case Qt::Key_F12: return mod + "F12"; case Qt::Key_F13: return mod + "F13"; case Qt::Key_F14: return mod + "F14"; case Qt::Key_F15: return mod + "F15"; case Qt::Key_F16: return mod + "F16"; case Qt::Key_F17: return mod + "F17"; case Qt::Key_F18: return mod + "F18"; case Qt::Key_F19: return mod + "F19"; case Qt::Key_F20: return mod + "F20"; case Qt::Key_F21: return mod + "F21"; case Qt::Key_F22: return mod + "F22"; case Qt::Key_F23: return mod + "F23"; case Qt::Key_F24: return mod + "F24"; case Qt::Key_F25: return mod + "F25"; case Qt::Key_F26: return mod + "F26"; case Qt::Key_F27: return mod + "F27"; case Qt::Key_F28: return mod + "F28"; case Qt::Key_F29: return mod + "F29"; case Qt::Key_F30: return mod + "F30"; case Qt::Key_F31: return mod + "F31"; case Qt::Key_F32: return mod + "F32"; case Qt::Key_F33: return mod + "F33"; case Qt::Key_F34: return mod + "F34"; case Qt::Key_F35: return mod + "F35"; case Qt::Key_Super_L: return mod + "Super_L"; case Qt::Key_Super_R: return mod + "Super_R"; case Qt::Key_Menu: return mod + "Menu"; case Qt::Key_Hyper_L: return mod + "Hyper_L"; case Qt::Key_Hyper_R: return mod + "Hyper_R"; case Qt::Key_Help: return mod + "Help"; case Qt::Key_Space: return mod + "Space"; case Qt::Key_Exclam: return mod + "Exclam"; case Qt::Key_QuoteDbl: return mod + "QuoteDbl"; case Qt::Key_NumberSign: return mod + "NumberSign"; case Qt::Key_Dollar: return mod + "Dollar"; case Qt::Key_Percent: return mod + "Percent"; case Qt::Key_Ampersand: return mod + "Ampersand"; case Qt::Key_Apostrophe: return mod + "Apostrophe"; case Qt::Key_ParenLeft: return mod + "ParenLeft"; case Qt::Key_ParenRight: return mod + "ParenRight"; case Qt::Key_Asterisk: return mod + "Asterisk"; case Qt::Key_Plus: return mod + "Plus"; case Qt::Key_Comma: return mod + "Comma"; case Qt::Key_Minus: return mod + "Minus"; case Qt::Key_Period: return mod + "Period"; case Qt::Key_Slash: return mod + "Slash"; case Qt::Key_0: return mod + "0"; case Qt::Key_1: return mod + "1"; case Qt::Key_2: return mod + "2"; case Qt::Key_3: return mod + "3"; case Qt::Key_4: return mod + "4"; case Qt::Key_5: return mod + "5"; case Qt::Key_6: return mod + "6"; case Qt::Key_7: return mod + "7"; case Qt::Key_8: return mod + "8"; case Qt::Key_9: return mod + "9"; case Qt::Key_Colon: return mod + "Colon"; case Qt::Key_Semicolon: return mod + "Semicolon"; case Qt::Key_Less: return mod + "Less"; case Qt::Key_Equal: return mod + "Equal"; case Qt::Key_Greater: return mod + "Greater"; case Qt::Key_Question: return mod + "Question"; case Qt::Key_At: return mod + "At"; case Qt::Key_A: return mod + "A"; case Qt::Key_B: return mod + "B"; case Qt::Key_C: return mod + "C"; case Qt::Key_D: return mod + "D"; case Qt::Key_E: return mod + "E"; case Qt::Key_F: return mod + "F"; case Qt::Key_G: return mod + "G"; case Qt::Key_H: return mod + "H"; case Qt::Key_I: return mod + "I"; case Qt::Key_J: return mod + "J"; case Qt::Key_K: return mod + "K"; case Qt::Key_L: return mod + "L"; case Qt::Key_M: return mod + "M"; case Qt::Key_N: return mod + "N"; case Qt::Key_O: return mod + "O"; case Qt::Key_P: return mod + "P"; case Qt::Key_Q: return mod + "Q"; case Qt::Key_R: return mod + "R"; case Qt::Key_S: return mod + "S"; case Qt::Key_T: return mod + "T"; case Qt::Key_U: return mod + "U"; case Qt::Key_V: return mod + "V"; case Qt::Key_W: return mod + "W"; case Qt::Key_X: return mod + "X"; case Qt::Key_Y: return mod + "Y"; case Qt::Key_Z: return mod + "Z"; case Qt::Key_BracketLeft: return mod + "BracketLeft"; case Qt::Key_Backslash: return mod + "Backslash"; case Qt::Key_BracketRight: return mod + "BracketRight"; case Qt::Key_AsciiCircum: return mod + "AsciiCircum"; case Qt::Key_Underscore: return mod + "Underscore"; case Qt::Key_QuoteLeft: return mod + "QuoteLeft"; case Qt::Key_BraceLeft: return mod + "BraceLeft"; case Qt::Key_Bar: return mod + "Bar"; case Qt::Key_BraceRight: return mod + "BraceRight"; case Qt::Key_AsciiTilde: return mod + "AsciiTilde";// Latin 1 codes adapted from X: keysymdef.hyyyy case Qt::Key_nobreakspace: return mod + "nobreakspace"; case Qt::Key_exclamdown: return mod + "exclamdown"; case Qt::Key_cent: return mod + "cent"; case Qt::Key_sterling: return mod + "sterling"; case Qt::Key_currency: return mod + "currency"; case Qt::Key_yen: return mod + "yen"; case Qt::Key_brokenbar: return mod + "brokenbar"; case Qt::Key_section: return mod + "section"; case Qt::Key_diaeresis: return mod + "diaeresis"; case Qt::Key_copyright: return mod + "copyright"; case Qt::Key_ordfeminine: return mod + "ordfeminine"; case Qt::Key_guillemotleft : return mod + "guillemotleft "; case Qt::Key_notsign: return mod + "notsign"; case Qt::Key_hyphen: return mod + "hyphen"; case Qt::Key_registered: return mod + "registered"; case Qt::Key_macron: return mod + "macron"; case Qt::Key_degree: return mod + "degree"; case Qt::Key_plusminus: return mod + "plusminus"; case Qt::Key_twosuperior: return mod + "twosuperior"; case Qt::Key_threesuperior: return mod + "threesuperior"; case Qt::Key_acute: return mod + "acute"; case Qt::Key_mu: return mod + "mu"; case Qt::Key_paragraph: return mod + "paragraph"; case Qt::Key_periodcentered: return mod + "periodcentered"; case Qt::Key_cedilla: return mod + "cedilla"; case Qt::Key_onesuperior: return mod + "onesuperior"; case Qt::Key_masculine: return mod + "masculine"; case Qt::Key_guillemotright: return mod + "guillemotright"; case Qt::Key_onequarter: return mod + "onequarter"; case Qt::Key_onehalf: return mod + "onehalf"; case Qt::Key_threequarters: return mod + "threequarters"; case Qt::Key_questiondown: return mod + "questiondown"; case Qt::Key_Agrave: return mod + "Agrave"; case Qt::Key_Aacute: return mod + "Aacute"; case Qt::Key_Acircumflex: return mod + "Acircumflex"; case Qt::Key_Atilde: return mod + "Atilde"; case Qt::Key_Adiaeresis: return mod + "Adiaeresis"; case Qt::Key_Aring: return mod + "Aring"; case Qt::Key_AE: return mod + "AE"; case Qt::Key_Ccedilla: return mod + "Ccedilla"; case Qt::Key_Egrave: return mod + "Egrave"; case Qt::Key_Eacute: return mod + "Eacute"; case Qt::Key_Ecircumflex: return mod + "Ecircumflex"; case Qt::Key_Ediaeresis: return mod + "Ediaeresis"; case Qt::Key_Igrave: return mod + "Igrave"; case Qt::Key_Iacute: return mod + "Iacute"; case Qt::Key_Icircumflex: return mod + "Icircumflex"; case Qt::Key_Idiaeresis: return mod + "Idiaeresis"; case Qt::Key_ETH: return mod + "ETH"; case Qt::Key_Ntilde: return mod + "Ntilde"; case Qt::Key_Ograve: return mod + "Ograve"; case Qt::Key_Oacute: return mod + "Oacute"; case Qt::Key_Ocircumflex: return mod + "Ocircumflex"; case Qt::Key_Otilde: return mod + "Otilde"; case Qt::Key_Odiaeresis: return mod + "Odiaeresis"; case Qt::Key_multiply: return mod + "multiply"; case Qt::Key_Ooblique: return mod + "Ooblique"; case Qt::Key_Ugrave: return mod + "Ugrave"; case Qt::Key_Uacute: return mod + "Uacute"; case Qt::Key_Ucircumflex: return mod + "Ucircumflex"; case Qt::Key_Udiaeresis: return mod + "Udiaeresis"; case Qt::Key_Yacute: return mod + "Yacute"; case Qt::Key_THORN: return mod + "THORN"; case Qt::Key_ssharp: return mod + "ssharp"; case Qt::Key_agrave: return mod + "agrave"; case Qt::Key_aacute: return mod + "aacute"; case Qt::Key_acircumflex: return mod + "acircumflex"; case Qt::Key_atilde: return mod + "atilde"; case Qt::Key_adiaeresis: return mod + "adiaeresis"; case Qt::Key_aring: return mod + "aring"; case Qt::Key_ae: return mod + "ae"; case Qt::Key_ccedilla: return mod + "ccedilla"; case Qt::Key_egrave: return mod + "egrave"; case Qt::Key_eacute: return mod + "eacute"; case Qt::Key_ecircumflex: return mod + "ecircumflex"; case Qt::Key_ediaeresis: return mod + "ediaeresis"; case Qt::Key_igrave: return mod + "igrave"; case Qt::Key_iacute: return mod + "iacute"; case Qt::Key_icircumflex: return mod + "icircumflex"; case Qt::Key_idiaeresis: return mod + "idiaeresis"; case Qt::Key_eth: return mod + "eth"; case Qt::Key_ntilde: return mod + "ntilde"; case Qt::Key_ograve: return mod + "ograve"; case Qt::Key_oacute: return mod + "oacute"; case Qt::Key_ocircumflex: return mod + "ocircumflex"; case Qt::Key_otilde: return mod + "otilde"; case Qt::Key_odiaeresis: return mod + "odiaeresis"; case Qt::Key_division: return mod + "division"; case Qt::Key_oslash: return mod + "oslash"; case Qt::Key_ugrave: return mod + "ugrave"; case Qt::Key_uacute: return mod + "uacute"; case Qt::Key_ucircumflex: return mod + "ucircumflex"; case Qt::Key_udiaeresis: return mod + "udiaeresis"; case Qt::Key_yacute: return mod + "yacute"; case Qt::Key_thorn: return mod + "thorn"; case Qt::Key_ydiaeresis: return mod + "ydiaeresis"; } return mod + "keycode " + QString::number(key);}QmAccelManager::Key::KeyValue::KeyValue() : key( 0 ), type( NoKey ){}QmAccelManager::Key::KeyValue::KeyValue( KeyType t, int k ) : key( t == CustomKey ? k : 0 ), type( t ){}QmAccelManager::Key::Key( const QString &cmd, QObject *r, const QString &s, const QString d, KeyValue val, int defkey ) : command( cmd ), value( val ), tmpValue(), defKey( defkey ), modified( false ), receiver(r), slot(s), desc(d), id(0){}Group::Group( const QString &n ) : m_Name( n ){ m_Groups.setAutoDelete(true);}const QString &Group::name() const{ return m_Name;}voidGroup::appendGroup( Group *g ){ m_Groups.append( g );}voidGroup::appendKey( const QString &key ){ m_Keys.append( key );}const QList<Group> &Group::groups() const{ return m_Groups;}const QStringList &Group::keys() const{ return m_Keys;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -