|
|
|
|
/***************************************************************************
|
|
|
|
|
knutpanelmeter.cpp - description
|
|
|
|
|
-------------------
|
|
|
|
|
begin : <EFBFBD>t b?e 16 2004
|
|
|
|
|
copyright : (C) 2004 by Daniel Prynych
|
|
|
|
|
email : Daniel.Prynych@alo.cz
|
|
|
|
|
***************************************************************************/
|
|
|
|
|
|
|
|
|
|
/***************************************************************************
|
|
|
|
|
* *
|
|
|
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
|
|
|
* it under the terms of the GNU General Public License as published by *
|
|
|
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
|
|
|
* (at your option) any later version. *
|
|
|
|
|
* *
|
|
|
|
|
***************************************************************************/
|
|
|
|
|
|
|
|
|
|
#include "knutpanelmeter.h"
|
|
|
|
|
|
|
|
|
|
#include <kdebug.h>
|
|
|
|
|
|
|
|
|
|
#include <qlayout.h>
|
|
|
|
|
#include <qlabel.h>
|
|
|
|
|
#include <qfont.h>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#include <math.h>
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
#include <unistd.h>
|
|
|
|
|
|
|
|
|
|
//#include <iostream>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
extern const char *nameUpsVars1[];
|
|
|
|
|
extern const char *nameUpsVars2[];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
KNutPanelMeter::KNutPanelMeter(QPalette aPanelPalette, KNutVarData::upsInfoDef* activeUpsInfo, KNutVarData::SettingDataDef* settingData, KNutVarData* analogRecords, QWidget *parent, const char *name ) : QScrollView(parent,name,Qt::WResizeNoErase|Qt::WStaticContents) {
|
|
|
|
|
|
|
|
|
|
m_settingData = settingData;
|
|
|
|
|
m_activeUpsInfo = activeUpsInfo;
|
|
|
|
|
m_analogRecords = analogRecords;
|
|
|
|
|
m_aPanelPalette = aPanelPalette;
|
|
|
|
|
|
|
|
|
|
m_analogArea = new QLabel(this->viewport());
|
|
|
|
|
addChild(m_analogArea);
|
|
|
|
|
setResizePolicy ( QScrollView::AutoOneFit ) ;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
////NUTNO PAK UPRAVIT ACTIVATE A DEAKTIVATE ANALOGS
|
|
|
|
|
m_analogPanels = new analogPanelRecordsDef;
|
|
|
|
|
for (int i=0; i< knc::NumberOfVars; i++)
|
|
|
|
|
m_analogPanels->upsAnalogs[i]=0L;
|
|
|
|
|
|
|
|
|
|
m_widthArea =0;
|
|
|
|
|
m_heightArea =0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
KNutPanelMeter::~KNutPanelMeter(){
|
|
|
|
|
|
|
|
|
|
deActivateAnalogs();
|
|
|
|
|
delete m_analogPanels;
|
|
|
|
|
m_analogPanels=0L;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void KNutPanelMeter::deActivateAnalogs (void) {
|
|
|
|
|
|
|
|
|
|
//std::cout << "KNutPanelMeter::deActivateAnalogs" << std::endl;
|
|
|
|
|
|
|
|
|
|
if (m_analogPanels) {
|
|
|
|
|
for (int i=0; i< knc::NumberOfVars; i++) {
|
|
|
|
|
if (m_analogPanels->upsAnalogs[i] != 0) {
|
|
|
|
|
delete m_analogPanels->upsAnalogs[i]; // uvolnime meraky
|
|
|
|
|
}
|
|
|
|
|
m_analogPanels->upsAnalogs[i]=0L;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
m_widthArea =0;
|
|
|
|
|
m_heightArea =0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void KNutPanelMeter::activateAnalogs (void) {
|
|
|
|
|
//qDebug ("KNutPanelMeter::activateAnalogs start");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
KNutVarData::VarStrucDef analogMemberData;
|
|
|
|
|
int ii =0;
|
|
|
|
|
// deletes vatiables which ups doeasn't support
|
|
|
|
|
// vyjmeme promene ktere ups nepodporuje
|
|
|
|
|
|
|
|
|
|
//// nasledujici radka neni nutna
|
|
|
|
|
for (int i=0; i< knc::NumberOfVars; i++) m_analogPanels->upsAnalogs[i]=0L;
|
|
|
|
|
for (int i=0; i< knc::NumberOfVars; i++) {
|
|
|
|
|
// otestujeme zda dane UPS podporuje tuto promenou
|
|
|
|
|
// pokud existuje vrati 1
|
|
|
|
|
switch (m_activeUpsInfo->nutVariables) {
|
|
|
|
|
case 1:
|
|
|
|
|
if (!m_activeUpsInfo->upsNet->existName(nameUpsVars1[m_activeUpsInfo->record.upsVarCode[i]]))
|
|
|
|
|
m_activeUpsInfo->record.upsVarCode[ii++] = m_activeUpsInfo->record.upsVarCode[i];
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
if (!m_activeUpsInfo->upsNet->existName(nameUpsVars2[m_activeUpsInfo->record.upsVarCode[i]]))
|
|
|
|
|
m_activeUpsInfo->record.upsVarCode[ii++] = m_activeUpsInfo->record.upsVarCode[i];
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
for (int i=ii; i< knc::NumberOfVars; i++) m_activeUpsInfo->record.upsVarCode[i]=0;// doplnime zbytek nulami to znamena zadna promena
|
|
|
|
|
|
|
|
|
|
for (int i=0; i< knc::NumberOfVars; i++) {
|
|
|
|
|
if (m_activeUpsInfo->record.upsVarCode[i] != 0) {
|
|
|
|
|
analogMemberData=m_analogRecords->getData (m_activeUpsInfo->record.upsVarCode[i]);
|
|
|
|
|
|
|
|
|
|
m_analogPanels->scaleEnd[i]=analogMemberData.end;
|
|
|
|
|
m_analogPanels->scaleStart[i]=analogMemberData.start;
|
|
|
|
|
QColor analogFingerColor, analogScaleColor, analogFontColor;
|
|
|
|
|
if (m_settingData->customOAnalogColor) {
|
|
|
|
|
analogFingerColor = m_settingData->analogFingerColor;
|
|
|
|
|
analogScaleColor = m_settingData->analogScaleColor;
|
|
|
|
|
analogFontColor = m_settingData->analogFontColor;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
analogFingerColor = DEFAULT_FINGER_COLOR;
|
|
|
|
|
analogScaleColor = DEFAULT_SCALE_COLOR;
|
|
|
|
|
analogFontColor = DEFAULT_FONT_COLOR;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (m_settingData->customFont)
|
|
|
|
|
// doesn't make background
|
|
|
|
|
m_analogPanels->upsAnalogs[i] = new KNutAnalog( m_analogArea,0L,analogMemberData.start,analogMemberData.end,analogMemberData.typeAnalog,analogMemberData.numberItem,analogMemberData.numberInItem,analogFingerColor,analogScaleColor,analogFontColor,&(m_settingData->aPanelFont),m_settingData->typeDigitalProcessing);
|
|
|
|
|
else
|
|
|
|
|
m_analogPanels->upsAnalogs[i] = new KNutAnalog( m_analogArea,0L,analogMemberData.start,analogMemberData.end,analogMemberData.typeAnalog,analogMemberData.numberItem,analogMemberData.numberInItem,analogFingerColor,analogScaleColor,analogFontColor,&(m_settingData->systemFont),m_settingData->typeDigitalProcessing);
|
|
|
|
|
//nastavime barvu mezikruzi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (m_settingData->customOAnalogColor) {
|
|
|
|
|
m_analogPanels->upsAnalogs[i]->setArcColor(1,m_settingData->analogOKColor); // doesn't make background
|
|
|
|
|
m_analogPanels->upsAnalogs[i]->setArcColor(2,m_settingData->analogWarnningColor); // doesn't make background
|
|
|
|
|
m_analogPanels->upsAnalogs[i]->setArcColor(3,m_settingData->analogErrorColor); // doesn't make background
|
|
|
|
|
}
|
|
|
|
|
// po vygenerovani panelu jsou standartni barvy nastaveny automaticky
|
|
|
|
|
//nastavime mezikruzi
|
|
|
|
|
for (int j = 0; j < 5; j++ ) {
|
|
|
|
|
if (!((analogMemberData.scaleStruct[j].start == 0) && (analogMemberData.scaleStruct[j].end ==0 ))) {
|
|
|
|
|
m_analogPanels->upsAnalogs[i]->addArc (analogMemberData.scaleStruct[j].start,analogMemberData.scaleStruct[j].end,analogMemberData.scaleStruct[j].scaleColor, false); // doesn't make background
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
m_analogPanels->upsAnalogs[i]->setText(analogMemberData.nameAnalog,analogMemberData.nameUnit);
|
|
|
|
|
m_analogPanels->upsAnalogs[i]->setPalette(m_aPanelPalette);
|
|
|
|
|
m_analogPanels->upsAnalogs[i]->makeBackground(false); // makes background of analog panel
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//qDebug ( "KNutPanelMeter::activateAnalogs 1" );
|
|
|
|
|
m_analogArea->repaint(); //repaint all analog panels, background was made already
|
|
|
|
|
//qDebug ("KNutPanelMeter::activateAnalogs - end");
|
|
|
|
|
// analogSV->resizeContents(sizeHint().width(),sizeHint().height());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void KNutPanelMeter::setSize (bool showPanels) {
|
|
|
|
|
int row =0;
|
|
|
|
|
int col=0;
|
|
|
|
|
int maxCols =0;
|
|
|
|
|
int maxRows =0;
|
|
|
|
|
|
|
|
|
|
if (!m_activeUpsInfo->netError) {
|
|
|
|
|
for (int i=0; i< knc::NumberOfVars; i++) {
|
|
|
|
|
if (m_activeUpsInfo->record.upsVarCode[i] != 0) {
|
|
|
|
|
if (maxCols < m_settingData->countCols) maxCols++;
|
|
|
|
|
maxRows = row+1;
|
|
|
|
|
// jestlize upsAnalogs =0 nejsou aktivovany
|
|
|
|
|
if (m_analogPanels->upsAnalogs[i]) {
|
|
|
|
|
m_analogPanels->upsAnalogs[i]->move (SpacePanels + (SpacePanels)+(col*(KNutAnalog::AnalogWidth+SpacePanels)),SpacePanels+(row*(KNutAnalog::AnalogWidth+SpacePanels)));
|
|
|
|
|
if (showPanels) m_analogPanels->upsAnalogs[i]->show();
|
|
|
|
|
}
|
|
|
|
|
col++;
|
|
|
|
|
if (col > (m_settingData->countCols-1) ) {col=0; row++;}; // prechod na dalsi radku
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// musime nastavit velikost
|
|
|
|
|
m_widthArea = (KNutAnalog::AnalogWidth + SpacePanels)*maxCols +2*SpacePanels; // sirka
|
|
|
|
|
m_heightArea = (KNutAnalog::AnalogWidth + SpacePanels)*(maxRows) + SpacePanels; // minimalni velikost podle mericich panelu
|
|
|
|
|
|
|
|
|
|
m_analogArea->setMinimumSize (m_widthArea,m_heightArea);
|
|
|
|
|
adjustSize();
|
|
|
|
|
resizeContents(m_widthArea,m_heightArea);
|
|
|
|
|
repaint();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void KNutPanelMeter::repaintScaleAnalogPanel (int panelNumber, float value) {
|
|
|
|
|
|
|
|
|
|
if (m_analogPanels->upsAnalogs[panelNumber] != 0L){
|
|
|
|
|
switch (m_activeUpsInfo->record.upsVarCode[panelNumber]) {
|
|
|
|
|
case knc::VarCurrent : // output.current
|
|
|
|
|
if (m_analogPanels->scaleEnd[panelNumber] < MaxCurrent) {
|
|
|
|
|
if (m_analogPanels->scaleEnd[panelNumber] < value) {
|
|
|
|
|
m_analogPanels->scaleEnd[panelNumber]=(static_cast<int>(floor((value+1)/5)))*5 +5;
|
|
|
|
|
if (m_analogPanels->scaleEnd[panelNumber] > MaxCurrent) m_analogPanels->scaleEnd[panelNumber]=MaxCurrent;
|
|
|
|
|
m_analogPanels->upsAnalogs[panelNumber]->setRange(m_analogPanels->scaleStart[panelNumber],m_analogPanels->scaleEnd[panelNumber],true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case knc::VarBattVolt : // battery.voltage
|
|
|
|
|
if (m_analogPanels->scaleEnd[panelNumber] < MaxBattVolt) {
|
|
|
|
|
if (m_analogPanels->scaleEnd[panelNumber] < value) {
|
|
|
|
|
m_analogPanels->scaleEnd[panelNumber]=(static_cast<int>(floor((value+1)/10)))*10 +10;
|
|
|
|
|
if (m_analogPanels->scaleEnd[panelNumber] > MaxBattVolt) m_analogPanels->scaleEnd[panelNumber]=MaxBattVolt;
|
|
|
|
|
m_analogPanels->upsAnalogs[panelNumber]->setRange(m_analogPanels->scaleStart[panelNumber],m_analogPanels->scaleEnd[panelNumber],true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case knc::VarBattCurrent : // battery.current
|
|
|
|
|
if (m_analogPanels->scaleEnd[panelNumber] < MaxBattCurrent) {
|
|
|
|
|
if ((m_analogPanels->scaleEnd[panelNumber] < value) || (m_analogPanels->scaleStart[panelNumber] > value)) {
|
|
|
|
|
if ((value >10) || (value <- 15)) {
|
|
|
|
|
if ((value >20) || (value < -30)) {
|
|
|
|
|
m_analogPanels->scaleEnd[panelNumber]=30;
|
|
|
|
|
m_analogPanels->scaleStart[panelNumber]=-45;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
m_analogPanels->scaleEnd[panelNumber]=20;
|
|
|
|
|
m_analogPanels->scaleStart[panelNumber]=-30;
|
|
|
|
|
}
|
|
|
|
|
m_analogPanels->upsAnalogs[panelNumber]->setPointer(value); // jistota pokud by nam to nekde propadlo
|
|
|
|
|
m_analogPanels->upsAnalogs[panelNumber]->hide();// schovame analogovy panel hides analog panel
|
|
|
|
|
m_analogPanels->upsAnalogs[panelNumber]->setRange (m_analogPanels->scaleStart[panelNumber],m_analogPanels->scaleEnd[panelNumber]);
|
|
|
|
|
m_analogPanels->upsAnalogs[panelNumber]->repaint(); // prekreslime , repaints panel
|
|
|
|
|
m_analogPanels->upsAnalogs[panelNumber]->show(); //zobrazime merak shows analog panel
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
} // end switch
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void KNutPanelMeter::repaintAnalogPointer (int panelNumber, float value, bool run) {
|
|
|
|
|
if (m_analogPanels->upsAnalogs[panelNumber] != 0L)
|
|
|
|
|
m_analogPanels->upsAnalogs[panelNumber]->setPointer (value,run); // nastavi hodnotu rucicky
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void KNutPanelMeter::setAnalogBG(QPalette aPanelPalette) {
|
|
|
|
|
|
|
|
|
|
m_aPanelPalette = aPanelPalette;
|
|
|
|
|
for (int i=0; i< knc::NumberOfVars; i++) {
|
|
|
|
|
if ((m_activeUpsInfo->record.upsVarCode[i]) && (m_analogPanels->upsAnalogs[i]))
|
|
|
|
|
m_analogPanels->upsAnalogs[i]->setPalette(m_aPanelPalette);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void KNutPanelMeter::changeAnalogPanelsDigProcessing (void) {
|
|
|
|
|
|
|
|
|
|
if (m_analogPanels == 0) return;
|
|
|
|
|
|
|
|
|
|
for (int i=0; i< knc::NumberOfVars; i++) {
|
|
|
|
|
if (m_analogPanels->upsAnalogs[i] != 0L) m_analogPanels->upsAnalogs[i]->setDigitalProcesing(m_settingData->typeDigitalProcessing,true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void KNutPanelMeter::repaintAnalogPanels (bool repaintFrequencyPanels, bool repaintVoltagePanels, bool repaintAllPanels) {
|
|
|
|
|
|
|
|
|
|
KNutVarData::VarStrucDef analogMemberData;
|
|
|
|
|
|
|
|
|
|
if (m_analogPanels == 0) return;
|
|
|
|
|
|
|
|
|
|
// pregenerovani panelu slouzi pro settingMain a setting Analog
|
|
|
|
|
for (int i=0; i< knc::NumberOfVars; i++) {
|
|
|
|
|
if ((m_activeUpsInfo->record.upsVarCode[i]) && (m_analogPanels->upsAnalogs[i])) {
|
|
|
|
|
//if upsAnalogs[x] is set to zero, this upsAnalog is not used
|
|
|
|
|
// record.upsVarCode contain list of code of analog meter
|
|
|
|
|
// 0 is code for none analog meter, 1 for Input Voltage, 2 for Battery Charge,
|
|
|
|
|
if (((m_activeUpsInfo->record.upsVarCode[i] == knc::VarAcfreq) && (repaintFrequencyPanels)) ||
|
|
|
|
|
((m_activeUpsInfo->record.upsVarCode[i] == knc::VarOutFreq) && (repaintFrequencyPanels)) ||
|
|
|
|
|
(((m_activeUpsInfo->record.upsVarCode[i] == knc::VarUtility) ||
|
|
|
|
|
(m_activeUpsInfo->record.upsVarCode[i] == knc::VarOutVolt)) && (repaintVoltagePanels))) {
|
|
|
|
|
|
|
|
|
|
analogMemberData=m_analogRecords->getData (m_activeUpsInfo->record.upsVarCode[i]); // nacteme data
|
|
|
|
|
|
|
|
|
|
m_analogPanels->upsAnalogs[i]->hide();// schovame analogovy panel
|
|
|
|
|
m_analogPanels->upsAnalogs[i]->delArc(); //zrusime segmenty
|
|
|
|
|
m_analogPanels->upsAnalogs[i]->setRange (analogMemberData.start,analogMemberData.end);
|
|
|
|
|
for (int j = 0; j < 5; j++ ) {
|
|
|
|
|
if (!((analogMemberData.scaleStruct[j].start == 0) && (analogMemberData.scaleStruct[j].end ==0 ))) {
|
|
|
|
|
m_analogPanels->upsAnalogs[i]->addArc (analogMemberData.scaleStruct[j].start,analogMemberData.scaleStruct[j].end,analogMemberData.scaleStruct[j].scaleColor, false);
|
|
|
|
|
} // end if (!
|
|
|
|
|
}// end for (int i=0
|
|
|
|
|
|
|
|
|
|
m_analogPanels->upsAnalogs[i]->makeBackground(false); // repaints analog meter
|
|
|
|
|
m_analogPanels->upsAnalogs[i]->repaintPointer(false); // repaints analog meter
|
|
|
|
|
m_analogPanels->upsAnalogs[i]->repaint(); // repaints analog meter
|
|
|
|
|
m_analogPanels->upsAnalogs[i]->show(); // shows analog meter
|
|
|
|
|
} // end if (((activeUpsInfo
|
|
|
|
|
if (repaintAllPanels) {
|
|
|
|
|
if (m_settingData->customOAnalogColor) {
|
|
|
|
|
m_analogPanels->upsAnalogs[i]->setPointerColor(m_settingData->analogFingerColor);
|
|
|
|
|
m_analogPanels->upsAnalogs[i]->setArcColor(1,m_settingData->analogOKColor);
|
|
|
|
|
m_analogPanels->upsAnalogs[i]->setArcColor(2,m_settingData->analogWarnningColor);
|
|
|
|
|
m_analogPanels->upsAnalogs[i]->setArcColor(3,m_settingData->analogErrorColor);
|
|
|
|
|
m_analogPanels->upsAnalogs[i]->setScaleColor(m_settingData->analogScaleColor);
|
|
|
|
|
m_analogPanels->upsAnalogs[i]->setFontColor(m_settingData->analogFontColor);
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
m_analogPanels->upsAnalogs[i]->setPointerColor (DEFAULT_FINGER_COLOR);
|
|
|
|
|
m_analogPanels->upsAnalogs[i]->setDefaultArcColor();
|
|
|
|
|
m_analogPanels->upsAnalogs[i]->setScaleColor (DEFAULT_SCALE_COLOR);
|
|
|
|
|
m_analogPanels->upsAnalogs[i]->setFontColor (DEFAULT_FONT_COLOR);
|
|
|
|
|
}
|
|
|
|
|
m_analogPanels->upsAnalogs[i]->repaintAll();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} // end for
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void KNutPanelMeter::zeroingPanels (void) {
|
|
|
|
|
if (m_analogPanels) {
|
|
|
|
|
for (int i=0; i< knc::NumberOfVars; i++) {
|
|
|
|
|
if ((m_analogPanels->upsAnalogs[i] != 0L) && (m_activeUpsInfo->record.upsVarCode[i] != 0)) // jistota pokud by nam to nekde propadlo
|
|
|
|
|
m_analogPanels->upsAnalogs[i]->setPointer (0); // nastavi hodnotu rucicky
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
QSize KNutPanelMeter::sizeHint (void){
|
|
|
|
|
|
|
|
|
|
return QSize(m_widthArea,m_heightArea);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void KNutPanelMeter::slotSetPanelsFont(QFont newFont) {
|
|
|
|
|
|
|
|
|
|
for (int i=0; i< knc::NumberOfVars; i++) {
|
|
|
|
|
if ((m_activeUpsInfo->record.upsVarCode[i]) && (m_analogPanels->upsAnalogs[i])) {
|
|
|
|
|
m_analogPanels->upsAnalogs[i]->slotSetAllFont(newFont);
|
|
|
|
|
// je nutno prekresli i rucicku
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#include "knutpanelmeter.moc"
|