2021-02-10 Fred Gleason <fredg@paravelsystems.com>

* Refactored the 'Rivendell Services' dialog in rdlogmanager(1)
	to use the model based API.

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
Fred Gleason 2021-02-10 16:52:47 -05:00
parent 94839d69cb
commit 57922f947b
10 changed files with 47 additions and 148 deletions

View File

@ -21095,3 +21095,6 @@
the model based API. the model based API.
2021-02-10 Fred Gleason <fredg@paravelsystems.com> 2021-02-10 Fred Gleason <fredg@paravelsystems.com>
* Removed the 'Q3PopupMenu' dependency from rdlogmanager(1). * Removed the 'Q3PopupMenu' dependency from rdlogmanager(1).
2021-02-10 Fred Gleason <fredg@paravelsystems.com>
* Refactored the 'Rivendell Services' dialog in rdlogmanager(1)
to use the model based API.

View File

@ -2,7 +2,7 @@
// //
// List Rivendell Services and Report Ages // List Rivendell Services and Report Ages
// //
// (C) Copyright 2002-2019 Fred Gleason <fredg@paravelsystems.com> // (C) Copyright 2002-2021 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
@ -38,17 +38,19 @@ ListSvcs::ListSvcs(QWidget *parent)
// //
// Log List // Log List
// //
list_log_list=new Q3ListView(this); list_log_view=new RDTableView(this);
list_log_list->setAllColumnsShowFocus(true); list_log_model=new RDServiceListModel(false,this);
list_log_list->setItemMargin(5); list_log_model->setFont(font());
list_log_list->addColumn(tr("Service")); list_log_model->setPalette(palette());
list_log_list->setColumnAlignment(0,Qt::AlignLeft); list_log_view->setModel(list_log_model);
list_log_list->addColumn(tr("Oldest Report")); for(int i=2;i<list_log_model->columnCount();i++) {
list_log_list->setColumnAlignment(1,Qt::AlignCenter); list_log_view->hideColumn(i);
connect(list_log_list, }
SIGNAL(doubleClicked(Q3ListViewItem *,const QPoint &,int)), connect(list_log_view,SIGNAL(doubleClicked(const QModelIndex &)),
this, this,SLOT(listDoubleClickedData(const QModelIndex &)));
SLOT(listDoubleClickedData(Q3ListViewItem *,const QPoint &,int))); connect(list_log_model,SIGNAL(modelReset()),
list_log_view,SLOT(resizeColumnsToContents()));
list_log_view->resizeColumnsToContents();
// //
// Generate Report Button // Generate Report Button
@ -74,8 +76,6 @@ ListSvcs::ListSvcs(QWidget *parent)
list_close_button->setFont(buttonFont()); list_close_button->setFont(buttonFont());
list_close_button->setText(tr("C&lose")); list_close_button->setText(tr("C&lose"));
connect(list_close_button,SIGNAL(clicked()),this,SLOT(closeData())); connect(list_close_button,SIGNAL(clicked()),this,SLOT(closeData()));
RefreshList();
} }
@ -93,31 +93,33 @@ QSizePolicy ListSvcs::sizePolicy() const
void ListSvcs::generateData() void ListSvcs::generateData()
{ {
Q3ListViewItem *item=list_log_list->selectedItem(); QModelIndexList rows=list_log_view->selectionModel()->selectedRows();
if(item==NULL) {
if(rows.size()!=1) {
return; return;
} }
PickReportDates *dialog=new PickReportDates(item->text(0),this); PickReportDates *d=
dialog->exec(); new PickReportDates(list_log_model->serviceName(rows.first()),this);
delete dialog; d->exec();
delete d;
} }
void ListSvcs::purgeData() void ListSvcs::purgeData()
{ {
Q3ListViewItem *item=list_log_list->selectedItem(); QModelIndexList rows=list_log_view->selectionModel()->selectedRows();
if(item==NULL) {
if(rows.size()!=1) {
return; return;
} }
SvcRecDialog *dialog=new SvcRecDialog(item->text(0),this); SvcRecDialog *d=
dialog->exec(); new SvcRecDialog(list_log_model->serviceName(rows.first()),this);
delete dialog; d->exec();
RefreshLine(item); delete d;
} }
void ListSvcs::listDoubleClickedData(Q3ListViewItem *item,const QPoint &pt, void ListSvcs::listDoubleClickedData(const QModelIndex &index)
int c)
{ {
generateData(); generateData();
} }
@ -131,53 +133,8 @@ void ListSvcs::closeData()
void ListSvcs::resizeEvent(QResizeEvent *e) void ListSvcs::resizeEvent(QResizeEvent *e)
{ {
list_log_list->setGeometry(10,10,size().width()-20,size().height()-80); list_log_view->setGeometry(10,10,size().width()-20,size().height()-80);
list_generate_button->setGeometry(10,size().height()-60,80,50); list_generate_button->setGeometry(10,size().height()-60,80,50);
list_purge_button->setGeometry(100,size().height()-60,80,50); list_purge_button->setGeometry(100,size().height()-60,80,50);
list_close_button->setGeometry(size().width()-90,size().height()-60,80,50); list_close_button->setGeometry(size().width()-90,size().height()-60,80,50);
} }
void ListSvcs::RefreshList()
{
RDSqlQuery *q1;
Q3ListViewItem *item;
list_log_list->clear();
QString sql="select NAME from SERVICES order by NAME";
RDSqlQuery *q=new RDSqlQuery(sql);
while(q->next()) {
item=new Q3ListViewItem(list_log_list);
item->setText(0,q->value(0).toString());
sql=QString("select EVENT_DATETIME from ELR_LINES where ")+
"SERVICE_NAME=\""+RDEscapeString(q->value(0).toString())+"\" "+
"order by EVENT_DATETIME";
q1=new RDSqlQuery(sql);
if(q1->first()) {
item->setText(1,q1->value(0).toDate().toString("MM/dd/yyyy"));
}
else {
item->setText(1,tr("[none]"));
}
delete q1;
}
delete q;
}
void ListSvcs::RefreshLine(Q3ListViewItem *item)
{
QString sql;
RDSqlQuery *q;
sql=QString("select EVENT_DATETIME from ELR_LINES where ")+
"SERVICE_NAME=\""+RDEscapeString(item->text(0))+"\" "+
"order by EVENT_DATETIME";
q=new RDSqlQuery(sql);
if(q->first()) {
item->setText(1,q->value(0).toDate().toString("MM/dd/yyyy"));
}
else {
item->setText(1,tr("[none]"));
}
delete q;
}

