Changed Qt hotkey window to sort the hot keys into logical groups.

This commit is contained in:
mjbudd77 2021-08-12 21:05:43 -04:00
parent 136ae9a336
commit 9e70db952e
5 changed files with 273 additions and 109 deletions

View File

@ -27,6 +27,7 @@
#include <SDL.h>
#include <QHeaderView>
#include <QCloseEvent>
#include <QMessageBox>
#include "Qt/main.h"
#include "Qt/dface.h"
@ -45,6 +46,7 @@ HotKeyConfDialog_t::HotKeyConfDialog_t(QWidget *parent)
QPushButton *closeButton, *resetDefaults;
QTreeWidgetItem *item;
std::string prefix = "SDL.Hotkeys.";
const char *hkName, *hkKeySeq, *hkTitle, *hkGroup;
setWindowTitle("Hotkey Configuration");
@ -69,26 +71,13 @@ HotKeyConfDialog_t::HotKeyConfDialog_t(QWidget *parent)
for (int i = 0; i < HK_MAX; i++)
{
char keyName[128];
std::string optionName = prefix + Hotkeys[i].getConfigName();
getHotKeyConfig( i, &hkName, &hkKeySeq, &hkTitle, &hkGroup );
//g_config->getOption (optionName.c_str (), &keycode);
Hotkeys[i].getString(keyName);
item = new QTreeWidgetItem();
tree->addTopLevelItem(item);
//item->setFlags( Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemNeverHasChildren );
//item->setCheckState( 0, Qt::Checked );
item->setText(0, QString::fromStdString(optionName));
item->setText(1, QString::fromStdString(keyName));
item->setTextAlignment(0, Qt::AlignLeft);
item->setTextAlignment(1, Qt::AlignCenter);
tree->addGroup( hkGroup );
tree->addItem( hkGroup, i );
}
tree->finalize();
//connect( tree, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)), this, SLOT(hotKeyDoubleClicked(QTreeWidgetItem*,int) ) );
connect( tree, SIGNAL(itemActivated(QTreeWidgetItem*,int)), this, SLOT(hotKeyActivated(QTreeWidgetItem*,int) ) );
@ -132,25 +121,124 @@ void HotKeyConfDialog_t::closeWindow(void)
deleteLater();
}
//----------------------------------------------------------------------------
void HotKeyConfDialog_t::resetDefaultsCB(void)
void HotKeyConfTree_t::finalize(void)
{
QTreeWidgetItem *item;
std::map <std::string, QTreeWidgetItem*>::iterator it;
for (it=groupMap.begin(); it!=groupMap.end(); it++)
{
item = it->second;
addTopLevelItem(item);
item->setExpanded(true);
}
}
//----------------------------------------------------------------------------
QTreeWidgetItem *HotKeyConfTree_t::addItem( const char *group, int hkIdx )
{
QTreeWidgetItem *itemGroup;
HotKeyConfTreeItem_t *item;
const char *hkName, *hkKeySeq, *hkTitle, *hkGroup;
itemGroup = findGroup(group);
if ( itemGroup == NULL )
{
return NULL;
}
getHotKeyConfig( hkIdx, &hkName, &hkKeySeq, &hkTitle, &hkGroup );
item = new HotKeyConfTreeItem_t(hkIdx);
item->setText(0, tr(hkTitle));
item->setText(1, Hotkeys[hkIdx].getKeySeq().toString());
item->setTextAlignment(0, Qt::AlignLeft);
item->setTextAlignment(1, Qt::AlignCenter);
itemGroup->addChild(item);
return NULL;
}
//----------------------------------------------------------------------------
QTreeWidgetItem *HotKeyConfTree_t::addGroup( const char *group)
{
std::string s = group;
return addGroup(s);
}
//----------------------------------------------------------------------------
QTreeWidgetItem *HotKeyConfTree_t::addGroup(std::string group)
{
QTreeWidgetItem *item;
item = findGroup(group);
if ( item == NULL )
{
item = new QTreeWidgetItem( this, 0);
item->setText(0, QString::fromStdString(group));
groupMap[group] = item;
}
return item;
}
//----------------------------------------------------------------------------
QTreeWidgetItem *HotKeyConfTree_t::findGroup( const char *group)
{
std::string s = group;
return findGroup(s);
}
//----------------------------------------------------------------------------
QTreeWidgetItem *HotKeyConfTree_t::findGroup( std::string group)
{
std::map <std::string, QTreeWidgetItem*>::iterator it;
it = groupMap.find(group);
if ( it != groupMap.end() )
{
return it->second;
}
return NULL;
}
//----------------------------------------------------------------------------
HotKeyConfTreeItem_t::HotKeyConfTreeItem_t(int idx, QTreeWidgetItem *parent)
: QTreeWidgetItem(parent,1)
{
hkIdx = idx;
}
//----------------------------------------------------------------------------
HotKeyConfTreeItem_t::~HotKeyConfTreeItem_t(void)
{
}
//----------------------------------------------------------------------------
void HotKeyConfDialog_t::resetDefaultsCB(void)
{
QTreeWidgetItem *groupItem;
HotKeyConfTreeItem_t *item;
std::string confName;
std::string prefix = "SDL.Hotkeys.";
const char *name, *keySeq;
for (int i=0; i<HK_MAX; i++)
for (int i=0; i<tree->topLevelItemCount(); i++)
{
getHotKeyConfig( i, &name, &keySeq );
groupItem = tree->topLevelItem(i);
confName = prefix + name;
g_config->setOption( confName, keySeq );
item = tree->topLevelItem(i);
if ( item )
for (int j=0; j<groupItem->childCount(); j++)
{
item = static_cast<HotKeyConfTreeItem_t*>(groupItem->child(j));
getHotKeyConfig( item->hkIdx, &name, &keySeq );
confName = prefix + name;
g_config->setOption( confName, keySeq );
item->setText(1, tr(keySeq));
}
}
@ -172,18 +260,26 @@ void HotKeyConfDialog_t::keyReleaseEvent(QKeyEvent *event)
//----------------------------------------------------------------------------
void HotKeyConfDialog_t::hotKeyActivated(QTreeWidgetItem *item, int column)
{
int row = tree->indexOfTopLevelItem( item );
HotKeyConfTreeItem_t *hkItem = static_cast<HotKeyConfTreeItem_t*>(item);
HotKeyConfSetDialog_t *win = new HotKeyConfSetDialog_t( row, 1, item, this );
if ( hkItem->type() == 0 )
{
return;
}
HotKeyConfSetDialog_t *win = new HotKeyConfSetDialog_t( 1, hkItem, this );
win->exec();
}
//----------------------------------------------------------------------------
void HotKeyConfDialog_t::hotKeyDoubleClicked(QTreeWidgetItem *item, int column)
{
int row = tree->indexOfTopLevelItem( item );
HotKeyConfTreeItem_t *hkItem = static_cast<HotKeyConfTreeItem_t*>(item);
HotKeyConfSetDialog_t *win = new HotKeyConfSetDialog_t( row, 0, item, this );
if ( hkItem->type() == 0 )
{
return;
}
HotKeyConfSetDialog_t *win = new HotKeyConfSetDialog_t( 0, hkItem, this );
win->exec();
}
@ -211,14 +307,13 @@ void HotKeyConfTree_t::keyReleaseEvent(QKeyEvent *event)
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
HotKeyConfSetDialog_t::HotKeyConfSetDialog_t( int hkIndex, int discardNum, QTreeWidgetItem *itemIn, QWidget *parent )
HotKeyConfSetDialog_t::HotKeyConfSetDialog_t( int discardNum, HotKeyConfTreeItem_t *itemIn, QWidget *parent )
: QDialog(parent)
{
QVBoxLayout *mainLayout;
QHBoxLayout *hbox;
QPushButton *clearButton, *okButton;
idx = hkIndex;
item = itemIn;
discardCount = discardNum;
@ -299,6 +394,39 @@ void HotKeyConfSetDialog_t::keyReleaseEvent(QKeyEvent *event)
event->accept();
}
//----------------------------------------------------------------------------
void HotKeyConfSetDialog_t::checkForConflicts(int hkIdx)
{
for (int i=0; i<HK_MAX; i++)
{
if ( hkIdx == i )
{
continue;
}
if ( Hotkeys[hkIdx].getKeySeq().matches( Hotkeys[i].getKeySeq() ) )
{
std::string msg;
const char *hkName1, *hkKeySeq1, *hkTitle1, *hkGroup1;
const char *hkName2, *hkKeySeq2, *hkTitle2, *hkGroup2;
getHotKeyConfig( i, &hkName1, &hkKeySeq1, &hkTitle1, &hkGroup1 );
getHotKeyConfig( hkIdx, &hkName2, &hkKeySeq2, &hkTitle2, &hkGroup2 );
msg.append(hkGroup2);
msg.append(" :: ");
msg.append(hkTitle2);
msg.append("\n\n");
msg.append("Conflicts with:\n\n");
msg.append(hkGroup1);
msg.append(" :: ");
msg.append(hkTitle1);
QMessageBox::warning( this,
tr("Hotkey Conflict Warning"), tr(msg.c_str()) );
//printf("Warning Key Conflict: %i and %i \n", hkIdx, i );
}
}
}
//----------------------------------------------------------------------------
void HotKeyConfSetDialog_t::assignHotkey(QKeyEvent *event)
{
bool keyIsModifier;
@ -321,7 +449,7 @@ void HotKeyConfSetDialog_t::assignHotkey(QKeyEvent *event)
std::string prefix = "SDL.Hotkeys.";
std::string confName;
confName = prefix + Hotkeys[idx].getConfigName();
confName = prefix + Hotkeys[item->hkIdx].getConfigName();
keyText = ks.toString().toStdString();
@ -329,6 +457,8 @@ void HotKeyConfSetDialog_t::assignHotkey(QKeyEvent *event)
setHotKeys();
checkForConflicts(item->hkIdx);
if ( item )
{
item->setText(1, QString::fromStdString(keyText));
@ -344,7 +474,7 @@ void HotKeyConfSetDialog_t::cleanButtonCB(void)
std::string prefix = "SDL.Hotkeys.";
std::string confName;
confName = prefix + Hotkeys[idx].getConfigName();
confName = prefix + Hotkeys[item->hkIdx].getConfigName();
g_config->setOption( confName, "");

View File

@ -3,6 +3,10 @@
#pragma once
#include <string>
#include <list>
#include <map>
#include <QWidget>
#include <QDialog>
#include <QVBoxLayout>
@ -16,15 +20,27 @@
#include <QGroupBox>
#include <QTreeView>
#include <QTreeWidget>
#include <QTreeWidgetItem>
#include "Qt/main.h"
class HotKeyConfTreeItem_t : public QTreeWidgetItem
{
//Q_OBJECT
public:
HotKeyConfTreeItem_t(int idx, QTreeWidgetItem *parent = nullptr);
~HotKeyConfTreeItem_t(void);
int hkIdx;
};
class HotKeyConfSetDialog_t : public QDialog
{
Q_OBJECT
Q_OBJECT
public:
HotKeyConfSetDialog_t( int hkIndex, int discardNum, QTreeWidgetItem *itemIn = 0, QWidget *parent = 0);
HotKeyConfSetDialog_t( int discardNum, HotKeyConfTreeItem_t *itemIn = 0, QWidget *parent = 0);
~HotKeyConfSetDialog_t(void);
protected:
@ -32,11 +48,11 @@ protected:
void keyPressEvent(QKeyEvent *event);
void keyReleaseEvent(QKeyEvent *event);
void assignHotkey(QKeyEvent *event);
void checkForConflicts(int hkIdx);
QLineEdit *keySeqText;
QTreeWidgetItem *item;
HotKeyConfTreeItem_t *item;
int idx;
int discardCount;
public slots:
@ -53,6 +69,18 @@ public:
HotKeyConfTree_t(QWidget *parent = 0);
~HotKeyConfTree_t(void);
void finalize(void);
QTreeWidgetItem *addGroup( const char *group);
QTreeWidgetItem *addGroup( std::string group);
QTreeWidgetItem *findGroup( const char *group);
QTreeWidgetItem *findGroup( std::string group);
QTreeWidgetItem *addItem(const char *group, int i );
protected:
std::map <std::string, QTreeWidgetItem*> groupMap;
protected:
void keyPressEvent(QKeyEvent *event);
void keyReleaseEvent(QKeyEvent *event);

View File

@ -63,183 +63,184 @@ extern int palsharpness;
extern int palcontrast;
extern int palbrightness;
int getHotKeyConfig( int i, const char **nameOut, const char **keySeqOut, const char **titleOut )
int getHotKeyConfig( int i, const char **nameOut, const char **keySeqOut, const char **titleOut, const char **groupOut )
{
const char *name = "";
const char *keySeq = "";
const char *title = NULL;
const char *group = "Misc";
switch ( i )
{
case HK_OPEN_ROM:
name = "OpenROM"; keySeq = "Ctrl+O"; title = "Open ROM";
name = "OpenROM"; keySeq = "Ctrl+O"; title = "Open ROM"; group = "Tools";
break;
case HK_CLOSE_ROM:
name = "CloseROM"; keySeq = "Ctrl+C"; title = "Close ROM";
name = "CloseROM"; keySeq = "Ctrl+C"; title = "Close ROM"; group = "Tools";
break;
case HK_CHEAT_MENU:
name = "CheatMenu"; keySeq = ""; title = "Open Cheat Window";
name = "CheatMenu"; keySeq = ""; title = "Open Cheat Window"; group = "Tools";
break;
case HK_BIND_STATE:
name = "BindState"; keySeq = ""; title = "Bind Save State to Movie";
name = "BindState"; keySeq = ""; title = "Bind Save State to Movie"; group = "Movie";
break;
case HK_LOAD_LUA:
name = "LoadLua"; keySeq = "Ctrl+L";
name = "LoadLua"; keySeq = "Ctrl+L"; group = "Tools";
break;
case HK_TOGGLE_BG:
name = "ToggleBG"; keySeq = ""; title = "Toggle Background Display";
name = "ToggleBG"; keySeq = ""; title = "Toggle Background Display"; group = "Misc";
break;
case HK_TOGGLE_FG:
name = "ToggleFG"; keySeq = ""; title = "Toggle Object Display";
name = "ToggleFG"; keySeq = ""; title = "Toggle Object Display"; group = "Misc";
break;
// Save States
case HK_SAVE_STATE:
name = "SaveState"; keySeq = "I"; title = "Save State";
name = "SaveState"; keySeq = "I"; title = "Save State"; group = "State";
break;
case HK_SAVE_STATE_0:
name = "SaveState0"; keySeq = "Shift+F10"; title = "Save State to Slot 0";
name = "SaveState0"; keySeq = "Shift+F10"; title = "Save State to Slot 0"; group = "State";
break;
case HK_SAVE_STATE_1:
name = "SaveState1"; keySeq = "Shift+F1"; title = "Save State to Slot 1";
name = "SaveState1"; keySeq = "Shift+F1"; title = "Save State to Slot 1"; group = "State";
break;
case HK_SAVE_STATE_2:
name = "SaveState2"; keySeq = "Shift+F2"; title = "Save State to Slot 2";
name = "SaveState2"; keySeq = "Shift+F2"; title = "Save State to Slot 2"; group = "State";
break;
case HK_SAVE_STATE_3:
name = "SaveState3"; keySeq = "Shift+F3"; title = "Save State to Slot 3";
name = "SaveState3"; keySeq = "Shift+F3"; title = "Save State to Slot 3"; group = "State";
break;
case HK_SAVE_STATE_4:
name = "SaveState4"; keySeq = "Shift+F4"; title = "Save State to Slot 4";
name = "SaveState4"; keySeq = "Shift+F4"; title = "Save State to Slot 4"; group = "State";
break;
case HK_SAVE_STATE_5:
name = "SaveState5"; keySeq = "Shift+F5"; title = "Save State to Slot 5";
name = "SaveState5"; keySeq = "Shift+F5"; title = "Save State to Slot 5"; group = "State";
break;
case HK_SAVE_STATE_6:
name = "SaveState6"; keySeq = "Shift+F6"; title = "Save State to Slot 6";
name = "SaveState6"; keySeq = "Shift+F6"; title = "Save State to Slot 6"; group = "State";
break;
case HK_SAVE_STATE_7:
name = "SaveState7"; keySeq = "Shift+F7"; title = "Save State to Slot 7";
name = "SaveState7"; keySeq = "Shift+F7"; title = "Save State to Slot 7"; group = "State";
break;
case HK_SAVE_STATE_8:
name = "SaveState8"; keySeq = "Shift+F8"; title = "Save State to Slot 8";
name = "SaveState8"; keySeq = "Shift+F8"; title = "Save State to Slot 8"; group = "State";
break;
case HK_SAVE_STATE_9:
name = "SaveState9"; keySeq = "Shift+F9"; title = "Save State to Slot 9";
name = "SaveState9"; keySeq = "Shift+F9"; title = "Save State to Slot 9"; group = "State";
break;
// Load States
case HK_LOAD_STATE:
name = "LoadState"; keySeq = "P"; title = "Load State";
name = "LoadState"; keySeq = "P"; title = "Load State"; group = "State";
break;
case HK_LOAD_STATE_0:
name = "LoadState0"; keySeq = "F10"; title = "Load State From Slot 0";
name = "LoadState0"; keySeq = "F10"; title = "Load State From Slot 0"; group = "State";
break;
case HK_LOAD_STATE_1:
name = "LoadState1"; keySeq = "F1"; title = "Load State From Slot 1";
name = "LoadState1"; keySeq = "F1"; title = "Load State From Slot 1"; group = "State";
break;
case HK_LOAD_STATE_2:
name = "LoadState2"; keySeq = "F2"; title = "Load State From Slot 2";
name = "LoadState2"; keySeq = "F2"; title = "Load State From Slot 2"; group = "State";
break;
case HK_LOAD_STATE_3:
name = "LoadState3"; keySeq = "F3"; title = "Load State From Slot 3";
name = "LoadState3"; keySeq = "F3"; title = "Load State From Slot 3"; group = "State";
break;
case HK_LOAD_STATE_4:
name = "LoadState4"; keySeq = "F4"; title = "Load State From Slot 4";
name = "LoadState4"; keySeq = "F4"; title = "Load State From Slot 4"; group = "State";
break;
case HK_LOAD_STATE_5:
name = "LoadState5"; keySeq = "F5"; title = "Load State From Slot 5";
name = "LoadState5"; keySeq = "F5"; title = "Load State From Slot 5"; group = "State";
break;
case HK_LOAD_STATE_6:
name = "LoadState6"; keySeq = "F6"; title = "Load State From Slot 6";
name = "LoadState6"; keySeq = "F6"; title = "Load State From Slot 6"; group = "State";
break;
case HK_LOAD_STATE_7:
name = "LoadState7"; keySeq = "F7"; title = "Load State From Slot 7";
name = "LoadState7"; keySeq = "F7"; title = "Load State From Slot 7"; group = "State";
break;
case HK_LOAD_STATE_8:
name = "LoadState8"; keySeq = "F8"; title = "Load State From Slot 8";
name = "LoadState8"; keySeq = "F8"; title = "Load State From Slot 8"; group = "State";
break;
case HK_LOAD_STATE_9:
name = "LoadState9"; keySeq = "F9"; title = "Load State From Slot 9";
name = "LoadState9"; keySeq = "F9"; title = "Load State From Slot 9"; group = "State";
break;
case HK_FDS_SELECT:
name = "FDSSelect"; keySeq = ""; title = "Switch FDS Disk Side";
name = "FDSSelect"; keySeq = ""; title = "Switch FDS Disk Side"; group = "FDS";
break;
case HK_FDS_EJECT:
name = "FDSEject"; keySeq = ""; title = "Eject FDS Disk";
name = "FDSEject"; keySeq = ""; title = "Eject FDS Disk"; group = "FDS";
break;
case HK_VS_INSERT_COIN:
name = "VSInsertCoin"; keySeq = ""; title = "VS Insert Coin";
name = "VSInsertCoin"; keySeq = ""; title = "VS Insert Coin"; group = "VS";
break;
case HK_VS_TOGGLE_DIPSWITCH:
name = "VSToggleDip"; keySeq = ""; title = "VS Toggle Dipswitch";
name = "VSToggleDip"; keySeq = ""; title = "VS Toggle Dipswitch"; group = "VS";
break;
case HK_TOGGLE_FRAME_DISPLAY:
name = "MovieToggleFrameDisplay"; keySeq = "."; title = "Toggle Frame Display";
name = "MovieToggleFrameDisplay"; keySeq = "."; title = "Toggle Frame Display"; group = "Movie";
break;
case HK_TOGGLE_SUBTITLE:
name = "SubtitleDisplay"; keySeq = ""; title = "Toggle Movie Subtitles";
name = "SubtitleDisplay"; keySeq = ""; title = "Toggle Movie Subtitles"; group = "Movie";
break;
case HK_POWER:
name = "Power"; keySeq = ""; title = "Power";
name = "Power"; keySeq = ""; title = "Power"; group = "Emulation";
break;
case HK_RESET:
name = "Reset"; keySeq = "Ctrl+R"; title = "Reset";
name = "Reset"; keySeq = "Ctrl+R"; title = "Reset"; group = "Emulation";
break;
case HK_PAUSE:
name = "Pause"; keySeq = "Pause"; title = "Pause";
name = "Pause"; keySeq = "Pause"; title = "Pause"; group = "Emulation";
break;
case HK_QUIT:
name = "Quit"; keySeq = "Ctrl+Q"; title = "Exit Application";
name = "Quit"; keySeq = "Ctrl+Q"; title = "Exit Application"; group = "Misc";
break;
case HK_SCREENSHOT:
name = "Screenshot"; keySeq = "F12";
name = "Screenshot"; keySeq = "F12"; group = "Tools";
break;
case HK_DECREASE_SPEED:
name = "DecreaseSpeed"; keySeq = "-";
name = "DecreaseSpeed"; keySeq = "-"; group = "Speed";
break;
case HK_INCREASE_SPEED:
name = "IncreaseSpeed"; keySeq = "=";
name = "IncreaseSpeed"; keySeq = "="; group = "Speed";
break;
case HK_FRAME_ADVANCE:
name = "FrameAdvance"; keySeq = "\\";
name = "FrameAdvance"; keySeq = "\\"; group = "Speed";
break;
case HK_TURBO:
name = "Turbo"; keySeq = "Tab";
name = "Turbo"; keySeq = "Tab"; group = "Speed";
break;
case HK_TOGGLE_INPUT_DISPLAY:
name = "ToggleInputDisplay"; keySeq = ",";
name = "ToggleInputDisplay"; keySeq = ","; group = "Misc";
break;
case HK_MOVIE_TOGGLE_RW:
name = "ToggleMovieRW"; keySeq = "Q";
name = "ToggleMovieRW"; keySeq = "Q"; group = "Movie";
break;
case HK_PLAY_MOVIE_FROM:
name = "PlayMovieFrom"; keySeq = "";
name = "PlayMovieFrom"; keySeq = ""; group = "Movie";
break;
case HK_MOVIE_PLAY_RESTART:
name = "PlayMovieFromBeginning"; keySeq = "";
name = "PlayMovieFromBeginning"; keySeq = ""; group = "Movie";
break;
case HK_RECORD_MOVIE_TO:
name = "RecordMovieTo"; keySeq = "";
name = "RecordMovieTo"; keySeq = ""; group = "Movie";
break;
case HK_STOP_MOVIE:
name = "StopMovie"; keySeq = "";
name = "StopMovie"; keySeq = ""; group = "Movie";
break;
case HK_RECORD_AVI:
name = "RecordAvi"; keySeq = "";
name = "RecordAvi"; keySeq = ""; group = "AVI";
break;
case HK_RECORD_AVI_TO:
name = "RecordAviTo"; keySeq = "";
name = "RecordAviTo"; keySeq = ""; group = "AVI";
break;
case HK_STOP_AVI:
name = "StopAvi"; keySeq = "";
name = "StopAvi"; keySeq = ""; group = "AVI";
break;
case HK_RECORD_WAV:
name = "RecordWav"; keySeq = "";
name = "RecordWav"; keySeq = ""; group = "WAV";
break;
case HK_RECORD_WAV_TO:
name = "RecordWavTo"; keySeq = "";
name = "RecordWavTo"; keySeq = ""; group = "WAV";
break;
case HK_STOP_WAV:
name = "StopWav"; keySeq = "";
name = "StopWav"; keySeq = ""; group = "WAV";
break;
case HK_MUTE_CAPTURE:
name = "MuteCapture"; keySeq = "'";
@ -251,40 +252,40 @@ int getHotKeyConfig( int i, const char **nameOut, const char **keySeqOut, const
name = "LagCounterDisplay"; keySeq = "/";
break;
case HK_SELECT_STATE_0:
name = "SelectState0"; keySeq = "0"; title = "Select State Slot 0";
name = "SelectState0"; keySeq = "0"; title = "Select State Slot 0"; group = "State";
break;
case HK_SELECT_STATE_1:
name = "SelectState1"; keySeq = "1"; title = "Select State Slot 1";
name = "SelectState1"; keySeq = "1"; title = "Select State Slot 1"; group = "State";
break;
case HK_SELECT_STATE_2:
name = "SelectState2"; keySeq = "2"; title = "Select State Slot 2";
name = "SelectState2"; keySeq = "2"; title = "Select State Slot 2"; group = "State";
break;
case HK_SELECT_STATE_3:
name = "SelectState3"; keySeq = "3"; title = "Select State Slot 3";
name = "SelectState3"; keySeq = "3"; title = "Select State Slot 3"; group = "State";
break;
case HK_SELECT_STATE_4:
name = "SelectState4"; keySeq = "4"; title = "Select State Slot 4";
name = "SelectState4"; keySeq = "4"; title = "Select State Slot 4"; group = "State";
break;
case HK_SELECT_STATE_5:
name = "SelectState5"; keySeq = "5"; title = "Select State Slot 5";
name = "SelectState5"; keySeq = "5"; title = "Select State Slot 5"; group = "State";
break;
case HK_SELECT_STATE_6:
name = "SelectState6"; keySeq = "6"; title = "Select State Slot 6";
name = "SelectState6"; keySeq = "6"; title = "Select State Slot 6"; group = "State";
break;
case HK_SELECT_STATE_7:
name = "SelectState7"; keySeq = "7"; title = "Select State Slot 7";
name = "SelectState7"; keySeq = "7"; title = "Select State Slot 7"; group = "State";
break;
case HK_SELECT_STATE_8:
name = "SelectState8"; keySeq = "8"; title = "Select State Slot 8";
name = "SelectState8"; keySeq = "8"; title = "Select State Slot 8"; group = "State";
break;
case HK_SELECT_STATE_9:
name = "SelectState9"; keySeq = "9"; title = "Select State Slot 9";
name = "SelectState9"; keySeq = "9"; title = "Select State Slot 9"; group = "State";
break;
case HK_SELECT_STATE_NEXT:
name = "SelectStateNext"; keySeq = ""; title = "Select Next State Slot";
name = "SelectStateNext"; keySeq = ""; title = "Select Next State Slot"; group = "State";
break;
case HK_SELECT_STATE_PREV:
name = "SelectStatePrev"; keySeq = ""; title = "Select Previous State Slot";
name = "SelectStatePrev"; keySeq = ""; title = "Select Previous State Slot"; group = "State";
break;
case HK_VOLUME_DOWN:
name = "VolumeDown"; keySeq = "";
@ -324,6 +325,10 @@ int getHotKeyConfig( int i, const char **nameOut, const char **keySeqOut, const
}
*titleOut = title;
}
if ( groupOut )
{
*groupOut = group;
}
return 0;
}

View File

@ -60,7 +60,7 @@ enum HOTKEY {
HK_FKB_ENABLE,
HK_MAX};
int getHotKeyConfig( int i, const char **nameOut, const char **keySeqOut, const char **titleOut = NULL );
int getHotKeyConfig( int i, const char **nameOut, const char **keySeqOut, const char **titleOut = NULL, const char **groupOut = NULL );
int getHotKeyIndexByName( const char *name );

View File

@ -234,6 +234,7 @@ int hotkey_t::readConfig(void)
g_config->getOption(prefix + configName, &keyText);
//printf("Config: '%s' = '%s'\n", configName, keyText.c_str() );
keySeq = QKeySequence( QString::fromStdString(keyText) );
if (shortcut)
{