diff --git a/ChangeLog b/ChangeLog index 57852582..59598910 100644 --- a/ChangeLog +++ b/ChangeLog @@ -24100,3 +24100,6 @@ 2023-05-15 Fred Gleason * Fixed a bug in 'apis/cdn/scripts/akamai_purge.cdn' that broke content purging on Akamai. +2023-05-15 Fred Gleason + * Remove the seconds field from the 'Air Date/Time' and 'Item Expires' + values on the 'Editing Item' dialog in rdcastmanager(1). diff --git a/lib/rdcoreapplication.cpp b/lib/rdcoreapplication.cpp index 25d01a4b..cdbe7d99 100644 --- a/lib/rdcoreapplication.cpp +++ b/lib/rdcoreapplication.cpp @@ -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); + } + else { + ret=padding+time_str.left(7)+" "+time_str.right(2); } - return padding+time_str.left(7)+" "+time_str.right(2); } - if((time.hour()==0)||((time.hour()>=10)&&(time.hour()<13))|| - (time.hour()>=22)) { - return time_str.left(8)+" "+time_str.right(2); + else { + if((time.hour()==0)||((time.hour()>=10)&&(time.hour()<13))|| + (time.hour()>=22)) { + ret=time_str.left(8)+" "+time_str.right(2); + } + else { + ret=time_str.left(7)+" "+time_str.right(2); + } + } + if(!show_secs) { + ret=ret.left(ret.length()-6); + ret+=" "+time.toString("AP"); } - return time_str.left(7)+" "+time_str.right(2); } - return time.toString(RD_TWENTYFOUR_HOUR_FORMAT).left(10); + 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; } diff --git a/lib/rdcoreapplication.h b/lib/rdcoreapplication.h index 694fab5a..edc41a79 100644 --- a/lib/rdcoreapplication.h +++ b/lib/rdcoreapplication.h @@ -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); diff --git a/lib/rdpodcastlistmodel.cpp b/lib/rdpodcastlistmodel.cpp index 5a6dc2fc..bec053dd 100644 --- a/lib/rdpodcastlistmodel.cpp +++ b/lib/rdpodcastlistmodel.cpp @@ -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()); diff --git a/rdcastmanager/edit_cast.cpp b/rdcastmanager/edit_cast.cpp index aaf97abe..f0e9c9f6 100644 --- a/rdcastmanager/edit_cast.cpp +++ b/rdcastmanager/edit_cast.cpp @@ -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 diff --git a/rdcastmanager/edit_cast.h b/rdcastmanager/edit_cast.h index e9909bc4..eb4d359f 100644 --- a/rdcastmanager/edit_cast.h +++ b/rdcastmanager/edit_cast.h @@ -22,11 +22,12 @@ #define EDIT_CAST_H #include +#include #include #include #include -#include +//#include #include #include #include @@ -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;