예제 #1
0
QActionGroup* LibraryFilterWidget::CreateGroupByActions(QObject* parent) {
  QActionGroup* ret = new QActionGroup(parent);
  ret->addAction(CreateGroupByAction(
      tr("Group by Artist"), parent,
      LibraryModel::Grouping(LibraryModel::GroupBy_Artist)));
  ret->addAction(
      CreateGroupByAction(tr("Group by Artist/Album"), parent,
                          LibraryModel::Grouping(LibraryModel::GroupBy_Artist,
                                                 LibraryModel::GroupBy_Album)));
  ret->addAction(
      CreateGroupByAction(tr("Group by Album artist/Album"), parent,
                          LibraryModel::Grouping(LibraryModel::GroupBy_AlbumArtist,
                                                 LibraryModel::GroupBy_Album)));
  ret->addAction(CreateGroupByAction(
      tr("Group by Artist/Year - Album"), parent,
      LibraryModel::Grouping(LibraryModel::GroupBy_Artist,
                             LibraryModel::GroupBy_YearAlbum)));
  ret->addAction(
      CreateGroupByAction(tr("Group by Album"), parent,
                          LibraryModel::Grouping(LibraryModel::GroupBy_Album)));
  ret->addAction(
      CreateGroupByAction(tr("Group by Genre/Album"), parent,
                          LibraryModel::Grouping(LibraryModel::GroupBy_Genre,
                                                 LibraryModel::GroupBy_Album)));
  ret->addAction(
      CreateGroupByAction(tr("Group by Genre/Artist/Album"), parent,
                          LibraryModel::Grouping(LibraryModel::GroupBy_Genre,
                                                 LibraryModel::GroupBy_Artist,
                                                 LibraryModel::GroupBy_Album)));

  QAction* sep1 = new QAction(parent);
  sep1->setSeparator(true);
  ret->addAction(sep1);

  // read saved groupings
  QSettings s;
  s.beginGroup(LibraryModel::kSavedGroupingsSettingsGroup);
  QStringList saved = s.childKeys();
  for (int i = 0; i < saved.size(); ++i) {
    QByteArray bytes = s.value(saved.at(i)).toByteArray();
    QDataStream ds(&bytes, QIODevice::ReadOnly);
    LibraryModel::Grouping g;
    ds >> g;
    ret->addAction(CreateGroupByAction(saved.at(i), parent, g));
  }

  QAction* sep2 = new QAction(parent);
  sep2->setSeparator(true);
  ret->addAction(sep2);

  ret->addAction(CreateGroupByAction(tr("Advanced grouping..."), parent,
                                     LibraryModel::Grouping()));

  return ret;
}
예제 #2
0
QActionGroup* LibraryFilterWidget::CreateGroupByActions(QObject* parent) {
  QActionGroup* ret = new QActionGroup(parent);
  ret->addAction(CreateGroupByAction(
      tr("Group by Artist"), parent,
      LibraryModel::Grouping(LibraryModel::GroupBy_Artist)));
  ret->addAction(
      CreateGroupByAction(tr("Group by Artist/Album"), parent,
                          LibraryModel::Grouping(LibraryModel::GroupBy_Artist,
                                                 LibraryModel::GroupBy_Album)));
  ret->addAction(CreateGroupByAction(
      tr("Group by Artist/Year - Album"), parent,
      LibraryModel::Grouping(LibraryModel::GroupBy_Artist,
                             LibraryModel::GroupBy_YearAlbum)));
  ret->addAction(
      CreateGroupByAction(tr("Group by Album"), parent,
                          LibraryModel::Grouping(LibraryModel::GroupBy_Album)));
  ret->addAction(
      CreateGroupByAction(tr("Group by Genre/Album"), parent,
                          LibraryModel::Grouping(LibraryModel::GroupBy_Genre,
                                                 LibraryModel::GroupBy_Album)));
  ret->addAction(
      CreateGroupByAction(tr("Group by Genre/Artist/Album"), parent,
                          LibraryModel::Grouping(LibraryModel::GroupBy_Genre,
                                                 LibraryModel::GroupBy_Artist,
                                                 LibraryModel::GroupBy_Album)));
  ret->addAction(CreateGroupByAction(tr("Advanced grouping..."), parent,
                                     LibraryModel::Grouping()));

  return ret;
}