// SPDX-License-Identifier: GPL-3.0-or-later /* * Qt mutizone MQTT thermostat * * Copyright (C) 2019 Richard Genoud * */ #ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include #include "mqttclient.h" #include "zoneitem.h" #include "boost_dlg.h" #include "menu_dlg.h" #include "edit_dlg.h" #include "edit_prog_dlg.h" #include "settings.h" class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = NULL); ~MainWindow(); private: MQTTClient *m_mqtt; QPushButton *m_state_btn; QVector m_zones; QTimer *m_timer; BoostDlg *m_boost; EditDlg *m_edit_dlg; MenuDlg *m_menu; QStackedWidget m_central_widget; void update_state_btn(enum power_states st); double get_target_temperature(int room_idx); bool get_heater_order(int room_idx); void apply_automatic_state(void); private slots: void temperature_slot(int idx, double val); void hygro_slot(int idx, double val); void availability_slot(int idx, bool ok); void change_state(void); void apply_order_to_heaters(void); void show_boost(void); void do_show_edit_dlg(void); void show_main(void); void show_menu(void); void boost_slot(int idx, struct boost_data &data); void do_show_holiday_dlg(void); void do_close_holiday_dlg(void); void do_show_edit_prog_dlg(struct Program &p); void do_close_edit_prog_dlg(void); void set_holiday_mode(QDateTime end_date); signals: void setAllHeatersOn(bool on); }; #endif // MAINWINDOW_H /* vim: set tabstop=8 shiftwidth=8 softtabstop=0 noexpandtab: */