RDMarkerWidget::RDMarkerWidget(const QString &caption,const QColor &color, unsigned samprate,QWidget *parent) : QWidget(parent) { mark_delete_mode=false; mark_value=0; mark_sample_rate=samprate; mark_lo_limit=-1; mark_hi_limit=-1; mark_lo_marker=NULL; mark_hi_marker=NULL; QFont button_font=QFont("Hevetica",12,QFont::Bold); button_font.setPixelSize(12); QFont label_font=QFont("Hevetica",12,QFont::Normal); label_font.setPixelSize(12); mark_edit=new RDMarkerEdit(this); mark_edit->setGeometry(68,11,95,21); mark_edit->setReadOnly(true); mark_edit->setDragEnabled(false); mark_edit->setFont(label_font); connect(mark_edit,SIGNAL(returnPressed()),this,SLOT(returnPressedData())); connect(mark_edit,SIGNAL(escapePressed()),this,SLOT(escapePressedData())); mark_button=new RDMarkerButton(this); mark_button->setToggleButton(true); mark_button->setGeometry(0,0,66,45); mark_button->setFlashColor(backgroundColor()); mark_button->setFlashPeriod(RDMARKERWIDGET_BUTTON_FLASH_PERIOD); mark_button->setPalette(QPalette(color,parent->backgroundColor())); mark_button->setFont(button_font); mark_button->setText(caption); connect(mark_button,SIGNAL(clicked()),this,SLOT(buttonClickedData())); }
void RDMarkerWidget::buttonClickedData() { if(mark_delete_mode) { mark_button->setOn(false); emit deleteClicked(); } else { if(!mark_button->isOn()) { returnPressedData(); } mark_button->setFlashingEnabled(mark_button->isOn()); mark_edit->setReadOnly(!mark_button->isOn()); emit selectionChanged(); } }
MainWidget::MainWidget(QWidget *parent) : QWidget(parent) { QString hostname="localhost"; unsigned port=LPCORE_CONNECTION_TCP_PORT; QString username; QString password; bool track_state=false; bool ok=false; // // Fonts // QFont label_font("helvetica",12,QFont::Bold); label_font.setPixelSize(12); // // Read Command Options // LPCmdSwitch *cmd= new LPCmdSwitch(qApp->argc(),qApp->argv(),"lpcore",LPCORE_USAGE); for(unsigned i=0;i<cmd->keys();i++) { if(cmd->key(i)=="--hostname") { hostname=cmd->value(i); cmd->setProcessed(i,true); } if(cmd->key(i)=="--port") { port=cmd->value(i).toUInt(&ok); if((!ok)||(port>0xFFFF)) { fprintf(stderr,"invalid port value\n"); exit(256); } cmd->setProcessed(i,true); } if(cmd->key(i)=="--username") { username=cmd->value(i); cmd->setProcessed(i,true); } if(cmd->key(i)=="--password") { password=cmd->value(i); cmd->setProcessed(i,true); } if(cmd->key(i)=="--track-state") { track_state=true; cmd->setProcessed(i,true); } if(!cmd->processed(i)) { fprintf(stderr,"unknown option \"%s\"\n", (const char *)cmd->key(i).toAscii()); exit(256); } } delete cmd; // // Open Syslog // openlog("lpcore",LOG_PERROR,LOG_USER); // // Connection // lp_connection=new LPConnection(track_state,this); connect(lp_connection,SIGNAL(messageReceived(const LPMessage &)), this,SLOT(messageReceivedData(const LPMessage &))); connect(lp_connection,SIGNAL(watchdogStateChanged(bool)), this,SLOT(watchdogStateChangedData(bool))); connect(lp_connection,SIGNAL(loggedIn(LPConnection::Result)), this,SLOT(loggedInData(LPConnection::Result))); connect(lp_connection, SIGNAL(socketError(QAbstractSocket::SocketError,const QString &)), this, SLOT(socketErrorData(QAbstractSocket::SocketError,const QString &))); // // Context Selector // lp_context_label=new QLabel(tr("Context")+":",this); lp_context_label->setFont(label_font); lp_context_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); lp_context_box=new QComboBox(this); lp_context_box->insertItem(-1,tr("Global")); lp_context_box->insertItem(-1,tr("Isolated")); lp_context_box->setCurrentIndex(1); connect(lp_context_box,SIGNAL(activated(int)), this,SLOT(contextChangedData(int))); lp_clear_button=new QPushButton(tr("Clear"),this); lp_clear_button->setFont(label_font); // // Send Widget // lp_send_edit=new QLineEdit(this); lp_send_edit->setDisabled(true); connect(lp_send_edit,SIGNAL(returnPressed()),this,SLOT(returnPressedData())); // // Receive Widget // lp_recv_edit=new QTextEdit(this); lp_recv_edit->setReadOnly(true); connect(lp_clear_button,SIGNAL(clicked()),lp_recv_edit,SLOT(clear())); contextChangedData(lp_context_box->currentIndex()); lp_connection->connectToHost(hostname,port,username,password); UpdateWindowTitle(); }