Added enable/disable button for Qt family keyboard dialog. Added button mapping save, recall and reset to default functions for Qt FKB.
This commit is contained in:
parent
bef4e80e08
commit
3e7dc3474a
|
@ -637,10 +637,12 @@ FKBConfigDialog::FKBConfigDialog(QWidget *parent)
|
|||
mainVbox->addLayout( hbox );
|
||||
|
||||
statLbl = new QLabel();
|
||||
fkbEnaBtn = new QPushButton( tr("Enable") );
|
||||
closeButton = new QPushButton( tr("Close") );
|
||||
closeButton->setIcon(style()->standardIcon(QStyle::SP_DialogCloseButton));
|
||||
closeButton->setAutoDefault(false);
|
||||
|
||||
hbox->addWidget(fkbEnaBtn, 1);
|
||||
hbox->addWidget(statLbl, 3);
|
||||
hbox->addStretch(5);
|
||||
hbox->addWidget( closeButton, 1);
|
||||
|
@ -660,6 +662,7 @@ FKBConfigDialog::FKBConfigDialog(QWidget *parent)
|
|||
connect( keyTreeHgtAnimation, SIGNAL(finished(void)), this, SLOT(keyTreeResizeDone(void)) );
|
||||
|
||||
connect(closeButton , SIGNAL(clicked(void)), this, SLOT(closeWindow(void)));
|
||||
connect(fkbEnaBtn , SIGNAL(clicked(void)), this, SLOT(toggleFamilyKeyboardEnable(void)) );
|
||||
|
||||
updateTimer = new QTimer(this);
|
||||
|
||||
|
@ -683,6 +686,60 @@ FKBConfigDialog::~FKBConfigDialog(void)
|
|||
|
||||
// Save Window Geometry
|
||||
settings.setValue("familyKeyboard/geometry", saveGeometry());
|
||||
|
||||
SaveCurrentMapping();
|
||||
}
|
||||
//----------------------------------------------------------------------------
|
||||
void FKBConfigDialog::SaveCurrentMapping(void)
|
||||
{
|
||||
std::string prefix;
|
||||
|
||||
// FamilyKeyBoard
|
||||
prefix = "SDL.Input.FamilyKeyBoard.";
|
||||
g_config->setOption(prefix + "DeviceType", DefaultFamilyKeyBoardDevice);
|
||||
g_config->setOption(prefix + "DeviceNum", 0);
|
||||
for(unsigned int j = 0; j < FAMILYKEYBOARD_NUM_BUTTONS; j++)
|
||||
{
|
||||
g_config->setOption(prefix + FamilyKeyBoardNames[j], fkbmap[j].ButtonNum );
|
||||
}
|
||||
g_config->save();
|
||||
}
|
||||
//----------------------------------------------------------------------------
|
||||
void FKBConfigDialog::resetDefaultMapping(void)
|
||||
{
|
||||
std::string prefix, device;
|
||||
int type = 0, devnum = 0;
|
||||
|
||||
// FamilyKeyBoard
|
||||
prefix = "SDL.Input.FamilyKeyBoard.";
|
||||
g_config->setOption(prefix + "DeviceType", DefaultFamilyKeyBoardDevice);
|
||||
g_config->setOption(prefix + "DeviceNum", 0);
|
||||
|
||||
g_config->getOption(prefix + "DeviceType", &device);
|
||||
|
||||
if (device.find("Keyboard") != std::string::npos)
|
||||
{
|
||||
type = BUTTC_KEYBOARD;
|
||||
}
|
||||
else if (device.find("Joystick") != std::string::npos)
|
||||
{
|
||||
type = BUTTC_JOYSTICK;
|
||||
}
|
||||
else
|
||||
{
|
||||
type = 0;
|
||||
}
|
||||
g_config->getOption(prefix + "DeviceNum", &devnum);
|
||||
|
||||
for(unsigned int j = 0; j < FAMILYKEYBOARD_NUM_BUTTONS; j++)
|
||||
{
|
||||
g_config->setOption(prefix + FamilyKeyBoardNames[j], DefaultFamilyKeyBoard[j] );
|
||||
|
||||
fkbmap[j].ButtType = type;
|
||||
fkbmap[j].DeviceNum = devnum;
|
||||
fkbmap[j].ButtonNum = DefaultFamilyKeyBoard[j];
|
||||
}
|
||||
g_config->save();
|
||||
}
|
||||
//----------------------------------------------------------------------------
|
||||
QMenuBar *FKBConfigDialog::buildMenuBar(void)
|
||||
|
@ -750,6 +807,16 @@ QMenuBar *FKBConfigDialog::buildMenuBar(void)
|
|||
|
||||
confMenu->addAction(act);
|
||||
|
||||
confMenu->addSeparator();
|
||||
|
||||
// Config -> Reset to Defaults
|
||||
act = new QAction(tr("Reset to Defaults"), this);
|
||||
//act->setShortcut(QKeySequence::Close);
|
||||
act->setStatusTip(tr("Reset to Defaults Mappings"));
|
||||
connect(act, SIGNAL(triggered()), this, SLOT(resetDefaultMapping(void)) );
|
||||
|
||||
confMenu->addAction(act);
|
||||
|
||||
// View
|
||||
viewMenu = menuBar->addMenu(tr("View"));
|
||||
|
||||
|
@ -861,13 +928,53 @@ void FKBConfigDialog::updateStatusLabel(void)
|
|||
if ( fkbActv )
|
||||
{
|
||||
statLbl->setText( tr("Family Keyboard is Enabled") );
|
||||
fkbEnaBtn->setText( tr("Disable") );
|
||||
}
|
||||
else
|
||||
{
|
||||
statLbl->setText( tr("Family Keyboard is Disabled") );
|
||||
fkbEnaBtn->setText( tr("Enable") );
|
||||
}
|
||||
}
|
||||
//----------------------------------------------------------------------------
|
||||
void FKBConfigDialog::toggleFamilyKeyboardEnable(void)
|
||||
{
|
||||
int curNesInput[3], usrNesInput[3];
|
||||
|
||||
getInputSelection(0, &curNesInput[0], &usrNesInput[0]);
|
||||
getInputSelection(1, &curNesInput[1], &usrNesInput[1]);
|
||||
getInputSelection(2, &curNesInput[2], &usrNesInput[2]);
|
||||
|
||||
if ( curNesInput[2] != SIFC_FKB )
|
||||
{
|
||||
ESI port[2];
|
||||
ESIFC fcexp;
|
||||
int fourscore = false, microphone = false;
|
||||
|
||||
curNesInput[2] = SIFC_FKB;
|
||||
|
||||
g_config->getOption("SDL.FourScore", &fourscore);
|
||||
|
||||
microphone = replaceP2StartWithMicrophone;
|
||||
|
||||
port[0] = (ESI)curNesInput[0];
|
||||
port[1] = (ESI)curNesInput[1];
|
||||
fcexp = (ESIFC)curNesInput[2];
|
||||
|
||||
FCEUD_SetInput(fourscore, microphone, port[0], port[1], fcexp);
|
||||
|
||||
if ( !isFamilyKeyboardActv() )
|
||||
{
|
||||
toggleFamilyKeyboardFunc();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
toggleFamilyKeyboardFunc();
|
||||
}
|
||||
updateStatusLabel();
|
||||
}
|
||||
//----------------------------------------------------------------------------
|
||||
void FKBConfigDialog::closeEvent(QCloseEvent *event)
|
||||
{
|
||||
printf("FKB Config Close Window Event\n");
|
||||
|
|
|
@ -149,6 +149,7 @@ protected:
|
|||
QTreeWidget *keyTree;
|
||||
|
||||
QLabel *statLbl;
|
||||
QPushButton *fkbEnaBtn;
|
||||
|
||||
QTimer *updateTimer;
|
||||
|
||||
|
@ -172,6 +173,9 @@ private slots:
|
|||
void mappingSave(void);
|
||||
void mappingSaveAs(void);
|
||||
void toggleTreeView(bool);
|
||||
void SaveCurrentMapping(void);
|
||||
void resetDefaultMapping(void);
|
||||
void toggleFamilyKeyboardEnable(void);
|
||||
void keyTreeResizeDone(void);
|
||||
void keyTreeHeightChange(const QVariant &);
|
||||
void keyTreeItemActivated(QTreeWidgetItem *item, int column);
|
||||
|
|
Loading…
Reference in New Issue