View File

@ -2,7 +2,7 @@
// //
// List Rivendell Services and Report Ages // List Rivendell Services and Report Ages
// //
// (C) Copyright 2002-2019 Fred Gleason <fredg@paravelsystems.com> // (C) Copyright 2002-2021 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 LIST_SVCS_H #ifndef LIST_SVCS_H
#define LIST_SVCS_H #define LIST_SVCS_H
#include <q3listview.h> #include <QPushButton>
#include <qpushbutton.h>
#include <rddialog.h> #include <rddialog.h>
#include <rdservicelistmodel.h>
#include <rdtableview.h>
class ListSvcs : public RDDialog class ListSvcs : public RDDialog
{ {
@ -37,21 +38,19 @@ class ListSvcs : public RDDialog
private slots: private slots:
void generateData(); void generateData();
void purgeData(); void purgeData();
void listDoubleClickedData(Q3ListViewItem *item,const QPoint &pt,int c); void listDoubleClickedData(const QModelIndex &);
void closeData(); void closeData();
protected: protected:
void resizeEvent(QResizeEvent *e); void resizeEvent(QResizeEvent *e);
private: private:
void RefreshList(); RDTableView *list_log_view;
void RefreshLine(Q3ListViewItem *item); RDServiceListModel *list_log_model;
Q3ListView *list_log_list;
QPushButton *list_generate_button; QPushButton *list_generate_button;
QPushButton *list_purge_button; QPushButton *list_purge_button;
QPushButton *list_close_button; QPushButton *list_close_button;
}; };
#endif #endif // LIST_SVCS_H

View File

@ -1464,15 +1464,7 @@ data</translation>
</message> </message>
<message> <message>
<source>[none]</source> <source>[none]</source>
<translation>[žádný]</translation> <translation type="obsolete">[žádný]</translation>
</message>
<message>
<source>Service</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Oldest Report</source>
<translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>

View File

@ -1464,15 +1464,7 @@ Data</source>
</message> </message>
<message> <message>
<source>[none]</source> <source>[none]</source>
<translation>[keine]</translation> <translation type="obsolete">[keine]</translation>
</message>
<message>
<source>Service</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Oldest Report</source>
<translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>

View File

@ -1456,7 +1456,7 @@ eliminar</translation>
</message> </message>
<message> <message>
<source>[none]</source> <source>[none]</source>
<translation>[ninguno]</translation> <translation type="obsolete">[ninguno]</translation>
</message> </message>
<message> <message>
<source>&amp;Purge <source>&amp;Purge
@ -1469,14 +1469,6 @@ Reports</source>
<translation>&amp;Generar <translation>&amp;Generar
Reportes</translation> Reportes</translation>
</message> </message>
<message>
<source>Service</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Oldest Report</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>MainWidget</name> <name>MainWidget</name>

View File

@ -1079,18 +1079,6 @@ Data</source>
<source>C&amp;lose</source> <source>C&amp;lose</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>[none]</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Service</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Oldest Report</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>MainWidget</name> <name>MainWidget</name>

View File

@ -1459,15 +1459,7 @@ data</translation>
</message> </message>
<message> <message>
<source>[none]</source> <source>[none]</source>
<translation>[ingen]</translation> <translation type="obsolete">[ingen]</translation>
</message>
<message>
<source>Service</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Oldest Report</source>
<translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>

View File

@ -1459,15 +1459,7 @@ data</translation>
</message> </message>
<message> <message>
<source>[none]</source> <source>[none]</source>
<translation>[ingen]</translation> <translation type="obsolete">[ingen]</translation>
</message>
<message>
<source>Service</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Oldest Report</source>
<translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>

View File

@ -1468,15 +1468,7 @@ Dados</translation>
</message> </message>
<message> <message>
<source>[none]</source> <source>[none]</source>
<translation>[nenhum]</translation> <translation type="obsolete">[nenhum]</translation>
</message>
<message>
<source>Service</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Oldest Report</source>
<translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>