File: mainwindow.h

package info (click to toggle)
chiaki 2.2.0-1.2
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 5,312 kB
  • sloc: ansic: 17,616; cpp: 7,901; xml: 2,691; sh: 395; python: 96; makefile: 6
file content (68 lines) | stat: -rw-r--r-- 1,532 bytes parent folder | download | duplicates (2)
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
// SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL

#ifndef CHIAKI_MAINWINDOW_H
#define CHIAKI_MAINWINDOW_H

#include <QMainWindow>

#include "discoverymanager.h"
#include "host.h"

class DynamicGridWidget;
class ServerItemWidget;
class Settings;

struct DisplayServer
{
	DiscoveryHost discovery_host;
	ManualHost manual_host;
	bool discovered;

	RegisteredHost registered_host;
	bool registered;

	QString GetHostAddr() const { return discovered ? discovery_host.host_addr : manual_host.GetHost(); }
	bool IsPS5() const { return discovered ? discovery_host.ps5 :
		(registered ? chiaki_target_is_ps5(registered_host.GetTarget()) : false); }
};

class MainWindow : public QMainWindow
{
	Q_OBJECT

	private:
		Settings *settings;

		QIcon discover_action_icon;
		QIcon discover_action_off_icon;
		QAction *discover_action;

		DynamicGridWidget *grid_widget;
		QList<ServerItemWidget *> server_item_widgets;

		DiscoveryManager discovery_manager;

		QList<DisplayServer> display_servers;

		DisplayServer *DisplayServerFromSender();
		void SendWakeup(const DisplayServer *server);

	private slots:
		void ServerItemWidgetSelected();
		void ServerItemWidgetTriggered();
		void ServerItemWidgetDeleteTriggered();
		void ServerItemWidgetWakeTriggered();

		void UpdateDiscoveryEnabled();
		void ShowSettings();
		void Quit();

		void UpdateDisplayServers();
		void UpdateServerWidgets();

	public:
		explicit MainWindow(Settings *settings, QWidget *parent = nullptr);
		~MainWindow() override;
};

#endif //CHIAKI_MAINWINDOW_H