|
|
|
/***************************************************************************
|
|
|
|
knutprintupsvar.cpp - description
|
|
|
|
-------------------
|
|
|
|
begin : St cec 3 2002
|
|
|
|
copyright : (C) 2002 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 "knutprintupsvar.h"
|
|
|
|
#include "knutvardata.h"
|
|
|
|
|
|
|
|
#include <kmessagebox.h>
|
|
|
|
#include <kglobal.h>
|
|
|
|
#include <kiconloader.h>
|
|
|
|
|
|
|
|
#include <tqgroupbox.h>
|
|
|
|
#include <tqscrollview.h>
|
|
|
|
#include <tqtooltip.h>
|
|
|
|
#include <tqlabel.h>
|
|
|
|
#include <tqframe.h>
|
|
|
|
#include <tqpixmap.h>
|
|
|
|
#include <tqstring.h>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//#include <iostream>
|
|
|
|
|
|
|
|
|
|
|
|
// od verze 0.6.0 nebudeme vytvaret vlastni spojeni
|
|
|
|
|
|
|
|
KNutPrintUpsVar::KNutPrintUpsVar(KNutNet* const upsNet, const bool useDescription, TQWidget* parent, const char* name, const bool modal )
|
|
|
|
: KDialogBase(Plain, i18n("Variables"),User1|Cancel,Ok, parent, name, modal, true), myUpsNet(upsNet){
|
|
|
|
|
|
|
|
upsVarDef upsVar;
|
|
|
|
upsICommDef upsIComm;
|
|
|
|
dataVar pointerVar;
|
|
|
|
dataList.clear();
|
|
|
|
|
|
|
|
if (!upsNet) return;
|
|
|
|
|
|
|
|
setButtonText(User1,i18n("Reload Vars"));
|
|
|
|
setName( "knutprintupsvar" );
|
|
|
|
setCaption( i18n("UPS variables") );
|
|
|
|
|
|
|
|
//int error;
|
|
|
|
if (myUpsNet->getState() != KNutNet::Connected) {
|
|
|
|
KNutVarData::showError (KNutNet::NotConnection);
|
|
|
|
upsConnectOk = false;
|
|
|
|
page=0;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
upsConnectOk = true;
|
|
|
|
countVars=myUpsNet->readNumberVars(KNutNet::AllVars);
|
|
|
|
countRWVars=myUpsNet->readNumberVars(KNutNet::RWVars);
|
|
|
|
countIComms=myUpsNet->readNumberComms();
|
|
|
|
|
|
|
|
KIconLoader *loader = TDEGlobal::iconLoader();
|
|
|
|
dirPixmap=loader->loadIcon ("folder_open",KIcon::Small,16);
|
|
|
|
|
|
|
|
page = plainPage();
|
|
|
|
TQHBoxLayout* upsVarsMainLayout = new TQHBoxLayout(page);
|
|
|
|
|
|
|
|
table = new KListView(page);
|
|
|
|
table->setRootIsDecorated(true);
|
|
|
|
|
|
|
|
table->setAllColumnsShowFocus( TRUE );
|
|
|
|
table->setFullWidth ( true );
|
|
|
|
|
|
|
|
table->addColumn( i18n("Name") );
|
|
|
|
table->addColumn( i18n("Value") );
|
|
|
|
if (useDescription)
|
|
|
|
table->addColumn( i18n("Description") );
|
|
|
|
table->setSorting (-1);
|
|
|
|
|
|
|
|
upsVarsMainLayout->addWidget(table);
|
|
|
|
|
|
|
|
|
|
|
|
KListViewItem* myListItem;
|
|
|
|
if (countIComms) {
|
|
|
|
|
|
|
|
ICommList = new KListViewItem( table, i18n("Instant Commands"));
|
|
|
|
ICommList->setOpen(true);
|
|
|
|
|
|
|
|
for (int i=0; i<countIComms; i++) {
|
|
|
|
myUpsNet->readIComm(i+1,upsIComm);
|
|
|
|
|
|
|
|
myListItem = addListItem( ICommList,upsIComm.upsCommName,"");
|
|
|
|
if ((!upsVar.upsDescription.isEmpty()) && useDescription)
|
|
|
|
myListItem->setText(2,upsIComm.upsDescription);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (countRWVars) {
|
|
|
|
RWVarsList = new KListViewItem( table, i18n("Read/Write Variables"));
|
|
|
|
RWVarsList->setOpen(true);
|
|
|
|
for (int i=0; i<countVars; i++) {
|
|
|
|
myUpsNet->readVars(i+1,upsVar);
|
|
|
|
|
|
|
|
if (!upsVar.upsVarType) {
|
|
|
|
pointerVar.myName=upsVar.upsVarName;
|
|
|
|
pointerVar.myValue = addListItem( RWVarsList,upsVar.upsVarName,upsVar.upsValue);
|
|
|
|
|
|
|
|
if ((!upsVar.upsDescription.isEmpty()) && useDescription)
|
|
|
|
pointerVar.myValue->setText(2,upsVar.upsDescription);
|
|
|
|
|
|
|
|
dataList.push_back(pointerVar);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
ROVarsList = new KListViewItem( table, i18n("Read Only Variables"));
|
|
|
|
ROVarsList->setOpen(true);
|
|
|
|
|
|
|
|
for (int i=0; i<countVars; i++) {
|
|
|
|
myUpsNet->readVars(i+1,upsVar);
|
|
|
|
if (upsVar.upsVarType) {
|
|
|
|
|
|
|
|
pointerVar.myName=upsVar.upsVarName;
|
|
|
|
pointerVar.myValue = addListItem( ROVarsList,upsVar.upsVarName,upsVar.upsValue);
|
|
|
|
|
|
|
|
if ((!upsVar.upsDescription.isEmpty()) && useDescription)
|
|
|
|
pointerVar.myValue->setText(2,upsVar.upsDescription);
|
|
|
|
|
|
|
|
dataList.push_back(pointerVar);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
connect (this,TQT_SIGNAL(user1Clicked()),this,TQT_SLOT(slotReloadVars()));
|
|
|
|
} // end else
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
KNutPrintUpsVar::~KNutPrintUpsVar(){
|
|
|
|
|
|
|
|
dataList.clear();
|
|
|
|
if (page) delete page;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void KNutPrintUpsVar::slotReloadVars (void) {
|
|
|
|
upsVarDef upsVar;
|
|
|
|
|
|
|
|
if (myUpsNet->getUpsValues(true) !=0)
|
|
|
|
KNutVarData::showError (myUpsNet->getError());
|
|
|
|
else {
|
|
|
|
|
|
|
|
TQValueVector<dataVar>::const_iterator it;
|
|
|
|
for (it = dataList.begin(); it != dataList.end(); it++) {
|
|
|
|
myUpsNet->readVars((*it).myName, upsVar);
|
|
|
|
(*it).myValue->setText (1, upsVar.upsValue);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
KListViewItem* KNutPrintUpsVar::addListItem (KListViewItem* table, TQString varName, TQString value) {
|
|
|
|
KListViewItem* myListItem;
|
|
|
|
KListViewItem* helpListItem;
|
|
|
|
TQString left;
|
|
|
|
int n;
|
|
|
|
|
|
|
|
myListItem = table;
|
|
|
|
do {
|
|
|
|
n = varName.find(".");
|
|
|
|
if (n > 0) {
|
|
|
|
left = varName.left(n);
|
|
|
|
varName = varName.mid(n+1);
|
|
|
|
if (!(helpListItem = existListItem( myListItem,left))) {
|
|
|
|
myListItem = new KListViewItem( myListItem, left);
|
|
|
|
myListItem->setOpen(true);
|
|
|
|
}
|
|
|
|
else myListItem = helpListItem;
|
|
|
|
if (!myListItem->pixmap(0)) myListItem->setPixmap(0,dirPixmap);
|
|
|
|
}
|
|
|
|
else { // end part
|
|
|
|
helpListItem = new KListViewItem( myListItem, varName, value);
|
|
|
|
helpListItem->setOpen(true);
|
|
|
|
return helpListItem;
|
|
|
|
}
|
|
|
|
} while (n > -1);
|
|
|
|
return 0; // for compiler only
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
KListViewItem* KNutPrintUpsVar::existListItem (KListViewItem* listItem, TQString name) {
|
|
|
|
KListViewItem* myItem;
|
|
|
|
|
|
|
|
if (!(myItem = (KListViewItem *)listItem->firstChild())) return 0l;
|
|
|
|
while (myItem) {
|
|
|
|
if (myItem->text(0) == name) return myItem;
|
|
|
|
myItem = (KListViewItem *)myItem->nextSibling();
|
|
|
|
}
|
|
|
|
return 0l;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool KNutPrintUpsVar::upsOk (void) { return upsConnectOk; }
|
|
|
|
|
|
|
|
|
|
|
|
#include "knutprintupsvar.moc"
|
|
|
|
|