Mercurial > minori
diff src/gui/dialog/settings/recognition.cc @ 301:b1f625b0227c
*: convert all files CRLF -> LF
some files were in DOS format, others were in unix. now everything
(that at least is under our control) should all be the same format
author | Paper <paper@paper.us.eu.org> |
---|---|
date | Mon, 13 May 2024 15:04:51 -0400 |
parents | 99cbc51433e4 |
children |
line wrap: on
line diff
--- a/src/gui/dialog/settings/recognition.cc Mon May 13 14:56:37 2024 -0400 +++ b/src/gui/dialog/settings/recognition.cc Mon May 13 15:04:51 2024 -0400 @@ -1,81 +1,81 @@ -#include "core/session.h" -#include "core/strings.h" -#include "gui/dialog/settings.h" - -#include <QCheckBox> -#include <QGroupBox> -#include <QLabel> -#include <QListWidget> -#include <QListWidgetItem> -#include <QSizePolicy> -#include <QVBoxLayout> - -#include <algorithm> - -QWidget* SettingsPageRecognition::CreatePlayersWidget() { - QWidget* result = new QWidget(this); - result->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Maximum); - - QVBoxLayout* full_layout = new QVBoxLayout(result); - - { - /* Feed link */ - QWidget* widget = new QWidget(result); - QVBoxLayout* widget_layout = new QVBoxLayout(widget); - - QCheckBox* checkbox = new QCheckBox(result); - checkbox->setText(tr("Enable media player detection")); - checkbox->setCheckState(detect_media_players ? Qt::Checked : Qt::Unchecked); - widget_layout->addWidget(checkbox); - - { - QLabel* label = new QLabel(tr("Allowed media players:"), widget); - widget_layout->addWidget(label); - } - - { - QListWidget* listwidget = new QListWidget(widget); - for (size_t i = 0; i < players.size(); i++) { - const auto& [enabled, player] = players[i]; - if (player.type == animone::PlayerType::Default) { - QListWidgetItem* item = new QListWidgetItem(listwidget); - item->setCheckState(enabled ? Qt::Checked : Qt::Unchecked); - item->setText(Strings::ToQString(player.name)); - item->setData(Qt::UserRole, QVariant::fromValue(i)); - } - } - connect(listwidget, &QListWidget::itemChanged, this, [this](QListWidgetItem* item) { - if (!item) - return; - size_t i = item->data(Qt::UserRole).toUInt(); - players[i].enabled = item->checkState(); - }); - /* this is down here because the listwidget state depends on it */ - connect(checkbox, &QCheckBox::stateChanged, this, [this, listwidget](int state) { - detect_media_players = (state == Qt::Checked); - listwidget->setEnabled(detect_media_players); - }); - listwidget->setEnabled(checkbox->checkState() == Qt::Checked); - - widget_layout->addWidget(listwidget); - } - - full_layout->addWidget(widget); - } - - full_layout->setSpacing(10); - full_layout->setContentsMargins(0, 0, 0, 0); - - return result; -} - -void SettingsPageRecognition::SaveInfo() { - session.config.recognition.detect_media_players = detect_media_players; - session.config.recognition.players = players; -} - -SettingsPageRecognition::SettingsPageRecognition(QWidget* parent) - : SettingsPage(parent, tr("Recognition")), players(session.config.recognition.players) { - detect_media_players = session.config.recognition.detect_media_players; - AddTab(CreatePlayersWidget(), tr("Media players")); -} +#include "core/session.h" +#include "core/strings.h" +#include "gui/dialog/settings.h" + +#include <QCheckBox> +#include <QGroupBox> +#include <QLabel> +#include <QListWidget> +#include <QListWidgetItem> +#include <QSizePolicy> +#include <QVBoxLayout> + +#include <algorithm> + +QWidget* SettingsPageRecognition::CreatePlayersWidget() { + QWidget* result = new QWidget(this); + result->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Maximum); + + QVBoxLayout* full_layout = new QVBoxLayout(result); + + { + /* Feed link */ + QWidget* widget = new QWidget(result); + QVBoxLayout* widget_layout = new QVBoxLayout(widget); + + QCheckBox* checkbox = new QCheckBox(result); + checkbox->setText(tr("Enable media player detection")); + checkbox->setCheckState(detect_media_players ? Qt::Checked : Qt::Unchecked); + widget_layout->addWidget(checkbox); + + { + QLabel* label = new QLabel(tr("Allowed media players:"), widget); + widget_layout->addWidget(label); + } + + { + QListWidget* listwidget = new QListWidget(widget); + for (size_t i = 0; i < players.size(); i++) { + const auto& [enabled, player] = players[i]; + if (player.type == animone::PlayerType::Default) { + QListWidgetItem* item = new QListWidgetItem(listwidget); + item->setCheckState(enabled ? Qt::Checked : Qt::Unchecked); + item->setText(Strings::ToQString(player.name)); + item->setData(Qt::UserRole, QVariant::fromValue(i)); + } + } + connect(listwidget, &QListWidget::itemChanged, this, [this](QListWidgetItem* item) { + if (!item) + return; + size_t i = item->data(Qt::UserRole).toUInt(); + players[i].enabled = item->checkState(); + }); + /* this is down here because the listwidget state depends on it */ + connect(checkbox, &QCheckBox::stateChanged, this, [this, listwidget](int state) { + detect_media_players = (state == Qt::Checked); + listwidget->setEnabled(detect_media_players); + }); + listwidget->setEnabled(checkbox->checkState() == Qt::Checked); + + widget_layout->addWidget(listwidget); + } + + full_layout->addWidget(widget); + } + + full_layout->setSpacing(10); + full_layout->setContentsMargins(0, 0, 0, 0); + + return result; +} + +void SettingsPageRecognition::SaveInfo() { + session.config.recognition.detect_media_players = detect_media_players; + session.config.recognition.players = players; +} + +SettingsPageRecognition::SettingsPageRecognition(QWidget* parent) + : SettingsPage(parent, tr("Recognition")), players(session.config.recognition.players) { + detect_media_players = session.config.recognition.detect_media_players; + AddTab(CreatePlayersWidget(), tr("Media players")); +}