2023-05-15 Fred Gleason <fredg@paravelsystems.com>

* Remove the seconds field from the 'Air Date/Time' and 'Item Expires'
	values on the 'Editing Item' dialog in rdcastmanager(1).

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
Fred Gleason 2023-05-16 16:53:01 -04:00
parent 45b5c77c71
commit eff2ff7cf9
6 changed files with 85 additions and 32 deletions

View File

@ -24100,3 +24100,6 @@
2023-05-15 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in 'apis/cdn/scripts/akamai_purge.cdn' that broke
content purging on Akamai.
2023-05-15 Fred Gleason <fredg@paravelsystems.com>
* Remove the seconds field from the 'Air Date/Time' and 'Item Expires'
values on the 'Editing Item' dialog in rdcastmanager(1).

View File

@ -381,31 +381,79 @@ QString RDCoreApplication::shortDateString(const QDate &date) const
}
QString RDCoreApplication::shortDateTimeString(const QDateTime &dt) const
QString RDCoreApplication::shortDateTimeString(const QDateTime &dt,
bool show_secs) const
{
return shortDateString(dt.date())+" "+timeString(dt.time());
return shortDateString(dt.date())+" "+timeString(dt.time(),show_secs);
}
QString RDCoreApplication::timeString(const QTime &time,
QString RDCoreApplication::timeString(const QTime &time,bool show_secs,
const QString &padding) const
{
QString ret;
QTime rounded_time=time;
if(!show_secs) {
if(time.second()>29) {
rounded_time=time.addSecs(1);
}
}
if(app_show_twelve_hour_time) {
QString time_str=time.toString(RD_TWELVE_HOUR_FORMAT);
if(!padding.isEmpty()) {
if((time.hour()==0)||((time.hour()>=10)&&(time.hour()<13))||
(time.hour()>=22)) {
return time_str.left(8)+" "+time_str.right(2);
ret=time_str.left(8)+" "+time_str.right(2);
}
return padding+time_str.left(7)+" "+time_str.right(2);
else {
ret=padding+time_str.left(7)+" "+time_str.right(2);
}
}
else {
if((time.hour()==0)||((time.hour()>=10)&&(time.hour()<13))||
(time.hour()>=22)) {
return time_str.left(8)+" "+time_str.right(2);
ret=time_str.left(8)+" "+time_str.right(2);
}
return time_str.left(7)+" "+time_str.right(2);
else {
ret=time_str.left(7)+" "+time_str.right(2);
}
return time.toString(RD_TWENTYFOUR_HOUR_FORMAT).left(10);
}
if(!show_secs) {
ret=ret.left(ret.length()-6);
ret+=" "+time.toString("AP");
}
}
else {
ret=time.toString(RD_TWENTYFOUR_HOUR_FORMAT).left(10);
if(!show_secs) {
ret=ret.left(ret.length()-3);
}
}
return ret;
}
QString RDCoreApplication::timeFormat(bool show_secs) const
{
QString ret;
if(app_show_twelve_hour_time) {
ret="h:mm";
if(show_secs) {
ret+=":ss";
}
ret+=" AP";
}
else {
ret="hh:mm";
if(show_secs) {
ret+=":ss";
}
}
return ret;
}

View File

@ -77,8 +77,10 @@ class RDCoreApplication : public QObject
QString longDateString(const QDate &date) const;
QString shortDateFormat() const;
QString shortDateString(const QDate &date) const;
QString shortDateTimeString(const QDateTime &dt) const;
QString timeString(const QTime &time,const QString &padding="") const;
QString shortDateTimeString(const QDateTime &dt,bool show_secs=true) const;
QString timeString(const QTime &time,bool show_secs=true,
const QString &padding="") const;
QString timeFormat(bool show_secs) const;
QString tenthsTimeString(const QTime &time,const QString &padding="") const;
bool dropTable(const QString &tbl_name);
void addTempFile(const QString &pathname);

View File

@ -448,32 +448,28 @@ void RDPodcastListModel::updateRow(int row,RDSqlQuery *q)
if(q->value(3).toDateTime()<=QDateTime::currentDateTime()) {
d_status_pixmaps[row]=
rda->iconEngine()->listIcon(RDIconEngine::GreenBall);
// icons.push_back(rda->iconEngine()->listIcon(RDIconEngine::GreenBall));
}
else {
d_status_pixmaps[row]=rda->iconEngine()->listIcon(RDIconEngine::BlueBall);
// icons.push_back(rda->iconEngine()->listIcon(RDIconEngine::BlueBall));
}
break;
case RDPodcast::StatusPending:
d_status_pixmaps[row]=rda->iconEngine()->listIcon(RDIconEngine::RedBall);
// icons.push_back(rda->iconEngine()->listIcon(RDIconEngine::RedBall));
break;
case RDPodcast::StatusExpired:
d_status_pixmaps[row]=rda->iconEngine()->listIcon(RDIconEngine::WhiteBall);
// icons.push_back(rda->iconEngine()->listIcon(RDIconEngine::WhiteBall));
}
// Start
texts.push_back(q->value(3).toDateTime().toString("MM/dd/yyyy hh:mm:ss"));
texts.push_back(rda->shortDateTimeString(q->value(3).toDateTime(),false));
icons.push_back(QVariant());
// Expiration
if(q->value(4).toDateTime().isValid()) {
texts.push_back(q->value(4).toDateTime().toString("MM/dd/yyyy hh:mm:ss"));
texts.push_back(rda->shortDateTimeString(q->value(4).toDateTime(),false));
}
else {
texts.push_back(tr("Never"));
@ -495,12 +491,12 @@ void RDPodcastListModel::updateRow(int row,RDSqlQuery *q)
// Posted By
if(q->value(9).isNull()) {
texts.push_back(tr("unknown")+" "+tr("at")+" "+
q->value(11).toDateTime().toString("MM/dd/yyyy hh:mm:ss"));
rda->shortDateTimeString(q->value(11).toDateTime()));
}
else {
texts.push_back(q->value(9).toString()+" "+tr("on")+" "+
q->value(10).toString()+" "+tr("at")+" "+
q->value(11).toDateTime().toString("MM/dd/yyyy hh:mm:ss"));
rda->shortDateTimeString(q->value(11).toDateTime()));
}
icons.push_back(QVariant());

