diff --git a/ChangeLog b/ChangeLog index 80ff5f96..4a25b686 100644 --- a/ChangeLog +++ b/ChangeLog @@ -20183,3 +20183,6 @@ 2020-08-09 Fred Gleason * Fixed a regression in rdcastmanager(1) that caused no items to appear in superfeeds. +2020-08-09 Fred Gleason + * Modified the 'Podcast Item List' dialog in rdcastmanager(1) to + show a blue icon for items with Air Dates in the future. diff --git a/rdcastmanager/list_casts.cpp b/rdcastmanager/list_casts.cpp index 3247454b..ffd9c462 100644 --- a/rdcastmanager/list_casts.cpp +++ b/rdcastmanager/list_casts.cpp @@ -36,8 +36,9 @@ // // Icons // -#include "../icons/redball.xpm" +#include "../icons/blueball.xpm" #include "../icons/greenball.xpm" +#include "../icons/redball.xpm" #include "../icons/whiteball.xpm" ListCasts::ListCasts(unsigned feed_id,bool is_super,QWidget *parent) @@ -57,6 +58,7 @@ ListCasts::ListCasts(unsigned feed_id,bool is_super,QWidget *parent) // // Create Icons // + list_blueball_map=new QPixmap(blueball_xpm); list_greenball_map=new QPixmap(greenball_xpm); list_redball_map=new QPixmap(redball_xpm); list_whiteball_map=new QPixmap(whiteball_xpm); @@ -595,7 +597,12 @@ void ListCasts::RefreshItem(RDListViewItem *item) if(q->first()) { switch((RDPodcast::Status)q->value(0).toUInt()) { case RDPodcast::StatusActive: - item->setPixmap(0,*list_greenball_map); + if(q->value(2).toDateTime()<=QDateTime::currentDateTime()) { + item->setPixmap(0,*list_greenball_map); + } + else { + item->setPixmap(0,*list_blueball_map); + } break; case RDPodcast::StatusPending: diff --git a/rdcastmanager/list_casts.h b/rdcastmanager/list_casts.h index 66d0f5ca..3ab4e32e 100644 --- a/rdcastmanager/list_casts.h +++ b/rdcastmanager/list_casts.h @@ -68,8 +68,9 @@ class ListCasts : public RDDialog QPushButton *list_edit_button; QPushButton *list_delete_button; QPushButton *list_close_button; - QPixmap *list_redball_map; + QPixmap *list_blueball_map; QPixmap *list_greenball_map; + QPixmap *list_redball_map; QPixmap *list_whiteball_map; unsigned list_feed_id; int list_encoder_id; diff --git a/rdrssd/rdrssd.cpp b/rdrssd/rdrssd.cpp index a5eb7e71..69ff5f66 100644 --- a/rdrssd/rdrssd.cpp +++ b/rdrssd/rdrssd.cpp @@ -146,6 +146,7 @@ void MainObject::ProcessFeed(const QString &key_name) "(PODCASTS.EXPIRATION_DATETIME<"+now_str+"))"; q=new RDSqlQuery(sql); while(q->next()) { + bool deleted=false; if(q->value(1).toDateTime()config(),q->value(0).toUInt()); if(!cast->removeAudio(feed,&err_msg,false)) { @@ -168,11 +169,19 @@ void MainObject::ProcessFeed(const QString &key_name) q->value(0).toUInt()); rda->ripc()->sendNotification(*notify); delete notify; + deleted=true; } if(feed->postXml(&err_msg)) { rda->syslog(LOG_DEBUG, "repost of XML for feed \"%s\" triggered by cast id %u", key_name.toUtf8().constData(),q->value(0).toUInt()); + if(!deleted) { + RDNotification *notify=new RDNotification(RDNotification::FeedItemType, + RDNotification::ModifyAction, + q->value(0).toUInt()); + rda->ripc()->sendNotification(*notify); + delete notify; + } } else { rda->syslog(LOG_WARNING,"repost of XML for feed \"%s\" failed [%s]",