Replace all uses of QSignalMapper with lambda expressions

This commit is contained in:
Jonas Kvinge
2019-07-08 22:27:45 +02:00
parent f3e852c042
commit 8ebcb71e6e
13 changed files with 70 additions and 102 deletions

View File

@@ -23,13 +23,12 @@
#include <QWidget>
#include <QVariant>
#include <QString>
#include <QMenu>
#include <QAction>
#include <QActionGroup>
#include <QTimer>
#include <QBoxLayout>
#include <QLayout>
#include <QSignalMapper>
#include <QMenu>
#include <QAction>
#include <QActionGroup>
#include <QSettings>
#include <QtEvents>
#include <QtDebug>
@@ -60,8 +59,6 @@ AnalyzerContainer::AnalyzerContainer(QWidget *parent)
context_menu_framerate_(new QMenu(tr("Framerate"), this)),
group_(new QActionGroup(this)),
group_framerate_(new QActionGroup(this)),
mapper_(new QSignalMapper(this)),
mapper_framerate_(new QSignalMapper(this)),
visualisation_action_(nullptr),
double_click_timer_(new QTimer(this)),
ignore_next_click_(false),
@@ -77,7 +74,6 @@ AnalyzerContainer::AnalyzerContainer(QWidget *parent)
AddFramerate(tr("Medium (%1 fps)").arg(kMediumFramerate), kMediumFramerate);
AddFramerate(tr("High (%1 fps)").arg(kHighFramerate), kHighFramerate);
AddFramerate(tr("Super high (%1 fps)").arg(kSuperHighFramerate), kSuperHighFramerate);
connect(mapper_framerate_, SIGNAL(mapped(int)), SLOT(ChangeFramerate(int)));
context_menu_->addMenu(context_menu_framerate_);
context_menu_->addSeparator();
@@ -87,7 +83,6 @@ AnalyzerContainer::AnalyzerContainer(QWidget *parent)
AddAnalyzerType<Rainbow::NyanCatAnalyzer>();
AddAnalyzerType<Rainbow::RainbowDashAnalyzer>();
connect(mapper_, SIGNAL(mapped(int)), SLOT(ChangeAnalyzer(int)));
disable_action_ = context_menu_->addAction(tr("No analyzer"), this, SLOT(DisableAnalyzer()));
disable_action_->setCheckable(true);
group_->addAction(disable_action_);
@@ -250,10 +245,10 @@ void AnalyzerContainer::Save() {
void AnalyzerContainer::AddFramerate(const QString& name, int framerate) {
QAction *action = context_menu_framerate_->addAction(name, mapper_framerate_, SLOT(map()));
mapper_framerate_->setMapping(action, framerate);
QAction *action = context_menu_framerate_->addAction(name);
group_framerate_->addAction(action);
framerate_list_ << framerate;
action->setCheckable(true);
connect(action, &QAction::triggered, [this, framerate]() { ChangeFramerate(framerate); } );
}

View File

@@ -24,7 +24,6 @@
#include <stdbool.h>
#include <QObject>
#include <QWidget>
#include <QList>
#include <QString>
@@ -32,12 +31,10 @@
#include <QMenu>
#include <QAction>
#include <QActionGroup>
#include <QSignalMapper>
#include <QTimer>
#include <QtEvents>
#include "engine/engine_fwd.h"
class QTimer;
class QMouseEvent;
class QWheelEvent;
@@ -90,8 +87,6 @@ signals:
QMenu *context_menu_framerate_;
QActionGroup *group_;
QActionGroup *group_framerate_;
QSignalMapper *mapper_;
QSignalMapper *mapper_framerate_;
QList<const QMetaObject*> analyzer_types_;
QList<int> framerate_list_;
@@ -110,14 +105,16 @@ signals:
template <typename T>
void AnalyzerContainer::AddAnalyzerType() {
int id = analyzer_types_.count();
analyzer_types_ << &T::staticMetaObject;
QAction *action = context_menu_->addAction(tr(T::kName), mapper_, SLOT(map()));
QAction *action = context_menu_->addAction(tr(T::kName));
group_->addAction(action);
mapper_->setMapping(action, id);
action->setCheckable(true);
actions_ << action;
connect(action, &QAction::triggered, [this, id]() { ChangeAnalyzer(id); } );
}
#endif // ANALYZERCONTAINER_H