View File

@ -139,7 +139,9 @@ EditCast::EditCast(unsigned cast_id,bool new_post,QWidget *parent)
//
// Effective DateTime
//
cast_item_effective_edit=new RDDateTimeEdit(this);
cast_item_effective_edit=new QDateTimeEdit(this);
cast_item_effective_edit->
setDisplayFormat(rda->shortDateFormat()+" "+rda->timeFormat(false));
cast_item_effective_label=new QLabel(tr("Air Date/Time:"),this);
cast_item_effective_label->setFont(labelFont());
cast_item_effective_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
@ -167,7 +169,9 @@ EditCast::EditCast(unsigned cast_id,bool new_post,QWidget *parent)
cast_item_expiration_box_label->
setEnabled(cast_status!=RDPodcast::StatusExpired);
cast_item_expiration_edit=new RDDateTimeEdit(this);
cast_item_expiration_edit=new QDateTimeEdit(this);
cast_item_expiration_edit->
setDisplayFormat(rda->shortDateFormat()+" "+rda->timeFormat(false));
cast_item_expiration_label=new QLabel(tr("at"),this);
cast_item_expiration_label->setFont(labelFont());
cast_item_expiration_label->setAlignment(Qt::AlignCenter);
@ -213,15 +217,14 @@ EditCast::EditCast(unsigned cast_id,bool new_post,QWidget *parent)
if(cast_cast->originLoginName().isEmpty()) {
cast_item_origin_edit->
setText(tr("unknown")+" "+tr("at")+" "+
cast_cast->originDateTime().toString("MM/dd/yyyy - hh:mm:ss"));
rda->shortDateTimeString(cast_cast->originDateTime()));
}
else {
cast_item_origin_edit->
setText(cast_cast->originLoginName()+" "+tr("on")+" "+
cast_cast->originStation()+" "+tr("at")+" "+
cast_cast->originDateTime().toString("MM/dd/yyyy - hh:mm:ss"));
rda->shortDateTimeString(cast_cast->originDateTime()));
}
cast_item_category_edit->setText(cast_cast->itemCategory());
cast_item_category_label->
setVisible(rda->rssSchemas()->
@ -500,8 +503,8 @@ void EditCast::resizeEvent(QResizeEvent *e)
// Air Date/Time
//
cast_item_effective_label->setGeometry(20,h-154,110,20);
cast_item_effective_edit->setGeometry(135,h-154,200,20);
cast_item_effective_button->setGeometry(345,h-156,75,24);
cast_item_effective_edit->setGeometry(135,h-154,200-50,20);
cast_item_effective_button->setGeometry(345-50,h-156,75,24);
//
// Cast Expiration
@ -510,8 +513,8 @@ void EditCast::resizeEvent(QResizeEvent *e)
cast_item_expiration_box->setGeometry(135,h-126,50,20);
cast_item_expiration_label->setGeometry(190,h-126,20,20);
cast_item_expiration_edit->setGeometry(215,h-126,200,20);
cast_item_expiration_button->setGeometry(425,h-128,75,24);
cast_item_expiration_edit->setGeometry(215,h-126,200-50,20);
cast_item_expiration_button->setGeometry(425-50,h-128,75,24);
//
// Buttons

View File

@ -22,11 +22,12 @@
#define EDIT_CAST_H
#include <QCheckBox>
#include <QDateTimeEdit>
#include <QLineEdit>
#include <QPushButton>
#include <QTextEdit>
#include <rddatetimeedit.h>
//#include <rddatetimeedit.h>
#include <rddialog.h>
#include <rdfeed.h>
#include <rdimagepickerbox.h>
@ -81,9 +82,9 @@ class EditCast : public RDDialog
QCheckBox *cast_active_check;
QLabel *cast_active_label;
QPushButton *cast_item_expiration_button;
RDDateTimeEdit *cast_item_expiration_edit;
QDateTimeEdit *cast_item_expiration_edit;
QLabel *cast_item_effective_label;
RDDateTimeEdit *cast_item_effective_edit;
QDateTimeEdit *cast_item_effective_edit;
QPushButton *cast_item_effective_button;
QPushButton *cast_ok_button;
QPushButton *cast_cancel_button;