2019-10-07 Fred Gleason <fredg@paravelsystems.com>

* Refactored rdgpimon(1) to use the 'RDDialog' and 'RDWidget'
	base classes.
This commit is contained in:
Fred Gleason 2019-10-07 13:41:44 -04:00
parent c8ed729c98
commit 2c5c7886e2
5 changed files with 36 additions and 78 deletions

View File

@ -19169,3 +19169,6 @@
2019-10-07 Fred Gleason <fredg@paravelsystems.com> 2019-10-07 Fred Gleason <fredg@paravelsystems.com>
* Refactored rddbconfig(8) to use the 'RDDialog' and 'RDWidget' * Refactored rddbconfig(8) to use the 'RDDialog' and 'RDWidget'
base classes. base classes.
2019-10-07 Fred Gleason <fredg@paravelsystems.com>
* Refactored rdgpimon(1) to use the 'RDDialog' and 'RDWidget'
base classes.

View File

@ -2,7 +2,7 @@
// //
// A Qt-based application for testing general purpose input (GPI) devices. // A Qt-based application for testing general purpose input (GPI) devices.
// //
// (C) Copyright 2002-2018 Fred Gleason <fredg@paravelsystems.com> // (C) Copyright 2002-2019 Fred Gleason <fredg@paravelsystems.com>
// //
// This program is free software; you can redistribute it and/or modify // This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2 as // it under the terms of the GNU General Public License version 2 as
@ -18,27 +18,19 @@
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
// //
#include <gpi_label.h> #include "gpi_label.h"
GpiLabel::GpiLabel(QWidget *parent) GpiLabel::GpiLabel(QWidget *parent)
: QWidget(parent) : RDWidget(parent)
{ {
gpi_line=-1; gpi_line=-1;
//
// Generate Fonts
//
QFont line_font("Helvetica",18,QFont::Bold);
line_font.setPixelSize(18);
QFont cart_font("Helvetica",12,QFont::Bold);
cart_font.setPixelSize(12);
// //
// Line Label // Line Label
// //
gpi_line_label=new QLabel(this); gpi_line_label=new QLabel(this);
gpi_line_label->setGeometry(0,0,59,33); gpi_line_label->setGeometry(0,0,59,33);
gpi_line_label->setFont(line_font); gpi_line_label->setFont(bigButtonFont());
gpi_line_label->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter); gpi_line_label->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
gpi_line_label->setPalette(Qt::gray); gpi_line_label->setPalette(Qt::gray);
gpi_line_label->setStyleSheet("background-color:"+QColor(Qt::gray).name()); gpi_line_label->setStyleSheet("background-color:"+QColor(Qt::gray).name());
@ -52,7 +44,7 @@ GpiLabel::GpiLabel(QWidget *parent)
p.setColor(QPalette::Disabled,QColorGroup::Foreground,Qt::darkGreen); p.setColor(QPalette::Disabled,QColorGroup::Foreground,Qt::darkGreen);
gpi_oncart_label=new QLabel(this); gpi_oncart_label=new QLabel(this);
gpi_oncart_label->setGeometry(0,33,59,16); gpi_oncart_label->setGeometry(0,33,59,16);
gpi_oncart_label->setFont(cart_font); gpi_oncart_label->setFont(labelFont());
gpi_oncart_label->setAlignment(Qt::AlignHCenter|Qt::AlignTop); gpi_oncart_label->setAlignment(Qt::AlignHCenter|Qt::AlignTop);
gpi_oncart_label->setPalette(p); gpi_oncart_label->setPalette(p);
@ -64,7 +56,7 @@ GpiLabel::GpiLabel(QWidget *parent)
p.setColor(QPalette::Disabled,QColorGroup::Foreground,Qt::darkRed); p.setColor(QPalette::Disabled,QColorGroup::Foreground,Qt::darkRed);
gpi_offcart_label=new QLabel(this); gpi_offcart_label=new QLabel(this);
gpi_offcart_label->setGeometry(0,49,59,16); gpi_offcart_label->setGeometry(0,49,59,16);
gpi_offcart_label->setFont(cart_font); gpi_offcart_label->setFont(labelFont());
gpi_offcart_label->setAlignment(Qt::AlignHCenter|Qt::AlignTop); gpi_offcart_label->setAlignment(Qt::AlignHCenter|Qt::AlignTop);
gpi_offcart_label->setPalette(p); gpi_offcart_label->setPalette(p);
} }

