2017-11-08 Fred Gleason <fredg@paravelsystems.com>

* Added a filter widget to the 'List Logs' dialog in rdairplay(1).
This commit is contained in:
Fred Gleason 2017-11-08 09:39:03 -05:00
parent 78c722e99b
commit fb2c080d35
10 changed files with 168 additions and 67 deletions

View File

@ -16334,3 +16334,5 @@
2017-11-08 Fred Gleason <fredg@paravelsystems.com>
* Replaced the custom 'List Logs' dialog in rdlogedit(1) with
RDListLog.
2017-11-08 Fred Gleason <fredg@paravelsystems.com>
* Added a filter widget to the 'List Logs' dialog in rdairplay(1).

View File

@ -22,8 +22,10 @@
#include <rdadd_log.h>
#include <rddb.h>
#include <list_logs.h>
#include <rdescape_string.h>
#include <globals.h>
#include <list_logs.h>
ListLogs::ListLogs(LogPlay *log,QWidget *parent)
: QDialog(parent,"",true)
@ -31,10 +33,7 @@ ListLogs::ListLogs(LogPlay *log,QWidget *parent)
//
// Fix the Window Size
//
setMinimumWidth(sizeHint().width());
setMaximumWidth(sizeHint().width());
setMinimumHeight(sizeHint().height());
setMaximumHeight(sizeHint().height());
setMinimumSize(sizeHint());
//
// Generate Fonts
@ -43,14 +42,19 @@ ListLogs::ListLogs(LogPlay *log,QWidget *parent)
button_font.setPixelSize(12);
list_log=log;
setCaption(tr("Select a Log"));
setCaption(tr("Select Log"));
//
// Filter Widget
//
list_filter_widget=new RDLogFilter(this);
connect(list_filter_widget,SIGNAL(filterChanged(const QString &)),
this,SLOT(filterChangedData(const QString &)));
//
// Log List
//
list_log_list=new QListView(this,"list_log_list");
list_log_list->setGeometry(10,10,
sizeHint().width()-20,sizeHint().height()-80);
list_log_list=new QListView(this);
list_log_list->setAllColumnsShowFocus(true);
list_log_list->setItemMargin(5);
connect(list_log_list,
@ -67,48 +71,38 @@ ListLogs::ListLogs(LogPlay *log,QWidget *parent)
//
// Load Button
//
QPushButton *button=new QPushButton(this,"load_button");
button->setGeometry(10,sizeHint().height()-60,80,50);
button->setFont(button_font);
button->setText(tr("Load"));
connect(button,SIGNAL(clicked()),this,SLOT(loadButtonData()));
list_load_button=new QPushButton(tr("Load"),this);
list_load_button->setFont(button_font);
connect(list_load_button,SIGNAL(clicked()),this,SLOT(loadButtonData()));
//
// Unload Button
//
list_unload_button=new QPushButton(this,"list_unload_button");
list_unload_button->setGeometry(100,sizeHint().height()-60,80,50);
list_unload_button=new QPushButton(tr("Unload"),this);
list_unload_button->setFont(button_font);
list_unload_button->setText(tr("Unload"));
connect(list_unload_button,SIGNAL(clicked()),this,SLOT(unloadButtonData()));
//
// Save Button
//
button=new QPushButton(this,"save_button");
button->setGeometry(210,sizeHint().height()-60,80,50);
button->setFont(button_font);
button->setText(tr("Save"));
connect(button,SIGNAL(clicked()),this,SLOT(saveButtonData()));
list_save_button=new QPushButton(tr("Save"),this);
list_save_button->setFont(button_font);
connect(list_save_button,SIGNAL(clicked()),this,SLOT(saveButtonData()));
//
// Save As Button
//
list_saveas_button=new QPushButton(this,"list_saveas_button");
list_saveas_button->setGeometry(300,sizeHint().height()-60,80,50);
list_saveas_button=new QPushButton(tr("Save As"),this);
list_saveas_button->setFont(button_font);
list_saveas_button->setText(tr("Save &As"));
connect(list_saveas_button,SIGNAL(clicked()),this,SLOT(saveAsButtonData()));
//
// Cancel Button
//
button=new QPushButton(this,"cancel_button");
button->setGeometry(sizeHint().width()-90,sizeHint().height()-60,80,50);
button->setFont(button_font);
button->setText(tr("Cancel"));
button->setDefault(true);
connect(button,SIGNAL(clicked()),this,SLOT(cancelButtonData()));
list_cancel_button=new QPushButton(tr("Cancel"),this);
list_cancel_button->setFont(button_font);
list_cancel_button->setDefault(true);
connect(list_cancel_button,SIGNAL(clicked()),this,SLOT(cancelButtonData()));
RefreshList();
}
@ -116,7 +110,7 @@ ListLogs::ListLogs(LogPlay *log,QWidget *parent)
QSize ListLogs::sizeHint() const
{
return QSize(500,300);
return QSize(500,400);
}
@ -131,11 +125,28 @@ int ListLogs::exec(QString *logname,QString *svcname)
list_logname=logname;
list_svcname=svcname;
list_saveas_button->setEnabled(rduser->createLog());
QStringList services_list;
QString sql=QString("select SERVICE_NAME from SERVICE_PERMS where ")+
"STATION_NAME=\""+RDEscapeString(rdstation_conf->name())+"\"";
RDSqlQuery *q=new RDSqlQuery(sql);
services_list.push_back(tr("ALL"));
while(q->next()) {
services_list.push_back(q->value(0).toString());
}
list_filter_widget->setServices(services_list);
delete q;
RefreshList();
return QDialog::exec();
}
void ListLogs::filterChangedData(const QString &where_sql)
{
RefreshList();
}
void ListLogs::closeEvent(QCloseEvent *e)
{
done(1);
@ -200,6 +211,19 @@ void ListLogs::cancelButtonData()
}
void ListLogs::resizeEvent(QResizeEvent *e)
{
list_filter_widget->setGeometry(10,10,size().width()-20,
list_filter_widget->sizeHint().height());
list_log_list->setGeometry(10,list_filter_widget->sizeHint().height(),size().width()-20,size().height()-list_filter_widget->sizeHint().height()-80);
list_load_button->setGeometry(10,size().height()-60,80,50);
list_unload_button->setGeometry(100,size().height()-60,80,50);
list_save_button->setGeometry(210,size().height()-60,80,50);
list_saveas_button->setGeometry(300,size().height()-60,80,50);
list_cancel_button->setGeometry(size().width()-90,size().height()-60,80,50);
}
void ListLogs::RefreshList()
{
RDSqlQuery *q;
@ -209,18 +233,6 @@ void ListLogs::RefreshList()
QStringList services_list;
list_log_list->clear();
sql=QString().sprintf("select SERVICE_NAME from SERVICE_PERMS \
where STATION_NAME=\"%s\"",
(const char *)rdstation_conf->name());
q=new RDSqlQuery(sql);
while(q->next()) {
services_list.append( q->value(0).toString() );
}
delete q;
if(services_list.size()==0) {
return;
}
sql=QString("select NAME,DESCRIPTION,SERVICE from LOGS ")+
"where (TYPE=0)&&(LOG_EXISTS=\"Y\")&&"+
"((START_DATE<=\""+current_date.toString("yyyy-MM-dd")+"\")||"+
@ -228,15 +240,8 @@ void ListLogs::RefreshList()
"(START_DATE is null))&&"+
"((END_DATE>=\""+current_date.toString("yyyy-MM-dd")+"\")||"+
"(END_DATE=\"0000-00-00\")||"+
"(END_DATE is null))&&(";
for ( QStringList::Iterator it = services_list.begin();
it != services_list.end(); ++it ) {
sql+=QString().sprintf("SERVICE=\"%s\"||",
(const char *)*it);
}
sql=sql.left(sql.length()-2);
sql+=")";
"(END_DATE is null))"+
list_filter_widget->whereSql();
q=new RDSqlQuery(sql);
while(q->next()) {
l=new QListViewItem(list_log_list);

View File

@ -26,6 +26,8 @@
#include <qlistview.h>
#include <qpushbutton.h>
#include <rdlogfilter.h>
#include <log_play.h>
class ListLogs : public QDialog
@ -41,6 +43,7 @@ class ListLogs : public QDialog
int exec(QString *logname,QString *svcname);
private slots:
void filterChangedData(const QString &where_sql);
void doubleClickedData(QListViewItem *,const QPoint &,int);
void closeEvent(QCloseEvent *);
void loadButtonData();
@ -49,13 +52,20 @@ class ListLogs : public QDialog
void unloadButtonData();
void cancelButtonData();
protected:
void resizeEvent(QResizeEvent *e);
private:
void RefreshList();
RDLogFilter *list_filter_widget;
QListView *list_log_list;
QString *list_logname;
QString *list_svcname;
QPushButton *list_load_button;
QPushButton *list_unload_button;
QPushButton *list_save_button;
QPushButton *list_saveas_button;
QPushButton *list_cancel_button;
LogPlay *list_log;
};

View File

@ -402,7 +402,7 @@ poslechu</translation>
<name>ListLogs</name>
<message>
<source>Select a Log</source>
<translation>Vybrat zápis</translation>
<translation type="obsolete">Vybrat zápis</translation>
</message>
<message>
<source>NAME</source>
@ -430,7 +430,7 @@ poslechu</translation>
</message>
<message>
<source>Save &amp;As</source>
<translation>Uložit &amp;jako</translation>
<translation type="obsolete">Uložit &amp;jako</translation>
</message>
<message>
<source>Cancel</source>
@ -440,6 +440,18 @@ poslechu</translation>
<source>Rename Log</source>
<translation>Přejmenovat zápis</translation>
</message>
<message>
<source>ALL</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select Log</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Save As</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LogLineBox</name>

View File

@ -402,7 +402,7 @@ vorhören</translation>
<name>ListLogs</name>
<message>
<source>Select a Log</source>
<translation>Log auswählen</translation>
<translation type="obsolete">Log auswählen</translation>
</message>
<message>
<source>NAME</source>
@ -430,7 +430,7 @@ vorhören</translation>
</message>
<message>
<source>Save &amp;As</source>
<translation>Speichern &amp;Als</translation>
<translation type="obsolete">Speichern &amp;Als</translation>
</message>
<message>
<source>Cancel</source>
@ -440,6 +440,18 @@ vorhören</translation>
<source>Rename Log</source>
<translation>Log umbenennen</translation>
</message>
<message>
<source>ALL</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select Log</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Save As</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LogLineBox</name>

View File

@ -402,7 +402,7 @@ Final</translation>
<name>ListLogs</name>
<message>
<source>Select a Log</source>
<translation>Seleccione una lista</translation>
<translation type="obsolete">Seleccione una lista</translation>
</message>
<message>
<source>NAME</source>
@ -430,7 +430,7 @@ Final</translation>
</message>
<message>
<source>Save &amp;As</source>
<translation>Gu&amp;ard. como</translation>
<translation type="obsolete">Gu&amp;ard. como</translation>
</message>
<message>
<source>Cancel</source>
@ -440,6 +440,18 @@ Final</translation>
<source>Rename Log</source>
<translation>Cambiar nombre de la lista</translation>
</message>
<message>
<source>ALL</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select Log</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Save As</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LogLineBox</name>

View File

@ -402,7 +402,7 @@ la Fin</translation>
<name>ListLogs</name>
<message>
<source>Select a Log</source>
<translation>Sélectionner un Log</translation>
<translation type="obsolete">Sélectionner un Log</translation>
</message>
<message>
<source>NAME</source>
@ -430,7 +430,7 @@ la Fin</translation>
</message>
<message>
<source>Save &amp;As</source>
<translation>S&amp;auver Sous</translation>
<translation type="obsolete">S&amp;auver Sous</translation>
</message>
<message>
<source>Cancel</source>
@ -440,6 +440,18 @@ la Fin</translation>
<source>Rename Log</source>
<translation>Renommer le Log</translation>
</message>
<message>
<source>ALL</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select Log</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Save As</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LogLineBox</name>

View File

@ -408,7 +408,7 @@ Tail</source>
<name>ListLogs</name>
<message>
<source>Select a Log</source>
<translation>Vel ein logg</translation>
<translation type="obsolete">Vel ein logg</translation>
</message>
<message>
<source>NAME</source>
@ -436,7 +436,7 @@ Tail</source>
</message>
<message>
<source>Save &amp;As</source>
<translation>Lagre &amp;som</translation>
<translation type="obsolete">Lagre &amp;som</translation>
</message>
<message>
<source>Cancel</source>
@ -446,6 +446,18 @@ Tail</source>
<source>Rename Log</source>
<translation>Døyp om loggen</translation>
</message>
<message>
<source>ALL</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select Log</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Save As</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LogLineBox</name>

View File

@ -408,7 +408,7 @@ Tail</source>
<name>ListLogs</name>
<message>
<source>Select a Log</source>
<translation>Vel ein logg</translation>
<translation type="obsolete">Vel ein logg</translation>
</message>
<message>
<source>NAME</source>
@ -436,7 +436,7 @@ Tail</source>
</message>
<message>
<source>Save &amp;As</source>
<translation>Lagre &amp;som</translation>
<translation type="obsolete">Lagre &amp;som</translation>
</message>
<message>
<source>Cancel</source>
@ -446,6 +446,18 @@ Tail</source>
<source>Rename Log</source>
<translation>Døyp om loggen</translation>
</message>
<message>
<source>ALL</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select Log</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Save As</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LogLineBox</name>

View File

@ -403,7 +403,7 @@ Log</source>
<name>ListLogs</name>
<message>
<source>Select a Log</source>
<translation>Sel uma Lista</translation>
<translation type="obsolete">Sel uma Lista</translation>
</message>
<message>
<source>NAME</source>
@ -431,7 +431,7 @@ Log</source>
</message>
<message>
<source>Save &amp;As</source>
<translation>Salvar &amp;Como</translation>
<translation type="obsolete">Salvar &amp;Como</translation>
</message>
<message>
<source>Cancel</source>
@ -441,6 +441,18 @@ Log</source>
<source>Rename Log</source>
<translation>Renomear lista</translation>
</message>
<message>
<source>ALL</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select Log</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Save As</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LogLineBox</name>