Sayonara Player
Loading...
Searching...
No Matches
MinMaxIntegerDialog.h
1/* MinMaxIntegerDialog.h */
2/*
3 * Copyright (C) 2011-2024 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 Library
36{
37 class InfoAccessor;
38}
39
40namespace
41{
42 struct Section;
43}
44
46 public QDialog
47{
48 Q_OBJECT
50
51 public:
52 MinMaxIntegerDialog(Library::InfoAccessor* libraryManager, QWidget* parent);
53 MinMaxIntegerDialog(const std::shared_ptr<SmartPlaylist>& smartPlaylist, Library::InfoAccessor* libraryManager,
54 QWidget* parent);
55 ~MinMaxIntegerDialog() override;
56
57 [[nodiscard]] QList<int> values() const;
58 [[nodiscard]] bool isRandomized() const;
59
60 [[nodiscard]] SmartPlaylists::Type type() const;
61 [[nodiscard]] LibraryId libraryId() const;
62
63 private:
64 enum EditMode
65 {
66 New = 0,
67 Edit
68 };
69
70 MinMaxIntegerDialog(const std::shared_ptr<SmartPlaylist>& smartPlaylist, Library::InfoAccessor* librarymanager,
71 EditMode editMode, QWidget* parent);
72
73 void fillLayout(int libraryCount);
74 void connectTextFieldChanges(const QList<Section>& sections) const;
75
76 private slots: // NOLINT(readability-redundant-access-specifiers)
77 void textChanged(const QString& text);
78 void currentIndexChanged(int index);
79};
80
81#endif //SAYONARA_PLAYER_MINMAXINTEGERDIALOG_H
Definition: LibraryManager.h:36
Definition: MinMaxIntegerDialog.h:47
Definition: EngineUtils.h:33
Definition: SmartPlaylist.h:56