View File

@ -2,7 +2,7 @@
// //
// A Qt-based application for testing general purpose input (GPI) devices. // A Qt-based application for testing general purpose input (GPI) devices.
// //
// (C) Copyright 2002-2018 Fred Gleason <fredg@paravelsystems.com> // (C) Copyright 2002-2019 Fred Gleason <fredg@paravelsystems.com>
// //
// This program is free software; you can redistribute it and/or modify // This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2 as // it under the terms of the GNU General Public License version 2 as
@ -21,10 +21,11 @@
#ifndef GPI_LABEL_H #ifndef GPI_LABEL_H
#define GPI_LABEL_H #define GPI_LABEL_H
#include <qwidget.h>
#include <qlabel.h> #include <qlabel.h>
class GpiLabel : public QWidget #include <rdwidget.h>
class GpiLabel : public RDWidget
{ {
Q_OBJECT Q_OBJECT
public: public:

View File

@ -2,7 +2,7 @@
// //
// A Qt-based application for testing General Purpose Input (GPI) devices. // A Qt-based application for testing General Purpose Input (GPI) devices.
// //
// (C) Copyright 2002-2018 Fred Gleason <fredg@paravelsystems.com> // (C) Copyright 2002-2019 Fred Gleason <fredg@paravelsystems.com>
// //
// This program is free software; you can redistribute it and/or modify // This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2 as // it under the terms of the GNU General Public License version 2 as
@ -18,25 +18,11 @@
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
// //
#include <stdlib.h>
#include <qapplication.h> #include <qapplication.h>
#include <qwindowsstyle.h>
#include <qwidget.h>
#include <qpushbutton.h>
#include <qrect.h>
#include <qpoint.h>
#include <qpainter.h>
#include <qstring.h>
#include <qmessagebox.h> #include <qmessagebox.h>
#include <qlineedit.h>
#include <qtextcodec.h>
#include <qtranslator.h> #include <qtranslator.h>
#include <rdapplication.h>
#include <rddb.h>
#include <rdescape_string.h> #include <rdescape_string.h>
#include <rdlistviewitem.h>
#include <rdreport.h> #include <rdreport.h>
#include <rdtextfile.h> #include <rdtextfile.h>
@ -47,8 +33,8 @@
// //
#include "../icons/rivendell-22x22.xpm" #include "../icons/rivendell-22x22.xpm"
MainWidget::MainWidget(QWidget *parent) MainWidget::MainWidget(RDConfig *c,QWidget *parent)
:QWidget(parent) : RDWidget(c,parent)
{ {
QString err_msg; QString err_msg;
@ -78,23 +64,8 @@ MainWidget::MainWidget(QWidget *parent)
// //
// Set Window Size // Set Window Size
// //
setMinimumWidth(sizeHint().width()); setMinimumSize(sizeHint());
setMaximumWidth(sizeHint().width()); setMaximumSize(sizeHint());
setMinimumHeight(sizeHint().height());
setMaximumHeight(sizeHint().height());
//
// Create Fonts
//
QFont font("helvetica",10,QFont::Normal);
font.setPixelSize(10);
setFont(font);
QFont list_font("helvetica",12,QFont::Normal);
list_font.setPixelSize(12);
QFont main_font("helvetica",12,QFont::Bold);
main_font.setPixelSize(12);
QFont title_font("helvetica",14,QFont::Bold);
title_font.setPixelSize(14);
// //
// Create And Set Icon // Create And Set Icon
@ -135,7 +106,7 @@ MainWidget::MainWidget(QWidget *parent)
gpi_type_box->insertItem(tr("GPO (Outputs)")); gpi_type_box->insertItem(tr("GPO (Outputs)"));
QLabel *label=new QLabel(gpi_type_box,tr("Show:"),this); QLabel *label=new QLabel(gpi_type_box,tr("Show:"),this);
label->setGeometry(20,10,55,21); label->setGeometry(20,10,55,21);
label->setFont(main_font); label->setFont(labelFont());
label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
connect(gpi_type_box,SIGNAL(activated(int)), connect(gpi_type_box,SIGNAL(activated(int)),
this,SLOT(matrixActivatedData(int))); this,SLOT(matrixActivatedData(int)));
@ -150,7 +121,7 @@ MainWidget::MainWidget(QWidget *parent)
} }
label=new QLabel(gpi_matrix_box,tr("Matrix:"),this); label=new QLabel(gpi_matrix_box,tr("Matrix:"),this);
label->setGeometry(220,10,55,21); label->setGeometry(220,10,55,21);
label->setFont(main_font); label->setFont(labelFont());
label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
connect(gpi_matrix_box,SIGNAL(activated(int)), connect(gpi_matrix_box,SIGNAL(activated(int)),
this,SLOT(matrixActivatedData(int))); this,SLOT(matrixActivatedData(int)));
@ -190,7 +161,7 @@ MainWidget::MainWidget(QWidget *parent)
// //
label=new QLabel(tr("Green = ON Cart"),this); label=new QLabel(tr("Green = ON Cart"),this);
label->setGeometry(200,370,300,12); label->setGeometry(200,370,300,12);
label->setFont(main_font); label->setFont(labelFont());
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter); label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
QPalette p=palette(); QPalette p=palette();
p.setColor(QPalette::Active,QColorGroup::Foreground,Qt::darkGreen); p.setColor(QPalette::Active,QColorGroup::Foreground,Qt::darkGreen);
@ -200,7 +171,7 @@ MainWidget::MainWidget(QWidget *parent)
label=new QLabel(tr("Red = OFF Cart"),this); label=new QLabel(tr("Red = OFF Cart"),this);
label->setGeometry(200,392,300,12); label->setGeometry(200,392,300,12);
label->setFont(main_font); label->setFont(labelFont());
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter); label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
p.setColor(QPalette::Active,QColorGroup::Foreground,Qt::darkRed); p.setColor(QPalette::Active,QColorGroup::Foreground,Qt::darkRed);
p.setColor(QPalette::Inactive,QColorGroup::Foreground,Qt::darkRed); p.setColor(QPalette::Inactive,QColorGroup::Foreground,Qt::darkRed);
@ -211,7 +182,7 @@ MainWidget::MainWidget(QWidget *parent)
// Events Log // Events Log
// //
label=new QLabel(tr("Events Log"),this); label=new QLabel(tr("Events Log"),this);
label->setFont(title_font); label->setFont(sectionLabelFont());
label->setAlignment(Qt::AlignCenter); label->setAlignment(Qt::AlignCenter);
label->setGeometry(110,423,sizeHint().width()-220,30); label->setGeometry(110,423,sizeHint().width()-220,30);
@ -222,7 +193,7 @@ MainWidget::MainWidget(QWidget *parent)
this,SLOT(eventsDateChangedData(const QDate &))); this,SLOT(eventsDateChangedData(const QDate &)));
gpi_events_date_label=new QLabel(gpi_events_date_edit,tr("Date")+":",this); gpi_events_date_label=new QLabel(gpi_events_date_edit,tr("Date")+":",this);
gpi_events_date_label->setGeometry(100,453,50,20); gpi_events_date_label->setGeometry(100,453,50,20);
gpi_events_date_label->setFont(main_font); gpi_events_date_label->setFont(labelFont());
gpi_events_date_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); gpi_events_date_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
gpi_events_state_box=new QComboBox(this); gpi_events_state_box=new QComboBox(this);
@ -234,11 +205,10 @@ MainWidget::MainWidget(QWidget *parent)
this,SLOT(eventsStateChangedData(int))); this,SLOT(eventsStateChangedData(int)));
gpi_events_state_label=new QLabel(gpi_events_state_box,tr("State")+":",this); gpi_events_state_label=new QLabel(gpi_events_state_box,tr("State")+":",this);
gpi_events_state_label->setGeometry(275,453,50,20); gpi_events_state_label->setGeometry(275,453,50,20);
gpi_events_state_label->setFont(main_font); gpi_events_state_label->setFont(labelFont());
gpi_events_state_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); gpi_events_state_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
gpi_events_list=new RDListView(this); gpi_events_list=new RDListView(this);
gpi_events_list->setFont(main_font);
gpi_events_list->setGeometry(110,480,sizeHint().width()-220,230); gpi_events_list->setGeometry(110,480,sizeHint().width()-220,230);
gpi_events_list->setItemMargin(5); gpi_events_list->setItemMargin(5);
gpi_events_list->setSelectionMode(Q3ListView::NoSelection); gpi_events_list->setSelectionMode(Q3ListView::NoSelection);
@ -256,7 +226,7 @@ MainWidget::MainWidget(QWidget *parent)
gpi_events_scroll_button=new QPushButton(tr("Scroll"),this); gpi_events_scroll_button=new QPushButton(tr("Scroll"),this);
gpi_events_scroll_button->setGeometry(sizeHint().width()-100,510,80,50); gpi_events_scroll_button->setGeometry(sizeHint().width()-100,510,80,50);
gpi_events_scroll_button->setFont(main_font); gpi_events_scroll_button->setFont(buttonFont());
connect(gpi_events_scroll_button,SIGNAL(clicked()), connect(gpi_events_scroll_button,SIGNAL(clicked()),
this,SLOT(eventsScrollData())); this,SLOT(eventsScrollData()));
gpi_scroll_color=palette(); gpi_scroll_color=palette();
@ -275,7 +245,7 @@ MainWidget::MainWidget(QWidget *parent)
gpi_events_report_button=new QPushButton(tr("Report"),this); gpi_events_report_button=new QPushButton(tr("Report"),this);
gpi_events_report_button->setGeometry(sizeHint().width()-100,570,80,50); gpi_events_report_button->setGeometry(sizeHint().width()-100,570,80,50);
gpi_events_report_button->setFont(main_font); gpi_events_report_button->setFont(buttonFont());
connect(gpi_events_report_button,SIGNAL(clicked()), connect(gpi_events_report_button,SIGNAL(clicked()),
this,SLOT(eventsReportData())); this,SLOT(eventsReportData()));
@ -776,7 +746,9 @@ int main(int argc,char *argv[])
// //
// Start Event Loop // Start Event Loop
// //
MainWidget *w=new MainWidget(); RDConfig *config=new RDConfig();
config->load();
MainWidget *w=new MainWidget(config);
a.setMainWidget(w); a.setMainWidget(w);
w->setGeometry(QRect(QPoint(0,0),w->sizeHint())); w->setGeometry(QRect(QPoint(0,0),w->sizeHint()));
w->show(); w->show();

