Sayonara Player
MinMaxIntegerDialog.h
1/* MinMaxIntegerDialog.h */
2/*
3 * Copyright (C) 2011-2022 Michael Lugmair
4 *
5 * This file is part of sayonara player
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 */
20#ifndef SAYONARA_PLAYER_MINMAXINTEGERDIALOG_H
21#define SAYONARA_PLAYER_MINMAXINTEGERDIALOG_H
22
23#include "Utils/Pimpl.h"
24
25#include <QDialog>
26
27class SmartPlaylist;
28class QLineEdit;
29
30namespace SmartPlaylists
31{
32 enum class Type;
33}
34
35namespace
36{
37 struct Section;
38}
39
41 public QDialog
42{
43 Q_OBJECT
45
46 public:
47 explicit MinMaxIntegerDialog(QWidget* parent);
48 MinMaxIntegerDialog(const std::shared_ptr<SmartPlaylist>& smartPlaylist, QWidget* parent);
49 ~MinMaxIntegerDialog() override;
50
51 [[nodiscard]] QList<int> values() const;
52 [[nodiscard]] bool isRandomized() const;
53
54 [[nodiscard]] SmartPlaylists::Type type() const;
55
56 private:
57 MinMaxIntegerDialog(SmartPlaylists::Type type, QWidget* parent);
58
59 void fillLayout(QWidget* headerWidget);
60 void connectTextFieldChanges(const QList<Section>& sections) const;
61
62 private slots: // NOLINT(readability-redundant-access-specifiers)
63 void textChanged(const QString& text);
64 void currentIndexChanged(int index);
65};
66
67#endif //SAYONARA_PLAYER_MINMAXINTEGERDIALOG_H
Definition: MinMaxIntegerDialog.h:42
Definition: EngineUtils.h:33
Definition: SmartPlaylist.h:56