1 #pragma once 2 3 #include <QLineEdit> 4 #include <QString> 5 #include <QWidget> 6 7 #include "controllers/keyboard/keyboardeventfilter.h" 8 #include "library/autodj/autodjprocessor.h" 9 #include "library/autodj/ui_dlgautodj.h" 10 #include "library/library.h" 11 #include "library/libraryview.h" 12 #include "library/trackcollection.h" 13 #include "preferences/usersettings.h" 14 #include "track/track_decl.h" 15 16 class PlaylistTableModel; 17 class WLibrary; 18 class WTrackTableView; 19 20 class DlgAutoDJ : public QWidget, public Ui::DlgAutoDJ, public LibraryView { 21 Q_OBJECT 22 public: 23 DlgAutoDJ(WLibrary* parent, 24 UserSettingsPointer pConfig, 25 Library* pLibrary, 26 AutoDJProcessor* pProcessor, 27 KeyboardEventFilter* pKeyboard); 28 ~DlgAutoDJ() override; 29 30 void onShow() override; 31 bool hasFocus() const override; 32 void onSearch(const QString& text) override; 33 void loadSelectedTrack() override; 34 void loadSelectedTrackToGroup(const QString& group, bool play) override; 35 void moveSelection(int delta) override; 36 37 public slots: 38 void shufflePlaylistButton(bool buttonChecked); 39 void skipNextButton(bool buttonChecked); 40 void fadeNowButton(bool buttonChecked); 41 void toggleAutoDJButton(bool enable); 42 void transitionTimeChanged(int time); 43 void transitionSliderChanged(int value); 44 void autoDJStateChanged(AutoDJProcessor::AutoDJState state); 45 void updateSelectionInfo(); 46 void slotTransitionModeChanged(int comboboxIndex); 47 void slotRepeatPlaylistChanged(int checkedState); 48 49 signals: 50 void addRandomButton(bool buttonChecked); 51 void loadTrack(TrackPointer tio); 52 void loadTrackToPlayer(TrackPointer tio, const QString& group, bool); 53 void trackSelected(TrackPointer pTrack); 54 55 private: 56 void setupActionButton(QPushButton* pButton, 57 void (DlgAutoDJ::*pSlot)(bool), 58 const QString& fallbackText); 59 60 const UserSettingsPointer m_pConfig; 61 62 AutoDJProcessor* const m_pAutoDJProcessor; 63 WTrackTableView* const m_pTrackTableView; 64 const bool m_bShowButtonText; 65 66 PlaylistTableModel* m_pAutoDJTableModel; 67 68 QString m_enableBtnTooltip; 69 QString m_disableBtnTooltip; 70 }; 71