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 );
|
mainVbox->addLayout( hbox );
|
||||||
|
|
||||||
statLbl = new QLabel();
|
statLbl = new QLabel();
|
||||||
|
fkbEnaBtn = new QPushButton( tr("Enable") );
|
||||||
closeButton = new QPushButton( tr("Close") );
|
closeButton = new QPushButton( tr("Close") );
|
||||||
closeButton->setIcon(style()->standardIcon(QStyle::SP_DialogCloseButton));
|
closeButton->setIcon(style()->standardIcon(QStyle::SP_DialogCloseButton));
|
||||||
closeButton->setAutoDefault(false);
|
closeButton->setAutoDefault(false);
|
||||||
|
|
||||||
|
hbox->addWidget(fkbEnaBtn, 1);
|
||||||
hbox->addWidget(statLbl, 3);
|
hbox->addWidget(statLbl, 3);
|
||||||
hbox->addStretch(5);
|
hbox->addStretch(5);
|
||||||
hbox->addWidget( closeButton, 1);
|
hbox->addWidget( closeButton, 1);
|
||||||
|
@ -660,6 +662,7 @@ FKBConfigDialog::FKBConfigDialog(QWidget *parent)
|
||||||
connect( keyTreeHgtAnimation, SIGNAL(finished(void)), this, SLOT(keyTreeResizeDone(void)) );
|
connect( keyTreeHgtAnimation, SIGNAL(finished(void)), this, SLOT(keyTreeResizeDone(void)) );
|
||||||
|
|
||||||
connect(closeButton , SIGNAL(clicked(void)), this, SLOT(closeWindow(void)));
|
connect(closeButton , SIGNAL(clicked(void)), this, SLOT(closeWindow(void)));
|
||||||
|
connect(fkbEnaBtn , SIGNAL(clicked(void)), this, SLOT(toggleFamilyKeyboardEnable(void)) );
|
||||||
|
|
||||||
updateTimer = new QTimer(this);
|
updateTimer = new QTimer(this);
|
||||||
|
|
||||||
|
@ -683,6 +686,60 @@ FKBConfigDialog::~FKBConfigDialog(void)
|
||||||
|
|
||||||
// Save Window Geometry
|
// Save Window Geometry
|
||||||
settings.setValue("familyKeyboard/geometry", saveGeometry());
|
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)
|
QMenuBar *FKBConfigDialog::buildMenuBar(void)
|
||||||
|
@ -750,6 +807,16 @@ QMenuBar *FKBConfigDialog::buildMenuBar(void)
|
||||||
|
|
||||||
confMenu->addAction(act);
|
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
|
// View
|
||||||
viewMenu = menuBar->addMenu(tr("View"));
|
viewMenu = menuBar->addMenu(tr("View"));
|
||||||
|
|
||||||
|
@ -861,13 +928,53 @@ void FKBConfigDialog::updateStatusLabel(void)
|
||||||
if ( fkbActv )
|
if ( fkbActv )
|
||||||
{
|
{
|
||||||
statLbl->setText( tr("Family Keyboard is Enabled") );
|
statLbl->setText( tr("Family Keyboard is Enabled") );
|
||||||
|
fkbEnaBtn->setText( tr("Disable") );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
statLbl->setText( tr("Family Keyboard is Disabled") );
|
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)
|
void FKBConfigDialog::closeEvent(QCloseEvent *event)
|
||||||
{
|
{
|
||||||
printf("FKB Config Close Window Event\n");
|
printf("FKB Config Close Window Event\n");
|
||||||
|
|
|
@ -149,6 +149,7 @@ protected:
|
||||||
QTreeWidget *keyTree;
|
QTreeWidget *keyTree;
|
||||||
|
|
||||||
QLabel *statLbl;
|
QLabel *statLbl;
|
||||||
|
QPushButton *fkbEnaBtn;
|
||||||
|
|
||||||
QTimer *updateTimer;
|
QTimer *updateTimer;
|
||||||
|
|
||||||
|
@ -172,6 +173,9 @@ private slots:
|
||||||
void mappingSave(void);
|
void mappingSave(void);
|
||||||
void mappingSaveAs(void);
|
void mappingSaveAs(void);
|
||||||
void toggleTreeView(bool);
|
void toggleTreeView(bool);
|
||||||
|
void SaveCurrentMapping(void);
|
||||||
|
void resetDefaultMapping(void);
|
||||||
|
void toggleFamilyKeyboardEnable(void);
|
||||||
void keyTreeResizeDone(void);
|
void keyTreeResizeDone(void);
|
||||||
void keyTreeHeightChange(const QVariant &);
|
void keyTreeHeightChange(const QVariant &);
|
||||||
void keyTreeItemActivated(QTreeWidgetItem *item, int column);
|
void keyTreeItemActivated(QTreeWidgetItem *item, int column);
|
||||||
|
|
Loading…
Reference in New Issue