View File

@ -2,7 +2,7 @@
// //
// A Qt-based application for testing general purpose input (GPI) devices. // A Qt-based application for testing general purpose input (GPI) devices.
// //
// (C) Copyright 2002-2018 Fred Gleason <fredg@paravelsystems.com> // (C) Copyright 2002-2019 Fred Gleason <fredg@paravelsystems.com>
// //
// This program is free software; you can redistribute it and/or modify // This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2 as // it under the terms of the GNU General Public License version 2 as
@ -21,23 +21,13 @@
#ifndef RDGPIMON_H #ifndef RDGPIMON_H
#define RDGPIMON_H #define RDGPIMON_H
#include <qwidget.h>
#include <qsize.h>
#include <qsizepolicy.h>
#include <qpushbutton.h>
#include <qcolor.h>
#include <qstring.h>
#include <qsignalmapper.h>
#include <qlabel.h>
#include <qsqldatabase.h>
#include <qcombobox.h>
#include <qpixmap.h>
#include <q3datetimeedit.h> #include <q3datetimeedit.h>
#include <qtimer.h>
#include <rdlistview.h> #include <qcombobox.h>
#include <rdmatrix.h> #include <rdmatrix.h>
#include <rdtransportbutton.h> #include <rdtransportbutton.h>
#include <rdwidget.h>
#include "gpi_label.h" #include "gpi_label.h"
@ -46,11 +36,11 @@
#define GPIMON_COLS 8 #define GPIMON_COLS 8
#define RDGPIMON_USAGE "\n" #define RDGPIMON_USAGE "\n"
class MainWidget : public QWidget class MainWidget : public RDWidget
{ {
Q_OBJECT Q_OBJECT
public: public:
MainWidget(QWidget *parent=0); MainWidget(RDConfig *c,QWidget *parent=0);
~MainWidget(); ~MainWidget();
QSize sizeHint() const; QSize sizeHint() const;
QSizePolicy sizePolicy() const; QSizePolicy sizePolicy() const;