Add UI to configure keyboard-to-controller mapping (#308)

* Add UI to configure keyboard-to-controller mapping

* Add an optional "---fix" argument to format-checking script

* clang fix

---------

Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
This commit is contained in:
Vasyl_Baran 2024-09-11 08:51:18 +03:00 committed by GitHub
parent 74c2888aaa
commit fdb13a3b90
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
18 changed files with 1436 additions and 173 deletions

View file

@ -50,6 +50,7 @@ bool MainWindow::Init() {
auto end = std::chrono::steady_clock::now();
auto duration = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
statusBar.reset(new QStatusBar);
m_controllerControlsDialog.reset(new KeyboardControlsWindow());
this->setStatusBar(statusBar.data());
// Update status bar
int numGames = m_game_info->m_games.size();
@ -90,6 +91,9 @@ void MainWindow::AddUiWidgets() {
ui->toolBar->addWidget(ui->stopButton);
ui->toolBar->addWidget(ui->refreshButton);
ui->toolBar->addWidget(ui->settingsButton);
auto connection = QObject::connect(ui->controllerButton, &QPushButton::clicked, this,
&MainWindow::ControllerConfigurationButtonPressed);
ui->toolBar->addWidget(ui->controllerButton);
QFrame* line = new QFrame(this);
line->setFrameShape(QFrame::StyledPanel);
@ -99,6 +103,10 @@ void MainWindow::AddUiWidgets() {
ui->toolBar->addWidget(ui->mw_searchbar);
}
void MainWindow::ControllerConfigurationButtonPressed() {
m_controllerControlsDialog->show();
}
void MainWindow::CreateDockWindows() {
// place holder widget is needed for good health they say :)
QWidget* phCentralWidget = new QWidget(this);
@ -781,6 +789,10 @@ void MainWindow::InstallDirectory() {
RefreshGameTable();
}
std::map<u32, KeysMapping> MainWindow::getKeysMapping() {
return m_controllerControlsDialog->getKeysMapping();
}
void MainWindow::SetLastUsedTheme() {
Theme lastTheme = static_cast<Theme>(Config::getMainWindowTheme());
m_window_themes.SetWindowTheme(lastTheme, ui->mw_searchbar);