aboutsummaryrefslogtreecommitdiff
path: root/src-qt5/desktop-utils/lumina-mediaplayer/mainUI.h
blob: 0024cef3802521011293b6e30c097ececa880134 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
//===========================================
//  Lumina-Desktop source code
//  Copyright (c) 2017, Ken Moore
//  Available under the 3-clause BSD license
//  See the LICENSE file for full details
//===========================================
#ifndef _LUMINA_MEDIA_PLAYER_MAIN_UI_H
#define _LUMINA_MEDIA_PLAYER_MAIN_UI_H

#include <QMainWindow>
#include <QAction>
#include <QString>
#include <QStringList>
#include <QSystemTrayIcon>
#include <QCloseEvent>

#include "PianoBarProcess.h"

namespace Ui{
	class MainUI;
};

class MainUI : public QMainWindow{
	Q_OBJECT
public:
	MainUI();
	~MainUI();

	void loadArguments(QStringList);

private:
	Ui::MainUI *ui;
	PianoBarProcess *PANDORA;
	QSystemTrayIcon *SYSTRAY;
	bool closing;

	void setupPandora();
	void setupConnections();
	void setupIcons();
	void setupTrayIcon();
	void closeTrayIcon();

private slots:
	void closeApplication();
	void PlayerTypeChanged(bool active = true);

	//Toolbar actions
	void playToggled();
	void pauseToggled();
	void stopToggled();
	void nextToggled();
	void backToggled();
	void volupToggled();
	void voldownToggled();

	//Pandora Options
	void showPandoraSongInfo();
	void changePandoraStation(QString);
	void checkPandoraSettings();
	void applyPandoraSettings();
	//Pandora Process Feedback
	void PandoraStateChanged(PianoBarProcess::State);
	void NewPandoraInfo(QString);
	void PandoraStationChanged(QString);
	void PandoraSongChanged(bool, QString, QString, QString, QString, QString); //[isLoved, title, artist, album, detailsURL, fromStation]
	void PandoraTimeUpdate(int,int); //current secs, total secs
	void PandoraStationListChanged(QStringList);
	void PandoraListInfo(QStringList);

	//System Tray interactions
	void toggleVisibility();
	void trayMessageClicked();
	void trayClicked(QSystemTrayIcon::ActivationReason);

protected:
	void closeEvent(QCloseEvent *ev);
	
};
#endif
bgstack15