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

@@ -32,22 +32,22 @@
#include <QHash>
#include <QString>
#include <QIcon>
#include <QMenu>
#include <QPainter>
#include <QColor>
#include <QRect>
#include <QFont>
#include <QSignalMapper>
#include <QStylePainter>
#include <QTimer>
#include <QLayout>
#include <QVBoxLayout>
#include <QMouseEvent>
#include <QSettings>
#include <QSize>
#include <QPoint>
#include <QTransform>
#include <QMenu>
#include <QAction>
#include <QActionGroup>
#include <QSettings>
#include <QMouseEvent>
const QSize FancyTabWidget::IconSize_LargeSidebar = QSize(24, 24);
const QSize FancyTabWidget::IconSize_SmallSidebar = QSize(22, 22);
@@ -536,12 +536,11 @@ void FancyTabWidget::SetMode(FancyTabWidget::Mode mode) {
}
void FancyTabWidget::addMenuItem(QSignalMapper* mapper, QActionGroup* group, const QString& text, Mode mode) {
void FancyTabWidget::addMenuItem(QActionGroup* group, const QString& text, Mode mode) {
QAction* action = group->addAction(text);
action->setCheckable(true);
mapper->setMapping(action, mode);
connect(action, SIGNAL(triggered()), mapper, SLOT(map()));
connect(action, &QAction::triggered, [this, mode]() { SetMode(mode); } );
if (mode == mode_) action->setChecked(true);
@@ -550,18 +549,14 @@ void FancyTabWidget::addMenuItem(QSignalMapper* mapper, QActionGroup* group, con
void FancyTabWidget::contextMenuEvent(QContextMenuEvent* e) {
if (!menu_) {
menu_ = new QMenu(this);
QSignalMapper* mapper = new QSignalMapper(this);
QActionGroup* group = new QActionGroup(this);
addMenuItem(mapper, group, tr("Large sidebar"), Mode_LargeSidebar);
addMenuItem(mapper, group, tr("Small sidebar"), Mode_SmallSidebar);
addMenuItem(mapper, group, tr("Plain sidebar"), Mode_PlainSidebar);
addMenuItem(mapper, group, tr("Tabs on top"), Mode_Tabs);
addMenuItem(mapper, group, tr("Icons on top"), Mode_IconOnlyTabs);
addMenuItem(group, tr("Large sidebar"), Mode_LargeSidebar);
addMenuItem(group, tr("Small sidebar"), Mode_SmallSidebar);
addMenuItem(group, tr("Plain sidebar"), Mode_PlainSidebar);
addMenuItem(group, tr("Tabs on top"), Mode_Tabs);
addMenuItem(group, tr("Icons on top"), Mode_IconOnlyTabs);
menu_->addActions(group->actions());
connect(mapper, SIGNAL(mapped(int)), SLOT(SetMode(int)));
}
menu_->popup(e->globalPos());

View File

@@ -24,18 +24,16 @@
#include <memory>
#include <QObject>
#include <QTabWidget>
#include <QWidget>
#include <QActionGroup>
#include <QMenu>
#include <QSignalMapper>
#include <QMap>
#include <QString>
#include <QIcon>
#include <QPixmap>
#include <QSize>
#include <QtEvents>
class QMenu;
class QActionGroup;
class TabData;
namespace Core {
@@ -95,7 +93,7 @@ class FancyTabWidget : public QTabWidget {
void paintEvent(QPaintEvent *);
void contextMenuEvent(QContextMenuEvent* e);
private:
void addMenuItem(QSignalMapper* mapper, QActionGroup* group, const QString& text, Mode mode);
void addMenuItem(QActionGroup* group, const QString& text, Mode mode);
QPixmap background_pixmap_;
QMenu* menu_;

View File

@@ -50,7 +50,7 @@ class LoginStateWidget : public QWidget {
public slots:
// Changes the "You are logged in/out" label, shows/hides any QGroupBoxes added with AddCredentialGroup.
void SetLoggedIn(State state, const QString &account_name = QString::null);
void SetLoggedIn(State state, const QString &account_name = QString());
// Hides the "You are logged in/out" label completely.
void HideLoggedInState();

View File

@@ -35,7 +35,6 @@
#include <QPainter>
#include <QPalette>
#include <QBrush>
#include <QSignalMapper>
#include <QTextDocument>
#include <QTimeLine>
#include <QAction>
@@ -101,10 +100,8 @@ PlayingWidget::PlayingWidget(QWidget *parent)
// Context menu
QActionGroup *mode_group = new QActionGroup(this);
QSignalMapper *mode_mapper = new QSignalMapper(this);
connect(mode_mapper, SIGNAL(mapped(int)), SLOT(SetMode(int)));
CreateModeAction(SmallSongDetails, tr("Small album cover"), mode_group, mode_mapper);
CreateModeAction(LargeSongDetails, tr("Large album cover"), mode_group, mode_mapper);
CreateModeAction(SmallSongDetails, tr("Small album cover"), mode_group);
CreateModeAction(LargeSongDetails, tr("Large album cover"), mode_group);
menu_->addActions(mode_group->actions());
fit_cover_width_action_ = menu_->addAction(tr("Fit cover to width"));
@@ -200,12 +197,11 @@ QSize PlayingWidget::sizeHint() const {
return QSize(cover_loader_options_.desired_height_, total_height_);
}
void PlayingWidget::CreateModeAction(Mode mode, const QString &text, QActionGroup *group, QSignalMapper *mapper) {
void PlayingWidget::CreateModeAction(Mode mode, const QString &text, QActionGroup *group) {
QAction *action = new QAction(text, group);
action->setCheckable(true);
mapper->setMapping(action, mode);
connect(action, SIGNAL(triggered()), mapper, SLOT(map()));
connect(action, &QAction::triggered, [this, mode]() { SetMode(mode); } );
if (mode == mode_) action->setChecked(true);
@@ -287,7 +283,7 @@ void PlayingWidget::SetImage(const QImage &image) {
QSize psize(size());
if (size().height() <= 0) psize.setHeight(total_height_);
pixmap_previous_track_ = QPixmap(psize);
pixmap_previous_track_.fill(palette().background().color());
pixmap_previous_track_.fill(palette().window().color());
pixmap_previous_track_opacity_ = 1.0;
QPainter p(&pixmap_previous_track_);
DrawContents(&p);

View File

@@ -31,24 +31,24 @@
#include <QObject>
#include <QWidget>
#include <QString>
#include <QUrl>
#include <QImage>
#include <QPixmap>
#include <QPainter>
#include <QSize>
#include <QSignalMapper>
#include <QTextDocument>
#include <QTimeLine>
#include <QAction>
#include <QActionGroup>
#include <QMenu>
#include <QMovie>
#include <QtEvents>
#include "core/song.h"
#include "covermanager/albumcoverloaderoptions.h"
using std::unique_ptr;
class QTimeLine;
class QTextDocument;
class QPainter;
class QMenu;
class QAction;
class QActionGroup;
class QContextMenuEvent;
class QDragEnterEvent;
class QDropEvent;
@@ -148,7 +148,7 @@ class PlayingWidget : public QWidget {
std::unique_ptr<QMovie> spinner_animation_;
void SetVisible(bool visible);
void CreateModeAction(Mode mode, const QString &text, QActionGroup *group, QSignalMapper *mapper);
void CreateModeAction(Mode mode, const QString &text, QActionGroup *group);
void UpdateDetailsText();
void UpdateHeight();
void SetImage(const QImage &image);