File indexing completed on 2024-05-19 04:07:48

0001 /*
0002     SPDX-FileCopyrightText: 2010 Stefan Majewsky <majewsky@gmx.net>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "triggerconfigwidget.h"
0008 #include "triggerlistview.h"
0009 #include "../engine/interactor.h"
0010 #include "../engine/triggermapper.h"
0011 
0012 #include <KLocalizedString>
0013 
0014 Palapeli::TriggerConfigWidget::TriggerConfigWidget(QWidget* parent)
0015     : QTabWidget(parent)
0016     , m_interactors(Palapeli::TriggerMapper::createInteractors(nullptr)) //these interactors are just for reading metadata
0017     , m_mouseView(new Palapeli::TriggerListView(m_interactors, Palapeli::MouseInteractor, this))
0018     , m_wheelView(new Palapeli::TriggerListView(m_interactors, Palapeli::WheelInteractor, this))
0019 {
0020     addTab(m_mouseView, i18n("Mouse Buttons"));
0021     addTab(m_wheelView, i18n("Mouse Wheel"));
0022     connect(m_mouseView, &Palapeli::TriggerListView::associationsChanged, this, &TriggerConfigWidget::associationsChanged);
0023     connect(m_wheelView, &Palapeli::TriggerListView::associationsChanged, this, &TriggerConfigWidget::associationsChanged);
0024 }
0025 
0026 Palapeli::TriggerConfigWidget::~TriggerConfigWidget()
0027 {
0028     qDeleteAll(m_interactors);
0029 }
0030 
0031 bool Palapeli::TriggerConfigWidget::hasChanged() const
0032 {
0033     QMap<QByteArray, Palapeli::Trigger> associations;
0034     m_mouseView->getAssociations(associations);
0035     m_wheelView->getAssociations(associations);
0036     return associations != Palapeli::TriggerMapper::instance()->associations();
0037 }
0038 
0039 bool Palapeli::TriggerConfigWidget::isDefault() const
0040 {
0041     QMap<QByteArray, Palapeli::Trigger> associations;
0042     m_mouseView->getAssociations(associations);
0043     m_wheelView->getAssociations(associations);
0044     return associations == Palapeli::TriggerMapper::defaultAssociations();
0045 }
0046 
0047 void Palapeli::TriggerConfigWidget::updateSettings()
0048 {
0049     QMap<QByteArray, Palapeli::Trigger> associations;
0050     m_mouseView->getAssociations(associations);
0051     m_wheelView->getAssociations(associations);
0052     Palapeli::TriggerMapper::instance()->setAssociations(associations);
0053 }
0054 
0055 void Palapeli::TriggerConfigWidget::updateWidgets()
0056 {
0057     const QMap<QByteArray, Palapeli::Trigger> associations = Palapeli::TriggerMapper::instance()->associations();
0058     m_mouseView->setAssociations(associations);
0059     m_wheelView->setAssociations(associations);
0060     Q_EMIT associationsChanged();
0061 }
0062 
0063 void Palapeli::TriggerConfigWidget::updateWidgetsDefault()
0064 {
0065     const QMap<QByteArray, Palapeli::Trigger> associations = Palapeli::TriggerMapper::defaultAssociations();
0066     m_mouseView->setAssociations(associations);
0067     m_wheelView->setAssociations(associations);
0068     Q_EMIT associationsChanged();
0069 }
0070 
0071 #include "moc_triggerconfigwidget.cpp"