Merge pull request #6439 from jonaski/signalmapper
Replace all uses of QSignalMapper with C++11 lambda expressions
This commit is contained in:
commit
b7c3173001
@ -51,8 +51,6 @@ AnalyzerContainer::AnalyzerContainer(QWidget* parent)
|
|||||||
context_menu_framerate_(new QMenu(tr("Framerate"), this)),
|
context_menu_framerate_(new QMenu(tr("Framerate"), this)),
|
||||||
group_(new QActionGroup(this)),
|
group_(new QActionGroup(this)),
|
||||||
group_framerate_(new QActionGroup(this)),
|
group_framerate_(new QActionGroup(this)),
|
||||||
mapper_(new QSignalMapper(this)),
|
|
||||||
mapper_framerate_(new QSignalMapper(this)),
|
|
||||||
visualisation_action_(nullptr),
|
visualisation_action_(nullptr),
|
||||||
double_click_timer_(new QTimer(this)),
|
double_click_timer_(new QTimer(this)),
|
||||||
ignore_next_click_(false),
|
ignore_next_click_(false),
|
||||||
@ -69,7 +67,6 @@ AnalyzerContainer::AnalyzerContainer(QWidget* parent)
|
|||||||
AddFramerate(tr("High (%1 fps)").arg(kHighFramerate), kHighFramerate);
|
AddFramerate(tr("High (%1 fps)").arg(kHighFramerate), kHighFramerate);
|
||||||
AddFramerate(tr("Super high (%1 fps)").arg(kSuperHighFramerate),
|
AddFramerate(tr("Super high (%1 fps)").arg(kSuperHighFramerate),
|
||||||
kSuperHighFramerate);
|
kSuperHighFramerate);
|
||||||
connect(mapper_framerate_, SIGNAL(mapped(int)), SLOT(ChangeFramerate(int)));
|
|
||||||
|
|
||||||
context_menu_->addMenu(context_menu_framerate_);
|
context_menu_->addMenu(context_menu_framerate_);
|
||||||
context_menu_->addSeparator();
|
context_menu_->addSeparator();
|
||||||
@ -82,7 +79,6 @@ AnalyzerContainer::AnalyzerContainer(QWidget* parent)
|
|||||||
AddAnalyzerType<Rainbow::NyanCatAnalyzer>();
|
AddAnalyzerType<Rainbow::NyanCatAnalyzer>();
|
||||||
AddAnalyzerType<Rainbow::RainbowDashAnalyzer>();
|
AddAnalyzerType<Rainbow::RainbowDashAnalyzer>();
|
||||||
|
|
||||||
connect(mapper_, SIGNAL(mapped(int)), SLOT(ChangeAnalyzer(int)));
|
|
||||||
disable_action_ = context_menu_->addAction(tr("No analyzer"), this,
|
disable_action_ = context_menu_->addAction(tr("No analyzer"), this,
|
||||||
SLOT(DisableAnalyzer()));
|
SLOT(DisableAnalyzer()));
|
||||||
disable_action_->setCheckable(true);
|
disable_action_->setCheckable(true);
|
||||||
@ -254,11 +250,10 @@ void AnalyzerContainer::SavePsychedelic() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void AnalyzerContainer::AddFramerate(const QString& name, int framerate) {
|
void AnalyzerContainer::AddFramerate(const QString& name, int framerate) {
|
||||||
QAction* action =
|
QAction* action = context_menu_framerate_->addAction(name);
|
||||||
context_menu_framerate_->addAction(name, mapper_framerate_, SLOT(map()));
|
|
||||||
mapper_framerate_->setMapping(action, framerate);
|
|
||||||
group_framerate_->addAction(action);
|
group_framerate_->addAction(action);
|
||||||
framerate_list_ << framerate;
|
framerate_list_ << framerate;
|
||||||
action->setCheckable(true);
|
action->setCheckable(true);
|
||||||
|
connect(action, &QAction::triggered,
|
||||||
|
[this, framerate]() { ChangeFramerate(framerate); });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,7 +25,6 @@
|
|||||||
|
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
#include <QSignalMapper>
|
|
||||||
|
|
||||||
#include "analyzerbase.h"
|
#include "analyzerbase.h"
|
||||||
#include "engines/engine_fwd.h"
|
#include "engines/engine_fwd.h"
|
||||||
@ -76,8 +75,6 @@ signals:
|
|||||||
QMenu* context_menu_framerate_;
|
QMenu* context_menu_framerate_;
|
||||||
QActionGroup* group_;
|
QActionGroup* group_;
|
||||||
QActionGroup* group_framerate_;
|
QActionGroup* group_framerate_;
|
||||||
QSignalMapper* mapper_;
|
|
||||||
QSignalMapper* mapper_framerate_;
|
|
||||||
|
|
||||||
QList<const QMetaObject*> analyzer_types_;
|
QList<const QMetaObject*> analyzer_types_;
|
||||||
QList<int> framerate_list_;
|
QList<int> framerate_list_;
|
||||||
@ -99,12 +96,11 @@ template <typename T>
|
|||||||
void AnalyzerContainer::AddAnalyzerType() {
|
void AnalyzerContainer::AddAnalyzerType() {
|
||||||
int id = analyzer_types_.count();
|
int id = analyzer_types_.count();
|
||||||
analyzer_types_ << &T::staticMetaObject;
|
analyzer_types_ << &T::staticMetaObject;
|
||||||
QAction* action =
|
QAction* action = context_menu_->addAction(tr(T::kName));
|
||||||
context_menu_->addAction(tr(T::kName), mapper_, SLOT(map()));
|
|
||||||
group_->addAction(action);
|
group_->addAction(action);
|
||||||
mapper_->setMapping(action, id);
|
|
||||||
action->setCheckable(true);
|
action->setCheckable(true);
|
||||||
actions_ << action;
|
actions_ << action;
|
||||||
|
connect(action, &QAction::triggered, [this, id]() { ChangeAnalyzer(id); });
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // ANALYZERS_ANALYZERCONTAINER_H_
|
#endif // ANALYZERS_ANALYZERCONTAINER_H_
|
||||||
|
@ -29,7 +29,6 @@
|
|||||||
|
|
||||||
#include <QAction>
|
#include <QAction>
|
||||||
#include <QShortcut>
|
#include <QShortcut>
|
||||||
#include <QSignalMapper>
|
|
||||||
#include <QtDebug>
|
#include <QtDebug>
|
||||||
|
|
||||||
#ifdef HAVE_DBUS
|
#ifdef HAVE_DBUS
|
||||||
@ -42,8 +41,7 @@ GlobalShortcuts::GlobalShortcuts(QWidget* parent)
|
|||||||
: QWidget(parent),
|
: QWidget(parent),
|
||||||
gnome_backend_(nullptr),
|
gnome_backend_(nullptr),
|
||||||
system_backend_(nullptr),
|
system_backend_(nullptr),
|
||||||
use_gnome_(false),
|
use_gnome_(false) {
|
||||||
rating_signals_mapper_(new QSignalMapper(this)) {
|
|
||||||
settings_.beginGroup(kSettingsGroup);
|
settings_.beginGroup(kSettingsGroup);
|
||||||
|
|
||||||
// Create actions
|
// Create actions
|
||||||
@ -84,21 +82,12 @@ GlobalShortcuts::GlobalShortcuts(QWidget* parent)
|
|||||||
tr("Remove current song from playlist"),
|
tr("Remove current song from playlist"),
|
||||||
SIGNAL(RemoveCurrentSong()));
|
SIGNAL(RemoveCurrentSong()));
|
||||||
|
|
||||||
AddRatingShortcut("rate_zero_star", tr("Rate the current song 0 stars"),
|
AddRatingShortcut("rate_zero_star", tr("Rate the current song 0 stars"), 0);
|
||||||
rating_signals_mapper_, 0);
|
AddRatingShortcut("rate_one_star", tr("Rate the current song 1 star"), 1);
|
||||||
AddRatingShortcut("rate_one_star", tr("Rate the current song 1 star"),
|
AddRatingShortcut("rate_two_star", tr("Rate the current song 2 stars"), 2);
|
||||||
rating_signals_mapper_, 1);
|
AddRatingShortcut("rate_three_star", tr("Rate the current song 3 stars"), 3);
|
||||||
AddRatingShortcut("rate_two_star", tr("Rate the current song 2 stars"),
|
AddRatingShortcut("rate_four_star", tr("Rate the current song 4 stars"), 4);
|
||||||
rating_signals_mapper_, 2);
|
AddRatingShortcut("rate_five_star", tr("Rate the current song 5 stars"), 5);
|
||||||
AddRatingShortcut("rate_three_star", tr("Rate the current song 3 stars"),
|
|
||||||
rating_signals_mapper_, 3);
|
|
||||||
AddRatingShortcut("rate_four_star", tr("Rate the current song 4 stars"),
|
|
||||||
rating_signals_mapper_, 4);
|
|
||||||
AddRatingShortcut("rate_five_star", tr("Rate the current song 5 stars"),
|
|
||||||
rating_signals_mapper_, 5);
|
|
||||||
|
|
||||||
connect(rating_signals_mapper_, SIGNAL(mapped(int)),
|
|
||||||
SIGNAL(RateCurrentSong(int)));
|
|
||||||
|
|
||||||
// Create backends - these do the actual shortcut registration
|
// Create backends - these do the actual shortcut registration
|
||||||
gnome_backend_ = new GnomeGlobalShortcutBackend(this);
|
gnome_backend_ = new GnomeGlobalShortcutBackend(this);
|
||||||
@ -120,11 +109,11 @@ void GlobalShortcuts::AddShortcut(const QString& id, const QString& name,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void GlobalShortcuts::AddRatingShortcut(const QString& id, const QString& name,
|
void GlobalShortcuts::AddRatingShortcut(const QString& id, const QString& name,
|
||||||
QSignalMapper* mapper, int rating,
|
int rating,
|
||||||
const QKeySequence& default_key) {
|
const QKeySequence& default_key) {
|
||||||
Shortcut shortcut = AddShortcut(id, name, default_key);
|
Shortcut shortcut = AddShortcut(id, name, default_key);
|
||||||
connect(shortcut.action, SIGNAL(triggered()), mapper, SLOT(map()));
|
connect(shortcut.action, &QAction::triggered,
|
||||||
mapper->setMapping(shortcut.action, rating);
|
[this, rating]() { RateCurrentSong(rating); });
|
||||||
}
|
}
|
||||||
|
|
||||||
GlobalShortcuts::Shortcut GlobalShortcuts::AddShortcut(
|
GlobalShortcuts::Shortcut GlobalShortcuts::AddShortcut(
|
||||||
|
@ -32,7 +32,6 @@ class QAction;
|
|||||||
class QShortcut;
|
class QShortcut;
|
||||||
|
|
||||||
class GlobalShortcutBackend;
|
class GlobalShortcutBackend;
|
||||||
class QSignalMapper;
|
|
||||||
|
|
||||||
class GlobalShortcuts : public QWidget {
|
class GlobalShortcuts : public QWidget {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@ -87,8 +86,7 @@ signals:
|
|||||||
private:
|
private:
|
||||||
void AddShortcut(const QString& id, const QString& name, const char* signal,
|
void AddShortcut(const QString& id, const QString& name, const char* signal,
|
||||||
const QKeySequence& default_key = QKeySequence(0));
|
const QKeySequence& default_key = QKeySequence(0));
|
||||||
void AddRatingShortcut(const QString& id, const QString& name,
|
void AddRatingShortcut(const QString& id, const QString& name, int rating,
|
||||||
QSignalMapper* mapper, int rating,
|
|
||||||
const QKeySequence& default_key = QKeySequence(0));
|
const QKeySequence& default_key = QKeySequence(0));
|
||||||
Shortcut AddShortcut(const QString& id, const QString& name,
|
Shortcut AddShortcut(const QString& id, const QString& name,
|
||||||
const QKeySequence& default_key);
|
const QKeySequence& default_key);
|
||||||
@ -101,7 +99,6 @@ signals:
|
|||||||
QSettings settings_;
|
QSettings settings_;
|
||||||
|
|
||||||
bool use_gnome_;
|
bool use_gnome_;
|
||||||
QSignalMapper* rating_signals_mapper_;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CORE_GLOBALSHORTCUTS_H_
|
#endif // CORE_GLOBALSHORTCUTS_H_
|
||||||
|
@ -22,7 +22,6 @@
|
|||||||
#include <QKeyEvent>
|
#include <QKeyEvent>
|
||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QSignalMapper>
|
|
||||||
|
|
||||||
#include "icecastmodel.h"
|
#include "icecastmodel.h"
|
||||||
#include "ui_icecastfilterwidget.h"
|
#include "ui_icecastfilterwidget.h"
|
||||||
@ -33,8 +32,7 @@ const char* IcecastFilterWidget::kSettingsGroup = "Icecast";
|
|||||||
IcecastFilterWidget::IcecastFilterWidget(QWidget* parent)
|
IcecastFilterWidget::IcecastFilterWidget(QWidget* parent)
|
||||||
: QWidget(parent),
|
: QWidget(parent),
|
||||||
ui_(new Ui_IcecastFilterWidget),
|
ui_(new Ui_IcecastFilterWidget),
|
||||||
menu_(new QMenu(tr("Display options"), this)),
|
menu_(new QMenu(tr("Display options"), this)) {
|
||||||
sort_mode_mapper_(new QSignalMapper(this)) {
|
|
||||||
ui_->setupUi(this);
|
ui_->setupUi(this);
|
||||||
|
|
||||||
// Icons
|
// Icons
|
||||||
@ -53,15 +51,13 @@ IcecastFilterWidget::IcecastFilterWidget(QWidget* parent)
|
|||||||
menu_->setIcon(ui_->options->icon());
|
menu_->setIcon(ui_->options->icon());
|
||||||
menu_->addActions(group->actions());
|
menu_->addActions(group->actions());
|
||||||
ui_->options->setMenu(menu_);
|
ui_->options->setMenu(menu_);
|
||||||
|
|
||||||
connect(sort_mode_mapper_, SIGNAL(mapped(int)), SLOT(SortModeChanged(int)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void IcecastFilterWidget::AddAction(QActionGroup* group, QAction* action,
|
void IcecastFilterWidget::AddAction(QActionGroup* group, QAction* action,
|
||||||
IcecastModel::SortMode mode) {
|
IcecastModel::SortMode mode) {
|
||||||
group->addAction(action);
|
group->addAction(action);
|
||||||
sort_mode_mapper_->setMapping(action, mode);
|
connect(action, &QAction::triggered,
|
||||||
connect(action, SIGNAL(triggered()), sort_mode_mapper_, SLOT(map()));
|
[this, mode]() { SortModeChanged(mode); });
|
||||||
}
|
}
|
||||||
|
|
||||||
IcecastFilterWidget::~IcecastFilterWidget() { delete ui_; }
|
IcecastFilterWidget::~IcecastFilterWidget() { delete ui_; }
|
||||||
|
@ -29,7 +29,6 @@ class Ui_IcecastFilterWidget;
|
|||||||
|
|
||||||
class QActionGroup;
|
class QActionGroup;
|
||||||
class QMenu;
|
class QMenu;
|
||||||
class QSignalMapper;
|
|
||||||
|
|
||||||
class IcecastFilterWidget : public QWidget {
|
class IcecastFilterWidget : public QWidget {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@ -58,8 +57,6 @@ class IcecastFilterWidget : public QWidget {
|
|||||||
Ui_IcecastFilterWidget* ui_;
|
Ui_IcecastFilterWidget* ui_;
|
||||||
IcecastModel* model_;
|
IcecastModel* model_;
|
||||||
QMenu* menu_;
|
QMenu* menu_;
|
||||||
|
|
||||||
QSignalMapper* sort_mode_mapper_;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // INTERNET_ICECAST_ICECASTFILTERWIDGET_H_
|
#endif // INTERNET_ICECAST_ICECASTFILTERWIDGET_H_
|
||||||
|
@ -30,7 +30,6 @@
|
|||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
#include <QRegExp>
|
#include <QRegExp>
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QSignalMapper>
|
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
|
|
||||||
LibraryFilterWidget::LibraryFilterWidget(QWidget* parent)
|
LibraryFilterWidget::LibraryFilterWidget(QWidget* parent)
|
||||||
@ -72,27 +71,12 @@ LibraryFilterWidget::LibraryFilterWidget(QWidget* parent)
|
|||||||
filter_age_menu_ = new QMenu(tr("Show"), this);
|
filter_age_menu_ = new QMenu(tr("Show"), this);
|
||||||
filter_age_menu_->addActions(filter_age_group->actions());
|
filter_age_menu_->addActions(filter_age_group->actions());
|
||||||
|
|
||||||
filter_age_mapper_ = new QSignalMapper(this);
|
filter_ages_[ui_->filter_age_all] = -1;
|
||||||
filter_age_mapper_->setMapping(ui_->filter_age_all, -1);
|
filter_ages_[ui_->filter_age_today] = 60 * 60 * 24;
|
||||||
filter_age_mapper_->setMapping(ui_->filter_age_today, 60 * 60 * 24);
|
filter_ages_[ui_->filter_age_week] = 60 * 60 * 24 * 7;
|
||||||
filter_age_mapper_->setMapping(ui_->filter_age_week, 60 * 60 * 24 * 7);
|
filter_ages_[ui_->filter_age_month] = 60 * 60 * 24 * 30;
|
||||||
filter_age_mapper_->setMapping(ui_->filter_age_month, 60 * 60 * 24 * 30);
|
filter_ages_[ui_->filter_age_three_months] = 60 * 60 * 24 * 30 * 3;
|
||||||
filter_age_mapper_->setMapping(ui_->filter_age_three_months,
|
filter_ages_[ui_->filter_age_year] = 60 * 60 * 24 * 365;
|
||||||
60 * 60 * 24 * 30 * 3);
|
|
||||||
filter_age_mapper_->setMapping(ui_->filter_age_year, 60 * 60 * 24 * 365);
|
|
||||||
|
|
||||||
connect(ui_->filter_age_all, SIGNAL(triggered()), filter_age_mapper_,
|
|
||||||
SLOT(map()));
|
|
||||||
connect(ui_->filter_age_today, SIGNAL(triggered()), filter_age_mapper_,
|
|
||||||
SLOT(map()));
|
|
||||||
connect(ui_->filter_age_week, SIGNAL(triggered()), filter_age_mapper_,
|
|
||||||
SLOT(map()));
|
|
||||||
connect(ui_->filter_age_month, SIGNAL(triggered()), filter_age_mapper_,
|
|
||||||
SLOT(map()));
|
|
||||||
connect(ui_->filter_age_three_months, SIGNAL(triggered()), filter_age_mapper_,
|
|
||||||
SLOT(map()));
|
|
||||||
connect(ui_->filter_age_year, SIGNAL(triggered()), filter_age_mapper_,
|
|
||||||
SLOT(map()));
|
|
||||||
|
|
||||||
// "Group by ..."
|
// "Group by ..."
|
||||||
group_by_group_ = CreateGroupByActions(this);
|
group_by_group_ = CreateGroupByActions(this);
|
||||||
@ -236,7 +220,6 @@ void LibraryFilterWidget::SetLibraryModel(LibraryModel* model) {
|
|||||||
disconnect(model_, 0, this, 0);
|
disconnect(model_, 0, this, 0);
|
||||||
disconnect(model_, 0, group_by_dialog_.get(), 0);
|
disconnect(model_, 0, group_by_dialog_.get(), 0);
|
||||||
disconnect(group_by_dialog_.get(), 0, model_, 0);
|
disconnect(group_by_dialog_.get(), 0, model_, 0);
|
||||||
disconnect(filter_age_mapper_, 0, model_, 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
model_ = model;
|
model_ = model;
|
||||||
@ -249,8 +232,12 @@ void LibraryFilterWidget::SetLibraryModel(LibraryModel* model) {
|
|||||||
SLOT(GroupingChanged(LibraryModel::Grouping)));
|
SLOT(GroupingChanged(LibraryModel::Grouping)));
|
||||||
connect(group_by_dialog_.get(), SIGNAL(Accepted(LibraryModel::Grouping)),
|
connect(group_by_dialog_.get(), SIGNAL(Accepted(LibraryModel::Grouping)),
|
||||||
model_, SLOT(SetGroupBy(LibraryModel::Grouping)));
|
model_, SLOT(SetGroupBy(LibraryModel::Grouping)));
|
||||||
connect(filter_age_mapper_, SIGNAL(mapped(int)), model_,
|
|
||||||
SLOT(SetFilterAge(int)));
|
for (QAction* action : filter_ages_.keys()) {
|
||||||
|
int age = filter_ages_[action];
|
||||||
|
connect(action, &QAction::triggered,
|
||||||
|
[this, age]() { model_->SetFilterAge(age); });
|
||||||
|
}
|
||||||
|
|
||||||
// Load settings
|
// Load settings
|
||||||
if (!settings_group_.isEmpty()) {
|
if (!settings_group_.isEmpty()) {
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
|
#include <QMap>
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
|
||||||
#include "librarymodel.h"
|
#include "librarymodel.h"
|
||||||
@ -33,7 +34,6 @@ struct QueryOptions;
|
|||||||
|
|
||||||
class QMenu;
|
class QMenu;
|
||||||
class QActionGroup;
|
class QActionGroup;
|
||||||
class QSignalMapper;
|
|
||||||
|
|
||||||
class LibraryFilterWidget : public QWidget {
|
class LibraryFilterWidget : public QWidget {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@ -109,7 +109,7 @@ signals:
|
|||||||
QMenu* group_by_menu_;
|
QMenu* group_by_menu_;
|
||||||
QMenu* library_menu_;
|
QMenu* library_menu_;
|
||||||
QActionGroup* group_by_group_;
|
QActionGroup* group_by_group_;
|
||||||
QSignalMapper* filter_age_mapper_;
|
QMap<QAction*, int> filter_ages_;
|
||||||
|
|
||||||
QTimer* filter_delay_;
|
QTimer* filter_delay_;
|
||||||
|
|
||||||
|
@ -22,14 +22,12 @@
|
|||||||
#include <QContextMenuEvent>
|
#include <QContextMenuEvent>
|
||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QSignalMapper>
|
|
||||||
|
|
||||||
PlaylistHeader::PlaylistHeader(Qt::Orientation orientation, PlaylistView* view,
|
PlaylistHeader::PlaylistHeader(Qt::Orientation orientation, PlaylistView* view,
|
||||||
QWidget* parent)
|
QWidget* parent)
|
||||||
: StretchHeaderView(orientation, parent),
|
: StretchHeaderView(orientation, parent),
|
||||||
view_(view),
|
view_(view),
|
||||||
menu_(new QMenu(this)),
|
menu_(new QMenu(this)) {
|
||||||
show_mapper_(new QSignalMapper(this)) {
|
|
||||||
hide_action_ = menu_->addAction(tr("&Hide..."), this, SLOT(HideCurrent()));
|
hide_action_ = menu_->addAction(tr("&Hide..."), this, SLOT(HideCurrent()));
|
||||||
stretch_action_ = menu_->addAction(tr("&Stretch columns to fit window"), this,
|
stretch_action_ = menu_->addAction(tr("&Stretch columns to fit window"), this,
|
||||||
SLOT(ToggleStretchEnabled()));
|
SLOT(ToggleStretchEnabled()));
|
||||||
@ -62,7 +60,6 @@ PlaylistHeader::PlaylistHeader(Qt::Orientation orientation, PlaylistView* view,
|
|||||||
stretch_action_->setCheckable(true);
|
stretch_action_->setCheckable(true);
|
||||||
stretch_action_->setChecked(is_stretch_enabled());
|
stretch_action_->setChecked(is_stretch_enabled());
|
||||||
|
|
||||||
connect(show_mapper_, SIGNAL(mapped(int)), SLOT(ToggleVisible(int)));
|
|
||||||
connect(this, SIGNAL(StretchEnabledChanged(bool)), stretch_action_,
|
connect(this, SIGNAL(StretchEnabledChanged(bool)), stretch_action_,
|
||||||
SLOT(setChecked(bool)));
|
SLOT(setChecked(bool)));
|
||||||
}
|
}
|
||||||
@ -110,12 +107,13 @@ void PlaylistHeader::AddColumnAction(int index) {
|
|||||||
|
|
||||||
QString title(model()->headerData(index, Qt::Horizontal).toString());
|
QString title(model()->headerData(index, Qt::Horizontal).toString());
|
||||||
|
|
||||||
QAction* action = menu_->addAction(title, show_mapper_, SLOT(map()));
|
QAction* action = menu_->addAction(title);
|
||||||
action->setCheckable(true);
|
action->setCheckable(true);
|
||||||
action->setChecked(!isSectionHidden(index));
|
action->setChecked(!isSectionHidden(index));
|
||||||
show_actions_ << action;
|
show_actions_ << action;
|
||||||
|
|
||||||
show_mapper_->setMapping(action, index);
|
connect(action, &QAction::triggered,
|
||||||
|
[this, index]() { ToggleVisible(index); });
|
||||||
}
|
}
|
||||||
|
|
||||||
void PlaylistHeader::HideCurrent() {
|
void PlaylistHeader::HideCurrent() {
|
||||||
|
@ -23,7 +23,6 @@
|
|||||||
class PlaylistView;
|
class PlaylistView;
|
||||||
|
|
||||||
class QMenu;
|
class QMenu;
|
||||||
class QSignalMapper;
|
|
||||||
|
|
||||||
class PlaylistHeader : public StretchHeaderView {
|
class PlaylistHeader : public StretchHeaderView {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@ -63,7 +62,6 @@ signals:
|
|||||||
QAction* align_right_action_;
|
QAction* align_right_action_;
|
||||||
QList<QAction*> show_actions_;
|
QList<QAction*> show_actions_;
|
||||||
|
|
||||||
QSignalMapper* show_mapper_;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // PLAYLISTHEADER_H
|
#endif // PLAYLISTHEADER_H
|
||||||
|
@ -22,7 +22,6 @@
|
|||||||
|
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
#include <QRadioButton>
|
#include <QRadioButton>
|
||||||
#include <QSignalMapper>
|
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
|
|
||||||
namespace smart_playlists {
|
namespace smart_playlists {
|
||||||
@ -57,8 +56,7 @@ Wizard::Wizard(Application* app, LibraryBackend* library, QWidget* parent)
|
|||||||
library_(library),
|
library_(library),
|
||||||
type_page_(new TypePage(this)),
|
type_page_(new TypePage(this)),
|
||||||
finish_page_(new FinishPage(this)),
|
finish_page_(new FinishPage(this)),
|
||||||
type_index_(-1),
|
type_index_(-1) {
|
||||||
type_mapper_(new QSignalMapper(this)) {
|
|
||||||
setWindowIcon(QIcon(":/icon.png"));
|
setWindowIcon(QIcon(":/icon.png"));
|
||||||
setWindowTitle(tr("Smart playlist"));
|
setWindowTitle(tr("Smart playlist"));
|
||||||
resize(788, 628);
|
resize(788, 628);
|
||||||
@ -84,8 +82,6 @@ Wizard::Wizard(Application* app, LibraryBackend* library, QWidget* parent)
|
|||||||
finish_page_->setSubTitle(tr("Choose a name for your smart playlist"));
|
finish_page_->setSubTitle(tr("Choose a name for your smart playlist"));
|
||||||
finish_id_ = addPage(finish_page_);
|
finish_id_ = addPage(finish_page_);
|
||||||
|
|
||||||
connect(type_mapper_, SIGNAL(mapped(int)), SLOT(TypeChanged(int)));
|
|
||||||
|
|
||||||
new QVBoxLayout(type_page_);
|
new QVBoxLayout(type_page_);
|
||||||
AddPlugin(new QueryWizardPlugin(app_, library_, this));
|
AddPlugin(new QueryWizardPlugin(app_, library_, this));
|
||||||
|
|
||||||
@ -125,8 +121,8 @@ void Wizard::AddPlugin(WizardPlugin* plugin) {
|
|||||||
type_page_->layout()->addWidget(radio_button);
|
type_page_->layout()->addWidget(radio_button);
|
||||||
type_page_->layout()->addWidget(description);
|
type_page_->layout()->addWidget(description);
|
||||||
|
|
||||||
type_mapper_->setMapping(radio_button, index);
|
connect(radio_button, &QRadioButton::clicked,
|
||||||
connect(radio_button, SIGNAL(clicked()), type_mapper_, SLOT(map()));
|
[this, index]() { TypeChanged(index); });
|
||||||
|
|
||||||
if (index == 0) {
|
if (index == 0) {
|
||||||
radio_button->setChecked(true);
|
radio_button->setChecked(true);
|
||||||
|
@ -26,8 +26,6 @@ class Application;
|
|||||||
class LibraryBackend;
|
class LibraryBackend;
|
||||||
class Ui_SmartPlaylistWizardFinishPage;
|
class Ui_SmartPlaylistWizardFinishPage;
|
||||||
|
|
||||||
class QSignalMapper;
|
|
||||||
|
|
||||||
namespace smart_playlists {
|
namespace smart_playlists {
|
||||||
|
|
||||||
class WizardPlugin;
|
class WizardPlugin;
|
||||||
@ -63,7 +61,6 @@ class Wizard : public QWizard {
|
|||||||
|
|
||||||
int type_index_;
|
int type_index_;
|
||||||
QList<WizardPlugin*> plugins_;
|
QList<WizardPlugin*> plugins_;
|
||||||
QSignalMapper* type_mapper_;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
@ -19,16 +19,12 @@
|
|||||||
#include "songinfoprovider.h"
|
#include "songinfoprovider.h"
|
||||||
#include "core/logging.h"
|
#include "core/logging.h"
|
||||||
|
|
||||||
#include <QSignalMapper>
|
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
|
|
||||||
SongInfoFetcher::SongInfoFetcher(QObject* parent)
|
SongInfoFetcher::SongInfoFetcher(QObject* parent)
|
||||||
: QObject(parent),
|
: QObject(parent),
|
||||||
timeout_timer_mapper_(new QSignalMapper(this)),
|
|
||||||
timeout_duration_(kDefaultTimeoutDuration),
|
timeout_duration_(kDefaultTimeoutDuration),
|
||||||
next_id_(1) {
|
next_id_(1) {}
|
||||||
connect(timeout_timer_mapper_, SIGNAL(mapped(int)), SLOT(Timeout(int)));
|
|
||||||
}
|
|
||||||
|
|
||||||
void SongInfoFetcher::AddProvider(SongInfoProvider* provider) {
|
void SongInfoFetcher::AddProvider(SongInfoProvider* provider) {
|
||||||
providers_ << provider;
|
providers_ << provider;
|
||||||
@ -49,9 +45,7 @@ int SongInfoFetcher::FetchInfo(const Song& metadata) {
|
|||||||
timeout_timers_[id]->setInterval(timeout_duration_);
|
timeout_timers_[id]->setInterval(timeout_duration_);
|
||||||
timeout_timers_[id]->start();
|
timeout_timers_[id]->start();
|
||||||
|
|
||||||
timeout_timer_mapper_->setMapping(timeout_timers_[id], id);
|
connect(timeout_timers_[id], &QTimer::timeout, [this, id]() { Timeout(id); });
|
||||||
connect(timeout_timers_[id], SIGNAL(timeout()), timeout_timer_mapper_,
|
|
||||||
SLOT(map()));
|
|
||||||
|
|
||||||
for (SongInfoProvider* provider : providers_) {
|
for (SongInfoProvider* provider : providers_) {
|
||||||
if (provider->is_enabled()) {
|
if (provider->is_enabled()) {
|
||||||
|
@ -27,8 +27,6 @@
|
|||||||
|
|
||||||
class SongInfoProvider;
|
class SongInfoProvider;
|
||||||
|
|
||||||
class QSignalMapper;
|
|
||||||
|
|
||||||
class SongInfoFetcher : public QObject {
|
class SongInfoFetcher : public QObject {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
@ -64,7 +62,6 @@ signals:
|
|||||||
QMap<int, QList<SongInfoProvider*> > waiting_for_;
|
QMap<int, QList<SongInfoProvider*> > waiting_for_;
|
||||||
QMap<int, QTimer*> timeout_timers_;
|
QMap<int, QTimer*> timeout_timers_;
|
||||||
|
|
||||||
QSignalMapper* timeout_timer_mapper_;
|
|
||||||
int timeout_duration_;
|
int timeout_duration_;
|
||||||
|
|
||||||
int next_id_;
|
int next_id_;
|
||||||
|
@ -31,7 +31,6 @@
|
|||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QShortcut>
|
#include <QShortcut>
|
||||||
#include <QSignalMapper>
|
|
||||||
#include <QSortFilterProxyModel>
|
#include <QSortFilterProxyModel>
|
||||||
#include <QStatusBar>
|
#include <QStatusBar>
|
||||||
#include <QSystemTrayIcon>
|
#include <QSystemTrayIcon>
|
||||||
|
@ -28,7 +28,6 @@
|
|||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
#include <QResizeEvent>
|
#include <QResizeEvent>
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QSignalMapper>
|
|
||||||
#include <QtConcurrentRun>
|
#include <QtConcurrentRun>
|
||||||
#include <QtDebug>
|
#include <QtDebug>
|
||||||
|
|
||||||
@ -98,13 +97,12 @@ OrganiseDialog::OrganiseDialog(
|
|||||||
|
|
||||||
// Build the insert menu
|
// Build the insert menu
|
||||||
QMenu* tag_menu = new QMenu(this);
|
QMenu* tag_menu = new QMenu(this);
|
||||||
QSignalMapper* tag_mapper = new QSignalMapper(this);
|
|
||||||
for (const QString& title : tag_titles) {
|
for (const QString& title : tag_titles) {
|
||||||
QAction* action = tag_menu->addAction(title, tag_mapper, SLOT(map()));
|
QAction* action = tag_menu->addAction(title);
|
||||||
tag_mapper->setMapping(action, tags[title]);
|
QString tag = tags[title];
|
||||||
|
connect(action, &QAction::triggered, [this, tag]() { InsertTag(tag); });
|
||||||
}
|
}
|
||||||
|
|
||||||
connect(tag_mapper, SIGNAL(mapped(QString)), SLOT(InsertTag(QString)));
|
|
||||||
ui_->insert->setMenu(tag_menu);
|
ui_->insert->setMenu(tag_menu);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,7 +32,6 @@
|
|||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QShortcut>
|
#include <QShortcut>
|
||||||
#include <QSignalMapper>
|
|
||||||
#include <QtDebug>
|
#include <QtDebug>
|
||||||
|
|
||||||
// Framerates
|
// Framerates
|
||||||
@ -102,31 +101,24 @@ void VisualisationContainer::Init() {
|
|||||||
tr("Toggle fullscreen"), this, SLOT(ToggleFullscreen()));
|
tr("Toggle fullscreen"), this, SLOT(ToggleFullscreen()));
|
||||||
|
|
||||||
QMenu* fps_menu = menu_->addMenu(tr("Framerate"));
|
QMenu* fps_menu = menu_->addMenu(tr("Framerate"));
|
||||||
QSignalMapper* fps_mapper = new QSignalMapper(this);
|
|
||||||
QActionGroup* fps_group = new QActionGroup(this);
|
QActionGroup* fps_group = new QActionGroup(this);
|
||||||
AddMenuItem(tr("Low (%1 fps)").arg(kLowFramerate), kLowFramerate, fps_,
|
AddFramerateMenuItem(tr("Low (%1 fps)").arg(kLowFramerate), kLowFramerate,
|
||||||
fps_group, fps_mapper);
|
fps_, fps_group);
|
||||||
AddMenuItem(tr("Medium (%1 fps)").arg(kMediumFramerate), kMediumFramerate,
|
AddFramerateMenuItem(tr("Medium (%1 fps)").arg(kMediumFramerate),
|
||||||
fps_, fps_group, fps_mapper);
|
kMediumFramerate, fps_, fps_group);
|
||||||
AddMenuItem(tr("High (%1 fps)").arg(kHighFramerate), kHighFramerate, fps_,
|
AddFramerateMenuItem(tr("High (%1 fps)").arg(kHighFramerate), kHighFramerate,
|
||||||
fps_group, fps_mapper);
|
fps_, fps_group);
|
||||||
AddMenuItem(tr("Super high (%1 fps)").arg(kSuperHighFramerate),
|
AddFramerateMenuItem(tr("Super high (%1 fps)").arg(kSuperHighFramerate),
|
||||||
kSuperHighFramerate, fps_, fps_group, fps_mapper);
|
kSuperHighFramerate, fps_, fps_group);
|
||||||
fps_menu->addActions(fps_group->actions());
|
fps_menu->addActions(fps_group->actions());
|
||||||
connect(fps_mapper, SIGNAL(mapped(int)), SLOT(SetFps(int)));
|
|
||||||
|
|
||||||
QMenu* quality_menu = menu_->addMenu(tr("Quality", "Visualisation quality"));
|
QMenu* quality_menu = menu_->addMenu(tr("Quality", "Visualisation quality"));
|
||||||
QSignalMapper* quality_mapper = new QSignalMapper(this);
|
|
||||||
QActionGroup* quality_group = new QActionGroup(this);
|
QActionGroup* quality_group = new QActionGroup(this);
|
||||||
AddMenuItem(tr("Low (256x256)"), 256, size_, quality_group, quality_mapper);
|
AddQualityMenuItem(tr("Low (256x256)"), 256, size_, quality_group);
|
||||||
AddMenuItem(tr("Medium (512x512)"), 512, size_, quality_group,
|
AddQualityMenuItem(tr("Medium (512x512)"), 512, size_, quality_group);
|
||||||
quality_mapper);
|
AddQualityMenuItem(tr("High (1024x1024)"), 1024, size_, quality_group);
|
||||||
AddMenuItem(tr("High (1024x1024)"), 1024, size_, quality_group,
|
AddQualityMenuItem(tr("Super high (2048x2048)"), 2048, size_, quality_group);
|
||||||
quality_mapper);
|
|
||||||
AddMenuItem(tr("Super high (2048x2048)"), 2048, size_, quality_group,
|
|
||||||
quality_mapper);
|
|
||||||
quality_menu->addActions(quality_group->actions());
|
quality_menu->addActions(quality_group->actions());
|
||||||
connect(quality_mapper, SIGNAL(mapped(int)), SLOT(SetQuality(int)));
|
|
||||||
|
|
||||||
menu_->addAction(tr("Select visualizations..."), selector_, SLOT(show()));
|
menu_->addAction(tr("Select visualizations..."), selector_, SLOT(show()));
|
||||||
|
|
||||||
@ -135,14 +127,21 @@ void VisualisationContainer::Init() {
|
|||||||
tr("Close visualization"), this, SLOT(hide()));
|
tr("Close visualization"), this, SLOT(hide()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void VisualisationContainer::AddMenuItem(const QString& name, int value,
|
void VisualisationContainer::AddFramerateMenuItem(const QString& name,
|
||||||
int def, QActionGroup* group,
|
int value, int def,
|
||||||
QSignalMapper* mapper) {
|
QActionGroup* group) {
|
||||||
QAction* action = group->addAction(name);
|
QAction* action = group->addAction(name);
|
||||||
action->setCheckable(true);
|
action->setCheckable(true);
|
||||||
action->setChecked(value == def);
|
action->setChecked(value == def);
|
||||||
mapper->setMapping(action, value);
|
connect(action, &QAction::triggered, [this, value]() { SetFps(value); });
|
||||||
connect(action, SIGNAL(triggered()), mapper, SLOT(map()));
|
}
|
||||||
|
|
||||||
|
void VisualisationContainer::AddQualityMenuItem(const QString& name, int value,
|
||||||
|
int def, QActionGroup* group) {
|
||||||
|
QAction* action = group->addAction(name);
|
||||||
|
action->setCheckable(true);
|
||||||
|
action->setChecked(value == def);
|
||||||
|
connect(action, &QAction::triggered, [this, value]() { SetQuality(value); });
|
||||||
}
|
}
|
||||||
|
|
||||||
void VisualisationContainer::SetEngine(GstEngine* engine) {
|
void VisualisationContainer::SetEngine(GstEngine* engine) {
|
||||||
|
@ -29,7 +29,6 @@ class VisualisationOverlay;
|
|||||||
class VisualisationSelector;
|
class VisualisationSelector;
|
||||||
|
|
||||||
class QMenu;
|
class QMenu;
|
||||||
class QSignalMapper;
|
|
||||||
class QActionGroup;
|
class QActionGroup;
|
||||||
|
|
||||||
class VisualisationContainer : public QGraphicsView {
|
class VisualisationContainer : public QGraphicsView {
|
||||||
@ -74,8 +73,10 @@ class VisualisationContainer : public QGraphicsView {
|
|||||||
void Init();
|
void Init();
|
||||||
|
|
||||||
void SizeChanged();
|
void SizeChanged();
|
||||||
void AddMenuItem(const QString& name, int value, int def, QActionGroup* group,
|
void AddFramerateMenuItem(const QString& name, int value, int def,
|
||||||
QSignalMapper* mapper);
|
QActionGroup* group);
|
||||||
|
void AddQualityMenuItem(const QString& name, int value, int def,
|
||||||
|
QActionGroup* group);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void ChangeOverlayOpacity(qreal value);
|
void ChangeOverlayOpacity(qreal value);
|
||||||
|
@ -25,7 +25,6 @@
|
|||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
#include <QMouseEvent>
|
#include <QMouseEvent>
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
#include <QSignalMapper>
|
|
||||||
#include <QTabBar>
|
#include <QTabBar>
|
||||||
#include <QStylePainter>
|
#include <QStylePainter>
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
@ -412,12 +411,11 @@ void FancyTabWidget::SetMode(FancyTabWidget::Mode mode) {
|
|||||||
emit ModeChanged(mode);
|
emit ModeChanged(mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FancyTabWidget::addMenuItem(QSignalMapper* mapper, QActionGroup* group,
|
void FancyTabWidget::addMenuItem(QActionGroup* group, const QString& text,
|
||||||
const QString& text, Mode mode) {
|
Mode mode) {
|
||||||
QAction* action = group->addAction(text);
|
QAction* action = group->addAction(text);
|
||||||
action->setCheckable(true);
|
action->setCheckable(true);
|
||||||
mapper->setMapping(action, mode);
|
connect(action, &QAction::triggered, [this, mode]() { SetMode(mode); });
|
||||||
connect(action, SIGNAL(triggered()), mapper, SLOT(map()));
|
|
||||||
|
|
||||||
if (mode == mode_) action->setChecked(true);
|
if (mode == mode_) action->setChecked(true);
|
||||||
}
|
}
|
||||||
@ -427,16 +425,13 @@ void FancyTabWidget::contextMenuEvent(QContextMenuEvent* e) {
|
|||||||
if (!menu_) {
|
if (!menu_) {
|
||||||
menu_ = new QMenu(this);
|
menu_ = new QMenu(this);
|
||||||
|
|
||||||
QSignalMapper* mapper = new QSignalMapper(this);
|
|
||||||
QActionGroup* group = new QActionGroup(this);
|
QActionGroup* group = new QActionGroup(this);
|
||||||
addMenuItem(mapper, group, tr("Large sidebar"), Mode_LargeSidebar);
|
addMenuItem(group, tr("Large sidebar"), Mode_LargeSidebar);
|
||||||
addMenuItem(mapper, group, tr("Small sidebar"), Mode_SmallSidebar);
|
addMenuItem(group, tr("Small sidebar"), Mode_SmallSidebar);
|
||||||
addMenuItem(mapper, group, tr("Plain sidebar"), Mode_PlainSidebar);
|
addMenuItem(group, tr("Plain sidebar"), Mode_PlainSidebar);
|
||||||
addMenuItem(mapper, group, tr("Tabs on top"), Mode_Tabs);
|
addMenuItem(group, tr("Tabs on top"), Mode_Tabs);
|
||||||
addMenuItem(mapper, group, tr("Icons on top"), Mode_IconOnlyTabs);
|
addMenuItem(group, tr("Icons on top"), Mode_IconOnlyTabs);
|
||||||
menu_->addActions(group->actions());
|
menu_->addActions(group->actions());
|
||||||
|
|
||||||
connect(mapper, SIGNAL(mapped(int)), SLOT(SetMode(int)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
menu_->popup(e->globalPos());
|
menu_->popup(e->globalPos());
|
||||||
|
@ -26,7 +26,6 @@
|
|||||||
class QActionGroup;
|
class QActionGroup;
|
||||||
class QMenu;
|
class QMenu;
|
||||||
class QSettings;
|
class QSettings;
|
||||||
class QSignalMapper;
|
|
||||||
|
|
||||||
namespace Core {
|
namespace Core {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
@ -81,14 +80,12 @@ class FancyTabWidget : public QTabWidget {
|
|||||||
void paintEvent(QPaintEvent *);
|
void paintEvent(QPaintEvent *);
|
||||||
void contextMenuEvent(QContextMenuEvent* e);
|
void contextMenuEvent(QContextMenuEvent* e);
|
||||||
private:
|
private:
|
||||||
void addMenuItem(QSignalMapper* mapper, QActionGroup* group,
|
void addMenuItem(QActionGroup* group, const QString& text, Mode mode);
|
||||||
const QString& text, Mode mode);
|
|
||||||
|
|
||||||
QPixmap background_pixmap_;
|
QPixmap background_pixmap_;
|
||||||
QMenu* menu_;
|
QMenu* menu_;
|
||||||
Mode mode_;
|
Mode mode_;
|
||||||
QWidget *bottom_widget_;
|
QWidget* bottom_widget_;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
@ -23,7 +23,6 @@
|
|||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
#include <QPaintEvent>
|
#include <QPaintEvent>
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QSignalMapper>
|
|
||||||
#include <QTextDocument>
|
#include <QTextDocument>
|
||||||
#include <QTimeLine>
|
#include <QTimeLine>
|
||||||
#include <QtDebug>
|
#include <QtDebug>
|
||||||
@ -93,17 +92,12 @@ NowPlayingWidget::NowPlayingWidget(QWidget* parent)
|
|||||||
|
|
||||||
// Context menu
|
// Context menu
|
||||||
QActionGroup* mode_group = new QActionGroup(this);
|
QActionGroup* mode_group = new QActionGroup(this);
|
||||||
QSignalMapper* mode_mapper = new QSignalMapper(this);
|
CreateModeAction(SmallSongDetails, tr("Small album cover"), mode_group);
|
||||||
connect(mode_mapper, SIGNAL(mapped(int)), SLOT(SetMode(int)));
|
CreateModeAction(LargeSongDetails, tr("Large album cover"), mode_group);
|
||||||
CreateModeAction(SmallSongDetails, tr("Small album cover"), mode_group,
|
|
||||||
mode_mapper);
|
|
||||||
CreateModeAction(LargeSongDetails, tr("Large album cover"), mode_group,
|
|
||||||
mode_mapper);
|
|
||||||
CreateModeAction(LargeSongDetailsBelow,
|
CreateModeAction(LargeSongDetailsBelow,
|
||||||
tr("Large album cover (details below)"), mode_group,
|
tr("Large album cover (details below)"), mode_group);
|
||||||
mode_mapper);
|
|
||||||
CreateModeAction(LargeNoSongDetails, tr("Large album cover (no details)"),
|
CreateModeAction(LargeNoSongDetails, tr("Large album cover (no details)"),
|
||||||
mode_group, mode_mapper);
|
mode_group);
|
||||||
|
|
||||||
menu_->addActions(mode_group->actions());
|
menu_->addActions(mode_group->actions());
|
||||||
|
|
||||||
@ -187,12 +181,10 @@ void NowPlayingWidget::SetApplication(Application* app) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void NowPlayingWidget::CreateModeAction(Mode mode, const QString& text,
|
void NowPlayingWidget::CreateModeAction(Mode mode, const QString& text,
|
||||||
QActionGroup* group,
|
QActionGroup* group) {
|
||||||
QSignalMapper* mapper) {
|
|
||||||
QAction* action = new QAction(text, group);
|
QAction* action = new QAction(text, group);
|
||||||
action->setCheckable(true);
|
action->setCheckable(true);
|
||||||
mapper->setMapping(action, mode);
|
connect(action, &QAction::triggered, [this, mode]() { SetMode(mode); });
|
||||||
connect(action, SIGNAL(triggered()), mapper, SLOT(map()));
|
|
||||||
|
|
||||||
if (mode == mode_) action->setChecked(true);
|
if (mode == mode_) action->setChecked(true);
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,6 @@ class QAction;
|
|||||||
class QActionGroup;
|
class QActionGroup;
|
||||||
class QMenu;
|
class QMenu;
|
||||||
class QMovie;
|
class QMovie;
|
||||||
class QSignalMapper;
|
|
||||||
class QTextDocument;
|
class QTextDocument;
|
||||||
class QTimeLine;
|
class QTimeLine;
|
||||||
|
|
||||||
@ -111,8 +110,7 @@ signals:
|
|||||||
void AutomaticCoverSearchDone();
|
void AutomaticCoverSearchDone();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void CreateModeAction(Mode mode, const QString& text, QActionGroup* group,
|
void CreateModeAction(Mode mode, const QString& text, QActionGroup* group);
|
||||||
QSignalMapper* mapper);
|
|
||||||
void UpdateDetailsText();
|
void UpdateDetailsText();
|
||||||
void UpdateHeight();
|
void UpdateHeight();
|
||||||
void DrawContents(QPainter* p);
|
void DrawContents(QPainter* p);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user