1
/***************************************************************************
2
knutmainwindow.h - description
5
copyright : (C) 2003 by Daniel Prynych
6
email : Daniel.Prynych@alo.cz
7
***************************************************************************/
9
/***************************************************************************
11
* This program is free software; you can redistribute it and/or modify *
12
* it under the terms of the GNU General Public License as published by *
13
* the Free Software Foundation; either version 2 of the License, or *
14
* (at your option) any later version. *
16
***************************************************************************/
18
#ifndef KNUTMAINWINDOW_H
19
#define KNUTMAINWINDOW_H
26
#include "knutprefdlg.h"
27
#include "knutupsdata.h"
28
#include "knutvardata.h"
29
#include "knutfrontpanel.h"
32
#include "knutpanelmeter.h"
35
#include <kmainwindow.h>
40
#include <qdatetime.h>
41
#include <qstringlist.h>
42
#include <qprogressbar.h>
43
#include <qsplitter.h>
47
*@author Daniel Prynych
50
/** Trida slouzi pro zobrazeni okna s informacemi o UPS.
52
* @author Daniel Prynych
56
class KNutMainWindow : public KMainWindow {
61
* Konstruktor - vytvori hlavni okno.
63
* @param tListKNutEvent ukazatel na QStringList obsahuje textove udaje o udalostech (ztrata spojeni, prepnuti atd.)
64
* @param tActiveUpsInfo ukazatel na data o aktivni UPS
65
* @param tSettingData ukazatel na zakladni data programu (barvy pozadi, mezikruzi, rucicky ... ,fonty atd )
66
* @param tAnalogRecords ukazatel na tridu ktera pracuje s daty o upsekach
70
KNutMainWindow(QStringList* tListKNutEvent, struct upsInfo* tActiveUpsInfo, SettingDataDef* tSettingData, KNutUpsData* tUpsRecords, KNutVarData* tAnalogRecords, QWidget* parent=0,const char *name=0);
80
* Prekresli informace hlavniho panelu.
84
void repaintPanel(void);
88
* Prekresli analogove panely na zaklade jejich stavu.
92
void repaintAnalogs (void);
95
* Da prikaz k prekresleni analogovych panelu, hlavniho panelu a nastavi jejich hodnoty na
96
* zaklade XFer hodnot.
100
void showUpsData (void);
104
* Prida dalsi radku do seznamu udalosti a zobrazi je v dolni casti panelu.
106
* @param text udava text udalosti.
107
* @param name udava jmeno UPS-ky tak jak je vedena v seznamu UPS-ek tohoto programu
111
void addComboStatusItem (const QString text, const QString name = QString::null);
114
* Prestavi hlavni panel na zaklade hodnotu changeSetting.
115
* Tuto hodnotu generuje konfiguracni okno.
117
* @param changeSetting udava jake nstaveni bylo zmeneno.
121
void setConfig (unsigned int changeSetting);
124
* Nastavi Combo (pro jmeno UPSky).
126
* ¶m name je jmeno UPSky ktere bude nastavena.
130
void setCombo(QString name);
133
* Nastavi vsechny panely na nulovo hodnotu
137
void zeroingPanels (void);
143
* Tento signal je vyslan pokud byla vybrana jina UPS-ka.
147
void UPSChanged (QString);
150
* Tento signal je vyslan pokud byl z menu zadan pozadavek na zobrazeni okna
151
* pro nastaveni programu (preference).
155
void preferenceUps (void);
158
* Tento signal je vyslan pokud byl z menu zadan pozadavek na zobrazeni seznamu promennych.
162
void showUPSVars (void);
165
* Tento signal je vyslan pokud byl z menu zadan pozadavek na zmenu RW promennych.
166
* This signal is emited when request for change RW varianles was orederd from menu.
170
void makeRWVars(void);
174
* Tento signal je vyslan pokud byl z menu vybran pozadavek na obnovu spojeni.
175
* This signal is emited when request for refresh connection was selected from menu.
179
void makeRefreshConnection(void);
182
* Tento signal je vyslan pokud byl z menu zadan pozadavek na provedeni okamzitych prikazu.
186
void makeInstComms(void);
189
* Tento signal je vyslan pokud byl z menu zadan pozadavek na ukonceni cele aplikace.
193
void endApplication();
197
void slotDescription(void);
198
void slotShowToolBar(void);
199
void slotShowStatusBar(void);
200
void slotPreferencesUps(void);
201
void slotPrintUPSVars(void);
202
void slotInstComms(void);
203
void slotRWVars(void);
204
void slotChangeRWVars ( QString varName);
205
void closeEvent( QCloseEvent *e );
206
void slotCloseKnutClient (void);
207
void slotChangeUPS (const QString &name);
208
void slotConfigureKeys(void);
209
void slotRefreshConnection(void);
213
/************** private functions ************************/
215
void activeConfiguration (void);
216
int activeMainCombo (void);
217
void hideUpsData (void);
219
/************ inicializacni funkce ********************/
220
void initVars ( void );
221
void initAction ( void );
222
void initStatusBar ( void );
223
void initToolBar ( void );
224
void initStatusBarMessage ( void );
227
/************** private vars **************************/
228
// Nazvy promenych UPS cislovany jsou od 0 do 10 "NONE", "UTILITY", "BATTPCT", "UPSTEMP", "ACFREQ", "LOADPCT", "AMBTEMP", "AMBHUMID", "BATTVOLT", "OUTVOLT", "CURRENT"
230
struct upsInfo* activeUpsInfo; // hodnoty pro vybrane ups
231
SettingDataDef* settingData; // v teto strukture jsou ulozeny promene ktere nastavuji konfiguraci
234
KAction *preferencesUps;
235
KToggleAction *descriptionAction;
237
KNutPrefDlg* prefDlg;
238
KNutUpsData* upsRecords;
239
KNutVarData* analogRecords;
242
QLabel* area; // hlavni plocha na ni umistime panel a analogove ukazatele
244
QSplitter* mainSplit;
245
KNutFrontPanel* frontPanel;
247
// nactene hodnoty promenych UPS, tyto promene se ctou jen jednou
248
QString manufacturer, upsModel, serial, firmrev;
249
bool existLowHighXfer;
250
float lowXfer, highXfer;
251
QPalette mainPalette, areaPalette, mPanelPalette, aPanelPalette;
253
// Combo a pomocne struktury pro dolni radku
254
KComboBox *infoCombo;
256
QStringList *listKNutEvent;
258
KNutPanelMeter* panelMeter;