From 9ace66edb7d71122ef7d3bfc49201601f0a9f77a Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Mon, 28 Jun 2021 00:14:16 +0200 Subject: [PATCH] Rename CollectionFilterWidget::SetCollectionModel to CollectionFilterWidget::Init --- src/collection/collectionfilterwidget.cpp | 90 +++++++++++------------ src/collection/collectionfilterwidget.h | 3 +- 2 files changed, 47 insertions(+), 46 deletions(-) diff --git a/src/collection/collectionfilterwidget.cpp b/src/collection/collectionfilterwidget.cpp index 9ee1eb5d..97ad87d8 100644 --- a/src/collection/collectionfilterwidget.cpp +++ b/src/collection/collectionfilterwidget.cpp @@ -143,6 +143,51 @@ CollectionFilterWidget::CollectionFilterWidget(QWidget *parent) CollectionFilterWidget::~CollectionFilterWidget() { delete ui_; } +void CollectionFilterWidget::Init(CollectionModel *model) { + + if (model_) { + QObject::disconnect(model_, nullptr, this, nullptr); + QObject::disconnect(model_, nullptr, group_by_dialog_.get(), nullptr); + QObject::disconnect(group_by_dialog_.get(), nullptr, model_, nullptr); + QList filter_ages = filter_ages_.keys(); + for (QAction *action : filter_ages) { + QObject::disconnect(action, &QAction::triggered, model_, nullptr); + } + } + + model_ = model; + + // Connect signals + QObject::connect(model_, &CollectionModel::GroupingChanged, group_by_dialog_.get(), &GroupByDialog::CollectionGroupingChanged); + QObject::connect(model_, &CollectionModel::GroupingChanged, this, &CollectionFilterWidget::GroupingChanged); + QObject::connect(group_by_dialog_.get(), &GroupByDialog::Accepted, model_, &CollectionModel::SetGroupBy); + + QList filter_ages = filter_ages_.keys(); + for (QAction *action : filter_ages) { + int age = filter_ages_[action]; + QObject::connect(action, &QAction::triggered, [this, age]() { model_->SetFilterAge(age); } ); + } + + // Load settings + if (!settings_group_.isEmpty()) { + QSettings s; + s.beginGroup(settings_group_); + int version = 0; + if (s.contains(group_by_version())) version = s.value(group_by_version(), 0).toInt(); + if (version == 1) { + model_->SetGroupBy(CollectionModel::Grouping( + CollectionModel::GroupBy(s.value(group_by(1), int(CollectionModel::GroupBy_AlbumArtist)).toInt()), + CollectionModel::GroupBy(s.value(group_by(2), int(CollectionModel::GroupBy_AlbumDisc)).toInt()), + CollectionModel::GroupBy(s.value(group_by(3), int(CollectionModel::GroupBy_None)).toInt()))); + } + else { + model_->SetGroupBy(CollectionModel::Grouping(CollectionModel::GroupBy_AlbumArtist, CollectionModel::GroupBy_AlbumDisc, CollectionModel::GroupBy_None)); + } + s.endGroup(); + } + +} + void CollectionFilterWidget::ReloadSettings() { QSettings s; @@ -299,51 +344,6 @@ void CollectionFilterWidget::FocusOnFilter(QKeyEvent *event) { } -void CollectionFilterWidget::SetCollectionModel(CollectionModel *model) { - - if (model_) { - QObject::disconnect(model_, nullptr, this, nullptr); - QObject::disconnect(model_, nullptr, group_by_dialog_.get(), nullptr); - QObject::disconnect(group_by_dialog_.get(), nullptr, model_, nullptr); - QList filter_ages = filter_ages_.keys(); - for (QAction *action : filter_ages) { - QObject::disconnect(action, &QAction::triggered, model_, nullptr); - } - } - - model_ = model; - - // Connect signals - QObject::connect(model_, &CollectionModel::GroupingChanged, group_by_dialog_.get(), &GroupByDialog::CollectionGroupingChanged); - QObject::connect(model_, &CollectionModel::GroupingChanged, this, &CollectionFilterWidget::GroupingChanged); - QObject::connect(group_by_dialog_.get(), &GroupByDialog::Accepted, model_, &CollectionModel::SetGroupBy); - - QList filter_ages = filter_ages_.keys(); - for (QAction *action : filter_ages) { - int age = filter_ages_[action]; - QObject::connect(action, &QAction::triggered, [this, age]() { model_->SetFilterAge(age); } ); - } - - // Load settings - if (!settings_group_.isEmpty()) { - QSettings s; - s.beginGroup(settings_group_); - int version = 0; - if (s.contains(group_by_version())) version = s.value(group_by_version(), 0).toInt(); - if (version == 1) { - model_->SetGroupBy(CollectionModel::Grouping( - CollectionModel::GroupBy(s.value(group_by(1), int(CollectionModel::GroupBy_AlbumArtist)).toInt()), - CollectionModel::GroupBy(s.value(group_by(2), int(CollectionModel::GroupBy_AlbumDisc)).toInt()), - CollectionModel::GroupBy(s.value(group_by(3), int(CollectionModel::GroupBy_None)).toInt()))); - } - else { - model_->SetGroupBy(CollectionModel::Grouping(CollectionModel::GroupBy_AlbumArtist, CollectionModel::GroupBy_AlbumDisc, CollectionModel::GroupBy_None)); - } - s.endGroup(); - } - -} - void CollectionFilterWidget::GroupByClicked(QAction *action) { if (action->property("group_by").isNull()) { diff --git a/src/collection/collectionfilterwidget.h b/src/collection/collectionfilterwidget.h index b9ee78d9..6fbfbd91 100644 --- a/src/collection/collectionfilterwidget.h +++ b/src/collection/collectionfilterwidget.h @@ -58,6 +58,8 @@ class CollectionFilterWidget : public QWidget { AlwaysDelayed, }; + void Init(CollectionModel *model); + static QActionGroup *CreateGroupByActions(QObject *parent); void UpdateGroupByActions(); @@ -73,7 +75,6 @@ class CollectionFilterWidget : public QWidget { void SetSettingsGroup(const QString &group) { settings_group_ = group; } void SetSettingsPrefix(const QString &prefix) { settings_prefix_ = prefix; } - void SetCollectionModel(CollectionModel *model); QString group_by(); QString group_by_version();